summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/rom5.s131034
-rw-r--r--asm/rom6.s129510
2 files changed, 129511 insertions, 131033 deletions
diff --git a/asm/rom5.s b/asm/rom5.s
index 0665ec922..523bf8a4c 100644
--- a/asm/rom5.s
+++ b/asm/rom5.s
@@ -295665,131036 +295665,4 @@ _0810A700:
bx r0
thumb_func_end sub_810A6C4
- thumb_func_start sub_810A704
-sub_810A704: @ 810A704
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_810A704
-
- thumb_func_start LoadWallClockGraphics
-LoadWallClockGraphics: @ 810A718
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r0, 0
- bl SetVBlankCallback
- 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, _0810A7F8
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _0810A7FC
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_0810A77C:
- 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 _0810A77C
- 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, _0810A7F8
- 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, _0810A800
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _0810A804
- ldrh r0, [r0]
- cmp r0, 0
- bne _0810A80C
- ldr r0, _0810A808
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- b _0810A816
- .align 2, 0
-_0810A7F8: .4byte 0x040000d4
-_0810A7FC: .4byte 0x81000800
-_0810A800: .4byte gMiscClock_Gfx
-_0810A804: .4byte gUnknown_0202E8CC
-_0810A808: .4byte gMiscClockMale_Pal
-_0810A80C:
- ldr r0, _0810A850
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
-_0810A816:
- bl remove_some_task
- bl ResetTasks
- bl ResetSpriteData
- bl ResetPaletteFade
- bl FreeAllSpritePalettes
- ldr r0, _0810A854
- bl LoadCompressedObjectPic
- ldr r0, _0810A858
- bl LoadSpritePalettes
- ldr r0, _0810A85C
- bl SetUpWindowConfig
- ldr r0, _0810A860
- bl InitMenuWindow
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810A850: .4byte gMiscClockFemale_Pal
-_0810A854: .4byte gUnknown_083F7A90
-_0810A858: .4byte gUnknown_083F7AA0
-_0810A85C: .4byte gWindowConfig_81E6C3C
-_0810A860: .4byte gWindowConfig_81E6CE4
- thumb_func_end LoadWallClockGraphics
-
- thumb_func_start sub_810A864
-sub_810A864: @ 810A864
- push {r4,r5,lr}
- sub sp, 0x4
- movs r0, 0x1
- negs r0, r0
- movs r5, 0
- str r5, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r3, _0810A8D0
- ldrh r2, [r3]
- strh r5, [r3]
- ldr r4, _0810A8D4
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _0810A8D8
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0810A8DC
- bl SetVBlankCallback
- ldr r0, _0810A8E0
- bl SetMainCallback2
- ldr r0, _0810A8E4
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- ldr r1, _0810A8E8
- ldr r2, _0810A8EC
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x6
- ldr r2, _0810A8F0
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x8
- movs r2, 0xCA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810A8D0: .4byte 0x04000208
-_0810A8D4: .4byte 0x04000200
-_0810A8D8: .4byte REG_DISPSTAT
-_0810A8DC: .4byte sub_810A704
-_0810A8E0: .4byte sub_810AB3C
-_0810A8E4: .4byte REG_BLDCNT
-_0810A8E8: .4byte REG_BG3CNT
-_0810A8EC: .4byte 0x00000701
-_0810A8F0: .4byte 0x00001f08
- thumb_func_end sub_810A864
-
- thumb_func_start Cb2_StartWallClock
-Cb2_StartWallClock: @ 810A8F4
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- bl LoadWallClockGraphics
- ldr r0, _0810A9F0
- ldr r1, _0810A9F4
- bl LZ77UnCompVram
- ldr r0, _0810A9F8
- movs r1, 0
- bl CreateTask
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r1, _0810A9FC
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0xA
- strh r1, [r0, 0xC]
- strh r2, [r0, 0xE]
- strh r2, [r0, 0x10]
- strh r2, [r0, 0x12]
- strh r2, [r0, 0x14]
- strh r2, [r0, 0x8]
- movs r1, 0x96
- lsls r1, 1
- strh r1, [r0, 0xA]
- ldr r0, _0810AA00
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810AA04
- mov r8, r1
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r8
- strh r6, [r1, 0x2E]
- ldrb r2, [r1, 0x1]
- movs r5, 0x4
- negs r5, r5
- adds r0, r5, 0
- ands r0, r2
- movs r2, 0x1
- mov r9, r2
- mov r2, r9
- orrs r0, r2
- strb r0, [r1, 0x1]
- ldrb r2, [r1, 0x3]
- movs r4, 0x3F
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1, 0x3]
- ldr r0, _0810AA08
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r8
- strh r6, [r1, 0x2E]
- ldrb r0, [r1, 0x1]
- ands r5, r0
- mov r0, r9
- orrs r5, r0
- strb r5, [r1, 0x1]
- ldrb r0, [r1, 0x3]
- ands r4, r0
- movs r0, 0x2
- orrs r4, r0
- strb r4, [r1, 0x3]
- ldr r0, _0810AA0C
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r8
- strh r6, [r1, 0x2E]
- movs r0, 0x2D
- strh r0, [r1, 0x30]
- ldr r0, _0810AA10
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r8
- strh r6, [r1, 0x2E]
- movs r0, 0x5A
- strh r0, [r1, 0x30]
- bl sub_810A864
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810A9F0: .4byte gUnknown_08E954B0
-_0810A9F4: .4byte 0x06003800
-_0810A9F8: .4byte sub_810AB54
-_0810A9FC: .4byte gTasks
-_0810AA00: .4byte gSpriteTemplate_83F7AD8
-_0810AA04: .4byte gSprites
-_0810AA08: .4byte gSpriteTemplate_83F7AF0
-_0810AA0C: .4byte gSpriteTemplate_83F7B28
-_0810AA10: .4byte gSpriteTemplate_83F7B40
- thumb_func_end Cb2_StartWallClock
-
- thumb_func_start Cb2_ViewWallClock
-Cb2_ViewWallClock: @ 810AA14
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- bl LoadWallClockGraphics
- ldr r0, _0810AA58
- ldr r1, _0810AA5C
- bl LZ77UnCompVram
- ldr r0, _0810AA60
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r7, 0
- bl sub_810AFE0
- ldr r1, _0810AA64
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0x12
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0810AA68
- movs r2, 0x2D
- mov r9, r2
- movs r0, 0x5A
- mov r10, r0
- b _0810AA70
- .align 2, 0
-_0810AA58: .4byte gUnknown_08E95774
-_0810AA5C: .4byte 0x06003800
-_0810AA60: .4byte sub_810ADC0
-_0810AA64: .4byte gTasks
-_0810AA68:
- movs r1, 0x5A
- mov r9, r1
- movs r2, 0x87
- mov r10, r2
-_0810AA70:
- ldr r0, _0810AB28
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r6, _0810AB2C
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- strh r7, [r1, 0x2E]
- ldrb r2, [r1, 0x1]
- movs r5, 0x4
- negs r5, r5
- adds r0, r5, 0
- ands r0, r2
- movs r2, 0x1
- mov r8, r2
- mov r2, r8
- orrs r0, r2
- strb r0, [r1, 0x1]
- ldrb r2, [r1, 0x3]
- movs r4, 0x3F
- negs r4, r4
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1, 0x3]
- ldr r0, _0810AB30
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- strh r7, [r1, 0x2E]
- ldrb r0, [r1, 0x1]
- ands r5, r0
- mov r0, r8
- orrs r5, r0
- strb r5, [r1, 0x1]
- ldrb r0, [r1, 0x3]
- ands r4, r0
- movs r0, 0x2
- orrs r4, r0
- strb r4, [r1, 0x3]
- ldr r0, _0810AB34
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- strh r7, [r1, 0x2E]
- mov r2, r9
- strh r2, [r1, 0x30]
- ldr r0, _0810AB38
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- strh r7, [r1, 0x2E]
- mov r0, r10
- strh r0, [r1, 0x30]
- bl sub_810A864
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810AB28: .4byte gSpriteTemplate_83F7AD8
-_0810AB2C: .4byte gSprites
-_0810AB30: .4byte gSpriteTemplate_83F7AF0
-_0810AB34: .4byte gSpriteTemplate_83F7B28
-_0810AB38: .4byte gSpriteTemplate_83F7B40
- thumb_func_end Cb2_ViewWallClock
-
- thumb_func_start sub_810AB3C
-sub_810AB3C: @ 810AB3C
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_810AB3C
-
- thumb_func_start sub_810AB54
-sub_810AB54: @ 810AB54
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0810AB78
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810AB74
- ldr r0, _0810AB7C
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _0810AB80
- str r0, [r1]
-_0810AB74:
- pop {r0}
- bx r0
- .align 2, 0
-_0810AB78: .4byte gPaletteFade
-_0810AB7C: .4byte gTasks
-_0810AB80: .4byte sub_810AB84
- thumb_func_end sub_810AB54
-
- thumb_func_start sub_810AB84
-sub_810AB84: @ 810AB84
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0810ABB4
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- movs r1, 0x6
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- beq _0810ABB8
- ldrh r0, [r5, 0x8]
- ldrb r1, [r5, 0x10]
- ldrb r2, [r5, 0x14]
- bl sub_810AEAC
- strh r0, [r5, 0x8]
- b _0810AC5A
- .align 2, 0
-_0810ABB4: .4byte gTasks
-_0810ABB8:
- movs r2, 0xE
- ldrsh r1, [r5, r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- strh r0, [r5, 0x8]
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- movs r1, 0xC
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- lsls r4, r0, 4
- subs r4, r0
- lsls r4, 1
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- movs r1, 0xA
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 2
- adds r1, r0
- adds r4, r1
- strh r4, [r5, 0xA]
- ldr r2, _0810AC04
- ldrh r0, [r2, 0x2E]
- movs r3, 0x1
- adds r1, r3, 0
- ands r1, r0
- cmp r1, 0
- beq _0810AC0C
- ldr r0, _0810AC08
- str r0, [r5]
- b _0810AC5A
- .align 2, 0
-_0810AC04: .4byte gMain
-_0810AC08: .4byte sub_810AC60
-_0810AC0C:
- strh r1, [r5, 0x10]
- ldrh r1, [r2, 0x2C]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0810AC1A
- strh r3, [r5, 0x10]
-_0810AC1A:
- ldrh r1, [r2, 0x2C]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0810AC28
- movs r0, 0x2
- strh r0, [r5, 0x10]
-_0810AC28:
- ldrh r1, [r5, 0x10]
- movs r2, 0x10
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _0810AC58
- ldrh r2, [r5, 0x14]
- movs r3, 0x14
- ldrsh r0, [r5, r3]
- cmp r0, 0xFE
- bgt _0810AC40
- adds r0, r2, 0x1
- strh r0, [r5, 0x14]
-_0810AC40:
- ldrh r0, [r5, 0x8]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r5, 0x14]
- bl sub_810AEAC
- strh r0, [r5, 0x8]
- ldrb r1, [r5, 0x10]
- adds r0, r6, 0
- bl sub_810AEFC
- b _0810AC5A
-_0810AC58:
- strh r0, [r5, 0x14]
-_0810AC5A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_810AB84
-
- thumb_func_start sub_810AC60
-sub_810AC60: @ 810AC60
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- movs r1, 0x10
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _0810ACC4
- movs r1, 0x3
- movs r2, 0x11
- bl MenuPrint
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuDrawTextWindow
- ldr r3, _0810ACC8
- movs r0, 0x18
- movs r1, 0x9
- movs r2, 0x2
- bl PrintMenuItems
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0x5
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x18
- movs r2, 0x9
- movs r3, 0x2
- bl InitMenu
- ldr r1, _0810ACCC
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810ACD0
- str r1, [r0]
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810ACC4: .4byte gOtherText_CorrectTimePrompt
-_0810ACC8: .4byte gUnknown_08376D74
-_0810ACCC: .4byte gTasks
-_0810ACD0: .4byte c3_80BF560
- thumb_func_end sub_810AC60
-
- thumb_func_start c3_80BF560
-c3_80BF560: @ 810ACD4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _0810ACFA
- cmp r1, 0
- bgt _0810ACF4
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0810AD18
- b _0810AD48
-_0810ACF4:
- cmp r1, 0x1
- beq _0810AD18
- b _0810AD48
-_0810ACFA:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0810AD10
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0810AD14
- b _0810AD46
- .align 2, 0
-_0810AD10: .4byte gTasks
-_0810AD14: .4byte sub_810AD58
-_0810AD18:
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- movs r0, 0x2
- movs r1, 0x10
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r0, _0810AD50
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0810AD54
-_0810AD46:
- str r0, [r1]
-_0810AD48:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810AD50: .4byte gTasks
-_0810AD54: .4byte sub_810AB84
- thumb_func_end c3_80BF560
-
- thumb_func_start sub_810AD58
-sub_810AD58: @ 810AD58
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810AD94
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- bl RtcInitLocalTimeOffset
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0810AD98
- str r0, [r4]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810AD94: .4byte gTasks
-_0810AD98: .4byte sub_810AD9C
- thumb_func_end sub_810AD58
-
- thumb_func_start sub_810AD9C
-sub_810AD9C: @ 810AD9C
- push {lr}
- ldr r0, _0810ADB8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810ADB2
- ldr r0, _0810ADBC
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
-_0810ADB2:
- pop {r0}
- bx r0
- .align 2, 0
-_0810ADB8: .4byte gPaletteFade
-_0810ADBC: .4byte gMain
- thumb_func_end sub_810AD9C
-
- thumb_func_start sub_810ADC0
-sub_810ADC0: @ 810ADC0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0810ADE4
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810ADE0
- ldr r0, _0810ADE8
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _0810ADEC
- str r0, [r1]
-_0810ADE0:
- pop {r0}
- bx r0
- .align 2, 0
-_0810ADE4: .4byte gPaletteFade
-_0810ADE8: .4byte gTasks
-_0810ADEC: .4byte sub_810ADF0
- thumb_func_end sub_810ADC0
-
- thumb_func_start sub_810ADF0
-sub_810ADF0: @ 810ADF0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_810AFE0
- ldr r0, _0810AE1C
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0810AE16
- ldr r0, _0810AE20
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0810AE24
- str r0, [r1]
-_0810AE16:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810AE1C: .4byte gMain
-_0810AE20: .4byte gTasks
-_0810AE24: .4byte sub_810AE28
- thumb_func_end sub_810ADF0
-
- thumb_func_start sub_810AE28
-sub_810AE28: @ 810AE28
- 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, _0810AE58
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810AE5C
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810AE58: .4byte gTasks
-_0810AE5C: .4byte sub_810AE60
- thumb_func_end sub_810AE28
-
- thumb_func_start sub_810AE60
-sub_810AE60: @ 810AE60
- push {lr}
- ldr r0, _0810AE7C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810AE76
- ldr r0, _0810AE80
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
-_0810AE76:
- pop {r0}
- bx r0
- .align 2, 0
-_0810AE7C: .4byte gPaletteFade
-_0810AE80: .4byte gMain
- thumb_func_end sub_810AE60
-
- thumb_func_start sub_810AE84
-sub_810AE84: @ 810AE84
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- adds r1, r0, 0
- cmp r0, 0x3C
- bls _0810AE94
- movs r0, 0x6
- b _0810AEA6
-_0810AE94:
- cmp r0, 0x1E
- bls _0810AE9C
- movs r0, 0x3
- b _0810AEA6
-_0810AE9C:
- cmp r1, 0xA
- bhi _0810AEA4
- movs r0, 0x1
- b _0810AEA6
-_0810AEA4:
- movs r0, 0x2
-_0810AEA6:
- pop {r1}
- bx r1
- thumb_func_end sub_810AE84
-
- thumb_func_start sub_810AEAC
-sub_810AEAC: @ 810AEAC
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r2, 24
- adds r0, r2, 0
- bl sub_810AE84
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r5, 0x1
- beq _0810AECE
- cmp r5, 0x2
- beq _0810AEE0
- b _0810AEF4
-_0810AECE:
- cmp r4, 0
- beq _0810AED6
- subs r0, r4, r1
- b _0810AEEC
-_0810AED6:
- movs r2, 0xB4
- lsls r2, 1
- adds r0, r2, 0
- subs r0, r1
- b _0810AEEC
-_0810AEE0:
- movs r0, 0xB4
- lsls r0, 1
- subs r0, r1
- cmp r4, r0
- bge _0810AEF2
- adds r0, r4, r1
-_0810AEEC:
- lsls r0, 16
- lsrs r4, r0, 16
- b _0810AEF4
-_0810AEF2:
- movs r4, 0
-_0810AEF4:
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_810AEAC
-
- thumb_func_start sub_810AEFC
-sub_810AEFC: @ 810AEFC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- cmp r4, 0x1
- beq _0810AF10
- cmp r4, 0x2
- beq _0810AF50
- b _0810AF8E
-_0810AF10:
- ldr r0, _0810AF2C
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xE]
- movs r5, 0xE
- ldrsh r0, [r1, r5]
- cmp r0, 0
- ble _0810AF30
- subs r0, r2, 0x1
- strh r0, [r1, 0xE]
- b _0810AF8E
- .align 2, 0
-_0810AF2C: .4byte gTasks
-_0810AF30:
- movs r0, 0x3B
- strh r0, [r1, 0xE]
- ldrh r2, [r1, 0xC]
- movs r6, 0xC
- ldrsh r0, [r1, r6]
- cmp r0, 0
- ble _0810AF42
- subs r0, r2, 0x1
- b _0810AF44
-_0810AF42:
- movs r0, 0x17
-_0810AF44:
- strh r0, [r1, 0xC]
- adds r0, r3, 0
- adds r1, r4, 0
- bl sub_810AF98
- b _0810AF8E
-_0810AF50:
- ldr r0, _0810AF6C
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xE]
- movs r5, 0xE
- ldrsh r0, [r1, r5]
- cmp r0, 0x3A
- bgt _0810AF70
- adds r0, r2, 0x1
- strh r0, [r1, 0xE]
- b _0810AF8E
- .align 2, 0
-_0810AF6C: .4byte gTasks
-_0810AF70:
- movs r5, 0
- strh r5, [r1, 0xE]
- ldrh r2, [r1, 0xC]
- movs r6, 0xC
- ldrsh r0, [r1, r6]
- cmp r0, 0x16
- bgt _0810AF84
- adds r0, r2, 0x1
- strh r0, [r1, 0xC]
- b _0810AF86
-_0810AF84:
- strh r5, [r1, 0xC]
-_0810AF86:
- adds r0, r3, 0
- adds r1, r4, 0
- bl sub_810AF98
-_0810AF8E:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_810AEFC
-
- thumb_func_start sub_810AF98
-sub_810AF98: @ 810AF98
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- ldr r2, _0810AFB8
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0xC]
- cmp r3, 0x1
- beq _0810AFBC
- cmp r3, 0x2
- beq _0810AFCE
- b _0810AFDA
- .align 2, 0
-_0810AFB8: .4byte gTasks
-_0810AFBC:
- cmp r0, 0xB
- beq _0810AFC6
- cmp r0, 0x17
- beq _0810AFCA
- b _0810AFDA
-_0810AFC6:
- movs r0, 0
- b _0810AFD8
-_0810AFCA:
- strh r3, [r1, 0x12]
- b _0810AFDA
-_0810AFCE:
- cmp r0, 0
- beq _0810AFD8
- cmp r0, 0xC
- bne _0810AFDA
- movs r0, 0x1
-_0810AFD8:
- strh r0, [r1, 0x12]
-_0810AFDA:
- pop {r0}
- bx r0
- thumb_func_end sub_810AF98
-
- thumb_func_start sub_810AFE0
-sub_810AFE0: @ 810AFE0
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl RtcCalcLocalTime
- ldr r1, _0810B048
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r6, r0, r1
- ldr r5, _0810B04C
- movs r0, 0x2
- ldrsb r0, [r5, r0]
- strh r0, [r6, 0xC]
- movs r0, 0x3
- ldrsb r0, [r5, r0]
- strh r0, [r6, 0xE]
- movs r0, 0xE
- ldrsh r1, [r6, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- strh r0, [r6, 0x8]
- movs r1, 0xC
- ldrsh r0, [r6, r1]
- movs r1, 0xC
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- lsls r4, r0, 4
- subs r4, r0
- lsls r4, 1
- movs r1, 0xE
- ldrsh r0, [r6, r1]
- movs r1, 0xA
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 2
- adds r1, r0
- adds r4, r1
- strh r4, [r6, 0xA]
- movs r0, 0x2
- ldrsb r0, [r5, r0]
- cmp r0, 0xB
- bgt _0810B050
- movs r0, 0
- b _0810B052
- .align 2, 0
-_0810B048: .4byte gTasks
-_0810B04C: .4byte gLocalTime
-_0810B050:
- movs r0, 0x1
-_0810B052:
- strh r0, [r6, 0x12]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_810AFE0
-
- thumb_func_start sub_810B05C
-sub_810B05C: @ 810B05C
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r2, _0810B0EC
- movs r0, 0x2E
- ldrsh r1, [r6, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r4, [r0, 0x8]
- adds r7, r4, 0
- adds r0, r4, 0
- bl Sin2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0810B084
- adds r0, 0xF
-_0810B084:
- lsls r0, 12
- lsrs r5, r0, 16
- adds r0, r4, 0
- bl Cos2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0810B098
- adds r0, 0xF
-_0810B098:
- lsls r1, r0, 12
- lsrs r1, 16
- lsls r3, r5, 16
- lsrs r2, r3, 16
- negs r3, r3
- lsrs r3, 16
- str r1, [sp]
- movs r0, 0
- bl SetOamMatrix
- ldr r1, _0810B0F0
- lsls r2, r7, 1
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 16
- lsrs r3, r0, 16
- adds r1, 0x1
- adds r2, r1
- movs r0, 0
- ldrsb r0, [r2, r0]
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r3, 0x80
- bls _0810B0D4
- movs r1, 0xFF
- lsls r1, 8
- adds r0, r1, 0
- orrs r3, r0
-_0810B0D4:
- cmp r2, 0x80
- bls _0810B0E0
- movs r1, 0xFF
- lsls r1, 8
- adds r0, r1, 0
- orrs r2, r0
-_0810B0E0:
- strh r3, [r6, 0x24]
- strh r2, [r6, 0x26]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810B0EC: .4byte gTasks
-_0810B0F0: .4byte gClockHandCoords
- thumb_func_end sub_810B05C
-
- thumb_func_start sub_810B0F4
-sub_810B0F4: @ 810B0F4
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r2, _0810B184
- movs r0, 0x2E
- ldrsh r1, [r6, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r4, [r0, 0xA]
- adds r7, r4, 0
- adds r0, r4, 0
- bl Sin2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0810B11C
- adds r0, 0xF
-_0810B11C:
- lsls r0, 12
- lsrs r5, r0, 16
- adds r0, r4, 0
- bl Cos2
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0810B130
- adds r0, 0xF
-_0810B130:
- lsls r1, r0, 12
- lsrs r1, 16
- lsls r3, r5, 16
- lsrs r2, r3, 16
- negs r3, r3
- lsrs r3, 16
- str r1, [sp]
- movs r0, 0x1
- bl SetOamMatrix
- ldr r1, _0810B188
- lsls r2, r7, 1
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 16
- lsrs r3, r0, 16
- adds r1, 0x1
- adds r2, r1
- movs r0, 0
- ldrsb r0, [r2, r0]
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r3, 0x80
- bls _0810B16C
- movs r1, 0xFF
- lsls r1, 8
- adds r0, r1, 0
- orrs r3, r0
-_0810B16C:
- cmp r2, 0x80
- bls _0810B178
- movs r1, 0xFF
- lsls r1, 8
- adds r0, r1, 0
- orrs r2, r0
-_0810B178:
- strh r3, [r6, 0x24]
- strh r2, [r6, 0x26]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810B184: .4byte gTasks
-_0810B188: .4byte gClockHandCoords
- thumb_func_end sub_810B0F4
-
- thumb_func_start sub_810B18C
-sub_810B18C: @ 810B18C
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, _0810B1C8
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x12
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0810B1CC
- ldrh r1, [r4, 0x30]
- adds r0, r1, 0
- subs r0, 0x3C
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1D
- bhi _0810B1B8
- adds r0, r1, 0x5
- strh r0, [r4, 0x30]
-_0810B1B8:
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0x3B
- bgt _0810B1EC
- adds r0, r1, 0x1
- b _0810B1EA
- .align 2, 0
-_0810B1C8: .4byte gTasks
-_0810B1CC:
- ldrh r1, [r4, 0x30]
- adds r0, r1, 0
- subs r0, 0x2E
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1D
- bhi _0810B1DE
- subs r0, r1, 0x5
- strh r0, [r4, 0x30]
-_0810B1DE:
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0x4B
- ble _0810B1EC
- subs r0, r1, 0x1
-_0810B1EA:
- strh r0, [r4, 0x30]
-_0810B1EC:
- ldrh r0, [r4, 0x30]
- bl Cos2
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 4
- subs r1, r0
- lsls r0, r1, 1
- cmp r0, 0
- bge _0810B204
- ldr r1, _0810B22C
- adds r0, r1
-_0810B204:
- asrs r0, 12
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- bl Sin2
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 4
- subs r1, r0
- lsls r0, r1, 1
- cmp r0, 0
- bge _0810B220
- ldr r2, _0810B22C
- adds r0, r2
-_0810B220:
- asrs r0, 12
- strh r0, [r4, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810B22C: .4byte 0x00000fff
- thumb_func_end sub_810B18C
-
- thumb_func_start sub_810B230
-sub_810B230: @ 810B230
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, _0810B26C
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x12
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0810B270
- ldrh r1, [r4, 0x30]
- adds r0, r1, 0
- subs r0, 0x69
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1D
- bhi _0810B25C
- adds r0, r1, 0x5
- strh r0, [r4, 0x30]
-_0810B25C:
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0x68
- bgt _0810B290
- adds r0, r1, 0x1
- b _0810B28E
- .align 2, 0
-_0810B26C: .4byte gTasks
-_0810B270:
- ldrh r1, [r4, 0x30]
- adds r0, r1, 0
- subs r0, 0x5B
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1D
- bhi _0810B282
- subs r0, r1, 0x5
- strh r0, [r4, 0x30]
-_0810B282:
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0x78
- ble _0810B290
- subs r0, r1, 0x1
-_0810B28E:
- strh r0, [r4, 0x30]
-_0810B290:
- ldrh r0, [r4, 0x30]
- bl Cos2
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 4
- subs r1, r0
- lsls r0, r1, 1
- cmp r0, 0
- bge _0810B2A8
- ldr r1, _0810B2D0
- adds r0, r1
-_0810B2A8:
- asrs r0, 12
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- bl Sin2
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 4
- subs r1, r0
- lsls r0, r1, 1
- cmp r0, 0
- bge _0810B2C4
- ldr r2, _0810B2D0
- adds r0, r2
-_0810B2C4:
- asrs r0, 12
- strh r0, [r4, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810B2D0: .4byte 0x00000fff
- thumb_func_end sub_810B230
-
- thumb_func_start npc_before_player_of_type
-npc_before_player_of_type: @ 810B2D4
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _0810B314
- adds r1, r4, 0x2
- adds r0, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- bl PlayerGetZCoord
- strb r0, [r4, 0x4]
- ldrh r0, [r4]
- ldrh r1, [r4, 0x2]
- ldrb r2, [r4, 0x4]
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810B318
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r2, r1, r2
- ldrb r0, [r2, 0x5]
- cmp r0, r5
- bne _0810B320
- ldr r1, _0810B31C
- ldrb r0, [r2, 0x8]
- strh r0, [r1]
- movs r0, 0x1
- b _0810B322
- .align 2, 0
-_0810B314: .4byte gUnknown_0203923C
-_0810B318: .4byte gMapObjects
-_0810B31C: .4byte gUnknown_0202E8DE
-_0810B320:
- movs r0, 0
-_0810B322:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end npc_before_player_of_type
-
- thumb_func_start oei_task_add
-oei_task_add: @ 810B328
- push {lr}
- ldr r0, _0810B344
- adds r1, r0, 0x2
- bl GetXYCoordsOneStepInFrontOfPlayer
- ldr r0, _0810B348
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0810B344: .4byte gUnknown_0203923C
-_0810B348: .4byte task08_080C9820
- thumb_func_end oei_task_add
-
- thumb_func_start task08_080C9820
-task08_080C9820: @ 810B34C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- bl ScriptContext2_Enable
- ldr r1, _0810B3A0
- movs r0, 0x1
- strb r0, [r1, 0x6]
- ldrb r1, [r1, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0810B3A4
- adds r4, r0, r1
- adds r0, r4, 0
- bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
- lsls r0, 24
- cmp r0, 0
- beq _0810B382
- adds r0, r4, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
- lsls r0, 24
- cmp r0, 0
- beq _0810B3CE
-_0810B382:
- ldr r0, _0810B3A8
- ldrb r0, [r0, 0x17]
- cmp r0, 0x5
- bne _0810B3B4
- movs r0, 0x3B
- bl FieldEffectStart
- ldr r0, _0810B3AC
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0810B3B0
- b _0810B3CC
- .align 2, 0
-_0810B3A0: .4byte gPlayerAvatar
-_0810B3A4: .4byte gMapObjects
-_0810B3A8: .4byte gMapHeader
-_0810B3AC: .4byte gTasks
-_0810B3B0: .4byte sub_810B428
-_0810B3B4:
- bl sub_8059BF4
- adds r0, r4, 0
- movs r1, 0x39
- bl FieldObjectSetSpecialAnim
- ldr r0, _0810B3D4
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0810B3D8
-_0810B3CC:
- str r0, [r1]
-_0810B3CE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810B3D4: .4byte gTasks
-_0810B3D8: .4byte sub_810B3DC
- thumb_func_end task08_080C9820
-
- thumb_func_start sub_810B3DC
-sub_810B3DC: @ 810B3DC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0810B418
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0810B41C
- adds r0, r1
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810B410
- movs r0, 0x3B
- bl FieldEffectStart
- ldr r0, _0810B420
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0810B424
- str r0, [r1]
-_0810B410:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810B418: .4byte gPlayerAvatar
-_0810B41C: .4byte gMapObjects
-_0810B420: .4byte gTasks
-_0810B424: .4byte sub_810B428
- thumb_func_end sub_810B3DC
-
- thumb_func_start sub_810B428
-sub_810B428: @ 810B428
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0x6
- bl FieldEffectActiveListContains
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0810B4AC
- bl player_get_direction_lower_nybble
- ldr r6, _0810B4B4
- lsls r0, 24
- lsrs r0, 24
- str r0, [r6, 0x4]
- cmp r0, 0x1
- bne _0810B44E
- str r4, [r6, 0x8]
-_0810B44E:
- ldr r1, [r6, 0x4]
- cmp r1, 0x2
- bne _0810B458
- movs r0, 0x1
- str r0, [r6, 0x8]
-_0810B458:
- cmp r1, 0x3
- bne _0810B460
- movs r0, 0x2
- str r0, [r6, 0x8]
-_0810B460:
- cmp r1, 0x4
- bne _0810B468
- movs r0, 0x3
- str r0, [r6, 0x8]
-_0810B468:
- ldr r5, _0810B4B8
- ldrb r0, [r5, 0x5]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _0810B4BC
- adds r4, r0
- bl GetPlayerAvatarGraphicsIdByCurrentState
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_805B980
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0810B4C0
- adds r0, r1
- ldrb r1, [r6, 0x8]
- bl StartSpriteAnim
- movs r0, 0x6
- bl FieldEffectActiveListRemove
- ldr r1, _0810B4C4
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810B4C8
- str r1, [r0]
-_0810B4AC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810B4B4: .4byte gUnknown_0202FF84
-_0810B4B8: .4byte gPlayerAvatar
-_0810B4BC: .4byte gMapObjects
-_0810B4C0: .4byte gSprites
-_0810B4C4: .4byte gTasks
-_0810B4C8: .4byte sub_810B4CC
- thumb_func_end sub_810B428
-
- thumb_func_start sub_810B4CC
-sub_810B4CC: @ 810B4CC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0810B4FC
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x18]
- lsls r1, 16
- ldrh r0, [r0, 0x1A]
- orrs r1, r0
- bl _call_via_r1
- ldr r1, _0810B500
- movs r0, 0
- strb r0, [r1, 0x6]
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810B4FC: .4byte gTasks
-_0810B500: .4byte gPlayerAvatar
- thumb_func_end sub_810B4CC
-
- thumb_func_start hm_prepare_rocksmash
-hm_prepare_rocksmash: @ 810B504
- push {lr}
- movs r0, 0x56
- bl npc_before_player_of_type
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810B518
- movs r0, 0
- b _0810B526
-_0810B518:
- ldr r1, _0810B52C
- ldr r0, _0810B530
- str r0, [r1]
- ldr r1, _0810B534
- ldr r0, _0810B538
- str r0, [r1]
- movs r0, 0x1
-_0810B526:
- pop {r1}
- bx r1
- .align 2, 0
-_0810B52C: .4byte gUnknown_0300485C
-_0810B530: .4byte sub_808AB90
-_0810B534: .4byte gUnknown_03005CE4
-_0810B538: .4byte sub_810B53C
- thumb_func_end hm_prepare_rocksmash
-
- thumb_func_start sub_810B53C
-sub_810B53C: @ 810B53C
- push {lr}
- ldr r1, _0810B550
- ldr r0, _0810B554
- ldrb r0, [r0]
- str r0, [r1]
- ldr r0, _0810B558
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_0810B550: .4byte gUnknown_0202FF84
-_0810B554: .4byte gUnknown_03005CE0
-_0810B558: .4byte UseRockSmashScript
- thumb_func_end sub_810B53C
-
- thumb_func_start oei_rocksmash
-oei_rocksmash: @ 810B55C
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810B584
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _0810B588
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0x13
- bl sav12_xor_increment
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0810B584: .4byte gTasks
-_0810B588: .4byte sub_810B58C
- thumb_func_end oei_rocksmash
-
- thumb_func_start sub_810B58C
-sub_810B58C: @ 810B58C
- push {lr}
- movs r0, 0x83
- bl PlaySE
- movs r0, 0x25
- bl FieldEffectActiveListRemove
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_810B58C
-
- thumb_func_start sub_810B5A4
-sub_810B5A4: @ 810B5A4
- push {lr}
- bl sub_80CA1C8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810B5B6
- movs r0, 0
- b _0810B5C4
-_0810B5B6:
- ldr r1, _0810B5C8
- ldr r0, _0810B5CC
- str r0, [r1]
- ldr r1, _0810B5D0
- ldr r0, _0810B5D4
- str r0, [r1]
- movs r0, 0x1
-_0810B5C4:
- pop {r1}
- bx r1
- .align 2, 0
-_0810B5C8: .4byte gUnknown_0300485C
-_0810B5CC: .4byte sub_808AB90
-_0810B5D0: .4byte gUnknown_03005CE4
-_0810B5D4: .4byte sub_810B5D8
- thumb_func_end sub_810B5A4
-
- thumb_func_start sub_810B5D8
-sub_810B5D8: @ 810B5D8
- push {lr}
- bl sub_8053014
- movs r0, 0x26
- bl FieldEffectStart
- ldr r0, _0810B5F0
- ldr r1, _0810B5F4
- ldrb r1, [r1]
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0810B5F0: .4byte gUnknown_0202FF84
-_0810B5F4: .4byte gUnknown_03005CE0
- thumb_func_end sub_810B5D8
-
- thumb_func_start sub_810B5F8
-sub_810B5F8: @ 810B5F8
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810B62C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _0810B630
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- bl sub_81473B8
- lsls r0, 24
- cmp r0, 0
- bne _0810B624
- movs r0, 0x1
- bl SetPlayerAvatarTransitionFlags
-_0810B624:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0810B62C: .4byte gTasks
-_0810B630: .4byte sub_810B634
- thumb_func_end sub_810B5F8
-
- thumb_func_start sub_810B634
-sub_810B634: @ 810B634
- push {r4,lr}
- movs r0, 0x26
- bl FieldEffectActiveListRemove
- bl sub_81473B8
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _0810B64E
- bl sub_8147408
- b _0810B666
-_0810B64E:
- ldr r0, _0810B66C
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810B670
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
-_0810B666:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810B66C: .4byte task08_080A1C44
-_0810B670: .4byte gTasks
- thumb_func_end sub_810B634
-
- thumb_func_start sub_810B674
-sub_810B674: @ 810B674
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTasks
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_810B674
-
- thumb_func_start sub_810B68C
-sub_810B68C: @ 810B68C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- ldr r1, _0810B6B0
- ldr r2, _0810B6B4
- ldr r0, _0810B6B8
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0810B6BC
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_0810B6B0: .4byte gBG2TilemapBuffer
-_0810B6B4: .4byte 0x06007800
-_0810B6B8: .4byte 0x040000d4
-_0810B6BC: .4byte 0x80000400
- thumb_func_end sub_810B68C
-
- thumb_func_start sub_810B6C0
-sub_810B6C0: @ 810B6C0
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _0810B6DC
- ldr r1, _0810B6E0
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x12
- bls _0810B6D2
- b _0810B960
-_0810B6D2:
- lsls r0, 2
- ldr r1, _0810B6E4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810B6DC: .4byte gMain
-_0810B6E0: .4byte 0x0000043c
-_0810B6E4: .4byte _0810B6E8
- .align 2, 0
-_0810B6E8:
- .4byte _0810B734
- .4byte _0810B764
- .4byte _0810B76A
- .4byte _0810B78C
- .4byte _0810B792
- .4byte _0810B7B4
- .4byte _0810B7C0
- .4byte _0810B7DC
- .4byte _0810B7E8
- .4byte _0810B804
- .4byte _0810B810
- .4byte _0810B830
- .4byte _0810B84C
- .4byte _0810B86A
- .4byte _0810B894
- .4byte _0810B89E
- .4byte _0810B8C4
- .4byte _0810B914
- .4byte _0810B934
-_0810B734:
- bl sub_80F9438
- bl sub_80F9368
- ldr r1, _0810B754
- ldr r2, _0810B758
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x44
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0810B75C
- ldr r0, _0810B760
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B754: .4byte REG_BG2CNT
-_0810B758: .4byte 0x00000f0a
-_0810B75C: .4byte gMain
-_0810B760: .4byte 0x0000043c
-_0810B764:
- bl remove_some_task
- b _0810B91C
-_0810B76A:
- bl ResetPaletteFade
- ldr r2, _0810B780
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r1, _0810B784
- ldr r0, _0810B788
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B780: .4byte gPaletteFade
-_0810B784: .4byte gMain
-_0810B788: .4byte 0x0000043c
-_0810B78C:
- bl ResetSpriteData
- b _0810B91C
-_0810B792:
- ldr r0, _0810B7A8
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _0810B79E
- bl ResetTasks
-_0810B79E:
- ldr r1, _0810B7AC
- ldr r0, _0810B7B0
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B7A8: .4byte gUnknown_02039244
-_0810B7AC: .4byte gMain
-_0810B7B0: .4byte 0x0000043c
-_0810B7B4:
- ldr r0, _0810B7BC
- bl SetUpWindowConfig
- b _0810B91C
- .align 2, 0
-_0810B7BC: .4byte gWindowConfig_81E6E34
-_0810B7C0:
- ldr r0, _0810B7D0
- bl SetUpWindowConfig
- ldr r1, _0810B7D4
- ldr r0, _0810B7D8
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B7D0: .4byte gWindowConfig_81E6E50
-_0810B7D4: .4byte gMain
-_0810B7D8: .4byte 0x0000043c
-_0810B7DC:
- ldr r0, _0810B7E4
- bl MultistepInitMenuWindowBegin
- b _0810B91C
- .align 2, 0
-_0810B7E4: .4byte gWindowConfig_81E6E34
-_0810B7E8:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _0810B7F2
- b _0810B960
-_0810B7F2:
- ldr r1, _0810B7FC
- ldr r0, _0810B800
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B7FC: .4byte gMain
-_0810B800: .4byte 0x0000043c
-_0810B804:
- ldr r0, _0810B80C
- bl MultistepInitMenuWindowBegin
- b _0810B91C
- .align 2, 0
-_0810B80C: .4byte gWindowConfig_81E6E50
-_0810B810:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _0810B81A
- b _0810B960
-_0810B81A:
- ldr r0, _0810B828
- ldr r1, _0810B82C
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- b _0810B91C
- .align 2, 0
-_0810B828: .4byte 0x02000000
-_0810B82C: .4byte 0x0001ffff
-_0810B830:
- bl sub_810B998
- lsls r0, 24
- cmp r0, 0
- bne _0810B83C
- b _0810B960
-_0810B83C:
- ldr r1, _0810B844
- ldr r0, _0810B848
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B844: .4byte gMain
-_0810B848: .4byte 0x0000043c
-_0810B84C:
- bl sub_80F944C
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- movs r0, 0
- movs r1, 0xB0
- movs r2, 0x8
- bl sub_80F953C
- movs r0, 0x1
- movs r1, 0xB0
- movs r2, 0x98
- bl sub_80F953C
- b _0810B91C
-_0810B86A:
- movs r0, 0x38
- movs r1, 0x40
- movs r2, 0
- bl sub_810BA50
- ldr r1, _0810B884
- ldr r2, _0810B888
- adds r1, r2
- strb r0, [r1]
- ldr r1, _0810B88C
- ldr r0, _0810B890
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B884: .4byte 0x02000000
-_0810B888: .4byte 0x0001fffe
-_0810B88C: .4byte gMain
-_0810B890: .4byte 0x0000043c
-_0810B894:
- bl sub_810BC98
- bl sub_810BD08
- b _0810B91C
-_0810B89E:
- bl sub_810BB0C
- bl sub_810BB30
- ldr r0, _0810B8B8
- ldrb r0, [r0, 0x1]
- bl sub_810BC84
- ldr r1, _0810B8BC
- ldr r0, _0810B8C0
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B8B8: .4byte gUnknown_02039248
-_0810B8BC: .4byte gMain
-_0810B8C0: .4byte 0x0000043c
-_0810B8C4:
- ldr r3, _0810B8FC
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _0810B900
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _0810B904
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0810B908
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xBA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0810B90C
- ldr r0, _0810B910
- adds r1, r0
- b _0810B922
- .align 2, 0
-_0810B8FC: .4byte 0x04000208
-_0810B900: .4byte 0x04000200
-_0810B904: .4byte REG_DISPSTAT
-_0810B908: .4byte sub_810B68C
-_0810B90C: .4byte gMain
-_0810B910: .4byte 0x0000043c
-_0810B914:
- bl sub_8055870
- cmp r0, 0x1
- beq _0810B960
-_0810B91C:
- ldr r1, _0810B92C
- ldr r2, _0810B930
- adds r1, r2
-_0810B922:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0810B960
- .align 2, 0
-_0810B92C: .4byte gMain
-_0810B930: .4byte 0x0000043c
-_0810B934:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, _0810B958
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _0810B95C
- bl SetMainCallback2
- movs r0, 0x1
- b _0810B962
- .align 2, 0
-_0810B958: .4byte gPaletteFade
-_0810B95C: .4byte sub_810B674
-_0810B960:
- movs r0, 0
-_0810B962:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810B6C0
-
- thumb_func_start sub_810B96C
-sub_810B96C: @ 810B96C
- push {lr}
-_0810B96E:
- bl sub_810B6C0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810B988
- ldr r0, _0810B984
- movs r1, 0
- bl CreateTask
- b _0810B994
- .align 2, 0
-_0810B984: .4byte sub_810BF7C
-_0810B988:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0810B96E
-_0810B994:
- pop {r0}
- bx r0
- thumb_func_end sub_810B96C
-
- thumb_func_start sub_810B998
-sub_810B998: @ 810B998
- push {lr}
- ldr r0, _0810B9B0
- ldr r1, _0810B9B4
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x4
- bhi _0810BA48
- lsls r0, 2
- ldr r1, _0810B9B8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810B9B0: .4byte 0x02000000
-_0810B9B4: .4byte 0x0001ffff
-_0810B9B8: .4byte _0810B9BC
- .align 2, 0
-_0810B9BC:
- .4byte _0810B9D0
- .4byte _0810B9E4
- .4byte _0810B9F8
- .4byte _0810BA08
- .4byte _0810BA28
-_0810B9D0:
- ldr r0, _0810B9DC
- ldr r1, _0810B9E0
- bl LZDecompressVram
- b _0810BA0E
- .align 2, 0
-_0810B9DC: .4byte gMenuPokeblock_Gfx
-_0810B9E0: .4byte 0x06008000
-_0810B9E4:
- ldr r0, _0810B9F0
- ldr r1, _0810B9F4
- bl sub_800D238
- b _0810BA0E
- .align 2, 0
-_0810B9F0: .4byte gMenuPokeblock_Tilemap
-_0810B9F4: .4byte gBG2TilemapBuffer
-_0810B9F8:
- ldr r0, _0810BA04
- movs r1, 0
- movs r2, 0xC0
- bl LoadCompressedPalette
- b _0810BA0E
- .align 2, 0
-_0810BA04: .4byte gMenuPokeblock_Pal
-_0810BA08:
- ldr r0, _0810BA1C
- bl LoadCompressedObjectPic
-_0810BA0E:
- ldr r1, _0810BA20
- ldr r0, _0810BA24
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0810BA48
- .align 2, 0
-_0810BA1C: .4byte gUnknown_083F7F74
-_0810BA20: .4byte 0x02000000
-_0810BA24: .4byte 0x0001ffff
-_0810BA28:
- ldr r0, _0810BA3C
- bl LoadCompressedObjectPalette
- ldr r0, _0810BA40
- ldr r1, _0810BA44
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- b _0810BA4A
- .align 2, 0
-_0810BA3C: .4byte gUnknown_083F7F7C
-_0810BA40: .4byte 0x02000000
-_0810BA44: .4byte 0x0001ffff
-_0810BA48:
- movs r0, 0
-_0810BA4A:
- pop {r1}
- bx r1
- thumb_func_end sub_810B998
-
- thumb_func_start sub_810BA50
-sub_810BA50: @ 810BA50
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _0810BA78
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0810BA78: .4byte gSpriteTemplate_83F7F84
- thumb_func_end sub_810BA50
-
- thumb_func_start sub_810BA7C
-sub_810BA7C: @ 810BA7C
- push {lr}
- ldr r1, _0810BA98
- strb r0, [r1]
- ldrb r2, [r1]
- cmp r2, 0x2
- beq _0810BAA8
- cmp r2, 0x3
- beq _0810BAC0
- ldr r1, _0810BA9C
- ldr r0, _0810BAA0
- str r0, [r1]
- ldr r1, _0810BAA4
- movs r0, 0x3
- b _0810BACA
- .align 2, 0
-_0810BA98: .4byte gUnknown_02039244
-_0810BA9C: .4byte gUnknown_03000758
-_0810BAA0: .4byte gUnknown_083F7F1C
-_0810BAA4: .4byte gUnknown_0203924C
-_0810BAA8:
- ldr r0, _0810BAB4
- ldr r1, _0810BAB8
- str r1, [r0]
- ldr r0, _0810BABC
- strb r2, [r0]
- b _0810BACC
- .align 2, 0
-_0810BAB4: .4byte gUnknown_03000758
-_0810BAB8: .4byte gUnknown_083F7F1F
-_0810BABC: .4byte gUnknown_0203924C
-_0810BAC0:
- ldr r1, _0810BAD0
- ldr r0, _0810BAD4
- str r0, [r1]
- ldr r1, _0810BAD8
- movs r0, 0x2
-_0810BACA:
- strb r0, [r1]
-_0810BACC:
- pop {r0}
- bx r0
- .align 2, 0
-_0810BAD0: .4byte gUnknown_03000758
-_0810BAD4: .4byte gUnknown_083F7F21
-_0810BAD8: .4byte gUnknown_0203924C
- thumb_func_end sub_810BA7C
-
- thumb_func_start sub_810BADC
-sub_810BADC: @ 810BADC
- push {lr}
- movs r0, 0x2
- bl sub_810BA7C
- ldr r0, _0810BAF0
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0810BAF0: .4byte sub_810B96C
- thumb_func_end sub_810BADC
-
- thumb_func_start sub_810BAF4
-sub_810BAF4: @ 810BAF4
- push {lr}
- movs r0, 0x3
- bl sub_810BA7C
- ldr r0, _0810BB08
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0810BB08: .4byte sub_810B96C
- thumb_func_end sub_810BAF4
-
- thumb_func_start sub_810BB0C
-sub_810BB0C: @ 810BB0C
- push {lr}
- ldr r0, _0810BB28
- bl BasicInitMenuWindow
- ldr r0, _0810BB2C
- bl itemid_get_item
- movs r1, 0x2
- movs r2, 0x1
- movs r3, 0x48
- bl sub_8072BD8
- pop {r0}
- bx r0
- .align 2, 0
-_0810BB28: .4byte gWindowConfig_81E6E34
-_0810BB2C: .4byte 0x00000111
- thumb_func_end sub_810BB0C
-
- thumb_func_start sub_810BB30
-sub_810BB30: @ 810BB30
- push {lr}
- ldr r0, _0810BB70
- bl BasicInitMenuWindow
- ldr r0, _0810BB74
- movs r1, 0x2
- movs r2, 0xD
- bl MenuPrint
- ldr r0, _0810BB78
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- ldr r0, _0810BB7C
- movs r1, 0x2
- movs r2, 0x11
- bl MenuPrint
- ldr r0, _0810BB80
- movs r1, 0x8
- movs r2, 0xD
- bl MenuPrint
- ldr r0, _0810BB84
- movs r1, 0x8
- movs r2, 0xF
- bl MenuPrint
- pop {r0}
- bx r0
- .align 2, 0
-_0810BB70: .4byte gWindowConfig_81E6E34
-_0810BB74: .4byte gContestStatsText_Spicy
-_0810BB78: .4byte gContestStatsText_Dry
-_0810BB7C: .4byte gContestStatsText_Sweet
-_0810BB80: .4byte gContestStatsText_Bitter
-_0810BB84: .4byte gContestStatsText_Sour
- thumb_func_end sub_810BB30
-
- thumb_func_start sub_810BB88
-sub_810BB88: @ 810BB88
- 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
- ldr r0, _0810BBF4
- bl BasicInitMenuWindow
- mov r6, r8
- adds r0, r6, 0
- adds r0, 0x8
- cmp r6, r0
- bgt _0810BC6C
- ldr r0, _0810BBF8
- mov r9, r0
- ldr r1, _0810BBFC
- mov r10, r1
-_0810BBB0:
- mov r1, r8
- subs r0, r6, r1
- lsls r0, 25
- lsrs r7, r0, 24
- ldr r0, _0810BC00
- ldrb r0, [r0, 0x2]
- cmp r6, r0
- bne _0810BC08
- mov r0, r9
- ldr r1, _0810BC04
- movs r2, 0x78
- movs r3, 0
- bl sub_8072C74
- movs r2, 0x1
- orrs r2, r7
- mov r0, r9
- movs r1, 0xF
- bl MenuPrint
- mov r0, r8
- adds r0, 0x8
- cmp r6, r0
- beq _0810BC6C
- adds r1, r7, 0x3
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0xF
- movs r2, 0x1D
- movs r3, 0x12
- bl MenuZeroFillWindowRect
- b _0810BC6C
- .align 2, 0
-_0810BBF4: .4byte gWindowConfig_81E6E34
-_0810BBF8: .4byte gStringVar1
-_0810BBFC: .4byte gSaveBlock1
-_0810BC00: .4byte gUnknown_02039248
-_0810BC04: .4byte gContestStatsText_StowCase
-_0810BC08:
- lsls r5, r6, 3
- mov r1, r10
- adds r0, r5, r1
- movs r1, 0xFF
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- ldr r1, _0810BC7C
- adds r0, r1
- ldr r1, [r0]
- mov r0, r9
- movs r2, 0x5E
- movs r3, 0
- bl sub_8072C74
- adds r4, r0, 0
- movs r0, 0xFC
- strb r0, [r4]
- movs r0, 0x14
- strb r0, [r4, 0x1]
- movs r0, 0x6
- strb r0, [r4, 0x2]
- adds r4, 0x3
- ldr r0, _0810BC80
- adds r5, r0
- adds r0, r5, 0
- bl sub_810C9B0
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- movs r2, 0x1
- orrs r2, r7
- mov r0, r9
- movs r1, 0xF
- bl MenuPrint
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- mov r0, r8
- adds r0, 0x8
- cmp r6, r0
- ble _0810BBB0
-_0810BC6C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BC7C: .4byte gUnknown_083F7EB8
-_0810BC80: .4byte gSaveBlock1 + 0x7F8
- thumb_func_end sub_810BB88
-
- thumb_func_start sub_810BC84
-sub_810BC84: @ 810BC84
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_810BB88
- movs r0, 0
- bl sub_810BDAC
- pop {r0}
- bx r0
- thumb_func_end sub_810BC84
-
- thumb_func_start sub_810BC98
-sub_810BC98: @ 810BC98
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r2, 0
- ldr r0, _0810BD00
- mov r9, r0
-_0810BCA6:
- adds r1, r2, 0x1
- lsls r0, r1, 16
- lsrs r5, r0, 16
- mov r8, r1
- cmp r5, 0x27
- bhi _0810BCE8
- lsls r1, r2, 3
- mov r2, r9
- adds r0, r1, r2
- movs r2, 0xFF
- lsls r2, 3
- adds r7, r0, r2
- ldr r0, _0810BD04
- mov r12, r0
- adds r6, r1, r0
-_0810BCC4:
- ldrb r0, [r7]
- cmp r0, 0
- bne _0810BCDE
- ldr r3, [r6]
- ldr r4, [r6, 0x4]
- lsls r2, r5, 3
- add r2, r12
- ldr r0, [r2]
- ldr r1, [r2, 0x4]
- str r0, [r6]
- str r1, [r6, 0x4]
- str r3, [r2]
- str r4, [r2, 0x4]
-_0810BCDE:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x27
- bls _0810BCC4
-_0810BCE8:
- mov r1, r8
- lsls r0, r1, 16
- lsrs r2, r0, 16
- cmp r2, 0x26
- bls _0810BCA6
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BD00: .4byte gSaveBlock1
-_0810BD04: .4byte gSaveBlock1 + 0x7F8
- thumb_func_end sub_810BC98
-
- thumb_func_start sub_810BD08
-sub_810BD08: @ 810BD08
- push {r4,r5,lr}
- ldr r1, _0810BD5C
- movs r0, 0
- strb r0, [r1, 0x2]
- movs r2, 0
- ldr r5, _0810BD60
- movs r4, 0xFF
- lsls r4, 3
- adds r3, r1, 0
-_0810BD1A:
- lsls r0, r2, 3
- adds r0, r5
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0810BD2C
- ldrb r0, [r3, 0x2]
- adds r0, 0x1
- strb r0, [r3, 0x2]
-_0810BD2C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x27
- bls _0810BD1A
- ldrb r0, [r1, 0x2]
- cmp r0, 0x7
- bls _0810BD3E
- movs r0, 0x8
-_0810BD3E:
- strb r0, [r1, 0x3]
- ldrb r2, [r1, 0x1]
- adds r0, r2, 0
- adds r0, 0x8
- ldrb r3, [r1, 0x2]
- cmp r0, r3
- ble _0810BD54
- cmp r2, 0
- beq _0810BD54
- subs r0, r2, 0x1
- strb r0, [r1, 0x1]
-_0810BD54:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BD5C: .4byte gUnknown_02039248
-_0810BD60: .4byte gSaveBlock1
- thumb_func_end sub_810BD08
-
- thumb_func_start sub_810BD64
-sub_810BD64: @ 810BD64
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r5, _0810BDA4
- ldr r4, _0810BDA8
-_0810BD70:
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, 0x1
- lsls r0, 5
- adds r1, r2, 0
- adds r1, 0xF
- adds r0, r1
- lsls r0, 1
- adds r0, r4
- strh r3, [r0]
- ldrb r0, [r5]
- lsls r0, 6
- adds r0, 0x40
- adds r0, r1
- lsls r0, 1
- adds r0, r4
- strh r3, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xD
- bls _0810BD70
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BDA4: .4byte gUnknown_02039248
-_0810BDA8: .4byte gBG2TilemapBuffer
- thumb_func_end sub_810BD64
-
- thumb_func_start sub_810BDAC
-sub_810BDAC: @ 810BDAC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- cmp r0, 0
- bne _0810BDCC
- ldr r0, _0810BDC4
- ldr r1, _0810BDC8
- bl sub_810BD64
- b _0810BDD4
- .align 2, 0
-_0810BDC4: .4byte 0x00001005
-_0810BDC8: .4byte 0x00001014
-_0810BDCC:
- ldr r0, _0810BDE8
- ldr r1, _0810BDEC
- bl sub_810BD64
-_0810BDD4:
- ldr r0, _0810BDF0
- ldrb r0, [r0, 0x1]
- cmp r0, 0
- beq _0810BDF4
- movs r0, 0
- movs r1, 0
- bl sub_80F979C
- b _0810BDFC
- .align 2, 0
-_0810BDE8: .4byte 0x00002005
-_0810BDEC: .4byte 0x00002014
-_0810BDF0: .4byte gUnknown_02039248
-_0810BDF4:
- movs r0, 0
- movs r1, 0x1
- bl sub_80F979C
-_0810BDFC:
- ldr r2, _0810BE1C
- ldrb r0, [r2, 0x2]
- ldrb r1, [r2, 0x3]
- cmp r0, r1
- bls _0810BE20
- ldrb r0, [r2, 0x1]
- ldrb r1, [r2, 0x3]
- adds r0, r1
- ldrb r2, [r2, 0x2]
- cmp r0, r2
- beq _0810BE20
- movs r0, 0x1
- movs r1, 0
- bl sub_80F979C
- b _0810BE28
- .align 2, 0
-_0810BE1C: .4byte gUnknown_02039248
-_0810BE20:
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80F979C
-_0810BE28:
- movs r6, 0
- ldr r7, _0810BE94
- movs r0, 0xF
- mov r8, r0
-_0810BE30:
- adds r0, r6, 0
- movs r1, 0x3
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 18
- ldr r1, _0810BE98
- adds r4, r1
- adds r0, r6, 0
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- adds r5, r4, r1
- ldr r1, _0810BE9C
- ldrb r2, [r1]
- ldrb r0, [r1, 0x1]
- adds r0, r2, r0
- ldrb r1, [r1, 0x2]
- cmp r0, r1
- beq _0810BEB8
- lsls r0, 3
- ldr r1, _0810BEA0
- adds r0, r1
- adds r4, r6, 0x1
- lsls r1, r4, 24
- lsrs r1, 24
- bl sub_810CA9C
- lsls r0, 16
- cmp r0, 0
- ble _0810BEA4
- lsls r1, r5, 1
- adds r1, r7
- lsls r2, r6, 12
- adds r0, r2, 0
- adds r0, 0x17
- strh r0, [r1]
- adds r0, r5, 0
- adds r0, 0x20
- lsls r0, 1
- adds r0, r7
- adds r2, 0x18
- strh r2, [r0]
- b _0810BECC
- .align 2, 0
-_0810BE94: .4byte gBG2TilemapBuffer
-_0810BE98: .4byte 0x000001a1
-_0810BE9C: .4byte gUnknown_02039248
-_0810BEA0: .4byte gSaveBlock1 + 0x7F8
-_0810BEA4:
- lsls r0, r5, 1
- adds r0, r7
- mov r1, r8
- strh r1, [r0]
- adds r0, r5, 0
- adds r0, 0x20
- lsls r0, 1
- adds r0, r7
- strh r1, [r0]
- b _0810BECC
-_0810BEB8:
- lsls r0, r5, 1
- adds r0, r7
- mov r1, r8
- strh r1, [r0]
- adds r0, r5, 0
- adds r0, 0x20
- lsls r0, 1
- adds r0, r7
- strh r1, [r0]
- adds r4, r6, 0x1
-_0810BECC:
- lsls r0, r4, 24
- lsrs r6, r0, 24
- cmp r6, 0x4
- bls _0810BE30
- ldr r0, _0810BF10
- bl BasicInitMenuWindow
- ldr r0, _0810BF14
- ldrb r2, [r0]
- ldrb r1, [r0, 0x1]
- adds r2, r1
- ldrb r0, [r0, 0x2]
- cmp r2, r0
- beq _0810BF20
- ldr r4, _0810BF18
- lsls r0, r2, 3
- ldr r1, _0810BF1C
- adds r0, r1
- bl sub_810C9E8
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- movs r2, 0x10
- movs r3, 0x1
- bl sub_8072C14
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0x11
- bl MenuPrint
- b _0810BF2C
- .align 2, 0
-_0810BF10: .4byte gWindowConfig_81E6E34
-_0810BF14: .4byte gUnknown_02039248
-_0810BF18: .4byte gStringVar1
-_0810BF1C: .4byte gSaveBlock1 + 0x7F8
-_0810BF20:
- movs r0, 0xB
- movs r1, 0x11
- movs r2, 0xC
- movs r3, 0x12
- bl MenuZeroFillWindowRect
-_0810BF2C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810BDAC
-
- thumb_func_start sub_810BF38
-sub_810BF38: @ 810BF38
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0810BF6C
- ldr r0, _0810BF70
- ldr r1, _0810BF74
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0810BF78
- str r1, [r0]
- adds r0, r4, 0
- bl sub_810BDAC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810BF6C: .4byte gSprites
-_0810BF70: .4byte 0x02000000
-_0810BF74: .4byte 0x0001fffe
-_0810BF78: .4byte sub_810C8D4
- thumb_func_end sub_810BF38
-
- thumb_func_start sub_810BF7C
-sub_810BF7C: @ 810BF7C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r0, _0810BFB8
- ldrb r1, [r0, 0x7]
- movs r3, 0x80
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0810BF94
- b _0810C0B8
-_0810BF94:
- ldr r2, _0810BFBC
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0810BFCE
- ldr r4, _0810BFC0
- ldrb r0, [r4]
- cmp r0, 0
- beq _0810BFC4
- movs r0, 0x5
- movs r1, 0x14
- bl sub_810BD64
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- b _0810C00A
- .align 2, 0
-_0810BFB8: .4byte gPaletteFade
-_0810BFBC: .4byte gMain
-_0810BFC0: .4byte gUnknown_02039248
-_0810BFC4:
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _0810C0B8
- subs r0, 0x1
- b _0810C002
-_0810BFCE:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0810C012
- ldr r4, _0810BFF0
- ldrb r0, [r4]
- ldrb r1, [r4, 0x3]
- cmp r0, r1
- beq _0810BFF4
- movs r0, 0x5
- movs r1, 0x14
- bl sub_810BD64
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0810C00A
- .align 2, 0
-_0810BFF0: .4byte gUnknown_02039248
-_0810BFF4:
- ldrb r1, [r4, 0x1]
- ldrb r0, [r4]
- adds r0, r1, r0
- ldrb r2, [r4, 0x2]
- cmp r0, r2
- beq _0810C0B8
- adds r0, r1, 0x1
-_0810C002:
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x1]
- bl sub_810BB88
-_0810C00A:
- movs r0, 0
- bl sub_810BF38
- b _0810C0B8
-_0810C012:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0810C05C
- ldr r4, _0810C050
- ldrb r0, [r4, 0x1]
- ldrb r1, [r4]
- adds r0, r1
- ldrb r1, [r4, 0x2]
- cmp r0, r1
- beq _0810C0B8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_810BDAC
- ldr r1, _0810C054
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r4, 0x1]
- ldrb r2, [r4]
- adds r1, r2
- strh r1, [r0, 0x8]
- ldr r1, _0810C058
- str r1, [r0]
- b _0810C0B8
- .align 2, 0
-_0810C050: .4byte gUnknown_02039248
-_0810C054: .4byte gTasks
-_0810C058: .4byte sub_810C0C8
-_0810C05C:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810C09C
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0810C088
- ldrb r1, [r0, 0x1]
- ldrb r2, [r0]
- adds r1, r2
- ldrb r0, [r0, 0x2]
- cmp r1, r0
- bne _0810C094
- ldr r1, _0810C08C
- ldr r2, _0810C090
- adds r0, r2, 0
- strh r0, [r1]
- adds r0, r5, 0
- bl sub_810C31C
- b _0810C0B8
- .align 2, 0
-_0810C088: .4byte gUnknown_02039248
-_0810C08C: .4byte gScriptResult
-_0810C090: .4byte 0x0000ffff
-_0810C094:
- adds r0, r5, 0
- bl sub_810C368
- b _0810C0B8
-_0810C09C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810C0B8
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0810C0C0
- ldr r2, _0810C0C4
- adds r0, r2, 0
- strh r0, [r1]
- adds r0, r4, 0
- bl sub_810C31C
-_0810C0B8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C0C0: .4byte gScriptResult
-_0810C0C4: .4byte 0x0000ffff
- thumb_func_end sub_810BF7C
-
- thumb_func_start sub_810C0C8
-sub_810C0C8: @ 810C0C8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _0810C0F4
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0810C110
- ldr r4, _0810C0F8
- ldrb r0, [r4]
- cmp r0, 0
- beq _0810C0FC
- movs r0, 0x5
- movs r1, 0x14
- bl sub_810BD64
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- b _0810C158
- .align 2, 0
-_0810C0F4: .4byte gMain
-_0810C0F8: .4byte gUnknown_02039248
-_0810C0FC:
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _0810C1BA
- adds r0, r5, 0
- movs r1, 0
- bl sub_810C1C8
- ldrb r0, [r4, 0x1]
- subs r0, 0x1
- b _0810C150
-_0810C110:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0810C168
- ldr r4, _0810C134
- ldrb r0, [r4]
- ldrb r1, [r4, 0x3]
- cmp r0, r1
- beq _0810C138
- movs r0, 0x5
- movs r1, 0x14
- bl sub_810BD64
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0810C158
- .align 2, 0
-_0810C134: .4byte gUnknown_02039248
-_0810C138:
- ldrb r0, [r4, 0x1]
- ldrb r1, [r4]
- adds r0, r1
- ldrb r1, [r4, 0x2]
- cmp r0, r1
- beq _0810C1BA
- adds r0, r5, 0
- movs r1, 0
- bl sub_810C1C8
- ldrb r0, [r4, 0x1]
- adds r0, 0x1
-_0810C150:
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x1]
- bl sub_810BB88
-_0810C158:
- movs r0, 0x1
- bl sub_810BF38
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_810C1C8
- b _0810C1BA
-_0810C168:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810C17A
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0810C190
-_0810C17A:
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- movs r1, 0
- bl sub_810C1C8
- adds r0, r5, 0
- bl sub_810C23C
- b _0810C1AC
-_0810C190:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810C1BA
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- movs r1, 0
- bl sub_810C1C8
- movs r0, 0
- bl sub_810BDAC
-_0810C1AC:
- ldr r0, _0810C1C0
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0810C1C4
- str r0, [r1]
-_0810C1BA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C1C0: .4byte gTasks
-_0810C1C4: .4byte sub_810BF7C
- thumb_func_end sub_810C0C8
-
- thumb_func_start sub_810C1C8
-sub_810C1C8: @ 810C1C8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- ldr r6, _0810C22C
- cmp r1, 0
- bne _0810C1D8
- movs r6, 0x5
-_0810C1D8:
- ldr r1, _0810C230
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldr r2, _0810C234
- ldrb r1, [r2, 0x1]
- ldrh r0, [r0, 0x8]
- subs r0, r1
- lsls r1, r0, 16
- lsrs r0, r1, 16
- cmp r0, 0x8
- bhi _0810C226
- asrs r0, r1, 16
- ldrb r2, [r2]
- cmp r0, r2
- beq _0810C226
- movs r2, 0
- lsls r0, 1
- adds r1, r0, 0x1
- lsls r5, r1, 5
- ldr r3, _0810C238
- adds r0, 0x2
- lsls r4, r0, 5
-_0810C208:
- adds r0, r2, 0
- adds r0, 0xF
- adds r1, r5, r0
- lsls r1, 1
- adds r1, r3
- strh r6, [r1]
- adds r0, r4, r0
- lsls r0, 1
- adds r0, r3
- strh r6, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xD
- bls _0810C208
-_0810C226:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C22C: .4byte 0x00001005
-_0810C230: .4byte gTasks
-_0810C234: .4byte gUnknown_02039248
-_0810C238: .4byte gBG2TilemapBuffer
- thumb_func_end sub_810C1C8
-
- thumb_func_start sub_810C23C
-sub_810C23C: @ 810C23C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r7, _0810C25C
- ldrb r0, [r7]
- ldrb r2, [r7, 0x1]
- adds r0, r2
- lsls r0, 24
- lsrs r0, 24
- ldrb r2, [r7, 0x2]
- cmp r0, r2
- bne _0810C260
- movs r0, 0
- bl sub_810BDAC
- b _0810C2A2
- .align 2, 0
-_0810C25C: .4byte gUnknown_02039248
-_0810C260:
- ldr r4, _0810C2A8
- lsls r3, r0, 3
- movs r0, 0xFF
- lsls r0, 3
- adds r4, r0
- adds r3, r4
- ldr r5, [r3]
- ldr r6, [r3, 0x4]
- ldr r0, _0810C2AC
- lsls r2, r1, 2
- adds r2, r1
- lsls r2, 3
- adds r2, r0
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- lsls r0, 3
- adds r0, r4
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r3]
- str r1, [r3, 0x4]
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- lsls r0, 3
- adds r0, r4
- str r5, [r0]
- str r6, [r0, 0x4]
- ldrb r0, [r7, 0x1]
- bl sub_810BB88
- movs r0, 0
- bl sub_810BDAC
-_0810C2A2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C2A8: .4byte gSaveBlock1
-_0810C2AC: .4byte gTasks
- thumb_func_end sub_810C23C
-
- thumb_func_start sub_810C2B0
-sub_810C2B0: @ 810C2B0
- push {lr}
- movs r0, 0
- bl SetBgTilemapBuffer
- movs r0, 0x1
- bl SetBgTilemapBuffer
- bl BuyMenuFreeMemory
- pop {r0}
- bx r0
- thumb_func_end sub_810C2B0
-
- thumb_func_start sub_810C2C8
-sub_810C2C8: @ 810C2C8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0810C308
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810C300
- ldr r4, _0810C30C
- ldrb r0, [r4]
- cmp r0, 0x3
- bne _0810C2E8
- ldr r1, _0810C310
- ldr r0, _0810C314
- str r0, [r1]
-_0810C2E8:
- bl sub_810C2B0
- ldr r0, _0810C318
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_0810C300:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C308: .4byte gPaletteFade
-_0810C30C: .4byte gUnknown_02039244
-_0810C310: .4byte gUnknown_0300485C
-_0810C314: .4byte sub_8080990
-_0810C318: .4byte gUnknown_083F7EA8
- thumb_func_end sub_810C2C8
-
- thumb_func_start sub_810C31C
-sub_810C31C: @ 810C31C
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- negs r0, r0
- movs r5, 0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0810C358
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _0810C342
- ldr r0, _0810C35C
- strh r5, [r0]
-_0810C342:
- ldr r0, _0810C360
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0810C364
- str r0, [r1]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C358: .4byte gUnknown_02039244
-_0810C35C: .4byte word_203855E
-_0810C360: .4byte gTasks
-_0810C364: .4byte sub_810C2C8
- thumb_func_end sub_810C31C
-
- thumb_func_start sub_810C368
-sub_810C368: @ 810C368
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- ldr r0, _0810C3E8
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _0810C37C
- movs r4, 0x2
-_0810C37C:
- movs r0, 0
- bl sub_80F98A4
- movs r0, 0x1
- bl sub_80F98A4
- ldr r0, _0810C3EC
- bl BasicInitMenuWindow
- adds r1, r4, 0x4
- movs r0, 0x7
- movs r2, 0xD
- movs r3, 0xB
- bl MenuDrawTextWindow
- adds r4, 0x5
- ldr r5, _0810C3F0
- ldrb r2, [r5]
- ldr r3, _0810C3F4
- ldr r0, _0810C3F8
- ldr r0, [r0]
- str r0, [sp]
- movs r0, 0x8
- adds r1, r4, 0
- bl PrintMenuItemsReordered
- ldrb r3, [r5]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x5
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x8
- adds r2, r4, 0
- bl InitMenu
- ldr r2, _0810C3FC
- ldr r1, _0810C400
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- adds r0, r1
- strh r0, [r2]
- ldr r1, _0810C404
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C408
- str r1, [r0]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C3E8: .4byte gUnknown_02039244
-_0810C3EC: .4byte gWindowConfig_81E6E50
-_0810C3F0: .4byte gUnknown_0203924C
-_0810C3F4: .4byte gUnknown_083F7EF4
-_0810C3F8: .4byte gUnknown_03000758
-_0810C3FC: .4byte word_203855E
-_0810C400: .4byte gUnknown_02039248
-_0810C404: .4byte gTasks
-_0810C408: .4byte sub_810C40C
- thumb_func_end sub_810C368
-
- thumb_func_start sub_810C40C
-sub_810C40C: @ 810C40C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r2, _0810C43C
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0810C440
- bl GetMenuCursorPos
- lsls r0, 24
- cmp r0, 0
- beq _0810C4BC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _0810C4BC
- .align 2, 0
-_0810C43C: .4byte gMain
-_0810C440:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0810C46C
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810C468
- ldrb r1, [r1]
- subs r1, 0x1
- cmp r0, r1
- beq _0810C4BC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _0810C4BC
- .align 2, 0
-_0810C468: .4byte gUnknown_0203924C
-_0810C46C:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810C4A8
- movs r0, 0x5
- bl PlaySE
- ldr r4, _0810C4A0
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810C4A4
- ldr r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 3
- adds r4, 0x4
- adds r0, r4
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- b _0810C4BC
- .align 2, 0
-_0810C4A0: .4byte gUnknown_083F7EF4
-_0810C4A4: .4byte gUnknown_03000758
-_0810C4A8:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810C4BC
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_810C748
-_0810C4BC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_810C40C
-
- thumb_func_start sub_810C4C4
-sub_810C4C4: @ 810C4C4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0810C4F8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810C4F0
- bl sub_810C2B0
- ldr r0, _0810C4FC
- ldrh r0, [r0]
- lsls r0, 3
- ldr r1, _0810C500
- adds r0, r1
- ldr r1, _0810C504
- bl sub_8136130
- adds r0, r4, 0
- bl DestroyTask
-_0810C4F0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C4F8: .4byte gPaletteFade
-_0810C4FC: .4byte word_203855E
-_0810C500: .4byte gSaveBlock1 + 0x7F8
-_0810C504: .4byte sub_810B96C
- thumb_func_end sub_810C4C4
-
- thumb_func_start sub_810C508
-sub_810C508: @ 810C508
- 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, _0810C538
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C53C
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C538: .4byte gTasks
-_0810C53C: .4byte sub_810C4C4
- thumb_func_end sub_810C508
-
- thumb_func_start sub_810C540
-sub_810C540: @ 810C540
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0810C5A0
- bl BasicInitMenuWindow
- bl sub_8072DEC
- movs r0, 0x7
- movs r1, 0x4
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- ldr r0, _0810C5A4
- ldr r4, _0810C5A8
- ldr r3, _0810C5AC
- ldr r2, _0810C5B0
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- adds r1, r2
- lsls r1, 3
- adds r1, r3
- movs r2, 0xFF
- lsls r2, 3
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r4
- ldr r1, [r1]
- bl StringCopy
- ldr r4, _0810C5B4
- ldr r1, _0810C5B8
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _0810C5BC
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C5A0: .4byte gWindowConfig_81E6E50
-_0810C5A4: .4byte gStringVar1
-_0810C5A8: .4byte gUnknown_083F7EB8
-_0810C5AC: .4byte gSaveBlock1
-_0810C5B0: .4byte gUnknown_02039248
-_0810C5B4: .4byte gStringVar4
-_0810C5B8: .4byte gContestStatsText_ThrowAwayPrompt
-_0810C5BC: .4byte sub_810C5EC
- thumb_func_end sub_810C540
-
- thumb_func_start sub_810C5C0
-sub_810C5C0: @ 810C5C0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80F979C
- ldr r1, _0810C5E4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C5E8
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C5E4: .4byte gTasks
-_0810C5E8: .4byte sub_810C540
- thumb_func_end sub_810C5C0
-
- thumb_func_start sub_810C5EC
-sub_810C5EC: @ 810C5EC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x7
- movs r1, 0x6
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _0810C60C
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C60C: .4byte gUnknown_083F7F24
- thumb_func_end sub_810C5EC
-
- thumb_func_start sub_810C610
-sub_810C610: @ 810C610
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x7
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- ldr r1, _0810C658
- ldrb r0, [r1, 0x1]
- ldrb r1, [r1]
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl sub_810CA6C
- ldr r5, _0810C65C
- ldr r1, _0810C660
- adds r0, r5, 0
- bl StringExpandPlaceholders
- ldr r2, _0810C664
- adds r0, r4, 0
- adds r1, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- bl sub_810BC98
- bl sub_810BD08
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C658: .4byte gUnknown_02039248
-_0810C65C: .4byte gStringVar4
-_0810C660: .4byte gContestStatsText_WasThrownAway
-_0810C664: .4byte sub_810C704
- thumb_func_end sub_810C610
-
- thumb_func_start sub_810C668
-sub_810C668: @ 810C668
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- bl sub_80F98DC
- movs r0, 0x1
- bl sub_80F98DC
- ldr r2, _0810C6CC
- ldrb r0, [r2, 0x2]
- ldrb r1, [r2, 0x3]
- cmp r0, r1
- bls _0810C698
- ldrb r0, [r2, 0x1]
- ldrb r1, [r2, 0x3]
- adds r0, r1
- ldrb r2, [r2, 0x2]
- cmp r0, r2
- beq _0810C698
- movs r0, 0x1
- movs r1, 0
- bl sub_80F979C
-_0810C698:
- ldr r0, _0810C6D0
- bl BasicInitMenuWindow
- movs r0, 0x7
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _0810C6D4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C6D8
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C6CC: .4byte gUnknown_02039248
-_0810C6D0: .4byte gWindowConfig_81E6E50
-_0810C6D4: .4byte gTasks
-_0810C6D8: .4byte sub_810BF7C
- thumb_func_end sub_810C668
-
- thumb_func_start sub_810C6DC
-sub_810C6DC: @ 810C6DC
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0810C700
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810C6F6
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810C6FC
-_0810C6F6:
- adds r0, r2, 0
- bl sub_810C668
-_0810C6FC:
- pop {r0}
- bx r0
- .align 2, 0
-_0810C700: .4byte gMain
- thumb_func_end sub_810C6DC
-
- thumb_func_start sub_810C704
-sub_810C704: @ 810C704
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0810C738
- bl BasicInitMenuWindow
- ldr r0, _0810C73C
- ldrb r0, [r0, 0x1]
- bl sub_810BC84
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80F979C
- ldr r1, _0810C740
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C744
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C738: .4byte gWindowConfig_81E6E34
-_0810C73C: .4byte gUnknown_02039248
-_0810C740: .4byte gTasks
-_0810C744: .4byte sub_810C6DC
- thumb_func_end sub_810C704
-
- thumb_func_start sub_810C748
-sub_810C748: @ 810C748
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl sub_80F98DC
- movs r0, 0x1
- bl sub_80F98DC
- bl sub_8072DEC
- movs r0, 0x7
- movs r1, 0x4
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- ldr r1, _0810C780
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C784
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C780: .4byte gTasks
-_0810C784: .4byte sub_810BF7C
- thumb_func_end sub_810C748
-
- thumb_func_start sub_810C788
-sub_810C788: @ 810C788
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0810C834
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- ldr r7, _0810C838
- ldrh r1, [r7]
- lsls r1, 3
- ldr r5, _0810C83C
- adds r1, r5
- bl sub_810CAE4
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _0810C840
- ldr r2, _0810C844
- ldr r1, _0810C848
- adds r5, r1
- ldrh r1, [r7]
- lsls r1, 3
- adds r1, r5
- movs r6, 0xFF
- lsls r6, 3
- adds r1, r6
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- ldrb r0, [r7]
- bl sub_810CA6C
- ldrh r0, [r7]
- lsls r0, 3
- adds r0, r5
- adds r0, r6
- ldrb r0, [r0]
- lsls r0, 8
- strh r0, [r7]
- lsls r4, 16
- asrs r4, 16
- cmp r4, 0
- bne _0810C7F4
- adds r0, 0x1
- strh r0, [r7]
-_0810C7F4:
- cmp r4, 0
- ble _0810C7FE
- ldrh r0, [r7]
- adds r0, 0x2
- strh r0, [r7]
-_0810C7FE:
- cmp r4, 0
- bge _0810C808
- ldrh r0, [r7]
- adds r0, 0x3
- strh r0, [r7]
-_0810C808:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0810C84C
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C850
- str r1, [r0]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C834: .4byte gEnemyParty
-_0810C838: .4byte word_203855E
-_0810C83C: .4byte gSaveBlock1 + 0x7F8
-_0810C840: .4byte gUnknown_030041C0
-_0810C844: .4byte gUnknown_083F7EB8
-_0810C848: .4byte 0xfffff808
-_0810C84C: .4byte gTasks
-_0810C850: .4byte sub_810C2C8
- thumb_func_end sub_810C788
-
- thumb_func_start sub_810C854
-sub_810C854: @ 810C854
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _0810C8B8
- ldrb r0, [r4]
- bl sub_80C8478
- ldr r0, _0810C8BC
- ldr r3, _0810C8C0
- ldr r2, _0810C8C4
- ldrh r1, [r4]
- lsls r1, 3
- adds r1, r2
- movs r2, 0xFF
- lsls r2, 3
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r3
- ldr r1, [r1]
- bl StringCopy
- ldr r1, _0810C8C8
- ldrh r0, [r4]
- strh r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- bl sub_810CA6C
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0810C8CC
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810C8D0
- str r1, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C8B8: .4byte word_203855E
-_0810C8BC: .4byte gStringVar1
-_0810C8C0: .4byte gUnknown_083F7EB8
-_0810C8C4: .4byte gSaveBlock1
-_0810C8C8: .4byte gScriptResult
-_0810C8CC: .4byte gTasks
-_0810C8D0: .4byte sub_810C2C8
- thumb_func_end sub_810C854
-
- thumb_func_start sub_810C8D4
-sub_810C8D4: @ 810C8D4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- ble _0810C8E4
- movs r0, 0
- strh r0, [r4, 0x2E]
-_0810C8E4:
- movs r0, 0x2E
- ldrsh r5, [r4, r0]
- cmp r5, 0
- beq _0810C8F2
- cmp r5, 0x1
- beq _0810C918
- b _0810C944
-_0810C8F2:
- 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, _0810C914
- str r0, [r4, 0x10]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- strh r5, [r4, 0x30]
- b _0810C944
- .align 2, 0
-_0810C914: .4byte gUnknown_083F7F70
-_0810C918:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- ble _0810C944
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x1]
- strh r2, [r4, 0x2E]
- strh r2, [r4, 0x30]
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldr r0, _0810C94C
- str r0, [r4, 0x1C]
-_0810C944:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810C94C: .4byte SpriteCallbackDummy
- thumb_func_end sub_810C8D4
-
- thumb_func_start sub_810C950
-sub_810C950: @ 810C950
- lsls r0, 24
- ldr r1, _0810C988
- lsrs r0, 21
- adds r0, r1
- movs r2, 0xFF
- lsls r2, 3
- adds r1, r0, r2
- movs r2, 0
- strb r2, [r1]
- ldr r3, _0810C98C
- adds r1, r0, r3
- strb r2, [r1]
- adds r3, 0x1
- adds r1, r0, r3
- strb r2, [r1]
- adds r3, 0x1
- adds r1, r0, r3
- strb r2, [r1]
- adds r3, 0x1
- adds r1, r0, r3
- strb r2, [r1]
- adds r3, 0x1
- adds r1, r0, r3
- strb r2, [r1]
- ldr r1, _0810C990
- adds r0, r1
- strb r2, [r0]
- bx lr
- .align 2, 0
-_0810C988: .4byte gSaveBlock1
-_0810C98C: .4byte 0x000007f9
-_0810C990: .4byte 0x000007fe
- thumb_func_end sub_810C950
-
- thumb_func_start sub_810C994
-sub_810C994: @ 810C994
- push {r4,lr}
- movs r4, 0
-_0810C998:
- adds r0, r4, 0
- bl sub_810C950
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x27
- bls _0810C998
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810C994
-
- thumb_func_start sub_810C9B0
-sub_810C9B0: @ 810C9B0
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x1
- bl sub_810CA9C
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0x1
-_0810C9C0:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_810CA9C
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- bcs _0810C9D8
- adds r5, r0, 0
-_0810C9D8:
- adds r1, r4, 0
- cmp r1, 0x4
- bls _0810C9C0
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_810C9B0
-
- thumb_func_start sub_810C9E8
-sub_810C9E8: @ 810C9E8
- push {lr}
- movs r1, 0x6
- bl sub_810CA9C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x63
- bls _0810C9FA
- movs r0, 0x63
-_0810C9FA:
- pop {r1}
- bx r1
- thumb_func_end sub_810C9E8
-
- thumb_func_start sub_810CA00
-sub_810CA00: @ 810CA00
- push {lr}
- movs r1, 0
- ldr r3, _0810CA1C
- movs r2, 0xFF
- lsls r2, 3
-_0810CA0A:
- lsls r0, r1, 3
- adds r0, r3
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0810CA20
- lsls r0, r1, 24
- asrs r0, 24
- b _0810CA2E
- .align 2, 0
-_0810CA1C: .4byte gSaveBlock1
-_0810CA20:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x27
- bls _0810CA0A
- movs r0, 0x1
- negs r0, r0
-_0810CA2E:
- pop {r1}
- bx r1
- thumb_func_end sub_810CA00
-
- thumb_func_start sub_810CA34
-sub_810CA34: @ 810CA34
- push {r4,lr}
- adds r4, r0, 0
- bl sub_810CA00
- lsls r0, 24
- asrs r2, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- beq _0810CA64
- ldr r0, _0810CA60
- lsls r2, 3
- movs r1, 0xFF
- lsls r1, 3
- adds r0, r1
- adds r2, r0
- ldr r0, [r4]
- ldr r1, [r4, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
- movs r0, 0x1
- b _0810CA66
- .align 2, 0
-_0810CA60: .4byte gSaveBlock1
-_0810CA64:
- movs r0, 0
-_0810CA66:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810CA34
-
- thumb_func_start sub_810CA6C
-sub_810CA6C: @ 810CA6C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0810CA90
- lsls r0, r2, 3
- adds r0, r1
- movs r1, 0xFF
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0810CA94
- adds r0, r2, 0
- bl sub_810C950
- movs r0, 0x1
- b _0810CA96
- .align 2, 0
-_0810CA90: .4byte gSaveBlock1
-_0810CA94:
- movs r0, 0
-_0810CA96:
- pop {r1}
- bx r1
- thumb_func_end sub_810CA6C
-
- thumb_func_start sub_810CA9C
-sub_810CA9C: @ 810CA9C
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r1, 0
- bne _0810CAAC
- ldrb r0, [r0]
- b _0810CADE
-_0810CAAC:
- cmp r1, 0x1
- bne _0810CAB4
- ldrb r0, [r0, 0x1]
- b _0810CADE
-_0810CAB4:
- cmp r1, 0x2
- bne _0810CABC
- ldrb r0, [r0, 0x2]
- b _0810CADE
-_0810CABC:
- cmp r1, 0x3
- bne _0810CAC4
- ldrb r0, [r0, 0x3]
- b _0810CADE
-_0810CAC4:
- cmp r1, 0x4
- bne _0810CACC
- ldrb r0, [r0, 0x4]
- b _0810CADE
-_0810CACC:
- cmp r1, 0x5
- bne _0810CAD4
- ldrb r0, [r0, 0x5]
- b _0810CADE
-_0810CAD4:
- cmp r2, 0x6
- beq _0810CADC
- movs r0, 0
- b _0810CADE
-_0810CADC:
- ldrb r0, [r0, 0x6]
-_0810CADE:
- pop {r1}
- bx r1
- thumb_func_end sub_810CA9C
-
- thumb_func_start sub_810CAE4
-sub_810CAE4: @ 810CAE4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r8, r1
- lsls r0, 24
- lsrs r0, 24
- movs r6, 0
- movs r4, 0
- ldr r1, _0810CB40
- mov r9, r1
- lsls r1, r0, 2
- adds r7, r1, r0
-_0810CAFE:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, r8
- adds r1, r5, 0
- bl sub_810CA9C
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0
- ble _0810CB2A
- adds r0, r7, r4
- add r0, r9
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- muls r1, r0
- lsls r0, r6, 16
- asrs r0, 16
- adds r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
-_0810CB2A:
- adds r4, r5, 0
- cmp r4, 0x4
- bls _0810CAFE
- lsls r0, r6, 16
- asrs r0, 16
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810CB40: .4byte gUnknown_083F7E28
- thumb_func_end sub_810CAE4
-
- thumb_func_start sub_810CB44
-sub_810CB44: @ 810CB44
- push {r4,lr}
- adds r4, r1, 0
- movs r1, 0
- bl sub_810CA9C
- lsls r0, 24
- ldr r1, _0810CB64
- lsrs r0, 22
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringCopy
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810CB64: .4byte gUnknown_083F7EB8
- thumb_func_end sub_810CB44
-
- thumb_func_start sub_810CB68
-sub_810CB68: @ 810CB68
- push {r4-r7,lr}
- adds r6, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r7, _0810CB98
-_0810CB74:
- lsls r1, r4, 3
- ldr r0, _0810CB9C
- adds r1, r0
- adds r0, r5, 0
- bl sub_810CAE4
- lsls r0, 16
- cmp r0, 0
- ble _0810CBA0
- adds r0, r4, 0x1
- lsls r0, 2
- adds r0, r7
- ldr r1, [r0]
- adds r0, r6, 0
- bl StringCopy
- movs r0, 0x1
- b _0810CBAC
- .align 2, 0
-_0810CB98: .4byte gUnknown_083F7EB8
-_0810CB9C: .4byte gUnknown_083F7F9C
-_0810CBA0:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _0810CB74
- movs r0, 0
-_0810CBAC:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810CB68
-
- thumb_func_start sub_810CBB4
-sub_810CBB4: @ 810CBB4
- push {lr}
- ldr r0, _0810CBDC
- ldrb r0, [r0, 0x15]
- cmp r0, 0x1
- bne _0810CBF4
- ldr r0, _0810CBE0
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _0810CBF4
- ldr r1, _0810CBE4
- ldr r0, _0810CBE8
- str r0, [r1]
- ldr r1, _0810CBEC
- ldr r0, _0810CBF0
- str r0, [r1]
- movs r0, 0x1
- b _0810CBF6
- .align 2, 0
-_0810CBDC: .4byte gMapHeader
-_0810CBE0: .4byte 0x00000828
-_0810CBE4: .4byte gUnknown_0300485C
-_0810CBE8: .4byte sub_808AB90
-_0810CBEC: .4byte gUnknown_03005CE4
-_0810CBF0: .4byte sub_810CBFC
-_0810CBF4:
- movs r0, 0
-_0810CBF6:
- pop {r1}
- bx r1
- thumb_func_end sub_810CBB4
-
- thumb_func_start sub_810CBFC
-sub_810CBFC: @ 810CBFC
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810CC24
- ldr r1, _0810CC28
- ldrb r1, [r1]
- str r1, [r2]
- ldr r2, _0810CC2C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _0810CC30
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- pop {r0}
- bx r0
- .align 2, 0
-_0810CC24: .4byte gUnknown_0202FF84
-_0810CC28: .4byte gUnknown_03005CE0
-_0810CC2C: .4byte gTasks
-_0810CC30: .4byte sub_810CC34
- thumb_func_end sub_810CBFC
-
- thumb_func_start sub_810CC34
-sub_810CC34: @ 810CC34
- push {lr}
- movs r0, 0xCF
- bl PlaySE
- ldr r0, _0810CC4C
- bl FlagSet
- ldr r0, _0810CC50
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_0810CC4C: .4byte 0x00000828
-_0810CC50: .4byte gUnknown_081B694A
- thumb_func_end sub_810CC34
-
- thumb_func_start sub_810CC54
-sub_810CC54: @ 810CC54
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_810CC54
-
- thumb_func_start sub_810CC6C
-sub_810CC6C: @ 810CC6C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_810CC6C
-
- thumb_func_start sub_810CC80
-sub_810CC80: @ 810CC80
- push {r4,lr}
- sub sp, 0x8
- 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]
- mov r0, sp
- strh r1, [r0]
- ldr r1, _0810CD34
- str r0, [r1]
- movs r0, 0xC0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _0810CD38
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r4, 0
- str r4, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _0810CD3C
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r0, sp
- strh r4, [r0]
- str r0, [r1]
- ldr r0, _0810CD40
- str r0, [r1, 0x4]
- ldr r0, _0810CD44
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetPaletteFade
- bl ResetTasks
- bl ResetSpriteData
- ldr r3, _0810CD48
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _0810CD4C
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r0, _0810CD50
- bl SetVBlankCallback
- ldr r0, _0810CD54
- bl SetMainCallback2
- bl sub_810CD5C
- lsls r0, 24
- cmp r0, 0
- bne _0810CD2A
- ldr r0, _0810CD58
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
-_0810CD2A:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810CD34: .4byte 0x040000d4
-_0810CD38: .4byte 0x8100c000
-_0810CD3C: .4byte 0x85000100
-_0810CD40: .4byte 0x05000002
-_0810CD44: .4byte 0x810001ff
-_0810CD48: .4byte 0x04000208
-_0810CD4C: .4byte 0x04000200
-_0810CD50: .4byte sub_810CC6C
-_0810CD54: .4byte sub_810CC54
-_0810CD58: .4byte gMain
- thumb_func_end sub_810CC80
-
- thumb_func_start sub_810CD5C
-sub_810CD5C: @ 810CD5C
- push {r4-r7,lr}
- bl get_map_light_from_warp0
- lsls r0, 24
- lsrs r6, r0, 24
- bl sav1_map_get_light_level
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0
- ldr r4, _0810CD9C
- ldrb r0, [r4]
- cmp r0, 0
- beq _0810CDB0
- adds r7, r4, 0
- adds r0, r4, 0x4
- mov r12, r0
-_0810CD7E:
- lsls r2, r3, 3
- adds r1, r2, r7
- ldrb r0, [r1]
- cmp r0, r6
- bne _0810CDA0
- ldrb r0, [r1, 0x1]
- cmp r0, r5
- bne _0810CDA0
- mov r1, r12
- adds r0, r2, r1
- ldr r0, [r0]
- bl _call_via_r0
- movs r0, 0x1
- b _0810CDB2
- .align 2, 0
-_0810CD9C: .4byte gUnknown_083F7FC4
-_0810CDA0:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 3
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0810CD7E
-_0810CDB0:
- movs r0, 0
-_0810CDB2:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810CD5C
-
- thumb_func_start sub_810CDB8
-sub_810CDB8: @ 810CDB8
- push {r4-r6,lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r5, r0, 24
- lsrs r4, r1, 24
- movs r3, 0
- ldr r1, _0810CDE4
- ldrb r0, [r1]
- cmp r0, 0
- beq _0810CDF8
- adds r6, r1, 0
-_0810CDCE:
- lsls r0, r3, 3
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, r5
- bne _0810CDE8
- ldrb r0, [r2, 0x1]
- cmp r0, r4
- bne _0810CDE8
- ldrb r0, [r2, 0x2]
- b _0810CDFA
- .align 2, 0
-_0810CDE4: .4byte gUnknown_083F7FC4
-_0810CDE8:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0810CDCE
-_0810CDF8:
- movs r0, 0
-_0810CDFA:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_810CDB8
-
- thumb_func_start fade_type_for_given_maplight_pair
-fade_type_for_given_maplight_pair: @ 810CE00
- push {r4-r6,lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r5, r0, 24
- lsrs r4, r1, 24
- movs r3, 0
- ldr r1, _0810CE2C
- ldrb r0, [r1]
- cmp r0, 0
- beq _0810CE40
- adds r6, r1, 0
-_0810CE16:
- lsls r0, r3, 3
- adds r2, r0, r6
- ldrb r0, [r2]
- cmp r0, r5
- bne _0810CE30
- ldrb r0, [r2, 0x1]
- cmp r0, r4
- bne _0810CE30
- ldrb r0, [r2, 0x3]
- b _0810CE42
- .align 2, 0
-_0810CE2C: .4byte gUnknown_083F7FC4
-_0810CE30:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _0810CE16
-_0810CE40:
- movs r0, 0
-_0810CE42:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end fade_type_for_given_maplight_pair
-
- thumb_func_start sub_810CE48
-sub_810CE48: @ 810CE48
- push {lr}
- ldr r0, _0810CE58
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0810CE58: .4byte sub_810CE5C
- thumb_func_end sub_810CE48
-
- thumb_func_start sub_810CE5C
-sub_810CE5C: @ 810CE5C
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810CE70
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0810CE74
- str r0, [r1]
- bx lr
- .align 2, 0
-_0810CE70: .4byte gTasks
-_0810CE74: .4byte sub_810CE78
- thumb_func_end sub_810CE5C
-
- thumb_func_start sub_810CE78
-sub_810CE78: @ 810CE78
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r6, 0x80
- lsls r6, 19
- movs r5, 0
- strh r5, [r6]
- ldr r0, _0810CEE8
- ldr r1, _0810CEEC
- bl LZ77UnCompVram
- ldr r0, _0810CEF0
- ldr r1, _0810CEF4
- bl LZ77UnCompVram
- ldr r0, _0810CEF8
- movs r1, 0xE0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _0810CEFC
- movs r1, 0xE0
- movs r2, 0x10
- bl LoadPalette
- ldr r1, _0810CF00
- ldr r2, _0810CF04
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0810CF08
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- subs r1, 0x48
- ldr r2, _0810CF0C
- adds r0, r2, 0
- strh r0, [r1]
- movs r1, 0x8A
- lsls r1, 5
- adds r0, r1, 0
- strh r0, [r6]
- ldr r1, _0810CF10
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810CF14
- str r1, [r0]
- movs r2, 0
- movs r1, 0x10
- strh r1, [r0, 0x8]
- strh r2, [r0, 0xA]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810CEE8: .4byte gCaveTransitionTiles
-_0810CEEC: .4byte 0x0600c000
-_0810CEF0: .4byte gCaveTransitionTilemap
-_0810CEF4: .4byte 0x0600f800
-_0810CEF8: .4byte gCaveTransitionPalette_White
-_0810CEFC: .4byte gUnknown_083F809C
-_0810CF00: .4byte REG_BLDCNT
-_0810CF04: .4byte 0x00003e41
-_0810CF08: .4byte REG_BLDALPHA
-_0810CF0C: .4byte 0x00001f0c
-_0810CF10: .4byte gTasks
-_0810CF14: .4byte sub_810CF18
- thumb_func_end sub_810CE78
-
- thumb_func_start sub_810CF18
-sub_810CF18: @ 810CF18
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810CF44
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r2, [r3, 0xA]
- movs r1, 0x80
- lsls r1, 5
- adds r0, r2, r1
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0810CF48
- strh r0, [r1]
- cmp r2, 0x10
- bhi _0810CF4C
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- b _0810CF54
- .align 2, 0
-_0810CF44: .4byte gTasks
-_0810CF48: .4byte REG_BLDALPHA
-_0810CF4C:
- movs r0, 0
- strh r0, [r3, 0xC]
- ldr r0, _0810CF58
- str r0, [r3]
-_0810CF54:
- pop {r0}
- bx r0
- .align 2, 0
-_0810CF58: .4byte sub_810CF5C
- thumb_func_end sub_810CF18
-
- thumb_func_start sub_810CF5C
-sub_810CF5C: @ 810CF5C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810CF94
- ldr r3, _0810CF98
- adds r1, r3, 0
- strh r1, [r2]
- ldr r2, _0810CF9C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r1, [r4, 0xC]
- cmp r1, 0x7
- bhi _0810CFA4
- adds r0, r1, 0x1
- strh r0, [r4, 0xC]
- lsls r1, 1
- ldr r0, _0810CFA0
- adds r0, r1, r0
- movs r2, 0x10
- subs r2, r1
- lsls r2, 16
- lsrs r2, 16
- movs r1, 0xE0
- bl LoadPalette
- b _0810CFB6
- .align 2, 0
-_0810CF94: .4byte REG_BLDALPHA
-_0810CF98: .4byte 0x00001010
-_0810CF9C: .4byte gTasks
-_0810CFA0: .4byte gUnknown_083F809C
-_0810CFA4:
- ldr r0, _0810CFBC
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _0810CFC0
- str r0, [r4]
- movs r0, 0x8
- strh r0, [r4, 0xC]
-_0810CFB6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810CFBC: .4byte gCaveTransitionPalette_White
-_0810CFC0: .4byte sub_810CFC4
- thumb_func_end sub_810CF5C
-
- thumb_func_start sub_810CFC4
-sub_810CFC4: @ 810CFC4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810CFE4
- 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, 0
- beq _0810CFE8
- subs r0, r2, 0x1
- strh r0, [r1, 0xC]
- b _0810CFF0
- .align 2, 0
-_0810CFE4: .4byte gTasks
-_0810CFE8:
- ldr r0, _0810CFF4
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
-_0810CFF0:
- pop {r0}
- bx r0
- .align 2, 0
-_0810CFF4: .4byte gMain
- thumb_func_end sub_810CFC4
-
- thumb_func_start sub_810CFF8
-sub_810CFF8: @ 810CFF8
- push {lr}
- ldr r0, _0810D008
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0810D008: .4byte sub_810D00C
- thumb_func_end sub_810CFF8
-
- thumb_func_start sub_810D00C
-sub_810D00C: @ 810D00C
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810D020
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0810D024
- str r0, [r1]
- bx lr
- .align 2, 0
-_0810D020: .4byte gTasks
-_0810D024: .4byte sub_810D028
- thumb_func_end sub_810D00C
-
- thumb_func_start sub_810D028
-sub_810D028: @ 810D028
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r6, 0x80
- lsls r6, 19
- movs r4, 0
- strh r4, [r6]
- ldr r0, _0810D098
- ldr r1, _0810D09C
- bl LZ77UnCompVram
- ldr r0, _0810D0A0
- ldr r1, _0810D0A4
- bl LZ77UnCompVram
- ldr r0, _0810D0A8
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- ldr r1, _0810D0AC
- ldr r2, _0810D0B0
- adds r0, r2, 0
- strh r0, [r1]
- movs r1, 0x8A
- lsls r1, 5
- adds r0, r1, 0
- strh r0, [r6]
- ldr r0, _0810D0B4
- movs r1, 0xE0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _0810D0B8
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _0810D0BC
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0810D0C0
- str r1, [r0]
- movs r2, 0
- movs r1, 0x10
- strh r1, [r0, 0x8]
- strh r2, [r0, 0xA]
- strh r2, [r0, 0xC]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D098: .4byte gCaveTransitionTiles
-_0810D09C: .4byte 0x0600c000
-_0810D0A0: .4byte gCaveTransitionTilemap
-_0810D0A4: .4byte 0x0600f800
-_0810D0A8: .4byte REG_BLDCNT
-_0810D0AC: .4byte REG_BG0CNT
-_0810D0B0: .4byte 0x00001f0c
-_0810D0B4: .4byte gCaveTransitionPalette_White
-_0810D0B8: .4byte gCaveTransitionPalette_Black
-_0810D0BC: .4byte gTasks
-_0810D0C0: .4byte sub_810D0C4
- thumb_func_end sub_810D028
-
- thumb_func_start sub_810D0C4
-sub_810D0C4: @ 810D0C4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810D0F8
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r1, [r3, 0xC]
- cmp r1, 0xF
- bhi _0810D100
- adds r2, r1, 0x1
- adds r0, r2, 0x1
- strh r0, [r3, 0xC]
- movs r0, 0xF
- subs r0, r1
- lsls r0, 1
- ldr r1, _0810D0FC
- adds r0, r1
- lsls r2, 17
- lsrs r2, 16
- movs r1, 0xE0
- bl LoadPalette
- b _0810D114
- .align 2, 0
-_0810D0F8: .4byte gTasks
-_0810D0FC: .4byte gUnknown_083F808C
-_0810D100:
- ldr r1, _0810D118
- ldr r2, _0810D11C
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _0810D120
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0810D124
- str r0, [r3]
-_0810D114:
- pop {r0}
- bx r0
- .align 2, 0
-_0810D118: .4byte REG_BLDALPHA
-_0810D11C: .4byte 0x00001010
-_0810D120: .4byte 0x00003e41
-_0810D124: .4byte sub_810D128
- thumb_func_end sub_810D0C4
-
- thumb_func_start sub_810D128
-sub_810D128: @ 810D128
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810D158
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r0, [r3, 0xA]
- movs r1, 0x10
- subs r1, r0
- lsls r1, 16
- movs r2, 0x80
- lsls r2, 21
- adds r0, r1, r2
- lsrs r0, 16
- ldr r2, _0810D15C
- strh r0, [r2]
- cmp r1, 0
- beq _0810D160
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- b _0810D172
- .align 2, 0
-_0810D158: .4byte gTasks
-_0810D15C: .4byte REG_BLDALPHA
-_0810D160:
- ldr r0, _0810D178
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _0810D17C
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
-_0810D172:
- pop {r0}
- bx r0
- .align 2, 0
-_0810D178: .4byte gCaveTransitionPalette_Black
-_0810D17C: .4byte gMain
- thumb_func_end sub_810D128
-
- thumb_func_start sub_810D180
-sub_810D180: @ 810D180
- push {r4-r7,lr}
- sub sp, 0x4
- bl sp000_heal_pokemon
- ldr r4, _0810D1A0
- adds r0, r4, 0
- bl FlagGet
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1
- bne _0810D1A8
- ldr r0, _0810D1A4
- strb r1, [r0]
- b _0810D1B4
- .align 2, 0
-_0810D1A0: .4byte 0x00000804
-_0810D1A4: .4byte gUnknown_02039324
-_0810D1A8:
- ldr r1, _0810D1E8
- movs r0, 0
- strb r0, [r1]
- adds r0, r4, 0
- bl FlagSet
-_0810D1B4:
- movs r0, 0x1
- bl sub_8053108
- cmp r0, 0
- bne _0810D1D4
- ldr r2, _0810D1EC
- ldrh r1, [r2, 0xE]
- lsls r1, 16
- ldrb r0, [r2, 0x10]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x11]
- orrs r1, r0
- movs r0, 0x1
- bl sav12_xor_set
-_0810D1D4:
- bl sub_8047A10
- ldr r0, _0810D1EC
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _0810D1F0
- movs r0, 0x1
- bl sub_80537CC
- b _0810D1F6
- .align 2, 0
-_0810D1E8: .4byte gUnknown_02039324
-_0810D1EC: .4byte gSaveBlock2
-_0810D1F0:
- movs r0, 0x2
- bl sub_80537CC
-_0810D1F6:
- movs r6, 0
- movs r5, 0
- mov r7, sp
-_0810D1FC:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0810D260
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x5
- bl GetMonData
- cmp r0, 0
- beq _0810D23A
- adds r0, r4, 0
- movs r1, 0x6
- bl GetMonData
- cmp r0, 0
- bne _0810D23A
- adds r0, r4, 0
- movs r1, 0x43
- bl GetMonData
- cmp r0, 0
- bne _0810D23A
- movs r0, 0x1
- strb r0, [r7]
- adds r0, r4, 0
- movs r1, 0x43
- mov r2, sp
- bl SetMonData
- movs r6, 0x1
-_0810D23A:
- adds r5, 0x1
- cmp r5, 0x5
- ble _0810D1FC
- cmp r6, 0x1
- bne _0810D250
- movs r0, 0x2A
- bl sav12_xor_increment
- ldr r0, _0810D264
- bl FlagSet
-_0810D250:
- ldr r0, _0810D268
- bl SetMainCallback2
- movs r0, 0
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810D260: .4byte gPlayerParty
-_0810D264: .4byte 0x0000083b
-_0810D268: .4byte sub_8141F90
- thumb_func_end sub_810D180
-
- thumb_func_start sp0C8_whiteout_maybe
-sp0C8_whiteout_maybe: @ 810D26C
- push {lr}
- ldr r0, _0810D27C
- bl SetMainCallback2
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0810D27C: .4byte c2_whiteout
- thumb_func_end sp0C8_whiteout_maybe
-
- thumb_func_start sub_810D280
-sub_810D280: @ 810D280
- push {r4,lr}
- ldr r0, _0810D2A4
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _0810D2A8
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 16
- orrs r4, r0
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0810D2A4: .4byte 0x00004024
-_0810D2A8: .4byte 0x00004025
- thumb_func_end sub_810D280
-
- thumb_func_start sub_810D2AC
-sub_810D2AC: @ 810D2AC
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0810D2CC
- lsrs r1, r4, 16
- bl VarSet
- ldr r0, _0810D2D0
- lsls r4, 16
- lsrs r4, 16
- adds r1, r4, 0
- bl VarSet
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D2CC: .4byte 0x00004024
-_0810D2D0: .4byte 0x00004025
- thumb_func_end sub_810D2AC
-
- thumb_func_start unref_sub_810D2D4
-unref_sub_810D2D4: @ 810D2D4
- push {r4,lr}
- bl Random
- adds r4, r0, 0
- bl Random
- lsls r4, 16
- lsls r0, 16
- lsrs r0, 16
- orrs r4, r0
- adds r0, r4, 0
- bl sub_810D2AC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end unref_sub_810D2D4
-
- thumb_func_start sub_810D2F4
-sub_810D2F4: @ 810D2F4
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl sub_810D280
- adds r1, r0, 0
- cmp r4, 0
- beq _0810D318
- ldr r3, _0810D324
- ldr r2, _0810D328
-_0810D308:
- adds r0, r1, 0
- muls r0, r3
- adds r1, r0, r2
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- bne _0810D308
-_0810D318:
- adds r0, r1, 0
- bl sub_810D2AC
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D324: .4byte 0x41c64e6d
-_0810D328: .4byte 0x00003039
- thumb_func_end sub_810D2F4
-
- thumb_func_start sub_810D32C
-sub_810D32C: @ 810D32C
- push {r4-r6,lr}
- bl sub_810D280
- lsrs r6, r0, 16
- movs r5, 0
-_0810D336:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0810D360
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _0810D368
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- ldr r1, _0810D364
- ands r1, r0
- cmp r1, r6
- bne _0810D368
- movs r0, 0x1
- b _0810D370
- .align 2, 0
-_0810D360: .4byte gPlayerParty
-_0810D364: .4byte 0x0000ffff
-_0810D368:
- adds r5, 0x1
- cmp r5, 0x5
- ble _0810D336
- movs r0, 0
-_0810D370:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_810D32C
-
- thumb_func_start sub_810D378
-sub_810D378: @ 810D378
- push {lr}
- bl get_map_light_from_warp0
- lsls r0, 24
- lsrs r0, 24
- bl is_light_level_1_2_3_5_or_6
- lsls r0, 24
- cmp r0, 0
- beq _0810D3BE
- bl RtcCalcLocalTime
- ldr r1, _0810D3AC
- ldr r0, _0810D3B0
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _0810D3B8
- ldr r0, _0810D3B4
- bl FlagSet
- b _0810D3BE
- .align 2, 0
-_0810D3AC: .4byte gUnknown_083F8340
-_0810D3B0: .4byte gLocalTime
-_0810D3B4: .4byte 0x0000083a
-_0810D3B8:
- ldr r0, _0810D3C4
- bl FlagReset
-_0810D3BE:
- pop {r0}
- bx r0
- .align 2, 0
-_0810D3C4: .4byte 0x0000083a
- thumb_func_end sub_810D378
-
- thumb_func_start sub_810D3C8
-sub_810D3C8: @ 810D3C8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807DDFC
- lsls r0, 24
- cmp r0, 0
- beq _0810D3E2
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
-_0810D3E2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_810D3C8
-
- thumb_func_start sub_810D3E8
-sub_810D3E8: @ 810D3E8
- push {lr}
- ldr r0, _0810D3F8
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0810D3F8: .4byte sub_810D3C8
- thumb_func_end sub_810D3E8
-
- thumb_func_start sub_810D3FC
-sub_810D3FC: @ 810D3FC
- push {lr}
- ldr r0, _0810D40C
- bl GetVarPointer
- movs r1, 0
- strh r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0810D40C: .4byte 0x00004049
- thumb_func_end sub_810D3FC
-
- thumb_func_start sub_810D410
-sub_810D410: @ 810D410
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _0810D438
- bl GetVarPointer
- adds r5, r0, 0
- ldrh r0, [r5]
- adds r4, r0
- strh r4, [r5]
- ldrh r0, [r5]
- movs r1, 0x7
- bl __umodsi3
- strh r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D438: .4byte 0x00004049
- thumb_func_end sub_810D410
-
- thumb_func_start sub_810D43C
-sub_810D43C: @ 810D43C
- push {lr}
- ldr r0, _0810D458
- ldrh r0, [r0]
- cmp r0, 0
- bne _0810D460
- movs r0, 0
- bl sub_8090F68
- ldr r1, _0810D45C
- strh r0, [r1]
- movs r0, 0x1
- bl sub_8090F68
- b _0810D470
- .align 2, 0
-_0810D458: .4byte gUnknown_0202E8CC
-_0810D45C: .4byte gUnknown_0202E8CE
-_0810D460:
- movs r0, 0
- bl pokedex_count
- ldr r1, _0810D480
- strh r0, [r1]
- movs r0, 0x1
- bl pokedex_count
-_0810D470:
- ldr r1, _0810D484
- strh r0, [r1]
- bl sub_806912C
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_0810D480: .4byte gUnknown_0202E8CE
-_0810D484: .4byte gUnknown_0202E8D0
- thumb_func_end sub_810D43C
-
- thumb_func_start sub_810D488
-sub_810D488: @ 810D488
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x9
- bhi _0810D494
- b _0810D5EC
-_0810D494:
- cmp r0, 0x13
- bhi _0810D4A0
- ldr r0, _0810D49C
- b _0810D5F6
- .align 2, 0
-_0810D49C: .4byte gUnknown_081C456A
-_0810D4A0:
- cmp r0, 0x1D
- bhi _0810D4AC
- ldr r0, _0810D4A8
- b _0810D5F6
- .align 2, 0
-_0810D4A8: .4byte gUnknown_081C45B0
-_0810D4AC:
- cmp r0, 0x27
- bhi _0810D4B8
- ldr r0, _0810D4B4
- b _0810D5F6
- .align 2, 0
-_0810D4B4: .4byte gUnknown_081C45F9
-_0810D4B8:
- cmp r0, 0x31
- bhi _0810D4C4
- ldr r0, _0810D4C0
- b _0810D5F6
- .align 2, 0
-_0810D4C0: .4byte gUnknown_081C4648
-_0810D4C4:
- cmp r0, 0x3B
- bhi _0810D4D0
- ldr r0, _0810D4CC
- b _0810D5F6
- .align 2, 0
-_0810D4CC: .4byte gUnknown_081C467E
-_0810D4D0:
- cmp r0, 0x45
- bhi _0810D4DC
- ldr r0, _0810D4D8
- b _0810D5F6
- .align 2, 0
-_0810D4D8: .4byte gUnknown_081C46B9
-_0810D4DC:
- cmp r0, 0x4F
- bhi _0810D4E8
- ldr r0, _0810D4E4
- b _0810D5F6
- .align 2, 0
-_0810D4E4: .4byte gUnknown_081C46FE
-_0810D4E8:
- cmp r0, 0x59
- bhi _0810D4F4
- ldr r0, _0810D4F0
- b _0810D5F6
- .align 2, 0
-_0810D4F0: .4byte gUnknown_081C4747
-_0810D4F4:
- cmp r0, 0x63
- bhi _0810D500
- ldr r0, _0810D4FC
- b _0810D5F6
- .align 2, 0
-_0810D4FC: .4byte gUnknown_081C4780
-_0810D500:
- cmp r0, 0x6D
- bhi _0810D50C
- ldr r0, _0810D508
- b _0810D5F6
- .align 2, 0
-_0810D508: .4byte gUnknown_081C47DF
-_0810D50C:
- cmp r0, 0x77
- bhi _0810D518
- ldr r0, _0810D514
- b _0810D5F6
- .align 2, 0
-_0810D514: .4byte gUnknown_081C4828
-_0810D518:
- cmp r0, 0x81
- bhi _0810D524
- ldr r0, _0810D520
- b _0810D5F6
- .align 2, 0
-_0810D520: .4byte gUnknown_081C4863
-_0810D524:
- cmp r0, 0x8B
- bhi _0810D530
- ldr r0, _0810D52C
- b _0810D5F6
- .align 2, 0
-_0810D52C: .4byte gUnknown_081C489C
-_0810D530:
- cmp r0, 0x95
- bhi _0810D53C
- ldr r0, _0810D538
- b _0810D5F6
- .align 2, 0
-_0810D538: .4byte gUnknown_081C48EB
-_0810D53C:
- cmp r0, 0x9F
- bhi _0810D548
- ldr r0, _0810D544
- b _0810D5F6
- .align 2, 0
-_0810D544: .4byte gUnknown_081C4936
-_0810D548:
- cmp r0, 0xA9
- bhi _0810D554
- ldr r0, _0810D550
- b _0810D5F6
- .align 2, 0
-_0810D550: .4byte gUnknown_081C49A2
-_0810D554:
- cmp r0, 0xB3
- bhi _0810D560
- ldr r0, _0810D55C
- b _0810D5F6
- .align 2, 0
-_0810D55C: .4byte gUnknown_081C4A06
-_0810D560:
- cmp r0, 0xBD
- bhi _0810D56C
- ldr r0, _0810D568
- b _0810D5F6
- .align 2, 0
-_0810D568: .4byte gUnknown_081C4A4F
-_0810D56C:
- cmp r0, 0xC7
- bls _0810D5DA
- cmp r0, 0xC8
- bne _0810D5A8
- ldr r0, _0810D5A4
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- bne _0810D5DA
- movs r0, 0xCD
- lsls r0, 1
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- bne _0810D5DA
- b _0810D5F4
- .align 2, 0
-_0810D5A4: .4byte 0x00000199
-_0810D5A8:
- cmp r0, 0xC9
- bne _0810D5E8
- ldr r0, _0810D5E0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _0810D5F4
- movs r0, 0xCD
- lsls r0, 1
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _0810D5F4
-_0810D5DA:
- ldr r0, _0810D5E4
- b _0810D5F6
- .align 2, 0
-_0810D5E0: .4byte 0x00000199
-_0810D5E4: .4byte gUnknown_081C4A91
-_0810D5E8:
- cmp r0, 0xCA
- beq _0810D5F4
-_0810D5EC:
- ldr r0, _0810D5F0
- b _0810D5F6
- .align 2, 0
-_0810D5F0: .4byte gUnknown_081C4520
-_0810D5F4:
- ldr r0, _0810D5FC
-_0810D5F6:
- pop {r1}
- bx r1
- .align 2, 0
-_0810D5FC: .4byte gUnknown_081C4ADA
- thumb_func_end sub_810D488
-
- thumb_func_start sub_810D600
-sub_810D600: @ 810D600
- push {lr}
- ldr r0, _0810D614
- ldrh r0, [r0]
- bl sub_810D488
- bl ShowFieldMessage
- pop {r0}
- bx r0
- .align 2, 0
-_0810D614: .4byte gUnknown_0202E8CC
- thumb_func_end sub_810D600
-
- thumb_func_start sub_810D618
-sub_810D618: @ 810D618
- push {lr}
- ldr r0, _0810D628
- bl SetMainCallback2
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .align 2, 0
-_0810D628: .4byte sub_81428CC
- thumb_func_end sub_810D618
-
- thumb_func_start sub_810D62C
-sub_810D62C: @ 810D62C
- push {lr}
- ldr r0, _0810D640
- bl SetMainCallback2
- ldr r1, _0810D644
- ldr r0, _0810D648
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0810D640: .4byte c2_exit_to_overworld_2_switch
-_0810D644: .4byte gUnknown_0300485C
-_0810D648: .4byte mapldr_080CA5C0
- thumb_func_end sub_810D62C
-
- thumb_func_start mapldr_080CA5C0
-mapldr_080CA5C0: @ 810D64C
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- bl sub_8053E90
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- bl sp109_CreatePCMenu
- bl sub_80B5838
- ldr r0, _0810D680
- movs r1, 0xA
- bl CreateTask
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0810D680: .4byte sub_810D684
- thumb_func_end mapldr_080CA5C0
-
- thumb_func_start sub_810D684
-sub_810D684: @ 810D684
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0810D6A0
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0810D69C
- adds r0, r2, 0
- bl DestroyTask
-_0810D69C:
- pop {r0}
- bx r0
- .align 2, 0
-_0810D6A0: .4byte gPaletteFade
- thumb_func_end sub_810D684
-
- thumb_func_start sub_810D6A4
-sub_810D6A4: @ 810D6A4
- push {lr}
- ldr r0, _0810D6B4
- bl SetMainCallback2
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .align 2, 0
-_0810D6B4: .4byte sub_8145D88
- thumb_func_end sub_810D6A4
-
- thumb_func_start sub_810D6B8
-sub_810D6B8: @ 810D6B8
- push {lr}
- ldr r0, _0810D6D0
- ldr r1, _0810D6D4
- str r1, [r0, 0x8]
- ldr r0, _0810D6D8
- bl SetMainCallback2
- bl ScriptContext2_Enable
- pop {r0}
- bx r0
- .align 2, 0
-_0810D6D0: .4byte gMain
-_0810D6D4: .4byte c2_exit_to_overworld_2_switch
-_0810D6D8: .4byte Cb2_ViewWallClock
- thumb_func_end sub_810D6B8
-
- thumb_func_start wild_pokemon_reroll
-wild_pokemon_reroll: @ 810D6DC
- ldr r0, _0810D6F0
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0810D6F4
- strb r1, [r0]
- ldr r1, _0810D6F8
- movs r0, 0
- str r0, [r1]
- bx lr
- .align 2, 0
-_0810D6F0: .4byte gUnknown_02039250
-_0810D6F4: .4byte gUnknown_02039251
-_0810D6F8: .4byte gUnknown_02039254
- thumb_func_end wild_pokemon_reroll
-
- thumb_func_start sub_810D6FC
-sub_810D6FC: @ 810D6FC
- ldr r1, _0810D714
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _0810D718
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0810D71C
- ldr r0, _0810D720
- ldr r0, [r0, 0x20]
- str r0, [r1]
- bx lr
- .align 2, 0
-_0810D714: .4byte gUnknown_02039250
-_0810D718: .4byte gUnknown_02039251
-_0810D71C: .4byte gUnknown_02039254
-_0810D720: .4byte gMain
- thumb_func_end sub_810D6FC
-
- thumb_func_start sp0E3_walkrun_bitfield_interpretation
-sp0E3_walkrun_bitfield_interpretation: @ 810D724
- push {lr}
- movs r0, 0x4
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- beq _0810D736
- movs r0, 0x1
- b _0810D748
-_0810D736:
- movs r0, 0x2
- bl TestPlayerAvatarFlags
- lsls r0, 24
- cmp r0, 0
- bne _0810D746
- movs r0, 0
- b _0810D748
-_0810D746:
- movs r0, 0x2
-_0810D748:
- pop {r1}
- bx r1
- thumb_func_end sp0E3_walkrun_bitfield_interpretation
-
- thumb_func_start sub_810D74C
-sub_810D74C: @ 810D74C
- push {r4-r7,lr}
- adds r7, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- cmp r6, 0x63
- bhi _0810D778
- ldr r4, _0810D770
- adds r0, r4, 0
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r1, _0810D774
- adds r0, r4, 0
- bl StringAppend
- b _0810D780
- .align 2, 0
-_0810D770: .4byte gStringVar1
-_0810D774: .4byte gOtherText_Times
-_0810D778:
- ldr r0, _0810D7CC
- ldr r1, _0810D7D0
- bl StringCopy
-_0810D780:
- ldr r0, _0810D7D4
- cmp r7, r0
- bhi _0810D7E0
- ldr r4, _0810D7D8
- adds r0, r7, 0
- movs r1, 0x3C
- bl __udivsi3
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- movs r0, 0xAD
- strb r0, [r4, 0x2]
- adds r5, r4, 0x3
- adds r0, r7, 0
- movs r1, 0x3C
- bl __umodsi3
- movs r1, 0x64
- muls r0, r1
- movs r1, 0x3C
- bl __udivsi3
- adds r1, r0, 0
- adds r0, r5, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r1, _0810D7DC
- adds r0, r4, 0
- bl StringAppend
- b _0810D7E8
- .align 2, 0
-_0810D7CC: .4byte gStringVar1
-_0810D7D0: .4byte gOtherText_99Times
-_0810D7D4: .4byte 0x00000e0f
-_0810D7D8: .4byte gStringVar2
-_0810D7DC: .4byte gOtherText_Seconds
-_0810D7E0:
- ldr r0, _0810D7F4
- ldr r1, _0810D7F8
- bl StringCopy
-_0810D7E8:
- movs r4, 0
- cmp r6, 0
- bne _0810D7FC
- movs r4, 0x5
- b _0810D81A
- .align 2, 0
-_0810D7F4: .4byte gStringVar2
-_0810D7F8: .4byte gOtherText_1Minute
-_0810D7FC:
- cmp r6, 0x3
- bhi _0810D804
- movs r4, 0x4
- b _0810D81A
-_0810D804:
- cmp r6, 0x9
- bhi _0810D80C
- movs r4, 0x3
- b _0810D81A
-_0810D80C:
- cmp r6, 0x13
- bhi _0810D814
- movs r4, 0x2
- b _0810D81A
-_0810D814:
- cmp r6, 0x63
- bhi _0810D81A
- movs r4, 0x1
-_0810D81A:
- adds r0, r7, 0
- movs r1, 0x3C
- bl __udivsi3
- cmp r0, 0xA
- bhi _0810D82A
- adds r0, r4, 0x5
- b _0810D848
-_0810D82A:
- cmp r0, 0xF
- bhi _0810D832
- adds r0, r4, 0x4
- b _0810D848
-_0810D832:
- cmp r0, 0x14
- bhi _0810D83A
- adds r0, r4, 0x3
- b _0810D848
-_0810D83A:
- cmp r0, 0x28
- bhi _0810D842
- adds r0, r4, 0x2
- b _0810D848
-_0810D842:
- cmp r0, 0x3B
- bhi _0810D84C
- adds r0, r4, 0x1
-_0810D848:
- lsls r0, 24
- lsrs r4, r0, 24
-_0810D84C:
- ldr r0, _0810D858
- strh r4, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D858: .4byte gScriptResult
- thumb_func_end sub_810D74C
-
- thumb_func_start sub_810D85C
-sub_810D85C: @ 810D85C
- push {r4,r5,lr}
- ldr r0, _0810D880
- ldr r1, _0810D884
- ldr r4, [r0, 0x20]
- ldr r0, [r1]
- subs r4, r0
- ldr r5, _0810D888
- ldrb r1, [r5]
- adds r0, r4, 0
- bl sub_810D74C
- ldrb r1, [r5]
- adds r0, r4, 0
- bl sub_810D88C
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D880: .4byte gMain
-_0810D884: .4byte gUnknown_02039254
-_0810D888: .4byte gUnknown_02039251
- thumb_func_end sub_810D85C
-
- thumb_func_start sub_810D88C
-sub_810D88C: @ 810D88C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- ldr r6, _0810D8E0
- adds r0, r6, 0
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r7, _0810D8E4
- adds r0, r7, 0
- bl VarGet
- lsls r0, 16
- adds r4, r0
- cmp r4, r5
- bhi _0810D8BC
- cmp r4, 0
- bne _0810D8D6
-_0810D8BC:
- lsls r1, r5, 16
- lsrs r1, 16
- adds r0, r6, 0
- bl VarSet
- lsrs r1, r5, 16
- adds r0, r7, 0
- bl VarSet
- ldr r0, _0810D8E8
- mov r1, r8
- bl VarSet
-_0810D8D6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D8E0: .4byte 0x00004028
-_0810D8E4: .4byte 0x00004029
-_0810D8E8: .4byte 0x00004027
- thumb_func_end sub_810D88C
-
- thumb_func_start sub_810D8EC
-sub_810D8EC: @ 810D8EC
- push {r4,lr}
- ldr r0, _0810D920
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _0810D924
- bl VarGet
- lsls r0, 16
- adds r4, r0
- cmp r4, 0
- beq _0810D92C
- ldr r0, _0810D928
- bl VarGet
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_810D74C
- movs r0, 0x1
- b _0810D92E
- .align 2, 0
-_0810D920: .4byte 0x00004028
-_0810D924: .4byte 0x00004029
-_0810D928: .4byte 0x00004027
-_0810D92C:
- movs r0, 0
-_0810D92E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810D8EC
-
- thumb_func_start sub_810D934
-sub_810D934: @ 810D934
- push {r4,lr}
- ldr r0, _0810D974
- ldrh r1, [r0]
- ldr r0, _0810D978
- cmp r1, r0
- beq _0810D96C
- ldr r4, _0810D97C
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- beq _0810D95E
- adds r0, r4, 0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x3
- bne _0810D96C
-_0810D95E:
- adds r0, r4, 0
- movs r1, 0
- bl VarSet
- movs r0, 0
- bl sav1_set_battle_music_maybe
-_0810D96C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810D974: .4byte gUnknown_020297F0
-_0810D978: .4byte 0x00000c1d
-_0810D97C: .4byte 0x000040a9
- thumb_func_end sub_810D934
-
- thumb_func_start sub_810D980
-sub_810D980: @ 810D980
- push {lr}
- ldr r0, _0810D998
- bl FlagSet
- ldr r0, _0810D99C
- bl GetVarPointer
- movs r1, 0
- strh r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0810D998: .4byte 0x0000082d
-_0810D99C: .4byte 0x0000404a
- thumb_func_end sub_810D980
-
- thumb_func_start sub_810D9A0
-sub_810D9A0: @ 810D9A0
- push {lr}
- ldr r0, _0810D9AC
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_0810D9AC: .4byte 0x0000082d
- thumb_func_end sub_810D9A0
-
- thumb_func_start sub_810D9B0
-sub_810D9B0: @ 810D9B0
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _0810D9DC
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810D9D6
- ldr r0, _0810D9E0
- bl GetVarPointer
- ldrh r1, [r0]
- adds r1, r4, r1
- strh r1, [r0]
- lsls r1, 16
- lsrs r1, 16
- cmp r1, 0xCC
- bhi _0810D9E4
-_0810D9D6:
- movs r0, 0
- b _0810D9E6
- .align 2, 0
-_0810D9DC: .4byte 0x0000082d
-_0810D9E0: .4byte 0x0000404a
-_0810D9E4:
- movs r0, 0x1
-_0810D9E6:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810D9B0
-
- thumb_func_start sub_810D9EC
-sub_810D9EC: @ 810D9EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- adds r5, r1, 0
- adds r6, r2, 0
- adds r7, r3, 0
- ldr r0, _0810DA1C
- bl GetVarPointer
- adds r4, r0, 0
- ldr r0, _0810DA20
- bl GetVarPointer
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r0, 0x9
- bhi _0810DAB2
- lsls r0, 2
- ldr r1, _0810DA24
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810DA1C: .4byte 0x0000404a
-_0810DA20: .4byte 0x000040b4
-_0810DA24: .4byte _0810DA28
- .align 2, 0
-_0810DA28:
- .4byte _0810DA50
- .4byte _0810DA60
- .4byte _0810DA54
- .4byte _0810DA58
- .4byte _0810DA58
- .4byte _0810DA5C
- .4byte _0810DA88
- .4byte _0810DA50
- .4byte _0810DA54
- .4byte _0810DA5C
-_0810DA50:
- movs r0, 0x1
- b _0810DABE
-_0810DA54:
- movs r0, 0x4
- b _0810DABE
-_0810DA58:
- movs r0, 0x2
- b _0810DABE
-_0810DA5C:
- movs r0, 0x3
- b _0810DABE
-_0810DA60:
- ldrh r0, [r4]
- cmp r0, 0x3B
- bhi _0810DA70
- movs r0, 0x31
- strb r0, [r5]
- ldrh r0, [r4]
- adds r0, 0x13
- b _0810DAB0
-_0810DA70:
- cmp r0, 0x8B
- bhi _0810DA7E
- movs r0, 0x30
- strb r0, [r5]
- ldrh r0, [r4]
- subs r0, 0x3C
- b _0810DAB0
-_0810DA7E:
- movs r0, 0x2F
- strb r0, [r5]
- ldrh r0, [r4]
- subs r0, 0x8C
- b _0810DAB0
-_0810DA88:
- ldrh r0, [r4]
- cmp r0, 0x41
- bhi _0810DA98
- movs r0, 0x2F
- strb r0, [r5]
- ldrh r1, [r4]
- movs r0, 0x41
- b _0810DAAE
-_0810DA98:
- cmp r0, 0x91
- bhi _0810DAA6
- movs r0, 0x30
- strb r0, [r5]
- ldrh r1, [r4]
- movs r0, 0x91
- b _0810DAAE
-_0810DAA6:
- movs r0, 0x31
- strb r0, [r5]
- ldrh r1, [r4]
- movs r0, 0xE0
-_0810DAAE:
- subs r0, r1
-_0810DAB0:
- strh r0, [r6]
-_0810DAB2:
- movs r0, 0
- mov r1, r8
- strb r0, [r1]
- movs r0, 0x14
- strh r0, [r7]
- movs r0, 0
-_0810DABE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810D9EC
-
- thumb_func_start sub_810DAC8
-sub_810DAC8: @ 810DAC8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- bl sub_8008218
- lsls r0, 24
- lsrs r7, r0, 24
- bl sub_800820C
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- cmp r4, r5
- bcs _0810DB12
- ldr r0, _0810DB20
- mov r8, r0
-_0810DAEA:
- cmp r7, r4
- beq _0810DB08
- lsls r0, r6, 2
- add r0, r8
- ldr r0, [r0]
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 2
- ldr r2, _0810DB24
- adds r1, r2
- bl StringCopy
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0810DB08:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _0810DAEA
-_0810DB12:
- adds r0, r5, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810DB20: .4byte gUnknown_083D1464
-_0810DB24: .4byte gLinkPlayers + 0x8
- thumb_func_end sub_810DAC8
-
- thumb_func_start sub_810DB28
-sub_810DB28: @ 810DB28
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- movs r7, 0
- movs r0, 0
- mov r9, r0
- mov r8, r0
- ldr r1, _0810DB74
- add r0, sp, 0x8
- movs r2, 0x4
- bl memcpy
- add r4, sp, 0xC
- ldr r1, _0810DB78
- adds r0, r4, 0
- movs r2, 0x8
- bl memcpy
- bl sub_8008218
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x2
- beq _0810DB94
- cmp r0, 0x2
- bgt _0810DB7C
- cmp r0, 0x1
- beq _0810DBC0
- b _0810DBD2
- .align 2, 0
-_0810DB74: .4byte gUnknown_083F8358
-_0810DB78: .4byte gUnknown_083F835C
-_0810DB7C:
- cmp r1, 0x3
- beq _0810DB86
- cmp r1, 0x4
- beq _0810DBA8
- b _0810DBD2
-_0810DB86:
- movs r7, 0x2
- ldr r1, _0810DB90
- ldrh r0, [r1]
- subs r0, 0x1
- b _0810DBAE
- .align 2, 0
-_0810DB90: .4byte gSaveBlock1
-_0810DB94:
- movs r7, 0x1
- ldr r0, _0810DBA4
- ldrh r1, [r0]
- mov r9, r1
- ldrh r0, [r0, 0x2]
- subs r0, 0x1
- b _0810DBCC
- .align 2, 0
-_0810DBA4: .4byte gSaveBlock1
-_0810DBA8:
- ldr r1, _0810DBBC
- ldrh r0, [r1]
- adds r0, 0x1
-_0810DBAE:
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldrh r1, [r1, 0x2]
- mov r8, r1
- b _0810DBD2
- .align 2, 0
-_0810DBBC: .4byte gSaveBlock1
-_0810DBC0:
- movs r7, 0x3
- ldr r0, _0810DBD8
- ldrh r4, [r0]
- mov r9, r4
- ldrh r0, [r0, 0x2]
- adds r0, 0x1
-_0810DBCC:
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
-_0810DBD2:
- movs r6, 0
- b _0810DC5C
- .align 2, 0
-_0810DBD8: .4byte gSaveBlock1
-_0810DBDC:
- cmp r10, r6
- beq _0810DC56
- ldr r1, _0810DC74
- lsls r0, r6, 3
- subs r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r1, [r0, 0x13]
- movs r0, 0
- bl sub_805983C
- lsls r0, 24
- lsrs r0, 24
- mov r1, sp
- adds r1, r7
- adds r1, 0x8
- ldrb r1, [r1]
- movs r2, 0xF0
- subs r2, r6
- lsls r2, 24
- lsrs r2, 24
- lsls r5, r7, 1
- mov r3, sp
- adds r3, r5
- adds r3, 0xC
- ldrb r3, [r3]
- lsls r3, 24
- asrs r3, 24
- mov r12, r3
- mov r4, r9
- lsls r3, r4, 16
- asrs r3, 16
- add r3, r12
- adds r3, 0x7
- lsls r3, 16
- asrs r3, 16
- mov r4, sp
- adds r4, 0xD
- adds r4, r5
- ldrb r4, [r4]
- lsls r4, 24
- asrs r4, 24
- mov r12, r4
- mov r5, r8
- lsls r4, r5, 16
- asrs r4, 16
- add r4, r12
- adds r4, 0x7
- lsls r4, 16
- asrs r4, 16
- str r4, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- bl SpawnSpecialFieldObjectParametrized
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x4
- bne _0810DC56
- movs r7, 0
-_0810DC56:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0810DC5C:
- ldr r0, _0810DC78
- ldrh r0, [r0]
- cmp r6, r0
- bcc _0810DBDC
- 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
-_0810DC74: .4byte gLinkPlayers
-_0810DC78: .4byte gUnknown_0202E8CC
- thumb_func_end sub_810DB28
-
- thumb_func_start sub_810DC7C
-sub_810DC7C: @ 810DC7C
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0810DC9C
-_0810DC82:
- ldr r0, _0810DCA0
- ldrh r0, [r0]
- cmp r4, r0
- bne _0810DCA8
- lsls r1, r4, 2
- adds r1, r5
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- ldr r2, _0810DCA4
- bl MapGridSetMetatileIdAt
- b _0810DCB6
- .align 2, 0
-_0810DC9C: .4byte gUnknown_083F8364
-_0810DCA0: .4byte gUnknown_0202E8CC
-_0810DCA4: .4byte 0x00000206
-_0810DCA8:
- lsls r1, r4, 2
- adds r1, r5
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- ldr r2, _0810DCC8
- bl MapGridSetMetatileIdAt
-_0810DCB6:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0810DC82
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DCC8: .4byte 0x00000205
- thumb_func_end sub_810DC7C
-
- thumb_func_start sub_810DCCC
-sub_810DCCC: @ 810DCCC
- push {r4-r6,lr}
- movs r5, 0xC
-_0810DCD0:
- movs r4, 0x7
- adds r6, r5, 0x1
-_0810DCD4:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _0810DCF0
- adds r0, r1
- cmp r0, 0x37
- bls _0810DCE6
- b _0810DEC0
-_0810DCE6:
- lsls r0, 2
- ldr r1, _0810DCF4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810DCF0: .4byte 0xfffffde6
-_0810DCF4: .4byte _0810DCF8
- .align 2, 0
-_0810DCF8:
- .4byte _0810DE7E
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DDD8
- .4byte _0810DDDE
- .4byte _0810DE18
- .4byte _0810DE20
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DDE8
- .4byte _0810DDEE
- .4byte _0810DE28
- .4byte _0810DE30
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DDF8
- .4byte _0810DDFE
- .4byte _0810DE38
- .4byte _0810DE40
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DE08
- .4byte _0810DE10
- .4byte _0810DE48
- .4byte _0810DE50
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DE58
- .4byte _0810DE68
- .4byte _0810DE78
- .4byte _0810DEA0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DE60
- .4byte _0810DE70
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEC0
- .4byte _0810DEB6
- .4byte _0810DEA8
-_0810DDD8:
- movs r2, 0x8C
- lsls r2, 2
- b _0810DEAC
-_0810DDDE:
- ldr r2, _0810DDE4
- b _0810DEAC
- .align 2, 0
-_0810DDE4: .4byte 0x00000231
-_0810DDE8:
- movs r2, 0x8E
- lsls r2, 2
- b _0810DEAC
-_0810DDEE:
- ldr r2, _0810DDF4
- b _0810DEAC
- .align 2, 0
-_0810DDF4: .4byte 0x00000239
-_0810DDF8:
- movs r2, 0x88
- lsls r2, 2
- b _0810DEAC
-_0810DDFE:
- ldr r2, _0810DE04
- b _0810DEAC
- .align 2, 0
-_0810DE04: .4byte 0x00000221
-_0810DE08:
- ldr r2, _0810DE0C
- b _0810DEAC
- .align 2, 0
-_0810DE0C: .4byte 0x00000e28
-_0810DE10:
- ldr r2, _0810DE14
- b _0810DEAC
- .align 2, 0
-_0810DE14: .4byte 0x00000e29
-_0810DE18:
- ldr r2, _0810DE1C
- b _0810DEAC
- .align 2, 0
-_0810DE1C: .4byte 0x00000232
-_0810DE20:
- ldr r2, _0810DE24
- b _0810DEAC
- .align 2, 0
-_0810DE24: .4byte 0x00000233
-_0810DE28:
- ldr r2, _0810DE2C
- b _0810DEAC
- .align 2, 0
-_0810DE2C: .4byte 0x0000023a
-_0810DE30:
- ldr r2, _0810DE34
- b _0810DEAC
- .align 2, 0
-_0810DE34: .4byte 0x0000023b
-_0810DE38:
- ldr r2, _0810DE3C
- b _0810DEAC
- .align 2, 0
-_0810DE3C: .4byte 0x00000222
-_0810DE40:
- ldr r2, _0810DE44
- b _0810DEAC
- .align 2, 0
-_0810DE44: .4byte 0x00000223
-_0810DE48:
- ldr r2, _0810DE4C
- b _0810DEAC
- .align 2, 0
-_0810DE4C: .4byte 0x00000e2a
-_0810DE50:
- ldr r2, _0810DE54
- b _0810DEAC
- .align 2, 0
-_0810DE54: .4byte 0x00000e2b
-_0810DE58:
- ldr r2, _0810DE5C
- b _0810DEAC
- .align 2, 0
-_0810DE5C: .4byte 0x00000e42
-_0810DE60:
- ldr r2, _0810DE64
- b _0810DEAC
- .align 2, 0
-_0810DE64: .4byte 0x0000021a
-_0810DE68:
- ldr r2, _0810DE6C
- b _0810DEAC
- .align 2, 0
-_0810DE6C: .4byte 0x00000e43
-_0810DE70:
- ldr r2, _0810DE74
- b _0810DEAC
- .align 2, 0
-_0810DE74: .4byte 0x0000021a
-_0810DE78:
- movs r2, 0xE4
- lsls r2, 4
- b _0810DEAC
-_0810DE7E:
- subs r1, r5, 0x1
- adds r0, r4, 0
- bl MapGridGetMetatileIdAt
- movs r1, 0x90
- lsls r1, 2
- cmp r0, r1
- bne _0810DE98
- ldr r2, _0810DE94
- b _0810DEAC
- .align 2, 0
-_0810DE94: .4byte 0x00000e48
-_0810DE98:
- ldr r2, _0810DE9C
- b _0810DEAC
- .align 2, 0
-_0810DE9C: .4byte 0x00000e49
-_0810DEA0:
- ldr r2, _0810DEA4
- b _0810DEAC
- .align 2, 0
-_0810DEA4: .4byte 0x00000e41
-_0810DEA8:
- movs r2, 0xE5
- lsls r2, 4
-_0810DEAC:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _0810DEC0
-_0810DEB6:
- ldr r2, _0810DED8
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_0810DEC0:
- adds r4, 0x1
- cmp r4, 0xF
- bgt _0810DEC8
- b _0810DCD4
-_0810DEC8:
- adds r5, r6, 0
- cmp r5, 0x17
- bgt _0810DED0
- b _0810DCD0
-_0810DED0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810DED8: .4byte 0x00000251
- thumb_func_end sub_810DCCC
-
- thumb_func_start sub_810DEDC
-sub_810DEDC: @ 810DEDC
- push {r4-r6,lr}
- ldr r4, _0810DF18
- movs r5, 0x2
-_0810DEE2:
- ldrb r0, [r4]
- ldrb r1, [r4, 0x1]
- ldr r2, _0810DF1C
- bl MapGridSetMetatileIdAt
- adds r4, 0x4
- subs r5, 0x1
- cmp r5, 0
- bge _0810DEE2
- movs r5, 0xC
-_0810DEF6:
- movs r4, 0x7
- adds r6, r5, 0x1
-_0810DEFA:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _0810DF20
- adds r0, r1
- cmp r0, 0x30
- bls _0810DF0C
- b _0810E056
-_0810DF0C:
- lsls r0, 2
- ldr r1, _0810DF24
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810DF18: .4byte gUnknown_083F8364
-_0810DF1C: .4byte 0x00000206
-_0810DF20: .4byte 0xfffffde0
-_0810DF24: .4byte _0810DF28
- .align 2, 0
-_0810DF28:
- .4byte _0810DFEC
- .4byte _0810DFF2
- .4byte _0810E00C
- .4byte _0810E014
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810DFFC
- .4byte _0810E002
- .4byte _0810E01C
- .4byte _0810E024
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E02C
- .4byte _0810E034
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E03C
- .4byte _0810E03C
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E056
- .4byte _0810E04C
-_0810DFEC:
- movs r2, 0x8C
- lsls r2, 2
- b _0810E03E
-_0810DFF2:
- ldr r2, _0810DFF8
- b _0810E03E
- .align 2, 0
-_0810DFF8: .4byte 0x00000231
-_0810DFFC:
- movs r2, 0x8E
- lsls r2, 2
- b _0810E03E
-_0810E002:
- ldr r2, _0810E008
- b _0810E03E
- .align 2, 0
-_0810E008: .4byte 0x00000239
-_0810E00C:
- ldr r2, _0810E010
- b _0810E03E
- .align 2, 0
-_0810E010: .4byte 0x00000232
-_0810E014:
- ldr r2, _0810E018
- b _0810E03E
- .align 2, 0
-_0810E018: .4byte 0x00000233
-_0810E01C:
- ldr r2, _0810E020
- b _0810E03E
- .align 2, 0
-_0810E020: .4byte 0x0000023a
-_0810E024:
- ldr r2, _0810E028
- b _0810E03E
- .align 2, 0
-_0810E028: .4byte 0x0000023b
-_0810E02C:
- ldr r2, _0810E030
- b _0810E03E
- .align 2, 0
-_0810E030: .4byte 0x00000e42
-_0810E034:
- ldr r2, _0810E038
- b _0810E03E
- .align 2, 0
-_0810E038: .4byte 0x00000e43
-_0810E03C:
- ldr r2, _0810E048
-_0810E03E:
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _0810E056
- .align 2, 0
-_0810E048: .4byte 0x0000021a
-_0810E04C:
- ldr r2, _0810E06C
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_0810E056:
- adds r4, 0x1
- cmp r4, 0xF
- bgt _0810E05E
- b _0810DEFA
-_0810E05E:
- adds r5, r6, 0
- cmp r5, 0x17
- bgt _0810E066
- b _0810DEF6
-_0810E066:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E06C: .4byte 0x00000251
- thumb_func_end sub_810DEDC
-
- thumb_func_start sub_810E070
-sub_810E070: @ 810E070
- push {lr}
- ldr r0, _0810E090
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0810E094
- strb r1, [r0]
- movs r0, 0x2C
- bl PlaySE
- ldr r0, _0810E098
- movs r1, 0x8
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_0810E090: .4byte gUnknown_02039258
-_0810E094: .4byte gUnknown_02039259
-_0810E098: .4byte sub_810E09C
- thumb_func_end sub_810E070
-
- thumb_func_start sub_810E09C
-sub_810E09C: @ 810E09C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0810E0E4
- ldr r5, _0810E0E8
- ldrb r1, [r5]
- adds r0, r1, r0
- ldr r4, _0810E0EC
- ldrb r2, [r4]
- ldrb r0, [r0]
- cmp r0, r2
- bne _0810E0F8
- ldr r0, _0810E0F0
- ldrb r0, [r0]
- ldr r2, _0810E0F4
- lsls r1, 1
- adds r1, r2
- ldrh r1, [r1]
- bl sub_810E104
- movs r0, 0
- strb r0, [r4]
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bne _0810E0FC
- adds r0, r6, 0
- bl DestroyTask
- bl EnableBothScriptContexts
- b _0810E0FC
- .align 2, 0
-_0810E0E4: .4byte gUnknown_083F8370
-_0810E0E8: .4byte gUnknown_02039259
-_0810E0EC: .4byte gUnknown_02039258
-_0810E0F0: .4byte gUnknown_0202E8CC
-_0810E0F4: .4byte gUnknown_083F8376
-_0810E0F8:
- adds r0, r2, 0x1
- strb r0, [r4]
-_0810E0FC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_810E09C
-
- thumb_func_start sub_810E104
-sub_810E104: @ 810E104
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r2, r1, 16
- movs r7, 0
- subs r0, 0x1
- cmp r0, 0x7
- bhi _0810E1CC
- lsls r0, 2
- ldr r1, _0810E128
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810E128: .4byte _0810E12C
- .align 2, 0
-_0810E12C:
- .4byte _0810E14C
- .4byte _0810E15E
- .4byte _0810E170
- .4byte _0810E182
- .4byte _0810E190
- .4byte _0810E1A6
- .4byte _0810E1B2
- .4byte _0810E1C0
-_0810E14C:
- movs r7, 0x2
- mov r1, sp
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0x7
- strh r0, [r1, 0x2]
- add r1, sp, 0x8
- movs r0, 0x68
- b _0810E1A0
-_0810E15E:
- movs r7, 0x2
- mov r1, sp
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0x7
- strh r0, [r1, 0x2]
- add r1, sp, 0x8
- movs r0, 0x4E
- b _0810E1A0
-_0810E170:
- movs r7, 0x2
- mov r1, sp
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0x7
- strh r0, [r1, 0x2]
- add r1, sp, 0x8
- movs r0, 0x5B
- b _0810E1A0
-_0810E182:
- movs r7, 0x1
- mov r1, sp
- movs r0, 0x7
- strh r0, [r1]
- add r1, sp, 0x8
- movs r0, 0x27
- b _0810E1CA
-_0810E190:
- movs r7, 0x2
- mov r1, sp
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0x7
- strh r0, [r1, 0x2]
- add r1, sp, 0x8
- movs r0, 0x34
-_0810E1A0:
- strh r0, [r1]
- strh r0, [r1, 0x2]
- b _0810E1CC
-_0810E1A6:
- movs r7, 0x1
- mov r0, sp
- strh r7, [r0]
- add r1, sp, 0x8
- movs r0, 0x41
- b _0810E1CA
-_0810E1B2:
- movs r7, 0x1
- mov r1, sp
- movs r0, 0x7
- strh r0, [r1]
- add r1, sp, 0x8
- movs r0, 0xD
- b _0810E1CA
-_0810E1C0:
- movs r7, 0x1
- mov r0, sp
- strh r7, [r0]
- add r1, sp, 0x8
- movs r0, 0x1A
-_0810E1CA:
- strh r0, [r1]
-_0810E1CC:
- movs r6, 0
- cmp r6, r7
- bcs _0810E21E
- movs r1, 0xC0
- lsls r1, 4
- adds r0, r1, 0
- adds r1, r2, 0
- orrs r1, r0
- lsls r1, 16
- mov r9, r1
- adds r1, r2, 0
- adds r1, 0x8
- orrs r1, r0
- lsls r1, 16
- mov r8, r1
-_0810E1EA:
- lsls r1, r6, 1
- mov r3, sp
- adds r5, r3, r1
- ldrh r0, [r5]
- adds r0, 0x7
- add r4, sp, 0x8
- adds r4, r1
- ldrh r1, [r4]
- adds r1, 0x7
- mov r3, r9
- lsrs r2, r3, 16
- bl MapGridSetMetatileIdAt
- ldrh r0, [r5]
- adds r0, 0x7
- ldrh r1, [r4]
- adds r1, 0x8
- mov r3, r8
- lsrs r2, r3, 16
- bl MapGridSetMetatileIdAt
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, r7
- bcc _0810E1EA
-_0810E21E:
- bl DrawWholeMapView
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810E104
-
- thumb_func_start sub_810E230
-sub_810E230: @ 810E230
- push {lr}
- ldr r0, _0810E244
- ldrb r0, [r0]
- ldr r1, _0810E248
- ldrh r1, [r1, 0x8]
- bl sub_810E104
- pop {r0}
- bx r0
- .align 2, 0
-_0810E244: .4byte gUnknown_0202E8CC
-_0810E248: .4byte gUnknown_083F8376
- thumb_func_end sub_810E230
-
- thumb_func_start sub_810E24C
-sub_810E24C: @ 810E24C
- push {lr}
- ldr r0, _0810E258
- bl ShowFieldMessage
- pop {r0}
- bx r0
- .align 2, 0
-_0810E258: .4byte gStringVar4
- thumb_func_end sub_810E24C
-
- thumb_func_start sub_810E25C
-sub_810E25C: @ 810E25C
- ldr r1, _0810E26C
- ldr r2, _0810E270
- ldrh r0, [r2]
- strh r0, [r1]
- ldr r1, _0810E274
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0810E26C: .4byte gUnknown_0202E8CC
-_0810E270: .4byte gSaveBlock1
-_0810E274: .4byte gUnknown_0202E8CE
- thumb_func_end sub_810E25C
-
- thumb_func_start sub_810E278
-sub_810E278: @ 810E278
- push {lr}
- ldr r0, _0810E294
- ldrb r1, [r0, 0xB]
- lsls r1, 8
- ldrb r0, [r0, 0xA]
- orrs r0, r1
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0810E294: .4byte gSaveBlock2
- thumb_func_end sub_810E278
-
- thumb_func_start sub_810E298
-sub_810E298: @ 810E298
- push {lr}
- ldr r0, _0810E2AC
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _0810E2B8
- ldr r0, _0810E2B0
- ldr r1, _0810E2B4
- bl StringCopy
- b _0810E2C0
- .align 2, 0
-_0810E2AC: .4byte gSaveBlock2
-_0810E2B0: .4byte gStringVar1
-_0810E2B4: .4byte gOtherText_BigGuy
-_0810E2B8:
- ldr r0, _0810E2C4
- ldr r1, _0810E2C8
- bl StringCopy
-_0810E2C0:
- pop {r0}
- bx r0
- .align 2, 0
-_0810E2C4: .4byte gStringVar1
-_0810E2C8: .4byte gOtherText_BigGirl
- thumb_func_end sub_810E298
-
- thumb_func_start sub_810E2CC
-sub_810E2CC: @ 810E2CC
- push {lr}
- ldr r0, _0810E2E0
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _0810E2EC
- ldr r0, _0810E2E4
- ldr r1, _0810E2E8
- bl StringCopy
- b _0810E2F4
- .align 2, 0
-_0810E2E0: .4byte gSaveBlock2
-_0810E2E4: .4byte gStringVar1
-_0810E2E8: .4byte gOtherText_Daughter
-_0810E2EC:
- ldr r0, _0810E2F8
- ldr r1, _0810E2FC
- bl StringCopy
-_0810E2F4:
- pop {r0}
- bx r0
- .align 2, 0
-_0810E2F8: .4byte gStringVar1
-_0810E2FC: .4byte gOtherText_Son
- thumb_func_end sub_810E2CC
-
- thumb_func_start sub_810E300
-sub_810E300: @ 810E300
- ldr r0, _0810E308
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0810E308: .4byte gUnknown_02024D26
- thumb_func_end sub_810E300
-
- thumb_func_start sub_810E30C
-sub_810E30C: @ 810E30C
- push {lr}
- sub sp, 0x4
- ldr r0, _0810E32C
- ldrh r0, [r0]
- cmp r0, 0
- beq _0810E330
- movs r2, 0x1
- negs r2, r2
- movs r0, 0x4
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0
- movs r3, 0x6
- bl warp1_set
- b _0810E342
- .align 2, 0
-_0810E32C: .4byte gUnknown_0202E8CC
-_0810E330:
- movs r2, 0x1
- negs r2, r2
- movs r0, 0x4
- str r0, [sp]
- movs r0, 0x13
- movs r1, 0x1
- movs r3, 0x6
- bl warp1_set
-_0810E342:
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_810E30C
-
- thumb_func_start sub_810E348
-sub_810E348: @ 810E348
- push {lr}
- ldr r0, _0810E358
- ldrh r0, [r0]
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_0810E358: .4byte gUnknown_0202E8CC
- thumb_func_end sub_810E348
-
- thumb_func_start sub_810E35C
-sub_810E35C: @ 810E35C
- push {lr}
- ldr r0, _0810E37C
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x7
- bl __divsi3
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0810E380
- cmp r0, r1
- bls _0810E376
- adds r0, r1, 0
-_0810E376:
- pop {r1}
- bx r1
- .align 2, 0
-_0810E37C: .4byte gLocalTime
-_0810E380: .4byte 0x0000270f
- thumb_func_end sub_810E35C
-
- thumb_func_start sub_810E384
-sub_810E384: @ 810E384
- push {r4,lr}
- bl sub_810F87C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r1, r0
- ldr r0, _0810E3A8
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0xFF
- bne _0810E3AC
- movs r0, 0x6
- b _0810E3FE
- .align 2, 0
-_0810E3A8: .4byte gPlayerParty
-_0810E3AC:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0xC7
- bls _0810E3BC
- movs r0, 0x5
- b _0810E3FE
-_0810E3BC:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0x95
- bls _0810E3CC
- movs r0, 0x4
- b _0810E3FE
-_0810E3CC:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0x63
- bls _0810E3DC
- movs r0, 0x3
- b _0810E3FE
-_0810E3DC:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0x31
- bls _0810E3EC
- movs r0, 0x2
- b _0810E3FE
-_0810E3EC:
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- cmp r0, 0
- bne _0810E3FC
- movs r0, 0
- b _0810E3FE
-_0810E3FC:
- movs r0, 0x1
-_0810E3FE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810E384
-
- thumb_func_start sub_810E404
-sub_810E404: @ 810E404
- push {lr}
- ldr r0, _0810E410
- bl sub_813EEB4
- pop {r0}
- bx r0
- .align 2, 0
-_0810E410: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_810E404
-
- thumb_func_start sub_810E414
-sub_810E414: @ 810E414
- push {lr}
- ldr r0, _0810E420
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0810E420: .4byte sub_810E404
- thumb_func_end sub_810E414
-
- thumb_func_start sub_810E424
-sub_810E424: @ 810E424
- push {r4,lr}
- ldr r4, _0810E460
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810E458
- adds r0, r4, 0
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810E464
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r2, [r1, 0x8]
- strh r0, [r1, 0xA]
- strh r2, [r1, 0xC]
- strh r2, [r1, 0xE]
- strh r2, [r1, 0x10]
-_0810E458:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E460: .4byte sub_810E468
-_0810E464: .4byte gTasks
- thumb_func_end sub_810E424
-
- thumb_func_start sub_810E468
-sub_810E468: @ 810E468
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0810E48C
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0810E486
- adds r0, r1, 0
- bl sub_810E490
-_0810E486:
- pop {r0}
- bx r0
- .align 2, 0
-_0810E48C: .4byte gTasks
- thumb_func_end sub_810E468
-
- thumb_func_start sub_810E490
-sub_810E490: @ 810E490
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r6, 0
- movs r5, 0
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bne _0810E4FC
- strh r5, [r4, 0xE]
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x3
- beq _0810E4C4
- cmp r0, 0x3
- bgt _0810E4BA
- cmp r0, 0x2
- beq _0810E4C0
- b _0810E4CC
-_0810E4BA:
- cmp r1, 0x4
- beq _0810E4C8
- b _0810E4CC
-_0810E4C0:
- movs r6, 0
- b _0810E4CA
-_0810E4C4:
- movs r6, 0xFF
- b _0810E4CA
-_0810E4C8:
- movs r6, 0x1
-_0810E4CA:
- movs r5, 0xFF
-_0810E4CC:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- lsls r1, r6, 24
- asrs r1, 24
- lsls r2, r5, 24
- asrs r2, 24
- bl sub_810E508
- bl DrawWholeMapView
- ldrh r0, [r4, 0x10]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0810E4FC
- ldrb r0, [r4, 0xA]
- bl DestroyTask
-_0810E4FC:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_810E490
-
- thumb_func_start sub_810E508
-sub_810E508: @ 810E508
- push {r4,r5,lr}
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- movs r3, 0
- lsls r0, 16
- cmp r0, 0
- beq _0810E544
- ldr r0, _0810E528
- ldrh r0, [r0]
- cmp r0, 0
- bne _0810E52C
- movs r3, 0x4
- b _0810E566
- .align 2, 0
-_0810E528: .4byte gUnknown_0202E8CC
-_0810E52C:
- cmp r0, 0x1
- bne _0810E538
- ldr r3, _0810E534
- b _0810E566
- .align 2, 0
-_0810E534: .4byte 0x0000025a
-_0810E538:
- cmp r0, 0x2
- bne _0810E566
- ldr r3, _0810E540
- b _0810E566
- .align 2, 0
-_0810E540: .4byte 0x00000259
-_0810E544:
- ldr r0, _0810E550
- ldrh r0, [r0]
- cmp r0, 0
- bne _0810E554
- movs r3, 0x5
- b _0810E566
- .align 2, 0
-_0810E550: .4byte gUnknown_0202E8CC
-_0810E554:
- cmp r0, 0x1
- bne _0810E560
- ldr r3, _0810E55C
- b _0810E566
- .align 2, 0
-_0810E55C: .4byte 0x0000027f
-_0810E560:
- cmp r0, 0x2
- bne _0810E566
- ldr r3, _0810E594
-_0810E566:
- ldr r2, _0810E598
- movs r5, 0
- ldrsh r0, [r2, r5]
- lsls r1, 24
- asrs r1, 24
- adds r0, r1
- adds r0, 0x7
- movs r5, 0x2
- ldrsh r1, [r2, r5]
- lsls r2, r4, 24
- asrs r2, 24
- adds r1, r2
- adds r1, 0x7
- movs r4, 0xC0
- lsls r4, 4
- adds r2, r4, 0
- orrs r3, r2
- adds r2, r3, 0
- bl MapGridSetMetatileIdAt
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E594: .4byte 0x0000027e
-_0810E598: .4byte gSaveBlock1
- thumb_func_end sub_810E508
-
- thumb_func_start sub_810E59C
-sub_810E59C: @ 810E59C
- push {lr}
- bl sub_810E5A8
- pop {r0}
- bx r0
- thumb_func_end sub_810E59C
-
- thumb_func_start sub_810E5A8
-sub_810E5A8: @ 810E5A8
- push {r4-r6,lr}
- movs r6, 0
- movs r5, 0
- movs r4, 0
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x3
- beq _0810E5D2
- cmp r0, 0x3
- bgt _0810E5C8
- cmp r0, 0x2
- beq _0810E5CE
- b _0810E5DA
-_0810E5C8:
- cmp r1, 0x4
- beq _0810E5D6
- b _0810E5DA
-_0810E5CE:
- movs r6, 0
- b _0810E5D8
-_0810E5D2:
- movs r6, 0xFF
- b _0810E5D8
-_0810E5D6:
- movs r6, 0x1
-_0810E5D8:
- movs r5, 0xFF
-_0810E5DA:
- ldr r0, _0810E5E8
- ldrh r0, [r0]
- cmp r0, 0
- bne _0810E5EC
- movs r4, 0x4
- b _0810E5FE
- .align 2, 0
-_0810E5E8: .4byte gUnknown_0202E8CC
-_0810E5EC:
- cmp r0, 0x1
- bne _0810E5F8
- ldr r4, _0810E5F4
- b _0810E5FE
- .align 2, 0
-_0810E5F4: .4byte 0x0000025a
-_0810E5F8:
- cmp r0, 0x2
- bne _0810E5FE
- ldr r4, _0810E630
-_0810E5FE:
- ldr r2, _0810E634
- movs r1, 0
- ldrsh r0, [r2, r1]
- lsls r1, r6, 24
- asrs r1, 24
- adds r0, r1
- adds r0, 0x7
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- lsls r2, r5, 24
- asrs r2, 24
- adds r1, r2
- adds r1, 0x7
- movs r3, 0xC0
- lsls r3, 4
- adds r2, r3, 0
- orrs r4, r2
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E630: .4byte 0x00000259
-_0810E634: .4byte gSaveBlock1
- thumb_func_end sub_810E5A8
-
- thumb_func_start sub_810E638
-sub_810E638: @ 810E638
- push {r4,lr}
- ldr r4, _0810E674
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810E66C
- adds r0, r4, 0
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810E678
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r2, [r1, 0x8]
- strh r0, [r1, 0xA]
- strh r2, [r1, 0xC]
- strh r2, [r1, 0xE]
- strh r2, [r1, 0x10]
-_0810E66C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E674: .4byte sub_810E67C
-_0810E678: .4byte gTasks
- thumb_func_end sub_810E638
-
- thumb_func_start sub_810E67C
-sub_810E67C: @ 810E67C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0810E6A0
- adds r1, r0
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0810E69A
- adds r0, r1, 0
- bl sub_810E6A4
-_0810E69A:
- pop {r0}
- bx r0
- .align 2, 0
-_0810E6A0: .4byte gTasks
- thumb_func_end sub_810E67C
-
- thumb_func_start sub_810E6A4
-sub_810E6A4: @ 810E6A4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0x6
- bne _0810E712
- movs r0, 0
- strh r0, [r4, 0xE]
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0810E6DC
- ldr r2, _0810E6D4
- movs r0, 0x12
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _0810E6D8
- movs r0, 0x12
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- b _0810E6F2
- .align 2, 0
-_0810E6D4: .4byte 0x00000e9d
-_0810E6D8: .4byte 0x00000ea5
-_0810E6DC:
- ldr r2, _0810E720
- movs r0, 0x12
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- movs r2, 0xE6
- lsls r2, 4
- movs r0, 0x12
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
-_0810E6F2:
- bl DrawWholeMapView
- ldrh r0, [r4, 0x10]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0810E712
- ldrb r0, [r4, 0xA]
- bl DestroyTask
-_0810E712:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E720: .4byte 0x00000e58
- thumb_func_end sub_810E6A4
-
- thumb_func_start sub_810E724
-sub_810E724: @ 810E724
- push {lr}
- ldr r2, _0810E744
- movs r0, 0x12
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _0810E748
- movs r0, 0x12
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- pop {r0}
- bx r0
- .align 2, 0
-_0810E744: .4byte 0x00000e9d
-_0810E748: .4byte 0x00000ea5
- thumb_func_end sub_810E724
-
- thumb_func_start sub_810E74C
-sub_810E74C: @ 810E74C
- push {lr}
- ldr r0, _0810E768
- ldrb r0, [r0, 0x15]
- subs r0, 0x11
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x5
- bhi _0810E79C
- lsls r0, 2
- ldr r1, _0810E76C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810E768: .4byte gSaveBlock1
-_0810E76C: .4byte _0810E770
- .align 2, 0
-_0810E770:
- .4byte _0810E79C
- .4byte _0810E788
- .4byte _0810E78C
- .4byte _0810E790
- .4byte _0810E794
- .4byte _0810E798
-_0810E788:
- movs r1, 0x1
- b _0810E79E
-_0810E78C:
- movs r1, 0x2
- b _0810E79E
-_0810E790:
- movs r1, 0x3
- b _0810E79E
-_0810E794:
- movs r1, 0x4
- b _0810E79E
-_0810E798:
- movs r1, 0xF
- b _0810E79E
-_0810E79C:
- movs r1, 0
-_0810E79E:
- ldr r0, _0810E7A8
- bl VarSet
- pop {r0}
- bx r0
- .align 2, 0
-_0810E7A8: .4byte 0x00004043
- thumb_func_end sub_810E74C
-
- thumb_func_start sub_810E7AC
-sub_810E7AC: @ 810E7AC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r12, r2
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- ldr r0, _0810E81C
- ldrh r1, [r0]
- adds r2, r0, 0
- ldr r3, _0810E820
- cmp r1, 0
- bne _0810E7E8
- movs r1, 0
- adds r5, r3, 0
- movs r4, 0x10
-_0810E7D8:
- lsls r0, r1, 2
- adds r0, r5
- strb r4, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x13
- bls _0810E7D8
-_0810E7E8:
- ldrh r0, [r2]
- lsls r0, 2
- adds r0, r3
- strb r6, [r0]
- ldrh r0, [r2]
- lsls r0, 2
- adds r0, r3
- strb r7, [r0, 0x1]
- ldrh r0, [r2]
- lsls r0, 2
- adds r0, r3
- mov r1, r12
- strb r1, [r0, 0x2]
- ldrh r0, [r2]
- lsls r0, 2
- adds r0, r3
- mov r1, r8
- strb r1, [r0, 0x3]
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E81C: .4byte gUnknown_0202E8CC
-_0810E820: .4byte gUnknown_03000760
- thumb_func_end sub_810E7AC
-
- thumb_func_start sub_810E824
-sub_810E824: @ 810E824
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0810E868
- strb r4, [r5]
- ldr r0, _0810E86C
- strb r4, [r0]
- movs r0, 0x10
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_810E7AC
- ldr r2, _0810E870
- ldrb r0, [r2]
- cmp r0, 0x10
- beq _0810E85C
- adds r1, r5, 0
-_0810E846:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x10
- bne _0810E846
-_0810E85C:
- bl sub_810E874
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E868: .4byte gUnknown_0203925A
-_0810E86C: .4byte gUnknown_0203925B
-_0810E870: .4byte gUnknown_03000760
- thumb_func_end sub_810E824
-
- thumb_func_start sub_810E874
-sub_810E874: @ 810E874
- push {r4-r6,lr}
- sub sp, 0x8
- bl ScriptContext2_Enable
- ldr r4, _0810E8B8
- ldrb r0, [r4]
- cmp r0, 0x5
- bls _0810E8C0
- movs r0, 0
- movs r1, 0
- movs r2, 0x8
- movs r3, 0xB
- bl MenuDrawTextWindow
- movs r4, 0
- str r4, [sp]
- movs r0, 0x7
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x5
- bl InitMenu
- ldr r0, _0810E8BC
- strb r4, [r0]
- bl sub_80F944C
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- bl sub_810ECD4
- b _0810E8E8
- .align 2, 0
-_0810E8B8: .4byte gUnknown_0203925A
-_0810E8BC: .4byte gUnknown_0203925C
-_0810E8C0:
- ldrb r3, [r4]
- lsls r3, 1
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0x8
- bl MenuDrawTextWindow
- ldrb r3, [r4]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x7
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- bl InitMenu
-_0810E8E8:
- movs r4, 0
- ldr r1, _0810E938
- ldrb r0, [r1]
- cmp r0, 0x10
- beq _0810E924
- ldr r6, _0810E93C
- adds r5, r1, 0
-_0810E8F6:
- lsls r0, r4, 2
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r6
- ldr r0, [r0]
- lsls r2, r4, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x1
- bl MenuPrint
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bhi _0810E924
- lsls r0, r4, 2
- adds r0, r5
- ldrb r0, [r0]
- cmp r0, 0x10
- bne _0810E8F6
-_0810E924:
- bl sub_810E944
- ldr r0, _0810E940
- movs r1, 0x8
- bl CreateTask
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810E938: .4byte gUnknown_03000760
-_0810E93C: .4byte gUnknown_083F8380
-_0810E940: .4byte sub_810E984
- thumb_func_end sub_810E874
-
- thumb_func_start sub_810E944
-sub_810E944: @ 810E944
- push {lr}
- movs r0, 0x14
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x5
- bl MenuDrawTextWindow
- ldr r0, _0810E978
- movs r1, 0x15
- movs r2, 0x1
- movs r3, 0x40
- bl sub_8072BD8
- ldr r1, _0810E97C
- ldr r0, _0810E980
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x15
- movs r2, 0x3
- movs r3, 0x40
- bl sub_8072BD8
- pop {r0}
- bx r0
- .align 2, 0
-_0810E978: .4byte gOtherText_NowOn
-_0810E97C: .4byte gUnknown_083F8380
-_0810E980: .4byte gUnknown_0202E8CE
- thumb_func_end sub_810E944
-
- thumb_func_start sub_810E984
-sub_810E984: @ 810E984
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0810EA44
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x40
- bne _0810E9B8
- ldr r1, _0810EA48
- ldrb r0, [r1]
- cmp r0, 0
- beq _0810E9B8
- subs r0, 0x1
- strb r0, [r1]
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursorNoWrap
- adds r0, r4, 0
- movs r1, 0x40
- bl sub_810EAC8
-_0810E9B8:
- ldr r0, _0810EA44
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x80
- bne _0810E9E8
- ldr r2, _0810EA48
- ldrb r1, [r2]
- ldr r0, _0810EA4C
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- beq _0810E9E8
- adds r0, r1, 0x1
- strb r0, [r2]
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- bl MoveMenuCursorNoWrap
- adds r0, r4, 0
- movs r1, 0x80
- bl sub_810EAC8
-_0810E9E8:
- ldr r0, _0810EA44
- ldrh r2, [r0, 0x2E]
- movs r5, 0x1
- adds r1, r5, 0
- ands r1, r2
- cmp r1, 0
- beq _0810EA94
- ldr r1, _0810EA50
- ldr r4, _0810EA48
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- movs r1, 0x1
- ldrsb r1, [r0, r1]
- movs r2, 0x2
- ldrsb r2, [r0, r2]
- movs r3, 0x1
- negs r3, r3
- movs r0, 0x2
- str r0, [sp]
- str r5, [sp, 0x4]
- movs r0, 0
- bl saved_warp2_set_2
- ldr r1, _0810EA54
- ldrh r0, [r1]
- ldrb r2, [r4]
- cmp r0, r2
- bne _0810EA5C
- ldr r1, _0810EA58
- movs r0, 0
- strh r0, [r1]
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r6, 0
- bl sub_810EC9C
- b _0810EABC
- .align 2, 0
-_0810EA44: .4byte gMain
-_0810EA48: .4byte gUnknown_0203925B
-_0810EA4C: .4byte gUnknown_0203925A
-_0810EA50: .4byte gUnknown_03000760
-_0810EA54: .4byte gUnknown_0202E8CE
-_0810EA58: .4byte gScriptResult
-_0810EA5C:
- ldr r0, _0810EA88
- strh r5, [r0]
- ldrb r0, [r4]
- strh r0, [r1]
- bl sub_810EBEC
- ldr r0, _0810EA8C
- ldrb r0, [r0]
- ldr r2, _0810EA90
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- movs r3, 0x1
- bl FieldObjectTurnByLocalIdAndMap
- bl sub_810EEDC
- bl MenuZeroFillScreen
- adds r0, r6, 0
- bl DestroyTask
- b _0810EABC
- .align 2, 0
-_0810EA88: .4byte gScriptResult
-_0810EA8C: .4byte gUnknown_0202E8DE
-_0810EA90: .4byte gSaveBlock1
-_0810EA94:
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _0810EABC
- ldr r0, _0810EAC4
- strh r1, [r0]
- movs r0, 0x5
- bl PlaySE
- bl sub_810EEDC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r6, 0
- bl sub_810EC9C
-_0810EABC:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EAC4: .4byte gScriptResult
- thumb_func_end sub_810E984
-
- thumb_func_start sub_810EAC8
-sub_810EAC8: @ 810EAC8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r5, r2, 0
- lsls r1, 24
- lsrs r1, 24
- adds r3, r1, 0
- movs r7, 0
- movs r4, 0
- ldr r0, _0810EAEC
- ldrb r0, [r0]
- cmp r0, 0x4
- bhi _0810EAF0
- movs r0, 0
- b _0810EB78
- .align 2, 0
-_0810EAEC: .4byte gUnknown_0203925A
-_0810EAF0:
- cmp r1, 0x40
- bne _0810EB04
- cmp r2, 0
- bne _0810EB18
- ldr r0, _0810EB00
- ldrb r4, [r0]
- movs r7, 0x1
- b _0810EB1C
- .align 2, 0
-_0810EB00: .4byte gUnknown_0203925B
-_0810EB04:
- cmp r3, 0x80
- bne _0810EB18
- cmp r5, 0x4
- bne _0810EB18
- ldr r0, _0810EB84
- ldrb r0, [r0]
- subs r0, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r7, 0x1
-_0810EB18:
- cmp r7, 0
- beq _0810EB76
-_0810EB1C:
- adds r0, r4, 0
- movs r1, 0x5
- bl sub_810EB90
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0xA
- bl MenuFillWindowRectWithBlankTile
- movs r5, 0
- ldr r2, _0810EB88
- lsls r1, r4, 2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x10
- beq _0810EB76
- ldr r0, _0810EB8C
- mov r8, r0
- adds r6, r2, 0
-_0810EB44:
- adds r0, r1, r6
- ldrb r0, [r0]
- lsls r0, 2
- add r0, r8
- ldr r0, [r0]
- lsls r2, r5, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x1
- bl MenuPrint
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bhi _0810EB76
- lsls r1, r4, 2
- adds r0, r1, r6
- ldrb r0, [r0]
- cmp r0, 0x10
- bne _0810EB44
-_0810EB76:
- adds r0, r7, 0
-_0810EB78:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810EB84: .4byte gUnknown_0203925B
-_0810EB88: .4byte gUnknown_03000760
-_0810EB8C: .4byte gUnknown_083F8380
- thumb_func_end sub_810EAC8
-
- thumb_func_start sub_810EB90
-sub_810EB90: @ 810EB90
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r4, 0
- bne _0810EBB4
- ldr r0, _0810EBB0
- ldrb r1, [r0]
- movs r2, 0x2
- eors r1, r2
- strb r1, [r0]
- movs r0, 0
- bl SetBgTilemapBuffer
- b _0810EBB8
- .align 2, 0
-_0810EBB0: .4byte gUnknown_0203925C
-_0810EBB4:
- bl sub_810ECB0
-_0810EBB8:
- adds r1, r4, r5
- ldr r0, _0810EBC8
- ldrb r0, [r0]
- cmp r1, r0
- bge _0810EBCC
- bl sub_810ECD4
- b _0810EBE0
- .align 2, 0
-_0810EBC8: .4byte gUnknown_0203925A
-_0810EBCC:
- cmp r1, r0
- bne _0810EBE0
- ldr r0, _0810EBE8
- ldrb r1, [r0]
- movs r2, 0x1
- eors r1, r2
- strb r1, [r0]
- movs r0, 0x1
- bl SetBgTilemapBuffer
-_0810EBE0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EBE8: .4byte gUnknown_0203925C
- thumb_func_end sub_810EB90
-
- thumb_func_start sub_810EBEC
-sub_810EBEC: @ 810EBEC
- push {lr}
- ldr r0, _0810EC2C
- movs r1, 0x9
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810EC30
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- movs r2, 0x1
- strh r2, [r1, 0x8]
- strh r0, [r1, 0xA]
- strh r0, [r1, 0xC]
- strh r0, [r1, 0xE]
- strh r2, [r1, 0x10]
- movs r0, 0x3
- strh r0, [r1, 0x12]
- movs r0, 0
- bl SetCameraPanningCallback
- bl sub_810ECFC
- movs r0, 0x59
- bl PlaySE
- pop {r0}
- bx r0
- .align 2, 0
-_0810EC2C: .4byte sub_810EC34
-_0810EC30: .4byte gTasks
- thumb_func_end sub_810EBEC
-
- thumb_func_start sub_810EC34
-sub_810EC34: @ 810EC34
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0810EC98
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- bl __modsi3
- cmp r0, 0
- bne _0810EC92
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0810EC92
- ldrh r0, [r4, 0x10]
- negs r0, r0
- strh r0, [r4, 0x10]
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- movs r0, 0
- bl SetCameraPanning
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x17
- bne _0810EC92
- movs r0, 0x49
- bl PlaySE
- adds r0, r5, 0
- bl sub_810EC9C
- bl InstallCameraPanAheadCallback
-_0810EC92:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EC98: .4byte gTasks
- thumb_func_end sub_810EC34
-
- thumb_func_start sub_810EC9C
-sub_810EC9C: @ 810EC9C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_810EC9C
-
- thumb_func_start sub_810ECB0
-sub_810ECB0: @ 810ECB0
- push {lr}
- ldr r2, _0810ECD0
- ldrb r1, [r2]
- lsrs r0, r1, 1
- cmp r0, 0x1
- beq _0810ECCC
- movs r0, 0x2
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0
- movs r1, 0x24
- movs r2, 0x8
- bl sub_80F953C
-_0810ECCC:
- pop {r0}
- bx r0
- .align 2, 0
-_0810ECD0: .4byte gUnknown_0203925C
- thumb_func_end sub_810ECB0
-
- thumb_func_start sub_810ECD4
-sub_810ECD4: @ 810ECD4
- push {lr}
- ldr r2, _0810ECF8
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810ECF2
- movs r0, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
- movs r1, 0x24
- movs r2, 0x48
- bl sub_80F953C
-_0810ECF2:
- pop {r0}
- bx r0
- .align 2, 0
-_0810ECF8: .4byte gUnknown_0203925C
- thumb_func_end sub_810ECD4
-
- thumb_func_start sub_810ECFC
-sub_810ECFC: @ 810ECFC
- push {r4,lr}
- ldr r4, _0810ED38
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810ED30
- adds r0, r4, 0
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810ED3C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r2, [r1, 0x8]
- strh r0, [r1, 0xA]
- strh r2, [r1, 0xC]
- strh r2, [r1, 0xE]
- strh r2, [r1, 0x10]
-_0810ED30:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810ED38: .4byte sub_810ED40
-_0810ED3C: .4byte gTasks
- thumb_func_end sub_810ECFC
-
- thumb_func_start sub_810ED40
-sub_810ED40: @ 810ED40
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _0810ED5C
- adds r0, r1
- bl sub_810ED60
- pop {r0}
- bx r0
- .align 2, 0
-_0810ED5C: .4byte gTasks
- thumb_func_end sub_810ED40
-
- thumb_func_start sub_810ED60
-sub_810ED60: @ 810ED60
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0xE
- ldrsh r0, [r5, r1]
- cmp r0, 0x8
- beq _0810ED6E
- b _0810EEB2
-_0810ED6E:
- movs r0, 0
- strh r0, [r5, 0xE]
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _0810EE14
- ldr r2, _0810EDFC
- movs r0, 0x7
- movs r1, 0x7
- bl MapGridSetMetatileIdAt
- ldr r4, _0810EE00
- movs r0, 0x8
- movs r1, 0x7
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x7
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EE04
- movs r0, 0xA
- movs r1, 0x7
- bl MapGridSetMetatileIdAt
- movs r2, 0xE7
- lsls r2, 4
- movs r0, 0x7
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- adds r4, 0x8
- movs r0, 0x8
- movs r1, 0x8
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x8
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EE08
- movs r0, 0xA
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EE0C
- movs r0, 0x7
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- adds r4, 0x8
- movs r0, 0x8
- movs r1, 0x9
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x9
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EE10
- movs r0, 0xA
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- b _0810EE92
- .align 2, 0
-_0810EDFC: .4byte 0x00000e68
-_0810EE00: .4byte 0x00000e69
-_0810EE04: .4byte 0x00000e6a
-_0810EE08: .4byte 0x00000e72
-_0810EE0C: .4byte 0x00000e78
-_0810EE10: .4byte 0x00000e7a
-_0810EE14:
- ldr r2, _0810EEC0
- movs r0, 0x7
- movs r1, 0x7
- bl MapGridSetMetatileIdAt
- ldr r4, _0810EEC4
- movs r0, 0x8
- movs r1, 0x7
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x7
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EEC8
- movs r0, 0xA
- movs r1, 0x7
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EECC
- movs r0, 0x7
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- adds r4, 0x8
- movs r0, 0x8
- movs r1, 0x8
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x8
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EED0
- movs r0, 0xA
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EED4
- movs r0, 0x7
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- adds r4, 0x8
- movs r0, 0x8
- movs r1, 0x9
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- movs r0, 0x9
- movs r1, 0x9
- adds r2, r4, 0
- bl MapGridSetMetatileIdAt
- ldr r2, _0810EED8
- movs r0, 0xA
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
-_0810EE92:
- bl DrawWholeMapView
- ldrh r0, [r5, 0x10]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r5, 0x10]
- ldrh r0, [r5, 0xC]
- adds r0, 0x1
- strh r0, [r5, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bne _0810EEB2
- ldrb r0, [r5, 0xA]
- bl DestroyTask
-_0810EEB2:
- ldrh r0, [r5, 0xE]
- adds r0, 0x1
- strh r0, [r5, 0xE]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EEC0: .4byte 0x00000e6b
-_0810EEC4: .4byte 0x00000e6c
-_0810EEC8: .4byte 0x00000e6d
-_0810EECC: .4byte 0x00000e73
-_0810EED0: .4byte 0x00000e75
-_0810EED4: .4byte 0x00000e7b
-_0810EED8: .4byte 0x00000e7d
- thumb_func_end sub_810ED60
-
- thumb_func_start sub_810EEDC
-sub_810EEDC: @ 810EEDC
- push {r4,lr}
- ldr r4, _0810EF08
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810EEF0
- movs r0, 0x1
- bl SetBgTilemapBuffer
-_0810EEF0:
- ldrb r0, [r4]
- lsrs r0, 1
- cmp r0, 0x1
- bne _0810EEFE
- movs r0, 0
- bl SetBgTilemapBuffer
-_0810EEFE:
- bl BuyMenuFreeMemory
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810EF08: .4byte gUnknown_0203925C
- thumb_func_end sub_810EEDC
-
- thumb_func_start sub_810EF0C
-sub_810EF0C: @ 810EF0C
- push {lr}
- ldr r1, _0810EF1C
- ldr r0, _0810EF20
- strh r0, [r1]
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_0810EF1C: .4byte gUnknown_0202E8CC
-_0810EF20: .4byte 0x00000259
- thumb_func_end sub_810EF0C
-
- thumb_func_start sub_810EF24
-sub_810EF24: @ 810EF24
- push {lr}
- ldr r1, _0810EF34
- ldr r0, _0810EF38
- strh r0, [r1]
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_0810EF34: .4byte gUnknown_0202E8CC
-_0810EF38: .4byte 0x00000259
- thumb_func_end sub_810EF24
-
- thumb_func_start sub_810EF3C
-sub_810EF3C: @ 810EF3C
- push {lr}
- bl sub_810F87C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810EF5C
- adds r0, r1
- movs r1, 0x16
- bl GetMonData
- cmp r0, 0xC7
- bls _0810EF60
- movs r0, 0x1
- b _0810EF62
- .align 2, 0
-_0810EF5C: .4byte gPlayerParty
-_0810EF60:
- movs r0, 0
-_0810EF62:
- pop {r1}
- bx r1
- thumb_func_end sub_810EF3C
-
- thumb_func_start sub_810EF68
-sub_810EF68: @ 810EF68
- push {lr}
- bl sub_810F87C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810EF88
- adds r0, r1
- movs r1, 0x17
- bl GetMonData
- cmp r0, 0xC7
- bls _0810EF8C
- movs r0, 0x1
- b _0810EF8E
- .align 2, 0
-_0810EF88: .4byte gPlayerParty
-_0810EF8C:
- movs r0, 0
-_0810EF8E:
- pop {r1}
- bx r1
- thumb_func_end sub_810EF68
-
- thumb_func_start sub_810EF94
-sub_810EF94: @ 810EF94
- push {lr}
- bl sub_810F87C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810EFB4
- adds r0, r1
- movs r1, 0x18
- bl GetMonData
- cmp r0, 0xC7
- bls _0810EFB8
- movs r0, 0x1
- b _0810EFBA
- .align 2, 0
-_0810EFB4: .4byte gPlayerParty
-_0810EFB8:
- movs r0, 0
-_0810EFBA:
- pop {r1}
- bx r1
- thumb_func_end sub_810EF94
-
- thumb_func_start sub_810EFC0
-sub_810EFC0: @ 810EFC0
- push {lr}
- bl sub_810F87C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810EFE0
- adds r0, r1
- movs r1, 0x21
- bl GetMonData
- cmp r0, 0xC7
- bls _0810EFE4
- movs r0, 0x1
- b _0810EFE6
- .align 2, 0
-_0810EFE0: .4byte gPlayerParty
-_0810EFE4:
- movs r0, 0
-_0810EFE6:
- pop {r1}
- bx r1
- thumb_func_end sub_810EFC0
-
- thumb_func_start sub_810EFEC
-sub_810EFEC: @ 810EFEC
- push {lr}
- bl sub_810F87C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810F00C
- adds r0, r1
- movs r1, 0x2F
- bl GetMonData
- cmp r0, 0xC7
- bls _0810F010
- movs r0, 0x1
- b _0810F012
- .align 2, 0
-_0810F00C: .4byte gPlayerParty
-_0810F010:
- movs r0, 0
-_0810F012:
- pop {r1}
- bx r1
- thumb_func_end sub_810EFEC
-
- thumb_func_start sub_810F018
-sub_810F018: @ 810F018
- push {r4-r6,lr}
- movs r5, 0
- ldr r6, _0810F068
-_0810F01E:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0810F06C
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x5
- bl GetMonData
- cmp r0, 0
- beq _0810F074
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0810F074
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1, 0x6]
- cmp r0, 0xC
- beq _0810F060
- ldrb r0, [r1, 0x7]
- cmp r0, 0xC
- bne _0810F074
-_0810F060:
- ldr r1, _0810F070
- movs r0, 0x1
- b _0810F082
- .align 2, 0
-_0810F068: .4byte gBaseStats
-_0810F06C: .4byte gPlayerParty
-_0810F070: .4byte gScriptResult
-_0810F074:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0810F01E
- ldr r1, _0810F08C
- movs r0, 0
-_0810F082:
- strh r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F08C: .4byte gScriptResult
- thumb_func_end sub_810F018
-
- thumb_func_start sub_810F090
-sub_810F090: @ 810F090
- push {r4,r5,lr}
- sub sp, 0x8
- bl ScriptContext2_Enable
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0xB
- bl MenuDrawTextWindow
- movs r4, 0
- str r4, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x5
- bl InitMenu
- ldr r0, _0810F104
- strb r4, [r0]
- bl sub_80F944C
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- bl sub_810F2B4
- ldr r5, _0810F108
-_0810F0CA:
- lsls r0, r4, 2
- adds r0, r5
- ldr r0, [r0]
- lsls r2, r4, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x1
- bl MenuPrint
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _0810F0CA
- ldr r1, _0810F10C
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0810F110
- movs r0, 0x8
- strb r0, [r1]
- ldr r0, _0810F114
- movs r1, 0x8
- bl CreateTask
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F104: .4byte gUnknown_0203925C
-_0810F108: .4byte gUnknown_083F83C0
-_0810F10C: .4byte gUnknown_0203925B
-_0810F110: .4byte gUnknown_0203925A
-_0810F114: .4byte sub_810F118
- thumb_func_end sub_810F090
-
- thumb_func_start sub_810F118
-sub_810F118: @ 810F118
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0810F1E4
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x40
- bne _0810F14A
- ldr r1, _0810F1E8
- ldrb r0, [r1]
- cmp r0, 0
- beq _0810F14A
- subs r0, 0x1
- strb r0, [r1]
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursorNoWrap
- adds r0, r4, 0
- movs r1, 0x40
- bl sub_810F1F4
-_0810F14A:
- ldr r0, _0810F1E4
- ldrh r0, [r0, 0x2E]
- cmp r0, 0x80
- bne _0810F17A
- ldr r2, _0810F1E8
- ldrb r1, [r2]
- ldr r0, _0810F1EC
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- beq _0810F17A
- adds r0, r1, 0x1
- strb r0, [r2]
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x1
- bl MoveMenuCursorNoWrap
- adds r0, r4, 0
- movs r1, 0x80
- bl sub_810F1F4
-_0810F17A:
- ldr r4, _0810F1E4
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0810F1AE
- bl sub_8072DEC
- ldr r0, _0810F1F0
- ldr r1, _0810F1E8
- ldrb r1, [r1]
- strh r1, [r0]
- movs r0, 0x5
- bl PlaySE
- bl sub_810EEDC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl sub_810EC9C
-_0810F1AE:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0810F1DE
- bl sub_8072DEC
- ldr r1, _0810F1F0
- movs r0, 0x7F
- strh r0, [r1]
- movs r0, 0x5
- bl PlaySE
- bl sub_810EEDC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r5, 0
- bl sub_810EC9C
-_0810F1DE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F1E4: .4byte gMain
-_0810F1E8: .4byte gUnknown_0203925B
-_0810F1EC: .4byte gUnknown_0203925A
-_0810F1F0: .4byte gScriptResult
- thumb_func_end sub_810F118
-
- thumb_func_start sub_810F1F4
-sub_810F1F4: @ 810F1F4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r5, r2, 0
- lsls r1, 24
- lsrs r1, 24
- adds r3, r1, 0
- movs r6, 0
- movs r4, 0
- ldr r0, _0810F214
- ldrb r0, [r0]
- cmp r0, 0x4
- bhi _0810F218
- movs r0, 0
- b _0810F282
- .align 2, 0
-_0810F214: .4byte gUnknown_0203925A
-_0810F218:
- cmp r1, 0x40
- bne _0810F22C
- cmp r2, 0
- bne _0810F240
- ldr r0, _0810F228
- ldrb r4, [r0]
- movs r6, 0x1
- b _0810F244
- .align 2, 0
-_0810F228: .4byte gUnknown_0203925B
-_0810F22C:
- cmp r3, 0x80
- bne _0810F240
- cmp r5, 0x4
- bne _0810F240
- ldr r0, _0810F288
- ldrb r0, [r0]
- subs r0, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- movs r6, 0x1
-_0810F240:
- cmp r6, 0
- beq _0810F280
-_0810F244:
- adds r0, r4, 0
- movs r1, 0x5
- bl sub_810F2DC
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x9
- movs r3, 0xA
- bl MenuFillWindowRectWithBlankTile
- movs r5, 0
- ldr r7, _0810F28C
-_0810F25C:
- lsls r0, r4, 2
- adds r0, r7
- ldr r0, [r0]
- lsls r2, r5, 1
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x1
- bl MenuPrint
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _0810F25C
-_0810F280:
- adds r0, r6, 0
-_0810F282:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810F288: .4byte gUnknown_0203925B
-_0810F28C: .4byte gUnknown_083F83C0
- thumb_func_end sub_810F1F4
-
- thumb_func_start sub_810F290
-sub_810F290: @ 810F290
- push {lr}
- ldr r2, _0810F2B0
- ldrb r1, [r2]
- lsrs r0, r1, 1
- cmp r0, 0x1
- beq _0810F2AC
- movs r0, 0x2
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0
- movs r1, 0x2C
- movs r2, 0x8
- bl sub_80F953C
-_0810F2AC:
- pop {r0}
- bx r0
- .align 2, 0
-_0810F2B0: .4byte gUnknown_0203925C
- thumb_func_end sub_810F290
-
- thumb_func_start sub_810F2B4
-sub_810F2B4: @ 810F2B4
- push {lr}
- ldr r2, _0810F2D8
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810F2D2
- movs r0, 0x1
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x1
- movs r1, 0x2C
- movs r2, 0x58
- bl sub_80F953C
-_0810F2D2:
- pop {r0}
- bx r0
- .align 2, 0
-_0810F2D8: .4byte gUnknown_0203925C
- thumb_func_end sub_810F2B4
-
- thumb_func_start sub_810F2DC
-sub_810F2DC: @ 810F2DC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r4, 0
- bne _0810F300
- ldr r0, _0810F2FC
- ldrb r1, [r0]
- movs r2, 0x2
- eors r1, r2
- strb r1, [r0]
- movs r0, 0
- bl SetBgTilemapBuffer
- b _0810F304
- .align 2, 0
-_0810F2FC: .4byte gUnknown_0203925C
-_0810F300:
- bl sub_810F290
-_0810F304:
- adds r1, r4, r5
- ldr r0, _0810F314
- ldrb r0, [r0]
- cmp r1, r0
- bge _0810F318
- bl sub_810F2B4
- b _0810F32C
- .align 2, 0
-_0810F314: .4byte gUnknown_0203925A
-_0810F318:
- cmp r1, r0
- bne _0810F32C
- ldr r0, _0810F334
- ldrb r1, [r0]
- movs r2, 0x1
- eors r1, r2
- strb r1, [r0]
- movs r0, 0x1
- bl SetBgTilemapBuffer
-_0810F32C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F334: .4byte gUnknown_0203925C
- thumb_func_end sub_810F2DC
-
- thumb_func_start SpawnScriptFieldObject
-SpawnScriptFieldObject: @ 810F338
- push {lr}
- sub sp, 0x8
- ldr r0, _0810F380
- ldrh r3, [r0]
- adds r3, 0x7
- lsls r3, 16
- asrs r3, 16
- ldrh r0, [r0, 0x2]
- adds r0, 0x7
- lsls r0, 16
- asrs r0, 16
- str r0, [sp]
- movs r0, 0x3
- str r0, [sp, 0x4]
- movs r0, 0x7
- movs r1, 0x8
- movs r2, 0x7F
- bl SpawnSpecialFieldObjectParametrized
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810F384
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x1]
- movs r2, 0x20
- orrs r0, r2
- strb r0, [r1, 0x1]
- ldrb r0, [r1, 0x4]
- bl CameraObjectSetFollowedObjectId
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_0810F380: .4byte gSaveBlock1
-_0810F384: .4byte gMapObjects
- thumb_func_end SpawnScriptFieldObject
-
- thumb_func_start sub_810F388
-sub_810F388: @ 810F388
- push {lr}
- bl GetPlayerAvatarObjectId
- lsls r0, 24
- lsrs r0, 24
- bl CameraObjectSetFollowedObjectId
- ldr r0, _0810F3A8
- ldrb r1, [r0, 0x5]
- ldrb r2, [r0, 0x4]
- movs r0, 0x7F
- bl RemoveFieldObjectByLocalIdAndMap
- pop {r0}
- bx r0
- .align 2, 0
-_0810F3A8: .4byte gSaveBlock1
- thumb_func_end sub_810F388
-
- thumb_func_start sub_810F3AC
-sub_810F3AC: @ 810F3AC
- push {lr}
- bl sub_810F87C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810F3D4
- adds r0, r1
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0810F3D8
- bl sub_810CB68
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0810F3D4: .4byte gPlayerParty
-_0810F3D8: .4byte gStringVar1
- thumb_func_end sub_810F3AC
-
- thumb_func_start sub_810F3DC
-sub_810F3DC: @ 810F3DC
- push {r4,lr}
- ldr r4, _0810F3FC
- ldr r0, _0810F400
- bl VarGet
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0
- bl sub_80FBFB4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F3FC: .4byte gStringVar1
-_0810F400: .4byte 0x00004026
- thumb_func_end sub_810F3DC
-
- thumb_func_start sub_810F404
-sub_810F404: @ 810F404
- push {lr}
- movs r0, 0x20
- bl sub_8053108
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_810F404
-
- thumb_func_start sub_810F414
-sub_810F414: @ 810F414
- push {lr}
- ldr r0, _0810F420
- bl sub_8135FF4
- pop {r0}
- bx r0
- .align 2, 0
-_0810F420: .4byte gStringVar1
- thumb_func_end sub_810F414
-
- thumb_func_start sub_810F424
-sub_810F424: @ 810F424
- push {r4,r5,lr}
- ldr r2, _0810F458
- ldr r1, _0810F45C
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r1, 25
- ldr r0, _0810F460
- adds r2, r0
- lsrs r1, 25
- ldrh r2, [r2]
- adds r1, r2
- ldr r2, _0810F464
- ldr r0, _0810F468
- ldrh r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- adds r5, r1, r0
- movs r0, 0x2
- bl GetPriceReduction
- lsls r0, 24
- cmp r0, 0
- bne _0810F470
- ldr r4, _0810F46C
- b _0810F472
- .align 2, 0
-_0810F458: .4byte gSaveBlock1
-_0810F45C: .4byte 0x00002dd4
-_0810F460: .4byte 0x00002dd6
-_0810F464: .4byte gUnknown_083F83E0
-_0810F468: .4byte gUnknown_0202E8CC
-_0810F46C: .4byte gUnknown_083F83EC
-_0810F470:
- ldr r4, _0810F484
-_0810F472:
- adds r0, r5, 0
- movs r1, 0xC
- bl __umodsi3
- adds r0, r4
- ldrb r0, [r0]
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0810F484: .4byte gUnknown_083F83F8
- thumb_func_end sub_810F424
-
- thumb_func_start sub_810F488
-sub_810F488: @ 810F488
- push {lr}
- ldr r1, _0810F4A0
- ldr r0, _0810F4A4
- strh r0, [r1]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F4A8
- movs r0, 0x1
- b _0810F4AA
- .align 2, 0
-_0810F4A0: .4byte gUnknown_0202E8CC
-_0810F4A4: .4byte 0x00000277
-_0810F4A8:
- movs r0, 0
-_0810F4AA:
- pop {r1}
- bx r1
- thumb_func_end sub_810F488
-
- thumb_func_start sub_810F4B0
-sub_810F4B0: @ 810F4B0
- push {lr}
- ldr r1, _0810F4C8
- movs r0, 0x9E
- lsls r0, 2
- strh r0, [r1]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F4CC
- movs r0, 0x1
- b _0810F4CE
- .align 2, 0
-_0810F4C8: .4byte gUnknown_0202E8CC
-_0810F4CC:
- movs r0, 0
-_0810F4CE:
- pop {r1}
- bx r1
- thumb_func_end sub_810F4B0
-
- thumb_func_start sub_810F4D4
-sub_810F4D4: @ 810F4D4
- push {lr}
- ldr r1, _0810F4EC
- ldr r0, _0810F4F0
- strh r0, [r1]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F4F4
- movs r0, 0x1
- b _0810F4F6
- .align 2, 0
-_0810F4EC: .4byte gUnknown_0202E8CC
-_0810F4F0: .4byte 0x00000279
-_0810F4F4:
- movs r0, 0
-_0810F4F6:
- pop {r1}
- bx r1
- thumb_func_end sub_810F4D4
-
- thumb_func_start sub_810F4FC
-sub_810F4FC: @ 810F4FC
- push {lr}
- ldr r1, _0810F514
- ldr r0, _0810F518
- strh r0, [r1]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F51C
- movs r0, 0x1
- b _0810F51E
- .align 2, 0
-_0810F514: .4byte gUnknown_0202E8CC
-_0810F518: .4byte 0x0000027a
-_0810F51C:
- movs r0, 0
-_0810F51E:
- pop {r1}
- bx r1
- thumb_func_end sub_810F4FC
-
- thumb_func_start sub_810F524
-sub_810F524: @ 810F524
- push {lr}
- bl sub_810F87C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810F548
- adds r0, r1
- movs r1, 0x47
- movs r2, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0810F548: .4byte gPlayerParty
- thumb_func_end sub_810F524
-
- thumb_func_start sub_810F54C
-sub_810F54C: @ 810F54C
- push {lr}
- sub sp, 0x4
- movs r0, 0x2A
- bl sav12_xor_increment
- ldr r0, _0810F580
- bl FlagSet
- movs r1, 0x1
- mov r0, sp
- strb r1, [r0]
- bl sub_810F87C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810F584
- adds r0, r1
- movs r1, 0x47
- mov r2, sp
- bl SetMonData
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0810F580: .4byte 0x0000083b
-_0810F584: .4byte gPlayerParty
- thumb_func_end sub_810F54C
-
- thumb_func_start sub_810F588
-sub_810F588: @ 810F588
- push {lr}
- bl sub_810F87C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0810F5AC
- adds r0, r1
- bl sub_8040020
- lsls r0, 16
- ldr r1, _0810F5B0
- cmp r0, r1
- bhi _0810F5B4
- movs r0, 0
- b _0810F5B6
- .align 2, 0
-_0810F5AC: .4byte gPlayerParty
-_0810F5B0: .4byte 0x01fd0000
-_0810F5B4:
- movs r0, 0x1
-_0810F5B6:
- pop {r1}
- bx r1
- thumb_func_end sub_810F588
-
- thumb_func_start sub_810F5BC
-sub_810F5BC: @ 810F5BC
- push {lr}
- movs r0, 0xC7
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _0810F610
- ldr r0, _0810F5E8
- ldrh r1, [r0, 0x4]
- movs r0, 0x83
- lsls r0, 3
- cmp r1, r0
- bne _0810F610
- subs r0, 0x75
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F5F0
- ldr r0, _0810F5EC
- movs r1, 0x4
- b _0810F602
- .align 2, 0
-_0810F5E8: .4byte gSaveBlock1
-_0810F5EC: .4byte 0x0000409a
-_0810F5F0:
- movs r0, 0xE9
- lsls r0, 2
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0810F610
- ldr r0, _0810F60C
- movs r1, 0x5
-_0810F602:
- bl VarSet
- movs r0, 0x1
- b _0810F612
- .align 2, 0
-_0810F60C: .4byte 0x0000409a
-_0810F610:
- movs r0, 0
-_0810F612:
- pop {r1}
- bx r1
- thumb_func_end sub_810F5BC
-
- thumb_func_start sub_810F618
-sub_810F618: @ 810F618
- push {lr}
- ldr r0, _0810F624
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_0810F624: .4byte 0x0000085f
- thumb_func_end sub_810F618
-
- thumb_func_start sub_810F628
-sub_810F628: @ 810F628
- push {r4,r5,lr}
- sub sp, 0x14
- ldr r5, _0810F690
- movs r1, 0x90
- lsls r1, 1
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- str r4, [sp, 0xC]
- adds r0, r5, 0
- movs r2, 0x7
- movs r3, 0x20
- bl CreateMon
- movs r1, 0x1
- add r0, sp, 0x10
- strh r1, [r0]
- adds r0, r5, 0
- movs r1, 0x2E
- add r2, sp, 0x10
- bl SetMonData
- add r1, sp, 0x10
- movs r0, 0x21
- strh r0, [r1]
- adds r0, r5, 0
- movs r1, 0xD
- add r2, sp, 0x10
- bl SetMonData
- add r0, sp, 0x10
- strh r4, [r0]
- adds r0, r5, 0
- movs r1, 0xE
- add r2, sp, 0x10
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0xF
- add r2, sp, 0x10
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0x10
- add r2, sp, 0x10
- bl SetMonData
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F690: .4byte gPlayerParty
- thumb_func_end sub_810F628
-
- thumb_func_start sub_810F694
-sub_810F694: @ 810F694
- push {r4-r6,lr}
- ldr r0, _0810F6D0
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl sub_8109E50
- lsls r0, 16
- lsrs r6, r0, 16
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- cmp r4, r5
- bcs _0810F6E2
-_0810F6B6:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _0810F6D4
- adds r0, r1
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- cmp r0, r6
- bne _0810F6D8
- movs r0, 0x1
- b _0810F6E4
- .align 2, 0
-_0810F6D0: .4byte 0x00004023
-_0810F6D4: .4byte gPlayerParty
-_0810F6D8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _0810F6B6
-_0810F6E2:
- movs r0, 0
-_0810F6E4:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_810F694
-
- thumb_func_start sub_810F6EC
-sub_810F6EC: @ 810F6EC
- push {r4-r6,lr}
- movs r5, 0
-_0810F6F0:
- movs r4, 0
- lsls r1, r5, 2
- adds r1, r5
- lsls r0, r1, 4
- subs r0, r1
- lsls r6, r0, 5
-_0810F6FC:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 4
- ldr r1, _0810F718
- adds r0, r1
- adds r0, r6, r0
- movs r1, 0xB
- movs r2, 0
- bl GetBoxMonData
- cmp r0, 0
- bne _0810F71C
- movs r0, 0x1
- b _0810F732
- .align 2, 0
-_0810F718: .4byte gUnknown_020300A4
-_0810F71C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1D
- bls _0810F6FC
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0xD
- bls _0810F6F0
- movs r0, 0
-_0810F732:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_810F6EC
-
- thumb_func_start sub_810F738
-sub_810F738: @ 810F738
- push {lr}
- ldr r0, _0810F74C
- movs r1, 0x3F
- bl sub_8040110
- lsls r0, 24
- cmp r0, 0
- beq _0810F750
- movs r0, 0x1
- b _0810F752
- .align 2, 0
-_0810F74C: .4byte gPlayerParty
-_0810F750:
- movs r0, 0
-_0810F752:
- pop {r1}
- bx r1
- thumb_func_end sub_810F738
-
- thumb_func_start sub_810F758
-sub_810F758: @ 810F758
- push {lr}
- ldr r0, _0810F798
- movs r1, 0x9
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0810F79C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0810F7A0
- ldrh r2, [r0]
- movs r0, 0
- strh r2, [r1, 0x8]
- strh r0, [r1, 0xA]
- strh r0, [r1, 0xC]
- strh r0, [r1, 0xE]
- ldr r0, _0810F7A4
- ldrh r0, [r0]
- strh r0, [r1, 0x10]
- movs r0, 0x5
- strh r0, [r1, 0x12]
- movs r0, 0
- bl SetCameraPanningCallback
- movs r0, 0xD6
- bl PlaySE
- pop {r0}
- bx r0
- .align 2, 0
-_0810F798: .4byte sub_810F7A8
-_0810F79C: .4byte gTasks
-_0810F7A0: .4byte gUnknown_0202E8CE
-_0810F7A4: .4byte gUnknown_0202E8CC
- thumb_func_end sub_810F758
-
- thumb_func_start sub_810F7A8
-sub_810F7A8: @ 810F7A8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0810F810
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- bl __modsi3
- cmp r0, 0
- bne _0810F808
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0810F808
- ldrh r0, [r4, 0x8]
- negs r0, r0
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0x10]
- negs r0, r0
- strh r0, [r4, 0x10]
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- bl SetCameraPanning
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- bne _0810F808
- adds r0, r5, 0
- bl sub_810F814
- bl InstallCameraPanAheadCallback
-_0810F808:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810F810: .4byte gTasks
- thumb_func_end sub_810F7A8
-
- thumb_func_start sub_810F814
-sub_810F814: @ 810F814
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_810F814
-
- thumb_func_start sub_810F828
-sub_810F828: @ 810F828
- push {lr}
- movs r0, 0xAE
- lsls r0, 2
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_810F828
-
- thumb_func_start sub_810F83C
-sub_810F83C: @ 810F83C
- push {lr}
- bl get_map_light_from_warp0
- lsls r0, 24
- lsrs r0, 24
- bl is_light_level_1_2_3_5_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810F858
- movs r0, 0x14
- bl sub_80806B4
-_0810F858:
- pop {r0}
- bx r0
- thumb_func_end sub_810F83C
-
- thumb_func_start sub_810F85C
-sub_810F85C: @ 810F85C
- push {lr}
- bl get_map_light_from_warp0
- lsls r0, 24
- lsrs r0, 24
- bl is_light_level_1_2_3_5_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0810F878
- movs r0, 0x15
- bl sub_80806B4
-_0810F878:
- pop {r0}
- bx r0
- thumb_func_end sub_810F85C
-
- thumb_func_start sub_810F87C
-sub_810F87C: @ 810F87C
- push {r4-r6,lr}
- bl CalculatePlayerPartyCount
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- cmp r5, r6
- bcs _0810F8CA
-_0810F88C:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0810F8BC
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0810F8C0
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- cmp r0, 0
- beq _0810F8C0
- adds r0, r5, 0
- b _0810F8CC
- .align 2, 0
-_0810F8BC: .4byte gPlayerParty
-_0810F8C0:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r6
- bcc _0810F88C
-_0810F8CA:
- movs r0, 0
-_0810F8CC:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_810F87C
-
- thumb_func_start sub_810F8D4
-sub_810F8D4: @ 810F8D4
- push {lr}
- ldr r0, _0810F8F4
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0810F8F8
- adds r0, r1
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- pop {r1}
- bx r1
- .align 2, 0
-_0810F8F4: .4byte gUnknown_0202E8CC
-_0810F8F8: .4byte gPlayerParty
- thumb_func_end sub_810F8D4
-
- thumb_func_start sub_810F8FC
-sub_810F8FC: @ 810F8FC
- push {lr}
- movs r0, 0x6
- bl sub_805ADDC
- pop {r0}
- bx r0
- thumb_func_end sub_810F8FC
-
- thumb_func_start sub_810F908
-sub_810F908: @ 810F908
- push {r4,lr}
- ldr r0, _0810F928
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- adds r3, r0, 0
- ldr r2, _0810F92C
- movs r1, 0
- ldrsh r0, [r2, r1]
- subs r0, r3
- cmp r0, 0x6
- ble _0810F930
- movs r0, 0
- b _0810F948
- .align 2, 0
-_0810F928: .4byte 0x000040c2
-_0810F92C: .4byte gLocalTime
-_0810F930:
- ldrh r1, [r2]
- movs r4, 0
- ldrsh r0, [r2, r4]
- cmp r0, 0
- blt _0810F946
- subs r1, r3
- movs r0, 0x7
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- b _0810F948
-_0810F946:
- movs r0, 0x8
-_0810F948:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810F908
-
- thumb_func_start sub_810F950
-sub_810F950: @ 810F950
- push {r4,lr}
- ldr r0, _0810F964
- ldr r4, _0810F968
- ldrh r1, [r4]
- bl VarSet
- ldrh r0, [r4]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0810F964: .4byte 0x000040c2
-_0810F968: .4byte gLocalTime
- thumb_func_end sub_810F950
-
- thumb_func_start sub_810F96C
-sub_810F96C: @ 810F96C
- push {r4,lr}
- ldr r0, _0810F994
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0810F998
- adds r0, r1
- ldr r4, _0810F99C
- movs r1, 0x7
- adds r2, r4, 0
- bl GetMonData
- ldr r0, _0810F9A0
- adds r1, r4, 0
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- beq _0810F9A4
- movs r0, 0x1
- b _0810F9A6
- .align 2, 0
-_0810F994: .4byte gUnknown_0202E8CC
-_0810F998: .4byte gPlayerParty
-_0810F99C: .4byte gStringVar1
-_0810F9A0: .4byte gSaveBlock2
-_0810F9A4:
- movs r0, 0
-_0810F9A6:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_810F96C
-
- thumb_func_start sub_810F9AC
-sub_810F9AC: @ 810F9AC
- push {r4,r5,lr}
- ldr r2, _0810F9C0
- ldrh r1, [r2]
- ldr r0, _0810F9C4
- cmp r1, r0
- bls _0810F9C8
- movs r0, 0
- bl sub_80BF088
- b _0810FA4A
- .align 2, 0
-_0810F9C0: .4byte gScriptResult
-_0810F9C4: .4byte 0x0000270f
-_0810F9C8:
- ldr r0, _0810F9D8
- cmp r1, r0
- bls _0810F9E0
- ldr r4, _0810F9DC
- movs r0, 0xA1
- strb r0, [r4]
- adds r4, 0x1
- b _0810FA04
- .align 2, 0
-_0810F9D8: .4byte 0x000003e7
-_0810F9DC: .4byte gStringVar1
-_0810F9E0:
- cmp r1, 0x63
- bls _0810F9F4
- ldr r4, _0810F9F0
- movs r0, 0xA1
- strb r0, [r4]
- strb r0, [r4, 0x1]
- adds r4, 0x2
- b _0810FA04
- .align 2, 0
-_0810F9F0: .4byte gStringVar1
-_0810F9F4:
- cmp r1, 0x9
- bls _0810FA24
- ldr r4, _0810FA20
- movs r0, 0xA1
- strb r0, [r4]
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- adds r4, 0x3
-_0810FA04:
- ldrh r5, [r2]
- adds r0, r5, 0
- bl sub_80BF0B8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl ConvertIntToDecimalStringN
- b _0810FA4A
- .align 2, 0
-_0810FA20: .4byte gStringVar1
-_0810FA24:
- ldr r4, _0810FA50
- movs r0, 0xA1
- strb r0, [r4]
- strb r0, [r4, 0x1]
- strb r0, [r4, 0x2]
- strb r0, [r4, 0x3]
- adds r4, 0x4
- ldrh r5, [r2]
- adds r0, r5, 0
- bl sub_80BF0B8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl ConvertIntToDecimalStringN
-_0810FA4A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0810FA50: .4byte gStringVar1
- thumb_func_end sub_810F9AC
-
- thumb_func_start sub_810FA54
-sub_810FA54: @ 810FA54
- ldr r0, _0810FA68
- ldr r2, _0810FA6C
- adds r1, r0, r2
- movs r2, 0
- strh r2, [r1]
- ldr r1, _0810FA70
- adds r0, r1
- strh r2, [r0]
- bx lr
- .align 2, 0
-_0810FA68: .4byte gSaveBlock1
-_0810FA6C: .4byte 0x000013c2
-_0810FA70: .4byte 0x000013c4
- thumb_func_end sub_810FA54
-
- thumb_func_start sub_810FA74
-sub_810FA74: @ 810FA74
- push {lr}
- bl sub_810FF30
- lsls r0, 24
- cmp r0, 0
- beq _0810FA90
- bl sub_810FCE8
- ldr r0, _0810FA94
- ldr r1, _0810FA98
- ldrh r1, [r1, 0xE]
- ldr r2, _0810FA9C
- adds r0, r2
- strh r1, [r0]
-_0810FA90:
- pop {r0}
- bx r0
- .align 2, 0
-_0810FA94: .4byte gSaveBlock1
-_0810FA98: .4byte gSaveBlock2
-_0810FA9C: .4byte 0x000013c4
- thumb_func_end sub_810FA74
-
- thumb_func_start sub_810FAA0
-sub_810FAA0: @ 810FAA0
- push {r4,lr}
- ldr r4, _0810FAF0
- ldr r1, _0810FAF4
- adds r0, r4, r1
- ldrh r0, [r0]
- lsrs r0, 7
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0810FAE8
- bl sub_810FF48
- bl sub_810FD80
- ldr r0, _0810FAF8
- ldrh r1, [r0, 0xE]
- ldr r2, _0810FAFC
- adds r0, r4, r2
- strh r1, [r0]
- ldr r0, _0810FB00
- bl FlagReset
- ldr r0, _0810FB04
- bl FlagReset
- ldr r0, _0810FB08
- bl FlagReset
- movs r0, 0xC6
- lsls r0, 2
- bl FlagReset
- ldr r0, _0810FB0C
- movs r1, 0x1
- bl VarSet
-_0810FAE8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810FAF0: .4byte gSaveBlock1
-_0810FAF4: .4byte 0x000013c2
-_0810FAF8: .4byte gSaveBlock2
-_0810FAFC: .4byte 0x000013c4
-_0810FB00: .4byte 0x00000315
-_0810FB04: .4byte 0x00000316
-_0810FB08: .4byte 0x00000317
-_0810FB0C: .4byte 0x00004095
- thumb_func_end sub_810FAA0
-
- thumb_func_start sub_810FB10
-sub_810FB10: @ 810FB10
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0810FB54
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bne _0810FB80
- ldr r0, _0810FB58
- ldr r1, _0810FB5C
- adds r4, r0, r1
- ldrh r2, [r4]
- movs r1, 0x7F
- ands r1, r2
- ldr r0, _0810FB60
- adds r0, r5, r0
- ldrb r0, [r0]
- adds r1, r0
- cmp r1, 0x13
- ble _0810FB7C
- bl sub_810FCB0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bhi _0810FB68
- bl sub_810FB9C
- ldrh r1, [r4]
- ldr r0, _0810FB64
- ands r0, r1
- b _0810FB7E
- .align 2, 0
-_0810FB54: .4byte 0x00004095
-_0810FB58: .4byte gSaveBlock1
-_0810FB5C: .4byte 0x000013c2
-_0810FB60: .4byte gUnknown_083F8404
-_0810FB64: .4byte 0x0000ff80
-_0810FB68:
- ldrh r0, [r4]
- ldr r1, _0810FB78
- ands r1, r0
- movs r0, 0x14
- orrs r1, r0
- strh r1, [r4]
- b _0810FB80
- .align 2, 0
-_0810FB78: .4byte 0x0000ff80
-_0810FB7C:
- adds r0, r2, r0
-_0810FB7E:
- strh r0, [r4]
-_0810FB80:
- ldr r0, _0810FB94
- ldr r1, _0810FB98
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x7F
- ands r0, r1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0810FB94: .4byte gSaveBlock1
-_0810FB98: .4byte 0x000013c2
- thumb_func_end sub_810FB10
-
- thumb_func_start sub_810FB9C
-sub_810FB9C: @ 810FB9C
- push {r4-r7,lr}
- sub sp, 0x4
- movs r3, 0
- movs r5, 0
- ldr r7, _0810FBD8
- movs r6, 0x1
-_0810FBA8:
- ldrh r1, [r7]
- ldr r0, _0810FBDC
- adds r0, r5, r0
- ldrb r4, [r0]
- asrs r1, r4
- ands r1, r6
- cmp r1, 0
- bne _0810FBE0
- adds r3, r5, 0
- str r3, [sp]
- bl Random
- adds r1, r6, 0
- ands r1, r0
- ldr r3, [sp]
- cmp r1, 0
- beq _0810FBE0
- adds r0, r6, 0
- lsls r0, r4
- ldrh r1, [r7]
- orrs r0, r1
- strh r0, [r7]
- b _0810FC00
- .align 2, 0
-_0810FBD8: .4byte gSaveBlock1 + 0x13C2
-_0810FBDC: .4byte gUnknown_083F8408
-_0810FBE0:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x7
- bls _0810FBA8
- ldr r2, _0810FC0C
- ldr r0, _0810FC10
- adds r2, r0
- ldr r1, _0810FC14
- adds r1, r3, r1
- movs r0, 0x1
- ldrb r1, [r1]
- lsls r0, r1
- ldrh r1, [r2]
- orrs r0, r1
- strh r0, [r2]
-_0810FC00:
- adds r0, r3, 0
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810FC0C: .4byte gSaveBlock1
-_0810FC10: .4byte 0x000013c2
-_0810FC14: .4byte gUnknown_083F8408
- thumb_func_end sub_810FB9C
-
- thumb_func_start sub_810FC18
-sub_810FC18: @ 810FC18
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- movs r0, 0
- mov r8, r0
- bl sub_810FCB0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bne _0810FC3E
- movs r0, 0
- b _0810FC94
-_0810FC34:
- lsls r4, r6
- ldrh r0, [r2]
- eors r4, r0
- strh r4, [r2]
- b _0810FC92
-_0810FC3E:
- movs r5, 0
- ldr r2, _0810FCA0
- movs r4, 0x1
-_0810FC44:
- ldrh r1, [r2]
- ldr r7, _0810FCA4
- adds r0, r5, r7
- ldrb r6, [r0]
- asrs r1, r6
- ands r1, r4
- cmp r1, 0
- beq _0810FC66
- mov r8, r5
- str r2, [sp]
- bl Random
- adds r1, r4, 0
- ands r1, r0
- ldr r2, [sp]
- cmp r1, 0
- bne _0810FC34
-_0810FC66:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x7
- bls _0810FC44
- ldr r0, _0810FCA8
- ldr r1, _0810FCAC
- adds r4, r0, r1
- ldrh r1, [r4]
- mov r2, r8
- adds r0, r2, r7
- ldrb r2, [r0]
- adds r0, r1, 0
- asrs r0, r2
- movs r3, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0810FC92
- adds r0, r3, 0
- lsls r0, r2
- eors r1, r0
- strh r1, [r4]
-_0810FC92:
- mov r0, r8
-_0810FC94:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0810FCA0: .4byte gSaveBlock1 + 0x13C2
-_0810FCA4: .4byte gUnknown_083F8410
-_0810FCA8: .4byte gSaveBlock1
-_0810FCAC: .4byte 0x000013c2
- thumb_func_end sub_810FC18
-
- thumb_func_start sub_810FCB0
-sub_810FCB0: @ 810FCB0
- push {r4,r5,lr}
- movs r3, 0
- movs r2, 0
- ldr r0, _0810FCE4
- ldrh r4, [r0]
- movs r5, 0x1
-_0810FCBC:
- adds r1, r2, 0
- adds r1, 0x8
- adds r0, r4, 0
- asrs r0, r1
- ands r0, r5
- cmp r0, 0
- beq _0810FCD0
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
-_0810FCD0:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x7
- bls _0810FCBC
- adds r0, r3, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0810FCE4: .4byte gSaveBlock1 + 0x13C2
- thumb_func_end sub_810FCB0
-
- thumb_func_start sub_810FCE8
-sub_810FCE8: @ 810FCE8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r5, 0
- ldr r2, _0810FD08
- ldrh r1, [r2, 0xE]
- ldr r0, _0810FD0C
- cmp r1, r0
- bhi _0810FD54
- ldr r7, _0810FD10
- adds r6, r2, 0
- ldr r0, _0810FD14
- adds r0, r7
- mov r8, r0
- b _0810FD36
- .align 2, 0
-_0810FD08: .4byte gSaveBlock2
-_0810FD0C: .4byte 0x000003e6
-_0810FD10: .4byte gSaveBlock1
-_0810FD14: .4byte 0x000013c4
-_0810FD18:
- ldrh r1, [r6, 0xE]
- ldr r0, _0810FD4C
- adds r4, r7, r0
- ldrh r0, [r4]
- subs r1, r0
- cmp r1, 0xB
- ble _0810FD54
- bl sub_810FC18
- ldrh r0, [r4]
- adds r0, 0xC
- strh r0, [r4]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_0810FD36:
- bl sub_810FCB0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4
- bhi _0810FD50
- ldrh r0, [r6, 0xE]
- mov r1, r8
- strh r0, [r1]
- b _0810FD54
- .align 2, 0
-_0810FD4C: .4byte 0x000013c4
-_0810FD50:
- cmp r5, 0x8
- bne _0810FD18
-_0810FD54:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_810FCE8
-
- thumb_func_start sub_810FD60
-sub_810FD60: @ 810FD60
- ldr r0, _0810FD74
- ldr r1, _0810FD78
- adds r0, r1
- ldrh r0, [r0]
- ldr r1, _0810FD7C
- ldrh r1, [r1]
- asrs r0, r1
- movs r1, 0x1
- ands r0, r1
- bx lr
- .align 2, 0
-_0810FD74: .4byte gSaveBlock1
-_0810FD78: .4byte 0x000013c2
-_0810FD7C: .4byte gUnknown_0202E8CC
- thumb_func_end sub_810FD60
-
- thumb_func_start sub_810FD80
-sub_810FD80: @ 810FD80
- ldr r2, _0810FDA4
- ldr r0, _0810FDA8
- adds r2, r0
- ldrh r1, [r2]
- movs r3, 0x80
- lsls r3, 6
- adds r0, r3, 0
- orrs r0, r1
- movs r3, 0x80
- lsls r3, 1
- adds r1, r3, 0
- orrs r0, r1
- movs r3, 0x80
- lsls r3, 3
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- bx lr
- .align 2, 0
-_0810FDA4: .4byte gSaveBlock1
-_0810FDA8: .4byte 0x000013c2
- thumb_func_end sub_810FD80
-
- thumb_func_start sub_810FDAC
-sub_810FDAC: @ 810FDAC
- push {lr}
- movs r3, 0
- movs r2, 0
- ldr r0, _0810FDC8
- ldrh r0, [r0]
- subs r0, 0x8
- cmp r0, 0x7
- bhi _0810FE0C
- lsls r0, 2
- ldr r1, _0810FDCC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810FDC8: .4byte gUnknown_0202E8CC
-_0810FDCC: .4byte _0810FDD0
- .align 2, 0
-_0810FDD0:
- .4byte _0810FE0C
- .4byte _0810FE0C
- .4byte _0810FDF0
- .4byte _0810FDF6
- .4byte _0810FDFC
- .4byte _0810FE02
- .4byte _0810FE08
- .4byte _0810FE0C
-_0810FDF0:
- movs r3, 0
- movs r2, 0x3
- b _0810FE0C
-_0810FDF6:
- movs r3, 0
- movs r2, 0x1
- b _0810FE0C
-_0810FDFC:
- movs r3, 0x1
- movs r2, 0
- b _0810FE0C
-_0810FE02:
- movs r3, 0
- movs r2, 0x4
- b _0810FE0C
-_0810FE08:
- movs r3, 0x1
- movs r2, 0x5
-_0810FE0C:
- ldr r0, _0810FE18
- adds r1, r3, 0
- bl sub_810FE1C
- pop {r0}
- bx r0
- .align 2, 0
-_0810FE18: .4byte gSaveBlock1 + 0x30B8
- thumb_func_end sub_810FDAC
-
- thumb_func_start sub_810FE1C
-sub_810FE1C: @ 810FE1C
- push {r4,lr}
- lsls r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsrs r1, 20
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _0810FED0
- cmp r2, 0x5
- bhi _0810FEBC
- lsls r0, r2, 2
- ldr r1, _0810FE3C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0810FE3C: .4byte _0810FE40
- .align 2, 0
-_0810FE40:
- .4byte _0810FEBC
- .4byte _0810FE58
- .4byte _0810FE6C
- .4byte _0810FE80
- .4byte _0810FE94
- .4byte _0810FEA8
-_0810FE58:
- ldr r0, _0810FE64
- ldr r1, _0810FE68
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FE64: .4byte gStringVar1
-_0810FE68: .4byte gOtherText_Steven
-_0810FE6C:
- ldr r0, _0810FE78
- ldr r1, _0810FE7C
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FE78: .4byte gStringVar1
-_0810FE7C: .4byte gOtherText_Brawly
-_0810FE80:
- ldr r0, _0810FE8C
- ldr r1, _0810FE90
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FE8C: .4byte gStringVar1
-_0810FE90: .4byte gOtherText_Winona
-_0810FE94:
- ldr r0, _0810FEA0
- ldr r1, _0810FEA4
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FEA0: .4byte gStringVar1
-_0810FEA4: .4byte gOtherText_Phoebe
-_0810FEA8:
- ldr r0, _0810FEB4
- ldr r1, _0810FEB8
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FEB4: .4byte gStringVar1
-_0810FEB8: .4byte gOtherText_Glacia
-_0810FEBC:
- ldr r0, _0810FEC8
- ldr r1, _0810FECC
- bl StringCopy
- b _0810FEF2
- .align 2, 0
-_0810FEC8: .4byte gStringVar1
-_0810FECC: .4byte gOtherText_Wallace
-_0810FED0:
- ldr r4, _0810FEF8
- adds r0, r4, 0
- movs r2, 0x7
- bl StringCopyN
- movs r0, 0xFF
- strb r0, [r4, 0x7]
- ldrb r0, [r4]
- cmp r0, 0xFC
- bne _0810FEF2
- ldrb r0, [r4, 0x1]
- cmp r0, 0x15
- bne _0810FEF2
- adds r0, r4, 0
- movs r1, 0x1
- bl ConvertInternationalString
-_0810FEF2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810FEF8: .4byte gStringVar1
- thumb_func_end sub_810FE1C
-
- thumb_func_start sub_810FEFC
-sub_810FEFC: @ 810FEFC
- push {lr}
- ldr r0, _0810FF20
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x2
- bne _0810FF2C
- bl sub_810FA74
- ldr r0, _0810FF24
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0810FF28
- bl sub_810FB9C
- b _0810FF2C
- .align 2, 0
-_0810FF20: .4byte 0x00004095
-_0810FF24: .4byte gUnknown_02024D26
-_0810FF28:
- bl sub_810FC18
-_0810FF2C:
- pop {r0}
- bx r0
- thumb_func_end sub_810FEFC
-
- thumb_func_start sub_810FF30
-sub_810FF30: @ 810FF30
- ldr r0, _0810FF40
- ldr r1, _0810FF44
- adds r0, r1
- ldrh r0, [r0]
- lsrs r0, 7
- movs r1, 0x1
- ands r0, r1
- bx lr
- .align 2, 0
-_0810FF40: .4byte gSaveBlock1
-_0810FF44: .4byte 0x000013c2
- thumb_func_end sub_810FF30
-
- thumb_func_start sub_810FF48
-sub_810FF48: @ 810FF48
- ldr r0, _0810FF58
- ldr r1, _0810FF5C
- adds r0, r1
- ldrh r2, [r0]
- movs r1, 0x80
- orrs r1, r2
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0810FF58: .4byte gSaveBlock1
-_0810FF5C: .4byte 0x000013c2
- thumb_func_end sub_810FF48
-
- thumb_func_start sub_810FF60
-sub_810FF60: @ 810FF60
- push {lr}
- ldr r0, _0810FF74
- ldrb r0, [r0]
- bl sub_810FB10
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0810FF74: .4byte gUnknown_0202E8CC
- thumb_func_end sub_810FF60
-
- thumb_func_start sub_810FF78
-sub_810FF78: @ 810FF78
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r2, _0810FFA4
- mov r0, sp
- adds r1, r4, 0
- bl CpuSet
- movs r0, 0xFF
- strb r0, [r4]
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0810FFA4: .4byte 0x01000008
- thumb_func_end sub_810FF78
-
- thumb_func_start sub_810FFA8
-sub_810FFA8: @ 810FFA8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r5, 0x4
-_0810FFAE:
- adds r0, r4, 0
- bl sub_810FF78
- adds r4, 0x10
- subs r5, 0x1
- cmp r5, 0
- bge _0810FFAE
- movs r0, 0x17
- movs r1, 0
- bl sav12_xor_set
- movs r0, 0x18
- movs r1, 0
- bl sav12_xor_set
- movs r0, 0x19
- movs r1, 0
- bl sav12_xor_set
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_810FFA8
-
- thumb_func_start sub_810FFDC
-sub_810FFDC: @ 810FFDC
- adds r1, r0, 0
- ldrh r0, [r1, 0xA]
- ldrh r2, [r1, 0xC]
- adds r0, r2
- ldrh r1, [r1, 0xE]
- adds r0, r1
- bx lr
- thumb_func_end sub_810FFDC
-
- thumb_func_start sub_810FFEC
-sub_810FFEC: @ 810FFEC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r1
- lsls r2, 16
- lsrs r7, r2, 16
- movs r5, 0
- ldr r6, _08110024
- adds r4, r0, 0
-_0810FFFE:
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0x7
- bl memcpy
- movs r0, 0xFF
- strb r0, [r6, 0x7]
- adds r0, r6, 0
- mov r1, r8
- bl StringCompareWithoutExtCtrlCodes
- cmp r0, 0
- bne _08110028
- ldrh r0, [r4, 0x8]
- cmp r0, r7
- bne _08110028
- adds r0, r5, 0
- b _08110032
- .align 2, 0
-_08110024: .4byte gStringVar1
-_08110028:
- adds r4, 0x10
- adds r5, 0x1
- cmp r5, 0x4
- ble _0810FFFE
- movs r0, 0x5
-_08110032:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_810FFEC
-
- thumb_func_start sub_811003C
-sub_811003C: @ 811003C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- mov r8, r0
- movs r0, 0x4
-_0811004A:
- subs r2, r0, 0x1
- mov r9, r2
- cmp r2, 0
- blt _081100A4
- lsls r0, 4
- mov r1, r8
- adds r6, r1, r0
- lsls r0, r2, 4
- adds r5, r0, r1
-_0811005C:
- adds r0, r6, 0
- str r2, [sp, 0x10]
- bl sub_810FFDC
- adds r4, r0, 0
- adds r0, r5, 0
- bl sub_810FFDC
- ldr r2, [sp, 0x10]
- cmp r4, r0
- ble _08110096
- mov r1, sp
- adds r0, r6, 0
- ldm r0!, {r3,r4,r7}
- stm r1!, {r3,r4,r7}
- ldr r0, [r0]
- str r0, [r1]
- adds r1, r6, 0
- adds r0, r5, 0
- ldm r0!, {r3,r4,r7}
- stm r1!, {r3,r4,r7}
- ldr r0, [r0]
- str r0, [r1]
- adds r1, r5, 0
- mov r0, sp
- ldm r0!, {r3,r4,r7}
- stm r1!, {r3,r4,r7}
- ldr r0, [r0]
- str r0, [r1]
-_08110096:
- subs r5, 0x10
- movs r0, 0x1
- negs r0, r0
- add r9, r0
- mov r1, r9
- cmp r1, 0
- bge _0811005C
-_081100A4:
- adds r0, r2, 0
- cmp r0, 0
- bgt _0811004A
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_811003C
-
- thumb_func_start sub_81100B8
-sub_81100B8: @ 81100B8
- push {lr}
- adds r2, r0, 0
- cmp r1, 0x2
- beq _081100E8
- cmp r1, 0x2
- bgt _081100CA
- cmp r1, 0x1
- beq _081100D0
- b _08110112
-_081100CA:
- cmp r1, 0x3
- beq _08110100
- b _08110112
-_081100D0:
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _081100E4
- cmp r0, r1
- bls _08110112
- strh r1, [r2, 0xA]
- b _08110112
- .align 2, 0
-_081100E4: .4byte 0x0000270f
-_081100E8:
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _081100FC
- cmp r0, r1
- bls _08110112
- strh r1, [r2, 0xC]
- b _08110112
- .align 2, 0
-_081100FC: .4byte 0x0000270f
-_08110100:
- ldrh r0, [r2, 0xE]
- adds r0, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08110118
- cmp r0, r1
- bls _08110112
- strh r1, [r2, 0xE]
-_08110112:
- pop {r0}
- bx r0
- .align 2, 0
-_08110118: .4byte 0x0000270f
- thumb_func_end sub_81100B8
-
- thumb_func_start sub_811011C
-sub_811011C: @ 811011C
- push {r4,lr}
- cmp r0, 0x2
- beq _08110136
- cmp r0, 0x2
- bgt _0811012C
- cmp r0, 0x1
- beq _08110132
- b _0811014E
-_0811012C:
- cmp r0, 0x3
- beq _0811013A
- b _0811014E
-_08110132:
- movs r4, 0x17
- b _0811013C
-_08110136:
- movs r4, 0x18
- b _0811013C
-_0811013A:
- movs r4, 0x19
-_0811013C:
- adds r0, r4, 0
- bl sub_8053108
- ldr r1, _08110154
- cmp r0, r1
- bhi _0811014E
- adds r0, r4, 0
- bl sav12_xor_increment
-_0811014E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08110154: .4byte 0x0000270e
- thumb_func_end sub_811011C
-
- thumb_func_start sub_8110158
-sub_8110158: @ 8110158
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r5, r0, 0
- adds r7, r1, 0
- mov r10, r3
- ldr r0, [sp, 0x20]
- lsls r2, 16
- lsrs r2, 16
- mov r9, r2
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- mov r0, r10
- bl sub_811011C
- adds r0, r5, 0
- bl sub_811003C
- adds r0, r5, 0
- adds r1, r7, 0
- mov r2, r9
- bl sub_810FFEC
- adds r6, r0, 0
- cmp r6, 0x5
- bne _081101CC
- movs r6, 0x4
- adds r4, r5, 0
- adds r4, 0x40
- adds r0, r4, 0
- bl sub_810FF78
- mov r0, r8
- cmp r0, 0x1
- bne _081101BA
- movs r0, 0xFC
- strb r0, [r4]
- movs r0, 0x15
- strb r0, [r4, 0x1]
- adds r0, r5, 0
- adds r0, 0x42
- adds r1, r7, 0
- movs r2, 0x5
- bl StringCopyN
- b _081101C4
-_081101BA:
- adds r0, r4, 0
- adds r1, r7, 0
- movs r2, 0x7
- bl StringCopyN
-_081101C4:
- lsls r0, r6, 4
- adds r0, r5, r0
- mov r1, r9
- strh r1, [r0, 0x8]
-_081101CC:
- lsls r0, r6, 4
- adds r0, r5, r0
- mov r1, r10
- bl sub_81100B8
- adds r0, r5, 0
- bl sub_811003C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8110158
-
- thumb_func_start GameFreakRTC_Reset
-GameFreakRTC_Reset: @ 81101EC
- push {lr}
- ldr r0, _081101F8
- bl sub_810FFA8
- pop {r0}
- bx r0
- .align 2, 0
-_081101F8: .4byte gSaveBlock1 + 0x30B8
- thumb_func_end GameFreakRTC_Reset
-
- thumb_func_start sub_81101FC
-sub_81101FC: @ 81101FC
- push {lr}
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 3
- ldr r0, _08110220
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08110224
- cmp r0, r2
- bls _0811021A
- strh r2, [r1]
-_0811021A:
- pop {r0}
- bx r0
- .align 2, 0
-_08110220: .4byte gUnknown_0202FFD4
-_08110224: .4byte 0x0000270f
- thumb_func_end sub_81101FC
-
- thumb_func_start sub_8110228
-sub_8110228: @ 8110228
- push {lr}
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 3
- ldr r0, _0811024C
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08110250
- cmp r0, r2
- bls _08110246
- strh r2, [r1]
-_08110246:
- pop {r0}
- bx r0
- .align 2, 0
-_0811024C: .4byte gUnknown_0202FFD6
-_08110250: .4byte 0x0000270f
- thumb_func_end sub_8110228
-
- thumb_func_start sub_8110254
-sub_8110254: @ 8110254
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08110268
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0811026C
- cmp r0, 0x2
- beq _0811027A
- b _08110288
- .align 2, 0
-_08110268: .4byte gUnknown_02024D26
-_0811026C:
- eors r0, r4
- bl sub_81101FC
- adds r0, r4, 0
- bl sub_8110228
- b _08110288
-_0811027A:
- movs r0, 0x1
- eors r0, r4
- bl sub_8110228
- adds r0, r4, 0
- bl sub_81101FC
-_08110288:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8110254
-
- thumb_func_start sub_8110290
-sub_8110290: @ 8110290
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- bl sub_8110254
- ldr r0, _081102D4
- lsls r2, r4, 3
- subs r2, r4
- lsls r2, 3
- ldr r3, _081102D8
- adds r1, r2, r3
- subs r3, 0x30
- adds r2, r3
- ldrh r2, [r2, 0xE]
- ldr r3, _081102DC
- ldrb r3, [r3]
- ldr r6, _081102E0
- ldr r5, _081102E4
- lsls r4, 2
- adds r4, r5
- ldrb r5, [r4, 0x1]
- lsls r4, r5, 3
- subs r4, r5
- lsls r4, 2
- adds r4, r6
- ldrb r4, [r4, 0x1A]
- str r4, [sp]
- bl sub_8110158
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081102D4: .4byte gSaveBlock1 + 0x30B8
-_081102D8: .4byte gUnknown_0202FFF0
-_081102DC: .4byte gUnknown_02024D26
-_081102E0: .4byte gLinkPlayers
-_081102E4: .4byte gUnknown_02029818
- thumb_func_end sub_8110290
-
- thumb_func_start sub_81102E8
-sub_81102E8: @ 81102E8
- push {r4,lr}
- ldr r4, _08110338
- movs r0, 0x17
- bl sub_8053108
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN_DigitWidth6
- ldr r4, _0811033C
- movs r0, 0x18
- bl sub_8053108
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN_DigitWidth6
- ldr r4, _08110340
- movs r0, 0x19
- bl sub_8053108
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN_DigitWidth6
- ldr r0, _08110344
- movs r1, 0x3
- movs r2, 0x3
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08110338: .4byte gStringVar1
-_0811033C: .4byte gStringVar2
-_08110340: .4byte gStringVar3
-_08110344: .4byte gOtherText_WinRecord
- thumb_func_end sub_81102E8
-
- thumb_func_start sub_8110348
-sub_8110348: @ 8110348
- push {r4-r7,lr}
- sub sp, 0x10
- adds r7, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- ldrh r0, [r7, 0xA]
- cmp r0, 0
- bne _081103C0
- ldr r0, [r7, 0xC]
- cmp r0, 0
- bne _081103C0
- mov r0, sp
- movs r2, 0xFC
- strb r2, [r0]
- mov r1, sp
- movs r0, 0x14
- strb r0, [r1, 0x1]
- movs r0, 0x6
- strb r0, [r1, 0x2]
- mov r0, sp
- strb r2, [r0, 0x3]
- movs r0, 0x11
- strb r0, [r1, 0x4]
- movs r0, 0x1
- strb r0, [r1, 0x5]
- mov r4, sp
- adds r4, 0x6
- ldr r1, _081103B8
- adds r0, r4, 0
- bl StringCopy
- mov r0, sp
- movs r1, 0x3
- adds r2, r6, 0
- bl MenuPrint
- ldr r1, _081103BC
- adds r0, r4, 0
- bl StringCopy
- mov r0, sp
- movs r1, 0xB
- adds r2, r6, 0
- bl MenuPrint
- mov r0, sp
- movs r1, 0x11
- adds r2, r6, 0
- bl MenuPrint
- mov r0, sp
- movs r1, 0x17
- adds r2, r6, 0
- bl MenuPrint
- b _0811042E
- .align 2, 0
-_081103B8: .4byte gOtherText_SevenDashes
-_081103BC: .4byte gOtherText_FourDashes
-_081103C0:
- ldr r4, _08110438
- adds r0, r4, 0
- movs r1, 0x8
- bl StringFillWithTerminator
- adds r0, r4, 0
- adds r1, r7, 0
- movs r2, 0x7
- bl StringCopyN
- adds r0, r4, 0
- movs r1, 0x3
- adds r2, r6, 0
- bl MenuPrint
- movs r0, 0xFC
- strb r0, [r4]
- movs r0, 0x14
- strb r0, [r4, 0x1]
- movs r0, 0x6
- strb r0, [r4, 0x2]
- adds r5, r4, 0x3
- ldrh r1, [r7, 0xA]
- adds r0, r5, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- adds r0, r4, 0
- movs r1, 0xB
- adds r2, r6, 0
- bl MenuPrint
- ldrh r1, [r7, 0xC]
- adds r0, r5, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- adds r0, r4, 0
- movs r1, 0x11
- adds r2, r6, 0
- bl MenuPrint
- ldrh r1, [r7, 0xE]
- adds r0, r5, 0
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- adds r0, r4, 0
- movs r1, 0x17
- adds r2, r6, 0
- bl MenuPrint
-_0811042E:
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08110438: .4byte gStringVar1
- thumb_func_end sub_8110348
-
- thumb_func_start sub_811043C
-sub_811043C: @ 811043C
- push {r4,lr}
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuDrawTextWindow
- ldr r0, _08110488
- movs r1, 0
- movs r2, 0x1
- movs r3, 0xF0
- bl sub_8072BD8
- ldr r0, _0811048C
- bl sub_81102E8
- ldr r0, _08110490
- movs r1, 0xC
- movs r2, 0x6
- bl MenuPrint
- movs r4, 0
-_08110468:
- lsls r0, r4, 4
- ldr r1, _0811048C
- adds r0, r1
- adds r4, 0x1
- lsls r1, r4, 25
- movs r2, 0xC0
- lsls r2, 19
- adds r1, r2
- lsrs r1, 24
- bl sub_8110348
- cmp r4, 0x4
- ble _08110468
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08110488: .4byte gOtherText_BattleResults
-_0811048C: .4byte gSaveBlock1 + 0x30B8
-_08110490: .4byte gOtherText_WinLoseDraw
- thumb_func_end sub_811043C
-
- thumb_func_start sub_8110494
-sub_8110494: @ 8110494
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _081104B4
- ldr r2, _081104B8
- adds r1, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x6
- bhi _081104E0
- lsls r0, 2
- ldr r1, _081104BC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081104B4: .4byte gSaveBlock2 + 0xA8
-_081104B8: .4byte 0x000004ae
-_081104BC: .4byte _081104C0
- .align 2, 0
-_081104C0:
- .4byte _081104E0
- .4byte _081104E0
- .4byte _081104DC
- .4byte _081104DC
- .4byte _081104E0
- .4byte _081104E0
- .4byte _081104DC
-_081104DC:
- movs r0, 0x1
- b _081104E2
-_081104E0:
- movs r0, 0
-_081104E2:
- pop {r1}
- bx r1
- thumb_func_end sub_8110494
-
- thumb_func_start sub_81104E8
-sub_81104E8: @ 81104E8
- push {r4-r6,lr}
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 24
- lsrs r2, 24
- adds r5, r2, 0
- lsls r3, 24
- lsrs r3, 24
- adds r6, r3, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl MenuPrint
- ldr r0, _0811052C
- cmp r4, r0
- bls _0811050A
- adds r4, r0, 0
-_0811050A:
- ldr r0, _08110530
- adds r1, r4, 0
- movs r2, 0x18
- movs r3, 0x1
- bl sub_8072C14
- ldr r0, _08110534
- adds r1, r5, 0x7
- lsls r1, 24
- lsrs r1, 24
- adds r2, r6, 0
- bl MenuPrint
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811052C: .4byte 0x0000270f
-_08110530: .4byte gStringVar1
-_08110534: .4byte gOtherText_WinStreak
- thumb_func_end sub_81104E8
-
- thumb_func_start sub_8110538
-sub_8110538: @ 8110538
- push {r4,lr}
- adds r4, r1, 0
- adds r3, r2, 0
- lsls r0, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r1, _08110564
- lsrs r0, 23
- movs r2, 0x97
- lsls r2, 3
- adds r1, r2
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _08110568
- adds r2, r4, 0
- bl sub_81104E8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08110564: .4byte gSaveBlock2 + 0xA8
-_08110568: .4byte gOtherText_Record
- thumb_func_end sub_8110538
-
- thumb_func_start sub_811056C
-sub_811056C: @ 811056C
- push {lr}
- lsls r0, 24
- ldr r1, _08110588
- lsrs r0, 23
- ldr r2, _0811058C
- adds r1, r2
- adds r0, r1
- ldrh r0, [r0]
- ldr r1, _08110590
- cmp r0, r1
- bls _08110584
- adds r0, r1, 0
-_08110584:
- pop {r1}
- bx r1
- .align 2, 0
-_08110588: .4byte gSaveBlock2
-_0811058C: .4byte 0x00000574
-_08110590: .4byte 0x0000270f
- thumb_func_end sub_811056C
-
- thumb_func_start sub_8110594
-sub_8110594: @ 8110594
- push {r4-r7,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- adds r0, r4, 0
- bl sub_811056C
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- bl sub_8110494
- cmp r0, 0x1
- bne _081105CC
- ldr r0, _081105C8
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl sub_81104E8
- b _081105D8
- .align 2, 0
-_081105C8: .4byte gOtherText_Current
-_081105CC:
- ldr r0, _081105E0
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r7, 0
- bl sub_81104E8
-_081105D8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081105E0: .4byte gOtherText_Prev
- thumb_func_end sub_8110594
-
- thumb_func_start sub_81105E4
-sub_81105E4: @ 81105E4
- push {r4,lr}
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0x1B
- movs r3, 0x11
- bl MenuDrawTextWindow
- ldr r0, _08110658
- movs r1, 0x3
- movs r2, 0x2
- movs r3, 0xC8
- bl sub_8072BD8
- ldr r0, _0811065C
- movs r1, 0x5
- movs r2, 0x6
- bl MenuPrint
- ldr r0, _08110660
- movs r1, 0x5
- movs r2, 0xC
- bl MenuPrint
- movs r4, 0x5
-_08110614:
- lsls r1, r4, 24
- lsrs r1, 24
- movs r0, 0xAE
- movs r2, 0xA
- bl sub_8071F60
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x19
- bls _08110614
- movs r0, 0
- movs r1, 0xA
- movs r2, 0x6
- bl sub_8110594
- movs r0, 0
- movs r1, 0xA
- movs r2, 0x8
- bl sub_8110538
- movs r0, 0x1
- movs r1, 0xA
- movs r2, 0xC
- bl sub_8110594
- movs r0, 0x1
- movs r1, 0xA
- movs r2, 0xE
- bl sub_8110538
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08110658: .4byte gOtherText_BattleTowerResults
-_0811065C: .4byte gOtherText_Lv50
-_08110660: .4byte gOtherText_Lv100
- thumb_func_end sub_81105E4
-
- thumb_func_start unref_sub_8110664
-unref_sub_8110664: @ 8110664
- push {lr}
- ldr r3, _08110678
- str r1, [r3, 0x4]
- str r2, [r3, 0x8]
- strh r0, [r3, 0xE]
- ldr r0, _0811067C
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08110678: .4byte 0x02000000
-_0811067C: .4byte sub_8110680
- thumb_func_end unref_sub_8110664
-
- thumb_func_start sub_8110680
-sub_8110680: @ 8110680
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _0811069C
- ldr r1, _081106A0
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x7
- bls _08110692
- b _081107C0
-_08110692:
- lsls r0, 2
- ldr r1, _081106A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0811069C: .4byte gMain
-_081106A0: .4byte 0x0000043c
-_081106A4: .4byte _081106A8
- .align 2, 0
-_081106A8:
- .4byte _081106C8
- .4byte _08110720
- .4byte _08110740
- .4byte _08110746
- .4byte _08110752
- .4byte _08110770
- .4byte _08110782
- .4byte _081107A8
-_081106C8:
- movs r0, 0
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xC4
- lsls r2, 7
- adds r0, r2, 0
- strh r0, [r1]
- bl ResetPaletteFade
- bl ResetSpriteData
- bl ResetTasks
- bl FreeSpriteTileRanges
- bl FreeAllSpritePalettes
- ldr r0, _08110710
- movs r1, 0
- strh r1, [r0]
- ldr r2, _08110714
- ldr r3, _08110718
- adds r0, r3, 0
- strh r0, [r2]
- ldr r0, _0811071C
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- b _081107C0
- .align 2, 0
-_08110710: .4byte REG_BG0HOFS
-_08110714: .4byte REG_BG0VOFS
-_08110718: .4byte 0x0000fff8
-_0811071C: .4byte REG_BG2VOFS
-_08110720:
- ldr r4, _0811073C
- adds r0, r4, 0
- movs r1, 0
- bl sub_80FA8EC
- movs r0, 0x88
- lsls r0, 4
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x10
- bl StringFill
- b _081107C0
- .align 2, 0
-_0811073C: .4byte 0x020006e8
-_08110740:
- bl sub_8110824
- b _081107C0
-_08110746:
- bl sub_8110838
- lsls r0, 24
- cmp r0, 0
- bne _081107CC
- b _081107C0
-_08110752:
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80FBCF0
- movs r1, 0x8
- negs r1, r1
- movs r0, 0
- bl sub_80FB2A4
- ldr r0, _0811076C
- bl SetVBlankCallback
- b _081107C0
- .align 2, 0
-_0811076C: .4byte sub_81107DC
-_08110770:
- movs r0, 0x15
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _081107C0
-_08110782:
- ldr r1, _0811079C
- ldr r2, _081107A0
- adds r0, r2, 0
- strh r0, [r1]
- bl sub_8111084
- movs r1, 0x80
- lsls r1, 19
- ldr r3, _081107A4
- adds r0, r3, 0
- strh r0, [r1]
- b _081107C0
- .align 2, 0
-_0811079C: .4byte REG_BLDCNT
-_081107A0: .4byte 0x00003f41
-_081107A4: .4byte 0x00007741
-_081107A8:
- ldr r0, _081107B8
- bl sub_8110814
- ldr r0, _081107BC
- bl SetMainCallback2
- b _081107CC
- .align 2, 0
-_081107B8: .4byte sub_8111288
-_081107BC: .4byte sub_81107F0
-_081107C0:
- ldr r1, _081107D4
- ldr r0, _081107D8
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_081107CC:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081107D4: .4byte gMain
-_081107D8: .4byte 0x0000043c
- thumb_func_end sub_8110680
-
- thumb_func_start sub_81107DC
-sub_81107DC: @ 81107DC
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_81107DC
-
- thumb_func_start sub_81107F0
-sub_81107F0: @ 81107F0
- push {lr}
- ldr r0, _08110810
- ldr r0, [r0]
- bl _call_via_r0
- bl sub_8111110
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- .align 2, 0
-_08110810: .4byte 0x02000000
- thumb_func_end sub_81107F0
-
- thumb_func_start sub_8110814
-sub_8110814: @ 8110814
- ldr r1, _08110820
- str r0, [r1]
- movs r0, 0
- strh r0, [r1, 0xC]
- bx lr
- .align 2, 0
-_08110820: .4byte 0x02000000
- thumb_func_end sub_8110814
-
- thumb_func_start sub_8110824
-sub_8110824: @ 8110824
- ldr r0, _08110834
- movs r1, 0x8A
- lsls r1, 1
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- bx lr
- .align 2, 0
-_08110834: .4byte 0x02000000
- thumb_func_end sub_8110824
-
- thumb_func_start sub_8110838
-sub_8110838: @ 8110838
- push {lr}
- ldr r1, _08110854
- movs r2, 0x8A
- lsls r2, 1
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x5
- bhi _081108E4
- lsls r0, 2
- ldr r1, _08110858
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08110854: .4byte 0x02000000
-_08110858: .4byte _0811085C
- .align 2, 0
-_0811085C:
- .4byte _08110874
- .4byte _08110884
- .4byte _0811088A
- .4byte _0811089C
- .4byte _081108C0
- .4byte _081108D0
-_08110874:
- ldr r0, _08110880
- ldrh r0, [r0, 0xE]
- bl sub_8110908
- b _081108F0
- .align 2, 0
-_08110880: .4byte 0x02000000
-_08110884:
- bl sub_8110C34
- b _081108F0
-_0811088A:
- ldr r0, _08110894
- ldr r1, _08110898
- bl LZ77UnCompVram
- b _081108F0
- .align 2, 0
-_08110894: .4byte gUnknown_083F8438
-_08110898: .4byte 0x0600c000
-_0811089C:
- ldr r1, _081108B0
- ldr r0, _081108B4
- str r0, [r1]
- ldr r0, _081108B8
- str r0, [r1, 0x4]
- ldr r0, _081108BC
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- b _081108F0
- .align 2, 0
-_081108B0: .4byte 0x040000d4
-_081108B4: .4byte 0x02000116
-_081108B8: .4byte 0x0600f000
-_081108BC: .4byte 0x80000280
-_081108C0:
- ldr r0, _081108CC
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- b _081108F0
- .align 2, 0
-_081108CC: .4byte gUnknown_083F8418
-_081108D0:
- ldr r1, _081108E8
- ldr r3, _081108EC
- adds r0, r3, 0
- strh r0, [r1]
- movs r0, 0x8A
- lsls r0, 1
- adds r1, r2, r0
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
-_081108E4:
- movs r0, 0
- b _08110900
- .align 2, 0
-_081108E8: .4byte REG_BG0CNT
-_081108EC: .4byte 0x00001e0d
-_081108F0:
- ldr r1, _08110904
- movs r2, 0x8A
- lsls r2, 1
- adds r1, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- movs r0, 0x1
-_08110900:
- pop {r1}
- bx r1
- .align 2, 0
-_08110904: .4byte 0x02000000
- thumb_func_end sub_8110838
-
- thumb_func_start sub_8110908
-sub_8110908: @ 8110908
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 16
- lsrs r7, r0, 16
- .ifdef SAPPHIRE
- ldr r0, _sub_8110908_Latias
- .else
- @ Latios
- movs r0, 0xCC
- lsls r0, 1
- .endif
- cmp r7, r0
- bne _0811091E
- b _08110A44
-_0811091E:
- ldr r2, _08110988
- movs r1, 0x88
- lsls r1, 1
- adds r0, r2, r1
- movs r1, 0
- strh r1, [r0]
- movs r3, 0x89
- lsls r3, 1
- adds r0, r2, r3
- strh r1, [r0]
- movs r6, 0
- ldr r1, _0811098C
-_08110936:
- lsls r0, r6, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r7
- bne _08110942
- b _08110A8C
-_08110942:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0
- beq _08110936
- movs r6, 0
- ldr r4, _08110990
- ldrh r0, [r4]
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _081109D0
- mov r8, r4
- adds r5, r4, 0x4
- mov r9, r1
-_08110960:
- lsls r0, r6, 1
- adds r1, r0, r6
- lsls r2, r1, 1
- mov r3, r8
- adds r1, r2, r3
- adds r3, r0, 0
- ldrh r1, [r1]
- cmp r7, r1
- bne _081109BA
- adds r0, r4, 0x2
- adds r0, r2, r0
- ldrh r0, [r0]
- cmp r0, 0x18
- beq _081109A6
- cmp r0, 0x18
- bgt _08110994
- cmp r0, 0
- beq _0811099A
- b _081109BA
- .align 2, 0
- .ifdef SAPPHIRE
-_sub_8110908_Latias: .4byte 407
- .endif
-_08110988: .4byte 0x02000000
-_0811098C: .4byte gUnknown_083F856C
-_08110990: .4byte gUnknown_083F856E
-_08110994:
- cmp r0, 0x1A
- beq _081109A6
- b _081109BA
-_0811099A:
- adds r0, r2, r5
- ldrh r1, [r0]
- movs r0, 0
- bl sub_8110A98
- b _081109BA
-_081109A6:
- adds r1, r3, r6
- lsls r1, 1
- mov r0, r8
- adds r0, 0x2
- adds r0, r1, r0
- ldrh r0, [r0]
- adds r1, r5
- ldrh r1, [r1]
- bl sub_8110AE4
-_081109BA:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r4, _08110A00
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 1
- adds r0, r4
- ldrh r0, [r0]
- cmp r0, r9
- bne _08110960
-_081109D0:
- movs r6, 0
- ldr r1, _08110A04
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _08110A8C
-_081109DA:
- lsls r4, r6, 2
- adds r0, r4, r6
- lsls r0, 2
- adds r5, r0, r1
- adds r0, r5, 0
- adds r1, r7, 0
- bl sub_8110BA4
- lsls r0, 24
- cmp r0, 0
- beq _08110A28
- ldrb r0, [r5]
- cmp r0, 0x18
- beq _08110A18
- cmp r0, 0x18
- bgt _08110A08
- cmp r0, 0
- beq _08110A0E
- b _08110A28
- .align 2, 0
-_08110A00: .4byte gUnknown_083F856E
-_08110A04: .4byte gWildMonHeaders
-_08110A08:
- cmp r0, 0x1A
- beq _08110A18
- b _08110A28
-_08110A0E:
- ldrb r1, [r5, 0x1]
- movs r0, 0
- bl sub_8110A98
- b _08110A28
-_08110A18:
- ldr r0, _08110A40
- adds r1, r4, r6
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- bl sub_8110AE4
-_08110A28:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r1, _08110A40
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _081109DA
- b _08110A8C
- .align 2, 0
-_08110A40: .4byte gWildMonHeaders
-_08110A44:
- ldr r4, _08110A7C
- movs r0, 0x89
- lsls r0, 1
- adds r1, r4, r0
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08110A80
- ldrb r2, [r0, 0x13]
- cmp r2, 0
- beq _08110A84
- adds r0, r4, 0
- adds r0, 0x10
- adds r1, r4, 0
- adds r1, 0x11
- bl sub_8134538
- ldrb r0, [r4, 0x10]
- ldrb r1, [r4, 0x11]
- bl get_mapheader_by_bank_and_number
- ldrb r0, [r0, 0x14]
- strh r0, [r4, 0x12]
- movs r3, 0x88
- lsls r3, 1
- adds r1, r4, r3
- movs r0, 0x1
- strh r0, [r1]
- b _08110A8C
- .align 2, 0
-_08110A7C: .4byte 0x02000000
-_08110A80: .4byte gSaveBlock1 + 0x3144
-_08110A84:
- movs r1, 0x88
- lsls r1, 1
- adds r0, r4, r1
- strh r2, [r0]
-_08110A8C:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8110908
-
- thumb_func_start sub_8110A98
-sub_8110A98: @ 8110A98
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r1, 16
- lsrs r1, 16
- ldr r5, _08110AE0
- movs r0, 0x88
- lsls r0, 1
- adds r4, r5, r0
- ldrh r0, [r4]
- cmp r0, 0x3F
- bhi _08110AD8
- lsls r0, 2
- adds r0, r5
- strb r2, [r0, 0x10]
- ldrh r0, [r4]
- lsls r0, 2
- adds r0, r5
- strb r1, [r0, 0x11]
- adds r0, r2, 0
- bl get_mapheader_by_bank_and_number
- ldrb r0, [r0, 0x14]
- bl sub_80FBA04
- ldrh r1, [r4]
- lsls r1, 2
- adds r1, r5
- strh r0, [r1, 0x12]
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_08110AD8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08110AE0: .4byte 0x02000000
- thumb_func_end sub_8110A98
-
- thumb_func_start sub_8110AE4
-sub_8110AE4: @ 8110AE4
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r1, 16
- lsrs r1, 16
- ldr r0, _08110B9C
- movs r3, 0x89
- lsls r3, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, 0x1F
- bhi _08110B96
- adds r0, r2, 0
- bl get_mapheader_by_bank_and_number
- adds r6, r0, 0
- ldrb r0, [r6, 0x14]
- cmp r0, 0x57
- bhi _08110B96
- movs r4, 0
- ldr r1, _08110BA0
- ldrh r0, [r1]
- cmp r0, 0x58
- beq _08110B42
- adds r5, r1, 0
-_08110B16:
- lsls r2, r4, 2
- adds r1, r2, r5
- ldrb r0, [r6, 0x14]
- ldrh r1, [r1]
- cmp r0, r1
- bne _08110B32
- adds r0, r5, 0x2
- adds r0, r2, r0
- ldrh r0, [r0]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08110B96
-_08110B32:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r4, 2
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, 0x58
- bne _08110B16
-_08110B42:
- movs r4, 0
- ldr r0, _08110B9C
- movs r1, 0x89
- lsls r1, 1
- adds r2, r0, r1
- ldrh r3, [r2]
- adds r1, r0, 0
- cmp r4, r3
- bcs _08110B76
- movs r0, 0xC4
- lsls r0, 3
- adds r5, r1, r0
- ldrh r0, [r5]
- ldrb r2, [r6, 0x14]
- cmp r0, r2
- beq _08110B76
-_08110B62:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r3
- bcs _08110B76
- lsls r0, r4, 1
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, r2
- bne _08110B62
-_08110B76:
- movs r3, 0x89
- lsls r3, 1
- adds r2, r1, r3
- ldrh r0, [r2]
- cmp r4, r0
- bne _08110B96
- lsls r0, r4, 1
- movs r3, 0xC4
- lsls r3, 3
- adds r1, r3
- adds r0, r1
- ldrb r1, [r6, 0x14]
- strh r1, [r0]
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
-_08110B96:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08110B9C: .4byte 0x02000000
-_08110BA0: .4byte gUnknown_083F857A
- thumb_func_end sub_8110AE4
-
- thumb_func_start sub_8110BA4
-sub_8110BA4: @ 8110BA4
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- adds r6, r4, 0
- ldr r0, [r5, 0x4]
- adds r1, r4, 0
- movs r2, 0xC
- bl sub_8110BFC
- lsls r0, 24
- cmp r0, 0
- bne _08110BF2
- ldr r0, [r5, 0x8]
- adds r1, r4, 0
- movs r2, 0x5
- bl sub_8110BFC
- lsls r0, 24
- cmp r0, 0
- bne _08110BF2
- ldr r0, [r5, 0x10]
- adds r1, r4, 0
- movs r2, 0xC
- bl sub_8110BFC
- lsls r0, 24
- cmp r0, 0
- bne _08110BF2
- ldr r0, [r5, 0xC]
- adds r1, r6, 0
- movs r2, 0x5
- bl sub_8110BFC
- lsls r0, 24
- cmp r0, 0
- bne _08110BF2
- movs r0, 0
- b _08110BF4
-_08110BF2:
- movs r0, 0x1
-_08110BF4:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8110BA4
-
- thumb_func_start sub_8110BFC
-sub_8110BFC: @ 8110BFC
- push {r4,lr}
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 16
- lsrs r2, 16
- cmp r0, 0
- beq _08110C2A
- movs r3, 0
- cmp r3, r2
- bcs _08110C2A
- ldr r1, [r0, 0x4]
-_08110C12:
- lsls r0, r3, 2
- adds r0, r1
- ldrh r0, [r0, 0x2]
- cmp r0, r4
- bne _08110C20
- movs r0, 0x1
- b _08110C2C
-_08110C20:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r2
- bcc _08110C12
-_08110C2A:
- movs r0, 0
-_08110C2C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8110BFC
-
- thumb_func_start sub_8110C34
-sub_8110C34: @ 8110C34
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- ldr r1, _08110E5C
- movs r0, 0
- strh r0, [r1]
- mov r9, r1
- ldr r0, _08110E60
- mov r8, r0
- ldr r1, _08110E64
- mov r12, r1
- mov r1, r9
- movs r4, 0x8B
- lsls r4, 1
- add r4, r8
- ldr r3, _08110E68
- movs r2, 0
-_08110C5C:
- ldrh r0, [r1]
- lsls r0, 1
- adds r0, r4
- strh r2, [r0]
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r3
- bls _08110C5C
- movs r0, 0
- mov r3, r9
- strh r0, [r3]
- movs r1, 0x88
- lsls r1, 1
- add r1, r8
- ldrh r0, [r1]
- cmp r0, 0
- beq _08110D04
- ldr r4, _08110E6C
- movs r2, 0
- ldr r5, _08110E64
- mov r0, r8
- str r0, [sp, 0x8]
- movs r1, 0x8B
- lsls r1, 1
- add r1, r8
- mov r10, r1
- ldr r6, _08110E70
- mov r7, r9
-_08110C9A:
- strh r2, [r4]
- ldr r3, _08110E70
- strh r2, [r3]
-_08110CA0:
- mov r0, r12
- strh r2, [r0]
-_08110CA4:
- ldrh r0, [r5]
- ldrh r1, [r6]
- str r2, [sp]
- bl sub_80FB9A8
- ldrh r1, [r7]
- lsls r1, 2
- ldr r3, [sp, 0x8]
- adds r1, r3
- lsls r0, 16
- lsrs r0, 16
- ldr r2, [sp]
- ldrh r1, [r1, 0x12]
- cmp r0, r1
- bne _08110CCC
- ldrh r0, [r4]
- lsls r0, 1
- add r0, r10
- ldr r1, _08110E74
- strh r1, [r0]
-_08110CCC:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1F
- bls _08110CA4
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08110E64
- mov r12, r1
- cmp r0, 0x13
- bls _08110CA0
- ldrh r0, [r7]
- adds r0, 0x1
- strh r0, [r7]
- lsls r0, 16
- lsrs r0, 16
- ldr r3, _08110E78
- ldrh r3, [r3]
- cmp r0, r3
- bcc _08110C9A
-_08110D04:
- movs r0, 0
- ldr r1, _08110E6C
- strh r0, [r1]
- ldr r3, _08110E70
- strh r0, [r3]
- ldr r6, _08110E64
- mov r10, r0
- adds r3, r1, 0
- ldr r5, _08110E7C
- ldr r4, _08110E74
- ldr r7, _08110E70
-_08110D1A:
- mov r0, r10
- strh r0, [r6]
-_08110D1E:
- ldrh r1, [r3]
- lsls r0, r1, 1
- adds r0, r5
- ldrh r0, [r0]
- cmp r0, r4
- bne _08110E10
- ldrh r0, [r6]
- cmp r0, 0
- beq _08110D42
- subs r0, r1, 0x1
- lsls r0, 1
- adds r2, r0, r5
- ldrh r1, [r2]
- cmp r1, r4
- beq _08110D42
- movs r0, 0x2
- orrs r0, r1
- strh r0, [r2]
-_08110D42:
- ldrh r0, [r6]
- cmp r0, 0x1F
- beq _08110D5C
- ldrh r0, [r3]
- adds r0, 0x1
- lsls r0, 1
- adds r2, r0, r5
- ldrh r1, [r2]
- cmp r1, r4
- beq _08110D5C
- movs r0, 0x1
- orrs r0, r1
- strh r0, [r2]
-_08110D5C:
- ldrh r0, [r7]
- cmp r0, 0
- beq _08110D76
- ldrh r0, [r3]
- subs r0, 0x20
- lsls r0, 1
- adds r2, r0, r5
- ldrh r1, [r2]
- cmp r1, r4
- beq _08110D76
- movs r0, 0x8
- orrs r0, r1
- strh r0, [r2]
-_08110D76:
- ldrh r0, [r7]
- cmp r0, 0x13
- beq _08110D90
- ldrh r0, [r3]
- adds r0, 0x20
- lsls r0, 1
- adds r2, r0, r5
- ldrh r1, [r2]
- cmp r1, r4
- beq _08110D90
- movs r0, 0x4
- orrs r0, r1
- strh r0, [r2]
-_08110D90:
- ldrh r0, [r6]
- cmp r0, 0
- beq _08110DB0
- ldrh r0, [r7]
- cmp r0, 0
- beq _08110DB0
- ldrh r0, [r3]
- subs r0, 0x21
- lsls r0, 1
- adds r2, r0, r5
- ldrh r1, [r2]
- cmp r1, r4
- beq _08110DB0
- movs r0, 0x10
- orrs r0, r1
- strh r0, [r2]
-_08110DB0:
- ldrh r0, [r6]
- cmp r0, 0x1F
- beq _08110DD0
- ldrh r0, [r7]
- cmp r0, 0
- beq _08110DD0
- ldrh r0, [r3]
- subs r0, 0x1F
- lsls r0, 1
- adds r2, r0, r5
- ldrh r1, [r2]
- cmp r1, r4
- beq _08110DD0
- movs r0, 0x40
- orrs r0, r1
- strh r0, [r2]
-_08110DD0:
- ldrh r0, [r6]
- cmp r0, 0
- beq _08110DF0
- ldrh r0, [r7]
- cmp r0, 0x13
- beq _08110DF0
- ldrh r0, [r3]
- adds r0, 0x1F
- lsls r0, 1
- adds r2, r0, r5
- ldrh r1, [r2]
- cmp r1, r4
- beq _08110DF0
- movs r0, 0x20
- orrs r0, r1
- strh r0, [r2]
-_08110DF0:
- ldrh r0, [r6]
- cmp r0, 0x1F
- beq _08110E10
- ldrh r0, [r7]
- cmp r0, 0x13
- beq _08110E10
- ldrh r0, [r3]
- adds r0, 0x21
- lsls r0, 1
- adds r2, r0, r5
- ldrh r1, [r2]
- cmp r1, r4
- beq _08110E10
- movs r0, 0x80
- orrs r0, r1
- strh r0, [r2]
-_08110E10:
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1F
- bhi _08110E26
- b _08110D1E
-_08110E26:
- ldrh r0, [r7]
- adds r0, 0x1
- strh r0, [r7]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x13
- bhi _08110E36
- b _08110D1A
-_08110E36:
- movs r0, 0
- mov r1, r9
- strh r0, [r1]
-_08110E3C:
- mov r3, r9
- ldrh r0, [r3]
- lsls r0, 1
- movs r4, 0x8B
- lsls r4, 1
- add r4, r8
- adds r3, r0, r4
- ldrh r2, [r3]
- adds r1, r2, 0
- ldr r0, _08110E74
- cmp r1, r0
- bne _08110E80
- movs r0, 0x10
- strh r0, [r3]
- b _0811105E
- .align 2, 0
-_08110E5C: .4byte gUnknown_02039260
-_08110E60: .4byte 0x02000000
-_08110E64: .4byte gUnknown_02039262
-_08110E68: .4byte 0x0000027f
-_08110E6C: .4byte gUnknown_02039266
-_08110E70: .4byte gUnknown_02039264
-_08110E74: .4byte 0x0000ffff
-_08110E78: .4byte 0x02000110
-_08110E7C: .4byte 0x02000116
-_08110E80:
- cmp r1, 0
- bne _08110E86
- b _0811105E
-_08110E86:
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _08110E94
- ldr r0, _08110F28
- ands r0, r2
- strh r0, [r3]
-_08110E94:
- mov r1, r9
- ldrh r0, [r1]
- lsls r0, 1
- adds r2, r0, r4
- ldrh r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08110EAC
- ldr r0, _08110F2C
- ands r0, r1
- strh r0, [r2]
-_08110EAC:
- mov r3, r9
- ldrh r0, [r3]
- lsls r0, 1
- adds r2, r0, r4
- ldrh r1, [r2]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08110EC4
- ldr r0, _08110F30
- ands r0, r1
- strh r0, [r2]
-_08110EC4:
- mov r1, r9
- ldrh r0, [r1]
- lsls r0, 1
- adds r2, r0, r4
- ldrh r1, [r2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08110EDC
- ldr r0, _08110F34
- ands r0, r1
- strh r0, [r2]
-_08110EDC:
- ldr r6, _08110F38
- mov r3, r9
- ldrh r0, [r3]
- lsls r0, 1
- adds r0, r4
- ldrh r1, [r0]
- movs r5, 0xF
- adds r0, r5, 0
- ands r0, r1
- strh r0, [r6]
- ldr r2, _08110F3C
- ldrh r0, [r3]
- lsls r0, 1
- adds r0, r4
- ldrh r1, [r0]
- movs r0, 0xF0
- ands r0, r1
- strh r0, [r2]
- ldrh r1, [r3]
- adds r3, r2, 0
- cmp r0, 0
- bne _08110F0A
- b _0811105E
-_08110F0A:
- lsls r0, r1, 1
- adds r0, r4
- ldrh r2, [r0]
- adds r1, r5, 0
- ands r1, r2
- strh r1, [r0]
- ldrh r0, [r6]
- cmp r0, 0xA
- bls _08110F1E
- b _0811105E
-_08110F1E:
- lsls r0, 2
- ldr r1, _08110F40
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08110F28: .4byte 0x0000ffcf
-_08110F2C: .4byte 0x0000ff3f
-_08110F30: .4byte 0x0000ffaf
-_08110F34: .4byte 0x0000ff5f
-_08110F38: .4byte gUnknown_02039268
-_08110F3C: .4byte gUnknown_0203926A
-_08110F40: .4byte _08110F44
- .align 2, 0
-_08110F44:
- .4byte _08110F70
- .4byte _08110FAC
- .4byte _08110F8E
- .4byte _0811105E
- .4byte _08111002
- .4byte _08111036
- .4byte _08111036
- .4byte _0811105E
- .4byte _08110FCE
- .4byte _0811104A
- .4byte _0811104A
-_08110F70:
- ldrh r0, [r3]
- lsls r1, r0, 16
- cmp r1, 0
- beq _0811105E
- mov r0, r9
- ldrh r2, [r0]
- lsls r2, 1
- movs r0, 0x8B
- lsls r0, 1
- add r0, r8
- adds r2, r0
- ldrh r0, [r2]
- adds r0, 0x10
- lsrs r1, 20
- b _08110FC8
-_08110F8E:
- ldrh r0, [r3]
- lsls r1, r0, 16
- cmp r1, 0
- beq _0811105E
- mov r3, r9
- ldrh r2, [r3]
- lsls r2, 1
- movs r0, 0x8B
- lsls r0, 1
- add r0, r8
- adds r2, r0
- ldrh r0, [r2]
- adds r0, 0x1E
- lsrs r1, 20
- b _08110FC8
-_08110FAC:
- ldrh r0, [r3]
- lsls r1, r0, 16
- cmp r1, 0
- beq _0811105E
- mov r0, r9
- ldrh r2, [r0]
- lsls r2, 1
- movs r0, 0x8B
- lsls r0, 1
- add r0, r8
- adds r2, r0
- ldrh r0, [r2]
- adds r0, 0x20
- lsrs r1, 22
-_08110FC8:
- adds r0, r1
- strh r0, [r2]
- b _0811105E
-_08110FCE:
- ldrh r2, [r3]
- cmp r2, 0
- beq _0811105E
- movs r0, 0x80
- ands r0, r2
- lsls r0, 16
- lsrs r0, 16
- negs r0, r0
- lsrs r3, r0, 31
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _08110FEC
- movs r0, 0x2
- orrs r3, r0
-_08110FEC:
- mov r0, r9
- ldrh r1, [r0]
- lsls r1, 1
- movs r0, 0x8B
- lsls r0, 1
- add r0, r8
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x20
- adds r0, r3
- b _0811105C
-_08111002:
- ldrh r2, [r3]
- cmp r2, 0
- beq _0811105E
- movs r0, 0x40
- ands r0, r2
- lsls r0, 16
- lsrs r0, 16
- negs r0, r0
- lsrs r3, r0, 31
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- beq _08111020
- movs r0, 0x2
- orrs r3, r0
-_08111020:
- mov r0, r9
- ldrh r1, [r0]
- lsls r1, 1
- movs r0, 0x8B
- lsls r0, 1
- add r0, r8
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x21
- adds r0, r3
- b _0811105C
-_08111036:
- mov r3, r9
- ldrh r1, [r3]
- lsls r1, 1
- movs r0, 0x8B
- lsls r0, 1
- add r0, r8
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x27
- b _0811105C
-_0811104A:
- mov r0, r9
- ldrh r1, [r0]
- lsls r1, 1
- movs r0, 0x8B
- lsls r0, 1
- add r0, r8
- adds r1, r0
- ldrh r0, [r1]
- adds r0, 0x25
-_0811105C:
- strh r0, [r1]
-_0811105E:
- mov r3, r9
- ldrh r0, [r3]
- adds r0, 0x1
- strh r0, [r3]
- lsls r0, 16
- ldr r1, _08111080
- cmp r0, r1
- bhi _08111070
- b _08110E3C
-_08111070:
- 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
-_08111080: .4byte 0x027f0000
- thumb_func_end sub_8110C34
-
- thumb_func_start sub_8111084
-sub_8111084: @ 8111084
- push {lr}
- ldr r0, _081110AC
- movs r2, 0x89
- lsls r2, 1
- adds r1, r0, r2
- ldrh r1, [r1]
- adds r2, r0, 0
- cmp r1, 0
- beq _081110B4
- movs r3, 0x88
- lsls r3, 1
- adds r0, r2, r3
- ldrh r0, [r0]
- cmp r0, 0
- bne _081110B4
- ldr r0, _081110B0
- adds r1, r2, r0
- movs r0, 0x1
- b _081110BA
- .align 2, 0
-_081110AC: .4byte 0x02000000
-_081110B0: .4byte 0x0000061e
-_081110B4:
- ldr r3, _081110FC
- adds r1, r2, r3
- movs r0, 0
-_081110BA:
- strb r0, [r1]
- ldr r1, _08111100
- adds r0, r2, r1
- movs r1, 0
- strh r1, [r0]
- movs r3, 0xC3
- lsls r3, 3
- adds r0, r2, r3
- strh r1, [r0]
- adds r3, 0x2
- adds r0, r2, r3
- strh r1, [r0]
- ldr r0, _08111104
- adds r1, r2, r0
- movs r0, 0x40
- strh r0, [r1]
- adds r3, 0x5
- adds r1, r2, r3
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _08111108
- ldr r2, _0811110C
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r3, 0x80
- lsls r3, 5
- adds r0, r3, 0
- strh r0, [r1]
- bl sub_8111110
- pop {r0}
- bx r0
- .align 2, 0
-_081110FC: .4byte 0x0000061e
-_08111100: .4byte 0x00000616
-_08111104: .4byte 0x0000061c
-_08111108: .4byte REG_BLDCNT
-_0811110C: .4byte 0x00003f41
- thumb_func_end sub_8111084
-
- thumb_func_start sub_8111110
-sub_8111110: @ 8111110
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _0811114C
- ldr r2, _08111150
- adds r1, r0, r2
- ldrb r1, [r1]
- adds r5, r0, 0
- cmp r1, 0
- bne _081111DE
- ldr r3, _08111154
- adds r1, r5, r3
- ldrh r0, [r1]
- cmp r0, 0
- bne _081111D8
- movs r1, 0xC3
- lsls r1, 3
- adds r0, r5, r1
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- movs r0, 0x1
- ands r1, r0
- cmp r1, 0
- beq _08111158
- subs r2, 0x4
- adds r0, r5, r2
- b _0811115C
- .align 2, 0
-_0811114C: .4byte 0x02000000
-_08111150: .4byte 0x0000061e
-_08111154: .4byte 0x00000616
-_08111158:
- ldr r3, _081111C0
- adds r0, r5, r3
-_0811115C:
- ldrh r1, [r0]
- adds r1, 0x4
- movs r2, 0x7F
- ands r1, r2
- strh r1, [r0]
- ldr r2, _081111C4
- ldr r1, _081111C8
- adds r0, r5, r1
- ldrh r0, [r0]
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- lsls r1, 16
- asrs r1, 20
- lsls r1, 16
- lsrs r1, 16
- ldr r3, _081111C0
- adds r0, r5, r3
- ldrh r0, [r0]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 20
- lsls r0, 16
- ldr r2, _081111CC
- lsrs r0, 8
- orrs r1, r0
- strh r1, [r2]
- ldr r1, _081111D0
- adds r0, r5, r1
- movs r2, 0
- strh r2, [r0]
- subs r3, 0x4
- adds r1, r5, r3
- ldrh r0, [r1]
- cmp r0, 0x40
- bne _0811126E
- strh r2, [r1]
- movs r1, 0x89
- lsls r1, 1
- adds r0, r5, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _0811126E
- ldr r2, _081111D4
- adds r1, r5, r2
- movs r0, 0x1
- b _0811126C
- .align 2, 0
-_081111C0: .4byte 0x0000061c
-_081111C4: .4byte gSineTable
-_081111C8: .4byte 0x0000061a
-_081111CC: .4byte REG_BLDALPHA
-_081111D0: .4byte 0x00000616
-_081111D4: .4byte 0x0000061e
-_081111D8:
- subs r0, 0x1
- strh r0, [r1]
- b _0811126E
-_081111DE:
- ldr r3, _0811127C
- adds r1, r5, r3
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xC
- bls _0811126E
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08111280
- adds r1, r5, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r4, 0
- movs r2, 0x89
- lsls r2, 1
- adds r0, r5, r2
- ldrh r3, [r0]
- cmp r4, r3
- bcs _0811124C
- movs r2, 0xCC
- lsls r2, 3
- adds r2, r5
- mov r9, r2
- mov r8, r1
- movs r3, 0x1
- mov r12, r3
- adds r6, r0, 0
- movs r7, 0x5
- negs r7, r7
-_08111220:
- lsls r0, r4, 2
- add r0, r9
- ldr r3, [r0]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x1
- adds r3, 0x3E
- ands r1, r0
- mov r2, r12
- ands r1, r2
- lsls r1, 2
- ldrb r2, [r3]
- adds r0, r7, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrh r3, [r6]
- cmp r4, r3
- bcc _08111220
-_0811124C:
- ldr r0, _08111280
- adds r1, r5, r0
- ldrb r0, [r1]
- cmp r0, 0x4
- bls _0811126E
- movs r0, 0x1
- strb r0, [r1]
- movs r1, 0x88
- lsls r1, 1
- adds r0, r5, r1
- ldrh r0, [r0]
- cmp r0, 0
- beq _0811126E
- ldr r2, _08111284
- adds r1, r5, r2
- movs r0, 0
-_0811126C:
- strb r0, [r1]
-_0811126E:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811127C: .4byte 0x00000616
-_08111280: .4byte 0x0000061f
-_08111284: .4byte 0x0000061e
- thumb_func_end sub_8111110
-
- thumb_func_start sub_8111288
-sub_8111288: @ 8111288
- push {lr}
- ldr r1, _08111298
- ldrh r0, [r1, 0xC]
- cmp r0, 0
- beq _0811129C
- cmp r0, 0x1
- beq _081112A2
- b _081112B2
- .align 2, 0
-_08111298: .4byte 0x02000000
-_0811129C:
- movs r0, 0x1
- strh r0, [r1, 0xC]
- b _081112B2
-_081112A2:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _081112B2
- ldr r0, _081112B8
- bl sub_8110814
-_081112B2:
- pop {r0}
- bx r0
- .align 2, 0
-_081112B8: .4byte sub_81112BC
- thumb_func_end sub_8111288
-
- thumb_func_start sub_81112BC
-sub_81112BC: @ 81112BC
- push {lr}
- ldr r0, _081112DC
- ldrh r0, [r0, 0xC]
- cmp r0, 0
- bne _08111308
- ldr r0, _081112E0
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081112E8
- ldr r0, _081112E4
- bl sub_8110814
- b _08111308
- .align 2, 0
-_081112DC: .4byte 0x02000000
-_081112E0: .4byte gMain
-_081112E4: .4byte sub_8111314
-_081112E8:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08111302
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08111308
- ldr r0, _0811130C
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _08111308
-_08111302:
- ldr r0, _08111310
- bl sub_8110814
-_08111308:
- pop {r0}
- bx r0
- .align 2, 0
-_0811130C: .4byte gSaveBlock2
-_08111310: .4byte sub_8111360
- thumb_func_end sub_81112BC
-
- thumb_func_start sub_8111314
-sub_8111314: @ 8111314
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _08111328
- ldrh r1, [r4, 0xC]
- cmp r1, 0
- beq _0811132C
- cmp r1, 0x1
- beq _08111344
- b _08111358
- .align 2, 0
-_08111328: .4byte 0x02000000
-_0811132C:
- movs r0, 0x15
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- b _08111358
-_08111344:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _08111358
- bl sub_80FAB10
- ldr r0, [r4, 0x4]
- bl SetMainCallback2
-_08111358:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8111314
-
- thumb_func_start sub_8111360
-sub_8111360: @ 8111360
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _08111374
- ldrh r1, [r4, 0xC]
- cmp r1, 0
- beq _08111378
- cmp r1, 0x1
- beq _08111390
- b _081113A4
- .align 2, 0
-_08111374: .4byte 0x02000000
-_08111378:
- movs r0, 0x15
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- b _081113A4
-_08111390:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _081113A4
- bl sub_80FAB10
- ldr r0, [r4, 0x8]
- bl SetMainCallback2
-_081113A4:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8111360
-
- thumb_func_start sub_81113AC
-sub_81113AC: @ 81113AC
- push {r4,lr}
- ldr r2, _081113DC
- movs r3, 0
- movs r4, 0
- strh r0, [r2, 0xE]
- ldr r0, _081113E0
- adds r2, r0
- str r1, [r2]
- strb r3, [r1]
- ldr r0, _081113E4
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081113E8
- 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
-_081113DC: .4byte 0x02000000
-_081113E0: .4byte 0x000006e4
-_081113E4: .4byte sub_81113EC
-_081113E8: .4byte gTasks
- thumb_func_end sub_81113AC
-
- thumb_func_start sub_81113EC
-sub_81113EC: @ 81113EC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08111414
- 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, 0xB
- bls _0811140A
- b _08111540
-_0811140A:
- lsls r0, 2
- ldr r1, _08111418
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08111414: .4byte gTasks
-_08111418: .4byte _0811141C
- .align 2, 0
-_0811141C:
- .4byte _0811144C
- .4byte _08111488
- .4byte _08111496
- .4byte _081114B8
- .4byte _081114BE
- .4byte _081114CA
- .4byte _081114DE
- .4byte _081114E4
- .4byte _081114EA
- .4byte _081114F0
- .4byte _08111502
- .4byte _08111528
-_0811144C:
- movs r1, 0x80
- lsls r1, 19
- movs r3, 0xC4
- lsls r3, 7
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _08111478
- movs r1, 0
- strh r1, [r0]
- ldr r2, _0811147C
- ldr r3, _08111480
- adds r0, r3, 0
- strh r0, [r2]
- ldr r0, _08111484
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- b _08111540
- .align 2, 0
-_08111478: .4byte REG_BG0HOFS
-_0811147C: .4byte REG_BG0VOFS
-_08111480: .4byte 0x0000fff8
-_08111484: .4byte REG_BG2VOFS
-_08111488:
- bl ResetPaletteFade
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- b _08111540
-_08111496:
- ldr r4, _081114B4
- adds r0, r4, 0
- movs r1, 0
- bl sub_80FA8EC
- movs r0, 0x88
- lsls r0, 4
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x10
- bl StringFill
- b _08111540
- .align 2, 0
-_081114B4: .4byte 0x020006e8
-_081114B8:
- bl sub_8110824
- b _08111540
-_081114BE:
- bl sub_8110838
- lsls r0, 24
- cmp r0, 0
- bne _08111550
- b _08111540
-_081114CA:
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80FBCF0
- movs r1, 0x8
- negs r1, r1
- movs r0, 0
- bl sub_80FB2A4
- b _08111540
-_081114DE:
- bl sub_8111658
- b _08111540
-_081114E4:
- bl sub_81117AC
- b _08111540
-_081114EA:
- bl sub_81117E4
- b _08111540
-_081114F0:
- movs r0, 0x15
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _08111540
-_08111502:
- ldr r1, _0811151C
- ldr r2, _08111520
- adds r0, r2, 0
- strh r0, [r1]
- bl sub_8111084
- movs r1, 0x80
- lsls r1, 19
- ldr r3, _08111524
- adds r0, r3, 0
- strh r0, [r1]
- b _08111540
- .align 2, 0
-_0811151C: .4byte REG_BLDCNT
-_08111520: .4byte 0x00003f41
-_08111524: .4byte 0x00007741
-_08111528:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r2
- ldr r1, _0811153C
- str r1, [r0]
- movs r1, 0
- strh r1, [r0, 0x8]
- b _08111550
- .align 2, 0
-_0811153C: .4byte sub_811155C
-_08111540:
- ldr r0, _08111558
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_08111550:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08111558: .4byte gTasks
- thumb_func_end sub_81113EC
-
- thumb_func_start sub_811155C
-sub_811155C: @ 811155C
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8111110
- ldr r1, _08111584
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- cmp r1, 0x1
- beq _081115B4
- cmp r1, 0x1
- bgt _08111588
- cmp r1, 0
- beq _0811159E
- b _08111590
- .align 2, 0
-_08111584: .4byte gTasks
-_08111588:
- cmp r1, 0x2
- beq _081115F8
- cmp r1, 0x3
- beq _0811160A
-_08111590:
- ldr r0, _081115AC
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0x8]
-_0811159E:
- ldr r0, _081115B0
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0811164C
- b _0811163C
- .align 2, 0
-_081115AC: .4byte gTasks
-_081115B0: .4byte gPaletteFade
-_081115B4:
- ldr r0, _081115CC
- ldrh r2, [r0, 0x2E]
- movs r3, 0x2
- adds r0, r3, 0
- ands r0, r2
- cmp r0, 0
- beq _081115D0
- strh r1, [r5, 0xA]
- movs r0, 0x3
- bl PlaySE
- b _0811163C
- .align 2, 0
-_081115CC: .4byte gMain
-_081115D0:
- movs r0, 0x10
- ands r0, r2
- cmp r0, 0
- bne _081115EA
- movs r0, 0x80
- lsls r0, 1
- ands r0, r2
- cmp r0, 0
- beq _0811164C
- ldr r0, _081115F4
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _0811164C
-_081115EA:
- strh r3, [r5, 0xA]
- movs r0, 0x6D
- bl PlaySE
- b _0811163C
- .align 2, 0
-_081115F4: .4byte gSaveBlock2
-_081115F8:
- movs r0, 0x15
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _0811163C
-_0811160A:
- ldr r0, _08111630
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0811164C
- bl sub_8111738
- ldr r0, _08111634
- ldr r1, _08111638
- adds r0, r1
- ldr r1, [r0]
- ldrh r0, [r5, 0xA]
- strb r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
- b _0811164C
- .align 2, 0
-_08111630: .4byte gPaletteFade
-_08111634: .4byte 0x02000000
-_08111638: .4byte 0x000006e4
-_0811163C:
- ldr r0, _08111654
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_0811164C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08111654: .4byte gTasks
- thumb_func_end sub_811155C
-
- thumb_func_start sub_8111658
-sub_8111658: @ 8111658
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _08111720
- bl LoadSpriteSheet
- ldr r0, _08111724
- bl LoadSpritePalette
- movs r5, 0
- movs r1, 0
- ldr r0, _08111728
- movs r3, 0x89
- lsls r3, 1
- adds r2, r0, r3
- ldrh r7, [r2]
- cmp r5, r7
- bge _0811170C
- adds r6, r0, 0
- mov r8, r2
-_08111680:
- lsls r0, r1, 16
- asrs r4, r0, 16
- lsls r1, r4, 1
- movs r2, 0xC4
- lsls r2, 3
- adds r0, r6, r2
- adds r1, r0
- ldr r2, _0811172C
- movs r3, 0
- ldrsh r0, [r1, r3]
- lsls r0, 3
- adds r0, r2
- ldrb r1, [r0]
- adds r1, 0x1
- lsls r1, 3
- adds r1, 0x4
- ldrb r2, [r0, 0x1]
- lsls r2, 19
- ldrb r3, [r0, 0x2]
- subs r3, 0x1
- lsls r3, 2
- ldrb r0, [r0, 0x3]
- subs r0, 0x1
- lsls r0, 2
- movs r7, 0xE0
- lsls r7, 13
- adds r2, r7
- asrs r2, 16
- adds r1, r3
- adds r2, r0
- ldr r0, _08111730
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _081116FC
- ldr r0, _08111734
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
- adds r1, r5, 0
- lsls r0, r1, 16
- movs r3, 0x80
- lsls r3, 9
- adds r0, r3
- lsrs r5, r0, 16
- lsls r1, 16
- asrs r1, 14
- movs r7, 0xCC
- lsls r7, 3
- adds r0, r6, r7
- adds r1, r0
- str r2, [r1]
-_081116FC:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- asrs r0, 16
- mov r2, r8
- ldrh r2, [r2]
- cmp r0, r2
- blt _08111680
-_0811170C:
- ldr r0, _08111728
- movs r3, 0xDC
- lsls r3, 3
- adds r0, r3
- strh r5, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08111720: .4byte gUnknown_083F858C
-_08111724: .4byte gUnknown_083F8594
-_08111728: .4byte 0x02000000
-_0811172C: .4byte gRegionMapLocations
-_08111730: .4byte gSpriteTemplate_83F85A4
-_08111734: .4byte gSprites
- thumb_func_end sub_8111658
-
- thumb_func_start sub_8111738
-sub_8111738: @ 8111738
- push {r4-r6,lr}
- movs r0, 0x2
- bl FreeSpriteTilesByTag
- movs r0, 0x2
- bl FreeSpritePaletteByTag
- movs r4, 0
- ldr r1, _081117A4
- movs r2, 0xDC
- lsls r2, 3
- adds r0, r1, r2
- ldrh r2, [r0]
- cmp r4, r2
- bcs _08111776
- adds r6, r1, 0
- adds r5, r0, 0
-_0811175A:
- lsls r0, r4, 2
- movs r2, 0xCC
- lsls r2, 3
- adds r1, r6, r2
- adds r0, r1
- ldr r0, [r0]
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrh r0, [r5]
- cmp r4, r0
- bcc _0811175A
-_08111776:
- movs r0, 0x3
- bl FreeSpriteTilesByTag
- movs r0, 0x3
- bl FreeSpritePaletteByTag
- movs r4, 0
- ldr r5, _081117A8
-_08111786:
- lsls r0, r4, 2
- adds r0, r5
- ldr r0, [r0]
- cmp r0, 0
- beq _08111794
- bl DestroySprite
-_08111794:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x2
- bls _08111786
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081117A4: .4byte 0x02000000
-_081117A8: .4byte 0x02000fa8
- thumb_func_end sub_8111738
-
- thumb_func_start sub_81117AC
-sub_81117AC: @ 81117AC
- push {lr}
- sub sp, 0x8
- ldr r0, _081117D4
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r0, _081117D8
- ldr r1, _081117DC
- bl LZ77UnCompWram
- mov r0, sp
- bl LoadSpriteSheet
- ldr r0, _081117E0
- bl LoadSpritePalette
- add sp, 0x8
- pop {r0}
- bx r0
- .align 2, 0
-_081117D4: .4byte gUnknown_083F8664
-_081117D8: .4byte gAreaUnknownTiles
-_081117DC: .4byte 0x02000fb4
-_081117E0: .4byte gUnknown_083F865C
- thumb_func_end sub_81117AC
-
- thumb_func_start sub_81117E4
-sub_81117E4: @ 81117E4
- push {r4-r7,lr}
- ldr r1, _08111810
- movs r2, 0x88
- lsls r2, 1
- adds r0, r1, r2
- ldr r0, [r0]
- cmp r0, 0
- beq _08111818
- movs r4, 0
- ldr r7, _08111814
- adds r2, r1, r7
- movs r1, 0
-_081117FC:
- lsls r0, r4, 2
- adds r0, r2
- str r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x2
- bls _081117FC
- b _0811188E
- .align 2, 0
-_08111810: .4byte 0x02000000
-_08111814: .4byte 0x00000fa8
-_08111818:
- movs r4, 0
- ldr r6, _08111868
- ldr r0, _0811186C
- adds r5, r1, r0
-_08111820:
- lsls r1, r4, 21
- movs r2, 0xA0
- lsls r2, 16
- adds r1, r2
- asrs r1, 16
- ldr r0, _08111870
- movs r2, 0x8C
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0811187C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r6
- ldrh r3, [r2, 0x4]
- lsls r0, r3, 22
- lsrs r0, 22
- lsls r1, r4, 4
- adds r0, r1
- ldr r7, _08111874
- adds r1, r7, 0
- ands r0, r1
- ldr r7, _08111878
- adds r1, r7, 0
- ands r3, r1
- orrs r3, r0
- strh r3, [r2, 0x4]
- lsls r0, r4, 2
- adds r0, r5
- str r2, [r0]
- b _08111884
- .align 2, 0
-_08111868: .4byte gSprites
-_0811186C: .4byte 0x00000fa8
-_08111870: .4byte gSpriteTemplate_83F8674
-_08111874: .4byte 0x000003ff
-_08111878: .4byte 0xfffffc00
-_0811187C:
- lsls r0, r4, 2
- adds r0, r5
- movs r1, 0
- str r1, [r0]
-_08111884:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x2
- bls _08111820
-_0811188E:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81117E4
-
- thumb_func_start sub_8111894
-sub_8111894: @ 8111894
- push {lr}
- bl UpdatePaletteFade
- bl RunTasks
- pop {r0}
- bx r0
- thumb_func_end sub_8111894
-
- thumb_func_start sub_81118A4
-sub_81118A4: @ 81118A4
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- movs r7, 0
- ldr r1, _081118C8
- 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 _081118CC
- cmp r0, 0x1
- beq _081118E4
- b _08111918
- .align 2, 0
-_081118C8: .4byte gTasks
-_081118CC:
- movs r0, 0x1
- negs r0, r0
- str r7, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08111918
-_081118E4:
- ldr r0, _08111920
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08111918
- movs r0, 0xA
- ldrsh r7, [r4, r0]
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- lsls r0, 16
- orrs r7, r0
- ldrh r5, [r4, 0x10]
- ldrb r6, [r4, 0x12]
- ldrh r4, [r4, 0x20]
- lsls r4, 24
- lsrs r4, 24
- adds r0, r2, 0
- bl DestroyTask
- adds r0, r7, 0
- adds r1, r5, 0
- adds r2, r6, 0
- adds r3, r4, 0
- bl evolution_cutscene
-_08111918:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08111920: .4byte gPaletteFade
- thumb_func_end sub_81118A4
-
- thumb_func_start sub_8111924
-sub_8111924: @ 8111924
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _08111978
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811197C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- mov r0, r8
- strh r0, [r1, 0xA]
- mov r0, r8
- lsrs r0, 16
- strh r0, [r1, 0xC]
- strh r4, [r1, 0x10]
- strh r5, [r1, 0x12]
- strh r6, [r1, 0x20]
- ldr r0, _08111980
- bl SetMainCallback2
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08111978: .4byte sub_81118A4
-_0811197C: .4byte gTasks
-_08111980: .4byte sub_8111894
- thumb_func_end sub_8111924
-
- thumb_func_start evolution_cutscene
-evolution_cutscene: @ 8111984
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x38
- str r0, [sp, 0x20]
- mov r10, r1
- mov r0, r10
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x24]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x28]
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- movs r5, 0
- str r5, [sp, 0x1C]
- add r0, sp, 0x1C
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, _08111C10
- bl CpuSet
- ldr r0, _08111C14
- strh r5, [r0]
- subs r0, 0xC
- strh r5, [r0]
- adds r0, 0x4
- strh r5, [r0]
- subs r0, 0x2
- strh r5, [r0]
- adds r0, 0x4
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- ldr r4, _08111C18
- adds r0, r4, 0
- bl SetUpWindowConfig
- bl ResetPaletteFade
- ldr r0, _08111C1C
- strh r5, [r0]
- ldr r0, _08111C20
- strh r5, [r0]
- ldr r0, _08111C24
- strh r5, [r0]
- ldr r0, _08111C28
- strh r5, [r0]
- ldr r0, _08111C2C
- strh r5, [r0]
- ldr r0, _08111C30
- strh r5, [r0]
- ldr r1, _08111C34
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08111C38
- strh r5, [r0]
- ldr r0, _08111C3C
- adds r1, r4, 0
- bl InitWindowFromConfig
- ldr r1, _08111C40
- movs r0, 0x9
- strb r0, [r1]
- bl sub_800D6D4
- bl sub_800DAB8
- bl ResetSpriteData
- bl remove_some_task
- bl ResetTasks
- bl FreeAllSpritePalettes
- ldr r0, _08111C44
- movs r3, 0x4
- strb r3, [r0]
- ldr r0, [sp, 0x20]
- movs r1, 0x2
- add r2, sp, 0x8
- bl GetMonData
- ldr r0, _08111C48
- add r1, sp, 0x8
- bl StringCopy10
- ldr r0, _08111C4C
- movs r1, 0xB
- mov r4, r10
- muls r4, r1
- adds r1, r4, 0
- ldr r2, _08111C50
- adds r1, r2
- bl StringCopy
- ldr r0, [sp, 0x20]
- movs r1, 0xB
- bl GetMonData
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 16
- ldr r0, [sp, 0x20]
- movs r1, 0x1
- bl GetMonData
- str r0, [sp, 0x2C]
- ldr r0, [sp, 0x20]
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x30]
- lsls r0, r6, 3
- ldr r1, _08111C54
- adds r0, r1
- lsls r2, r6, 2
- ldr r3, _08111C58
- adds r2, r3
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- ldr r4, _08111C5C
- ldr r3, [r4, 0x4]
- str r3, [sp]
- str r6, [sp, 0x4]
- movs r3, 0x80
- lsls r3, 18
- bl DecompressPicFromTable_2
- adds r0, r6, 0
- ldr r1, [sp, 0x2C]
- ldr r2, [sp, 0x30]
- bl sub_80409C8
- ldr r0, [r0]
- movs r1, 0x88
- lsls r1, 1
- movs r2, 0x20
- bl LoadCompressedPalette
- adds r0, r6, 0
- movs r1, 0x1
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _08111C60
- mov r9, r0
- ldr r1, _08111C64
- str r1, [r0, 0x10]
- movs r1, 0x78
- movs r2, 0x40
- movs r3, 0x1E
- bl CreateSprite
- lsls r1, r0, 24
- lsrs r2, r1, 24
- ldr r3, _08111C68
- strb r0, [r3]
- ldr r7, _08111C6C
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- movs r4, 0x1C
- adds r4, r7
- mov r8, r4
- adds r0, r1, r4
- ldr r2, _08111C70
- str r2, [r0]
- adds r1, r7
- ldrb r2, [r1, 0x5]
- movs r4, 0xF
- adds r0, r4, 0
- ands r0, r2
- movs r2, 0x10
- orrs r0, r2
- strb r0, [r1, 0x5]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r1]
- mov r1, r10
- lsls r0, r1, 3
- ldr r2, _08111C54
- adds r0, r2
- lsls r2, r1, 2
- ldr r3, _08111C58
- adds r2, r3
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- str r2, [sp, 0x34]
- ldr r2, _08111C5C
- ldr r2, [r2, 0xC]
- str r2, [sp]
- mov r3, r10
- str r3, [sp, 0x4]
- ldr r2, [sp, 0x34]
- movs r3, 0x80
- lsls r3, 18
- bl DecompressPicFromTable_2
- mov r0, r10
- ldr r1, [sp, 0x2C]
- ldr r2, [sp, 0x30]
- bl sub_80409C8
- ldr r0, [r0]
- movs r1, 0x90
- lsls r1, 1
- movs r2, 0x20
- bl LoadCompressedPalette
- mov r0, r10
- movs r1, 0x3
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _08111C64
- mov r1, r9
- str r0, [r1, 0x10]
- mov r0, r9
- movs r1, 0x78
- movs r2, 0x40
- movs r3, 0x1E
- bl CreateSprite
- lsls r1, r0, 24
- lsrs r2, r1, 24
- ldr r3, _08111C68
- strb r0, [r3, 0x1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r8, r1
- ldr r0, _08111C70
- mov r2, r8
- str r0, [r2]
- adds r1, r7
- ldrb r0, [r1, 0x5]
- ands r4, r0
- movs r0, 0x20
- orrs r4, r0
- strb r4, [r1, 0x5]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r1]
- bl sub_8149954
- ldr r0, _08111C74
- movs r1, 0
- bl CreateTask
- lsls r1, r0, 24
- lsrs r2, r1, 24
- ldr r4, _08111C68
- strb r0, [r4, 0x2]
- ldr r1, _08111C78
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x8]
- strh r6, [r0, 0xE]
- mov r1, r10
- strh r1, [r0, 0x10]
- mov r2, sp
- ldrh r2, [r2, 0x20]
- strh r2, [r0, 0xA]
- ldr r3, [sp, 0x20]
- lsrs r1, r3, 16
- strh r1, [r0, 0xC]
- mov r4, sp
- ldrh r4, [r4, 0x24]
- strh r4, [r0, 0x12]
- movs r1, 0x1
- strh r1, [r0, 0x14]
- strh r5, [r0, 0x1E]
- mov r1, sp
- ldrh r1, [r1, 0x28]
- strh r1, [r0, 0x20]
- ldr r0, _08111C7C
- ldr r1, _08111C80
- movs r2, 0x60
- bl memcpy
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08111C84
- bl SetHBlankCallback
- ldr r0, _08111C88
- bl SetVBlankCallback
- bl m4aMPlayAllStop
- ldr r0, _08111C8C
- bl SetMainCallback2
- add sp, 0x38
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08111C10: .4byte 0x05006000
-_08111C14: .4byte REG_MOSAIC
-_08111C18: .4byte gWindowConfig_81E6C58
-_08111C1C: .4byte gUnknown_030042A4
-_08111C20: .4byte gUnknown_030042A0
-_08111C24: .4byte gUnknown_030042C0
-_08111C28: .4byte gUnknown_030041B4
-_08111C2C: .4byte gUnknown_03004288
-_08111C30: .4byte gUnknown_03004280
-_08111C34: .4byte gUnknown_030041B0
-_08111C38: .4byte gUnknown_030041B8
-_08111C3C: .4byte gUnknown_03004210
-_08111C40: .4byte gUnknown_0300428C
-_08111C44: .4byte gReservedSpritePaletteCount
-_08111C48: .4byte gStringVar1
-_08111C4C: .4byte gStringVar2
-_08111C50: .4byte gSpeciesNames
-_08111C54: .4byte gMonFrontPicTable
-_08111C58: .4byte gMonFrontPicCoords
-_08111C5C: .4byte gUnknown_081FAF4C
-_08111C60: .4byte gUnknown_02024E8C
-_08111C64: .4byte gDummySpriteAffineAnimTable
-_08111C68: .4byte 0x02014800
-_08111C6C: .4byte gSprites
-_08111C70: .4byte nullsub_37
-_08111C74: .4byte sub_811240C
-_08111C78: .4byte gTasks
-_08111C7C: .4byte 0x02009000
-_08111C80: .4byte gPlttBufferUnfaded + 0x40
-_08111C84: .4byte nullsub_73
-_08111C88: .4byte sub_8114FD4
-_08111C8C: .4byte sub_8112270
- thumb_func_end evolution_cutscene
-
- thumb_func_start sub_8111C90
-sub_8111C90: @ 8111C90
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0xC
- ldr r2, _08111E14
- ldr r0, _08111E18
- mov r9, r0
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x20
- ldrsh r2, [r0, r1]
- movs r1, 0x64
- adds r4, r2, 0
- muls r4, r1
- ldr r1, _08111E1C
- adds r4, r1
- ldrh r6, [r0, 0x10]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- mov r10, r0
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- mov r8, r0
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- movs r5, 0
- str r5, [sp, 0x8]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, _08111E20
- add r0, sp, 0x8
- bl CpuSet
- ldr r0, _08111E24
- strh r5, [r0]
- subs r0, 0xC
- strh r5, [r0]
- adds r0, 0x4
- strh r5, [r0]
- subs r0, 0x2
- strh r5, [r0]
- adds r0, 0x4
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- ldr r4, _08111E28
- adds r0, r4, 0
- bl SetUpWindowConfig
- bl ResetPaletteFade
- ldr r0, _08111E2C
- strh r5, [r0]
- ldr r0, _08111E30
- strh r5, [r0]
- ldr r0, _08111E34
- strh r5, [r0]
- ldr r0, _08111E38
- strh r5, [r0]
- ldr r0, _08111E3C
- strh r5, [r0]
- ldr r0, _08111E40
- strh r5, [r0]
- ldr r1, _08111E44
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08111E48
- strh r5, [r0]
- ldr r0, _08111E4C
- adds r1, r4, 0
- bl InitWindowFromConfig
- ldr r1, _08111E50
- movs r0, 0x9
- strb r0, [r1]
- bl sub_800D6D4
- bl sub_800DAB8
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _08111E54
- movs r0, 0x4
- strb r0, [r1]
- lsls r0, r6, 3
- ldr r1, _08111E58
- adds r0, r1
- ldr r1, _08111E5C
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08111E60
- ldr r4, [r4, 0xC]
- str r4, [sp]
- str r6, [sp, 0x4]
- bl DecompressPicFromTable_2
- adds r0, r6, 0
- mov r1, r10
- mov r2, r8
- bl sub_80409C8
- ldr r0, [r0]
- movs r1, 0x90
- lsls r1, 1
- movs r2, 0x20
- bl LoadCompressedPalette
- adds r0, r6, 0
- movs r1, 0x3
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _08111E64
- ldr r1, _08111E68
- str r1, [r0, 0x10]
- movs r1, 0x78
- movs r2, 0x40
- movs r3, 0x1E
- bl CreateSprite
- lsls r2, r0, 24
- lsrs r2, 24
- mov r1, r9
- strb r0, [r1, 0x1]
- ldr r3, _08111E6C
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r1, r0
- ldr r2, _08111E70
- str r2, [r0]
- adds r1, r3
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- movs r2, 0x20
- orrs r0, r2
- strb r0, [r1, 0x5]
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08111E74
- bl SetHBlankCallback
- ldr r0, _08111E78
- bl SetVBlankCallback
- ldr r0, _08111E7C
- bl SetMainCallback2
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08111E14: .4byte gTasks
-_08111E18: .4byte 0x02014800
-_08111E1C: .4byte gPlayerParty
-_08111E20: .4byte 0x05006000
-_08111E24: .4byte REG_MOSAIC
-_08111E28: .4byte gWindowConfig_81E6C58
-_08111E2C: .4byte gUnknown_030042A4
-_08111E30: .4byte gUnknown_030042A0
-_08111E34: .4byte gUnknown_030042C0
-_08111E38: .4byte gUnknown_030041B4
-_08111E3C: .4byte gUnknown_03004288
-_08111E40: .4byte gUnknown_03004280
-_08111E44: .4byte gUnknown_030041B0
-_08111E48: .4byte gUnknown_030041B8
-_08111E4C: .4byte gUnknown_03004210
-_08111E50: .4byte gUnknown_0300428C
-_08111E54: .4byte gReservedSpritePaletteCount
-_08111E58: .4byte gMonFrontPicTable
-_08111E5C: .4byte gMonFrontPicCoords
-_08111E60: .4byte gUnknown_081FAF4C
-_08111E64: .4byte gUnknown_02024E8C
-_08111E68: .4byte gDummySpriteAffineAnimTable
-_08111E6C: .4byte gSprites
-_08111E70: .4byte nullsub_37
-_08111E74: .4byte nullsub_73
-_08111E78: .4byte sub_8114FD4
-_08111E7C: .4byte sub_8112270
- thumb_func_end sub_8111C90
-
- thumb_func_start sub_8111E80
-sub_8111E80: @ 8111E80
- push {r4-r7,lr}
- sub sp, 0x8
- ldr r2, _08111EB8
- ldr r0, _08111EBC
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x20
- ldrsh r2, [r0, r1]
- movs r1, 0x64
- muls r2, r1
- ldr r1, _08111EC0
- adds r4, r2, r1
- ldrh r7, [r0, 0x10]
- ldr r0, _08111EC4
- ldr r2, _08111EC8
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x6
- bls _08111EAE
- b _081120D6
-_08111EAE:
- lsls r0, 2
- ldr r1, _08111ECC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08111EB8: .4byte gTasks
-_08111EBC: .4byte 0x02014800
-_08111EC0: .4byte gPlayerParty
-_08111EC4: .4byte gMain
-_08111EC8: .4byte 0x0000043c
-_08111ECC: .4byte _08111ED0
- .align 2, 0
-_08111ED0:
- .4byte _08111EEC
- .4byte _08111F68
- .4byte _08111F88
- .4byte _08111FDC
- .4byte _08111FE2
- .4byte _08112048
- .4byte _081120B4
-_08111EEC:
- movs r0, 0x80
- lsls r0, 19
- movs r4, 0
- strh r4, [r0]
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _08111F3C
- movs r0, 0x4
- strb r0, [r1]
- ldr r0, _08111F40
- strh r4, [r0]
- ldr r0, _08111F44
- strh r4, [r0]
- ldr r0, _08111F48
- strh r4, [r0]
- ldr r0, _08111F4C
- strh r4, [r0]
- ldr r0, _08111F50
- strh r4, [r0]
- ldr r0, _08111F54
- strh r4, [r0]
- ldr r1, _08111F58
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08111F5C
- strh r4, [r0]
- ldr r1, _08111F60
- ldr r0, _08111F64
- adds r1, r0
- b _0811208E
- .align 2, 0
-_08111F3C: .4byte gReservedSpritePaletteCount
-_08111F40: .4byte gUnknown_030042A4
-_08111F44: .4byte gUnknown_030042A0
-_08111F48: .4byte gUnknown_030042C0
-_08111F4C: .4byte gUnknown_030041B4
-_08111F50: .4byte gUnknown_03004288
-_08111F54: .4byte gUnknown_03004280
-_08111F58: .4byte gUnknown_030041B0
-_08111F5C: .4byte gUnknown_030041B8
-_08111F60: .4byte gMain
-_08111F64: .4byte 0x0000043c
-_08111F68:
- ldr r4, _08111F80
- adds r0, r4, 0
- bl SetUpWindowConfig
- ldr r0, _08111F84
- ldr r0, [r0]
- adds r0, 0x4
- adds r1, r4, 0
- bl InitWindowFromConfig
- b _08112088
- .align 2, 0
-_08111F80: .4byte gWindowConfig_81E6F84
-_08111F84: .4byte gUnknown_03004828
-_08111F88:
- ldr r4, _08111FC8
- ldr r0, [r4]
- adds r0, 0x4
- bl LoadTextWindowGraphics
- movs r0, 0x2
- bl SetTextWindowBaseTileNum
- ldr r1, [r4]
- adds r1, 0x34
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, 0x4
- bl LoadTextWindowGraphics
- bl MenuZeroFillScreen
- bl ResetPaletteFade
- ldr r1, _08111FCC
- ldr r0, _08111FD0
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, _08111FD4
- bl SetHBlankCallback
- ldr r0, _08111FD8
- bl SetVBlankCallback
- b _081120D6
- .align 2, 0
-_08111FC8: .4byte gUnknown_03004828
-_08111FCC: .4byte gMain
-_08111FD0: .4byte 0x0000043c
-_08111FD4: .4byte nullsub_73
-_08111FD8: .4byte sub_811505C
-_08111FDC:
- bl sub_804E22C
- b _08112088
-_08111FE2:
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- adds r6, r0, 0
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r5, r0, 0
- lsls r0, r7, 3
- ldr r1, _08112034
- adds r0, r1
- ldr r1, _08112038
- lsls r2, r7, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _0811203C
- ldr r4, [r4, 0xC]
- str r4, [sp]
- str r7, [sp, 0x4]
- bl DecompressPicFromTable_2
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_80409C8
- ldr r0, [r0]
- movs r1, 0x90
- lsls r1, 1
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r1, _08112040
- ldr r0, _08112044
- adds r1, r0
- b _0811208E
- .align 2, 0
-_08112034: .4byte gMonFrontPicTable
-_08112038: .4byte gMonFrontPicCoords
-_0811203C: .4byte gUnknown_081FAF4C
-_08112040: .4byte gMain
-_08112044: .4byte 0x0000043c
-_08112048:
- adds r0, r7, 0
- movs r1, 0x3
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _08112098
- ldr r1, _0811209C
- str r1, [r0, 0x10]
- movs r1, 0x78
- movs r2, 0x40
- movs r3, 0x1E
- bl CreateSprite
- ldr r1, _081120A0
- lsls r2, r0, 24
- lsrs r2, 24
- strb r0, [r1, 0x1]
- ldr r3, _081120A4
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r1, r0
- ldr r2, _081120A8
- str r2, [r0]
- adds r1, r3
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- movs r2, 0x20
- orrs r0, r2
- strb r0, [r1, 0x5]
-_08112088:
- ldr r1, _081120AC
- ldr r2, _081120B0
- adds r1, r2
-_0811208E:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081120D6
- .align 2, 0
-_08112098: .4byte gUnknown_02024E8C
-_0811209C: .4byte gDummySpriteAffineAnimTable
-_081120A0: .4byte 0x02014800
-_081120A4: .4byte gSprites
-_081120A8: .4byte nullsub_37
-_081120AC: .4byte gMain
-_081120B0: .4byte 0x0000043c
-_081120B4:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _081120E0
- bl SetMainCallback2
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x9A
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
-_081120D6:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081120E0: .4byte sub_8112290
- thumb_func_end sub_8111E80
-
- thumb_func_start sub_81120E4
-sub_81120E4: @ 81120E4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- str r0, [sp, 0x1C]
- adds r5, r1, 0
- adds r4, r2, 0
- mov r10, r3
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 24
- lsrs r4, 24
- mov r0, r10
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, [sp, 0x1C]
- movs r1, 0x2
- add r2, sp, 0x8
- bl GetMonData
- ldr r0, _08112234
- add r1, sp, 0x8
- bl StringCopy10
- ldr r0, _08112238
- movs r1, 0xB
- muls r1, r5
- ldr r2, _0811223C
- adds r1, r2
- bl StringCopy
- ldr r1, _08112240
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, [sp, 0x1C]
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- mov r1, r8
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- ldr r0, [sp, 0x1C]
- movs r1, 0
- bl GetMonData
- adds r6, r0, 0
- ldr r0, [sp, 0x1C]
- movs r1, 0x1
- bl GetMonData
- adds r7, r0, 0
- ldr r2, _08112244
- mov r9, r2
- strb r4, [r2]
- lsls r0, r5, 3
- ldr r1, _08112248
- adds r0, r1
- ldr r1, _0811224C
- lsls r2, r5, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08112250
- ldr r4, [r4, 0x4]
- str r4, [sp]
- str r5, [sp, 0x4]
- bl DecompressPicFromTable_2
- adds r0, r5, 0
- adds r1, r7, 0
- adds r2, r6, 0
- bl sub_80409C8
- ldr r0, [r0]
- movs r1, 0x90
- lsls r1, 1
- movs r2, 0x20
- bl LoadCompressedPalette
- adds r0, r5, 0
- movs r1, 0x1
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _08112254
- ldr r1, _08112258
- str r1, [r0, 0x10]
- movs r1, 0x78
- movs r2, 0x40
- movs r3, 0x1E
- bl CreateSprite
- lsls r1, r0, 24
- lsrs r2, r1, 24
- mov r1, r9
- strb r0, [r1, 0x1]
- ldr r3, _0811225C
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r1, r0
- ldr r2, _08112260
- str r2, [r0]
- adds r1, r3
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- movs r2, 0x20
- orrs r0, r2
- strb r0, [r1, 0x5]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- bl sub_8149954
- ldr r0, _08112264
- movs r1, 0
- bl CreateTask
- lsls r1, r0, 24
- lsrs r2, r1, 24
- mov r1, r9
- strb r0, [r1, 0x2]
- ldr r1, _08112268
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- strh r2, [r0, 0x8]
- mov r1, r8
- strh r1, [r0, 0xE]
- strh r5, [r0, 0x10]
- mov r2, sp
- ldrh r2, [r2, 0x1C]
- strh r2, [r0, 0xA]
- ldr r1, [sp, 0x1C]
- lsrs r1, 16
- str r1, [sp, 0x20]
- strh r1, [r0, 0xC]
- movs r1, 0x1
- strh r1, [r0, 0x14]
- movs r1, 0
- strh r1, [r0, 0x1E]
- mov r2, r10
- strh r2, [r0, 0x20]
- ldr r0, _0811226C
- bl SetMainCallback2
- 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
-_08112234: .4byte gStringVar1
-_08112238: .4byte gStringVar2
-_0811223C: .4byte gSpeciesNames
-_08112240: .4byte gAffineAnimsDisabled
-_08112244: .4byte 0x02014800
-_08112248: .4byte gMonFrontPicTable
-_0811224C: .4byte gMonFrontPicCoords
-_08112250: .4byte gUnknown_081FAF4C
-_08112254: .4byte gUnknown_02024E8C
-_08112258: .4byte gDummySpriteAffineAnimTable
-_0811225C: .4byte gSprites
-_08112260: .4byte nullsub_37
-_08112264: .4byte sub_8112FE8
-_08112268: .4byte gTasks
-_0811226C: .4byte sub_8112290
- thumb_func_end sub_81120E4
-
- thumb_func_start sub_8112270
-sub_8112270: @ 8112270
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r0, _0811228C
- bl sub_800374C
- bl UpdatePaletteFade
- bl RunTasks
- pop {r0}
- bx r0
- .align 2, 0
-_0811228C: .4byte gUnknown_03004210
- thumb_func_end sub_8112270
-
- thumb_func_start sub_8112290
-sub_8112290: @ 8112290
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r0, _081122B0
- ldr r0, [r0]
- adds r0, 0x4
- bl sub_80035AC
- bl UpdatePaletteFade
- bl RunTasks
- pop {r0}
- bx r0
- .align 2, 0
-_081122B0: .4byte gUnknown_03004828
- thumb_func_end sub_8112290
-
- thumb_func_start sub_81122B4
-sub_81122B4: @ 81122B4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r1
- lsls r0, 16
- lsrs r7, r0, 16
- movs r0, 0
- str r0, [sp]
- ldr r0, _081123F4
- mov r8, r0
- lsls r1, r7, 2
- mov r9, r1
- adds r0, r1, r7
- lsls r4, r0, 3
- mov r0, r8
- adds r6, r4, r0
- ldrh r0, [r6]
- cmp r0, 0xD
- beq _081122E2
- b _081123E2
-_081122E2:
- ldr r1, _081123F8
- ldrb r0, [r1]
- cmp r0, 0x5
- bhi _081123E2
- adds r1, r0, 0
- movs r0, 0x64
- muls r1, r0
- ldr r0, _081123FC
- adds r5, r1, r0
- adds r0, r5, 0
- mov r1, r10
- movs r2, 0x64
- bl CopyMon
- mov r1, r8
- adds r2, r1, r4
- adds r2, 0xC
- adds r0, r5, 0
- movs r1, 0xB
- bl SetMonData
- ldrh r1, [r6, 0xC]
- movs r0, 0xB
- adds r2, r1, 0
- muls r2, r0
- ldr r0, _08112400
- adds r2, r0
- adds r0, r5, 0
- movs r1, 0x2
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0x8
- mov r2, sp
- bl SetMonData
- adds r0, r5, 0
- movs r1, 0xA
- mov r2, sp
- bl SetMonData
- movs r4, 0x32
- mov r6, r9
-_08112342:
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, sp
- bl SetMonData
- adds r4, 0x1
- cmp r4, 0x36
- ble _08112342
- movs r4, 0x43
-_08112354:
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, sp
- bl SetMonData
- adds r4, 0x1
- cmp r4, 0x4F
- ble _08112354
- adds r0, r5, 0
- movs r1, 0x37
- mov r2, sp
- bl SetMonData
- movs r0, 0xFF
- str r0, [sp]
- adds r0, r5, 0
- movs r1, 0x40
- mov r2, sp
- bl SetMonData
- adds r0, r5, 0
- bl CalculateMonStats
- bl CalculatePlayerPartyCount
- ldr r0, _081123F4
- adds r4, r6, r7
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0xC]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2
- bl sub_8090D90
- ldrh r0, [r4, 0xC]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl sub_8090D90
- adds r0, r5, 0
- movs r1, 0xB
- bl GetMonData
- ldr r1, _08112404
- cmp r0, r1
- bne _081123E2
- adds r0, r5, 0
- movs r1, 0x3
- bl GetMonData
- cmp r0, 0x1
- bne _081123E2
- mov r0, r10
- movs r1, 0xB
- bl GetMonData
- movs r1, 0x97
- lsls r1, 1
- cmp r0, r1
- bne _081123E2
- ldr r2, _08112408
- adds r0, r5, 0
- movs r1, 0x2
- bl SetMonData
-_081123E2:
- 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
-_081123F4: .4byte gEvolutionTable
-_081123F8: .4byte gPlayerPartyCount
-_081123FC: .4byte gPlayerParty
-_08112400: .4byte gSpeciesNames
-_08112404: .4byte 0x0000012f
-_08112408: .4byte gUnknown_083F868C
- thumb_func_end sub_81122B4
-
- thumb_func_start sub_811240C
-sub_811240C: @ 811240C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _08112490
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r3, r0, r2
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- mov r9, r0
- movs r1, 0xC
- ldrsh r0, [r3, r1]
- lsls r0, 16
- mov r1, r9
- orrs r1, r0
- mov r9, r1
- ldr r0, _08112494
- ldrh r1, [r0, 0x2C]
- adds r6, r2, 0
- adds r4, r0, 0
- cmp r1, 0x2
- bne _0811246E
- movs r2, 0x8
- ldrsh r0, [r3, r2]
- cmp r0, 0x8
- bne _0811246E
- ldrh r1, [r3, 0x12]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0811246E
- movs r0, 0x10
- strh r0, [r3, 0x8]
- ldr r0, _08112498
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r1, r0, r6
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _0811246E
- strh r2, [r1, 0x18]
-_0811246E:
- lsls r1, r7, 2
- adds r0, r1, r7
- lsls r0, 3
- adds r0, r6
- movs r3, 0x8
- ldrsh r0, [r0, r3]
- mov r8, r1
- cmp r0, 0x15
- bls _08112484
- bl _08112FD0
-_08112484:
- lsls r0, 2
- ldr r1, _0811249C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08112490: .4byte gTasks
-_08112494: .4byte gMain
-_08112498: .4byte gUnknown_02024D1E
-_0811249C: .4byte _081124A0
- .align 2, 0
-_081124A0:
- .4byte _081124F8
- .4byte _0811253C
- .4byte _08112588
- .4byte _08112594
- .4byte _081125BC
- .4byte _081125FC
- .4byte _08112630
- .4byte _0811266C
- .4byte _081126A0
- .4byte _081126E0
- .4byte _081126FC
- .4byte _08112728
- .4byte _08112754
- .4byte _081127A0
- .4byte _0811284C
- .4byte _081128E4
- .4byte _08112934
- .4byte _08112974
- .4byte _081129A0
- .4byte _081129E8
- .4byte _08112A4C
- .4byte _08112A88
-_081124F8:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, _08112530
- ldr r0, _08112534
- 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]
- ldr r0, _08112538
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- b _08112A2E
- .align 2, 0
-_08112530: .4byte gSprites
-_08112534: .4byte 0x02014800
-_08112538: .4byte gTasks
-_0811253C:
- ldr r0, _08112574
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0811254C
- bl _08112FD0
-_0811254C:
- ldr r4, _08112578
- ldr r1, _0811257C
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, _08112580
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08112584
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- b _08112A2E
- .align 2, 0
-_08112574: .4byte gPaletteFade
-_08112578: .4byte gStringVar4
-_0811257C: .4byte gUnknown_08400C4A
-_08112580: .4byte gUnknown_03004210
-_08112584: .4byte gTasks
-_08112588:
- ldr r0, _08112590
- ldrh r0, [r0, 0x16]
- b _0811297C
- .align 2, 0
-_08112590: .4byte gUnknown_03004210
-_08112594:
- bl IsCryFinished
- lsls r0, 24
- cmp r0, 0
- bne _081125A2
- bl _08112FD0
-_081125A2:
- movs r0, 0xBC
- lsls r0, 1
- bl PlaySE
- ldr r0, _081125B8
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- b _08112A2E
- .align 2, 0
-_081125B8: .4byte gTasks
-_081125BC:
- bl IsSEPlaying
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- beq _081125CC
- bl _08112FD0
-_081125CC:
- ldr r0, _081125F4
- bl PlayNewMapMusic
- ldr r0, _081125F8
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- str r4, [sp]
- movs r0, 0x1C
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- bl _08112FD0
- .align 2, 0
-_081125F4: .4byte 0x00000179
-_081125F8: .4byte gTasks
-_081125FC:
- ldr r0, _08112624
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0811260C
- bl _08112FD0
-_0811260C:
- movs r0, 0x11
- bl sub_8149970
- ldr r1, _08112628
- strb r0, [r1, 0x2]
- ldr r0, _0811262C
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- b _08112A2E
- .align 2, 0
-_08112624: .4byte gPaletteFade
-_08112628: .4byte gUnknown_02024D1E
-_0811262C: .4byte gTasks
-_08112630:
- ldr r4, _08112664
- ldrb r0, [r4, 0x2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r6
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _08112646
- bl _08112FD0
-_08112646:
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r6
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r1, _08112668
- movs r0, 0x1
- strb r0, [r1, 0x3]
- bl sub_8149A90
- strb r0, [r4, 0x2]
- bl _08112FD0
- .align 2, 0
-_08112664: .4byte gUnknown_02024D1E
-_08112668: .4byte 0x02014800
-_0811266C:
- ldr r4, _08112698
- ldrb r0, [r4, 0x2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r6
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _08112682
- bl _08112FD0
-_08112682:
- ldr r1, _0811269C
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- bl sub_8149E7C
- strb r0, [r4, 0x2]
- mov r0, r8
- adds r1, r0, r7
- lsls r1, 3
- adds r1, r6
- b _08112A2E
- .align 2, 0
-_08112698: .4byte gUnknown_02024D1E
-_0811269C: .4byte 0x02014800
-_081126A0:
- ldr r1, _081126D8
- ldrb r0, [r1, 0x3]
- subs r0, 0x1
- strb r0, [r1, 0x3]
- lsls r0, 24
- cmp r0, 0
- beq _081126B2
- bl _08112FD0
-_081126B2:
- movs r0, 0x3
- strb r0, [r1, 0x3]
- ldr r0, _081126DC
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _081126CC
- bl _08112FD0
-_081126CC:
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r6
- b _08112A2E
- .align 2, 0
-_081126D8: .4byte 0x02014800
-_081126DC: .4byte gUnknown_02024D1E
-_081126E0:
- bl sub_8149B44
- ldr r1, _081126F4
- strb r0, [r1, 0x2]
- ldr r0, _081126F8
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- b _08112A2E
- .align 2, 0
-_081126F4: .4byte gUnknown_02024D1E
-_081126F8: .4byte gTasks
-_081126FC:
- ldr r5, _08112724
- ldrb r0, [r5, 0x2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r6
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _08112712
- bl _08112FD0
-_08112712:
- mov r0, r8
- adds r4, r0, r7
- lsls r4, 3
- adds r4, r6
- ldrh r0, [r4, 0x10]
- bl sub_8149C20
- strb r0, [r5, 0x2]
- b _08112992
- .align 2, 0
-_08112724: .4byte gUnknown_02024D1E
-_08112728:
- ldr r0, _08112750
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _0811273E
- bl _08112FD0
-_0811273E:
- movs r0, 0x21
- bl PlaySE
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r6
- b _08112A2E
- .align 2, 0
-_08112750: .4byte gUnknown_02024D1E
-_08112754:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _08112762
- bl _08112FD0
-_08112762:
- bl m4aMPlayAllStop
- ldr r0, _08112794
- mov r3, r8
- adds r4, r3, r7
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0x10]
- movs r1, 0
- bl PlayCry1
- ldr r0, _08112798
- ldr r1, _0811279C
- movs r2, 0x60
- bl memcpy
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1C
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _08112992
- .align 2, 0
-_08112794: .4byte gTasks
-_08112798: .4byte gPlttBufferUnfaded + 0x40
-_0811279C: .4byte 0x02009000
-_081127A0:
- bl IsCryFinished
- lsls r0, 24
- cmp r0, 0
- bne _081127AE
- bl _08112FD0
-_081127AE:
- ldr r0, _08112834
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081127BE
- bl _08112FD0
-_081127BE:
- ldr r4, _08112838
- ldr r1, _0811283C
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, _08112840
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08112844
- bl PlayBGM
- ldr r2, _08112848
- mov r0, r8
- adds r1, r0, r7
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- adds r2, r1
- adds r2, 0x10
- mov r0, r9
- movs r1, 0xB
- bl SetMonData
- mov r0, r9
- bl CalculateMonStats
- ldrh r1, [r4, 0xE]
- ldrh r2, [r4, 0x10]
- mov r0, r9
- bl sub_803FB68
- ldrh r0, [r4, 0x10]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2
- bl sub_8090D90
- ldrh r0, [r4, 0x10]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl sub_8090D90
- movs r0, 0xE
- bl sav12_xor_increment
- b _08112FD0
- .align 2, 0
-_08112834: .4byte gPaletteFade
-_08112838: .4byte gStringVar4
-_0811283C: .4byte gUnknown_08400C60
-_08112840: .4byte gUnknown_03004210
-_08112844: .4byte 0x00000173
-_08112848: .4byte gTasks
-_0811284C:
- ldr r0, _081128A4
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- beq _08112856
- b _08112FD0
-_08112856:
- mov r1, r8
- adds r0, r1, r7
- lsls r0, 3
- adds r5, r0, r6
- ldrb r1, [r5, 0x14]
- mov r0, r9
- bl sub_803B7C8
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0
- beq _081128C4
- movs r2, 0x1E
- ldrsh r4, [r5, r2]
- cmp r4, 0
- bne _081128C4
- bl sub_8053E90
- ldrh r1, [r5, 0x12]
- movs r0, 0x80
- orrs r0, r1
- strh r0, [r5, 0x12]
- strh r4, [r5, 0x14]
- strh r4, [r5, 0x18]
- mov r0, r9
- movs r1, 0x2
- add r2, sp, 0x4
- bl GetMonData
- ldr r0, _081128A8
- add r1, sp, 0x4
- bl StringCopy10
- ldr r0, _081128AC
- cmp r6, r0
- bne _081128B0
- movs r0, 0x15
- strh r0, [r5, 0x8]
- b _08112FD0
- .align 2, 0
-_081128A4: .4byte gUnknown_03004210
-_081128A8: .4byte gUnknown_030041C0
-_081128AC: .4byte 0x0000ffff
-_081128B0:
- ldr r0, _081128C0
- cmp r6, r0
- bne _081128B8
- b _08112FD0
-_081128B8:
- movs r0, 0x13
- strh r0, [r5, 0x8]
- b _08112FD0
- .align 2, 0
-_081128C0: .4byte 0x0000fffe
-_081128C4:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _081128E0
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- b _08112A2E
- .align 2, 0
-_081128E0: .4byte gTasks
-_081128E4:
- ldr r0, _0811292C
- ldrb r1, [r0, 0x7]
- movs r2, 0x80
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _081128F4
- b _08112FD0
-_081128F4:
- mov r1, r8
- adds r0, r1, r7
- lsls r0, 3
- adds r4, r0, r6
- ldrh r1, [r4, 0x12]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0811290A
- bl sub_8053E90
-_0811290A:
- movs r2, 0x1E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0811291A
- ldrh r0, [r4, 0xE]
- mov r1, r9
- bl sub_81122B4
-_0811291A:
- adds r0, r7, 0
- bl DestroyTask
- ldr r0, _08112930
- ldr r0, [r0]
- bl SetMainCallback2
- b _08112FD0
- .align 2, 0
-_0811292C: .4byte gPaletteFade
-_08112930: .4byte gUnknown_03005E94
-_08112934:
- ldr r0, _08112968
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _08112948
- b _08112FD0
-_08112948:
- bl m4aMPlayAllStop
- ldr r0, _0811296C
- ldr r1, _08112970
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r6
- b _08112A2E
- .align 2, 0
-_08112968: .4byte gUnknown_02024D1E
-_0811296C: .4byte 0x0006001c
-_08112970: .4byte 0x00007fff
-_08112974:
- ldr r0, _0811299C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
-_0811297C:
- cmp r0, 0
- beq _08112982
- b _08112FD0
-_08112982:
- mov r0, r8
- adds r4, r0, r7
- lsls r4, 3
- adds r4, r6
- ldrh r0, [r4, 0xE]
- movs r1, 0
- bl PlayCry1
-_08112992:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08112FD0
- .align 2, 0
-_0811299C: .4byte gPaletteFade
-_081129A0:
- bl IsCryFinished
- lsls r0, 24
- cmp r0, 0
- bne _081129AC
- b _08112FD0
-_081129AC:
- ldr r4, _081129D8
- ldr r1, _081129DC
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, _081129E0
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _081129E4
- mov r2, r8
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x1E]
- b _08112F9A
- .align 2, 0
-_081129D8: .4byte gStringVar4
-_081129DC: .4byte gUnknown_08400C8D
-_081129E0: .4byte gUnknown_03004210
-_081129E4: .4byte gTasks
-_081129E8:
- ldr r4, _08112A38
- ldrh r0, [r4, 0x16]
- cmp r0, 0
- beq _081129F2
- b _08112FD0
-_081129F2:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _081129FE
- b _08112FD0
-_081129FE:
- bl sub_8024CEC
- ldr r0, _08112A3C
- bl PlayFanfare
- ldr r0, _08112A40
- ldr r0, [r0, 0xC]
- bl get_battle_strings_
- ldr r1, _08112A44
- movs r0, 0xF
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08112A48
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- movs r0, 0x40
- strh r0, [r1, 0x14]
-_08112A2E:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _08112FD0
- .align 2, 0
-_08112A38: .4byte gUnknown_03004210
-_08112A3C: .4byte 0x0000016f
-_08112A40: .4byte gUnknown_08400F8C
-_08112A44: .4byte gUnknown_020238CC
-_08112A48: .4byte gTasks
-_08112A4C:
- ldr r0, _08112A80
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- beq _08112A56
- b _08112FD0
-_08112A56:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08112A62
- b _08112FD0
-_08112A62:
- ldr r0, _08112A84
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x14]
- subs r0, 0x1
- strh r0, [r1, 0x14]
- lsls r0, 16
- cmp r0, 0
- beq _08112A7A
- b _08112FD0
-_08112A7A:
- movs r0, 0xE
- strh r0, [r1, 0x8]
- b _08112FD0
- .align 2, 0
-_08112A80: .4byte gUnknown_03004210
-_08112A84: .4byte gTasks
-_08112A88:
- mov r3, r8
- adds r0, r3, r7
- lsls r0, 3
- adds r0, r6
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0xB
- bls _08112A9A
- b _08112FD0
-_08112A9A:
- lsls r0, 2
- ldr r1, _08112AA4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08112AA4: .4byte _08112AA8
- .align 2, 0
-_08112AA8:
- .4byte _08112AD8
- .4byte _08112B2C
- .4byte _08112B7C
- .4byte _08112BC0
- .4byte _08112C0C
- .4byte _08112D3C
- .4byte _08112D8C
- .4byte _08112E98
- .4byte _08112EE8
- .4byte _08112F38
- .4byte _08112F78
- .4byte _08112FB0
-_08112AD8:
- ldr r4, _08112B1C
- ldrh r0, [r4, 0x16]
- cmp r0, 0
- beq _08112AE2
- b _08112FD0
-_08112AE2:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08112AEE
- b _08112FD0
-_08112AEE:
- bl sub_8024CEC
- ldr r0, _08112B20
- ldr r0, [r0, 0x10]
- bl get_battle_strings_
- ldr r1, _08112B24
- movs r0, 0xF
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08112B28
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- b _08112FCE
- .align 2, 0
-_08112B1C: .4byte gUnknown_03004210
-_08112B20: .4byte gUnknown_08400F8C
-_08112B24: .4byte gUnknown_020238CC
-_08112B28: .4byte gTasks
-_08112B2C:
- ldr r4, _08112B6C
- ldrh r0, [r4, 0x16]
- cmp r0, 0
- beq _08112B36
- b _08112FD0
-_08112B36:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08112B42
- b _08112FD0
-_08112B42:
- ldr r0, _08112B70
- ldr r0, [r0, 0x14]
- bl get_battle_strings_
- ldr r1, _08112B74
- movs r0, 0xF
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08112B78
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- b _08112FCE
- .align 2, 0
-_08112B6C: .4byte gUnknown_03004210
-_08112B70: .4byte gUnknown_08400F8C
-_08112B74: .4byte gUnknown_020238CC
-_08112B78: .4byte gTasks
-_08112B7C:
- ldr r4, _08112BF8
- ldrh r0, [r4, 0x16]
- cmp r0, 0
- beq _08112B86
- b _08112FD0
-_08112B86:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _08112BC0
- ldr r0, _08112BFC
- ldr r0, [r0, 0x18]
- bl get_battle_strings_
- ldr r1, _08112C00
- movs r0, 0xF
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08112C04
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- movs r0, 0x5
- strh r0, [r1, 0x1A]
- movs r0, 0x9
- strh r0, [r1, 0x1C]
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- strh r0, [r1, 0x18]
-_08112BC0:
- ldr r0, _08112BF8
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- beq _08112BCA
- b _08112FD0
-_08112BCA:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08112BD6
- b _08112FD0
-_08112BD6:
- bl sub_8023A80
- ldr r0, _08112C04
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r1, 0x18]
- ldr r0, _08112C08
- strb r2, [r0, 0x1]
- bl sub_802BC6C
- b _08112FD0
- .align 2, 0
-_08112BF8: .4byte gUnknown_03004210
-_08112BFC: .4byte gUnknown_08400F8C
-_08112C00: .4byte gUnknown_020238CC
-_08112C04: .4byte gTasks
-_08112C08: .4byte gUnknown_02024D1E
-_08112C0C:
- ldr r0, _08112CA4
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08112C32
- ldr r4, _08112CA8
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _08112C32
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08112C32:
- ldr r0, _08112CA4
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08112C58
- ldr r4, _08112CA8
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08112C58
- movs r0, 0x5
- bl PlaySE
- bl nullsub_6
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_802BC6C
-_08112C58:
- ldr r0, _08112CA4
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08112CE2
- bl sub_8023AD8
- ldr r0, _08112CAC
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- bl get_battle_strings_
- ldr r0, _08112CB0
- ldr r1, _08112CB4
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08112CA8
- ldrb r2, [r0, 0x1]
- cmp r2, 0
- beq _08112CBC
- ldr r0, _08112CB8
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1C]
- strh r0, [r1, 0x18]
- b _08112CE2
- .align 2, 0
-_08112CA4: .4byte gMain
-_08112CA8: .4byte gUnknown_02024D1E
-_08112CAC: .4byte gUnknown_08400F8C
-_08112CB0: .4byte gUnknown_03004210
-_08112CB4: .4byte gUnknown_020238CC
-_08112CB8: .4byte gTasks
-_08112CBC:
- ldr r0, _08112D28
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1A]
- strh r0, [r1, 0x18]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _08112CE2
- movs r0, 0x1
- negs r0, r0
- str r2, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_08112CE2:
- ldr r0, _08112D2C
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08112CF0
- b _08112FD0
-_08112CF0:
- bl sub_8023AD8
- ldr r0, _08112D30
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- bl get_battle_strings_
- ldr r0, _08112D34
- ldr r1, _08112D38
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08112D28
- mov r2, r8
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x1C]
- strh r1, [r0, 0x18]
- b _08112FD0
- .align 2, 0
-_08112D28: .4byte gTasks
-_08112D2C: .4byte gMain
-_08112D30: .4byte gUnknown_08400F8C
-_08112D34: .4byte gUnknown_03004210
-_08112D38: .4byte gUnknown_020238CC
-_08112D3C:
- ldr r0, _08112D78
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08112D4A
- b _08112FD0
-_08112D4A:
- ldr r0, _08112D7C
- mov r3, r8
- adds r5, r3, r7
- lsls r5, 3
- adds r5, r6
- ldrh r1, [r5, 0x20]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _08112D80
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _08112D84
- ldr r4, _08112D88
- ldrh r4, [r4]
- str r4, [sp]
- bl sub_809D9F0
- ldrh r0, [r5, 0x18]
- adds r0, 0x1
- strh r0, [r5, 0x18]
- b _08112FD0
- .align 2, 0
-_08112D78: .4byte gPaletteFade
-_08112D7C: .4byte gPlayerParty
-_08112D80: .4byte gPlayerPartyCount
-_08112D84: .4byte sub_8111C90
-_08112D88: .4byte word_2024E82
-_08112D8C:
- ldr r0, _08112DC0
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08112D9A
- b _08112FD0
-_08112D9A:
- ldr r1, [r4, 0x4]
- ldr r0, _08112DC4
- cmp r1, r0
- beq _08112DA4
- b _08112FD0
-_08112DA4:
- bl sub_809FA30
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x4
- bne _08112DCC
- ldr r0, _08112DC8
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- movs r0, 0x9
- b _08112FCE
- .align 2, 0
-_08112DC0: .4byte gPaletteFade
-_08112DC4: .4byte sub_8112270
-_08112DC8: .4byte gTasks
-_08112DCC:
- adds r1, r6, 0
- adds r1, 0xD
- mov r0, r9
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl sub_8040A00
- cmp r0, 0
- beq _08112E24
- ldr r0, _08112E10
- ldr r3, _08112E14
- adds r0, r3
- ldr r0, [r0]
- bl get_battle_strings_
- ldr r0, _08112E18
- ldr r1, _08112E1C
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08112E20
- mov r2, r8
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0xB
- strh r1, [r0, 0x18]
- b _08112FD0
- .align 2, 0
-_08112E10: .4byte gUnknown_08400F8C
-_08112E14: .4byte 0x000004cc
-_08112E18: .4byte gUnknown_03004210
-_08112E1C: .4byte gUnknown_020238CC
-_08112E20: .4byte gTasks
-_08112E24:
- ldr r1, _08112E80
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- strb r4, [r1, 0x2]
- lsrs r0, r4, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- lsls r4, r6, 24
- lsrs r4, 24
- mov r0, r9
- adds r1, r4, 0
- bl RemoveMonPPBonus
- ldr r0, _08112E84
- ldrh r1, [r0]
- mov r0, r9
- adds r2, r4, 0
- bl SetMonMoveSlot
- ldr r0, _08112E88
- movs r3, 0xCF
- lsls r3, 2
- adds r0, r3
- ldr r0, [r0]
- bl get_battle_strings_
- ldr r0, _08112E8C
- ldr r1, _08112E90
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08112E94
- mov r2, r8
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- b _08112FCE
- .align 2, 0
-_08112E80: .4byte gUnknown_03004290
-_08112E84: .4byte word_2024E82
-_08112E88: .4byte gUnknown_08400F8C
-_08112E8C: .4byte gUnknown_03004210
-_08112E90: .4byte gUnknown_020238CC
-_08112E94: .4byte gTasks
-_08112E98:
- ldr r4, _08112ED8
- ldrh r0, [r4, 0x16]
- cmp r0, 0
- beq _08112EA2
- b _08112FD0
-_08112EA2:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08112EAE
- b _08112FD0
-_08112EAE:
- ldr r0, _08112EDC
- ldr r0, [r0, 0x1C]
- bl get_battle_strings_
- ldr r1, _08112EE0
- movs r0, 0xF
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08112EE4
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- b _08112FCE
- .align 2, 0
-_08112ED8: .4byte gUnknown_03004210
-_08112EDC: .4byte gUnknown_08400F8C
-_08112EE0: .4byte gUnknown_020238CC
-_08112EE4: .4byte gTasks
-_08112EE8:
- ldr r4, _08112F28
- ldrh r0, [r4, 0x16]
- cmp r0, 0
- bne _08112FD0
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _08112FD0
- ldr r0, _08112F2C
- movs r1, 0xD0
- lsls r1, 2
- adds r0, r1
- ldr r0, [r0]
- bl get_battle_strings_
- ldr r1, _08112F30
- movs r0, 0xF
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08112F34
- mov r2, r8
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0x13
- strh r1, [r0, 0x8]
- b _08112FD0
- .align 2, 0
-_08112F28: .4byte gUnknown_03004210
-_08112F2C: .4byte gUnknown_08400F8C
-_08112F30: .4byte gUnknown_020238CC
-_08112F34: .4byte gTasks
-_08112F38:
- ldr r0, _08112F68
- ldr r0, [r0, 0x20]
- bl get_battle_strings_
- ldr r0, _08112F6C
- ldr r1, _08112F70
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08112F74
- mov r3, r8
- adds r0, r3, r7
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0xA
- strh r1, [r0, 0x1A]
- strh r2, [r0, 0x1C]
- movs r1, 0x3
- strh r1, [r0, 0x18]
- b _08112FD0
- .align 2, 0
-_08112F68: .4byte gUnknown_08400F8C
-_08112F6C: .4byte gUnknown_03004210
-_08112F70: .4byte gUnknown_020238CC
-_08112F74: .4byte gTasks
-_08112F78:
- ldr r0, _08112FA0
- ldr r0, [r0, 0x24]
- bl get_battle_strings_
- ldr r0, _08112FA4
- ldr r1, _08112FA8
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08112FAC
- mov r2, r8
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
-_08112F9A:
- movs r1, 0xE
- strh r1, [r0, 0x8]
- b _08112FD0
- .align 2, 0
-_08112FA0: .4byte gUnknown_08400F8C
-_08112FA4: .4byte gUnknown_03004210
-_08112FA8: .4byte gUnknown_020238CC
-_08112FAC: .4byte gTasks
-_08112FB0:
- ldr r0, _08112FE0
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- bne _08112FD0
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _08112FD0
- ldr r0, _08112FE4
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- movs r0, 0x5
-_08112FCE:
- strh r0, [r1, 0x18]
-_08112FD0:
- add sp, 0x18
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08112FE0: .4byte gUnknown_03004210
-_08112FE4: .4byte gTasks
- thumb_func_end sub_811240C
-
- thumb_func_start sub_8112FE8
-sub_8112FE8: @ 8112FE8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _0811302C
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r2
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- mov r8, r0
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- lsls r0, 16
- mov r3, r8
- orrs r3, r0
- mov r8, r3
- movs r3, 0x8
- ldrsh r0, [r1, r3]
- adds r6, r2, 0
- cmp r0, 0x11
- bls _08113020
- bl _08113B3A
-_08113020:
- lsls r0, 2
- ldr r1, _08113030
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0811302C: .4byte gTasks
-_08113030: .4byte _08113034
- .align 2, 0
-_08113034:
- .4byte _0811307C
- .4byte _081130B8
- .4byte _081130DC
- .4byte _0811310C
- .4byte _0811314C
- .4byte _0811318C
- .4byte _081131C8
- .4byte _081131F4
- .4byte _0811322C
- .4byte _08113248
- .4byte _08113274
- .4byte _081132A8
- .4byte _081132F8
- .4byte _081133A8
- .4byte _0811346C
- .4byte _08113490
- .4byte _081134F8
- .4byte _08113538
-_0811307C:
- ldr r4, _081130A8
- ldr r1, _081130AC
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, _081130B0
- ldr r1, [r0]
- adds r0, r1, 0x4
- adds r1, 0x34
- ldrb r2, [r1]
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _081130B4
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- b _08113298
- .align 2, 0
-_081130A8: .4byte gStringVar4
-_081130AC: .4byte gUnknown_08400C4A
-_081130B0: .4byte gUnknown_03004828
-_081130B4: .4byte gTasks
-_081130B8:
- ldr r0, _081130D8
- ldr r0, [r0]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _081130C6
- bl _08113B3A
-_081130C6:
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r6
- ldrh r0, [r4, 0xE]
- movs r1, 0
- bl PlayCry1
- b _081132E2
- .align 2, 0
-_081130D8: .4byte gUnknown_03004828
-_081130DC:
- bl IsCryFinished
- lsls r0, 24
- cmp r0, 0
- bne _081130EA
- bl _08113B3A
-_081130EA:
- ldr r0, _08113104
- bl m4aSongNumStop
- movs r0, 0xBC
- lsls r0, 1
- bl PlaySE
- ldr r1, _08113108
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- b _08113298
- .align 2, 0
-_08113104: .4byte 0x00000179
-_08113108: .4byte gTasks
-_0811310C:
- bl IsSEPlaying
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _0811311C
- bl _08113B3A
-_0811311C:
- ldr r0, _08113144
- bl PlayBGM
- ldr r1, _08113148
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- str r5, [sp]
- movs r0, 0x1C
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- bl _08113B3A
- .align 2, 0
-_08113144: .4byte 0x00000179
-_08113148: .4byte gTasks
-_0811314C:
- ldr r0, _08113180
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0811315C
- bl _08113B3A
-_0811315C:
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x9A
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0x11
- bl sub_8149970
- ldr r1, _08113184
- strb r0, [r1, 0x2]
- ldr r1, _08113188
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- b _08113298
- .align 2, 0
-_08113180: .4byte gPaletteFade
-_08113184: .4byte gUnknown_02024D1E
-_08113188: .4byte gTasks
-_0811318C:
- ldr r4, _081131C0
- ldrb r0, [r4, 0x2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r6
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _081131A2
- bl _08113B3A
-_081131A2:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r6
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- ldr r1, _081131C4
- movs r0, 0x1
- strb r0, [r1, 0x3]
- bl sub_8149A90
- strb r0, [r4, 0x2]
- bl _08113B3A
- .align 2, 0
-_081131C0: .4byte gUnknown_02024D1E
-_081131C4: .4byte 0x02014800
-_081131C8:
- ldr r4, _081131EC
- ldrb r0, [r4, 0x2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r6
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _081131DE
- bl _08113B3A
-_081131DE:
- ldr r1, _081131F0
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- bl sub_8149E7C
- strb r0, [r4, 0x2]
- b _08113290
- .align 2, 0
-_081131EC: .4byte gUnknown_02024D1E
-_081131F0: .4byte 0x02014800
-_081131F4:
- ldr r1, _08113224
- ldrb r0, [r1, 0x3]
- subs r0, 0x1
- strb r0, [r1, 0x3]
- lsls r0, 24
- cmp r0, 0
- beq _08113206
- bl _08113B3A
-_08113206:
- movs r0, 0x3
- strb r0, [r1, 0x3]
- ldr r0, _08113228
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _08113220
- bl _08113B3A
-_08113220:
- b _08113290
- .align 2, 0
-_08113224: .4byte 0x02014800
-_08113228: .4byte gUnknown_02024D1E
-_0811322C:
- bl sub_8149B44
- ldr r1, _08113240
- strb r0, [r1, 0x2]
- ldr r1, _08113244
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- b _08113298
- .align 2, 0
-_08113240: .4byte gUnknown_02024D1E
-_08113244: .4byte gTasks
-_08113248:
- ldr r5, _08113270
- ldrb r0, [r5, 0x2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r6
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- beq _0811325E
- bl _08113B3A
-_0811325E:
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r6
- ldrh r0, [r4, 0x10]
- bl sub_8149D5C
- strb r0, [r5, 0x2]
- b _081132E2
- .align 2, 0
-_08113270: .4byte gUnknown_02024D1E
-_08113274:
- ldr r0, _081132A4
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- beq _0811328A
- bl _08113B3A
-_0811328A:
- movs r0, 0x21
- bl PlaySE
-_08113290:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r6
-_08113298:
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- bl _08113B3A
- .align 2, 0
-_081132A4: .4byte gUnknown_02024D1E
-_081132A8:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _081132B6
- bl _08113B3A
-_081132B6:
- ldr r0, _081132EC
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0x10]
- movs r1, 0
- bl PlayCry1
- ldr r0, _081132F0
- ldr r1, _081132F4
- movs r2, 0x60
- bl memcpy
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_081132E2:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- bl _08113B3A
- .align 2, 0
-_081132EC: .4byte gTasks
-_081132F0: .4byte gPlttBufferUnfaded + 0x40
-_081132F4: .4byte 0x02009000
-_081132F8:
- bl IsCryFinished
- lsls r0, 24
- cmp r0, 0
- bne _08113306
- bl _08113B3A
-_08113306:
- ldr r0, _08113390
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08113316
- bl _08113B3A
-_08113316:
- ldr r4, _08113394
- ldr r1, _08113398
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r0, _0811339C
- ldr r1, [r0]
- adds r0, r1, 0x4
- adds r1, 0x34
- ldrb r2, [r1]
- movs r1, 0xF
- str r1, [sp]
- adds r1, r4, 0
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _081133A0
- bl PlayFanfare
- ldr r2, _081133A4
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- adds r2, r1
- adds r2, 0x10
- mov r0, r8
- movs r1, 0xB
- bl SetMonData
- mov r0, r8
- bl CalculateMonStats
- ldrh r1, [r4, 0xE]
- ldrh r2, [r4, 0x10]
- mov r0, r8
- bl sub_803FB68
- ldrh r0, [r4, 0x10]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x2
- bl sub_8090D90
- ldrh r0, [r4, 0x10]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl sub_8090D90
- movs r0, 0xE
- bl sav12_xor_increment
- b _08113B3A
- .align 2, 0
-_08113390: .4byte gPaletteFade
-_08113394: .4byte gStringVar4
-_08113398: .4byte gUnknown_08400C60
-_0811339C: .4byte gUnknown_03004828
-_081133A0: .4byte 0x00000173
-_081133A4: .4byte gTasks
-_081133A8:
- ldr r0, _08113410
- ldr r0, [r0]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _081133B4
- b _08113B3A
-_081133B4:
- bl IsFanfareTaskInactive
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _081133C2
- b _08113B3A
-_081133C2:
- ldr r1, _08113414
- lsls r4, r7, 2
- adds r0, r4, r7
- lsls r0, 3
- adds r5, r0, r1
- ldrb r1, [r5, 0x14]
- mov r0, r8
- bl sub_803B7C8
- lsls r0, 16
- lsrs r6, r0, 16
- mov r9, r4
- cmp r6, 0
- beq _08113434
- movs r3, 0x1E
- ldrsh r2, [r5, r3]
- cmp r2, 0
- bne _08113434
- ldrh r1, [r5, 0x12]
- movs r0, 0x80
- orrs r0, r1
- strh r0, [r5, 0x12]
- strh r2, [r5, 0x14]
- strh r2, [r5, 0x18]
- mov r0, r8
- movs r1, 0x2
- add r2, sp, 0x4
- bl GetMonData
- ldr r0, _08113418
- add r1, sp, 0x4
- bl StringCopy10
- ldr r0, _0811341C
- cmp r6, r0
- bne _08113420
- movs r0, 0x11
- strh r0, [r5, 0x8]
- b _08113B3A
- .align 2, 0
-_08113410: .4byte gUnknown_03004828
-_08113414: .4byte gTasks
-_08113418: .4byte gUnknown_030041C0
-_0811341C: .4byte 0x0000ffff
-_08113420:
- ldr r0, _08113430
- cmp r6, r0
- bne _08113428
- b _08113B3A
-_08113428:
- movs r0, 0xF
- strh r0, [r5, 0x8]
- b _08113B3A
- .align 2, 0
-_08113430: .4byte 0x0000fffe
-_08113434:
- ldr r0, _0811345C
- bl PlayBGM
- ldr r0, _08113460
- ldr r2, [r0]
- adds r0, r2, 0x4
- ldr r1, _08113464
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08113468
- mov r2, r9
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- b _081134DC
- .align 2, 0
-_0811345C: .4byte 0x00000179
-_08113460: .4byte gUnknown_03004828
-_08113464: .4byte gOtherText_LinkStandby2
-_08113468: .4byte gTasks
-_0811346C:
- ldr r0, _08113488
- ldr r0, [r0]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _08113478
- b _08113B3A
-_08113478:
- adds r0, r7, 0
- bl DestroyTask
- ldr r0, _0811348C
- ldr r0, [r0]
- bl SetMainCallback2
- b _08113B3A
- .align 2, 0
-_08113488: .4byte gUnknown_03004828
-_0811348C: .4byte gUnknown_03005E94
-_08113490:
- ldr r4, _081134E4
- ldr r0, [r4]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _0811349C
- b _08113B3A
-_0811349C:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _081134A8
- b _08113B3A
-_081134A8:
- bl sub_8024CEC
- ldr r0, _081134E8
- bl PlayFanfare
- ldr r0, _081134EC
- ldr r0, [r0, 0xC]
- bl get_battle_strings_
- ldr r2, [r4]
- adds r0, r2, 0x4
- ldr r1, _081134F0
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _081134F4
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- movs r0, 0x40
- strh r0, [r1, 0x14]
-_081134DC:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _08113B3A
- .align 2, 0
-_081134E4: .4byte gUnknown_03004828
-_081134E8: .4byte 0x0000016f
-_081134EC: .4byte gUnknown_08400F8C
-_081134F0: .4byte gUnknown_020238CC
-_081134F4: .4byte gTasks
-_081134F8:
- ldr r0, _08113530
- ldr r0, [r0]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _08113504
- b _08113B3A
-_08113504:
- bl IsFanfareTaskInactive
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08113512
- b _08113B3A
-_08113512:
- ldr r0, _08113534
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x14]
- subs r0, 0x1
- strh r0, [r1, 0x14]
- lsls r0, 16
- cmp r0, 0
- beq _0811352A
- b _08113B3A
-_0811352A:
- movs r0, 0xD
- strh r0, [r1, 0x8]
- b _08113B3A
- .align 2, 0
-_08113530: .4byte gUnknown_03004828
-_08113534: .4byte gTasks
-_08113538:
- lsls r1, r7, 2
- adds r0, r1, r7
- lsls r0, 3
- adds r0, r6
- movs r3, 0x18
- ldrsh r0, [r0, r3]
- mov r9, r1
- cmp r0, 0xB
- bls _0811354C
- b _08113B3A
-_0811354C:
- lsls r0, 2
- ldr r1, _08113558
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08113558: .4byte _0811355C
- .align 2, 0
-_0811355C:
- .4byte _0811358C
- .4byte _081135E4
- .4byte _08113638
- .4byte _08113682
- .4byte _0811371C
- .4byte _0811387C
- .4byte _081138CC
- .4byte _081139E8
- .4byte _08113A3C
- .4byte _08113A90
- .4byte _08113AD8
- .4byte _08113B18
-_0811358C:
- ldr r4, _081135D4
- ldr r0, [r4]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _08113598
- b _08113B3A
-_08113598:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _081135A4
- b _08113B3A
-_081135A4:
- bl sub_8024CEC
- ldr r0, _081135D8
- ldr r0, [r0, 0x10]
- bl get_battle_strings_
- ldr r2, [r4]
- adds r0, r2, 0x4
- ldr r1, _081135DC
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _081135E0
- mov r2, r9
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- b _08113B38
- .align 2, 0
-_081135D4: .4byte gUnknown_03004828
-_081135D8: .4byte gUnknown_08400F8C
-_081135DC: .4byte gUnknown_020238CC
-_081135E0: .4byte gTasks
-_081135E4:
- ldr r4, _08113628
- ldr r0, [r4]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _081135F0
- b _08113B3A
-_081135F0:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _081135FC
- b _08113B3A
-_081135FC:
- ldr r0, _0811362C
- ldr r0, [r0, 0x14]
- bl get_battle_strings_
- ldr r2, [r4]
- adds r0, r2, 0x4
- ldr r1, _08113630
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08113634
- mov r3, r9
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- b _08113B38
- .align 2, 0
-_08113628: .4byte gUnknown_03004828
-_0811362C: .4byte gUnknown_08400F8C
-_08113630: .4byte gUnknown_020238CC
-_08113634: .4byte gTasks
-_08113638:
- ldr r4, _081136FC
- ldr r0, [r4]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _08113644
- b _08113B3A
-_08113644:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _08113682
- ldr r0, _08113700
- ldr r0, [r0, 0x18]
- bl get_battle_strings_
- ldr r2, [r4]
- adds r0, r2, 0x4
- ldr r1, _08113704
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08113708
- mov r2, r9
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- movs r0, 0x5
- strh r0, [r1, 0x1A]
- movs r0, 0x9
- strh r0, [r1, 0x1C]
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- strh r0, [r1, 0x18]
-_08113682:
- ldr r5, _081136FC
- ldr r0, [r5]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _0811368E
- b _08113B3A
-_0811368E:
- bl IsSEPlaying
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- beq _0811369C
- b _08113B3A
-_0811369C:
- ldr r0, [r5]
- adds r0, 0x4
- movs r1, 0xD
- str r1, [sp]
- movs r1, 0x18
- movs r2, 0x8
- movs r3, 0x1D
- bl DrawTextWindow
- ldr r4, _0811370C
- strb r6, [r4, 0x1]
- ldr r2, [r5]
- adds r0, r2, 0x4
- ldr r1, _08113710
- adds r2, 0x34
- ldrb r2, [r2]
- adds r2, 0x80
- movs r3, 0x9
- str r3, [sp]
- movs r3, 0x19
- bl InitWindow
- ldr r0, [r5]
- adds r0, 0x4
- bl sub_8002F44
- ldr r1, _08113714
- ldr r3, _08113718
- movs r0, 0x20
- str r0, [sp]
- movs r0, 0
- movs r2, 0xC
- bl sub_814A5C0
- bl sub_81150D8
- ldr r0, _08113708
- mov r3, r9
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- movs r2, 0
- strh r0, [r1, 0x18]
- strb r2, [r4, 0x1]
- b _08113B3A
- .align 2, 0
-_081136FC: .4byte gUnknown_03004828
-_08113700: .4byte gUnknown_08400F8C
-_08113704: .4byte gUnknown_020238CC
-_08113708: .4byte gTasks
-_0811370C: .4byte gUnknown_02024D1E
-_08113710: .4byte gOtherText_YesNoAndPlayer
-_08113714: .4byte 0x0000ffff
-_08113718: .4byte 0x00002d9f
-_0811371C:
- ldr r0, _081137CC
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08113742
- ldr r4, _081137D0
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _08113742
- movs r0, 0x5
- bl PlaySE
- bl nullsub_24
- movs r0, 0
- strb r0, [r4, 0x1]
- bl sub_81150D8
-_08113742:
- ldr r0, _081137CC
- ldrh r1, [r0, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08113768
- ldr r4, _081137D0
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08113768
- movs r0, 0x5
- bl PlaySE
- bl nullsub_24
- movs r0, 0x1
- strb r0, [r4, 0x1]
- bl sub_81150D8
-_08113768:
- ldr r0, _081137CC
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0811380A
- ldr r4, _081137D4
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0xD
- str r1, [sp]
- movs r1, 0x18
- movs r2, 0x8
- movs r3, 0x1D
- bl ZeroFillWindowRect
- bl sub_814A7FC
- ldr r0, _081137D8
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- bl get_battle_strings_
- ldr r2, [r4]
- adds r0, r2, 0x4
- ldr r1, _081137DC
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- movs r0, 0x5
- bl PlaySE
- ldr r0, _081137D0
- ldrb r2, [r0, 0x1]
- cmp r2, 0
- beq _081137E4
- ldr r0, _081137E0
- mov r2, r9
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1C]
- strh r0, [r1, 0x18]
- b _0811380A
- .align 2, 0
-_081137CC: .4byte gMain
-_081137D0: .4byte gUnknown_02024D1E
-_081137D4: .4byte gUnknown_03004828
-_081137D8: .4byte gUnknown_08400F8C
-_081137DC: .4byte gUnknown_020238CC
-_081137E0: .4byte gTasks
-_081137E4:
- ldr r0, _08113868
- mov r3, r9
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x1A]
- strh r0, [r1, 0x18]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0811380A
- movs r0, 0x1
- negs r0, r0
- str r2, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0811380A:
- ldr r0, _0811386C
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08113818
- b _08113B3A
-_08113818:
- ldr r4, _08113870
- ldr r0, [r4]
- adds r0, 0x4
- movs r1, 0xD
- str r1, [sp]
- movs r1, 0x18
- movs r2, 0x8
- movs r3, 0x1D
- bl ZeroFillWindowRect
- bl sub_814A7FC
- ldr r0, _08113874
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- bl get_battle_strings_
- ldr r2, [r4]
- adds r0, r2, 0x4
- ldr r1, _08113878
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08113868
- mov r2, r9
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x1C]
- strh r1, [r0, 0x18]
- b _08113B3A
- .align 2, 0
-_08113868: .4byte gTasks
-_0811386C: .4byte gMain
-_08113870: .4byte gUnknown_03004828
-_08113874: .4byte gUnknown_08400F8C
-_08113878: .4byte gUnknown_020238CC
-_0811387C:
- ldr r0, _081138B8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0811388A
- b _08113B3A
-_0811388A:
- ldr r0, _081138BC
- mov r3, r9
- adds r5, r3, r7
- lsls r5, 3
- adds r5, r6
- ldrh r1, [r5, 0x20]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _081138C0
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _081138C4
- ldr r4, _081138C8
- ldrh r4, [r4]
- str r4, [sp]
- bl sub_809D9F0
- ldrh r0, [r5, 0x18]
- adds r0, 0x1
- strh r0, [r5, 0x18]
- b _08113B3A
- .align 2, 0
-_081138B8: .4byte gPaletteFade
-_081138BC: .4byte gPlayerParty
-_081138C0: .4byte gPlayerPartyCount
-_081138C4: .4byte sub_8111E80
-_081138C8: .4byte word_2024E82
-_081138CC:
- ldr r0, _08113900
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081138DA
- b _08113B3A
-_081138DA:
- ldr r0, _08113904
- ldr r1, [r0, 0x4]
- ldr r0, _08113908
- cmp r1, r0
- beq _081138E6
- b _08113B3A
-_081138E6:
- bl sub_809FA30
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x4
- bne _08113910
- ldr r0, _0811390C
- mov r2, r9
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- movs r0, 0x9
- b _08113B38
- .align 2, 0
-_08113900: .4byte gPaletteFade
-_08113904: .4byte gMain
-_08113908: .4byte sub_8112290
-_0811390C: .4byte gTasks
-_08113910:
- adds r1, r6, 0
- adds r1, 0xD
- mov r0, r8
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl sub_8040A00
- cmp r0, 0
- beq _08113970
- ldr r0, _0811395C
- ldr r3, _08113960
- adds r0, r3
- ldr r0, [r0]
- bl get_battle_strings_
- ldr r0, _08113964
- ldr r2, [r0]
- adds r0, r2, 0x4
- ldr r1, _08113968
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _0811396C
- mov r2, r9
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0xB
- strh r1, [r0, 0x18]
- b _08113B3A
- .align 2, 0
-_0811395C: .4byte gUnknown_08400F8C
-_08113960: .4byte 0x000004cc
-_08113964: .4byte gUnknown_03004828
-_08113968: .4byte gUnknown_020238CC
-_0811396C: .4byte gTasks
-_08113970:
- ldr r1, _081139D0
- movs r0, 0xFD
- strb r0, [r1]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- strb r4, [r1, 0x2]
- lsrs r0, r4, 8
- strb r0, [r1, 0x3]
- movs r0, 0xFF
- strb r0, [r1, 0x4]
- lsls r4, r6, 24
- lsrs r4, 24
- mov r0, r8
- adds r1, r4, 0
- bl RemoveMonPPBonus
- ldr r0, _081139D4
- ldrh r1, [r0]
- mov r0, r8
- adds r2, r4, 0
- bl SetMonMoveSlot
- ldr r0, _081139D8
- movs r3, 0xCF
- lsls r3, 2
- adds r0, r3
- ldr r0, [r0]
- bl get_battle_strings_
- ldr r0, _081139DC
- ldr r2, [r0]
- adds r0, r2, 0x4
- ldr r1, _081139E0
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _081139E4
- mov r2, r9
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- b _08113B38
- .align 2, 0
-_081139D0: .4byte gUnknown_03004290
-_081139D4: .4byte word_2024E82
-_081139D8: .4byte gUnknown_08400F8C
-_081139DC: .4byte gUnknown_03004828
-_081139E0: .4byte gUnknown_020238CC
-_081139E4: .4byte gTasks
-_081139E8:
- ldr r4, _08113A2C
- ldr r0, [r4]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- beq _081139F4
- b _08113B3A
-_081139F4:
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08113A00
- b _08113B3A
-_08113A00:
- ldr r0, _08113A30
- ldr r0, [r0, 0x1C]
- bl get_battle_strings_
- ldr r2, [r4]
- adds r0, r2, 0x4
- ldr r1, _08113A34
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r0, _08113A38
- mov r3, r9
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x18]
- adds r0, 0x1
- b _08113B38
- .align 2, 0
-_08113A2C: .4byte gUnknown_03004828
-_08113A30: .4byte gUnknown_08400F8C
-_08113A34: .4byte gUnknown_020238CC
-_08113A38: .4byte gTasks
-_08113A3C:
- ldr r4, _08113A80
- ldr r0, [r4]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- bne _08113B3A
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _08113B3A
- ldr r0, _08113A84
- movs r1, 0xD0
- lsls r1, 2
- adds r0, r1
- ldr r0, [r0]
- bl get_battle_strings_
- ldr r2, [r4]
- adds r0, r2, 0x4
- ldr r1, _08113A88
- adds r2, 0x34
- ldrb r2, [r2]
- movs r4, 0xF
- str r4, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08113A8C
- mov r2, r9
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- strh r4, [r0, 0x8]
- b _08113B3A
- .align 2, 0
-_08113A80: .4byte gUnknown_03004828
-_08113A84: .4byte gUnknown_08400F8C
-_08113A88: .4byte gUnknown_020238CC
-_08113A8C: .4byte gTasks
-_08113A90:
- ldr r0, _08113AC8
- ldr r0, [r0, 0x20]
- bl get_battle_strings_
- ldr r0, _08113ACC
- ldr r2, [r0]
- adds r0, r2, 0x4
- ldr r1, _08113AD0
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08113AD4
- mov r3, r9
- adds r0, r3, r7
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0xA
- strh r1, [r0, 0x1A]
- strh r2, [r0, 0x1C]
- movs r1, 0x3
- strh r1, [r0, 0x18]
- b _08113B3A
- .align 2, 0
-_08113AC8: .4byte gUnknown_08400F8C
-_08113ACC: .4byte gUnknown_03004828
-_08113AD0: .4byte gUnknown_020238CC
-_08113AD4: .4byte gTasks
-_08113AD8:
- ldr r0, _08113B08
- ldr r0, [r0, 0x24]
- bl get_battle_strings_
- ldr r0, _08113B0C
- ldr r2, [r0]
- adds r0, r2, 0x4
- ldr r1, _08113B10
- adds r2, 0x34
- ldrb r2, [r2]
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _08113B14
- mov r2, r9
- adds r0, r2, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0xD
- strh r1, [r0, 0x8]
- b _08113B3A
- .align 2, 0
-_08113B08: .4byte gUnknown_08400F8C
-_08113B0C: .4byte gUnknown_03004828
-_08113B10: .4byte gUnknown_020238CC
-_08113B14: .4byte gTasks
-_08113B18:
- ldr r0, _08113B48
- ldr r0, [r0]
- ldrh r0, [r0, 0x1A]
- cmp r0, 0
- bne _08113B3A
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _08113B3A
- ldr r0, _08113B4C
- mov r3, r9
- adds r1, r3, r7
- lsls r1, 3
- adds r1, r0
- movs r0, 0x5
-_08113B38:
- strh r0, [r1, 0x18]
-_08113B3A:
- add sp, 0x18
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08113B48: .4byte gUnknown_03004828
-_08113B4C: .4byte gTasks
- thumb_func_end sub_8112FE8
-
- thumb_func_start unref_sub_8113B50
-unref_sub_8113B50: @ 8113B50
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x3C
- str r0, [sp]
- str r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- movs r1, 0
- str r1, [sp, 0x10]
- movs r2, 0
- str r2, [sp, 0x8]
- ldr r3, _08113C60
- mov r12, r3
- ldr r4, _08113C64
- add r4, r12
- mov r10, r4
- ldr r5, _08113C68
- add r5, r12
- mov r8, r5
-_08113B7C:
- adds r0, r3, 0
- adds r0, 0x84
- ldr r1, [sp, 0x8]
- adds r0, r1, r0
- strb r2, [r0]
- adds r0, r3, 0x4
- adds r0, r1, r0
- strb r2, [r0]
- ldr r4, _08113C6C
- adds r0, r1, r4
- strb r2, [r0]
- movs r6, 0
- lsls r1, 5
- mov r9, r1
- ldr r5, [sp, 0x8]
- lsls r4, r5, 6
-_08113B9C:
- mov r0, r9
- adds r1, r6, r0
- ldr r5, _08113C70
- adds r0, r1, r5
- strb r2, [r0]
- mov r5, r10
- adds r0, r1, r5
- strb r2, [r0]
- mov r5, r8
- adds r0, r1, r5
- strb r2, [r0]
- ldr r5, _08113C74
- adds r0, r1, r5
- strb r2, [r0]
- adds r7, r3, 0
- adds r7, 0xC4
- adds r0, r1, r7
- strb r2, [r0]
- ldr r5, _08113C78
- adds r0, r3, r5
- adds r0, r1, r0
- strb r2, [r0]
- ldr r5, _08113C7C
- adds r0, r3, r5
- adds r0, r1, r0
- strb r2, [r0]
- ldr r5, _08113C80
- adds r0, r3, r5
- adds r1, r0
- strb r2, [r1]
- lsls r1, r6, 1
- adds r1, r4
- ldr r5, _08113C84
- adds r0, r3, r5
- adds r0, r1, r0
- strh r2, [r0]
- ldr r5, _08113C88
- adds r0, r3, r5
- adds r0, r1, r0
- strh r2, [r0]
- ldr r5, _08113C8C
- adds r0, r3, r5
- adds r0, r1, r0
- strh r2, [r0]
- ldr r5, _08113C90
- adds r0, r3, r5
- adds r1, r0
- strh r2, [r1]
- adds r6, 0x1
- cmp r6, 0x1F
- ble _08113B9C
- ldr r0, [sp, 0x8]
- adds r0, 0x1
- str r0, [sp, 0x8]
- cmp r0, 0x3F
- ble _08113B7C
- ldr r1, _08113C94
- add r1, r12
- movs r0, 0x40
- strb r0, [r1]
- movs r1, 0
- mov r8, r1
- movs r2, 0
- str r2, [sp, 0x8]
- movs r3, 0x80
- lsls r3, 5
- adds r3, r7
- mov r12, r3
- movs r4, 0xC0
- lsls r4, 5
- adds r4, r7
- mov r9, r4
- movs r5, 0
- adds r4, r7, 0
- subs r4, 0xC0
-_08113C32:
- movs r3, 0
- ldr r2, [sp]
- add r2, r8
- movs r6, 0
- ldr r0, [sp, 0x8]
- adds r0, 0x1
- str r0, [sp, 0x30]
- ldr r1, [sp, 0x8]
- lsls r1, 7
- mov r10, r1
- movs r7, 0x1
- negs r7, r7
-_08113C4A:
- asrs r0, r6, 1
- lsls r0, 2
- add r0, r10
- ldr r1, _08113C98
- adds r0, r1
- str r2, [r0]
- cmp r3, 0
- beq _08113C9C
- cmp r3, 0x1
- beq _08113CC6
- b _08113CF4
- .align 2, 0
-_08113C60: .4byte 0x02014800
-_08113C64: .4byte 0x000018c4
-_08113C68: .4byte 0x000020c4
-_08113C6C: .4byte 0x02014844
-_08113C70: .4byte 0x020158c4
-_08113C74: .4byte 0x020170c4
-_08113C78: .4byte 0x000008c4
-_08113C7C: .4byte 0x000030c4
-_08113C80: .4byte 0x000038c4
-_08113C84: .4byte 0x000060c4
-_08113C88: .4byte 0x000070c4
-_08113C8C: .4byte 0x000080c4
-_08113C90: .4byte 0x000090c4
-_08113C94: .4byte 0x0000a0c4
-_08113C98: .4byte 0x020188c4
-_08113C9C:
- movs r0, 0x1
- ands r0, r6
- cmp r0, 0
- beq _08113CAA
- cmp r0, 0x1
- beq _08113CB0
- b _08113CF4
-_08113CAA:
- ldrb r1, [r2]
- movs r0, 0xF
- b _08113CB4
-_08113CB0:
- ldrb r1, [r2]
- movs r0, 0xF0
-_08113CB4:
- ands r0, r1
- cmp r0, 0
- beq _08113CF4
- ldrb r0, [r4]
- adds r0, r5
- add r0, r12
- strb r6, [r0]
- movs r3, 0x1
- b _08113CF4
-_08113CC6:
- adds r0, r6, 0
- ands r0, r3
- cmp r0, 0
- beq _08113CD4
- cmp r0, 0x1
- beq _08113CDA
- b _08113CF4
-_08113CD4:
- ldrb r1, [r2]
- movs r0, 0xF
- b _08113CDE
-_08113CDA:
- ldrb r1, [r2]
- movs r0, 0xF0
-_08113CDE:
- ands r0, r1
- cmp r0, 0
- bne _08113CF4
- ldrb r0, [r4]
- adds r0, r5
- add r0, r9
- strb r7, [r0]
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- movs r3, 0
-_08113CF4:
- adds r0, r6, 0x1
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08113D02
- adds r2, 0x1D
- b _08113D0C
-_08113D02:
- movs r0, 0x1
- ands r0, r6
- cmp r0, 0
- beq _08113D0C
- adds r2, 0x1
-_08113D0C:
- adds r7, 0x1
- adds r6, 0x1
- cmp r6, 0x3F
- ble _08113C4A
- cmp r3, 0
- beq _08113D26
- ldrb r0, [r4]
- adds r0, r5
- add r0, r9
- strb r6, [r0]
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_08113D26:
- movs r0, 0x7
- ldr r2, [sp, 0x30]
- ands r2, r0
- cmp r2, 0
- bne _08113D36
- movs r3, 0xE4
- add r8, r3
- b _08113D3A
-_08113D36:
- movs r0, 0x4
- add r8, r0
-_08113D3A:
- adds r5, 0x20
- adds r4, 0x1
- ldr r1, [sp, 0x8]
- adds r1, 0x1
- str r1, [sp, 0x8]
- cmp r1, 0x3F
- bgt _08113D4A
- b _08113C32
-_08113D4A:
- movs r2, 0
- mov r8, r2
- movs r3, 0
- str r3, [sp, 0x8]
- ldr r0, _08113D84
- movs r4, 0x82
- lsls r4, 6
- adds r4, r0
- mov r10, r4
- movs r5, 0xA2
- lsls r5, 6
- adds r7, r0, r5
- movs r5, 0
- adds r4, r0, 0
- movs r0, 0x1
- mov r9, r0
-_08113D6A:
- movs r3, 0
- ldr r2, [sp, 0x4]
- add r2, r8
- movs r6, 0
- ldr r1, [sp, 0x8]
- adds r1, 0x1
- str r1, [sp, 0x30]
-_08113D78:
- cmp r3, 0
- beq _08113D88
- cmp r3, 0x1
- beq _08113DB4
- b _08113DE4
- .align 2, 0
-_08113D84: .4byte 0x02014844
-_08113D88:
- adds r0, r6, 0
- mov r1, r9
- ands r0, r1
- cmp r0, 0
- beq _08113D98
- cmp r0, 0x1
- beq _08113D9E
- b _08113DE4
-_08113D98:
- ldrb r1, [r2]
- movs r0, 0xF
- b _08113DA2
-_08113D9E:
- ldrb r1, [r2]
- movs r0, 0xF0
-_08113DA2:
- ands r0, r1
- cmp r0, 0
- beq _08113DE4
- ldrb r0, [r4]
- adds r0, r5
- add r0, r10
- strb r6, [r0]
- movs r3, 0x1
- b _08113DE4
-_08113DB4:
- adds r0, r6, 0
- ands r0, r3
- cmp r0, 0
- beq _08113DC2
- cmp r0, 0x1
- beq _08113DC8
- b _08113DE4
-_08113DC2:
- ldrb r1, [r2]
- movs r0, 0xF
- b _08113DCC
-_08113DC8:
- ldrb r1, [r2]
- movs r0, 0xF0
-_08113DCC:
- ands r0, r1
- cmp r0, 0
- bne _08113DE4
- ldrb r0, [r4]
- adds r0, r5
- adds r0, r7
- subs r1, r6, 0x1
- strb r1, [r0]
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- movs r3, 0
-_08113DE4:
- adds r1, r6, 0x1
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08113DF2
- adds r2, 0x1D
- b _08113DFC
-_08113DF2:
- mov r0, r9
- ands r6, r0
- cmp r6, 0
- beq _08113DFC
- adds r2, 0x1
-_08113DFC:
- adds r6, r1, 0
- cmp r6, 0x3F
- ble _08113D78
- cmp r3, 0
- beq _08113E14
- ldrb r0, [r4]
- adds r0, r5
- adds r0, r7
- strb r6, [r0]
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_08113E14:
- movs r0, 0x7
- ldr r1, [sp, 0x30]
- ands r1, r0
- cmp r1, 0
- bne _08113E24
- movs r2, 0xE4
- add r8, r2
- b _08113E28
-_08113E24:
- movs r3, 0x4
- add r8, r3
-_08113E28:
- adds r5, 0x20
- adds r4, 0x1
- ldr r0, [sp, 0x8]
- adds r0, 0x1
- str r0, [sp, 0x8]
- cmp r0, 0x3F
- ble _08113D6A
- movs r1, 0
- str r1, [sp, 0x8]
-_08113E3A:
- ldr r3, [sp, 0x8]
- ldr r4, _08113EBC
- adds r2, r3, r4
- ldr r5, _08113EC0
- adds r1, r3, r5
- ldrb r0, [r2]
- adds r3, 0x1
- str r3, [sp, 0x30]
- ldrb r1, [r1]
- cmp r0, r1
- bcc _08113E52
- b _08113F9E
-_08113E52:
- movs r0, 0
- str r0, [sp, 0xC]
- ldrb r2, [r2]
- cmp r0, r2
- bge _08113F54
- ldr r0, _08113EC4
- adds r0, 0x4
- ldr r1, [sp, 0x8]
- adds r0, r1, r0
- str r0, [sp, 0x18]
-_08113E66:
- movs r2, 0x80
- lsls r2, 1
- str r2, [sp, 0x14]
- movs r6, 0
- ldr r3, [sp, 0x8]
- ldr r4, _08113EC0
- adds r0, r3, r4
- ldr r5, [sp, 0xC]
- adds r5, 0x1
- str r5, [sp, 0x34]
- ldrb r0, [r0]
- cmp r6, r0
- bge _08113F3E
- ldr r0, _08113EC4
- mov r10, r0
- lsls r0, r3, 5
- ldr r2, [sp, 0xC]
- adds r1, r2, r0
- mov r9, r0
- ldr r0, _08113EC4
- adds r0, 0xC4
- mov r3, r9
- adds r7, r3, r0
- mov r5, r9
- ldr r4, _08113EC4
- ldr r2, _08113EC8
- adds r0, r4, r2
- adds r1, r0
- mov r8, r1
- ldrb r3, [r1]
- str r3, [sp, 0x1C]
-_08113EA4:
- ldr r0, _08113ECC
- add r0, r10
- adds r0, r5, r0
- ldr r4, [sp, 0x1C]
- ldrb r1, [r0]
- cmp r4, r1
- bls _08113ED0
- mov r2, r8
- ldrb r1, [r2]
- ldrb r0, [r0]
- b _08113ED6
- .align 2, 0
-_08113EBC: .4byte 0x02014804
-_08113EC0: .4byte 0x02014844
-_08113EC4: .4byte 0x02014800
-_08113EC8: .4byte 0x000010c4
-_08113ECC: .4byte 0x000020c4
-_08113ED0:
- ldrb r1, [r0]
- mov r3, r8
- ldrb r0, [r3]
-_08113ED6:
- subs r3, r1, r0
- ldr r1, [sp, 0xC]
- add r1, r9
- ldr r0, _08113EFC
- add r0, r10
- adds r4, r1, r0
- ldr r0, _08113F00
- add r0, r10
- adds r2, r5, r0
- ldrb r0, [r4]
- ldr r1, _08113F04
- mov r12, r1
- ldrb r1, [r2]
- cmp r0, r1
- bls _08113F08
- adds r1, r0, 0
- ldrb r0, [r2]
- b _08113F0C
- .align 2, 0
-_08113EFC: .4byte 0x000018c4
-_08113F00: .4byte 0x000028c4
-_08113F04: .4byte 0x02014800
-_08113F08:
- ldrb r1, [r2]
- ldrb r0, [r4]
-_08113F0C:
- subs r1, r0
- adds r3, r1
- ldr r2, [sp, 0x14]
- cmp r2, r3
- ble _08113F2C
- ldrb r0, [r7]
- cmp r0, 0
- bne _08113F2C
- ldr r0, _08114050
- add r0, r12
- adds r0, r5, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _08113F2C
- str r6, [sp, 0x10]
- str r3, [sp, 0x14]
-_08113F2C:
- adds r7, 0x1
- adds r5, 0x1
- adds r6, 0x1
- ldr r3, [sp, 0x8]
- ldr r4, _08114054
- adds r0, r3, r4
- ldrb r0, [r0]
- cmp r6, r0
- blt _08113EA4
-_08113F3E:
- ldr r0, [sp, 0xC]
- ldr r1, [sp, 0x10]
- ldr r2, [sp, 0x8]
- bl sub_81141F0
- ldr r5, [sp, 0x34]
- str r5, [sp, 0xC]
- ldr r0, [sp, 0x18]
- ldrb r0, [r0]
- cmp r5, r0
- blt _08113E66
-_08113F54:
- movs r6, 0
- ldr r2, _08114058
- ldr r1, [sp, 0x8]
- ldr r3, _08114054
- adds r0, r1, r3
- adds r4, r2, 0
- mov r12, r4
- ldrb r0, [r0]
- cmp r6, r0
- bge _08113F9E
- mov r0, r12
- adds r0, 0x44
- adds r4, r1, r0
-_08113F6E:
- ldr r5, [sp, 0x8]
- lsls r0, r5, 5
- adds r1, r6, r0
- adds r0, r2, 0
- adds r0, 0xC4
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _08113F94
- ldr r3, _08114050
- adds r0, r2, r3
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _08113F94
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_811430C
-_08113F94:
- adds r6, 0x1
- ldr r2, _08114058
- ldrb r5, [r4]
- cmp r6, r5
- blt _08113F6E
-_08113F9E:
- ldr r0, [sp, 0x8]
- ldr r1, _0811405C
- adds r2, r0, r1
- ldr r3, _08114054
- adds r1, r0, r3
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08113FCC
- movs r6, 0
- ldrb r4, [r2]
- cmp r6, r4
- bge _08113FCC
- adds r4, r2, 0
-_08113FBA:
- adds r0, r6, 0
- adds r1, r6, 0
- ldr r2, [sp, 0x8]
- bl sub_81141F0
- adds r6, 0x1
- ldrb r5, [r4]
- cmp r6, r5
- blt _08113FBA
-_08113FCC:
- ldr r0, [sp, 0x8]
- ldr r1, _0811405C
- adds r2, r0, r1
- ldr r3, _08114054
- adds r1, r0, r3
- ldrb r0, [r2]
- ldr r4, _08114058
- ldrb r5, [r1]
- cmp r0, r5
- bhi _08113FE2
- b _081141C4
-_08113FE2:
- movs r0, 0
- str r0, [sp, 0x10]
- ldrb r1, [r1]
- cmp r0, r1
- blt _08113FEE
- b _08114104
-_08113FEE:
- str r2, [sp, 0x2C]
- ldr r1, [sp, 0x8]
- lsls r1, 5
- mov r9, r1
- adds r0, r4, 0
- adds r0, 0x44
- ldr r2, [sp, 0x8]
- adds r0, r2, r0
- str r0, [sp, 0x20]
- mov r3, r9
- str r3, [sp, 0x24]
-_08114004:
- movs r4, 0x80
- lsls r4, 1
- str r4, [sp, 0x14]
- movs r6, 0
- ldr r5, [sp, 0x10]
- adds r5, 0x1
- str r5, [sp, 0x38]
- ldr r0, [sp, 0x2C]
- ldrb r0, [r0]
- cmp r6, r0
- bge _081140C4
- ldr r1, [sp, 0x10]
- ldr r2, [sp, 0x24]
- adds r1, r2
- mov r10, r1
- ldr r0, _08114058
- adds r0, 0xC4
- adds r2, r0
- mov r8, r2
- ldr r7, [sp, 0x24]
- ldr r3, _08114058
- ldr r4, _08114060
- adds r0, r3, r4
- adds r5, r7, r0
- ldr r0, _08114064
- add r0, r10
- mov r12, r0
- ldrb r1, [r0]
- str r1, [sp, 0x28]
-_0811403E:
- ldrb r0, [r5]
- ldr r2, [sp, 0x28]
- cmp r0, r2
- bls _08114068
- adds r1, r0, 0
- mov r3, r12
- ldrb r0, [r3]
- b _0811406E
- .align 2, 0
-_08114050: .4byte 0x000008c4
-_08114054: .4byte 0x02014844
-_08114058: .4byte 0x02014800
-_0811405C: .4byte 0x02014804
-_08114060: .4byte 0x000010c4
-_08114064: .4byte 0x020168c4
-_08114068:
- mov r4, r12
- ldrb r1, [r4]
- ldrb r0, [r5]
-_0811406E:
- subs r3, r1, r0
- ldr r1, _0811408C
- ldr r2, _08114090
- adds r0, r1, r2
- adds r4, r7, r0
- ldr r2, _08114094
- add r2, r10
- ldrb r0, [r4]
- ldrb r1, [r2]
- cmp r0, r1
- bls _08114098
- adds r1, r0, 0
- ldrb r0, [r2]
- b _0811409C
- .align 2, 0
-_0811408C: .4byte 0x02014800
-_08114090: .4byte 0x000018c4
-_08114094: .4byte 0x020170c4
-_08114098:
- ldrb r1, [r2]
- ldrb r0, [r4]
-_0811409C:
- subs r1, r0
- adds r3, r1
- ldr r2, [sp, 0x14]
- cmp r2, r3
- ble _081140B2
- mov r4, r8
- ldrb r0, [r4]
- cmp r0, 0
- bne _081140B2
- str r6, [sp, 0xC]
- str r3, [sp, 0x14]
-_081140B2:
- movs r0, 0x1
- add r8, r0
- adds r7, 0x1
- adds r5, 0x1
- adds r6, 0x1
- ldr r1, [sp, 0x2C]
- ldrb r1, [r1]
- cmp r6, r1
- blt _0811403E
-_081140C4:
- ldr r3, [sp, 0xC]
- add r3, r9
- ldr r2, _08114164
- ldr r4, _08114168
- adds r1, r2, r4
- adds r1, r3, r1
- ldr r2, [sp, 0x10]
- add r2, r9
- ldr r5, _0811416C
- adds r0, r2, r5
- ldrb r0, [r0]
- strb r0, [r1]
- ldr r0, _08114164
- ldr r4, _08114170
- adds r1, r0, r4
- adds r1, r3, r1
- ldr r5, _08114174
- adds r2, r5
- ldrb r0, [r2]
- strb r0, [r1]
- ldr r0, _08114164
- adds r0, 0xC4
- adds r3, r0
- movs r0, 0x1
- strb r0, [r3]
- ldr r0, [sp, 0x38]
- str r0, [sp, 0x10]
- ldr r1, [sp, 0x20]
- ldrb r1, [r1]
- cmp r0, r1
- bge _08114104
- b _08114004
-_08114104:
- movs r6, 0
- ldr r4, _08114164
- ldr r2, [sp, 0x8]
- ldr r3, _08114178
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r6, r0
- bge _081141C4
- adds r7, r4, 0
- mov r9, r6
- movs r5, 0xC4
- adds r5, r7
- mov r8, r5
-_0811411E:
- ldr r1, [sp, 0x8]
- lsls r0, r1, 5
- adds r2, r6, r0
- ldr r3, _0811417C
- adds r0, r7, r3
- adds r0, r2
- mov r10, r0
- ldr r5, _08114168
- adds r0, r7, r5
- adds r0, r2, r0
- ldrb r0, [r0]
- mov r1, r10
- strb r0, [r1]
- ldr r3, _08114180
- adds r0, r7, r3
- adds r3, r2, r0
- ldr r5, _08114170
- adds r0, r7, r5
- adds r0, r2, r0
- ldrb r0, [r0]
- strb r0, [r3]
- mov r0, r8
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0
- beq _08114184
- mov r2, r9
- strb r2, [r1]
- adds r0, r6, 0
- adds r1, r6, 0
- ldr r2, [sp, 0x8]
- bl sub_81141F0
- b _081141B4
- .align 2, 0
-_08114164: .4byte 0x02014800
-_08114168: .4byte 0x000030c4
-_0811416C: .4byte 0x020168c4
-_08114170: .4byte 0x000038c4
-_08114174: .4byte 0x020170c4
-_08114178: .4byte 0x02014804
-_0811417C: .4byte 0x000020c4
-_08114180: .4byte 0x000028c4
-_08114184:
- ldr r5, _081141E0
- adds r1, r4, r5
- adds r1, r2, r1
- ldr r5, _081141E4
- adds r0, r4, r5
- adds r0, r2, r0
- ldrb r0, [r0]
- ldrb r2, [r1]
- subs r0, r2
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- adds r2, r0
- strb r2, [r3]
- mov r0, r10
- strb r2, [r0]
- ldrb r0, [r3]
- subs r0, 0x1
- strb r0, [r3]
- adds r0, r6, 0
- adds r1, r6, 0
- ldr r2, [sp, 0x8]
- bl sub_81141F0
-_081141B4:
- adds r6, 0x1
- ldr r4, _081141E8
- ldr r1, [sp, 0x8]
- ldr r2, _081141EC
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r6, r0
- blt _0811411E
-_081141C4:
- ldr r3, [sp, 0x30]
- str r3, [sp, 0x8]
- cmp r3, 0x3F
- bgt _081141CE
- b _08113E3A
-_081141CE:
- add sp, 0x3C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081141E0: .4byte 0x000010c4
-_081141E4: .4byte 0x000018c4
-_081141E8: .4byte 0x02014800
-_081141EC: .4byte 0x02014804
- thumb_func_end unref_sub_8113B50
-
- thumb_func_start sub_81141F0
-sub_81141F0: @ 81141F0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- mov r8, r1
- mov r9, r2
- ldr r3, _0811424C
- lsls r1, r2, 5
- mov r0, r8
- adds r4, r0, r1
- ldr r5, _08114250
- adds r2, r3, r5
- adds r2, r4, r2
- adds r1, r6, r1
- ldr r7, _08114254
- adds r0, r3, r7
- adds r5, r1, r0
- ldrb r0, [r5]
- strb r0, [r2]
- ldr r0, _08114258
- adds r2, r3, r0
- adds r2, r4, r2
- ldr r7, _0811425C
- adds r0, r3, r7
- adds r1, r0
- ldrb r0, [r1]
- strb r0, [r2]
- movs r7, 0
- ldr r1, _08114260
- adds r0, r3, r1
- adds r2, r4, r0
- ldrb r1, [r5]
- ldrb r0, [r2]
- mov r12, r3
- cmp r1, r0
- bcs _08114264
- mov r0, r12
- adds r0, 0xC4
- adds r0, r4, r0
- movs r1, 0x4
- strb r1, [r0]
- ldrb r1, [r2]
- ldrb r0, [r5]
- b _08114276
- .align 2, 0
-_0811424C: .4byte 0x02014800
-_08114250: .4byte 0x000030c4
-_08114254: .4byte 0x000010c4
-_08114258: .4byte 0x000038c4
-_0811425C: .4byte 0x000018c4
-_08114260: .4byte 0x000020c4
-_08114264:
- cmp r1, r0
- bls _08114278
- mov r0, r12
- adds r0, 0xC4
- adds r0, r4, r0
- movs r1, 0x1
- strb r1, [r0]
- ldrb r1, [r5]
- ldrb r0, [r2]
-_08114276:
- subs r7, r1, r0
-_08114278:
- mov r5, r8
- lsls r3, r5, 1
- mov r0, r9
- lsls r4, r0, 6
- adds r0, r3, r4
- ldr r1, _081142BC
- add r1, r12
- adds r0, r1
- lsls r1, r7, 4
- strh r1, [r0]
- movs r7, 0
- mov r1, r9
- lsls r2, r1, 5
- adds r1, r6, r2
- ldr r0, _081142C0
- add r0, r12
- adds r6, r1, r0
- adds r1, r5, r2
- ldr r0, _081142C4
- add r0, r12
- adds r5, r1, r0
- ldrb r2, [r6]
- ldrb r0, [r5]
- cmp r2, r0
- bcs _081142CC
- ldr r0, _081142C8
- add r0, r12
- adds r0, r1, r0
- movs r1, 0x3
- strb r1, [r0]
- ldrb r1, [r5]
- ldrb r0, [r6]
- b _081142DE
- .align 2, 0
-_081142BC: .4byte 0x000080c4
-_081142C0: .4byte 0x000018c4
-_081142C4: .4byte 0x000028c4
-_081142C8: .4byte 0x000008c4
-_081142CC:
- cmp r2, r0
- bls _081142E0
- ldr r0, _08114304
- add r0, r12
- adds r0, r1, r0
- movs r1, 0x2
- strb r1, [r0]
- ldrb r1, [r6]
- ldrb r0, [r5]
-_081142DE:
- subs r7, r1, r0
-_081142E0:
- adds r0, r3, r4
- ldr r1, _08114308
- add r1, r12
- adds r0, r1
- lsls r1, r7, 4
- strh r1, [r0]
- mov r1, r12
- adds r1, 0x84
- add r1, r9
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08114304: .4byte 0x000008c4
-_08114308: .4byte 0x000090c4
- thumb_func_end sub_81141F0
-
- thumb_func_start sub_811430C
-sub_811430C: @ 811430C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r5, _081143AC
- lsls r4, r1, 5
- adds r4, r0, r4
- ldr r2, _081143B0
- adds r2, r5
- mov r10, r2
- add r10, r4
- mov r3, r10
- ldrb r2, [r3]
- ldr r6, _081143B4
- adds r6, r5
- mov r8, r6
- add r8, r4
- mov r6, r8
- ldrb r3, [r6]
- subs r7, r2, r3
- ldr r2, _081143B8
- adds r6, r5, r2
- adds r6, r4, r6
- ldr r2, _081143BC
- adds r2, r5
- mov r9, r2
- add r9, r4
- lsrs r2, r7, 31
- adds r2, r7, r2
- asrs r2, 1
- adds r3, r2
- mov r2, r9
- strb r3, [r2]
- strb r3, [r6]
- adds r2, r5, 0
- adds r2, 0xC4
- adds r2, r4, r2
- movs r3, 0x5
- strb r3, [r2]
- ldr r3, _081143C0
- adds r2, r5, r3
- adds r4, r2
- movs r2, 0x7
- strb r2, [r4]
- adds r3, r5, 0
- adds r3, 0x84
- adds r3, r1, r3
- ldrb r2, [r3]
- adds r2, 0x1
- strb r2, [r3]
- ldrb r3, [r6]
- mov r4, r8
- ldrb r2, [r4]
- subs r7, r3, r2
- lsls r0, 1
- lsls r1, 6
- adds r0, r1
- ldr r6, _081143C4
- adds r1, r5, r6
- adds r1, r0, r1
- lsls r2, r7, 4
- strh r2, [r1]
- mov r1, r10
- ldrb r2, [r1]
- mov r3, r9
- ldrb r1, [r3]
- subs r7, r2, r1
- ldr r4, _081143C8
- adds r5, r4
- adds r0, r5
- lsls r1, r7, 4
- strh r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081143AC: .4byte 0x02014800
-_081143B0: .4byte 0x000028c4
-_081143B4: .4byte 0x000020c4
-_081143B8: .4byte 0x000030c4
-_081143BC: .4byte 0x000038c4
-_081143C0: .4byte 0x000008c4
-_081143C4: .4byte 0x000080c4
-_081143C8: .4byte 0x000090c4
- thumb_func_end sub_811430C
-
- thumb_func_start unref_sub_81143CC
-unref_sub_81143CC: @ 81143CC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- movs r0, 0x1
- str r0, [sp, 0x4]
- ldr r0, _08114408
- ldr r2, _0811440C
- adds r1, r0, r2
- ldrb r3, [r1]
- adds r4, r0, 0
- cmp r3, 0
- beq _081143EE
- subs r0, r3, 0x1
- strb r0, [r1]
-_081143EE:
- movs r5, 0
- str r5, [sp]
-_081143F2:
- movs r3, 0
- adds r2, r4, 0
- adds r0, r4, 0
- adds r0, 0x84
- ldr r1, [sp]
- adds r0, r1, r0
- adds r1, 0x1
- str r1, [sp, 0x8]
- bl _08114D84
- .align 2, 0
-_08114408: .4byte 0x02014800
-_0811440C: .4byte 0x0000a0c4
-_08114410:
- ldr r5, [sp]
- lsls r0, r5, 5
- adds r1, r3, r0
- adds r2, 0xC4
- adds r1, r2
- ldrb r2, [r1]
- mov r8, r0
- adds r0, r3, 0x1
- mov r10, r0
- cmp r2, 0xC
- bls _08114428
- b _081148D2
-_08114428:
- lsls r0, r2, 2
- ldr r1, _08114434
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08114434: .4byte _08114438
- .align 2, 0
-_08114438:
- .4byte _081148D2
- .4byte _0811446C
- .4byte _081144F0
- .4byte _0811457C
- .4byte _08114600
- .4byte _0811468C
- .4byte _081146C8
- .4byte _08114704
- .4byte _08114740
- .4byte _0811477C
- .4byte _081147D0
- .4byte _08114810
- .4byte _08114858
-_0811446C:
- movs r1, 0
- str r1, [sp, 0x4]
- lsls r0, r3, 1
- ldr r2, [sp]
- lsls r1, r2, 6
- adds r0, r1
- ldr r5, _081144E0
- adds r2, r4, r5
- adds r2, r0, r2
- ldr r5, _081144E4
- adds r1, r4, r5
- adds r0, r1
- ldrh r1, [r0]
- ldrh r0, [r2]
- adds r1, r0
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r5, r0, 8
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2]
- movs r6, 0
- adds r1, r3, 0x1
- mov r10, r1
- ldr r2, [sp, 0x4]
- cmp r2, r5
- blt _081144A6
- b _081148D2
-_081144A6:
- mov r9, r4
- mov r4, r8
- adds r7, r3, r4
- ldr r0, _081144E8
- add r0, r9
- adds r4, r7, r0
- ldr r0, _081144EC
- add r0, r9
- adds r2, r7, r0
-_081144B8:
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- ldrb r1, [r4]
- ldr r0, [sp]
- str r2, [sp, 0xC]
- str r3, [sp, 0x10]
- bl sub_8114DB4
- ldrb r0, [r4]
- ldr r2, [sp, 0xC]
- ldr r3, [sp, 0x10]
- ldrb r1, [r2]
- cmp r0, r1
- bne _081144D8
- b _081148A0
-_081144D8:
- adds r6, 0x1
- cmp r6, r5
- blt _081144B8
- b _081148D2
- .align 2, 0
-_081144E0: .4byte 0x000060c4
-_081144E4: .4byte 0x000080c4
-_081144E8: .4byte 0x000030c4
-_081144EC: .4byte 0x000020c4
-_081144F0:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r4, _08114568
- lsls r0, r3, 1
- ldr r5, [sp]
- lsls r1, r5, 6
- adds r0, r1
- ldr r1, _0811456C
- adds r2, r4, r1
- adds r2, r0, r2
- ldr r5, _08114570
- adds r1, r4, r5
- adds r0, r1
- ldrh r1, [r0]
- ldrh r0, [r2]
- adds r1, r0
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r5, r0, 8
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2]
- movs r6, 0
- adds r1, r3, 0x1
- mov r10, r1
- ldr r2, [sp, 0x4]
- cmp r2, r5
- blt _0811452C
- b _081148D2
-_0811452C:
- mov r9, r4
- mov r4, r8
- adds r7, r3, r4
- ldr r0, _08114574
- add r0, r9
- adds r4, r7, r0
- ldr r0, _08114578
- add r0, r9
- adds r2, r7, r0
-_0811453E:
- ldrb r0, [r4]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08114548
- b _081148B8
-_08114548:
- adds r1, r0, 0
- ldr r0, [sp]
- str r2, [sp, 0xC]
- str r3, [sp, 0x10]
- bl sub_8114DF0
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- adds r6, 0x1
- ldr r2, [sp, 0xC]
- ldr r3, [sp, 0x10]
- cmp r6, r5
- blt _0811453E
- b _081148D2
- .align 2, 0
-_08114568: .4byte 0x02014800
-_0811456C: .4byte 0x000060c4
-_08114570: .4byte 0x000080c4
-_08114574: .4byte 0x000030c4
-_08114578: .4byte 0x000020c4
-_0811457C:
- movs r2, 0
- str r2, [sp, 0x4]
- lsls r0, r3, 1
- ldr r5, [sp]
- lsls r1, r5, 6
- adds r0, r1
- ldr r1, _081145F0
- adds r2, r4, r1
- adds r2, r0, r2
- ldr r5, _081145F4
- adds r1, r4, r5
- adds r0, r1
- ldrh r1, [r0]
- ldrh r0, [r2]
- adds r1, r0
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r5, r0, 8
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2]
- movs r6, 0
- adds r1, r3, 0x1
- mov r10, r1
- ldr r2, [sp, 0x4]
- cmp r2, r5
- blt _081145B6
- b _081148D2
-_081145B6:
- mov r9, r4
- mov r4, r8
- adds r7, r3, r4
- ldr r0, _081145F8
- add r0, r9
- adds r4, r7, r0
- ldr r0, _081145FC
- add r0, r9
- adds r2, r7, r0
-_081145C8:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldrb r1, [r4]
- ldr r0, [sp]
- str r2, [sp, 0xC]
- str r3, [sp, 0x10]
- bl sub_8114DB4
- ldrb r0, [r4]
- ldr r2, [sp, 0xC]
- ldr r3, [sp, 0x10]
- ldrb r1, [r2]
- cmp r0, r1
- bne _081145E8
- b _081148AC
-_081145E8:
- adds r6, 0x1
- cmp r6, r5
- blt _081145C8
- b _081148D2
- .align 2, 0
-_081145F0: .4byte 0x000060c4
-_081145F4: .4byte 0x000080c4
-_081145F8: .4byte 0x000030c4
-_081145FC: .4byte 0x000020c4
-_08114600:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r4, _08114678
- lsls r0, r3, 1
- ldr r5, [sp]
- lsls r1, r5, 6
- adds r0, r1
- ldr r1, _0811467C
- adds r2, r4, r1
- adds r2, r0, r2
- ldr r5, _08114680
- adds r1, r4, r5
- adds r0, r1
- ldrh r1, [r0]
- ldrh r0, [r2]
- adds r1, r0
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r5, r0, 8
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2]
- movs r6, 0
- adds r1, r3, 0x1
- mov r10, r1
- ldr r2, [sp, 0x4]
- cmp r2, r5
- blt _0811463C
- b _081148D2
-_0811463C:
- mov r9, r4
- mov r4, r8
- adds r7, r3, r4
- ldr r0, _08114684
- add r0, r9
- adds r4, r7, r0
- ldr r0, _08114688
- add r0, r9
- adds r2, r7, r0
-_0811464E:
- ldrb r0, [r4]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08114658
- b _081148B8
-_08114658:
- adds r1, r0, 0
- ldr r0, [sp]
- str r2, [sp, 0xC]
- str r3, [sp, 0x10]
- bl sub_8114DF0
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- adds r6, 0x1
- ldr r2, [sp, 0xC]
- ldr r3, [sp, 0x10]
- cmp r6, r5
- blt _0811464E
- b _081148D2
- .align 2, 0
-_08114678: .4byte 0x02014800
-_0811467C: .4byte 0x000060c4
-_08114680: .4byte 0x000080c4
-_08114684: .4byte 0x000030c4
-_08114688: .4byte 0x000020c4
-_0811468C:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r5, _081146C0
- mov r0, r8
- adds r4, r3, r0
- ldr r1, _081146C4
- adds r0, r5, r1
- adds r0, r4, r0
- ldrb r1, [r0]
- ldr r0, [sp]
- str r3, [sp, 0x10]
- bl sub_8114E48
- lsls r0, 24
- ldr r3, [sp, 0x10]
- adds r2, r3, 0x1
- mov r10, r2
- cmp r0, 0
- bne _081146B4
- b _081148D2
-_081146B4:
- adds r0, r5, 0
- adds r0, 0xC4
- adds r0, r4, r0
- movs r1, 0x9
- strb r1, [r0]
- b _081148D2
- .align 2, 0
-_081146C0: .4byte 0x02014800
-_081146C4: .4byte 0x000030c4
-_081146C8:
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r5, _081146FC
- mov r0, r8
- adds r4, r3, r0
- ldr r1, _08114700
- adds r0, r5, r1
- adds r0, r4, r0
- ldrb r1, [r0]
- ldr r0, [sp]
- str r3, [sp, 0x10]
- bl sub_8114E48
- lsls r0, 24
- ldr r3, [sp, 0x10]
- adds r2, r3, 0x1
- mov r10, r2
- cmp r0, 0
- bne _081146F0
- b _081148D2
-_081146F0:
- adds r0, r5, 0
- adds r0, 0xC4
- adds r0, r4, r0
- movs r1, 0xA
- strb r1, [r0]
- b _081148D2
- .align 2, 0
-_081146FC: .4byte 0x02014800
-_08114700: .4byte 0x000030c4
-_08114704:
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r5, _08114738
- mov r0, r8
- adds r4, r3, r0
- ldr r1, _0811473C
- adds r0, r5, r1
- adds r0, r4, r0
- ldrb r1, [r0]
- ldr r0, [sp]
- str r3, [sp, 0x10]
- bl sub_8114E48
- lsls r0, 24
- ldr r3, [sp, 0x10]
- adds r2, r3, 0x1
- mov r10, r2
- cmp r0, 0
- bne _0811472C
- b _081148D2
-_0811472C:
- adds r0, r5, 0
- adds r0, 0xC4
- adds r0, r4, r0
- movs r1, 0xB
- strb r1, [r0]
- b _081148D2
- .align 2, 0
-_08114738: .4byte 0x02014800
-_0811473C: .4byte 0x000030c4
-_08114740:
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r5, _08114774
- mov r0, r8
- adds r4, r3, r0
- ldr r1, _08114778
- adds r0, r5, r1
- adds r0, r4, r0
- ldrb r1, [r0]
- ldr r0, [sp]
- str r3, [sp, 0x10]
- bl sub_8114E48
- lsls r0, 24
- ldr r3, [sp, 0x10]
- adds r2, r3, 0x1
- mov r10, r2
- cmp r0, 0
- bne _08114768
- b _081148D2
-_08114768:
- adds r0, r5, 0
- adds r0, 0xC4
- adds r0, r4, r0
- movs r1, 0xC
- strb r1, [r0]
- b _081148D2
- .align 2, 0
-_08114774: .4byte 0x02014800
-_08114778: .4byte 0x000030c4
-_0811477C:
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r6, _081147B4
- mov r0, r8
- adds r5, r3, r0
- ldr r1, _081147B8
- adds r4, r6, r1
- adds r4, r5, r4
- ldrb r1, [r4]
- ldr r0, [sp]
- str r3, [sp, 0x10]
- bl sub_8114DB4
- ldr r2, _081147BC
- adds r0, r6, r2
- adds r0, r5, r0
- ldrb r1, [r4]
- ldr r3, [sp, 0x10]
- ldrb r0, [r0]
- cmp r1, r0
- bne _081147C0
- adds r0, r6, 0
- adds r0, 0xC4
- adds r0, r5, r0
- mov r4, sp
- ldrb r4, [r4, 0x4]
- strb r4, [r0]
- b _08114844
- .align 2, 0
-_081147B4: .4byte 0x02014800
-_081147B8: .4byte 0x000030c4
-_081147BC: .4byte 0x000020c4
-_081147C0:
- adds r0, r6, 0
- adds r0, 0xC4
- adds r0, r5, r0
- movs r1, 0x1
- strb r1, [r0]
- adds r0, r3, 0x1
- mov r10, r0
- b _081148D2
-_081147D0:
- movs r1, 0
- str r1, [sp, 0x4]
- ldr r6, _08114804
- mov r2, r8
- adds r5, r3, r2
- ldr r0, _08114808
- adds r4, r6, r0
- adds r4, r5, r4
- ldrb r1, [r4]
- ldr r0, [sp]
- str r3, [sp, 0x10]
- bl sub_8114DF0
- ldr r1, _0811480C
- adds r0, r6, r1
- adds r0, r5, r0
- ldrb r1, [r4]
- ldr r3, [sp, 0x10]
- ldrb r0, [r0]
- cmp r1, r0
- beq _08114882
- adds r0, r6, 0
- adds r0, 0xC4
- adds r0, r5, r0
- movs r1, 0x2
- b _08114842
- .align 2, 0
-_08114804: .4byte 0x02014800
-_08114808: .4byte 0x000030c4
-_0811480C: .4byte 0x000020c4
-_08114810:
- movs r0, 0
- str r0, [sp, 0x4]
- ldr r6, _0811484C
- mov r1, r8
- adds r5, r3, r1
- ldr r2, _08114850
- adds r4, r6, r2
- adds r4, r5, r4
- ldrb r1, [r4]
- ldr r0, [sp]
- str r3, [sp, 0x10]
- bl sub_8114DB4
- ldr r1, _08114854
- adds r0, r6, r1
- adds r0, r5, r0
- ldrb r1, [r4]
- ldr r3, [sp, 0x10]
- ldrb r0, [r0]
- cmp r1, r0
- beq _08114882
- adds r0, r6, 0
- adds r0, 0xC4
- adds r0, r5, r0
- movs r1, 0x3
-_08114842:
- strb r1, [r0]
-_08114844:
- adds r5, r3, 0x1
- mov r10, r5
- b _081148D2
- .align 2, 0
-_0811484C: .4byte 0x02014800
-_08114850: .4byte 0x000030c4
-_08114854: .4byte 0x000020c4
-_08114858:
- movs r0, 0
- str r0, [sp, 0x4]
- ldr r6, _08114894
- mov r1, r8
- adds r5, r3, r1
- ldr r2, _08114898
- adds r4, r6, r2
- adds r4, r5, r4
- ldrb r1, [r4]
- ldr r0, [sp]
- str r3, [sp, 0x10]
- bl sub_8114DF0
- ldr r1, _0811489C
- adds r0, r6, r1
- adds r0, r5, r0
- ldrb r1, [r4]
- ldr r3, [sp, 0x10]
- ldrb r0, [r0]
- cmp r1, r0
- bne _081148C4
-_08114882:
- adds r0, r6, 0
- adds r0, 0xC4
- adds r0, r5, r0
- mov r2, sp
- ldrb r2, [r2, 0x4]
- strb r2, [r0]
- adds r4, r3, 0x1
- mov r10, r4
- b _081148D2
- .align 2, 0
-_08114894: .4byte 0x02014800
-_08114898: .4byte 0x000030c4
-_0811489C: .4byte 0x000020c4
-_081148A0:
- mov r0, r9
- adds r0, 0xC4
- adds r0, r7, r0
- movs r5, 0
- strb r5, [r0]
- b _081148D2
-_081148AC:
- mov r0, r9
- adds r0, 0xC4
- adds r0, r7, r0
- movs r1, 0
- strb r1, [r0]
- b _081148D2
-_081148B8:
- mov r0, r9
- adds r0, 0xC4
- adds r0, r7, r0
- movs r1, 0
- strb r1, [r0]
- b _081148D2
-_081148C4:
- adds r0, r6, 0
- adds r0, 0xC4
- adds r0, r5, r0
- movs r1, 0x4
- strb r1, [r0]
- adds r2, r3, 0x1
- mov r10, r2
-_081148D2:
- ldr r0, _081148F4
- mov r4, r8
- adds r1, r3, r4
- ldr r5, _081148F8
- adds r2, r0, r5
- adds r1, r2
- ldrb r1, [r1]
- adds r4, r0, 0
- cmp r1, 0xC
- bls _081148E8
- b _08114D76
-_081148E8:
- lsls r0, r1, 2
- ldr r1, _081148FC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081148F4: .4byte 0x02014800
-_081148F8: .4byte 0x000008c4
-_081148FC: .4byte _08114900
- .align 2, 0
-_08114900:
- .4byte _08114D76
- .4byte _08114934
- .4byte _081149B8
- .4byte _08114A3C
- .4byte _08114AC0
- .4byte _08114B44
- .4byte _08114B7C
- .4byte _08114BB4
- .4byte _08114BEC
- .4byte _08114C24
- .4byte _08114C78
- .4byte _08114CB8
- .4byte _08114CF8
-_08114934:
- movs r0, 0
- str r0, [sp, 0x4]
- lsls r0, r3, 1
- ldr r2, [sp]
- lsls r1, r2, 6
- adds r0, r1
- ldr r5, _081149A8
- adds r2, r4, r5
- adds r2, r0, r2
- ldr r5, _081149AC
- adds r1, r4, r5
- adds r0, r1
- ldrh r1, [r0]
- ldrh r0, [r2]
- adds r1, r0
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r5, r0, 8
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2]
- movs r6, 0
- ldr r1, [sp, 0x4]
- cmp r1, r5
- blt _0811496A
- b _08114D76
-_0811496A:
- mov r9, r4
- mov r2, r8
- adds r7, r3, r2
- ldr r0, _081149B0
- add r0, r9
- adds r4, r7, r0
- movs r3, 0
- ldr r0, _081149B4
- add r0, r9
- adds r2, r7, r0
-_0811497E:
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- ldrb r1, [r4]
- ldr r0, [sp]
- str r2, [sp, 0xC]
- str r3, [sp, 0x10]
- bl sub_8114DB4
- ldrb r0, [r4]
- ldr r2, [sp, 0xC]
- ldr r3, [sp, 0x10]
- ldrb r1, [r2]
- cmp r0, r1
- bne _0811499E
- b _08114D4C
-_0811499E:
- adds r6, 0x1
- cmp r6, r5
- blt _0811497E
- b _08114D76
- .align 2, 0
-_081149A8: .4byte 0x000070c4
-_081149AC: .4byte 0x000090c4
-_081149B0: .4byte 0x000038c4
-_081149B4: .4byte 0x000028c4
-_081149B8:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r4, _08114A28
- lsls r0, r3, 1
- ldr r5, [sp]
- lsls r1, r5, 6
- adds r0, r1
- ldr r1, _08114A2C
- adds r2, r4, r1
- adds r2, r0, r2
- ldr r5, _08114A30
- adds r1, r4, r5
- adds r0, r1
- ldrh r1, [r0]
- ldrh r0, [r2]
- adds r1, r0
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r5, r0, 8
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2]
- movs r6, 0
- ldr r1, [sp, 0x4]
- cmp r1, r5
- blt _081149F0
- b _08114D76
-_081149F0:
- mov r9, r4
- mov r2, r8
- adds r7, r3, r2
- ldr r0, _08114A34
- add r0, r9
- adds r4, r7, r0
- ldr r0, _08114A38
- add r0, r9
- adds r2, r7, r0
-_08114A02:
- ldrb r0, [r4]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08114A0C
- b _08114D3C
-_08114A0C:
- adds r1, r0, 0
- ldr r0, [sp]
- str r2, [sp, 0xC]
- bl sub_8114DF0
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- adds r6, 0x1
- ldr r2, [sp, 0xC]
- cmp r6, r5
- blt _08114A02
- b _08114D76
- .align 2, 0
-_08114A28: .4byte 0x02014800
-_08114A2C: .4byte 0x000070c4
-_08114A30: .4byte 0x000090c4
-_08114A34: .4byte 0x000038c4
-_08114A38: .4byte 0x000028c4
-_08114A3C:
- movs r2, 0
- str r2, [sp, 0x4]
- lsls r0, r3, 1
- ldr r5, [sp]
- lsls r1, r5, 6
- adds r0, r1
- ldr r1, _08114AB0
- adds r2, r4, r1
- adds r2, r0, r2
- ldr r5, _08114AB4
- adds r1, r4, r5
- adds r0, r1
- ldrh r1, [r0]
- ldrh r0, [r2]
- adds r1, r0
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r5, r0, 8
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2]
- movs r6, 0
- ldr r1, [sp, 0x4]
- cmp r1, r5
- blt _08114A72
- b _08114D76
-_08114A72:
- mov r9, r4
- mov r2, r8
- adds r7, r3, r2
- ldr r0, _08114AB8
- add r0, r9
- adds r4, r7, r0
- movs r3, 0
- ldr r0, _08114ABC
- add r0, r9
- adds r2, r7, r0
-_08114A86:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldrb r1, [r4]
- ldr r0, [sp]
- str r2, [sp, 0xC]
- str r3, [sp, 0x10]
- bl sub_8114DB4
- ldrb r0, [r4]
- ldr r2, [sp, 0xC]
- ldr r3, [sp, 0x10]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08114AA6
- b _08114D4C
-_08114AA6:
- adds r6, 0x1
- cmp r6, r5
- blt _08114A86
- b _08114D76
- .align 2, 0
-_08114AB0: .4byte 0x000070c4
-_08114AB4: .4byte 0x000090c4
-_08114AB8: .4byte 0x000038c4
-_08114ABC: .4byte 0x000028c4
-_08114AC0:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r4, _08114B30
- lsls r0, r3, 1
- ldr r5, [sp]
- lsls r1, r5, 6
- adds r0, r1
- ldr r1, _08114B34
- adds r2, r4, r1
- adds r2, r0, r2
- ldr r5, _08114B38
- adds r1, r4, r5
- adds r0, r1
- ldrh r1, [r0]
- ldrh r0, [r2]
- adds r1, r0
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r5, r0, 8
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r2]
- movs r6, 0
- ldr r1, [sp, 0x4]
- cmp r1, r5
- blt _08114AF8
- b _08114D76
-_08114AF8:
- mov r9, r4
- mov r2, r8
- adds r7, r3, r2
- ldr r0, _08114B3C
- add r0, r9
- adds r4, r7, r0
- ldr r0, _08114B40
- add r0, r9
- adds r2, r7, r0
-_08114B0A:
- ldrb r0, [r4]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08114B14
- b _08114D5C
-_08114B14:
- adds r1, r0, 0
- ldr r0, [sp]
- str r2, [sp, 0xC]
- bl sub_8114DF0
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- adds r6, 0x1
- ldr r2, [sp, 0xC]
- cmp r6, r5
- blt _08114B0A
- b _08114D76
- .align 2, 0
-_08114B30: .4byte 0x02014800
-_08114B34: .4byte 0x000070c4
-_08114B38: .4byte 0x000090c4
-_08114B3C: .4byte 0x000038c4
-_08114B40: .4byte 0x000028c4
-_08114B44:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r5, _08114B70
- mov r0, r8
- adds r4, r3, r0
- ldr r1, _08114B74
- adds r0, r5, r1
- adds r0, r4, r0
- ldrb r1, [r0]
- ldr r0, [sp]
- bl sub_8114E48
- lsls r0, 24
- cmp r0, 0
- bne _08114B64
- b _08114D76
-_08114B64:
- ldr r2, _08114B78
- adds r0, r5, r2
- adds r0, r4, r0
- movs r1, 0x9
- b _08114D74
- .align 2, 0
-_08114B70: .4byte 0x02014800
-_08114B74: .4byte 0x000038c4
-_08114B78: .4byte 0x000008c4
-_08114B7C:
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r5, _08114BA8
- mov r0, r8
- adds r4, r3, r0
- ldr r1, _08114BAC
- adds r0, r5, r1
- adds r0, r4, r0
- ldrb r1, [r0]
- ldr r0, [sp]
- bl sub_8114E48
- lsls r0, 24
- cmp r0, 0
- bne _08114B9C
- b _08114D76
-_08114B9C:
- ldr r2, _08114BB0
- adds r0, r5, r2
- adds r0, r4, r0
- movs r1, 0xA
- b _08114D74
- .align 2, 0
-_08114BA8: .4byte 0x02014800
-_08114BAC: .4byte 0x000038c4
-_08114BB0: .4byte 0x000008c4
-_08114BB4:
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r5, _08114BE0
- mov r0, r8
- adds r4, r3, r0
- ldr r1, _08114BE4
- adds r0, r5, r1
- adds r0, r4, r0
- ldrb r1, [r0]
- ldr r0, [sp]
- bl sub_8114E48
- lsls r0, 24
- cmp r0, 0
- bne _08114BD4
- b _08114D76
-_08114BD4:
- ldr r2, _08114BE8
- adds r0, r5, r2
- adds r0, r4, r0
- movs r1, 0xB
- b _08114D74
- .align 2, 0
-_08114BE0: .4byte 0x02014800
-_08114BE4: .4byte 0x000038c4
-_08114BE8: .4byte 0x000008c4
-_08114BEC:
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r5, _08114C18
- mov r0, r8
- adds r4, r3, r0
- ldr r1, _08114C1C
- adds r0, r5, r1
- adds r0, r4, r0
- ldrb r1, [r0]
- ldr r0, [sp]
- bl sub_8114E48
- lsls r0, 24
- cmp r0, 0
- bne _08114C0C
- b _08114D76
-_08114C0C:
- ldr r2, _08114C20
- adds r0, r5, r2
- adds r0, r4, r0
- movs r1, 0xC
- b _08114D74
- .align 2, 0
-_08114C18: .4byte 0x02014800
-_08114C1C: .4byte 0x000038c4
-_08114C20: .4byte 0x000008c4
-_08114C24:
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r6, _08114C58
- mov r0, r8
- adds r5, r3, r0
- ldr r1, _08114C5C
- adds r4, r6, r1
- adds r4, r5, r4
- ldrb r1, [r4]
- ldr r0, [sp]
- bl sub_8114DB4
- ldr r2, _08114C60
- adds r0, r6, r2
- adds r0, r5, r0
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bne _08114C68
- ldr r4, _08114C64
- adds r0, r6, r4
- adds r0, r5, r0
- mov r5, sp
- ldrb r5, [r5, 0x4]
- strb r5, [r0]
- b _08114D76
- .align 2, 0
-_08114C58: .4byte 0x02014800
-_08114C5C: .4byte 0x000038c4
-_08114C60: .4byte 0x000028c4
-_08114C64: .4byte 0x000008c4
-_08114C68:
- ldr r1, _08114C74
- adds r0, r6, r1
- adds r0, r5, r0
- movs r1, 0x1
- b _08114D74
- .align 2, 0
-_08114C74: .4byte 0x000008c4
-_08114C78:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r6, _08114CA8
- mov r4, r8
- adds r5, r3, r4
- ldr r0, _08114CAC
- adds r4, r6, r0
- adds r4, r5, r4
- ldrb r1, [r4]
- ldr r0, [sp]
- bl sub_8114DF0
- ldr r1, _08114CB0
- adds r0, r6, r1
- adds r0, r5, r0
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- beq _08114D1E
- ldr r1, _08114CB4
- adds r0, r6, r1
- adds r0, r5, r0
- movs r1, 0x2
- b _08114D74
- .align 2, 0
-_08114CA8: .4byte 0x02014800
-_08114CAC: .4byte 0x000038c4
-_08114CB0: .4byte 0x000028c4
-_08114CB4: .4byte 0x000008c4
-_08114CB8:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r6, _08114CE8
- mov r4, r8
- adds r5, r3, r4
- ldr r0, _08114CEC
- adds r4, r6, r0
- adds r4, r5, r4
- ldrb r1, [r4]
- ldr r0, [sp]
- bl sub_8114DB4
- ldr r1, _08114CF0
- adds r0, r6, r1
- adds r0, r5, r0
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- beq _08114D1E
- ldr r1, _08114CF4
- adds r0, r6, r1
- adds r0, r5, r0
- movs r1, 0x3
- b _08114D74
- .align 2, 0
-_08114CE8: .4byte 0x02014800
-_08114CEC: .4byte 0x000038c4
-_08114CF0: .4byte 0x000028c4
-_08114CF4: .4byte 0x000008c4
-_08114CF8:
- movs r2, 0
- str r2, [sp, 0x4]
- ldr r6, _08114D2C
- mov r4, r8
- adds r5, r3, r4
- ldr r0, _08114D30
- adds r4, r6, r0
- adds r4, r5, r4
- ldrb r1, [r4]
- ldr r0, [sp]
- bl sub_8114DF0
- ldr r1, _08114D34
- adds r0, r6, r1
- adds r0, r5, r0
- ldrb r1, [r4]
- ldrb r0, [r0]
- cmp r1, r0
- bne _08114D6C
-_08114D1E:
- ldr r2, _08114D38
- adds r0, r6, r2
- adds r0, r5, r0
- mov r4, sp
- ldrb r4, [r4, 0x4]
- strb r4, [r0]
- b _08114D76
- .align 2, 0
-_08114D2C: .4byte 0x02014800
-_08114D30: .4byte 0x000038c4
-_08114D34: .4byte 0x000028c4
-_08114D38: .4byte 0x000008c4
-_08114D3C:
- ldr r0, _08114D48
- add r0, r9
- adds r0, r7, r0
- movs r1, 0
- b _08114D74
- .align 2, 0
-_08114D48: .4byte 0x000008c4
-_08114D4C:
- ldr r0, _08114D58
- add r0, r9
- adds r0, r7, r0
- strb r3, [r0]
- b _08114D76
- .align 2, 0
-_08114D58: .4byte 0x000008c4
-_08114D5C:
- ldr r0, _08114D68
- add r0, r9
- adds r0, r7, r0
- movs r1, 0
- b _08114D74
- .align 2, 0
-_08114D68: .4byte 0x000008c4
-_08114D6C:
- ldr r1, _08114DAC
- adds r0, r6, r1
- adds r0, r5, r0
- movs r1, 0x4
-_08114D74:
- strb r1, [r0]
-_08114D76:
- mov r3, r10
- ldr r2, _08114DB0
- adds r0, r2, 0
- adds r0, 0x84
- ldr r4, [sp]
- adds r0, r4, r0
- adds r4, r2, 0
-_08114D84:
- ldrb r0, [r0]
- cmp r3, r0
- bge _08114D8E
- bl _08114410
-_08114D8E:
- ldr r5, [sp, 0x8]
- str r5, [sp]
- cmp r5, 0x3F
- bgt _08114D9A
- bl _081143F2
-_08114D9A:
- ldr r0, [sp, 0x4]
- 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
-_08114DAC: .4byte 0x000008c4
-_08114DB0: .4byte 0x02014800
- thumb_func_end unref_sub_81143CC
-
- thumb_func_start sub_8114DB4
-sub_8114DB4: @ 8114DB4
- push {lr}
- lsls r1, 24
- lsrs r3, r1, 24
- ldr r2, _08114DDC
- lsrs r1, 25
- lsls r1, 2
- lsls r0, 7
- adds r1, r0
- ldr r0, _08114DE0
- adds r2, r0
- adds r1, r2
- ldr r2, [r1]
- movs r0, 0x1
- ands r3, r0
- cmp r3, 0
- beq _08114DE4
- ldrb r0, [r2]
- movs r1, 0xF0
- b _08114DE8
- .align 2, 0
-_08114DDC: .4byte 0x02014800
-_08114DE0: .4byte 0x000040c4
-_08114DE4:
- ldrb r0, [r2]
- movs r1, 0xF
-_08114DE8:
- orrs r0, r1
- strb r0, [r2]
- pop {r0}
- bx r0
- thumb_func_end sub_8114DB4
-
- thumb_func_start sub_8114DF0
-sub_8114DF0: @ 8114DF0
- push {lr}
- lsls r1, 24
- lsrs r3, r1, 24
- ldr r2, _08114E28
- lsrs r1, 25
- lsls r1, 2
- lsls r0, 7
- adds r1, r0
- ldr r0, _08114E2C
- adds r2, r0
- adds r1, r2
- ldr r2, [r1]
- movs r0, 0xC0
- lsls r0, 7
- adds r1, r2, r0
- movs r0, 0x1
- ands r3, r0
- cmp r3, 0
- beq _08114E30
- ldrb r1, [r1]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0
- bne _08114E42
- ldrb r1, [r2]
- movs r0, 0xF
- b _08114E3E
- .align 2, 0
-_08114E28: .4byte 0x02014800
-_08114E2C: .4byte 0x000040c4
-_08114E30:
- ldrb r1, [r1]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _08114E42
- ldrb r1, [r2]
- movs r0, 0xF0
-_08114E3E:
- ands r0, r1
- strb r0, [r2]
-_08114E42:
- pop {r0}
- bx r0
- thumb_func_end sub_8114DF0
-
- thumb_func_start sub_8114E48
-sub_8114E48: @ 8114E48
- push {r4-r7,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r1, _08114E6C
- ldr r2, _08114E70
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r5, r1, 0
- cmp r0, 0
- bne _08114E60
- b _08114F5E
-_08114E60:
- movs r1, 0
- movs r3, 0
- cmp r4, 0
- bne _08114E74
- movs r1, 0x1
- b _08114EA6
- .align 2, 0
-_08114E6C: .4byte 0x02014800
-_08114E70: .4byte 0x0000a0c4
-_08114E74:
- subs r0, r4, 0x1
- lsls r0, 5
- adds r2, r3, r0
- adds r0, r5, 0
- adds r0, 0xC4
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _08114EA6
- ldr r7, _08114EC4
- adds r0, r5, r7
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _08114EA6
- adds r3, 0x1
- cmp r3, 0x1F
- bgt _08114EA6
- cmp r4, 0
- bne _08114E74
- lsls r0, r1, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r1, r0, 24
-_08114EA6:
- cmp r3, 0x20
- bne _08114EB4
- lsls r0, r1, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r1, r0, 24
-_08114EB4:
- movs r3, 0
- cmp r4, 0x3F
- bne _08114EC8
- lsls r0, r1, 24
- movs r7, 0x80
- lsls r7, 17
- adds r0, r7
- b _08114EF8
- .align 2, 0
-_08114EC4: .4byte 0x000008c4
-_08114EC8:
- adds r0, r4, 0x1
- lsls r0, 5
- adds r2, r3, r0
- adds r0, r5, 0
- adds r0, 0xC4
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _08114EFA
- ldr r7, _08114F64
- adds r0, r5, r7
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _08114EFA
- adds r3, 0x1
- cmp r3, 0x1F
- bgt _08114EFA
- cmp r4, 0x3F
- bne _08114EC8
- lsls r0, r1, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
-_08114EF8:
- lsrs r1, r0, 24
-_08114EFA:
- cmp r3, 0x20
- bne _08114F08
- lsls r0, r1, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r1, r0, 24
-_08114F08:
- cmp r1, 0x2
- beq _08114F5E
- subs r0, r6, 0x2
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r0, 0
- bge _08114F18
- movs r1, 0
-_08114F18:
- adds r0, r6, 0x2
- lsls r0, 24
- lsrs r2, r0, 24
- asrs r0, 24
- cmp r0, 0x3F
- ble _08114F26
- movs r2, 0x3F
-_08114F26:
- lsls r1, 24
- asrs r3, r1, 24
- lsls r0, r2, 24
- asrs r2, r0, 24
- adds r6, r1, 0
- adds r7, r0, 0
- cmp r3, r2
- bge _08114F7C
- cmp r4, 0
- beq _08114F7C
- subs r0, r4, 0x1
- lsls r5, r0, 7
- ldr r0, _08114F68
- mov r12, r0
-_08114F42:
- asrs r0, r3, 1
- lsls r0, 2
- adds r0, r5
- add r0, r12
- ldr r1, [r0]
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _08114F6C
- ldrb r1, [r1]
- movs r0, 0xF0
-_08114F58:
- ands r0, r1
- cmp r0, 0
- beq _08114F72
-_08114F5E:
- movs r0, 0x1
- b _08114FCA
- .align 2, 0
-_08114F64: .4byte 0x000008c4
-_08114F68: .4byte 0x020188c4
-_08114F6C:
- ldrb r1, [r1]
- movs r0, 0xF
- b _08114F58
-_08114F72:
- adds r3, 0x1
- cmp r3, r2
- bge _08114F7C
- cmp r4, 0
- bne _08114F42
-_08114F7C:
- asrs r3, r6, 24
- asrs r1, r7, 24
- cmp r3, r1
- bge _08114FC8
- cmp r4, 0x3F
- beq _08114FC8
- adds r0, r4, 0x1
- lsls r5, r0, 7
- ldr r6, _08114FB0
- adds r2, r1, 0
-_08114F90:
- asrs r0, r3, 1
- lsls r0, 2
- adds r0, r5
- adds r0, r6
- ldr r1, [r0]
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _08114FB4
- ldrb r1, [r1]
- movs r0, 0xF0
- ands r0, r1
- cmp r0, 0
- beq _08114FBE
- b _08114F5E
- .align 2, 0
-_08114FB0: .4byte 0x020188c4
-_08114FB4:
- ldrb r1, [r1]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _08114F5E
-_08114FBE:
- adds r3, 0x1
- cmp r3, r2
- bge _08114FC8
- cmp r4, 0x3F
- bne _08114F90
-_08114FC8:
- movs r0, 0
-_08114FCA:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8114E48
-
- thumb_func_start nullsub_73
-nullsub_73: @ 8114FD0
- bx lr
- thumb_func_end nullsub_73
-
- thumb_func_start sub_8114FD4
-sub_8114FD4: @ 8114FD4
- push {lr}
- ldr r1, _08115034
- ldr r2, _08115038
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x8
- ldr r0, _0811503C
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _08115040
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _08115044
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _08115048
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _0811504C
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _08115050
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _08115054
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _08115058
- ldrh r0, [r0]
- strh r0, [r1]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_8089668
- pop {r0}
- bx r0
- .align 2, 0
-_08115034: .4byte REG_BG0CNT
-_08115038: .4byte 0x00009803
-_0811503C: .4byte gUnknown_030042A4
-_08115040: .4byte gUnknown_030042A0
-_08115044: .4byte gUnknown_030042C0
-_08115048: .4byte gUnknown_030041B4
-_0811504C: .4byte gUnknown_03004288
-_08115050: .4byte gUnknown_03004280
-_08115054: .4byte gUnknown_030041B0
-_08115058: .4byte gUnknown_030041B8
- thumb_func_end sub_8114FD4
-
- thumb_func_start sub_811505C
-sub_811505C: @ 811505C
- push {lr}
- ldr r1, _081150B4
- ldr r0, _081150B8
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _081150BC
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _081150C0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _081150C4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _081150C8
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _081150CC
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _081150D0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, _081150D4
- ldrh r0, [r0]
- strh r0, [r1]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_8089668
- pop {r0}
- bx r0
- .align 2, 0
-_081150B4: .4byte REG_BG0HOFS
-_081150B8: .4byte gUnknown_030042A4
-_081150BC: .4byte gUnknown_030042A0
-_081150C0: .4byte gUnknown_030042C0
-_081150C4: .4byte gUnknown_030041B4
-_081150C8: .4byte gUnknown_03004288
-_081150CC: .4byte gUnknown_03004280
-_081150D0: .4byte gUnknown_030041B0
-_081150D4: .4byte gUnknown_030041B8
- thumb_func_end sub_811505C
-
- thumb_func_start sub_81150D8
-sub_81150D8: @ 81150D8
- push {lr}
- ldr r0, _081150F4
- ldrb r1, [r0, 0x1]
- lsls r1, 28
- movs r0, 0x90
- lsls r0, 23
- adds r1, r0
- lsrs r1, 24
- movs r0, 0xC8
- bl sub_814A880
- pop {r0}
- bx r0
- .align 2, 0
-_081150F4: .4byte gUnknown_02024D1E
- thumb_func_end sub_81150D8
-
- thumb_func_start nullsub_24
-nullsub_24: @ 81150F8
- bx lr
- thumb_func_end nullsub_24
-
- thumb_func_start sub_81150FC
-sub_81150FC: @ 81150FC
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r0, _08115120
- adds r1, r0, 0
- adds r1, 0xB8
- ldrb r0, [r1]
- cmp r0, 0
- beq _0811511C
- adds r0, r1, 0
- bl task_tutorial_controls_fadein
-_0811511C:
- pop {r0}
- bx r0
- .align 2, 0
-_08115120: .4byte 0x02019000
- thumb_func_end sub_81150FC
-
- thumb_func_start sub_8115124
-sub_8115124: @ 8115124
- push {r4,lr}
- sub sp, 0x4
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_8117434
- ldr r2, _08115188
- ldr r3, _0811518C
- ldrh r1, [r3, 0x26]
- movs r4, 0x80
- lsls r4, 2
- adds r0, r4, 0
- subs r0, r1
- strh r0, [r2]
- ldrb r0, [r3, 0x1]
- cmp r0, 0
- beq _08115154
- ldr r1, _08115190
- ldrh r0, [r3, 0x34]
- strh r0, [r1]
-_08115154:
- movs r1, 0x2A
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _08115170
- ldr r1, _08115194
- ldr r0, _08115198
- str r0, [r1]
- ldr r0, _0811519C
- str r0, [r1, 0x4]
- ldr r0, _081151A0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0
- strh r0, [r3, 0x2A]
-_08115170:
- movs r2, 0x28
- ldrsh r0, [r3, r2]
- cmp r0, 0x1
- beq _081151A4
- cmp r0, 0x1
- ble _0811521A
- cmp r0, 0x2
- beq _081151D4
- cmp r0, 0xFF
- beq _081151F8
- b _0811521A
- .align 2, 0
-_08115188: .4byte REG_BG1HOFS
-_0811518C: .4byte 0x02019000
-_08115190: .4byte REG_BLDALPHA
-_08115194: .4byte 0x040000d4
-_08115198: .4byte gBG1TilemapBuffer + 0x1C0
-_0811519C: .4byte 0x060021c0
-_081151A0: .4byte 0x800001a0
-_081151A4:
- ldr r1, _081151C4
- movs r4, 0xF8
- lsls r4, 5
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0xCC
- ldr r0, _081151C8
- str r0, [r1]
- ldr r0, _081151CC
- str r0, [r1, 0x4]
- ldr r0, _081151D0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0x2
- b _08115218
- .align 2, 0
-_081151C4: .4byte REG_BG0CNT
-_081151C8: .4byte gBG2TilemapBuffer + 0x1C0
-_081151CC: .4byte 0x0600f9c0
-_081151D0: .4byte 0x800001a0
-_081151D4:
- ldr r1, _081151E8
- ldr r0, _081151EC
- str r0, [r1]
- ldr r0, _081151F0
- str r0, [r1, 0x4]
- ldr r0, _081151F4
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- b _0811521A
- .align 2, 0
-_081151E8: .4byte 0x040000d4
-_081151EC: .4byte gBG2TilemapBuffer + 0x1C0
-_081151F0: .4byte 0x0600f9c0
-_081151F4: .4byte 0x800001a0
-_081151F8:
- ldr r1, _08115224
- ldr r2, _08115228
- adds r0, r2, 0
- strh r0, [r1]
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r1, _0811522C
- mov r4, sp
- str r4, [r1]
- ldr r0, _08115230
- str r0, [r1, 0x4]
- ldr r0, _08115234
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0
-_08115218:
- strh r0, [r3, 0x28]
-_0811521A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08115224: .4byte REG_BG0CNT
-_08115228: .4byte 0x00001f08
-_0811522C: .4byte 0x040000d4
-_08115230: .4byte 0x0600f9c0
-_08115234: .4byte 0x810001a0
- thumb_func_end sub_8115124
-
- thumb_func_start sub_8115238
-sub_8115238: @ 8115238
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r1, _081152C0
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- ldr r5, _081152C4
- movs r2, 0xBE
- lsls r2, 1
- adds r0, r5, 0
- movs r1, 0
- bl memset
- ldr r0, _081152C8
- ldrh r2, [r0]
- movs r0, 0x1
- ands r0, r2
- ldrb r1, [r5, 0x4]
- movs r3, 0x4
- negs r3, r3
- ands r3, r1
- orrs r3, r0
- strb r3, [r5, 0x4]
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _08115276
- movs r0, 0x80
- orrs r3, r0
- strb r3, [r5, 0x4]
-_08115276:
- ldr r3, _081152CC
- ldrb r2, [r5, 0x4]
- lsls r1, r2, 30
- lsrs r0, r1, 25
- adds r0, r3
- ldrb r0, [r0, 0x3]
- adds r4, r5, 0
- adds r4, 0x22
- strb r0, [r4]
- lsrs r0, r1, 25
- adds r0, r3
- ldrb r0, [r0, 0x4]
- adds r3, r5, 0
- adds r3, 0x23
- strb r0, [r3]
- ldr r0, _081152D0
- lsrs r1, 30
- lsls r2, 24
- lsrs r2, 31
- lsls r2, 1
- adds r1, r2
- adds r1, r0
- ldrb r2, [r1]
- strb r2, [r5, 0x19]
- ldrb r1, [r5, 0x1A]
- movs r0, 0xF
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r5, 0x1A]
- cmp r2, 0x1
- bne _081152DC
- ldr r4, _081152D4
- ldr r3, _081152D8
- mov r0, sp
- ldrh r2, [r0]
- b _081152E4
- .align 2, 0
-_081152C0: .4byte gUnknown_083F8EC4
-_081152C4: .4byte 0x02019000
-_081152C8: .4byte gUnknown_0202E8CC
-_081152CC: .4byte gUnknown_083F8DF4
-_081152D0: .4byte gUnknown_083F8DF0
-_081152D4: .4byte gPlttBufferUnfaded
-_081152D8: .4byte gPlttBufferFaded
-_081152DC:
- ldr r4, _08115348
- ldr r3, _0811534C
- mov r0, sp
- ldrh r2, [r0, 0x2]
-_081152E4:
- adds r0, r3, 0
- adds r0, 0xA2
- strh r2, [r0]
- ldr r1, _08115350
- adds r0, r1, 0
- ands r0, r2
- strh r0, [r3]
- ands r0, r1
- adds r2, r4, 0
- adds r2, 0xA2
- strh r0, [r2]
- ands r0, r1
- strh r0, [r4]
- ldr r0, _08115354
- bl sub_8124918
- movs r4, 0
- ldr r5, _08115358
-_08115308:
- lsls r2, r4, 3
- adds r2, r5
- ldr r0, _08115354
- adds r1, r4, 0
- bl sub_812492C
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xC
- bls _08115308
- movs r4, 0
- ldr r5, _0811535C
-_08115322:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _08115360
- adds r0, r1
- movs r1, 0x41
- bl GetMonData
- adds r1, r0, 0
- movs r0, 0x98
- lsls r0, 1
- cmp r1, r0
- beq _08115364
- adds r0, 0x2
- cmp r1, r0
- bne _0811536C
- ldrb r0, [r5, 0x2]
- movs r1, 0x1
- b _08115368
- .align 2, 0
-_08115348: .4byte gPlttBufferUnfaded
-_0811534C: .4byte gPlttBufferFaded
-_08115350: .4byte 0x0000ffff
-_08115354: .4byte 0x020190b8
-_08115358: .4byte gUnknown_083F8E34
-_0811535C: .4byte 0x02019000
-_08115360: .4byte gPlayerParty
-_08115364:
- ldrb r0, [r5, 0x2]
- movs r1, 0x2
-_08115368:
- orrs r0, r1
- strb r0, [r5, 0x2]
-_0811536C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _08115322
- bl RtcCalcLocalTime
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8115238
-
- thumb_func_start sub_8115384
-sub_8115384: @ 8115384
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _081153A4
- ldr r2, _081153A8
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x7
- bls _08115398
- b _081155FE
-_08115398:
- lsls r0, 2
- ldr r1, _081153AC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081153A4: .4byte gMain
-_081153A8: .4byte 0x0000043c
-_081153AC: .4byte _081153B0
- .align 2, 0
-_081153B0:
- .4byte _081153D0
- .4byte _08115444
- .4byte _08115460
- .4byte _08115494
- .4byte _081154CC
- .4byte _081154FC
- .4byte _0811556C
- .4byte _0811558C
-_081153D0:
- movs r0, 0
- bl SetVBlankCallback
- bl remove_some_task
- bl sub_80F9438
- bl sub_80F9368
- ldr r1, _08115420
- ldr r3, _08115424
- adds r0, r3, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _08115428
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x46
- movs r3, 0x90
- lsls r3, 6
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0811542C
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08115430
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08115434
- ldr r1, _08115438
- bl LZ77UnCompVram
- ldr r1, _0811543C
- ldr r3, _08115440
- adds r1, r3
- b _0811557A
- .align 2, 0
-_08115420: .4byte REG_BG2CNT
-_08115424: .4byte 0x00004686
-_08115428: .4byte 0x00004401
-_0811542C: .4byte 0x0000060a
-_08115430: .4byte gUnknown_08E8096C
-_08115434: .4byte gUnknown_08E81098
-_08115438: .4byte 0x06004000
-_0811543C: .4byte gMain
-_08115440: .4byte 0x0000043c
-_08115444:
- bl ResetPaletteFade
- bl ResetSpriteData
- bl ResetTasks
- ldr r1, _08115458
- ldr r0, _0811545C
- adds r1, r0
- b _0811557A
- .align 2, 0
-_08115458: .4byte gMain
-_0811545C: .4byte 0x0000043c
-_08115460:
- ldr r0, _08115480
- bl SetUpWindowConfig
- ldr r0, _08115484
- bl InitMenuWindow
- ldr r0, _08115488
- movs r2, 0xE0
- lsls r2, 1
- movs r1, 0
- bl LoadPalette
- ldr r1, _0811548C
- ldr r2, _08115490
- adds r1, r2
- b _0811557A
- .align 2, 0
-_08115480: .4byte gWindowConfig_81E6C3C
-_08115484: .4byte gWindowConfig_81E6CE4
-_08115488: .4byte gUnknown_083F86BC
-_0811548C: .4byte gMain
-_08115490: .4byte 0x0000043c
-_08115494:
- bl sub_8115238
- bl sub_80F9020
- ldr r0, _081154B4
- ldr r1, _081154B8
- bl LZ77UnCompWram
- ldr r0, _081154BC
- ldr r1, _081154C0
- bl LZ77UnCompVram
- ldr r1, _081154C4
- ldr r3, _081154C8
- adds r1, r3
- b _0811557A
- .align 2, 0
-_081154B4: .4byte gUnknown_083F88BC
-_081154B8: .4byte 0x02018800
-_081154BC: .4byte gUnknown_083F8A60
-_081154C0: .4byte 0x06003000
-_081154C4: .4byte gMain
-_081154C8: .4byte 0x0000043c
-_081154CC:
- movs r0, 0
- bl sub_8117838
- bl sub_811857C
- bl sub_81184D8
- bl sub_8117F2C
- bl sub_8117900
- bl sub_8117BBC
- bl sub_8117DF4
- ldr r1, _081154F4
- ldr r0, _081154F8
- adds r1, r0
- b _0811557A
- .align 2, 0
-_081154F4: .4byte gMain
-_081154F8: .4byte 0x0000043c
-_081154FC:
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r0, _08115550
- ldr r1, _08115554
- adds r0, r1
- ldrh r0, [r0]
- bl sub_81180F4
- movs r0, 0x6
- bl sub_81182F8
- movs r0, 0
- bl sub_811829C
- movs r0, 0
- bl sub_8117158
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08115558
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _0811555C
- movs r2, 0x3C
- negs r2, r2
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08115560
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08115564
- ldr r3, _08115568
- adds r1, r3
- b _0811557A
- .align 2, 0
-_08115550: .4byte gSaveBlock1
-_08115554: .4byte 0x00000494
-_08115558: .4byte gUnknown_081C4157
-_0811555C: .4byte gSpriteCoordOffsetX
-_08115560: .4byte gSpriteCoordOffsetY
-_08115564: .4byte gMain
-_08115568: .4byte 0x0000043c
-_0811556C:
- movs r1, 0x80
- lsls r1, 19
- ldr r3, _08115584
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _08115588
- adds r1, r2, r0
-_0811557A:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081155FE
- .align 2, 0
-_08115584: .4byte 0x00001741
-_08115588: .4byte 0x0000043c
-_0811558C:
- ldr r3, _08115608
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _0811560C
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08115610
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _08115614
- bl SetVBlankCallback
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginHardwarePaletteFade
- ldr r0, _08115618
- movs r1, 0
- bl CreateTask
- ldr r4, _0811561C
- adds r1, r4, 0
- adds r1, 0xA4
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08115620
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0x6
- strh r0, [r1, 0x14]
- ldr r0, _08115624
- ldr r2, _08115628
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1, 0x22]
- ldr r0, _0811562C
- movs r1, 0x1
- bl CreateTask
- adds r4, 0xA5
- strb r0, [r4]
- ldr r0, _08115630
- bl SetMainCallback2
-_081155FE:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08115608: .4byte 0x04000208
-_0811560C: .4byte 0x04000200
-_08115610: .4byte REG_DISPSTAT
-_08115614: .4byte sub_8115124
-_08115618: .4byte sub_81156BC
-_0811561C: .4byte 0x02019000
-_08115620: .4byte gTasks
-_08115624: .4byte gSaveBlock1
-_08115628: .4byte 0x00000494
-_0811562C: .4byte sub_8115634
-_08115630: .4byte sub_81150FC
- thumb_func_end sub_8115384
-
- thumb_func_start sub_8115634
-sub_8115634: @ 8115634
- push {r4-r6,lr}
- ldr r0, _081156B8
- adds r3, r0, 0
- adds r3, 0x21
- ldrb r1, [r3]
- adds r2, r1, 0x1
- strb r2, [r3]
- adds r2, r0, 0
- adds r2, 0x23
- lsls r1, 24
- lsrs r1, 24
- adds r6, r0, 0
- ldrb r2, [r2]
- cmp r1, r2
- bne _08115674
- movs r0, 0
- strb r0, [r3]
- adds r2, r6, 0
- adds r2, 0x22
- ldrb r1, [r2]
- ldrh r0, [r6, 0x24]
- subs r0, r1
- strh r0, [r6, 0x24]
- lsls r0, 16
- cmp r0, 0
- bge _08115674
- ldrb r1, [r2]
- movs r2, 0xB4
- lsls r2, 1
- adds r0, r2, 0
- subs r0, r1
- strh r0, [r6, 0x24]
-_08115674:
- adds r4, r6, 0
- ldrh r0, [r4, 0x24]
- bl Sin2
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x24]
- bl Cos2
- lsls r0, 16
- lsrs r1, r0, 16
- lsls r0, r5, 16
- asrs r0, 16
- cmp r0, 0
- bge _08115694
- adds r0, 0xF
-_08115694:
- lsls r0, 12
- lsrs r5, r0, 16
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0
- bge _081156A2
- adds r0, 0xF
-_081156A2:
- asrs r0, 4
- strh r0, [r6, 0x32]
- strh r0, [r6, 0x2C]
- strh r5, [r6, 0x2E]
- lsls r0, r5, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r6, 0x30]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081156B8: .4byte 0x02019000
- thumb_func_end sub_8115634
-
- thumb_func_start sub_81156BC
-sub_81156BC: @ 81156BC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl UpdatePaletteFade
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- bne _08115716
- ldr r2, _0811571C
- ldrh r0, [r2]
- movs r5, 0x90
- lsls r5, 6
- adds r1, r5, 0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08115720
- ldr r2, _08115724
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08115728
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r3, [r0, 0x14]
- adds r0, r4, 0
- bl sub_8116CAC
- bl sub_8116CF8
- bl sub_81185E8
- movs r0, 0
- bl sub_8117158
- movs r0, 0x6
- bl sub_81182F8
- ldr r1, _0811572C
- ldr r2, _08115730
- adds r0, r4, 0
- movs r3, 0x3
- bl sub_8116C34
-_08115716:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811571C: .4byte REG_BLDCNT
-_08115720: .4byte REG_BLDALPHA
-_08115724: .4byte 0x00000808
-_08115728: .4byte gTasks
-_0811572C: .4byte sub_81159BC
-_08115730: .4byte 0x0000ffff
- thumb_func_end sub_81156BC
-
- thumb_func_start sub_8115734
-sub_8115734: @ 8115734
- 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 r0, _08115770
- bl sub_814AAF8
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08115774
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _08115778
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08115770: .4byte 0x00002d9e
-_08115774: .4byte gUnknown_081C41E3
-_08115778: .4byte gUnknown_083F8EBC
- thumb_func_end sub_8115734
-
- thumb_func_start sub_811577C
-sub_811577C: @ 811577C
- 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, _081157A4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _081157A8
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081157A4: .4byte gTasks
-_081157A8: .4byte sub_81159BC
- thumb_func_end sub_811577C
-
- thumb_func_start sub_81157AC
-sub_81157AC: @ 81157AC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _081157CC
- adds r0, 0xA5
- ldrb r0, [r0]
- bl DestroyTask
- adds r0, r4, 0
- bl sub_8116AB0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081157CC: .4byte 0x02019000
- thumb_func_end sub_81157AC
-
- thumb_func_start sub_81157D0
-sub_81157D0: @ 81157D0
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bhi _081158C8
- lsls r0, r4, 2
- ldr r1, _081157E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081157E8: .4byte _081157EC
- .align 2, 0
-_081157EC:
- .4byte _0811582C
- .4byte _08115848
- .4byte _08115848
- .4byte _08115848
- .4byte _08115848
- .4byte _08115884
- .4byte _081158C8
- .4byte _081158C8
- .4byte _081158C8
- .4byte _081158C8
- .4byte _08115884
- .4byte _081158C8
- .4byte _081158C8
- .4byte _081158C8
- .4byte _081158C8
- .4byte _08115884
-_0811582C:
- ldr r0, _08115844
- movs r1, 0x10
- str r1, [sp]
- movs r1, 0xD
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x7
- bl sub_8124DDC
- b _08115918
- .align 2, 0
-_08115844: .4byte gBG2TilemapBuffer
-_08115848:
- lsls r0, r4, 1
- adds r0, r4
- adds r0, 0xE
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r5, _0811587C
- movs r0, 0x10
- str r0, [sp]
- movs r4, 0xD
- str r4, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x7
- bl sub_8124DDC
- ldr r1, _08115880
- movs r0, 0x3
- str r0, [sp]
- str r4, [sp, 0x4]
- adds r0, r5, 0
- adds r2, r7, 0
- movs r3, 0x7
- bl sub_8124E2C
- b _08115918
- .align 2, 0
-_0811587C: .4byte gBG2TilemapBuffer
-_08115880: .4byte 0x02018a32
-_08115884:
- subs r0, r4, 0x1
- movs r1, 0x5
- bl __divsi3
- lsls r1, r0, 1
- adds r1, r0
- adds r1, 0xA
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r5, _081158C0
- movs r4, 0x10
- str r4, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x7
- bl sub_8124DDC
- ldr r1, _081158C4
- str r4, [sp]
- movs r0, 0x3
- str r0, [sp, 0x4]
- adds r0, r5, 0
- movs r2, 0xE
- adds r3, r6, 0
- bl sub_8124E2C
- b _08115918
- .align 2, 0
-_081158C0: .4byte gBG2TilemapBuffer
-_081158C4: .4byte 0x02018a80
-_081158C8:
- adds r0, r4, 0
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- adds r1, 0xE
- lsls r1, 24
- lsrs r7, r1, 24
- subs r0, r4, 0x1
- movs r1, 0x5
- bl __divsi3
- lsls r1, r0, 1
- adds r1, r0
- adds r1, 0x7
- lsls r1, 24
- lsrs r6, r1, 24
- ldr r4, _08115920
- movs r0, 0x10
- str r0, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x7
- bl sub_8124DDC
- ldr r1, _08115924
- movs r0, 0x3
- str r0, [sp]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- adds r2, r7, 0
- adds r3, r6, 0
- bl sub_8124E2C
-_08115918:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08115920: .4byte gBG2TilemapBuffer
-_08115924: .4byte 0x02018a20
- thumb_func_end sub_81157D0
-
- thumb_func_start sub_8115928
-sub_8115928: @ 8115928
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- cmp r1, 0
- bne _0811594C
- ldr r1, _08115948
- lsls r4, r5, 2
- adds r0, r4, r5
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x10]
- bl sub_811829C
- b _08115960
- .align 2, 0
-_08115948: .4byte gTasks
-_0811594C:
- ldr r0, _08115974
- ldrb r1, [r0, 0x1A]
- lsls r1, 28
- lsrs r1, 28
- adds r0, 0x1B
- adds r1, r0
- ldrb r0, [r1]
- bl sub_811829C
- lsls r4, r5, 2
-_08115960:
- ldr r0, _08115978
- adds r1, r4, r5
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x10]
- bl sub_81157D0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08115974: .4byte 0x02019000
-_08115978: .4byte gTasks
- thumb_func_end sub_8115928
-
- thumb_func_start sub_811597C
-sub_811597C: @ 811597C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _081159B0
- movs r6, 0
- movs r1, 0x1
- strh r1, [r5, 0x28]
- ldr r1, _081159B4
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldrb r0, [r4, 0x10]
- bl sub_81157D0
- adds r1, r5, 0
- adds r1, 0x23
- movs r0, 0x2
- strb r0, [r1]
- adds r5, 0x21
- strb r6, [r5]
- ldr r0, _081159B8
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081159B0: .4byte 0x02019000
-_081159B4: .4byte gTasks
-_081159B8: .4byte sub_8115E14
- thumb_func_end sub_811597C
-
- thumb_func_start sub_81159BC
-sub_81159BC: @ 81159BC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, _08115A10
- ldr r1, [r3, 0x8]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08115A1C
- movs r2, 0xB
- ldr r5, _08115A14
- adds r0, r5, 0
- adds r0, 0xE4
- ldr r0, [r0]
- ands r1, r0
- ldr r0, _08115A18
- mov r12, r0
- lsls r7, r6, 2
- cmp r1, 0
- beq _08115A5A
- adds r4, r3, 0
- adds r3, r5, 0
- adds r3, 0x8
-_081159EA:
- lsls r0, r2, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r2, r0, 16
- asrs r1, r0, 16
- cmp r1, 0xD
- bgt _08115A5A
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r1, [r4, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _081159EA
- b _08115A5A
- .align 2, 0
-_08115A10: .4byte 0x02019000
-_08115A14: .4byte gUnknown_083F8C00
-_08115A18: .4byte gTasks
-_08115A1C:
- movs r2, 0x6
- ldr r5, _08115A88
- adds r0, r5, 0
- adds r0, 0x80
- ldr r0, [r0]
- ands r1, r0
- ldr r0, _08115A8C
- mov r12, r0
- lsls r7, r6, 2
- cmp r1, 0
- beq _08115A5A
- adds r4, r3, 0
- adds r3, r5, 0
- adds r3, 0x8
-_08115A38:
- lsls r0, r2, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r2, r0, 16
- asrs r1, r0, 16
- cmp r1, 0x9
- bgt _08115A5A
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r1, [r4, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08115A38
-_08115A5A:
- adds r4, r7, r6
- lsls r4, 3
- add r4, r12
- movs r5, 0
- strh r2, [r4, 0x10]
- adds r0, r6, 0
- bl sub_8116CAC
- ldrb r0, [r4, 0x10]
- bl sub_8117158
- ldrb r0, [r4, 0x10]
- bl sub_811829C
- ldrb r0, [r4, 0x10]
- bl sub_8116EF8
- strh r5, [r4, 0xA]
- ldr r0, _08115A90
- str r0, [r4]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08115A88: .4byte gUnknown_083F8C00
-_08115A8C: .4byte gTasks
-_08115A90: .4byte sub_811597C
- thumb_func_end sub_81159BC
-
- thumb_func_start sub_8115A94
-sub_8115A94: @ 8115A94
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- movs r6, 0
- movs r7, 0
- ldr r1, _08115ADC
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- ldrb r0, [r4]
- mov r8, r0
- cmp r5, 0
- blt _08115B08
- cmp r5, 0x1
- bgt _08115AE0
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- bl __modsi3
- lsls r0, 24
- lsrs r6, r0, 24
- movs r2, 0xF0
- lsls r2, 20
- adds r1, r0, r2
- lsrs r7, r1, 24
- cmp r0, 0
- bne _08115B08
- movs r6, 0x5
- b _08115B08
- .align 2, 0
-_08115ADC: .4byte gUnknown_083F8ECA
-_08115AE0:
- cmp r5, 0x3
- bgt _08115B08
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 24
- lsrs r6, r1, 24
- movs r2, 0x80
- lsls r2, 19
- adds r0, r1, r2
- lsrs r7, r0, 24
- cmp r1, 0
- bne _08115B08
- movs r6, 0x1
-_08115B08:
- mov r1, sp
- adds r0, r1, r5
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r2, [r4]
- adds r0, r2
- strh r0, [r4]
- lsls r1, r6, 24
- asrs r3, r1, 24
- lsls r0, 16
- asrs r0, 16
- lsls r2, r7, 24
- cmp r0, r3
- bge _08115B2A
- asrs r0, r2, 24
- strh r0, [r4]
-_08115B2A:
- movs r0, 0
- ldrsh r1, [r4, r0]
- asrs r0, r2, 24
- cmp r1, r0
- ble _08115B36
- strh r3, [r4]
-_08115B36:
- mov r1, r8
- lsls r0, r1, 24
- movs r2, 0
- ldrsh r1, [r4, r2]
- asrs r0, 24
- cmp r1, r0
- bne _08115B48
- movs r0, 0
- b _08115B4A
-_08115B48:
- movs r0, 0x1
-_08115B4A:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8115A94
-
- thumb_func_start sub_8115B58
-sub_8115B58: @ 8115B58
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0
- mov r8, r0
- movs r5, 0
- ldr r4, _08115D30
- ldrh r1, [r4, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08115B94
- movs r5, 0x1
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _08115D34
- adds r0, r1
- adds r0, 0x8
- movs r1, 0
- bl sub_8115A94
- lsls r0, 24
- cmp r0, 0
- bne _08115B94
- b _08115D20
-_08115B94:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08115BBA
- movs r5, 0x1
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _08115D34
- adds r0, r1
- adds r0, 0x8
- movs r1, 0x1
- bl sub_8115A94
- lsls r0, 24
- cmp r0, 0
- bne _08115BBA
- b _08115D20
-_08115BBA:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08115BE0
- movs r5, 0x1
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _08115D34
- adds r0, r1
- adds r0, 0x8
- movs r1, 0x2
- bl sub_8115A94
- lsls r0, 24
- cmp r0, 0
- bne _08115BE0
- b _08115D20
-_08115BE0:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08115C06
- movs r5, 0x1
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _08115D34
- adds r0, r1
- adds r0, 0x8
- movs r1, 0x3
- bl sub_8115A94
- lsls r0, 24
- cmp r0, 0
- bne _08115C06
- b _08115D20
-_08115C06:
- cmp r5, 0
- bne _08115C0C
- b _08115D20
-_08115C0C:
- ldr r0, _08115D38
- lsls r6, r7, 2
- adds r4, r6, r7
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x10]
- bl sub_8117158
- adds r0, r7, 0
- movs r1, 0
- bl sub_8115928
- mov r1, r8
- strh r1, [r4, 0xA]
- movs r0, 0x5
- bl PlaySE
- ldr r5, _08115D3C
- ldr r1, _08115D40
- adds r0, r5, 0
- bl sub_8124D3C
- adds r3, r5, 0
- adds r3, 0xB8
- ldrb r2, [r3]
- movs r1, 0x7F
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3]
- subs r3, 0xC
- ldrb r2, [r3]
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3]
- adds r2, r5, 0
- adds r2, 0xA0
- ldrb r0, [r2]
- ands r1, r0
- strb r1, [r2]
- ldrb r0, [r4, 0x10]
- bl sub_8116EF8
- movs r4, 0
- mov r12, r6
- ldr r6, _08115D44
- movs r2, 0x7C
- negs r2, r2
- adds r2, r5
- mov r10, r2
- movs r0, 0x8
- adds r0, r6
- mov r8, r0
- ldr r1, _08115D48
- mov r9, r1
- ldr r2, _08115D4C
- adds r5, r2, 0
-_08115C7C:
- adds r0, r4, 0
- adds r0, 0x29
- add r0, r10
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r6
- adds r2, r3, 0
- adds r2, 0x40
- add r0, r8
- ldr r0, [r0]
- ldr r0, [r0]
- ldrh r1, [r0]
- ldrh r2, [r2]
- adds r1, r2
- ands r1, r5
- ldrh r2, [r3, 0x4]
- mov r0, r9
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _08115C7C
- ldr r0, _08115D38
- mov r2, r12
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- ldrh r3, [r1, 0x10]
- subs r0, r3, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x3
- bhi _08115D20
- ldr r2, _08115D50
- movs r0, 0x10
- ldrsh r1, [r1, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x8
- adds r0, r2
- ldr r2, _08115D54
- ldr r1, [r2, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08115D20
- subs r0, r3, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- adds r0, r2, 0
- add r0, r8
- adds r0, 0x65
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08115D44
- adds r3, r0, r1
- adds r2, r3, 0
- adds r2, 0x40
- adds r1, 0x8
- adds r0, r1
- ldr r0, [r0]
- ldr r0, [r0]
- ldrh r1, [r0, 0x4]
- ldrh r2, [r2]
- adds r1, r2
- ldr r2, _08115D4C
- adds r0, r2, 0
- ands r1, r0
- ldrh r2, [r3, 0x4]
- ldr r0, _08115D48
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
-_08115D20:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08115D30: .4byte gMain
-_08115D34: .4byte gUnknown_03004B28
-_08115D38: .4byte gTasks
-_08115D3C: .4byte 0x020190b8
-_08115D40: .4byte 0x0000ffff
-_08115D44: .4byte gSprites
-_08115D48: .4byte 0xfffffc00
-_08115D4C: .4byte 0x000003ff
-_08115D50: .4byte gUnknown_083F8C00
-_08115D54: .4byte 0x02019000
- thumb_func_end sub_8115B58
-
- thumb_func_start sub_8115D58
-sub_8115D58: @ 8115D58
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _08115D70
- movs r0, 0xFF
- strh r0, [r1, 0x28]
- ldrb r0, [r1, 0x19]
- cmp r0, 0x1
- bne _08115D74
- adds r2, r1, 0
- adds r2, 0x23
- b _08115D7A
- .align 2, 0
-_08115D70: .4byte 0x02019000
-_08115D74:
- adds r2, r1, 0
- adds r2, 0x23
- movs r0, 0
-_08115D7A:
- strb r0, [r2]
- adds r1, 0x21
- movs r0, 0
- strb r0, [r1]
- ldr r1, _08115D98
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r1, 0x20
- strh r1, [r0, 0xA]
- ldr r1, _08115D9C
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_08115D98: .4byte gTasks
-_08115D9C: .4byte sub_8115ECC
- thumb_func_end sub_8115D58
-
- thumb_func_start sub_8115DA0
-sub_8115DA0: @ 8115DA0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08115E08
- ldrb r2, [r4, 0x1A]
- lsls r2, 28
- lsrs r2, 28
- adds r5, r4, 0
- adds r5, 0x1B
- adds r2, r5
- ldr r3, _08115E0C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r6, r1, r3
- ldrh r0, [r6, 0x10]
- strb r0, [r2]
- ldrb r0, [r4, 0x1A]
- lsls r0, 28
- lsrs r0, 28
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8117380
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0xC]
- ldrb r0, [r4, 0x1A]
- lsls r0, 28
- lsrs r0, 28
- adds r0, r5
- ldrb r0, [r0]
- bl sub_811829C
- ldrb r1, [r4, 0x19]
- ldrh r0, [r6, 0x22]
- subs r0, r1
- strh r0, [r6, 0x22]
- lsls r0, 16
- cmp r0, 0
- bge _08115DF6
- movs r0, 0
- strh r0, [r6, 0x22]
-_08115DF6:
- ldrh r0, [r6, 0x22]
- bl sub_81180F4
- ldr r0, _08115E10
- str r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08115E08: .4byte 0x02019000
-_08115E0C: .4byte gTasks
-_08115E10: .4byte sub_8115D58
- thumb_func_end sub_8115DA0
-
- thumb_func_start sub_8115E14
-sub_8115E14: @ 8115E14
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_8115B58
- ldr r1, _08115E3C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x1E
- beq _08115E4A
- cmp r0, 0x1E
- bgt _08115E40
- cmp r0, 0
- beq _08115E46
- b _08115E5E
- .align 2, 0
-_08115E3C: .4byte gTasks
-_08115E40:
- cmp r0, 0x3B
- beq _08115E58
- b _08115E5E
-_08115E46:
- ldrb r0, [r4, 0x10]
- b _08115E4C
-_08115E4A:
- movs r0, 0
-_08115E4C:
- bl sub_81157D0
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _08115E6E
-_08115E58:
- movs r0, 0
- strh r0, [r4, 0xA]
- b _08115E6E
-_08115E5E:
- ldr r0, _08115EA8
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
-_08115E6E:
- ldr r0, _08115EAC
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08115EC2
- ldr r3, _08115EB0
- ldr r2, _08115EB4
- ldr r1, _08115EA8
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x8
- adds r0, r2
- ldr r1, [r3, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08115EB8
- movs r0, 0x16
- bl PlaySE
- b _08115EC2
- .align 2, 0
-_08115EA8: .4byte gTasks
-_08115EAC: .4byte gMain
-_08115EB0: .4byte 0x02019000
-_08115EB4: .4byte gUnknown_083F8C00
-_08115EB8:
- movs r0, 0x5F
- bl m4aSongNumStart
- ldr r0, _08115EC8
- str r0, [r4]
-_08115EC2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08115EC8: .4byte sub_8115DA0
- thumb_func_end sub_8115E14
-
- thumb_func_start sub_8115ECC
-sub_8115ECC: @ 8115ECC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08115F20
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0xA]
- subs r1, r0, 0x1
- strh r1, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- ble _08115F34
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _08115EF8
- ldr r1, _08115F24
- ldrh r0, [r1]
- adds r0, 0x2
- strh r0, [r1]
-_08115EF8:
- ldr r1, _08115F28
- ldrh r0, [r1, 0x26]
- adds r0, 0x4
- strh r0, [r1, 0x26]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x68
- bne _08115F4C
- ldr r2, _08115F2C
- adds r0, r1, 0
- adds r0, 0x55
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _08115F30
- str r1, [r0]
- b _08115F4C
- .align 2, 0
-_08115F20: .4byte gTasks
-_08115F24: .4byte gSpriteCoordOffsetX
-_08115F28: .4byte 0x02019000
-_08115F2C: .4byte gSprites
-_08115F30: .4byte SpriteCallbackDummy
-_08115F34:
- movs r0, 0x1
- movs r1, 0xFF
- bl sub_8117AA8
- movs r0, 0x1
- movs r1, 0xFF
- bl sub_8117C60
- ldr r0, _08115F54
- str r0, [r4]
- movs r0, 0
- strh r0, [r4, 0xA]
-_08115F4C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08115F54: .4byte sub_8116100
- thumb_func_end sub_8115ECC
-
- thumb_func_start sub_8115F58
-sub_8115F58: @ 8115F58
- push {r4,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- lsrs r1, 16
- ldr r0, _08115F74
- ldrb r2, [r0, 0x2]
- adds r4, r0, 0
- cmp r2, 0x2
- bgt _08115F78
- cmp r2, 0x1
- bge _08115F7E
- b _08116048
- .align 2, 0
-_08115F74: .4byte 0x02019000
-_08115F78:
- cmp r2, 0x3
- beq _08115FE0
- b _08116048
-_08115F7E:
- ldr r0, _08115FA8
- ldrb r0, [r0, 0x2]
- subs r0, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bhi _08115FB0
- cmp r3, 0xB
- bls _08115F98
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0811605E
-_08115F98:
- ldr r0, _08115FAC
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- lsrs r0, 1
- b _081160F4
- .align 2, 0
-_08115FA8: .4byte gLocalTime
-_08115FAC: .4byte gUnknown_083F8DF4
-_08115FB0:
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08115FCC
- ldr r0, _08115FC8
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- lsrs r0, 1
- b _081160F4
- .align 2, 0
-_08115FC8: .4byte gUnknown_083F8DF4
-_08115FCC:
- ldr r0, _08115FDC
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- b _081160F4
- .align 2, 0
-_08115FDC: .4byte gUnknown_083F8DF4
-_08115FE0:
- ldr r0, _0811600C
- ldrb r0, [r0, 0x2]
- subs r0, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bhi _08116014
- cmp r3, 0x5
- bls _08115FFA
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0811605E
-_08115FFA:
- ldr r0, _08116010
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- lsrs r0, 1
- b _081160F4
- .align 2, 0
-_0811600C: .4byte gLocalTime
-_08116010: .4byte gUnknown_083F8DF4
-_08116014:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08116034
- cmp r3, 0x6
- bls _08116034
- ldr r0, _08116030
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- lsrs r0, 2
- b _081160F4
- .align 2, 0
-_08116030: .4byte gUnknown_083F8DF4
-_08116034:
- ldr r0, _08116044
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- lsrs r0, 1
- b _081160F4
- .align 2, 0
-_08116044: .4byte gUnknown_083F8DF4
-_08116048:
- ldr r0, _08116064
- ldrb r0, [r0, 0x2]
- subs r0, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bhi _0811607C
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08116068
-_0811605E:
- movs r0, 0x1
- b _081160F4
- .align 2, 0
-_08116064: .4byte gLocalTime
-_08116068:
- ldr r0, _08116078
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- lsrs r0, 1
- b _081160F4
- .align 2, 0
-_08116078: .4byte gUnknown_083F8DF4
-_0811607C:
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _081160B0
- cmp r3, 0xC
- bls _0811609C
- ldr r0, _08116098
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- lsrs r0, 1
- b _081160F4
- .align 2, 0
-_08116098: .4byte gUnknown_083F8DF4
-_0811609C:
- ldr r0, _081160AC
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- b _081160F4
- .align 2, 0
-_081160AC: .4byte gUnknown_083F8DF4
-_081160B0:
- movs r0, 0x80
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _081160E4
- cmp r3, 0xC
- bls _081160D0
- ldr r0, _081160CC
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- b _081160F4
- .align 2, 0
-_081160CC: .4byte gUnknown_083F8DF4
-_081160D0:
- ldr r0, _081160E0
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x1]
- b _081160F4
- .align 2, 0
-_081160E0: .4byte gUnknown_083F8DF4
-_081160E4:
- ldr r0, _081160FC
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x1]
- lsls r0, 25
- lsrs r0, 24
-_081160F4:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081160FC: .4byte gUnknown_083F8DF4
- thumb_func_end sub_8115F58
-
- thumb_func_start sub_8116100
-sub_8116100: @ 8116100
- 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 r9, r0
- movs r4, 0
- ldr r1, _08116188
- mov r0, sp
- movs r2, 0x8
- bl memcpy
- bl Random
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r7, 0
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r3, _0811618C
- ldr r1, _08116190
- mov r2, r9
- lsls r0, r2, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- ldrh r2, [r0, 0x14]
- adds r1, r3, 0
- adds r1, 0x7C
- strb r2, [r1]
- adds r1, 0x3
- strb r4, [r1]
- subs r1, 0x1
- strb r4, [r1]
- subs r1, 0x1
- strb r4, [r1]
- ldrh r0, [r0, 0x18]
- adds r1, r7, 0
- bl sub_8115F58
- adds r4, r0, 0
- lsls r4, 24
- lsrs r1, r4, 24
- adds r0, r7, 0
- bl __modsi3
- lsrs r4, 25
- subs r0, r4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08116194
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- movs r5, 0x1
- cmp r0, 0xC
- bgt _08116180
- movs r5, 0
-_08116180:
- cmp r6, 0x4F
- bhi _08116198
- lsls r0, r5, 25
- b _081161A2
- .align 2, 0
-_08116188: .4byte gUnknown_083F8ECE
-_0811618C: .4byte 0x02019000
-_08116190: .4byte gTasks
-_08116194: .4byte gLocalTime
-_08116198:
- lsls r1, r5, 24
- asrs r1, 24
- movs r0, 0x1
- subs r0, r1
- lsls r0, 25
-_081161A2:
- lsrs r5, r0, 24
- ldr r6, _081162D8
- ldrb r0, [r6, 0x4]
- lsls r0, 30
- mov r10, r0
- lsrs r0, 25
- ldr r1, _081162DC
- adds r0, r1
- lsls r4, 24
- asrs r4, 24
- ldrh r0, [r0, 0x1A]
- adds r4, r0
- adds r0, r6, 0
- adds r0, 0x80
- strh r4, [r0]
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _081161D4
- ldr r1, _081162E0
- bl __addsf3
-_081161D4:
- ldr r1, _081162E4
- bl __divsf3
- bl __fixunssfsi
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r4, 1
- adds r0, r4
- mov r8, r0
- adds r0, r6, 0
- adds r0, 0x82
- mov r2, r8
- strh r2, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- movs r0, 0x1
- ands r0, r7
- lsls r1, r5, 24
- asrs r1, 24
- adds r0, r1
- lsls r0, 1
- add r0, sp
- movs r1, 0
- ldrsh r4, [r0, r1]
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _0811621A
- ldr r1, _081162E0
- bl __addsf3
-_0811621A:
- ldr r2, _081162E8
- str r0, [r2]
- adds r7, r6, 0
- adds r7, 0x8C
- mov r1, r10
- lsrs r0, r1, 25
- ldr r2, _081162DC
- adds r0, r2
- movs r1, 0x18
- ldrsh r4, [r0, r1]
- adds r0, r4, 0
- bl __floatsisf
- adds r5, r0, 0
- cmp r4, 0
- bge _08116242
- ldr r1, _081162E0
- bl __addsf3
- adds r5, r0, 0
-_08116242:
- str r5, [r7]
- adds r7, r6, 0
- adds r7, 0x90
- ldr r1, _081162EC
- adds r0, r5, 0
- bl __mulsf3
- adds r1, r5, 0
- bl __subsf3
- adds r5, r0, 0
- mov r2, r8
- lsls r0, r2, 16
- asrs r4, r0, 16
- adds r0, r4, 0
- bl __floatsisf
- adds r2, r0, 0
- cmp r4, 0
- bge _08116272
- ldr r1, _081162E0
- bl __addsf3
- adds r2, r0, 0
-_08116272:
- adds r0, r5, 0
- adds r1, r2, 0
- bl __divsf3
- str r0, [r7]
- adds r1, r6, 0
- adds r1, 0x94
- ldr r0, _081162F0
- str r0, [r1]
- adds r1, 0x8
- ldr r0, _081162F4
- str r0, [r1]
- adds r5, r6, 0
- adds r5, 0x98
- adds r0, r4, 0
- bl __floatsisf
- adds r2, r0, 0
- cmp r4, 0
- bge _081162A2
- ldr r1, _081162E0
- bl __addsf3
- adds r2, r0, 0
-_081162A2:
- ldr r0, _081162F8
- adds r1, r2, 0
- bl __divsf3
- bl __negsf2
- str r0, [r5]
- adds r1, r6, 0
- adds r1, 0xA0
- ldr r0, _081162FC
- str r0, [r1]
- ldr r1, _08116300
- mov r2, r9
- lsls r0, r2, 2
- add r0, r9
- lsls r0, 3
- adds r0, r1
- ldr r1, _08116304
- str r1, [r0]
- 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
-_081162D8: .4byte 0x02019000
-_081162DC: .4byte gUnknown_083F8DF4
-_081162E0: .4byte 0x47800000
-_081162E4: .4byte 0x40a00000
-_081162E8: .4byte 0x02019088
-_081162EC: .4byte 0x3f000000
-_081162F0: .4byte 0x42880000
-_081162F4: .4byte 0x00000000
-_081162F8: .4byte 0x41000000
-_081162FC: .4byte 0x42100000
-_08116300: .4byte gTasks
-_08116304: .4byte sub_8116308
- thumb_func_end sub_8116100
-
- thumb_func_start sub_8116308
-sub_8116308: @ 8116308
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08116368
- ldrb r1, [r3, 0x3]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r3, 0x3]
- adds r2, r3, 0
- adds r2, 0x7C
- adds r1, r3, 0
- adds r1, 0x3C
- ldrb r2, [r2]
- adds r1, r2
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r2, _0811636C
- adds r1, r2
- str r1, [r3, 0x38]
- ldr r2, _08116370
- str r2, [r1, 0x1C]
- ldr r1, _08116374
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldrh r1, [r4, 0x14]
- adds r1, 0x1
- strh r1, [r4, 0x14]
- ldrh r0, [r4, 0x18]
- adds r0, 0x1
- strh r0, [r4, 0x18]
- movs r0, 0x6
- subs r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl sub_81182F8
- movs r0, 0x5C
- bl m4aSongNumStart
- ldr r0, _08116378
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08116368: .4byte 0x02019000
-_0811636C: .4byte gSprites
-_08116370: .4byte sub_81191F4
-_08116374: .4byte gTasks
-_08116378: .4byte sub_811637C
- thumb_func_end sub_8116308
-
- thumb_func_start sub_811637C
-sub_811637C: @ 811637C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _081163B0
- adds r0, r4, 0
- adds r0, 0x7D
- ldrb r0, [r0]
- cmp r0, 0
- beq _08116464
- ldrb r1, [r4, 0x3]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _081163B4
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08116464
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- movs r1, 0x21
- negs r1, r1
- ands r0, r1
- strb r0, [r4, 0x3]
- b _08116464
- .align 2, 0
-_081163B0: .4byte 0x02019000
-_081163B4:
- ldr r2, _08116428
- lsls r1, r5, 2
- adds r0, r1, r5
- lsls r0, 3
- adds r6, r0, r2
- movs r2, 0xA
- ldrsh r0, [r6, r2]
- adds r7, r1, 0
- cmp r0, 0
- bne _08116400
- adds r0, r4, 0
- adds r0, 0x7E
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_8116D54
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r4, 0x1A]
- lsls r1, 28
- lsrs r1, 28
- adds r2, r4, 0
- adds r2, 0x1B
- adds r1, r2
- ldrb r1, [r1]
- bl sub_8116E5C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x12]
- cmp r0, 0x1
- bne _08116400
- adds r0, r4, 0
- adds r0, 0xB8
- movs r1, 0x80
- lsls r1, 5
- bl sub_8124CE8
-_08116400:
- ldr r0, _08116428
- adds r1, r7, r5
- lsls r1, 3
- adds r4, r1, r0
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x3C
- bgt _08116430
- ldr r0, _0811642C
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08116420
- movs r0, 0x3C
- strh r0, [r4, 0xA]
-_08116420:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _08116464
- .align 2, 0
-_08116428: .4byte gTasks
-_0811642C: .4byte gMain
-_08116430:
- ldr r1, _0811646C
- ldrb r0, [r1, 0x1A]
- lsls r0, 28
- lsrs r0, 28
- adds r1, 0x1B
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8117158
- ldrh r1, [r4, 0x20]
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_8117AA8
- ldrb r1, [r4, 0x14]
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_8117C60
- movs r0, 0x20
- strh r0, [r4, 0xA]
- ldr r0, _08116470
- str r0, [r4]
-_08116464:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811646C: .4byte 0x02019000
-_08116470: .4byte sub_8116474
- thumb_func_end sub_811637C
-
- thumb_func_start sub_8116474
-sub_8116474: @ 8116474
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _081164C8
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- subs r1, r0, 0x1
- strh r1, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- ble _081164DC
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _081164A0
- ldr r1, _081164CC
- ldrh r0, [r1]
- subs r0, 0x2
- strh r0, [r1]
-_081164A0:
- ldr r1, _081164D0
- ldrh r0, [r1, 0x26]
- subs r0, 0x4
- strh r0, [r1, 0x26]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x68
- bne _08116504
- ldr r2, _081164D4
- adds r0, r1, 0
- adds r0, 0x55
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _081164D8
- str r1, [r0]
- b _08116504
- .align 2, 0
-_081164C8: .4byte gTasks
-_081164CC: .4byte gSpriteCoordOffsetX
-_081164D0: .4byte 0x02019000
-_081164D4: .4byte gSprites
-_081164D8: .4byte sub_81184CC
-_081164DC:
- ldrh r0, [r4, 0x20]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8117D68
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _081164F2
- movs r0, 0x79
- b _081164F4
-_081164F2:
- movs r0, 0x3D
-_081164F4:
- strh r0, [r4, 0xA]
- ldr r0, _0811650C
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _08116510
- str r0, [r1]
-_08116504:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811650C: .4byte gTasks
-_08116510: .4byte sub_8116514
- thumb_func_end sub_8116474
-
- thumb_func_start sub_8116514
-sub_8116514: @ 8116514
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _08116564
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- subs r1, r0, 0x1
- strh r1, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08116584
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _0811653E
- adds r0, 0xF
-_0811653E:
- asrs r0, 4
- lsls r0, 4
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- beq _08116568
- cmp r0, 0x8
- bne _08116590
- movs r0, 0
- movs r1, 0xFF
- bl sub_8117AA8
- movs r0, 0
- movs r1, 0xFF
- bl sub_8117C60
- b _08116590
- .align 2, 0
-_08116564: .4byte gTasks
-_08116568:
- ldrh r1, [r4, 0x20]
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_8117AA8
- ldrb r1, [r4, 0x14]
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_8117C60
- b _08116590
-_08116584:
- ldr r1, _08116598
- adds r0, r2, 0
- movs r2, 0x1E
- movs r3, 0
- bl sub_8116C34
-_08116590:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08116598: .4byte sub_8116638
- thumb_func_end sub_8116514
-
- thumb_func_start sub_811659C
-sub_811659C: @ 811659C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _081165F4
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08116600
- cmp r0, 0
- blt _08116600
- cmp r0, 0x2
- bgt _08116600
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _08116624
- movs r0, 0x1D
- bl sub_8053108
- ldrh r1, [r4, 0x1E]
- adds r1, 0x1
- strh r1, [r4, 0x1E]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- bcs _081165E4
- movs r0, 0x1E
- ldrsh r1, [r4, r0]
- movs r0, 0x1D
- bl sav12_xor_set
-_081165E4:
- ldr r1, _081165F8
- ldr r2, _081165FC
- adds r0, r5, 0
- movs r3, 0x3
- bl sub_8116C34
- b _08116624
- .align 2, 0
-_081165F4: .4byte gTasks
-_081165F8: .4byte sub_811677C
-_081165FC: .4byte 0x0000ffff
-_08116600:
- bl IsSEPlaying
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _08116624
- ldr r1, _0811662C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x1E]
- ldr r1, _08116630
- ldr r2, _08116634
- adds r0, r5, 0
- movs r3, 0x3
- bl sub_8116C34
-_08116624:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811662C: .4byte gTasks
-_08116630: .4byte sub_81167F4
-_08116634: .4byte 0x0000ffff
- thumb_func_end sub_811659C
-
- thumb_func_start sub_8116638
-sub_8116638: @ 8116638
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08116678
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x12
- ldrsh r1, [r0, r2]
- cmp r1, 0
- beq _081166A8
- cmp r1, 0
- blt _081166A8
- cmp r1, 0x2
- bgt _081166A8
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0xC
- bne _08116684
- ldr r0, _0811667C
- bl PlayFanfare
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08116680
- b _0811669A
- .align 2, 0
-_08116678: .4byte gTasks
-_0811667C: .4byte 0x00000185
-_08116680: .4byte gUnknown_081C41A5
-_08116684:
- movs r0, 0xC3
- lsls r0, 1
- bl PlayFanfare
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _081166A4
-_0811669A:
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- b _081166C4
- .align 2, 0
-_081166A4: .4byte gUnknown_081C4199
-_081166A8:
- movs r0, 0x20
- bl m4aSongNumStart
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _081166DC
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
-_081166C4:
- ldr r1, _081166E0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xA]
- ldr r1, _081166E4
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081166DC: .4byte gUnknown_081C41AE
-_081166E0: .4byte gTasks
-_081166E4: .4byte sub_811659C
- thumb_func_end sub_8116638
-
- thumb_func_start sub_81166E8
-sub_81166E8: @ 81166E8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0811670C
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0x16
- ldrsh r5, [r4, r0]
- cmp r5, 0
- beq _08116710
- cmp r5, 0x3
- beq _08116740
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- b _08116748
- .align 2, 0
-_0811670C: .4byte gTasks
-_08116710:
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
- movs r0, 0x15
- bl m4aSongNumStart
- ldrh r0, [r4, 0x22]
- bl sub_81180F4
- movs r2, 0x22
- ldrsh r1, [r4, r2]
- ldr r0, _08116730
- cmp r1, r0
- ble _08116734
- strh r5, [r4, 0xA]
- b _0811674A
- .align 2, 0
-_08116730: .4byte 0x0000270e
-_08116734:
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- b _08116748
-_08116740:
- movs r0, 0x15
- bl m4aSongNumStop
- movs r0, 0
-_08116748:
- strh r0, [r4, 0x16]
-_0811674A:
- ldr r0, _08116770
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08116768
- ldr r1, _08116774
- ldr r2, _08116778
- adds r0, r6, 0
- movs r3, 0x3
- bl sub_8116C34
-_08116768:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08116770: .4byte gTasks
-_08116774: .4byte sub_81167F4
-_08116778: .4byte 0x0000ffff
- thumb_func_end sub_81166E8
-
- thumb_func_start sub_811677C
-sub_811677C: @ 811677C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _081167DC
- ldr r6, _081167E0
- ldrb r2, [r6, 0x19]
- ldr r1, _081167E4
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- adds r1, r2, 0
- muls r1, r0
- adds r0, r3, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r5, _081167E8
- ldr r1, _081167EC
- adds r0, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldrb r1, [r6, 0x19]
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- muls r0, r1
- movs r1, 0
- strh r0, [r4, 0xA]
- strh r1, [r4, 0x16]
- ldr r0, _081167F0
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081167DC: .4byte gStringVar1
-_081167E0: .4byte 0x02019000
-_081167E4: .4byte gTasks
-_081167E8: .4byte gStringVar4
-_081167EC: .4byte gUnknown_081C41BD
-_081167F0: .4byte sub_81166E8
- thumb_func_end sub_811677C
-
- thumb_func_start sub_81167F4
-sub_81167F4: @ 81167F4
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r4, _08116868
- ldr r1, _0811686C
- adds r0, r4, 0
- bl sub_8124D3C
- adds r3, r4, 0
- adds r3, 0xB8
- ldrb r2, [r3]
- movs r1, 0x7F
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3]
- subs r3, 0xC
- ldrb r2, [r3]
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3]
- adds r2, r4, 0
- adds r2, 0xA0
- ldrb r0, [r2]
- ands r1, r0
- strb r1, [r2]
- ldr r6, _08116870
- ldr r2, _08116874
- ldr r0, _08116878
- lsls r3, r5, 2
- adds r3, r5
- lsls r3, 3
- adds r3, r0
- movs r0, 0x20
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- adds r4, r0
- subs r4, 0x75
- ldrb r1, [r4]
- 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
- strb r1, [r0]
- ldr r0, _0811687C
- str r0, [r3]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08116868: .4byte 0x020190b8
-_0811686C: .4byte 0x0000ffff
-_08116870: .4byte gSprites
-_08116874: .4byte gUnknown_083F8C00
-_08116878: .4byte gTasks
-_0811687C: .4byte sub_8116880
- thumb_func_end sub_81167F4
-
- thumb_func_start sub_8116880
-sub_8116880: @ 8116880
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r1, _08116954
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- strh r5, [r0, 0x10]
- ldr r4, _08116958
- ldrb r0, [r4, 0x1A]
- lsls r0, 28
- lsrs r0, 28
- adds r1, r4, 0
- adds r1, 0x1B
- adds r0, r1
- strb r2, [r0]
- movs r0, 0
- bl sub_8117158
- ldr r3, _0811695C
- adds r0, r4, 0
- adds r0, 0x6C
- ldrb r1, [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]
- adds r7, r3, 0
- movs r0, 0x3C
- adds r0, r4
- mov r10, r0
- movs r1, 0x8
- adds r1, r7
- mov r8, r1
- ldr r0, _08116960
- mov r9, r0
- ldr r1, _08116964
- mov r12, r1
-_081168E4:
- adds r0, r5, 0
- adds r0, 0x29
- add r0, r10
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r7
- adds r2, r3, 0
- adds r2, 0x40
- add r0, r8
- ldr r0, [r0]
- ldr r0, [r0]
- ldrh r1, [r0]
- ldrh r2, [r2]
- adds r1, r2
- mov r0, r12
- ands r1, r0
- ldrh r2, [r3, 0x4]
- mov r0, r9
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _081168E4
- ldr r0, _08116954
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r2, r1, r0
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- ldrb r4, [r4, 0x19]
- cmp r0, r4
- blt _081169BC
- movs r1, 0x14
- ldrsh r0, [r2, r1]
- cmp r0, 0x6
- bne _08116970
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08116968
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _0811696C
- b _08116992
- .align 2, 0
-_08116954: .4byte gTasks
-_08116958: .4byte 0x02019000
-_0811695C: .4byte gSprites
-_08116960: .4byte 0xfffffc00
-_08116964: .4byte 0x000003ff
-_08116968: .4byte gUnknown_081C41F1
-_0811696C: .4byte dp01t_12_3_battle_menu
-_08116970:
- movs r0, 0x22
- ldrsh r1, [r2, r0]
- ldr r0, _081169A0
- cmp r1, r0
- bne _081169B0
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _081169A4
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _081169A8
-_08116992:
- ldr r2, _081169AC
- adds r0, r6, 0
- movs r3, 0x3
- bl sub_8116C34
- b _081169DE
- .align 2, 0
-_081169A0: .4byte 0x0000270f
-_081169A4: .4byte gUnknown_081C4231
-_081169A8: .4byte sub_8115734
-_081169AC: .4byte 0x0000ffff
-_081169B0:
- ldr r0, _081169B8
- str r0, [r2]
- b _081169DE
- .align 2, 0
-_081169B8: .4byte sub_8115734
-_081169BC:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _081169EC
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _081169F0
- adds r0, r6, 0
- movs r2, 0x3C
- movs r3, 0x3
- bl sub_8116C34
-_081169DE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081169EC: .4byte gUnknown_081C41D2
-_081169F0: .4byte sub_81157AC
- thumb_func_end sub_8116880
-
- thumb_func_start dp01t_12_3_battle_menu
-dp01t_12_3_battle_menu: @ 81169F4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r1, _08116A84
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r4, [r0, 0x14]
- adds r0, r5, 0
- bl sub_8116CAC
- bl sub_8116CF8
- bl sub_81185E8
- movs r0, 0
- bl sub_8117158
- movs r0, 0x6
- bl sub_81182F8
- ldr r7, _08116A88
- ldr r3, _08116A8C
- movs r6, 0x5
- negs r6, r6
-_08116A2A:
- adds r0, r4, 0x7
- adds r0, r3
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xB
- bls _08116A2A
- ldr r1, _08116A84
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r2, r0, r1
- movs r0, 0x22
- ldrsh r1, [r2, r0]
- ldr r0, _08116A90
- cmp r1, r0
- bne _08116AA0
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08116A94
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _08116A98
- ldr r2, _08116A9C
- adds r0, r5, 0
- movs r3, 0x3
- bl sub_8116C34
- b _08116AA4
- .align 2, 0
-_08116A84: .4byte gTasks
-_08116A88: .4byte gSprites
-_08116A8C: .4byte 0x0201903c
-_08116A90: .4byte 0x0000270f
-_08116A94: .4byte gUnknown_081C4231
-_08116A98: .4byte sub_8115734
-_08116A9C: .4byte 0x0000ffff
-_08116AA0:
- ldr r0, _08116AAC
- str r0, [r2]
-_08116AA4:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08116AAC: .4byte sub_8115734
- thumb_func_end dp01t_12_3_battle_menu
-
- thumb_func_start sub_8116AB0
-sub_8116AB0: @ 8116AB0
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _08116AF0
- ldr r1, _08116AF4
- adds r0, r4, 0
- bl sub_8124D3C
- adds r0, r4, 0
- bl sub_8124918
- ldr r1, _08116AF8
- ldr r2, _08116AFC
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r2
- ldrh r0, [r0, 0x22]
- ldr r2, _08116B00
- adds r1, r2
- strh r0, [r1]
- subs r4, 0xB8
- lsls r0, 16
- lsrs r0, 16
- ldrb r4, [r4, 0x19]
- cmp r0, r4
- bcs _08116B08
- ldr r1, _08116B04
- movs r0, 0x1
- b _08116B0C
- .align 2, 0
-_08116AF0: .4byte 0x020190b8
-_08116AF4: .4byte 0x0000ffff
-_08116AF8: .4byte gSaveBlock1
-_08116AFC: .4byte gTasks
-_08116B00: .4byte 0x00000494
-_08116B04: .4byte gUnknown_0202E8CC
-_08116B08:
- ldr r1, _08116B34
- movs r0, 0
-_08116B0C:
- strh r0, [r1]
- movs r0, 0
- str r0, [sp]
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginHardwarePaletteFade
- ldr r1, _08116B38
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _08116B3C
- str r1, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08116B34: .4byte gUnknown_0202E8CC
-_08116B38: .4byte gTasks
-_08116B3C: .4byte sub_8116B40
- thumb_func_end sub_8116AB0
-
- thumb_func_start sub_8116B40
-sub_8116B40: @ 8116B40
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl UpdatePaletteFade
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08116B9E
- movs r0, 0
- bl SetVBlankCallback
- ldr r0, _08116BA4
- movs r2, 0xBE
- lsls r2, 1
- movs r1, 0
- bl memset
- ldr r1, _08116BA8
- ldr r0, _08116BAC
- strh r4, [r0]
- strh r4, [r1]
- bl sub_80F9368
- bl FreeAllSpritePalettes
- bl ResetPaletteFade
- bl ResetSpriteData
- bl sub_80F9020
- ldr r0, _08116BB0
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- ldr r1, _08116BB4
- ldr r0, _08116BB8
- str r0, [r1]
- ldr r0, _08116BBC
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_08116B9E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08116BA4: .4byte 0x02019000
-_08116BA8: .4byte gSpriteCoordOffsetX
-_08116BAC: .4byte gSpriteCoordOffsetY
-_08116BB0: .4byte REG_BLDCNT
-_08116BB4: .4byte gUnknown_0300485C
-_08116BB8: .4byte sub_8080990
-_08116BBC: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_8116B40
-
- thumb_func_start sub_8116BC0
-sub_8116BC0: @ 8116BC0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _08116C24
- adds r7, r0, 0
- adds r7, 0xA8
- ldrh r1, [r7]
- adds r6, r0, 0
- cmp r1, 0
- beq _08116BE4
- ldr r0, _08116C28
- adds r2, r6, 0
- adds r2, 0xAA
- ldrh r1, [r0, 0x2E]
- ldrh r0, [r2]
- ands r0, r1
- cmp r0, 0
- beq _08116C0E
-_08116BE4:
- ldr r1, _08116C2C
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- adds r5, r6, 0
- adds r5, 0xAC
- ldr r1, [r5]
- str r1, [r0]
- adds r4, r6, 0
- adds r4, 0xAA
- ldrh r0, [r4]
- cmp r0, 0
- beq _08116C06
- movs r0, 0x5
- bl PlaySE
-_08116C06:
- movs r0, 0
- str r0, [r5]
- strh r0, [r4]
- strh r0, [r7]
-_08116C0E:
- adds r2, r6, 0
- adds r2, 0xA8
- ldrh r1, [r2]
- ldr r0, _08116C30
- cmp r1, r0
- beq _08116C1E
- subs r0, r1, 0x1
- strh r0, [r2]
-_08116C1E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08116C24: .4byte 0x02019000
-_08116C28: .4byte gMain
-_08116C2C: .4byte gTasks
-_08116C30: .4byte 0x0000ffff
- thumb_func_end sub_8116BC0
-
- thumb_func_start sub_8116C34
-sub_8116C34: @ 8116C34
- push {r4-r7,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r2, 16
- lsrs r4, r2, 16
- lsls r3, 16
- lsrs r3, 16
- ldr r0, _08116C84
- mov r12, r0
- mov r2, r12
- adds r2, 0xB4
- ldr r1, _08116C88
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- mov r2, r12
- adds r7, r1, 0
- cmp r5, 0
- bne _08116C64
- adds r5, r0, 0
-_08116C64:
- adds r0, r2, 0
- adds r0, 0xAC
- str r5, [r0]
- subs r0, 0x4
- strh r4, [r0]
- ldr r0, _08116C8C
- cmp r4, r0
- bne _08116C90
- cmp r3, 0
- bne _08116C90
- adds r1, r2, 0
- adds r1, 0xAA
- ldrh r0, [r1]
- orrs r4, r0
- strh r4, [r1]
- b _08116C96
- .align 2, 0
-_08116C84: .4byte 0x02019000
-_08116C88: .4byte gTasks
-_08116C8C: .4byte 0x0000ffff
-_08116C90:
- adds r0, r2, 0
- adds r0, 0xAA
- strh r3, [r0]
-_08116C96:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r7
- ldr r1, _08116CA8
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08116CA8: .4byte sub_8116BC0
- thumb_func_end sub_8116C34
-
- thumb_func_start sub_8116CAC
-sub_8116CAC: @ 8116CAC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r2, 0
- ldr r0, _08116CF0
- strb r2, [r0]
- movs r1, 0
- strb r1, [r0, 0x3]
- adds r3, r0, 0
- ldr r6, _08116CF4
- adds r4, r3, 0
- adds r4, 0x1B
-_08116CC4:
- adds r0, r2, r4
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _08116CC4
- ldrb r1, [r3, 0x1A]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- strb r0, [r3, 0x1A]
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
- movs r1, 0
- strh r1, [r0, 0xA]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08116CF0: .4byte 0x02019000
-_08116CF4: .4byte gTasks
- thumb_func_end sub_8116CAC
-
- thumb_func_start sub_8116CF8
-sub_8116CF8: @ 8116CF8
- push {lr}
- ldr r1, _08116D48
- movs r0, 0
- str r0, [r1, 0x8]
- movs r2, 0
- adds r1, 0xC
- movs r3, 0
-_08116D06:
- adds r0, r2, r1
- strb r3, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _08116D06
- movs r2, 0
- ldr r3, _08116D4C
- movs r1, 0
-_08116D1A:
- adds r0, r2, r3
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _08116D1A
- movs r2, 0
- ldr r3, _08116D50
- movs r1, 0
-_08116D2E:
- adds r0, r2, r3
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _08116D2E
- movs r0, 0x1
- movs r1, 0xFF
- bl sub_8117C60
- pop {r0}
- bx r0
- .align 2, 0
-_08116D48: .4byte 0x02019000
-_08116D4C: .4byte 0x02019012
-_08116D50: .4byte 0x02019016
- thumb_func_end sub_8116CF8
-
- thumb_func_start sub_8116D54
-sub_8116D54: @ 8116D54
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x1C
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- mov r1, sp
- ldr r0, _08116D88
- ldm r0!, {r2,r4,r6}
- stm r1!, {r2,r4,r6}
- ldr r0, [r0]
- str r0, [r1]
- add r2, sp, 0x10
- adds r1, r2, 0
- ldr r0, _08116D8C
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- mov r9, r2
- cmp r5, 0xB
- bls _08116D90
- movs r0, 0
- b _08116E38
- .align 2, 0
-_08116D88: .4byte gUnknown_083F8ED8
-_08116D8C: .4byte gUnknown_083F8EE8
-_08116D90:
- ldr r6, _08116E48
- ldr r1, _08116E4C
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r7, 0x14
- ldrsh r2, [r0, r7]
- adds r2, r6, r2
- ldr r4, _08116E50
- lsls r5, 3
- adds r3, r5, r4
- ldrb r1, [r3, 0x2]
- strb r1, [r2, 0xB]
- ldrb r1, [r3, 0x2]
- strh r1, [r0, 0x20]
- adds r0, r4, 0x4
- adds r0, r5, r0
- ldr r1, [r6, 0x8]
- ldr r0, [r0]
- orrs r1, r0
- str r1, [r6, 0x8]
- movs r3, 0
- mov r8, r4
- mov r12, r5
- adds r5, r0, 0
- adds r4, r6, 0
- adds r4, 0x12
-_08116DC8:
- lsls r0, r3, 2
- mov r1, sp
- adds r2, r1, r0
- ldr r0, [r2]
- ands r0, r5
- cmp r0, 0
- beq _08116DDE
- adds r1, r3, r4
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08116DDE:
- adds r0, r3, r4
- ldrb r0, [r0]
- cmp r0, 0x2
- bls _08116DEE
- ldr r0, [r6, 0x8]
- ldr r1, [r2]
- orrs r0, r1
- str r0, [r6, 0x8]
-_08116DEE:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _08116DC8
- movs r2, 0
- ldr r0, _08116E54
- add r0, r12
- ldr r7, [r0]
- ldr r4, _08116E58
- mov r5, r9
-_08116E04:
- lsls r0, r2, 2
- adds r3, r5, r0
- ldr r0, [r3]
- ands r0, r7
- cmp r0, 0
- beq _08116E18
- adds r1, r2, r4
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08116E18:
- adds r0, r2, r4
- ldrb r0, [r0]
- cmp r0, 0x3
- bls _08116E28
- ldr r0, [r6, 0x8]
- ldr r1, [r3]
- orrs r0, r1
- str r0, [r6, 0x8]
-_08116E28:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _08116E04
- mov r0, r12
- add r0, r8
- ldrb r0, [r0, 0x2]
-_08116E38:
- add sp, 0x1C
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08116E48: .4byte 0x02019000
-_08116E4C: .4byte gTasks
-_08116E50: .4byte gUnknown_083F8D90
-_08116E54: .4byte gUnknown_083F8D94
-_08116E58: .4byte 0x02019016
- thumb_func_end sub_8116D54
-
- thumb_func_start sub_8116E5C
-sub_8116E5C: @ 8116E5C
- push {lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r2, r1, 24
- lsrs r3, r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x12
- bhi _08116EF0
- cmp r2, 0xF
- bhi _08116EEC
- lsls r0, r2, 2
- ldr r1, _08116E80
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08116E80: .4byte _08116E84
- .align 2, 0
-_08116E84:
- .4byte _08116EC4
- .4byte _08116EC8
- .4byte _08116EC8
- .4byte _08116EC8
- .4byte _08116EC8
- .4byte _08116EDC
- .4byte _08116EEC
- .4byte _08116EEC
- .4byte _08116EEC
- .4byte _08116EEC
- .4byte _08116EDC
- .4byte _08116EEC
- .4byte _08116EEC
- .4byte _08116EEC
- .4byte _08116EEC
- .4byte _08116EDC
-_08116EC4:
- movs r0, 0x3
- b _08116EF2
-_08116EC8:
- adds r0, r2, 0x5
- cmp r3, r0
- beq _08116EE8
- adds r0, 0x5
- cmp r3, r0
- beq _08116EE8
- adds r0, 0x5
- cmp r3, r0
- bne _08116EF0
- b _08116EE8
-_08116EDC:
- adds r0, r2, 0x1
- cmp r3, r0
- blt _08116EF0
- adds r0, r2, 0x4
- cmp r3, r0
- bgt _08116EF0
-_08116EE8:
- movs r0, 0x1
- b _08116EF2
-_08116EEC:
- cmp r3, r2
- beq _08116EE8
-_08116EF0:
- movs r0, 0
-_08116EF2:
- pop {r1}
- bx r1
- thumb_func_end sub_8116E5C
-
- thumb_func_start sub_8116EF8
-sub_8116EF8: @ 8116EF8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- str r0, [sp, 0x18]
- cmp r6, 0xA
- beq _08116F1E
- cmp r6, 0xA
- bgt _08116F1A
- cmp r6, 0x5
- beq _08116F1E
- b _08116F7C
-_08116F1A:
- cmp r6, 0xF
- bne _08116F7C
-_08116F1E:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r6, 0x5
- ldr r7, _08116F70
- cmp r4, r0
- bge _08116F5E
- adds r1, r7, 0
- subs r1, 0xB8
- ldr r3, _08116F74
- ldr r5, [r1, 0x8]
- adds r6, r3, 0
- adds r6, 0x8
- adds r2, r0, 0
-_08116F3A:
- lsls r0, r4, 2
- adds r0, r4
- lsls r1, r0, 2
- adds r0, r1, r6
- ldr r0, [r0]
- ands r0, r5
- cmp r0, 0
- bne _08116F54
- adds r0, r1, r3
- ldrh r0, [r0, 0x10]
- ldr r1, [sp, 0x18]
- orrs r1, r0
- str r1, [sp, 0x18]
-_08116F54:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r2
- blt _08116F3A
-_08116F5E:
- ldr r0, _08116F78
- ldr r2, [sp, 0x18]
- ands r2, r0
- str r2, [sp, 0x18]
- adds r0, r7, 0
- adds r1, r2, 0
- bl sub_8124CE8
- b _0811713C
- .align 2, 0
-_08116F70: .4byte 0x020190b8
-_08116F74: .4byte gUnknown_083F8C00
-_08116F78: .4byte 0x0000dfff
-_08116F7C:
- mov r0, sp
- ldr r1, _08116FC8
- ldm r1!, {r2-r4}
- stm r0!, {r2-r4}
- ldm r1!, {r2-r4}
- stm r0!, {r2-r4}
- subs r0, r6, 0x1
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0x1
- mov r10, r3
- cmp r0, 0x3
- bhi _08116F9A
- movs r4, 0x3
- mov r10, r4
-_08116F9A:
- adds r0, r6, 0
- movs r1, 0x5
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 8
- ldr r1, _08116FCC
- adds r0, r1
- lsrs r7, r0, 16
- adds r0, r6, 0
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _08116FF8
- cmp r0, 0x2
- bgt _08116FD4
- cmp r0, 0x1
- beq _08116FE4
- ldr r4, _08116FD0
- b _0811703A
- .align 2, 0
-_08116FC8: .4byte gUnknown_083F8E9C
-_08116FCC: .4byte 0xffff0000
-_08116FD0: .4byte 0x02019000
-_08116FD4:
- cmp r0, 0x3
- beq _0811700C
- cmp r0, 0x4
- beq _08117020
- ldr r4, _08116FE0
- b _0811703A
- .align 2, 0
-_08116FE0: .4byte 0x02019000
-_08116FE4:
- ldr r3, _08116FF0
- ldr r2, _08116FF4
- adds r0, r2, 0
- adds r0, 0x43
- b _08117028
- .align 2, 0
-_08116FF0: .4byte gSprites
-_08116FF4: .4byte 0x02019000
-_08116FF8:
- ldr r3, _08117004
- ldr r2, _08117008
- adds r0, r2, 0
- adds r0, 0x44
- b _08117028
- .align 2, 0
-_08117004: .4byte gSprites
-_08117008: .4byte 0x02019000
-_0811700C:
- ldr r3, _08117018
- ldr r2, _0811701C
- adds r0, r2, 0
- adds r0, 0x45
- b _08117028
- .align 2, 0
-_08117018: .4byte gSprites
-_0811701C: .4byte 0x02019000
-_08117020:
- ldr r3, _08117088
- ldr r2, _0811708C
- adds r0, r2, 0
- adds r0, 0x46
-_08117028:
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- lsls r7, r0, 4
- adds r4, r2, 0
-_0811703A:
- mov r2, r10
- cmp r2, 0x1
- bne _08117094
- ldr r1, _08117090
- lsls r2, r6, 2
- adds r0, r2, r6
- lsls r0, 2
- adds r1, 0x8
- adds r0, r1
- ldr r1, [r4, 0x8]
- ldr r0, [r0]
- ands r1, r0
- str r2, [sp, 0x1C]
- cmp r1, 0
- bne _0811713C
- adds r0, r6, 0
- movs r1, 0x5
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- subs r1, r0, 0x1
- lsls r1, 3
- mov r3, sp
- adds r2, r3, r1
- ldrh r1, [r2, 0x2]
- adds r1, r7, r1
- strh r1, [r2, 0x2]
- adds r1, r4, 0
- adds r1, 0xB8
- lsls r0, 3
- subs r0, 0x8
- adds r2, r3, r0
- adds r0, r1, 0
- movs r1, 0xD
- bl sub_812492C
- b _08117122
- .align 2, 0
-_08117088: .4byte gSprites
-_0811708C: .4byte 0x02019000
-_08117090: .4byte gUnknown_083F8C00
-_08117094:
- movs r4, 0
- lsls r0, r6, 2
- str r0, [sp, 0x1C]
- ldr r1, _0811714C
- mov r8, r1
- ldr r2, _08117150
- mov r9, r2
-_081170A2:
- lsls r0, r4, 2
- adds r0, r4
- adds r0, r6, r0
- adds r0, 0x5
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r5, r0, 2
- mov r0, r9
- adds r0, 0x8
- adds r0, r5, r0
- mov r3, r8
- ldr r1, [r3, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _0811710E
- adds r0, r2, 0
- movs r1, 0x5
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- subs r1, r0, 0x1
- lsls r1, 3
- mov r3, sp
- adds r2, r3, r1
- ldrh r1, [r2, 0x2]
- adds r1, r7, r1
- strh r1, [r2, 0x2]
- adds r1, r4, 0
- adds r1, 0xD
- lsls r1, 24
- lsrs r1, 24
- lsls r0, 3
- subs r0, 0x8
- adds r2, r3, r0
- mov r0, r8
- adds r0, 0xB8
- bl sub_812492C
- mov r0, r10
- cmp r0, 0x3
- bne _08117104
- mov r1, r9
- adds r0, r5, r1
- ldrh r0, [r0, 0x10]
- str r0, [sp, 0x18]
-_08117104:
- mov r0, r10
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
-_0811710E:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081170A2
- mov r2, r10
- cmp r2, 0x2
- beq _08117122
- movs r3, 0
- str r3, [sp, 0x18]
-_08117122:
- ldr r0, _08117154
- ldr r2, _08117150
- ldr r4, [sp, 0x1C]
- adds r1, r4, r6
- lsls r1, 2
- adds r1, r2
- ldrh r1, [r1, 0x10]
- ldr r2, [sp, 0x18]
- orrs r2, r1
- str r2, [sp, 0x18]
- adds r1, r2, 0
- bl sub_8124CE8
-_0811713C:
- 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
-_0811714C: .4byte 0x02019000
-_08117150: .4byte gUnknown_083F8C00
-_08117154: .4byte 0x020190b8
- thumb_func_end sub_8116EF8
-
- thumb_func_start sub_8117158
-sub_8117158: @ 8117158
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _0811719C
- movs r0, 0x1
- strh r0, [r4, 0x2A]
- movs r0, 0
- movs r1, 0
- bl sub_8117AA8
- ldr r0, _081171A0
- ldr r1, _081171A4
- adds r4, r1
- movs r1, 0x10
- str r1, [sp]
- movs r1, 0xD
- str r1, [sp, 0x4]
- adds r1, r4, 0
- movs r2, 0xE
- movs r3, 0x7
- bl sub_8124E2C
- cmp r5, 0xF
- bhi _08117250
- lsls r0, r5, 2
- ldr r1, _081171A8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0811719C: .4byte 0x02019000
-_081171A0: .4byte gBG1TilemapBuffer
-_081171A4: .4byte 0xfffff800
-_081171A8: .4byte _081171AC
- .align 2, 0
-_081171AC:
- .4byte _08117360
- .4byte _081171EC
- .4byte _081171EC
- .4byte _081171EC
- .4byte _081171EC
- .4byte _08117220
- .4byte _08117250
- .4byte _08117250
- .4byte _08117250
- .4byte _08117250
- .4byte _08117220
- .4byte _08117250
- .4byte _08117250
- .4byte _08117250
- .4byte _08117250
- .4byte _08117220
-_081171EC:
- movs r0, 0x4
- str r0, [sp, 0x18]
- add r1, sp, 0x8
- movs r0, 0
- strb r0, [r1]
- adds r0, r1, 0
- ldrb r0, [r0]
- cmp r0, 0x3
- bhi _08117258
- add r4, sp, 0x10
- adds r3, r1, 0
-_08117202:
- ldrb r2, [r3]
- adds r2, r4
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- adds r0, r5, r0
- strb r0, [r2]
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- ldrb r0, [r3]
- ldr r1, [sp, 0x18]
- cmp r0, r1
- bcc _08117202
- b _08117258
-_08117220:
- movs r0, 0x5
- str r0, [sp, 0x18]
- add r1, sp, 0x8
- movs r0, 0
- strb r0, [r1]
- adds r0, r1, 0
- ldrb r0, [r0]
- cmp r0, 0x4
- bhi _08117258
- add r3, sp, 0x10
- adds r2, r1, 0
-_08117236:
- ldrb r1, [r2]
- adds r1, r3
- ldrb r0, [r2]
- adds r0, r5, r0
- strb r0, [r1]
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- ldrb r0, [r2]
- ldr r1, [sp, 0x18]
- cmp r0, r1
- bcc _08117236
- b _08117258
-_08117250:
- movs r0, 0x1
- str r0, [sp, 0x18]
- add r0, sp, 0x10
- strb r5, [r0]
-_08117258:
- add r1, sp, 0x8
- movs r0, 0
- strb r0, [r1]
- adds r0, r1, 0
- ldrb r0, [r0]
- ldr r1, [sp, 0x18]
- cmp r0, r1
- bcs _08117360
- mov r0, sp
- adds r0, 0xE
- str r0, [sp, 0x1C]
- add r1, sp, 0x10
- mov r9, r1
- add r0, sp, 0x8
- mov r12, r0
- mov r1, sp
- adds r1, 0xA
- str r1, [sp, 0x20]
-_0811727C:
- mov r1, r12
- ldrb r0, [r1]
- add r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- ldr r1, _08117370
- adds r0, r1
- ldrb r0, [r0, 0x6]
- ldr r1, [sp, 0x1C]
- strb r0, [r1]
- mov r1, r12
- ldrb r0, [r1]
- add r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- ldr r1, _08117370
- adds r0, r1
- ldrb r0, [r0, 0x3]
- ldr r1, [sp, 0x20]
- strh r0, [r1]
- mov r4, sp
- adds r4, 0x9
- movs r0, 0
- strb r0, [r4]
- ldrb r0, [r4]
- cmp r0, 0x2
- bhi _08117350
- add r5, sp, 0xC
- ldr r7, [sp, 0x20]
- ldr r0, _08117374
- mov r8, r0
- ldr r6, [sp, 0x1C]
- ldr r1, _08117378
- mov r10, r1
-_081172C8:
- mov r1, r12
- ldrb r0, [r1]
- add r0, r9
- ldrb r0, [r0]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- ldr r0, _08117370
- adds r1, r0
- adds r3, r4, 0
- ldrb r0, [r4]
- ldrb r1, [r1, 0x4]
- adds r0, r1
- lsls r0, 5
- strh r0, [r5]
- ldrh r0, [r7]
- ldrh r2, [r5]
- adds r2, r0
- lsls r2, 1
- add r2, r8
- ldrb r0, [r6]
- ldrb r1, [r4]
- adds r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- add r0, r10
- ldrh r0, [r0]
- strh r0, [r2]
- ldrh r0, [r7]
- ldrh r2, [r5]
- adds r2, r0
- adds r2, 0x1
- lsls r2, 1
- add r2, r8
- ldrb r0, [r6]
- ldrb r1, [r4]
- adds r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- mov r1, r10
- adds r1, 0x2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- ldrh r0, [r7]
- ldrh r2, [r5]
- adds r2, r0
- adds r2, 0x2
- lsls r2, 1
- add r2, r8
- ldrb r0, [r6]
- ldrb r1, [r4]
- adds r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- ldr r1, _0811737C
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldrb r0, [r3]
- cmp r0, 0x2
- bls _081172C8
-_08117350:
- mov r1, r12
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldrb r0, [r1]
- ldr r1, [sp, 0x18]
- cmp r0, r1
- bcc _0811727C
-_08117360:
- 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
-_08117370: .4byte gUnknown_083F8C00
-_08117374: .4byte gBG1TilemapBuffer
-_08117378: .4byte 0x020189a0
-_0811737C: .4byte 0x020189a4
- thumb_func_end sub_8117158
-
- thumb_func_start sub_8117380
-sub_8117380: @ 8117380
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _081173B8
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x13
- bls _08117398
- movs r4, 0
-_08117398:
- ldr r3, _081173BC
- lsls r0, r4, 2
- adds r0, r4
- lsls r2, r0, 2
- adds r0, r2, r3
- ldrb r0, [r0, 0x1]
- lsls r0, 28
- lsrs r0, 28
- cmp r0, 0x4
- beq _081173EC
- cmp r0, 0x4
- bgt _081173C0
- cmp r0, 0x3
- beq _081173C6
- b _08117428
- .align 2, 0
-_081173B8: .4byte gUnknown_083F8EF4
-_081173BC: .4byte gUnknown_083F8C00
-_081173C0:
- cmp r0, 0xC
- beq _0811740C
- b _08117428
-_081173C6:
- adds r0, r4, 0
- movs r1, 0x5
- bl __udivsi3
- subs r0, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _081173E8
- adds r0, 0x16
- adds r1, r4, r0
- ldrb r0, [r1]
- cmp r0, 0x3
- bhi _08117428
- ldrb r0, [r1]
- adds r0, 0x1
- b _08117402
- .align 2, 0
-_081173E8: .4byte 0x02019000
-_081173EC:
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08117408
- adds r0, 0x12
- adds r1, r4, r0
- ldrb r0, [r1]
- cmp r0, 0x2
- bhi _08117428
- ldrb r0, [r1]
- adds r0, 0x2
-_08117402:
- add r0, sp
- ldrb r0, [r0]
- b _0811742A
- .align 2, 0
-_08117408: .4byte 0x02019000
-_0811740C:
- ldr r1, _08117424
- adds r0, r3, 0
- adds r0, 0x8
- adds r0, r2, r0
- ldr r1, [r1, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08117428
- mov r0, sp
- ldrb r0, [r0, 0x4]
- b _0811742A
- .align 2, 0
-_08117424: .4byte 0x02019000
-_08117428:
- movs r0, 0
-_0811742A:
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8117380
-
- thumb_func_start sub_8117434
-sub_8117434: @ 8117434
- push {r4-r6,lr}
- ldr r1, _081174AC
- ldr r4, _081174B0
- ldrh r0, [r4, 0x2C]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x2E]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x30]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x32]
- strh r0, [r1]
- movs r0, 0x2E
- ldrsh r2, [r4, r0]
- ldr r0, _081174B4
- movs r3, 0
- ldrsh r1, [r0, r3]
- adds r1, 0x50
- adds r0, r2, 0
- muls r0, r1
- movs r2, 0xE8
- lsls r2, 7
- subs r2, r0
- movs r6, 0x2C
- ldrsh r5, [r4, r6]
- ldr r0, _081174B8
- movs r6, 0
- ldrsh r3, [r0, r6]
- adds r3, 0x74
- adds r0, r5, 0
- muls r0, r3
- subs r2, r0
- movs r5, 0x32
- ldrsh r0, [r4, r5]
- muls r0, r1
- movs r1, 0xA8
- lsls r1, 7
- subs r1, r0
- movs r6, 0x30
- ldrsh r0, [r4, r6]
- muls r0, r3
- subs r1, r0
- ldr r0, _081174BC
- strh r2, [r0]
- adds r0, 0x2
- ldr r3, _081174C0
- ands r2, r3
- asrs r2, 16
- strh r2, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- ands r1, r3
- asrs r1, 16
- strh r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081174AC: .4byte REG_BG2PA
-_081174B0: .4byte 0x02019000
-_081174B4: .4byte gSpriteCoordOffsetY
-_081174B8: .4byte gSpriteCoordOffsetX
-_081174BC: .4byte REG_BG2X_L
-_081174C0: .4byte 0x0fff0000
- thumb_func_end sub_8117434
-
- thumb_func_start sub_81174C4
-sub_81174C4: @ 81174C4
- push {lr}
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- muls r0, r1
- adds r1, r0, 0
- cmp r0, 0
- bge _081174D8
- adds r1, 0xFF
-_081174D8:
- lsls r0, r1, 8
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_81174C4
-
- thumb_func_start sub_81174E0
-sub_81174E0: @ 81174E0
- push {lr}
- adds r1, r0, 0
- movs r0, 0x80
- lsls r0, 9
- lsls r1, 16
- asrs r1, 16
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_81174E0
-
- thumb_func_start sub_81174F8
-sub_81174F8: @ 81174F8
- 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 r0, _08117520
- bl sub_814AAF8
- ldr r1, _08117524
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08117520: .4byte 0x00002d9e
-_08117524: .4byte gUnknown_083F8EB4
- thumb_func_end sub_81174F8
-
- thumb_func_start sub_8117528
-sub_8117528: @ 8117528
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08117554
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0811754C
- movs r0, 0
- bl SetVBlankCallback
- ldr r0, _08117558
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_0811754C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08117554: .4byte gPaletteFade
-_08117558: .4byte sub_8115384
- thumb_func_end sub_8117528
-
- thumb_func_start sub_811755C
-sub_811755C: @ 811755C
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1A
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- bl MenuZeroFillScreen
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r2, _081175B4
- ldrb r1, [r2, 0x8]
- lsls r1, 26
- lsrs r1, 26
- ldrb r3, [r2, 0x4]
- movs r0, 0x40
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x4]
- bl UpdatePaletteFade
- ldr r1, _081175B8
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _081175BC
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081175B4: .4byte gPaletteFade
-_081175B8: .4byte gTasks
-_081175BC: .4byte sub_8117528
- thumb_func_end sub_811755C
-
- thumb_func_start sub_81175C0
-sub_81175C0: @ 81175C0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl MenuZeroFillScreen
- bl ScriptContext2_Disable
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81175C0
-
- thumb_func_start sub_81175DC
-sub_81175DC: @ 81175DC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r1, _08117624
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- adds r2, r1, 0x1
- strh r2, [r0, 0x8]
- ldr r0, _08117628
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08117608
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _0811761C
-_08117608:
- ldr r1, _0811762C
- movs r0, 0x1
- strh r0, [r1]
- bl MenuZeroFillScreen
- bl ScriptContext2_Disable
- adds r0, r4, 0
- bl DestroyTask
-_0811761C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08117624: .4byte gTasks
-_08117628: .4byte gMain
-_0811762C: .4byte gUnknown_0202E8CC
- thumb_func_end sub_81175DC
-
- thumb_func_start sub_8117630
-sub_8117630: @ 8117630
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r2, _0811768C
- ldr r0, _08117690
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- lsrs r1, 7
- lsls r1, 1
- adds r0, r1
- adds r0, r2
- ldrb r1, [r0]
- ldr r0, _08117694
- movs r2, 0x2
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- ldr r5, _08117698
- ldr r1, _0811769C
- adds r0, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _081176A0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _081176A4
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811768C: .4byte gUnknown_083F8DF0
-_08117690: .4byte gUnknown_0202E8CC
-_08117694: .4byte gStringVar1
-_08117698: .4byte gStringVar4
-_0811769C: .4byte gUnknown_081C40DF
-_081176A0: .4byte gTasks
-_081176A4: .4byte sub_81174F8
- thumb_func_end sub_8117630
-
- thumb_func_start sub_81176A8
-sub_81176A8: @ 81176A8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08117758
- mov r10, r0
- ldr r1, _0811775C
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r6, r0, r1
- movs r0, 0x22
- ldrsh r1, [r6, r0]
- mov r0, r10
- movs r2, 0x1
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- ldr r5, _08117760
- ldr r1, _08117764
- adds r0, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0
- movs r1, 0
- movs r2, 0x9
- movs r3, 0x3
- bl MenuDrawTextWindow
- adds r0, r5, 0
- movs r1, 0x9
- movs r2, 0x1
- bl sub_8072B4C
- ldr r2, _08117768
- ldr r1, _0811776C
- mov r8, r1
- ldrh r1, [r1]
- movs r0, 0x1
- mov r9, r0
- ands r0, r1
- lsrs r1, 7
- lsls r1, 1
- adds r0, r1
- adds r0, r2
- ldrb r4, [r0]
- mov r0, r10
- adds r1, r4, 0
- movs r2, 0x2
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- movs r1, 0x22
- ldrsh r0, [r6, r1]
- cmp r0, r4
- blt _081177BC
- mov r0, r8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0811777C
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- beq _0811777C
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08117770
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _08117774
- ldr r2, _08117778
- adds r0, r7, 0
- movs r3, 0x3
- bl sub_8116C34
- b _081177E4
- .align 2, 0
-_08117758: .4byte gStringVar1
-_0811775C: .4byte gTasks
-_08117760: .4byte gStringVar4
-_08117764: .4byte gOtherText_Coins
-_08117768: .4byte gUnknown_083F8DF0
-_0811776C: .4byte gUnknown_0202E8CC
-_08117770: .4byte gUnknown_081C4139
-_08117774: .4byte sub_8117630
-_08117778: .4byte 0x0000ffff
-_0811777C:
- ldr r4, _081177AC
- ldr r1, _081177B0
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _081177B4
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, _081177B8
- str r1, [r0]
- b _081177E4
- .align 2, 0
-_081177AC: .4byte gStringVar4
-_081177B0: .4byte gUnknown_081C40DF
-_081177B4: .4byte gTasks
-_081177B8: .4byte sub_81174F8
-_081177BC:
- ldr r1, _081177F4
- adds r0, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrint
- ldr r0, _081177F8
- str r0, [r6]
- movs r0, 0
- strh r0, [r6, 0x22]
- strh r0, [r6, 0x8]
-_081177E4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081177F4: .4byte gUnknown_081C411C
-_081177F8: .4byte sub_81175DC
- thumb_func_end sub_81176A8
-
- thumb_func_start sub_81177FC
-sub_81177FC: @ 81177FC
- push {lr}
- bl ScriptContext2_Enable
- ldr r0, _08117828
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811782C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _08117830
- ldr r2, _08117834
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r1, 0x22]
- pop {r0}
- bx r0
- .align 2, 0
-_08117828: .4byte sub_81176A8
-_0811782C: .4byte gTasks
-_08117830: .4byte gSaveBlock1
-_08117834: .4byte 0x00000494
- thumb_func_end sub_81177FC
-
- thumb_func_start sub_8117838
-sub_8117838: @ 8117838
- push {r4,lr}
- lsls r0, 24
- cmp r0, 0
- bne _08117884
- bl FreeAllSpritePalettes
- ldr r0, _08117870
- bl LoadSpritePalettes
- ldr r0, _08117874
- ldr r4, _08117878
- adds r1, r4, 0
- bl LZ77UnCompWram
- ldr r0, _0811787C
- movs r2, 0xE0
- lsls r2, 4
- adds r1, r4, r2
- bl LZ77UnCompWram
- ldr r0, _08117880
- movs r1, 0x80
- lsls r1, 5
- adds r4, r1
- adds r1, r4, 0
- bl LZ77UnCompWram
- b _08117888
- .align 2, 0
-_08117870: .4byte gUnknown_083F9E30
-_08117874: .4byte gUnknown_083F92A8
-_08117878: .4byte 0x02017000
-_0811787C: .4byte gUnknown_083F90FC
-_08117880: .4byte gUnknown_083F9D3C
-_08117884:
- bl FreeAllSpritePalettes
-_08117888:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8117838
-
- thumb_func_start sub_8117890
-sub_8117890: @ 8117890
- push {r4-r6,lr}
- adds r4, r1, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, [r0, 0x4]
- ldrb r3, [r1]
- movs r1, 0x74
- movs r2, 0x50
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r0, _081178F4
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r6]
- strh r0, [r1, 0x2E]
- strh r4, [r1, 0x30]
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r3]
- adds r1, 0x2C
- ldrb r0, [r1]
- movs r2, 0x40
- orrs r0, r2
- movs r2, 0x80
- orrs r0, r2
- strb r0, [r1]
- ldrh r2, [r6]
- adds r0, r2, 0
- adds r0, 0x1E
- strh r0, [r6]
- lsls r0, 16
- ldr r1, _081178F8
- cmp r0, r1
- bls _081178EC
- ldr r1, _081178FC
- adds r0, r2, r1
- strh r0, [r6]
-_081178EC:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081178F4: .4byte gSprites
-_081178F8: .4byte 0x01670000
-_081178FC: .4byte 0xfffffeb6
- thumb_func_end sub_8117890
-
- thumb_func_start sub_8117900
-sub_8117900: @ 8117900
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- ldr r4, _08117A50
- ldr r0, [r4]
- ldr r5, _08117A54
- adds r1, r5, 0
- bl LZ77UnCompWram
- str r5, [sp]
- mov r6, sp
- ldrh r1, [r4, 0x6]
- lsls r1, 16
- ldrh r0, [r4, 0x4]
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- ldr r4, _08117A58
- ldr r0, [r4]
- adds r1, r5, 0
- bl LZ77UnCompWram
- str r5, [sp]
- ldrh r0, [r4, 0x4]
- strh r0, [r6, 0x4]
- ldrh r0, [r4, 0x6]
- strh r0, [r6, 0x6]
- mov r0, sp
- bl LoadSpriteSheet
- movs r7, 0
- ldr r0, _08117A5C
- adds r0, r5
- mov r9, r0
- ldr r0, _08117A60
- mov r8, r0
-_08117950:
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 27
- lsrs r4, r0, 24
- movs r6, 0
- lsls r5, r7, 2
-_0811795C:
- lsls r1, r6, 1
- adds r1, r6
- lsls r1, 3
- ldr r0, _08117A64
- adds r0, r1, r0
- adds r1, 0x94
- adds r2, r4, 0
- adds r2, 0x5C
- movs r3, 0x1E
- bl CreateSprite
- adds r1, r6, 0
- adds r1, 0x1D
- adds r1, r5, r1
- add r1, r9
- strb r0, [r1]
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0
- adds r0, 0x18
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x47
- bls _081179A0
- movs r4, 0
-_081179A0:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bls _0811795C
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _08117950
- movs r7, 0
- ldr r5, _08117A68
- ldr r4, _08117A60
-_081179BA:
- lsls r1, r7, 1
- adds r1, r7
- lsls r1, 3
- ldr r0, _08117A6C
- adds r0, r1, r0
- adds r1, 0x94
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x46
- movs r3, 0x1E
- bl CreateSprite
- adds r1, r7, 0
- adds r1, 0x29
- adds r1, r5
- strb r0, [r1]
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x3
- bls _081179BA
- movs r7, 0
- ldr r5, _08117A68
- ldr r4, _08117A60
-_08117A00:
- lsls r2, r7, 1
- adds r2, r7
- lsls r2, 3
- ldr r0, _08117A70
- adds r0, r2, r0
- adds r2, 0x5C
- lsls r2, 16
- asrs r2, 16
- movs r1, 0x7E
- movs r3, 0x1E
- bl CreateSprite
- adds r1, r7, 0
- adds r1, 0x2D
- adds r1, r5
- strb r0, [r1]
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _08117A00
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08117A50: .4byte gUnknown_083F9F54
-_08117A54: .4byte 0x02000000
-_08117A58: .4byte gUnknown_083F9F5C
-_08117A5C: .4byte 0x0001903c
-_08117A60: .4byte gSprites
-_08117A64: .4byte gSpriteTemplate_83FA07C
-_08117A68: .4byte 0x0201903c
-_08117A6C: .4byte gSpriteTemplate_83F9FD4
-_08117A70: .4byte gSpriteTemplate_83FA034
- thumb_func_end sub_8117900
-
- thumb_func_start unref_sub_8117A74
-unref_sub_8117A74: @ 8117A74
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _08117AA0
-_08117A7A:
- adds r0, r4, 0
- adds r0, 0x1D
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08117AA4
- adds r0, r1
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xB
- bls _08117A7A
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08117AA0: .4byte 0x0201903c
-_08117AA4: .4byte gSprites
- thumb_func_end unref_sub_8117A74
-
- thumb_func_start sub_8117AA8
-sub_8117AA8: @ 8117AA8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- cmp r0, 0
- beq _08117AF8
- cmp r0, 0x1
- bne _08117BA8
- movs r3, 0
- ldr r5, _08117AF0
- ldr r4, _08117AF4
- movs r2, 0x4
-_08117ACA:
- adds r0, r3, 0
- adds r0, 0x1D
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x12
- bls _08117ACA
- b _08117BA8
- .align 2, 0
-_08117AF0: .4byte gSprites
-_08117AF4: .4byte 0x0201903c
-_08117AF8:
- movs r3, 0
- ldr r0, _08117B48
- mov r12, r0
- ldr r7, _08117B4C
- movs r1, 0x4
- add r1, r12
- mov r9, r1
- ldr r5, _08117B50
- adds r4, r7, 0
- adds r4, 0x3C
- movs r6, 0x5
- negs r6, r6
-_08117B10:
- lsls r2, r3, 3
- mov r1, r9
- adds r0, r2, r1
- ldr r1, [r7, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08117B54
- mov r1, r12
- adds r0, r2, r1
- ldrb r0, [r0, 0x2]
- cmp r0, r8
- beq _08117B54
- adds r0, r3, 0
- adds r0, 0x1D
- adds r0, r4
- 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]
- b _08117B6E
- .align 2, 0
-_08117B48: .4byte gUnknown_083F8D90
-_08117B4C: .4byte 0x02019000
-_08117B50: .4byte gSprites
-_08117B54:
- adds r0, r3, 0
- adds r0, 0x1D
- adds r0, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1]
-_08117B6E:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xB
- bls _08117B10
- cmp r3, 0x12
- bhi _08117BA8
- ldr r6, _08117BB4
- ldr r4, _08117BB8
- movs r5, 0x5
- negs r5, r5
-_08117B84:
- adds r0, r3, 0
- adds r0, 0x1D
- adds r0, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r5, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x12
- bls _08117B84
-_08117BA8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08117BB4: .4byte gSprites
-_08117BB8: .4byte 0x0201903c
- thumb_func_end sub_8117AA8
-
- thumb_func_start sub_8117BBC
-sub_8117BBC: @ 8117BBC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r5, 0
- ldr r0, _08117C50
- mov r8, r0
- ldr r4, _08117C54
- movs r6, 0x4
-_08117BCC:
- ldr r0, _08117C58
- movs r1, 0x74
- movs r2, 0x14
- movs r3, 0xA
- bl CreateSprite
- adds r3, r5, 0
- adds r3, 0x31
- add r3, r8
- strb r0, [r3]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r6
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- strh r1, [r0, 0x2E]
- 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, _08117C5C
- str r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x5]
- movs r7, 0xD
- negs r7, r7
- adds r2, r7, 0
- ands r1, r2
- orrs r1, r6
- strb r1, [r0, 0x5]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x8
- bl StartSpriteAnim
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08117BCC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08117C50: .4byte 0x0201903c
-_08117C54: .4byte gSprites
-_08117C58: .4byte gSpriteTemplate_83FA40C
-_08117C5C: .4byte sub_81184CC
- thumb_func_end sub_8117BBC
-
- thumb_func_start sub_8117C60
-sub_8117C60: @ 8117C60
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- movs r5, 0
- cmp r0, 0
- beq _08117CAC
- ldr r4, _08117CA4
- ldr r3, _08117CA8
- movs r2, 0x4
-_08117C7E:
- adds r0, r5, 0
- adds r0, 0x31
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08117C7E
- b _08117D58
- .align 2, 0
-_08117CA4: .4byte gSprites
-_08117CA8: .4byte 0x0201903c
-_08117CAC:
- ldr r0, _08117CEC
- mov r12, r0
- ldr r6, _08117CF0
- movs r0, 0x3C
- add r0, r12
- mov r8, r0
- ldr r7, _08117CF4
- movs r0, 0x5
- negs r0, r0
- mov r10, r0
-_08117CC0:
- mov r0, r12
- adds r0, 0xC
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0
- beq _08117CD0
- cmp r5, r9
- bne _08117CF8
-_08117CD0:
- adds r0, r5, 0
- adds r0, 0x31
- add r0, r8
- ldrb r1, [r0]
- 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
- strb r1, [r0]
- b _08117D4E
- .align 2, 0
-_08117CEC: .4byte 0x02019000
-_08117CF0: .4byte gSprites
-_08117CF4: .4byte gUnknown_083F8C00
-_08117CF8:
- adds r3, r5, 0
- adds r3, 0x31
- add r3, r8
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- adds r1, 0x3E
- ldrb r2, [r1]
- mov r0, r10
- ands r0, r2
- strb r0, [r1]
- ldrb r0, [r3]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r6
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0, 0x3]
- adds r0, 0x1
- lsls r0, 3
- adds r0, 0x4
- strh r0, [r2, 0x20]
- ldrb r0, [r3]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r6
- ldrb r1, [r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrb r0, [r0, 0x4]
- adds r0, 0x1
- lsls r0, 3
- adds r0, 0x3
- strh r0, [r2, 0x22]
-_08117D4E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08117CC0
-_08117D58:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8117C60
-
- thumb_func_start sub_8117D68
-sub_8117D68: @ 8117D68
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08117D98
- ldr r2, _08117D90
- ldr r0, _08117D94
- adds r0, 0x6C
- 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]
- b _08117DE2
- .align 2, 0
-_08117D90: .4byte gSprites
-_08117D94: .4byte 0x02019000
-_08117D98:
- ldr r4, _08117DE8
- ldr r3, _08117DEC
- adds r3, 0x6C
- 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 r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldr r0, _08117DF0
- lsls r2, r5, 2
- adds r2, r5
- lsls r2, 2
- adds r2, r0
- ldrb r0, [r2, 0x3]
- adds r0, 0x2
- lsls r0, 3
- strh r0, [r1, 0x20]
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r2, 0x4]
- adds r0, 0x2
- lsls r0, 3
- strh r0, [r1, 0x22]
-_08117DE2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08117DE8: .4byte gSprites
-_08117DEC: .4byte 0x02019000
-_08117DF0: .4byte gUnknown_083F8C00
- thumb_func_end sub_8117D68
-
- thumb_func_start sub_8117DF4
-sub_8117DF4: @ 8117DF4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- ldr r4, _08117E84
- ldr r0, [r4]
- ldr r5, _08117E88
- adds r1, r5, 0
- bl LZ77UnCompWram
- str r5, [sp, 0x4]
- add r0, sp, 0x4
- ldrh r2, [r4, 0x6]
- lsls r2, 16
- ldrh r1, [r4, 0x4]
- orrs r1, r2
- str r1, [r0, 0x4]
- bl LoadSpriteSheet
- movs r1, 0xF
- mov r0, sp
- strh r1, [r0]
- movs r0, 0
- ldr r1, _08117E8C
- adds r1, r5
- mov r8, r1
- ldr r7, _08117E90
-_08117E2A:
- movs r4, 0
- adds r6, r0, 0x1
- lsls r5, r0, 2
-_08117E30:
- adds r1, r5, r4
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- ldr r1, _08117E94
- adds r0, r1
- movs r1, 0x28
- mov r2, sp
- bl sub_8117890
- adds r1, r4, 0x7
- adds r1, r5, r1
- add r1, r8
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- adds r1, 0x2C
- ldrb r0, [r1]
- movs r2, 0x40
- orrs r0, r2
- movs r2, 0x80
- orrs r0, r2
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _08117E30
- lsls r0, r6, 24
- lsrs r0, 24
- cmp r0, 0x2
- bls _08117E2A
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08117E84: .4byte gUnknown_083F9EE8
-_08117E88: .4byte 0x02000000
-_08117E8C: .4byte 0x0001903c
-_08117E90: .4byte gSprites
-_08117E94: .4byte gSpriteTemplate_83FA0DC
- thumb_func_end sub_8117DF4
-
- thumb_func_start sub_8117E98
-sub_8117E98: @ 8117E98
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, _08117F1C
- ldrh r1, [r6, 0x2E]
- ldrh r0, [r0, 0x24]
- adds r1, r0
- lsls r1, 16
- lsrs r4, r1, 16
- asrs r1, 16
- ldr r0, _08117F20
- cmp r1, r0
- ble _08117EB8
- ldr r2, _08117F24
- adds r0, r1, r2
- lsls r0, 16
- lsrs r4, r0, 16
-_08117EB8:
- adds r0, r4, 0
- bl Sin2
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- bl Cos2
- lsls r2, r5, 16
- asrs r2, 16
- movs r3, 0x30
- ldrsh r1, [r6, r3]
- muls r1, r2
- asrs r1, 12
- strh r1, [r6, 0x24]
- lsls r0, 16
- asrs r4, r0, 16
- negs r1, r4
- movs r3, 0x30
- ldrsh r0, [r6, r3]
- muls r0, r1
- asrs r0, 12
- strh r0, [r6, 0x26]
- ldrb r0, [r6, 0x3]
- lsls r0, 26
- lsrs r3, r0, 27
- cmp r2, 0
- bge _08117EF2
- adds r2, 0xF
-_08117EF2:
- lsls r0, r2, 12
- lsrs r5, r0, 16
- ldr r1, _08117F28
- lsls r0, r3, 3
- adds r1, r0, r1
- adds r0, r4, 0
- cmp r0, 0
- bge _08117F04
- adds r0, 0xF
-_08117F04:
- asrs r0, 4
- strh r0, [r1, 0x6]
- strh r0, [r1]
- strh r5, [r1, 0x2]
- lsls r0, r5, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r1, 0x4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08117F1C: .4byte 0x02019000
-_08117F20: .4byte 0x00000167
-_08117F24: .4byte 0xfffffe98
-_08117F28: .4byte gOamMatrices
- thumb_func_end sub_8117E98
-
- thumb_func_start sub_8117F2C
-sub_8117F2C: @ 8117F2C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r5, 0
- ldr r7, _081180C8
- mov r6, sp
-_08117F3A:
- ldr r0, _081180CC
- lsls r4, r5, 3
- adds r4, r0
- ldr r0, [r4]
- adds r1, r7, 0
- bl LZ77UnCompWram
- str r7, [sp]
- ldrh r2, [r4, 0x4]
- ldr r0, _081180D0
- ldr r1, [r6, 0x4]
- ands r1, r0
- orrs r1, r2
- str r1, [r6, 0x4]
- ldrh r2, [r4, 0x6]
- lsls r2, 16
- ldr r0, _081180D4
- ands r0, r1
- orrs r0, r2
- str r0, [r6, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _08117F3A
- ldr r0, _081180D8
- movs r1, 0xD0
- movs r2, 0x10
- movs r3, 0x4
- bl CreateSprite
- ldr r4, _081180DC
- adds r1, r4, 0
- adds r1, 0x50
- strb r0, [r1]
- ldr r3, _081180E0
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- movs r5, 0
- adds r4, 0x3C
- adds r7, r3, 0
-_08117FA2:
- lsls r1, r5, 19
- movs r0, 0xC4
- lsls r0, 16
- adds r1, r0
- asrs r1, 16
- ldr r0, _081180E4
- movs r2, 0x18
- movs r3, 0
- bl CreateSprite
- adds r3, r5, 0
- adds r3, 0x15
- adds r3, r4
- strb r0, [r3]
- ldrb r1, [r3]
- 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]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r6, 0x40
- orrs r1, r6
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _08117FA2
- ldr r0, _081180E8
- movs r1, 0x78
- movs r2, 0x44
- movs r3, 0x4
- bl CreateSprite
- ldr r3, _081180DC
- adds r1, r3, 0
- adds r1, 0x55
- strb r0, [r1]
- ldr r2, _081180E0
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x2C
- ldrb r1, [r0]
- orrs r1, r6
- strb r1, [r0]
- movs r5, 0
- adds r3, 0x3C
- mov r8, r3
- adds r4, r2, 0
-_08118020:
- lsls r1, r5, 20
- movs r0, 0xC0
- lsls r0, 16
- adds r1, r0
- asrs r1, 16
- ldr r0, _081180EC
- movs r2, 0x24
- movs r3, 0x4
- bl CreateSprite
- adds r2, r5, 0
- adds r2, 0x1A
- add r2, r8
- strb r0, [r2]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r7, 0x4
- orrs r1, r7
- strb r1, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r6, 0x40
- orrs r1, r6
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _08118020
- ldr r0, _081180F0
- movs r1, 0x98
- movs r2, 0x60
- movs r3, 0x9
- bl CreateSprite
- ldr r3, _081180DC
- adds r3, 0x6C
- strb r0, [r3]
- ldr r4, _081180E0
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r7
- strb r0, [r1, 0x5]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x2C
- ldrb r1, [r0]
- orrs r1, r6
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r7
- strb r1, [r0]
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081180C8: .4byte 0x02000000
-_081180CC: .4byte gUnknown_083FA21C
-_081180D0: .4byte 0xffff0000
-_081180D4: .4byte 0x0000ffff
-_081180D8: .4byte gSpriteTemplate_83FA2B0
-_081180DC: .4byte 0x02019000
-_081180E0: .4byte gSprites
-_081180E4: .4byte gSpriteTemplate_83FA2C8
-_081180E8: .4byte gSpriteTemplate_83FA2E0
-_081180EC: .4byte gSpriteTemplate_83FA2F8
-_081180F0: .4byte gSpriteTemplate_83FA310
- thumb_func_end sub_8117F2C
-
- thumb_func_start sub_81180F4
-sub_81180F4: @ 81180F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r7, r0, 16
- movs r0, 0xFA
- lsls r0, 2
- mov r8, r0
- movs r4, 0
- movs r6, 0
- ldr r1, _081181D4
- mov r9, r1
- ldr r0, _081181D8
- mov r10, r0
-_08118114:
- adds r0, r7, 0
- mov r1, r8
- bl __udivsi3
- lsls r0, 24
- lsrs r5, r0, 24
- adds r3, r6, 0
- adds r3, 0x15
- mov r0, r9
- adds r0, 0x3C
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081181D8
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r3, 0
- cmp r5, 0
- bne _0811814E
- cmp r4, 0
- bne _0811814E
- cmp r6, 0x3
- bne _081181A2
-_0811814E:
- mov r3, r9
- adds r3, 0x3C
- adds r3, r0, r3
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r10
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r4, 0x5
- negs r4, r4
- adds r2, r4, 0
- ands r1, r2
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- mov r1, r10
- adds r3, r0, r1
- adds r4, r3, 0
- adds r4, 0x40
- ldr r1, _081181DC
- adds r0, r1
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r0, r1
- ldrh r2, [r0]
- ldrh r4, [r4]
- adds r2, r4
- ldr r4, _081181E0
- adds r0, r4, 0
- ands r2, r0
- ldrh r0, [r3, 0x4]
- ldr r4, _081181E4
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r2
- strh r0, [r3, 0x4]
- movs r4, 0x1
-_081181A2:
- adds r0, r7, 0
- mov r1, r8
- bl __umodsi3
- lsls r0, 16
- lsrs r7, r0, 16
- mov r0, r8
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bls _08118114
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081181D4: .4byte 0x02019000
-_081181D8: .4byte gSprites
-_081181DC: .4byte gSprites + 0x8
-_081181E0: .4byte 0x000003ff
-_081181E4: .4byte 0xfffffc00
- thumb_func_end sub_81180F4
-
- thumb_func_start sub_81181E8
-sub_81181E8: @ 81181E8
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08118220
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x13
- bls _08118200
- movs r4, 0
-_08118200:
- ldr r3, _08118224
- lsls r0, r4, 2
- adds r0, r4
- lsls r2, r0, 2
- adds r0, r2, r3
- ldrb r0, [r0, 0x1]
- lsls r0, 28
- lsrs r0, 28
- cmp r0, 0x4
- beq _08118254
- cmp r0, 0x4
- bgt _08118228
- cmp r0, 0x3
- beq _0811822E
- b _08118290
- .align 2, 0
-_08118220: .4byte gUnknown_083FA608
-_08118224: .4byte gUnknown_083F8C00
-_08118228:
- cmp r0, 0xC
- beq _08118274
- b _08118290
-_0811822E:
- adds r0, r4, 0
- movs r1, 0x5
- bl __udivsi3
- subs r0, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08118250
- adds r0, 0x16
- adds r1, r4, r0
- ldrb r0, [r1]
- cmp r0, 0x3
- bhi _08118290
- ldrb r0, [r1]
- adds r0, 0x1
- b _0811826A
- .align 2, 0
-_08118250: .4byte 0x02019000
-_08118254:
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08118270
- adds r0, 0x12
- adds r1, r4, r0
- ldrb r0, [r1]
- cmp r0, 0x2
- bhi _08118290
- ldrb r0, [r1]
- adds r0, 0x2
-_0811826A:
- add r0, sp
- ldrb r0, [r0]
- b _08118292
- .align 2, 0
-_08118270: .4byte 0x02019000
-_08118274:
- ldr r1, _0811828C
- adds r0, r3, 0
- adds r0, 0x8
- adds r0, r2, r0
- ldr r1, [r1, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08118290
- mov r0, sp
- ldrb r0, [r0, 0x4]
- b _08118292
- .align 2, 0
-_0811828C: .4byte 0x02019000
-_08118290:
- movs r0, 0
-_08118292:
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81181E8
-
- thumb_func_start sub_811829C
-sub_811829C: @ 811829C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _081182E8
- adds r1, 0x55
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r2, _081182EC
- adds r4, r1, r2
- bl sub_81181E8
- adds r3, r4, 0
- adds r3, 0x2B
- strb r0, [r3]
- adds r2, r4, 0
- adds r2, 0x40
- ldr r1, [r4, 0x8]
- ldrb r0, [r3]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0]
- ldrh r2, [r2]
- adds r1, r2
- ldr r2, _081182F0
- adds r0, r2, 0
- ands r1, r0
- ldrh r2, [r4, 0x4]
- ldr r0, _081182F4
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081182E8: .4byte 0x02019000
-_081182EC: .4byte gSprites
-_081182F0: .4byte 0x000003ff
-_081182F4: .4byte 0xfffffc00
- thumb_func_end sub_811829C
-
- thumb_func_start sub_81182F8
-sub_81182F8: @ 81182F8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r5, 0
- ldr r0, _08118320
- ldrb r1, [r0, 0x19]
- adds r3, r0, 0
- cmp r1, 0x1
- bne _08118310
- movs r5, 0x2
-_08118310:
- cmp r2, 0x6
- bls _08118316
- b _08118464
-_08118316:
- lsls r0, r2, 2
- ldr r1, _08118324
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08118320: .4byte 0x02019000
-_08118324: .4byte _08118328
- .align 2, 0
-_08118328:
- .4byte _08118464
- .4byte _08118420
- .4byte _081183F8
- .4byte _081183EC
- .4byte _081183C4
- .4byte _081183B8
- .4byte _08118344
-_08118344:
- movs r4, 0
- ldr r5, _081183A8
- ldr r0, _081183AC
- mov r8, r0
- movs r2, 0x5
- negs r2, r2
- mov r12, r2
- adds r6, r5, 0
- adds r6, 0x8
- ldr r7, _081183B0
-_08118358:
- adds r3, r4, 0
- adds r3, 0x1A
- add r3, r8
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r2, [r1]
- mov r0, r12
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r5
- adds r2, r3, 0
- adds r2, 0x40
- adds r0, r6
- ldr r0, [r0]
- ldr r0, [r0]
- ldrh r1, [r0]
- ldrh r2, [r2]
- adds r1, r2
- ldr r2, _081183B4
- adds r0, r2, 0
- ands r1, r0
- ldrh r2, [r3, 0x4]
- adds r0, r7, 0
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _08118358
- b _081184B2
- .align 2, 0
-_081183A8: .4byte gSprites
-_081183AC: .4byte 0x0201903c
-_081183B0: .4byte 0xfffffc00
-_081183B4: .4byte 0x000003ff
-_081183B8:
- ldr r2, _081183C0
- adds r0, r3, 0
- adds r0, 0x58
- b _08118426
- .align 2, 0
-_081183C0: .4byte gSprites
-_081183C4:
- ldr r2, _081183E8
- adds r0, r3, 0
- adds r0, 0x58
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r2
- adds r4, r3, 0
- adds r4, 0x40
- adds r2, 0x8
- adds r0, r2
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r0, r1
- ldrh r1, [r0, 0x8]
- b _08118442
- .align 2, 0
-_081183E8: .4byte gSprites
-_081183EC:
- ldr r2, _081183F4
- adds r0, r3, 0
- adds r0, 0x57
- b _08118426
- .align 2, 0
-_081183F4: .4byte gSprites
-_081183F8:
- ldr r2, _0811841C
- adds r0, r3, 0
- adds r0, 0x57
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r2
- adds r4, r3, 0
- adds r4, 0x40
- adds r2, 0x8
- adds r0, r2
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r0, r1
- ldrh r1, [r0, 0x8]
- b _08118442
- .align 2, 0
-_0811841C: .4byte gSprites
-_08118420:
- ldr r2, _08118458
- adds r0, r3, 0
- adds r0, 0x56
-_08118426:
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r2
- adds r4, r3, 0
- adds r4, 0x40
- adds r2, 0x8
- adds r0, r2
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r0, r1
- ldrh r1, [r0, 0x4]
-_08118442:
- ldrh r4, [r4]
- adds r1, r4
- ldr r2, _0811845C
- adds r0, r2, 0
- ands r1, r0
- ldrh r2, [r3, 0x4]
- ldr r0, _08118460
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- b _081184B2
- .align 2, 0
-_08118458: .4byte gSprites
-_0811845C: .4byte 0x000003ff
-_08118460: .4byte 0xfffffc00
-_08118464:
- movs r4, 0
- lsls r6, r5, 2
- ldr r5, _081184BC
- ldr r0, _081184C0
- mov r8, r0
- adds r7, r5, 0
- adds r7, 0x8
- ldr r2, _081184C4
- mov r12, r2
-_08118476:
- adds r0, r4, 0
- adds r0, 0x1A
- add r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r5
- adds r2, r3, 0
- adds r2, 0x40
- adds r0, r7
- ldr r0, [r0]
- ldr r0, [r0]
- adds r0, r6, r0
- ldrh r1, [r0, 0x8]
- ldrh r2, [r2]
- adds r1, r2
- ldr r2, _081184C8
- adds r0, r2, 0
- ands r1, r0
- ldrh r2, [r3, 0x4]
- mov r0, r12
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _08118476
-_081184B2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081184BC: .4byte gSprites
-_081184C0: .4byte 0x0201903c
-_081184C4: .4byte 0xfffffc00
-_081184C8: .4byte 0x000003ff
- thumb_func_end sub_81182F8
-
- thumb_func_start sub_81184CC
-sub_81184CC: @ 81184CC
- ldr r1, _081184D4
- ldrh r1, [r1, 0x26]
- strh r1, [r0, 0x24]
- bx lr
- .align 2, 0
-_081184D4: .4byte 0x02019000
- thumb_func_end sub_81184CC
-
- thumb_func_start sub_81184D8
-sub_81184D8: @ 81184D8
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r4, _08118544
- ldr r0, [r4]
- ldr r5, _08118548
- adds r1, r5, 0
- bl LZ77UnCompWram
- str r5, [sp]
- ldrh r1, [r4, 0x6]
- lsls r1, 16
- ldrh r0, [r4, 0x4]
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- ldr r0, _0811854C
- movs r1, 0x74
- movs r2, 0x50
- movs r3, 0x51
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08118550
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0xC8
- lsls r0, 9
- adds r5, r0
- ldrh r0, [r5, 0x24]
- movs r2, 0
- strh r0, [r1, 0x2E]
- strh r2, [r1, 0x30]
- adds r3, r1, 0
- adds r3, 0x2C
- ldrb r0, [r3]
- movs r2, 0x40
- orrs r0, r2
- movs r2, 0x80
- orrs r0, r2
- strb r0, [r3]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1]
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08118544: .4byte gUnknown_083FA42C
-_08118548: .4byte 0x02000000
-_0811854C: .4byte gSpriteTemplate_83FA434
-_08118550: .4byte gSprites
- thumb_func_end sub_81184D8
-
- thumb_func_start sub_8118554
-sub_8118554: @ 8118554
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- ldr r1, _08118574
- lsls r0, 3
- adds r0, r1
- ldr r2, _08118578
- ldrh r1, [r2, 0x2C]
- strh r1, [r0, 0x6]
- ldrh r1, [r2, 0x2C]
- strh r1, [r0]
- ldrh r1, [r2, 0x2E]
- strh r1, [r0, 0x2]
- ldrh r1, [r2, 0x30]
- strh r1, [r0, 0x4]
- bx lr
- .align 2, 0
-_08118574: .4byte gOamMatrices
-_08118578: .4byte 0x02019000
- thumb_func_end sub_8118554
-
- thumb_func_start sub_811857C
-sub_811857C: @ 811857C
- push {r4-r6,lr}
- movs r4, 0
- ldr r6, _081185DC
- ldr r5, _081185E0
-_08118584:
- movs r3, 0x39
- subs r3, r4
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _081185E4
- movs r1, 0x74
- movs r2, 0x50
- bl CreateSprite
- adds r3, r4, r6
- strb r0, [r3]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _081185CA
- ldrb r1, [r3]
- 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]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
-_081185CA:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _08118584
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081185DC: .4byte 0x0201903c
-_081185E0: .4byte gSprites
-_081185E4: .4byte gSpriteTemplate_83FA40C
- thumb_func_end sub_811857C
-
- thumb_func_start sub_81185E8
-sub_81185E8: @ 81185E8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _08118660
- adds r0, 0x3C
- ldrb r5, [r0]
- movs r6, 0
- ldr r7, _08118664
- movs r0, 0x1C
- adds r0, r7
- mov r10, r0
- movs r1, 0x2E
- adds r1, r7
- mov r9, r1
- mov r8, r6
-_0811860A:
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- adds r0, r4, r7
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r3]
- mov r1, r10
- adds r2, r4, r1
- ldr r1, _08118668
- str r1, [r2]
- movs r1, 0
- bl StartSpriteAnim
- movs r1, 0
- adds r2, r5, 0x1
- adds r3, r6, 0x1
-_08118632:
- lsls r0, r1, 1
- adds r0, r4
- add r0, r9
- mov r5, r8
- strh r5, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x7
- bls _08118632
- lsls r0, r2, 24
- lsrs r5, r0, 24
- lsls r0, r3, 24
- lsrs r6, r0, 24
- cmp r6, 0x5
- bls _0811860A
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08118660: .4byte 0x02019000
-_08118664: .4byte gSprites
-_08118668: .4byte SpriteCallbackDummy
- thumb_func_end sub_81185E8
-
- thumb_func_start sub_811866C
-sub_811866C: @ 811866C
- push {r4,r5,lr}
- adds r3, r0, 0
- ldr r0, _0811869C
- ldrh r4, [r0, 0x24]
- movs r2, 0x24
- ldrsh r1, [r0, r2]
- ldrh r2, [r3, 0x34]
- movs r5, 0x34
- ldrsh r0, [r3, r5]
- cmp r1, r0
- ble _081186A8
- movs r1, 0xB4
- lsls r1, 1
- adds r0, r2, r1
- subs r2, r0, r4
- strh r2, [r3, 0x3A]
- lsls r1, r2, 16
- ldr r0, _081186A0
- cmp r1, r0
- ble _081186AC
- ldr r5, _081186A4
- adds r0, r2, r5
- b _081186AA
- .align 2, 0
-_0811869C: .4byte 0x02019000
-_081186A0: .4byte 0x01670000
-_081186A4: .4byte 0xfffffe98
-_081186A8:
- subs r0, r2, r4
-_081186AA:
- strh r0, [r3, 0x3A]
-_081186AC:
- movs r1, 0x3A
- ldrsh r0, [r3, r1]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_811866C
-
- thumb_func_start sub_81186B8
-sub_81186B8: @ 81186B8
- push {r4,lr}
- bl sub_811866C
- ldr r4, _081186E0
- lsls r0, 16
- asrs r0, 16
- bl __floatsisf
- ldr r1, _081186E4
- bl __divsf3
- bl __fixunssfsi
- adds r4, 0x7E
- strb r0, [r4]
- ldrb r0, [r4]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081186E0: .4byte 0x02019000
-_081186E4: .4byte 0x41f00000
- thumb_func_end sub_81186B8
-
- thumb_func_start sub_81186E8
-sub_81186E8: @ 81186E8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_811866C
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1E
- bl __modsi3
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0xE
- bne _08118708
- movs r0, 0
- strh r0, [r4, 0x32]
- b _0811871E
-_08118708:
- cmp r1, 0xD
- bgt _08118710
- movs r0, 0xE
- b _08118712
-_08118710:
- movs r0, 0x2B
-_08118712:
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
-_0811871E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81186E8
-
- thumb_func_start sub_8118724
-sub_8118724: @ 8118724
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- ldr r5, _08118770
- adds r4, r5, 0
- adds r4, 0x8C
- adds r1, r5, 0
- adds r1, 0x90
- ldr r0, [r4]
- ldr r1, [r1]
- bl __addsf3
- adds r1, r0, 0
- str r1, [r4]
- movs r0, 0x88
- adds r0, r5
- mov r8, r0
- ldr r0, [r0]
- bl __addsf3
- adds r4, r0, 0
- mov r1, r8
- str r4, [r1]
- ldr r7, _08118774
- adds r1, r7, 0
- bl __gesf2
- cmp r0, 0
- blt _08118778
- adds r0, r4, 0
- adds r1, r7, 0
- bl __subsf3
- mov r2, r8
- str r0, [r2]
- b _08118790
- .align 2, 0
-_08118770: .4byte 0x02019000
-_08118774: .4byte 0x43b40000
-_08118778:
- ldr r1, _08118824
- adds r0, r4, 0
- bl __ltsf2
- cmp r0, 0
- bge _08118790
- adds r0, r4, 0
- adds r1, r7, 0
- bl __addsf3
- mov r1, r8
- str r0, [r1]
-_08118790:
- adds r0, r5, 0
- adds r0, 0x88
- ldr r0, [r0]
- bl __fixsfsi
- strh r0, [r6, 0x34]
- adds r4, r5, 0
- adds r4, 0x98
- adds r1, r5, 0
- adds r1, 0x9C
- ldr r0, [r4]
- ldr r1, [r1]
- bl __addsf3
- adds r1, r0, 0
- str r1, [r4]
- subs r4, 0x4
- ldr r0, [r4]
- bl __addsf3
- str r0, [r4]
- bl __fixsfsi
- strh r0, [r6, 0x36]
- ldrh r0, [r6, 0x34]
- bl Sin2
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrh r0, [r6, 0x34]
- bl Cos2
- lsls r4, 16
- asrs r4, 16
- movs r2, 0x36
- ldrsh r1, [r6, r2]
- muls r1, r4
- asrs r1, 12
- strh r1, [r6, 0x24]
- lsls r0, 16
- asrs r0, 16
- negs r0, r0
- movs r2, 0x36
- ldrsh r1, [r6, r2]
- muls r0, r1
- asrs r0, 12
- strh r0, [r6, 0x26]
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08118818
- ldr r0, _08118828
- ldr r4, _0811882C
- ldrh r2, [r6, 0x24]
- lsls r2, 24
- asrs r2, 24
- adds r1, r4, 0
- bl m4aMPlayPanpotControl
- ldr r0, _08118830
- ldrh r2, [r6, 0x24]
- lsls r2, 24
- asrs r2, 24
- adds r1, r4, 0
- bl m4aMPlayPanpotControl
-_08118818:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08118824: .4byte 0x00000000
-_08118828: .4byte gMPlay_SE1
-_0811882C: .4byte 0x0000ffff
-_08118830: .4byte gMPlay_SE2
- thumb_func_end sub_8118724
-
- thumb_func_start sub_8118834
-sub_8118834: @ 8118834
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r1, _0811888C
- ldrh r0, [r5, 0x3A]
- ldrh r1, [r1, 0x24]
- adds r2, r0, r1
- strh r2, [r5, 0x34]
- lsls r1, r2, 16
- ldr r0, _08118890
- cmp r1, r0
- ble _08118850
- ldr r1, _08118894
- adds r0, r2, r1
- strh r0, [r5, 0x34]
-_08118850:
- ldrh r0, [r5, 0x34]
- bl Sin2
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrh r0, [r5, 0x34]
- bl Cos2
- lsls r4, 16
- asrs r4, 16
- movs r2, 0x36
- ldrsh r1, [r5, r2]
- muls r1, r4
- asrs r1, 12
- strh r1, [r5, 0x24]
- lsls r0, 16
- asrs r0, 16
- negs r0, r0
- movs r2, 0x36
- ldrsh r1, [r5, r2]
- muls r0, r1
- ldr r1, _08118898
- asrs r0, 12
- ldrh r1, [r1]
- adds r0, r1
- strh r0, [r5, 0x26]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811888C: .4byte 0x02019000
-_08118890: .4byte 0x01670000
-_08118894: .4byte 0xfffffe98
-_08118898: .4byte gSpriteCoordOffsetY
- thumb_func_end sub_8118834
-
- thumb_func_start sub_811889C
-sub_811889C: @ 811889C
- push {r4-r6,lr}
- adds r5, r0, 0
- bl sub_8118724
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x36]
- adds r0, 0x84
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xD4
- bls _081188C2
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- b _081188CE
-_081188C2:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
-_081188CE:
- strb r0, [r2]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0x1D
- ble _0811898E
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08118908
- ldr r6, _08118900
- adds r4, r6, 0
- adds r4, 0x94
- adds r0, r6, 0
- adds r0, 0xA0
- ldr r0, [r0]
- ldr r1, _08118904
- bl __subsf3
- adds r1, r0, 0
- ldr r0, [r4]
- bl __lesf2
- cmp r0, 0
- bgt _0811898E
- b _08118926
- .align 2, 0
-_08118900: .4byte 0x02019000
-_08118904: .4byte 0x40000000
-_08118908:
- ldr r6, _08118994
- adds r4, r6, 0
- adds r4, 0x94
- adds r0, r6, 0
- adds r0, 0xA0
- ldr r0, [r0]
- ldr r1, _08118998
- bl __subsf3
- adds r1, r0, 0
- ldr r0, [r4]
- bl __gesf2
- cmp r0, 0
- blt _0811898E
-_08118926:
- adds r1, r6, 0
- adds r1, 0x7D
- movs r0, 0xFF
- strb r0, [r1]
- ldrb r1, [r6, 0x3]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r6, 0x3]
- adds r0, r5, 0
- adds r0, 0x2B
- ldrb r1, [r0]
- adds r1, 0x3
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- adds r0, r5, 0
- bl sub_81186B8
- movs r0, 0x1E
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_811866C
- movs r1, 0x3A
- ldrsh r0, [r5, r1]
- movs r1, 0x1E
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 1
- adds r1, 0xF
- strh r1, [r5, 0x3A]
- ldr r0, _0811899C
- str r0, [r5, 0x1C]
- movs r0, 0x47
- bl m4aSongNumStartOrChange
- adds r2, r6, 0
- adds r2, 0x9C
- adds r1, r6, 0
- adds r1, 0x98
- ldr r0, _081189A0
- str r0, [r1]
- str r0, [r2]
- subs r1, 0xC
- ldr r0, _081189A4
- str r0, [r1]
-_0811898E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08118994: .4byte 0x02019000
-_08118998: .4byte 0x40000000
-_0811899C: .4byte sub_8118834
-_081189A0: .4byte 0x00000000
-_081189A4: .4byte 0xbf800000
- thumb_func_end sub_811889C
-
- thumb_func_start sub_81189A8
-sub_81189A8: @ 81189A8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r7, r0, 0
- bl sub_8118724
- movs r1, 0x34
- ldrsh r0, [r7, r1]
- cmp r0, 0
- beq _081189C6
- cmp r0, 0xB4
- beq _08118A2C
- b _08118B0C
-_081189C6:
- movs r1, 0x2E
- ldrsh r0, [r7, r1]
- cmp r0, 0x1
- bne _081189D0
- b _08118B0C
-_081189D0:
- movs r1, 0x3C
- ldrsh r0, [r7, r1]
- bl __floatsisf
- mov r8, r0
- ldr r0, _08118A24
- mov r9, r0
- ldr r1, _08118A28
- mov r10, r1
- ldrb r4, [r1, 0x4]
- lsls r4, 30
- lsrs r0, r4, 25
- add r0, r9
- ldrb r0, [r0, 0x1]
- bl __floatsisf
- adds r1, r0, 0
- mov r0, r8
- bl __mulsf3
- adds r6, r0, 0
- lsrs r0, r4, 25
- add r0, r9
- ldrb r0, [r0, 0x2]
- subs r0, 0x1
- bl __floatsisf
- adds r1, r0, 0
- adds r0, r6, 0
- bl __addsf3
- adds r5, r0, 0
- lsrs r4, 25
- add r4, r9
- ldrh r0, [r4, 0xC]
- bl __floatsisf
- adds r1, r0, 0
- mov r0, r8
- bl __divsf3
- b _08118A8A
- .align 2, 0
-_08118A24: .4byte gUnknown_083F8DF4
-_08118A28: .4byte 0x02019000
-_08118A2C:
- movs r1, 0x2E
- ldrsh r0, [r7, r1]
- cmp r0, 0
- beq _08118B0C
- movs r1, 0x3C
- ldrsh r0, [r7, r1]
- bl __floatsisf
- mov r8, r0
- ldr r0, _08118B1C
- mov r9, r0
- ldr r1, _08118B20
- mov r10, r1
- ldrb r4, [r1, 0x4]
- lsls r4, 30
- lsrs r0, r4, 25
- add r0, r9
- ldrb r0, [r0, 0x1]
- bl __floatsisf
- adds r1, r0, 0
- mov r0, r8
- bl __mulsf3
- adds r6, r0, 0
- lsrs r0, r4, 25
- add r0, r9
- ldrb r0, [r0, 0x2]
- subs r0, 0x1
- bl __floatsisf
- adds r1, r0, 0
- adds r0, r6, 0
- bl __addsf3
- adds r5, r0, 0
- lsrs r4, 25
- add r4, r9
- ldrh r0, [r4, 0xC]
- bl __floatsisf
- adds r1, r0, 0
- mov r0, r8
- bl __divsf3
- bl __negsf2
-_08118A8A:
- adds r2, r0, 0
- mov r6, r10
- adds r1, r6, 0
- adds r1, 0xA0
- adds r0, r6, 0
- adds r0, 0x94
- ldr r0, [r0]
- str r0, [r1]
- adds r0, r6, 0
- adds r0, 0x98
- str r2, [r0]
- movs r0, 0x9C
- adds r0, r6
- mov r8, r0
- adds r0, r2, 0
- adds r1, r2, 0
- bl __addsf3
- adds r1, r5, 0
- bl __divsf3
- adds r4, r0, 0
- adds r0, r5, 0
- adds r1, r5, 0
- bl __mulsf3
- adds r1, r0, 0
- ldr r0, _08118B24
- bl __divsf3
- adds r1, r0, 0
- adds r0, r4, 0
- bl __addsf3
- bl __negsf2
- mov r1, r8
- str r0, [r1]
- adds r1, r6, 0
- adds r1, 0x8C
- ldr r0, _08118B28
- str r0, [r1]
- adds r2, r7, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r7, 0
- adds r0, 0x2A
- movs r2, 0
- strb r2, [r0]
- adds r3, r7, 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]
- ldr r0, _08118B2C
- str r0, [r7, 0x1C]
- strh r2, [r7, 0x32]
-_08118B0C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08118B1C: .4byte gUnknown_083F8DF4
-_08118B20: .4byte 0x02019000
-_08118B24: .4byte 0x40000000
-_08118B28: .4byte 0x00000000
-_08118B2C: .4byte sub_811889C
- thumb_func_end sub_81189A8
-
- thumb_func_start sub_8118B30
-sub_8118B30: @ 8118B30
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- bl __floatsisf
- adds r4, r0, 0
- ldr r1, _08118BCC
- bl __mulsf3
- adds r1, r4, 0
- bl __mulsf3
- bl __fixsfsi
- adds r1, r0, 0
- subs r1, 0x2D
- strh r1, [r5, 0x26]
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1D
- ble _08118BC6
- lsls r0, r1, 16
- cmp r0, 0
- blt _08118BC6
- ldr r4, _08118BD0
- adds r1, r4, 0
- adds r1, 0x7D
- movs r0, 0xFF
- strb r0, [r1]
- ldrb r1, [r4, 0x3]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r4, 0x3]
- adds r0, r5, 0
- adds r0, 0x2B
- ldrb r1, [r0]
- adds r1, 0x3
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- adds r0, r5, 0
- bl sub_81186B8
- movs r0, 0x1E
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_811866C
- movs r1, 0x3A
- ldrsh r0, [r5, r1]
- movs r1, 0x1E
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 1
- adds r1, 0xF
- strh r1, [r5, 0x3A]
- ldr r0, _08118BD4
- str r0, [r5, 0x1C]
- movs r0, 0x47
- bl m4aSongNumStartOrChange
- ldrb r0, [r4, 0x3]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r4, 0x3]
-_08118BC6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08118BCC: .4byte 0x3d4ccccd
-_08118BD0: .4byte 0x02019000
-_08118BD4: .4byte sub_8118834
- thumb_func_end sub_8118B30
-
- thumb_func_start sub_8118BD8
-sub_8118BD8: @ 8118BD8
- push {r4,lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x32]
- adds r1, r0, 0x1
- strh r1, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2C
- bgt _08118C1C
- ldrh r4, [r3, 0x26]
- subs r0, r4, 0x1
- strh r0, [r3, 0x26]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x2D
- bne _08118CA2
- ldr r2, _08118C14
- ldr r0, _08118C18
- adds r0, 0x73
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08118CA2
- strh r4, [r3, 0x26]
- b _08118CA2
- .align 2, 0
-_08118C14: .4byte gSprites
-_08118C18: .4byte 0x02019000
-_08118C1C:
- lsls r0, r1, 16
- asrs r0, 16
- movs r2, 0x3C
- ldrsh r1, [r3, r2]
- cmp r0, r1
- bge _08118C68
- ldr r2, _08118C58
- ldr r0, _08118C5C
- adds r0, 0x73
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x2C
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bne _08118CA2
- adds r0, r1, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08118C60
- ldrh r0, [r3, 0x26]
- adds r0, 0x1
- strh r0, [r3, 0x26]
- b _08118CA2
- .align 2, 0
-_08118C58: .4byte gSprites
-_08118C5C: .4byte 0x02019000
-_08118C60:
- ldrh r0, [r3, 0x26]
- subs r0, 0x1
- strh r0, [r3, 0x26]
- b _08118CA2
-_08118C68:
- adds r2, r3, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r1, r3, 0
- adds r1, 0x2A
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x3F
- adds r0, r3
- mov r12, r0
- ldrb r0, [r0]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- mov r1, r12
- strb r0, [r1]
- strh r2, [r3, 0x32]
- ldr r0, _08118CA8
- str r0, [r3, 0x1C]
- movs r0, 0x3D
- bl m4aSongNumStart
-_08118CA2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08118CA8: .4byte sub_8118B30
- thumb_func_end sub_8118BD8
-
- thumb_func_start sub_8118CAC
-sub_8118CAC: @ 8118CAC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8118724
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- cmp r1, 0x5A
- beq _08118CC6
- movs r0, 0x87
- lsls r0, 1
- cmp r1, r0
- beq _08118CD0
- b _08118CE0
-_08118CC6:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08118CE0
- b _08118CD8
-_08118CD0:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08118CE0
-_08118CD8:
- ldr r0, _08118CE8
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x32]
-_08118CE0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08118CE8: .4byte sub_8118BD8
- thumb_func_end sub_8118CAC
-
- thumb_func_start sub_8118CEC
-sub_8118CEC: @ 8118CEC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8118724
- ldr r0, _08118D10
- ldrb r0, [r0, 0x3]
- lsls r0, 27
- lsrs r0, 27
- cmp r0, 0
- beq _08118D04
- cmp r0, 0x1
- beq _08118D18
-_08118D04:
- adds r0, r4, 0
- bl sub_8119224
- ldr r0, _08118D14
- b _08118D20
- .align 2, 0
-_08118D10: .4byte 0x02019000
-_08118D14: .4byte sub_81189A8
-_08118D18:
- adds r0, r4, 0
- bl sub_81193D4
- ldr r0, _08118D28
-_08118D20:
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08118D28: .4byte sub_8118CAC
- thumb_func_end sub_8118CEC
-
- thumb_func_start prev_quest_read_x24_hm_usage
-prev_quest_read_x24_hm_usage: @ 8118D2C
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_8118724
- ldrh r0, [r5, 0x32]
- subs r0, 0x1
- strh r0, [r5, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bne _08118D50
- ldr r4, _08118DB8
- adds r4, 0x98
- ldr r0, [r4]
- ldr r1, _08118DBC
- bl __mulsf3
- str r0, [r4]
-_08118D50:
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08118DDC
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08118DC4
- ldr r1, _08118DB8
- adds r2, r1, 0
- adds r2, 0x7D
- movs r0, 0xFF
- strb r0, [r2]
- ldrb r2, [r1, 0x3]
- movs r0, 0x7F
- ands r0, r2
- strb r0, [r1, 0x3]
- adds r0, r5, 0
- adds r0, 0x2B
- ldrb r1, [r0]
- adds r1, 0x3
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- adds r0, r5, 0
- bl sub_81186B8
- movs r0, 0x1E
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_811866C
- movs r1, 0x3A
- ldrsh r0, [r5, r1]
- movs r1, 0x1E
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 1
- adds r1, 0xF
- strh r1, [r5, 0x3A]
- ldr r0, _08118DC0
- str r0, [r5, 0x1C]
- movs r0, 0x47
- bl m4aSongNumStartOrChange
- b _08118DDC
- .align 2, 0
-_08118DB8: .4byte 0x02019000
-_08118DBC: .4byte 0xbf800000
-_08118DC0: .4byte sub_8118834
-_08118DC4:
- adds r0, r5, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0x38
- bl m4aSongNumStart
- adds r0, r5, 0
- bl sub_811952C
-_08118DDC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end prev_quest_read_x24_hm_usage
-
- thumb_func_start sub_8118DE4
-sub_8118DE4: @ 8118DE4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- bl sub_8118724
- movs r0, 0
- strh r0, [r7, 0x32]
- adds r0, r7, 0
- bl sub_81186B8
- ldr r1, _08118E70
- ldr r6, _08118E74
- movs r0, 0x7E
- adds r0, r6
- mov r8, r0
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r0, [r0]
- ldr r1, [r6, 0x8]
- ands r0, r1
- cmp r0, 0
- bne _08118E7C
- adds r1, r6, 0
- adds r1, 0x7D
- movs r0, 0xFF
- strb r0, [r1]
- ldrb r1, [r6, 0x3]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r6, 0x3]
- adds r0, r7, 0
- adds r0, 0x2B
- ldrb r1, [r0]
- adds r1, 0x3
- lsls r1, 24
- lsrs r1, 24
- adds r0, r7, 0
- bl StartSpriteAnim
- adds r0, r7, 0
- bl sub_81186B8
- movs r0, 0x1E
- strh r0, [r7, 0x36]
- adds r0, r7, 0
- bl sub_811866C
- movs r1, 0x3A
- ldrsh r0, [r7, r1]
- movs r1, 0x1E
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 1
- adds r1, 0xF
- strh r1, [r7, 0x3A]
- ldr r0, _08118E78
- str r0, [r7, 0x1C]
- movs r0, 0x47
- bl m4aSongNumStartOrChange
- b _08118F74
- .align 2, 0
-_08118E70: .4byte gUnknown_083F8D90
-_08118E74: .4byte 0x02019000
-_08118E78: .4byte sub_8118834
-_08118E7C:
- movs r0, 0x38
- bl m4aSongNumStart
- bl Random
- movs r2, 0x1
- mov r9, r2
- mov r1, r9
- ands r1, r0
- mov r9, r1
- cmp r1, 0
- beq _08118EC0
- adds r1, r6, 0
- adds r1, 0x8C
- ldr r0, _08118EB8
- str r0, [r1]
- mov r2, r8
- ldrb r0, [r2]
- adds r0, 0x1
- movs r1, 0xC
- bl __modsi3
- lsls r1, r0, 24
- lsrs r2, r1, 24
- adds r1, r6, 0
- adds r1, 0x7F
- strb r0, [r1]
- ldr r5, _08118EBC
- b _08118EF4
- .align 2, 0
-_08118EB8: .4byte 0x00000000
-_08118EBC: .4byte gUnknown_083F8DF4
-_08118EC0:
- adds r4, r6, 0
- adds r4, 0x8C
- ldr r5, _08118F1C
- ldrb r0, [r6, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, [r0]
- adds r0, r1, 0
- bl __addsf3
- str r0, [r4]
- mov r0, r8
- ldrb r4, [r0]
- adds r0, r4, 0
- adds r0, 0xB
- movs r1, 0xC
- bl __modsi3
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r6, 0
- adds r0, 0x7F
- strb r4, [r0]
-_08118EF4:
- ldr r0, _08118F20
- lsls r1, r2, 3
- adds r0, 0x4
- adds r1, r0
- ldr r2, _08118F24
- ldr r1, [r1]
- ldr r0, [r2, 0x8]
- ands r1, r0
- cmp r1, 0
- beq _08118F28
- movs r0, 0x1
- strh r0, [r7, 0x2E]
- ldrb r0, [r2, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r5
- ldrb r0, [r0, 0x2]
- strh r0, [r7, 0x32]
- b _08118F64
- .align 2, 0
-_08118F1C: .4byte gUnknown_083F8DF4
-_08118F20: .4byte gUnknown_083F8D90
-_08118F24: .4byte 0x02019000
-_08118F28:
- strh r1, [r7, 0x2E]
- ldrb r1, [r2, 0x4]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08118F40
- lsls r0, r1, 30
- lsrs r0, 25
- adds r0, r5
- ldrb r0, [r0, 0x1]
- strh r0, [r7, 0x32]
- b _08118F64
-_08118F40:
- lsls r0, r1, 30
- lsrs r0, 25
- adds r0, r5
- ldrb r0, [r0, 0x2]
- strh r0, [r7, 0x32]
- mov r1, r9
- cmp r1, 0
- beq _08118F5C
- adds r1, r2, 0
- adds r1, 0x8C
- ldr r0, _08118F58
- b _08118F62
- .align 2, 0
-_08118F58: .4byte 0x3f000000
-_08118F5C:
- adds r1, r2, 0
- adds r1, 0x8C
- ldr r0, _08118F80
-_08118F62:
- str r0, [r1]
-_08118F64:
- adds r1, r2, 0
- adds r1, 0x98
- ldr r0, _08118F84
- str r0, [r1]
- ldr r0, _08118F88
- str r0, [r7, 0x1C]
- movs r0, 0x5
- strh r0, [r7, 0x30]
-_08118F74:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08118F80: .4byte 0xbfc00000
-_08118F84: .4byte 0x3dae147b
-_08118F88: .4byte prev_quest_read_x24_hm_usage
- thumb_func_end sub_8118DE4
-
- thumb_func_start sub_8118F8C
-sub_8118F8C: @ 8118F8C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- bl sub_8118724
- ldr r5, _08119018
- movs r0, 0x8C
- adds r0, r5
- mov r8, r0
- ldr r0, [r0]
- ldr r1, _0811901C
- bl __gtsf2
- cmp r0, 0
- bgt _0811906E
- adds r0, r6, 0
- bl sub_81186B8
- adds r0, r6, 0
- bl sub_81186E8
- lsls r0, 16
- cmp r0, 0
- bne _08119030
- adds r1, r5, 0
- adds r1, 0x90
- ldr r0, _08119020
- str r0, [r1]
- ldr r1, _08119024
- mov r9, r1
- ldrb r0, [r5, 0x4]
- lsls r7, r0, 30
- lsrs r0, r7, 25
- add r0, r9
- movs r4, 0x3
- ldrsb r4, [r0, r4]
- adds r0, r4, 0
- bl __floatsisf
- adds r5, r0, 0
- cmp r4, 0
- bge _08118FEC
- ldr r1, _08119028
- bl __addsf3
- adds r5, r0, 0
-_08118FEC:
- lsrs r0, r7, 25
- add r0, r9
- ldrb r0, [r0, 0x4]
- adds r0, 0x1
- bl __floatsisf
- adds r1, r0, 0
- adds r0, r5, 0
- bl __divsf3
- adds r1, r0, 0
- mov r2, r8
- ldr r0, [r2]
- bl __subsf3
- mov r1, r8
- str r0, [r1]
- movs r0, 0x4
- strh r0, [r6, 0x30]
- ldr r0, _0811902C
- str r0, [r6, 0x1C]
- b _0811906E
- .align 2, 0
-_08119018: .4byte 0x02019000
-_0811901C: .4byte 0x3f000000
-_08119020: .4byte 0x00000000
-_08119024: .4byte gUnknown_083F8DF4
-_08119028: .4byte 0x43800000
-_0811902C: .4byte sub_8118DE4
-_08119030:
- adds r6, r5, 0
- adds r6, 0x90
- ldr r0, [r6]
- ldr r4, _0811907C
- adds r1, r4, 0
- bl __nesf2
- cmp r0, 0
- beq _0811906E
- mov r2, r8
- ldr r0, [r2]
- adds r1, r4, 0
- bl __ltsf2
- cmp r0, 0
- bge _0811906E
- str r4, [r6]
- mov r0, r8
- str r4, [r0]
- adds r4, r5, 0
- adds r4, 0x98
- ldr r0, [r4]
- bl __extendsfdf2
- ldr r2, _08119080
- ldr r3, _08119084
- bl __divdf3
- bl __truncdfsf2
- str r0, [r4]
-_0811906E:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811907C: .4byte 0x00000000
-_08119080: .4byte 0x3ff33333
-_08119084: .4byte 0x33333333
- thumb_func_end sub_8118F8C
-
- thumb_func_start sub_8119088
-sub_8119088: @ 8119088
- push {r4-r7,lr}
- adds r6, r0, 0
- bl sub_8118724
- ldr r5, _08119120
- adds r0, r5, 0
- adds r0, 0x94
- ldr r0, [r0]
- ldr r1, _08119124
- bl __gtsf2
- cmp r0, 0
- bgt _0811911A
- adds r7, r5, 0
- adds r7, 0x98
- adds r0, r5, 0
- adds r0, 0x86
- movs r1, 0
- ldrsh r4, [r0, r1]
- adds r0, r4, 0
- bl __floatsisf
- adds r2, r0, 0
- cmp r4, 0
- bge _081190C2
- ldr r1, _08119128
- bl __addsf3
- adds r2, r0, 0
-_081190C2:
- ldr r0, _0811912C
- adds r1, r2, 0
- bl __divsf3
- bl __negsf2
- str r0, [r7]
- adds r7, r5, 0
- adds r7, 0x90
- adds r5, 0x8C
- adds r0, r4, 0
- bl __floatsisf
- adds r2, r0, 0
- cmp r4, 0
- bge _081190EA
- ldr r1, _08119128
- bl __addsf3
- adds r2, r0, 0
-_081190EA:
- ldr r0, [r5]
- adds r1, r2, 0
- bl __divsf3
- bl __negsf2
- str r0, [r7]
- adds r1, r6, 0
- adds r1, 0x2A
- movs r0, 0x2
- strb r0, [r1]
- adds r2, r6, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x3
- strh r0, [r6, 0x30]
- ldr r0, _08119130
- str r0, [r6, 0x1C]
-_0811911A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08119120: .4byte 0x02019000
-_08119124: .4byte 0x42200000
-_08119128: .4byte 0x47800000
-_0811912C: .4byte 0x40800000
-_08119130: .4byte sub_8118F8C
- thumb_func_end sub_8119088
-
- thumb_func_start sub_8119134
-sub_8119134: @ 8119134
- push {r4-r7,lr}
- adds r6, r0, 0
- bl sub_8118724
- ldr r4, _081191DC
- adds r0, r4, 0
- adds r0, 0x94
- ldr r0, [r0]
- ldr r1, _081191E0
- bl __gtsf2
- cmp r0, 0
- bgt _081191D4
- movs r0, 0x5D
- bl m4aSongNumStartOrChange
- adds r7, r4, 0
- adds r7, 0x98
- adds r0, r4, 0
- adds r0, 0x84
- movs r1, 0
- ldrsh r5, [r0, r1]
- adds r0, r5, 0
- bl __floatsisf
- adds r2, r0, 0
- cmp r5, 0
- bge _08119174
- ldr r1, _081191E4
- bl __addsf3
- adds r2, r0, 0
-_08119174:
- ldr r0, _081191E8
- adds r1, r2, 0
- bl __divsf3
- bl __negsf2
- str r0, [r7]
- adds r7, r4, 0
- adds r7, 0x90
- adds r0, r4, 0
- adds r0, 0x8C
- ldr r1, [r0]
- ldr r0, _081191EC
- bl __subsf3
- adds r4, r0, 0
- adds r0, r5, 0
- bl __floatsisf
- adds r2, r0, 0
- cmp r5, 0
- bge _081191A8
- ldr r1, _081191E4
- bl __addsf3
- adds r2, r0, 0
-_081191A8:
- adds r0, r4, 0
- adds r1, r2, 0
- bl __divsf3
- str r0, [r7]
- adds r1, r6, 0
- adds r1, 0x2A
- movs r0, 0x1
- strb r0, [r1]
- adds r2, r6, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x2
- strh r0, [r6, 0x30]
- ldr r0, _081191F0
- str r0, [r6, 0x1C]
-_081191D4:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081191DC: .4byte 0x02019000
-_081191E0: .4byte 0x42700000
-_081191E4: .4byte 0x47800000
-_081191E8: .4byte 0x41a00000
-_081191EC: .4byte 0x3f800000
-_081191F0: .4byte sub_8119088
- thumb_func_end sub_8119134
-
- thumb_func_start sub_81191F4
-sub_81191F4: @ 81191F4
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- movs r0, 0x1
- strh r0, [r4, 0x30]
- strh r1, [r4, 0x32]
- adds r0, r4, 0
- bl sub_8118724
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08119220
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08119220: .4byte sub_8119134
- thumb_func_end sub_81191F4
-
- thumb_func_start sub_8119224
-sub_8119224: @ 8119224
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r7, r0, 0
- ldr r1, _081193B8
- mov r0, sp
- movs r2, 0x8
- bl memcpy
- ldrh r0, [r7, 0x3C]
- subs r0, 0x2
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldr r5, _081193BC
- ldr r0, _081193C0
- movs r2, 0xC
- negs r2, r2
- movs r1, 0x24
- movs r3, 0x32
- bl CreateSprite
- adds r1, r5, 0
- adds r1, 0x73
- strb r0, [r1]
- ldr r4, _081193C4
- movs r0, 0x2E
- ldrsh r2, [r7, r0]
- lsls r2, 2
- mov r1, sp
- adds r0, r1, r2
- movs r3, 0
- ldrsh r1, [r0, r3]
- mov r0, sp
- adds r0, 0x2
- adds r0, r2
- movs r3, 0
- ldrsh r2, [r0, r3]
- adds r0, r4, 0
- movs r3, 0x3B
- bl CreateSprite
- adds r1, r5, 0
- adds r1, 0x74
- strb r0, [r1]
- adds r4, 0x18
- adds r0, r4, 0
- movs r1, 0x24
- movs r2, 0x8C
- movs r3, 0x33
- bl CreateSprite
- adds r1, r5, 0
- adds r1, 0x75
- strb r0, [r1]
- ldr r3, _081193C8
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r2, [r0, 0x1]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x1]
- movs r6, 0
- adds r4, r3, 0
- mov r12, r5
- ldr r0, _081193CC
- mov r8, r0
- mov r10, r12
-_081192BE:
- mov r1, r12
- adds r3, r1, r6
- adds r3, 0x73
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r1, r12
- adds r1, 0x73
- ldrb r1, [r1]
- strh r1, [r0, 0x36]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r5, r12
- adds r5, 0x74
- ldrb r1, [r5]
- strh r1, [r0, 0x38]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r1, r12
- adds r1, 0x75
- ldrb r1, [r1]
- strh r1, [r0, 0x3A]
- ldrb r1, [r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- mov r1, r9
- strh r1, [r0, 0x32]
- ldrb r0, [r3]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- movs r0, 0x3C
- ldrsh r3, [r7, r0]
- mov r0, r12
- ldrb r1, [r0, 0x4]
- lsls r1, 30
- lsrs r0, r1, 25
- add r0, r8
- ldrb r0, [r0, 0x1]
- muls r3, r0
- lsrs r1, 25
- add r1, r8
- ldrb r0, [r1, 0x2]
- ldr r1, _081193D0
- adds r0, r1
- adds r3, r0
- strh r3, [r2, 0x34]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, _081193C8
- cmp r6, 0x2
- bls _081192BE
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
- mov r3, r10
- str r7, [r3, 0x38]
- 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
-_081193B8: .4byte gUnknown_083FA60E
-_081193BC: .4byte 0x02019000
-_081193C0: .4byte gSpriteTemplate_83FA50C
-_081193C4: .4byte gSpriteTemplate_83FA5C0
-_081193C8: .4byte gSprites
-_081193CC: .4byte gUnknown_083F8DF4
-_081193D0: .4byte 0x0000ffff
- thumb_func_end sub_8119224
-
- thumb_func_start sub_81193D4
-sub_81193D4: @ 81193D4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- adds r7, r0, 0
- movs r0, 0
- mov r8, r0
- ldr r1, _08119514
- mov r0, sp
- movs r2, 0x8
- bl memcpy
- ldrh r0, [r7, 0x3C]
- subs r0, 0x2
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldr r0, _08119518
- movs r1, 0x2E
- ldrsh r2, [r7, r1]
- lsls r2, 2
- mov r3, sp
- adds r1, r3, r2
- movs r3, 0
- ldrsh r1, [r1, r3]
- mov r4, sp
- adds r4, 0x2
- adds r2, r4, r2
- movs r3, 0
- ldrsh r2, [r2, r3]
- movs r3, 0x32
- bl CreateSprite
- ldr r6, _0811951C
- adds r1, r6, 0
- adds r1, 0x73
- strb r0, [r1]
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _08119520
- adds r0, r5
- ldrh r1, [r7, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAnim
- ldr r0, _08119524
- movs r1, 0x2E
- ldrsh r2, [r7, r1]
- lsls r2, 2
- mov r3, sp
- adds r1, r3, r2
- movs r3, 0
- ldrsh r1, [r1, r3]
- adds r4, r2
- movs r3, 0
- ldrsh r2, [r4, r3]
- movs r3, 0x33
- bl CreateSprite
- adds r4, r6, 0
- adds r4, 0x74
- strb r0, [r4]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- mov r0, r9
- lsls r2, r0, 16
- asrs r2, 16
- ldr r3, _08119528
- ldrb r1, [r6, 0x4]
- lsls r1, 30
- lsrs r0, r1, 25
- adds r0, r3
- ldrb r0, [r0, 0x1]
- muls r2, r0
- lsrs r1, 25
- adds r1, r3
- ldrh r0, [r1, 0x10]
- adds r0, 0x2D
- adds r2, r0
- strh r2, [r7, 0x3C]
- adds r3, r6, 0
-_081194A2:
- mov r1, r8
- adds r2, r6, r1
- adds r2, 0x73
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r1, r6, 0
- adds r1, 0x73
- ldrb r1, [r1]
- strh r1, [r0, 0x36]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r4]
- strh r1, [r0, 0x38]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r4]
- strh r1, [r0, 0x3A]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r9
- strh r1, [r0, 0x32]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrh r0, [r7, 0x3C]
- subs r0, 0x2D
- strh r0, [r1, 0x34]
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x1
- bls _081194A2
- str r7, [r3, 0x38]
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08119514: .4byte gUnknown_083FA616
-_08119518: .4byte gSpriteTemplate_83FA524
-_0811951C: .4byte 0x02019000
-_08119520: .4byte gSprites
-_08119524: .4byte gSpriteTemplate_83FA5F0
-_08119528: .4byte gUnknown_083F8DF4
- thumb_func_end sub_81193D4
-
- thumb_func_start sub_811952C
-sub_811952C: @ 811952C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r8, r0
- movs r0, 0
- mov r10, r0
- movs r1, 0x5
- mov r9, r1
- movs r2, 0
- str r2, [sp, 0xC]
- mov r0, sp
- movs r1, 0
- movs r2, 0xA
- bl memset
- bl Random
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x10]
- ldr r7, _08119610
- adds r0, r7, 0
- adds r0, 0x7D
- movs r6, 0x1
- strb r6, [r0]
- ldrb r4, [r7, 0x3]
- movs r0, 0x20
- orrs r4, r0
- movs r0, 0x41
- negs r0, r0
- ands r4, r0
- strb r4, [r7, 0x3]
- adds r1, r7, 0
- adds r1, 0x7E
- movs r0, 0xFF
- strb r0, [r1]
- adds r5, r7, 0
- adds r5, 0x88
- mov r3, r8
- movs r1, 0x34
- ldrsh r0, [r3, r1]
- bl __floatsisf
- str r0, [r5]
- adds r1, r7, 0
- adds r1, 0x98
- ldr r0, _08119614
- str r0, [r1]
- adds r3, r7, 0
- adds r3, 0x8C
- ldr r2, _08119618
- ldrb r0, [r7, 0x4]
- lsls r0, 30
- lsrs r1, r0, 25
- adds r2, 0x1C
- adds r1, r2
- ldr r1, [r1]
- str r1, [r3]
- lsrs r0, 30
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 1
- adds r1, 0x21
- lsls r4, 27
- lsrs r4, 27
- subs r6, r4
- lsls r0, r6, 4
- subs r0, r6
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- mov r5, r10
- mov r3, r8
- movs r0, 0x34
- ldrsh r2, [r3, r0]
-_081195C8:
- cmp r1, r2
- bge _081195D4
- adds r0, r1, 0
- adds r0, 0x5A
- cmp r2, r0
- ble _08119638
-_081195D4:
- cmp r5, 0x3
- beq _0811961C
- adds r0, r1, 0
- adds r0, 0x5A
- lsls r0, 16
- lsrs r1, r0, 16
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _081195C8
-_081195EA:
- ldr r0, _08119610
- ldrb r1, [r0, 0x3]
- movs r0, 0x1F
- ands r0, r1
- cmp r0, 0
- beq _08119664
- mov r1, r8
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _08119658
- movs r0, 0x98
- lsls r0, 1
- movs r1, 0x3F
- negs r1, r1
- bl PlayCry1
- b _08119670
- .align 2, 0
-_08119610: .4byte 0x02019000
-_08119614: .4byte 0x00000000
-_08119618: .4byte gUnknown_083F8DF4
-_0811961C:
- movs r0, 0x1
- mov r3, r8
- strh r0, [r3, 0x2E]
- ldr r2, _08119634
- ldrb r1, [r2, 0x3]
- subs r0, 0x21
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x3]
- b _081195EA
- .align 2, 0
-_08119634: .4byte 0x02019000
-_08119638:
- lsrs r0, r5, 1
- mov r1, r8
- strh r0, [r1, 0x2E]
- ldr r3, _08119654
- movs r1, 0x1
- ands r1, r5
- ldrb r2, [r3, 0x3]
- movs r0, 0x20
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x3]
- b _081195EA
- .align 2, 0
-_08119654: .4byte 0x02019000
-_08119658:
- movs r0, 0x98
- lsls r0, 1
- movs r1, 0x3F
- bl PlayCry1
- b _08119670
-_08119664:
- movs r0, 0x99
- lsls r0, 1
- movs r1, 0x3F
- negs r1, r1
- bl PlayCry1
-_08119670:
- movs r5, 0x2
- ldr r4, _081196A0
- adds r0, r4, 0
- adds r0, 0x7F
- ldrb r0, [r0]
- adds r0, 0x2
- movs r1, 0xC
- bl __modsi3
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r1, [r4, 0x3]
- movs r0, 0x1F
- ands r0, r1
- cmp r0, 0x1
- bne _081196A4
- ldrb r1, [r4, 0x4]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- bne _081196A4
- mov r0, r9
- adds r0, 0x6
- b _081196A8
- .align 2, 0
-_081196A0: .4byte 0x02019000
-_081196A4:
- mov r2, r9
- adds r0, r2, r5
-_081196A8:
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r5, r9
- bcs _0811970E
- ldr r6, _08119734
- ldr r7, _08119738
-_081196B6:
- lsls r0, r3, 3
- ldr r1, _0811973C
- adds r0, r1
- ldr r1, [r6, 0x8]
- ldr r2, [r0]
- ands r1, r2
- cmp r1, 0
- bne _081196F8
- mov r0, r10
- adds r1, r0, 0x1
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- add r0, sp
- strb r5, [r0]
- ldr r0, [sp, 0xC]
- cmp r0, 0
- bne _081196F8
- ldrb r0, [r6, 0x1A]
- lsls r0, 28
- lsrs r0, 28
- ldr r1, _08119740
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- beq _081196F8
- str r5, [sp, 0xC]
-_081196F8:
- adds r0, r3, 0x1
- movs r1, 0xC
- bl __modsi3
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r9
- bcc _081196B6
-_0811970E:
- ldrb r0, [r4, 0x3]
- lsls r0, 27
- lsrs r0, 27
- adds r0, 0x1
- ldrb r1, [r4, 0x2]
- ands r0, r1
- cmp r0, 0
- beq _08119756
- ldr r2, [sp, 0xC]
- cmp r2, 0
- beq _08119744
- movs r0, 0xFF
- ldr r3, [sp, 0x10]
- ands r0, r3
- cmp r0, 0xBF
- bhi _08119744
- mov r0, r8
- strh r2, [r0, 0x3C]
- b _08119766
- .align 2, 0
-_08119734: .4byte 0x02019000
-_08119738: .4byte gUnknown_083F8C0C
-_0811973C: .4byte gUnknown_083F8D94
-_08119740: .4byte 0x0201901b
-_08119744:
- ldr r0, [sp, 0x10]
- mov r1, r10
- bl __modsi3
- add r0, sp
- ldrb r0, [r0]
- mov r1, r8
- strh r0, [r1, 0x3C]
- b _08119766
-_08119756:
- ldr r0, [sp, 0x10]
- mov r1, r10
- bl __modsi3
- add r0, sp
- ldrb r0, [r0]
- mov r2, r8
- strh r0, [r2, 0x3C]
-_08119766:
- ldr r3, _0811977C
- mov r0, r8
- str r3, [r0, 0x1C]
- 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
-_0811977C: .4byte sub_8118CEC
- thumb_func_end sub_811952C
-
- thumb_func_start sub_8119780
-sub_8119780: @ 8119780
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- adds r1, r0, 0x1
- strh r1, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x34
- ldrsh r1, [r2, r3]
- cmp r0, r1
- blt _081197CA
- ldrh r0, [r2, 0x20]
- subs r0, 0x2
- strh r0, [r2, 0x20]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bge _081197CA
- ldr r4, _081197D0
- ldrb r1, [r4, 0x3]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _081197BA
- movs r0, 0x40
- orrs r0, r1
- strb r0, [r4, 0x3]
-_081197BA:
- adds r0, r2, 0
- bl DestroySprite
- movs r0, 0
- strb r0, [r4, 0x1]
- ldr r0, _081197D4
- ldrh r0, [r0]
- strh r0, [r4, 0x34]
-_081197CA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081197D0: .4byte 0x02019000
-_081197D4: .4byte gUnknown_083FA61E
- thumb_func_end sub_8119780
-
- thumb_func_start sub_81197D8
-sub_81197D8: @ 81197D8
- push {r4,lr}
- sub sp, 0x18
- adds r4, r0, 0
- ldr r1, _08119854
- mov r0, sp
- movs r2, 0x18
- bl memcpy
- ldrh r0, [r4, 0x30]
- adds r2, r0, 0x1
- strh r2, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x34
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bge _0811985C
- movs r0, 0x1
- ands r2, r0
- cmp r2, 0
- beq _08119836
- ldr r3, _08119858
- movs r0, 0x3C
- ldrsh r2, [r4, r0]
- lsls r2, 1
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- lsls r0, 3
- adds r2, r0
- mov r1, sp
- adds r0, r1, r2
- ldrh r0, [r0]
- strh r0, [r3]
- movs r3, 0x3C
- ldrsh r2, [r4, r3]
- adds r1, r2, 0x1
- adds r0, r1, 0
- cmp r1, 0
- bge _0811982E
- adds r0, r2, 0x4
-_0811982E:
- asrs r0, 2
- lsls r0, 2
- subs r0, r1, r0
- strh r0, [r4, 0x3C]
-_08119836:
- 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 _08119884
- .align 2, 0
-_08119854: .4byte gUnknown_083FA632
-_08119858: .4byte gSpriteCoordOffsetY
-_0811985C:
- ldr r1, _0811988C
- movs r0, 0
- strh r0, [r1]
- ldr r2, _08119890
- ldr r0, _08119894
- adds r0, 0x73
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x2C
- ldrb r2, [r0]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- adds r0, r4, 0
- bl DestroySprite
-_08119884:
- add sp, 0x18
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811988C: .4byte gSpriteCoordOffsetY
-_08119890: .4byte gSprites
-_08119894: .4byte 0x02019000
- thumb_func_end sub_81197D8
-
- thumb_func_start sub_8119898
-sub_8119898: @ 8119898
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- bl __floatsisf
- adds r4, r0, 0
- ldr r1, _08119948
- bl __mulsf3
- adds r1, r4, 0
- bl __mulsf3
- bl __fixsfsi
- strh r0, [r5, 0x26]
- ldr r3, _0811994C
- ldr r2, _08119950
- ldrb r0, [r3, 0x1]
- subs r0, 0x1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r3, 0x34]
- ldrb r0, [r3, 0x1]
- cmp r0, 0x12
- bhi _081198DE
- adds r0, 0x1
- strb r0, [r3, 0x1]
-_081198DE:
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- cmp r0, 0x3C
- ble _08119940
- movs r0, 0
- strh r0, [r5, 0x30]
- ldr r3, _08119954
- str r3, [r5, 0x1C]
- ldr r2, _08119958
- movs r0, 0x3A
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r2, 0
- adds r4, 0x1C
- adds r0, r4
- str r3, [r0]
- movs r0, 0x3A
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0811995C
- strh r1, [r0, 0x30]
- movs r0, 0x38
- 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]
- movs r0, 0x38
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _08119960
- str r1, [r0]
- movs r0, 0xD6
- bl m4aSongNumStart
-_08119940:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08119948: .4byte 0x3d1fbe77
-_0811994C: .4byte 0x02019000
-_08119950: .4byte gUnknown_083FA61E
-_08119954: .4byte sub_8119780
-_08119958: .4byte gSprites
-_0811995C: .4byte 0x0000fffe
-_08119960: .4byte sub_81197D8
- thumb_func_end sub_8119898
-
- thumb_func_start sub_8119964
-sub_8119964: @ 8119964
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081199E4
- ldr r3, _08119990
- ldr r1, [r3, 0x38]
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08119998
- movs r0, 0x34
- ldrsh r2, [r1, r0]
- ldr r1, _08119994
- ldrb r0, [r3, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrh r0, [r0, 0x8]
- b _081199AA
- .align 2, 0
-_08119990: .4byte 0x02019000
-_08119994: .4byte gUnknown_083F8DF4
-_08119998:
- movs r0, 0x34
- ldrsh r2, [r1, r0]
- ldr r1, _081199D8
- ldrb r0, [r3, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrh r0, [r0, 0x8]
- adds r0, 0xB4
-_081199AA:
- cmp r2, r0
- bne _08119A78
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- movs r0, 0x2B
- bl m4aSongNumStart
- ldr r1, _081199DC
- movs r0, 0x1
- strb r0, [r1, 0x1]
- ldr r0, _081199E0
- ldrh r0, [r0]
- strh r0, [r1, 0x34]
- b _08119A78
- .align 2, 0
-_081199D8: .4byte gUnknown_083F8DF4
-_081199DC: .4byte 0x02019000
-_081199E0: .4byte gUnknown_083FA61E
-_081199E4:
- ldr r3, _08119A20
- ldr r2, _08119A24
- ldrb r0, [r3, 0x1]
- subs r0, 0x1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r3, 0x34]
- ldrb r0, [r3, 0x1]
- cmp r0, 0x12
- bhi _08119A04
- adds r0, 0x1
- strb r0, [r3, 0x1]
-_08119A04:
- ldr r1, [r3, 0x38]
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08119A2C
- movs r0, 0x34
- ldrsh r2, [r1, r0]
- ldr r1, _08119A28
- ldrb r0, [r3, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrh r0, [r0, 0xA]
- b _08119A3E
- .align 2, 0
-_08119A20: .4byte 0x02019000
-_08119A24: .4byte gUnknown_083FA61E
-_08119A28: .4byte gUnknown_083F8DF4
-_08119A2C:
- movs r0, 0x34
- ldrsh r2, [r1, r0]
- ldr r1, _08119A80
- ldrb r0, [r3, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrh r0, [r0, 0xA]
- adds r0, 0xB4
-_08119A3E:
- cmp r2, r0
- bne _08119A78
- ldr r2, _08119A84
- movs r0, 0x36
- 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, _08119A88
- str r1, [r0]
- movs r0, 0x36
- ldrsh r1, [r4, 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]
- ldr r0, _08119A8C
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x3C]
-_08119A78:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08119A80: .4byte gUnknown_083F8DF4
-_08119A84: .4byte gSprites
-_08119A88: .4byte sub_8119898
-_08119A8C: .4byte SpriteCallbackDummy
- thumb_func_end sub_8119964
-
- thumb_func_start sub_8119A90
-sub_8119A90: @ 8119A90
- adds r0, 0x3E
- ldrb r3, [r0]
- lsls r1, r3, 29
- lsrs r1, 31
- movs r2, 0x1
- eors r2, r1
- lsls r2, 2
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0]
- bx lr
- thumb_func_end sub_8119A90
-
- thumb_func_start sub_8119AAC
-sub_8119AAC: @ 8119AAC
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x22]
- movs r0, 0x22
- ldrsh r1, [r4, r0]
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- ble _08119AC4
- subs r0, r2, 0x1
- strh r0, [r4, 0x22]
- b _08119B12
-_08119AC4:
- ldr r0, _08119B18
- str r0, [r4, 0x1C]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- subs r2, 0x12
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x5E
- bl m4aSongNumStop
- adds r0, r4, 0
- bl DestroySprite
- ldr r5, _08119B1C
- ldr r4, _08119B20
- adds r4, 0x74
- 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
-_08119B12:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08119B18: .4byte SpriteCallbackDummy
-_08119B1C: .4byte gSprites
-_08119B20: .4byte 0x02019000
- thumb_func_end sub_8119AAC
-
- thumb_func_start sub_8119B24
-sub_8119B24: @ 8119B24
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0
- blt _08119B4E
- subs r1, 0x1
- strh r1, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- subs r0, 0x1
- strh r0, [r4, 0x22]
- lsls r1, 16
- cmp r1, 0
- bne _08119BB8
- adds r0, r4, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08119BB8
- b _08119B74
-_08119B4E:
- ldrh r1, [r4, 0x34]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0
- blt _08119B84
- subs r0, r1, 0x1
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r0, 0x3F
- ands r0, r1
- cmp r0, 0
- bne _08119BB8
- adds r0, r4, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08119B7C
-_08119B74:
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
- b _08119BB8
-_08119B7C:
- ldrh r0, [r4, 0x26]
- subs r0, 0x1
- strh r0, [r4, 0x26]
- b _08119BB8
-_08119B84:
- movs r0, 0x2B
- bl m4aSongNumStart
- ldr r0, _08119BC0
- ldr r0, [r0, 0x38]
- ldrh r1, [r0, 0x2E]
- adds r1, 0x4
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _08119BC4
- str r0, [r4, 0x1C]
- ldr r2, _08119BC8
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x2C
- ldrb r2, [r0]
- movs r1, 0x7F
- ands r1, r2
- strb r1, [r0]
-_08119BB8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08119BC0: .4byte 0x02019000
-_08119BC4: .4byte sub_8119AAC
-_08119BC8: .4byte gSprites
- thumb_func_end sub_8119B24
-
- thumb_func_start sub_8119BCC
-sub_8119BCC: @ 8119BCC
- push {r4,r5,lr}
- sub sp, 0x14
- adds r4, r0, 0
- ldr r1, _08119C44
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- add r5, sp, 0x4
- ldr r1, _08119C48
- adds r0, r5, 0
- movs r2, 0x10
- bl memcpy
- ldrh r0, [r4, 0x30]
- subs r1, r0, 0x1
- strh r1, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _08119C5C
- ldr r0, _08119C4C
- ldr r0, [r0, 0x38]
- movs r1, 0x2E
- ldrsh r0, [r0, r1]
- add r0, sp
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 1
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08119CF6
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r4, 0x74
- subs r4, r0
- lsrs r0, r4, 31
- adds r4, r0
- asrs r4, 1
- negs r4, r4
- ldr r0, _08119C50
- ldr r5, _08119C54
- lsls r4, 24
- asrs r4, 24
- adds r1, r5, 0
- adds r2, r4, 0
- bl m4aMPlayPanpotControl
- ldr r0, _08119C58
- adds r1, r5, 0
- adds r2, r4, 0
- bl m4aMPlayPanpotControl
- b _08119CF6
- .align 2, 0
-_08119C44: .4byte gUnknown_083FA64A
-_08119C48: .4byte gUnknown_083FA64C
-_08119C4C: .4byte 0x02019000
-_08119C50: .4byte gMPlay_SE1
-_08119C54: .4byte 0x0000ffff
-_08119C58: .4byte gMPlay_SE2
-_08119C5C:
- lsls r0, r1, 16
- cmp r0, 0
- blt _08119CAC
- ldr r0, _08119CA8
- ldr r0, [r0, 0x38]
- movs r2, 0x2E
- ldrsh r0, [r0, r2]
- add r0, sp
- movs r2, 0
- ldrsb r2, [r0, r2]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x7
- subs r0, r1, r0
- lsls r0, 1
- adds r0, r5, r0
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- muls r0, r2
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- subs r1, r0
- lsls r1, 1
- mov r0, sp
- adds r0, 0x5
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- b _08119CF6
- .align 2, 0
-_08119CA8: .4byte 0x02019000
-_08119CAC:
- movs r0, 0x5E
- bl m4aSongNumStartOrChange
- ldr r0, _08119CCC
- ldr r0, [r0, 0x38]
- movs r2, 0x2E
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _08119CD0
- movs r0, 0x98
- lsls r0, 1
- movs r1, 0x3F
- bl PlayCry1
- b _08119CDC
- .align 2, 0
-_08119CCC: .4byte 0x02019000
-_08119CD0:
- movs r0, 0x98
- lsls r0, 1
- movs r1, 0x3F
- negs r1, r1
- bl PlayCry1
-_08119CDC:
- ldr r0, _08119D00
- ldr r0, [r0, 0x38]
- ldrh r1, [r0, 0x2E]
- adds r1, 0x2
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- movs r0, 0x2D
- strh r0, [r4, 0x30]
- ldr r0, _08119D04
- str r0, [r4, 0x1C]
-_08119CF6:
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08119D00: .4byte 0x02019000
-_08119D04: .4byte sub_8119B24
- thumb_func_end sub_8119BCC
-
- thumb_func_start sub_8119D08
-sub_8119D08: @ 8119D08
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r1, _08119D64
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- ldrh r0, [r4, 0x30]
- subs r1, r0, 0x1
- strh r1, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- blt _08119D70
- ldr r0, _08119D68
- ldr r0, [r0, 0x38]
- movs r1, 0x2E
- ldrsh r0, [r0, r1]
- add r0, sp
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 1
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldr r1, _08119D6C
- movs r2, 0x3A
- ldrsh r0, [r4, 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]
- b _08119D74
- .align 2, 0
-_08119D64: .4byte gUnknown_083FA64A
-_08119D68: .4byte 0x02019000
-_08119D6C: .4byte gSprites
-_08119D70:
- ldr r0, _08119D7C
- str r0, [r4, 0x1C]
-_08119D74:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08119D7C: .4byte sub_8119A90
- thumb_func_end sub_8119D08
-
- thumb_func_start sub_8119D80
-sub_8119D80: @ 8119D80
- push {r4,lr}
- adds r4, r0, 0
- ldr r3, _08119DB8
- ldr r1, [r3, 0x38]
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08119DC4
- movs r0, 0x34
- ldrsh r2, [r1, r0]
- ldr r1, _08119DBC
- ldrb r0, [r3, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrh r0, [r0, 0x12]
- adds r0, 0x5A
- cmp r2, r0
- bne _08119E26
- ldr r2, _08119DC0
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r3, 0x34
- b _08119DEE
- .align 2, 0
-_08119DB8: .4byte 0x02019000
-_08119DBC: .4byte gUnknown_083F8DF4
-_08119DC0: .4byte gSprites
-_08119DC4:
- movs r0, 0x34
- ldrsh r2, [r1, r0]
- ldr r1, _08119E2C
- ldrb r0, [r3, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrh r0, [r0, 0x14]
- movs r1, 0x87
- lsls r1, 1
- adds r0, r1
- cmp r2, r0
- bne _08119E26
- ldr r2, _08119E30
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r3, 0x2E
-_08119DEE:
- strh r3, [r0, 0x30]
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x30]
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _08119E34
- str r1, [r0]
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _08119E38
- str r1, [r0]
- movs r0, 0x2B
- bl m4aSongNumStart
-_08119E26:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08119E2C: .4byte gUnknown_083F8DF4
-_08119E30: .4byte gSprites
-_08119E34: .4byte sub_8119D08
-_08119E38: .4byte sub_8119BCC
- thumb_func_end sub_8119D80
-
- thumb_func_start sub_8119E3C
-sub_8119E3C: @ 8119E3C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r2, r1, 24
- movs r0, 0
- mov r9, r0
- ldr r6, _08119E60
- ldrb r0, [r6]
- cmp r0, 0x1
- beq _08119EE0
- cmp r0, 0x1
- bgt _08119E64
- cmp r0, 0
- beq _08119E6A
- b _08119F74
- .align 2, 0
-_08119E60: .4byte gUnknown_03005E98
-_08119E64:
- cmp r0, 0x2
- beq _08119F60
- b _08119F74
-_08119E6A:
- ldr r4, _08119ECC
- ldrh r0, [r5]
- movs r1, 0
- strh r0, [r4, 0x14]
- ldrb r0, [r5, 0x5]
- strb r0, [r4, 0x16]
- strb r1, [r4, 0x1A]
- strb r1, [r4, 0x1B]
- strb r1, [r4, 0x10]
- movs r0, 0x1C
- strb r0, [r4, 0x12]
- strb r1, [r4, 0x11]
- ldrb r1, [r5, 0x4]
- lsls r1, 19
- negs r1, r1
- asrs r1, 16
- adds r0, r2, 0
- movs r2, 0x1
- bl sub_811A350
- movs r0, 0
- mov r12, r6
- ldr r1, _08119ED0
- ldr r7, _08119ED4
- ldr r2, _08119ED8
- adds r6, r4, r2
- ldr r5, _08119EDC
-_08119EA0:
- movs r3, 0
- adds r4, r0, 0x1
- lsls r2, r0, 5
-_08119EA6:
- str r7, [r1]
- adds r0, r2, r3
- lsls r0, 5
- adds r0, r6
- str r0, [r1, 0x4]
- str r5, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x1F
- bls _08119EA6
- lsls r0, r4, 24
- lsrs r0, 24
- cmp r0, 0x6
- bls _08119EA0
- mov r1, r12
- b _08119F50
- .align 2, 0
-_08119ECC: .4byte 0x0201c000
-_08119ED0: .4byte 0x040000d4
-_08119ED4: .4byte gUnknown_083FB718
-_08119ED8: .4byte 0xfffe4000
-_08119EDC: .4byte 0x80000010
-_08119EE0:
- ldrb r0, [r5, 0x2]
- lsls r0, 27
- lsrs r7, r0, 16
- ldrb r1, [r5, 0x3]
- lsls r1, 12
- ldrh r0, [r5]
- lsls r0, 18
- lsrs r0, 23
- adds r1, r0
- lsls r1, 16
- lsrs r6, r1, 16
- movs r0, 0
- ldr r2, _08119F58
- mov r8, r2
- movs r1, 0xC0
- lsls r1, 19
- mov r12, r1
-_08119F02:
- movs r3, 0
- adds r4, r0, 0x1
- lsls r5, r0, 6
-_08119F08:
- lsls r1, r3, 1
- adds r1, r5
- adds r1, r7
- add r1, r12
- adds r2, r6, 0
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- strh r2, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x1F
- bls _08119F08
- lsls r0, r4, 24
- lsrs r0, 24
- cmp r0, 0x6
- bls _08119F02
- mov r2, r8
- ldrb r0, [r2, 0x16]
- movs r4, 0
- cmp r0, 0
- beq _08119F4E
- mov r5, r8
-_08119F38:
- adds r0, r4, 0
- movs r1, 0
- bl sub_811A1C8
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r5, 0x16]
- lsls r0, 3
- cmp r4, r0
- blt _08119F38
-_08119F4E:
- ldr r1, _08119F5C
-_08119F50:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08119F74
- .align 2, 0
-_08119F58: .4byte 0x0201c000
-_08119F5C: .4byte gUnknown_03005E98
-_08119F60:
- bl sub_811A324
- ldr r0, _08119F84
- ldrb r1, [r5, 0x3]
- lsls r1, 4
- movs r2, 0x20
- bl LoadPalette
- movs r0, 0x1
- mov r9, r0
-_08119F74:
- mov r0, r9
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08119F84: .4byte gUnknown_083FB6F8
- thumb_func_end sub_8119E3C
-
- thumb_func_start sub_8119F88
-sub_8119F88: @ 8119F88
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_811A324
- adds r0, r4, 0
- bl sub_811A15C
- ldr r1, _08119FC4
- ldrb r0, [r1, 0x1B]
- cmp r0, 0
- beq _08119FA6
- subs r0, 0x1
- strb r0, [r1, 0x1B]
-_08119FA6:
- ldrb r0, [r1, 0x1A]
- cmp r0, 0
- beq _08119FC8
- subs r0, 0x1
- strb r0, [r1, 0x1A]
- lsls r0, 24
- cmp r0, 0
- bne _08119FC8
- ldrh r0, [r1, 0x18]
- bl sub_811A0A0
- bl sub_811A124
- b _0811A044
- .align 2, 0
-_08119FC4: .4byte 0x0201c000
-_08119FC8:
- ldr r5, _08119FD8
- ldrb r0, [r5, 0x10]
- cmp r0, 0
- bne _08119FDC
- bl sub_811A124
- b _0811A044
- .align 2, 0
-_08119FD8: .4byte 0x0201c000
-_08119FDC:
- cmp r0, 0x1
- bne _08119FE6
- bl sub_811A0C0
- b _0811A006
-_08119FE6:
- cmp r0, 0x8
- bls _0811A006
- bl IsCryPlaying
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08119FFE
- bl sub_811A124
- strb r4, [r5, 0x10]
- b _0811A044
-_08119FFE:
- bl sub_811A0C0
- movs r0, 0x1
- strb r0, [r5, 0x10]
-_0811A006:
- ldr r5, _0811A04C
- ldrb r4, [r5, 0x10]
- subs r4, 0x1
- lsls r4, 25
- lsrs r4, 24
- ldrb r0, [r5, 0x16]
- lsls r0, 3
- ldrb r1, [r5, 0x11]
- adds r0, r1
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, r5
- ldrb r1, [r1]
- bl sub_811A1C8
- ldrb r0, [r5, 0x16]
- lsls r0, 3
- ldrb r1, [r5, 0x11]
- adds r0, r1
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- adds r4, 0x1
- adds r4, r5
- ldrb r1, [r4]
- bl sub_811A1C8
- ldrb r0, [r5, 0x10]
- adds r0, 0x1
- strb r0, [r5, 0x10]
-_0811A044:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811A04C: .4byte 0x0201c000
- thumb_func_end sub_8119F88
-
- thumb_func_start sub_811A050
-sub_811A050: @ 811A050
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r5, r0, 16
- adds r6, r5, 0
- ldr r0, _0811A08C
- ldr r0, [r0, 0x4]
- cmp r0, 0
- bge _0811A09A
- ldr r4, _0811A090
- ldrb r0, [r4, 0x1A]
- cmp r0, 0
- bne _0811A09A
- ldrb r0, [r4, 0x1B]
- cmp r0, 0
- bne _0811A09A
- movs r0, 0x4
- strb r0, [r4, 0x1B]
- bl IsCryPlaying
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0811A094
- bl StopCry
- strh r5, [r4, 0x18]
- movs r0, 0x2
- strb r0, [r4, 0x1A]
- b _0811A09A
- .align 2, 0
-_0811A08C: .4byte gMPlay_BGM
-_0811A090: .4byte 0x0201c000
-_0811A094:
- adds r0, r6, 0
- bl sub_811A0A0
-_0811A09A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_811A050
-
- thumb_func_start sub_811A0A0
-sub_811A0A0: @ 811A0A0
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0
- movs r2, 0x7D
- movs r3, 0xA
- bl PlayCry2
- ldr r1, _0811A0BC
- movs r0, 0x1
- strb r0, [r1, 0x10]
- pop {r0}
- bx r0
- .align 2, 0
-_0811A0BC: .4byte 0x0201c000
- thumb_func_end sub_811A0A0
-
- thumb_func_start sub_811A0C0
-sub_811A0C0: @ 811A0C0
- push {r4,lr}
- ldr r3, _0811A0D0
- movs r0, 0
- ldrsb r0, [r3, r0]
- cmp r0, 0x1
- bgt _0811A0D8
- ldr r0, _0811A0D4
- b _0811A0F0
- .align 2, 0
-_0811A0D0: .4byte gPcmDmaCounter
-_0811A0D4: .4byte gSoundInfo + 0x350
-_0811A0D8:
- ldr r2, _0811A11C
- ldrb r1, [r2, 0xB]
- movs r0, 0
- ldrsb r0, [r3, r0]
- subs r0, 0x1
- subs r1, r0
- ldr r0, [r2, 0x10]
- muls r0, r1
- movs r1, 0xD4
- lsls r1, 2
- adds r2, r1
- adds r0, r2
-_0811A0F0:
- movs r1, 0xC6
- lsls r1, 3
- adds r3, r0, r1
- movs r2, 0
- ldr r4, _0811A120
-_0811A0FA:
- adds r1, r2, r4
- lsls r0, r2, 1
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 1
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xF
- bls _0811A0FA
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811A11C: .4byte gSoundInfo
-_0811A120: .4byte 0x0201c000
- thumb_func_end sub_811A0C0
-
- thumb_func_start sub_811A124
-sub_811A124: @ 811A124
- push {r4,lr}
- ldr r4, _0811A158
- ldrb r0, [r4, 0x16]
- lsls r0, 3
- ldrb r1, [r4, 0x11]
- adds r0, r1
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_811A1C8
- ldrb r0, [r4, 0x16]
- lsls r0, 3
- ldrb r4, [r4, 0x11]
- adds r0, r4
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_811A1C8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811A158: .4byte 0x0201c000
- thumb_func_end sub_811A124
-
- thumb_func_start sub_811A15C
-sub_811A15C: @ 811A15C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _0811A1B4
- ldrb r1, [r4, 0x11]
- movs r2, 0
- bl sub_811A350
- ldrb r0, [r4, 0x11]
- adds r0, 0x2
- strb r0, [r4, 0x11]
- ldrb r0, [r4, 0x11]
- lsrs r0, 3
- ldrb r2, [r4, 0x16]
- adds r1, r0, r2
- adds r2, r1, 0x1
- adds r0, r2, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r2, r0
- lsls r0, 16
- lsrs r3, r0, 16
- movs r1, 0
- ldr r2, _0811A1B8
- ldr r6, _0811A1BC
- ldr r0, _0811A1C0
- adds r5, r4, r0
- ldr r4, _0811A1C4
-_0811A194:
- str r6, [r2]
- lsls r0, r1, 5
- adds r0, r3
- lsls r0, 5
- adds r0, r5
- str r0, [r2, 0x4]
- str r4, [r2, 0x8]
- ldr r0, [r2, 0x8]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x6
- bls _0811A194
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811A1B4: .4byte 0x0201c000
-_0811A1B8: .4byte 0x040000d4
-_0811A1BC: .4byte gUnknown_083FB718
-_0811A1C0: .4byte 0xfffe4000
-_0811A1C4: .4byte 0x80000010
- thumb_func_end sub_811A15C
-
- thumb_func_start sub_811A1C8
-sub_811A1C8: @ 811A1C8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r5, r0, 24
- lsrs r4, r5, 24
- lsls r1, 24
- movs r0, 0xFE
- lsls r0, 23
- adds r1, r0
- lsrs r1, 16
- adds r0, r1, 0
- bl __floatsidf
- ldr r3, _0811A280
- ldr r2, _0811A27C
- bl __divdf3
- bl __fixunsdfsi
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x37
- bls _0811A1FE
- movs r6, 0x37
-_0811A1FE:
- str r6, [sp]
- movs r7, 0x1
- ands r7, r4
- ldr r0, _0811A284
- mov r10, r0
- lsrs r5, 27
- mov r8, r5
- ldr r0, _0811A288
- mov r1, r10
- ldrb r1, [r1, 0x12]
- cmp r6, r1
- bls _0811A298
- adds r0, r7, r0
- ldrb r0, [r0]
- mov r9, r0
- movs r2, 0x7
- ands r2, r4
-_0811A220:
- lsls r1, r6, 1
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 4
- adds r1, r0
- ldr r3, _0811A28C
- adds r1, r3
- mov r3, r8
- lsls r0, r3, 5
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0811A290
- adds r5, r0, r1
- ldrb r4, [r5]
- mov r3, r9
- ands r4, r3
- strb r4, [r5]
- adds r0, r6, 0
- movs r1, 0x3
- str r2, [sp, 0x8]
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- movs r1, 0xF
- ands r0, r1
- lsls r1, r7, 4
- adds r0, r1
- ldr r1, _0811A294
- adds r0, r1
- ldrb r0, [r0]
- orrs r4, r0
- strb r4, [r5]
- subs r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, [sp, 0x8]
- ldr r3, _0811A284
- ldrb r3, [r3, 0x12]
- cmp r6, r3
- bhi _0811A220
- b _0811A2FA
- .align 2, 0
-_0811A27C: .4byte 0x40920000
-_0811A280: .4byte 0x00000000
-_0811A284: .4byte 0x0201c000
-_0811A288: .4byte gUnknown_083FB738
-_0811A28C: .4byte gUnknown_083FB274
-_0811A290: .4byte 0x02000000
-_0811A294: .4byte gUnknown_083FB73A
-_0811A298:
- lsls r1, r7, 4
- str r1, [sp, 0x4]
- adds r0, r7, r0
- ldrb r0, [r0]
- mov r9, r0
- movs r7, 0x7
- ands r7, r4
-_0811A2A6:
- lsls r1, r6, 1
- lsls r0, r7, 3
- adds r0, r7
- lsls r0, 4
- adds r1, r0
- ldr r2, _0811A314
- adds r1, r2
- mov r3, r8
- lsls r0, r3, 5
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0811A318
- adds r5, r0, r1
- ldrb r4, [r5]
- mov r2, r9
- ands r4, r2
- strb r4, [r5]
- adds r0, r6, 0
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- movs r1, 0xF
- ands r0, r1
- ldr r3, [sp, 0x4]
- adds r0, r3
- ldr r1, _0811A31C
- adds r0, r1
- ldrb r0, [r0]
- orrs r4, r0
- strb r4, [r5]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, _0811A320
- ldrb r2, [r2, 0x12]
- cmp r6, r2
- bcc _0811A2A6
-_0811A2FA:
- mov r3, sp
- ldrb r0, [r3]
- mov r3, r10
- strb r0, [r3, 0x12]
- 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
-_0811A314: .4byte gUnknown_083FB274
-_0811A318: .4byte 0x02000000
-_0811A31C: .4byte gUnknown_083FB73A
-_0811A320: .4byte 0x0201c000
- thumb_func_end sub_811A1C8
-
- thumb_func_start sub_811A324
-sub_811A324: @ 811A324
- ldr r2, _0811A344
- ldr r0, _0811A348
- str r0, [r2]
- movs r1, 0xE0
- lsls r1, 9
- adds r0, r1
- ldrh r0, [r0, 0x14]
- movs r1, 0xC0
- lsls r1, 19
- adds r0, r1
- str r0, [r2, 0x4]
- ldr r0, _0811A34C
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- bx lr
- .align 2, 0
-_0811A344: .4byte 0x040000d4
-_0811A348: .4byte 0x02000000
-_0811A34C: .4byte 0x80000e00
- thumb_func_end sub_811A324
-
- thumb_func_start sub_811A350
-sub_811A350: @ 811A350
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 24
- lsrs r2, 24
- cmp r0, 0x1
- beq _0811A38C
- cmp r0, 0x1
- bgt _0811A36E
- cmp r0, 0
- beq _0811A378
- b _0811A3C4
-_0811A36E:
- cmp r3, 0x2
- beq _0811A3A0
- cmp r3, 0x3
- beq _0811A3B4
- b _0811A3C4
-_0811A378:
- cmp r2, 0
- beq _0811A384
- ldr r0, _0811A380
- b _0811A3C2
- .align 2, 0
-_0811A380: .4byte REG_BG0VOFS
-_0811A384:
- ldr r0, _0811A388
- b _0811A3C2
- .align 2, 0
-_0811A388: .4byte REG_BG0HOFS
-_0811A38C:
- cmp r2, 0
- beq _0811A398
- ldr r0, _0811A394
- b _0811A3C2
- .align 2, 0
-_0811A394: .4byte REG_BG1VOFS
-_0811A398:
- ldr r0, _0811A39C
- b _0811A3C2
- .align 2, 0
-_0811A39C: .4byte REG_BG1HOFS
-_0811A3A0:
- cmp r2, 0
- beq _0811A3AC
- ldr r0, _0811A3A8
- b _0811A3C2
- .align 2, 0
-_0811A3A8: .4byte REG_BG2VOFS
-_0811A3AC:
- ldr r0, _0811A3B0
- b _0811A3C2
- .align 2, 0
-_0811A3B0: .4byte REG_BG2HOFS
-_0811A3B4:
- cmp r2, 0
- beq _0811A3C0
- ldr r0, _0811A3BC
- b _0811A3C2
- .align 2, 0
-_0811A3BC: .4byte REG_BG3VOFS
-_0811A3C0:
- ldr r0, _0811A3C8
-_0811A3C2:
- strh r1, [r0]
-_0811A3C4:
- pop {r0}
- bx r0
- .align 2, 0
-_0811A3C8: .4byte REG_BG3HOFS
- thumb_func_end sub_811A350
-
- thumb_func_start sub_811A3CC
-sub_811A3CC: @ 811A3CC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r4, r0, 0
- movs r0, 0
- str r0, [sp]
- ldr r0, _0811A3F4
- ldrb r1, [r0]
- mov r10, r0
- cmp r1, 0x1
- beq _0811A42C
- cmp r1, 0x1
- bgt _0811A3F8
- cmp r1, 0
- beq _0811A3FE
- b _0811A4D6
- .align 2, 0
-_0811A3F4: .4byte gUnknown_03005E98
-_0811A3F8:
- cmp r1, 0x2
- beq _0811A494
- b _0811A4D6
-_0811A3FE:
- ldr r0, _0811A424
- ldrh r1, [r4]
- movs r2, 0xC0
- lsls r2, 19
- adds r1, r2
- bl LZ77UnCompVram
- ldr r0, _0811A428
- ldrb r1, [r4, 0x3]
- lsls r1, 4
- movs r2, 0x20
- bl LoadPalette
- mov r1, r10
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0811A4D6
- .align 2, 0
-_0811A424: .4byte gUnknown_083FAF3C
-_0811A428: .4byte gUnknown_083FAF1C
-_0811A42C:
- ldrb r0, [r4, 0x2]
- lsls r0, 11
- movs r1, 0xC0
- lsls r1, 19
- adds r0, r1
- mov r8, r0
- ldrh r0, [r4]
- lsls r0, 18
- lsrs r0, 23
- mov r12, r0
- movs r5, 0
- ldr r2, _0811A490
- mov r9, r2
-_0811A446:
- movs r3, 0
- lsls r0, r5, 2
- adds r7, r5, 0x1
- adds r0, r5
- lsls r6, r0, 1
-_0811A450:
- ldrb r0, [r4, 0x5]
- adds r0, r5, r0
- ldrb r2, [r4, 0x4]
- adds r2, r3, r2
- lsls r2, 1
- lsls r0, 6
- adds r2, r0
- add r2, r8
- adds r1, r6, r3
- lsls r1, 1
- add r1, r9
- ldrb r0, [r4, 0x3]
- lsls r0, 12
- ldrh r1, [r1]
- orrs r0, r1
- add r0, r12
- strh r0, [r2]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x9
- bls _0811A450
- lsls r0, r7, 24
- lsrs r5, r0, 24
- cmp r5, 0x7
- bls _0811A446
- mov r3, r10
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- b _0811A4D6
- .align 2, 0
-_0811A490: .4byte gUnknown_083FAE7C
-_0811A494:
- ldr r0, _0811A4E8
- bl LoadSpriteSheets
- ldr r0, _0811A4EC
- bl LoadSpritePalettes
- ldr r0, _0811A4F0
- ldrb r1, [r4, 0x4]
- lsls r1, 19
- movs r2, 0xA0
- lsls r2, 14
- adds r1, r2
- asrs r1, 16
- ldrb r2, [r4, 0x5]
- lsls r2, 19
- movs r3, 0xE0
- lsls r3, 14
- adds r2, r3
- asrs r2, 16
- movs r3, 0x1
- bl CreateSprite
- ldr r1, _0811A4F4
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- strh r0, [r1, 0x4]
- movs r0, 0x20
- strb r0, [r1]
- strb r0, [r1, 0x1]
- strb r2, [r1, 0x2]
- movs r0, 0x1
- str r0, [sp]
-_0811A4D6:
- ldr r0, [sp]
- 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
-_0811A4E8: .4byte gCryMeterNeedleSpriteSheets
-_0811A4EC: .4byte gCryMeterNeedleSpritePalettes
-_0811A4F0: .4byte gSpriteTemplate_83FB774
-_0811A4F4: .4byte 0x0201c800
- thumb_func_end sub_811A3CC
-
- thumb_func_start sub_811A4F8
-sub_811A4F8: @ 811A4F8
- push {r4,r5,lr}
- ldr r5, _0811A52C
- ldr r4, _0811A530
- ldrh r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- bl GetSpritePaletteTagByPaletteNum
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpritePaletteByTag
- ldrh r1, [r4, 0x4]
- 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
-_0811A52C: .4byte gSprites
-_0811A530: .4byte 0x0201c800
- thumb_func_end sub_811A4F8
-
- thumb_func_start sub_811A534
-sub_811A534: @ 811A534
- push {r4-r7,lr}
- sub sp, 0x14
- adds r7, r0, 0
- ldr r3, _0811A578
- ldr r5, _0811A57C
- ldrh r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r2, [r0, 0x1]
- movs r1, 0x4
- negs r1, r1
- ands r1, r2
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x1]
- ldrh r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x6]
- ldr r0, _0811A580
- adds r1, r5, r0
- ldrb r0, [r1, 0x10]
- cmp r0, 0x2
- beq _0811A5AA
- cmp r0, 0x2
- bgt _0811A584
- cmp r0, 0
- beq _0811A58A
- b _0811A5F4
- .align 2, 0
-_0811A578: .4byte gSprites
-_0811A57C: .4byte 0x0201c800
-_0811A580: .4byte 0xfffff800
-_0811A584:
- cmp r0, 0x6
- beq _0811A5E2
- b _0811A5F4
-_0811A58A:
- movs r0, 0x20
- strb r0, [r5, 0x1]
- movs r0, 0
- ldrsb r0, [r5, r0]
- cmp r0, 0
- ble _0811A5A4
- ldrb r0, [r5, 0x2]
- add r4, sp, 0xC
- cmp r0, 0x1
- beq _0811A5F6
- subs r0, 0x1
- strb r0, [r5, 0x2]
- b _0811A5F6
-_0811A5A4:
- movs r0, 0x5
- strb r0, [r5, 0x2]
- b _0811A5F4
-_0811A5AA:
- movs r3, 0
- movs r2, 0
- add r4, sp, 0xC
- adds r5, r1, 0
-_0811A5B2:
- lsls r1, r3, 24
- asrs r1, 24
- adds r0, r2, r5
- ldrb r0, [r0]
- cmp r1, r0
- bge _0811A5C0
- adds r3, r0, 0
-_0811A5C0:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xF
- bls _0811A5B2
- lsls r0, r3, 24
- asrs r0, 24
- movs r1, 0xD0
- muls r0, r1
- cmp r0, 0
- bge _0811A5D8
- adds r0, 0xFF
-_0811A5D8:
- lsls r0, 16
- asrs r0, 24
- bl sub_811A6D8
- b _0811A5F6
-_0811A5E2:
- ldr r1, _0811A620
- adds r0, r5, r1
- ldrb r1, [r0]
- movs r0, 0xD0
- muls r0, r1
- lsls r0, 16
- asrs r0, 24
- bl sub_811A6D8
-_0811A5F4:
- add r4, sp, 0xC
-_0811A5F6:
- ldr r0, _0811A624
- ldrb r3, [r0]
- movs r2, 0
- ldrsb r2, [r0, r2]
- ldrb r6, [r0, 0x1]
- movs r1, 0x1
- ldrsb r1, [r0, r1]
- adds r5, r0, 0
- cmp r2, r1
- beq _0811A63C
- cmp r2, r1
- bge _0811A628
- ldrb r0, [r5, 0x2]
- adds r0, r3, r0
- strb r0, [r5]
- lsls r0, 24
- asrs r0, 24
- cmp r0, r1
- ble _0811A63C
- b _0811A636
- .align 2, 0
-_0811A620: .4byte 0xfffff80a
-_0811A624: .4byte 0x0201c800
-_0811A628:
- ldrb r0, [r5, 0x2]
- subs r0, r3, r0
- strb r0, [r5]
- lsls r0, 24
- asrs r0, 24
- cmp r0, r1
- bge _0811A63C
-_0811A636:
- strb r6, [r5]
- movs r0, 0
- strb r0, [r5, 0x1]
-_0811A63C:
- ldr r2, _0811A6CC
- ldr r0, [sp, 0x4]
- ands r0, r2
- movs r1, 0x80
- lsls r1, 1
- orrs r0, r1
- ldr r1, _0811A6D0
- ands r0, r1
- movs r1, 0x80
- lsls r1, 17
- orrs r0, r1
- str r0, [sp, 0x4]
- movs r1, 0
- ldrsb r1, [r5, r1]
- lsls r1, 24
- lsrs r1, 16
- ldr r0, [sp, 0x8]
- ands r0, r2
- orrs r0, r1
- str r0, [sp, 0x8]
- add r0, sp, 0x4
- adds r1, r4, 0
- movs r2, 0x1
- movs r3, 0x2
- bl ObjAffineSet
- add r0, sp, 0xC
- ldrh r1, [r0]
- ldrh r2, [r4, 0x2]
- ldrh r3, [r4, 0x4]
- ldrh r0, [r4, 0x6]
- str r0, [sp]
- movs r0, 0
- bl SetOamMatrix
- ldr r2, _0811A6D4
- movs r0, 0
- ldrsb r0, [r5, r0]
- adds r0, 0x7F
- movs r1, 0xFF
- ands r0, r1
- lsls r1, r0, 1
- adds r1, r2
- adds r0, 0x40
- lsls r0, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0
- ldrsh r1, [r1, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- cmp r0, 0
- bge _0811A6AA
- adds r0, 0xFF
-_0811A6AA:
- asrs r0, 8
- strh r0, [r7, 0x24]
- lsls r1, r2, 16
- asrs r1, 16
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- cmp r0, 0
- bge _0811A6BE
- adds r0, 0xFF
-_0811A6BE:
- asrs r0, 8
- strh r0, [r7, 0x26]
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811A6CC: .4byte 0xffff0000
-_0811A6D0: .4byte 0x0000ffff
-_0811A6D4: .4byte gSineTable
- thumb_func_end sub_811A534
-
- thumb_func_start sub_811A6D8
-sub_811A6D8: @ 811A6D8
- push {lr}
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x20
- subs r2, r1, r0
- movs r0, 0xFF
- ands r2, r0
- adds r0, r2, 0
- subs r0, 0x21
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xBE
- bhi _0811A6F4
- movs r2, 0xE0
-_0811A6F4:
- ldr r1, _0811A700
- strb r2, [r1, 0x1]
- movs r0, 0x5
- strb r0, [r1, 0x2]
- pop {r0}
- bx r0
- .align 2, 0
-_0811A700: .4byte 0x0201c800
- thumb_func_end sub_811A6D8
-
- thumb_func_start sub_811A704
-sub_811A704: @ 811A704
- push {r4,lr}
- adds r4, r1, 0
- adds r3, r2, 0
- lsls r4, 24
- lsls r3, 24
- movs r1, 0x80
- lsls r1, 18
- adds r4, r1
- lsrs r4, 24
- movs r1, 0x80
- lsls r1, 17
- adds r3, r1
- lsrs r3, 24
- movs r1, 0x4
- adds r2, r4, 0
- bl sub_811A798
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_811A704
-
- thumb_func_start sub_811A72C
-sub_811A72C: @ 811A72C
- 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, 0x90
- lsls r0, 20
- adds r4, r0
- lsrs r4, 24
- lsrs r5, r3, 24
- movs r0, 0xC0
- lsls r0, 18
- adds r3, r0
- 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_811A704
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_811A72C
-
- thumb_func_start sub_811A770
-sub_811A770: @ 811A770
- push {r4,lr}
- adds r2, r0, 0
- adds r3, r1, 0
- lsls r2, 24
- lsls r3, 24
- lsrs r0, r2, 24
- movs r1, 0x90
- lsls r1, 20
- adds r2, r1
- lsrs r2, 24
- lsrs r1, r3, 24
- movs r4, 0xC0
- lsls r4, 18
- adds r3, r4
- lsrs r3, 24
- bl MenuZeroFillWindowRect
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_811A770
-
- thumb_func_start sub_811A798
-sub_811A798: @ 811A798
- push {r4-r7,lr}
- sub sp, 0x10
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r5, r1, 0
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r7, r3, 24
- mov r0, sp
- adds r1, r4, 0
- bl ConvertIntToDecimalString
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 1
- adds r1, 0x21
- adds r0, r5, 0x2
- lsls r0, 3
- subs r1, r0
- lsls r1, 24
- lsrs r0, r1, 27
- subs r0, r6, r0
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0xE0
- lsls r0, 19
- ands r0, r1
- lsrs r1, r0, 24
- ldr r4, _0811A824
- cmp r1, 0
- beq _0811A7EA
- movs r0, 0xFC
- strb r0, [r4]
- movs r0, 0x11
- strb r0, [r4, 0x1]
- movs r0, 0x8
- subs r0, r1
- strb r0, [r4, 0x2]
- adds r4, 0x3
-_0811A7EA:
- movs r0, 0xFC
- strb r0, [r4]
- movs r0, 0x11
- strb r0, [r4, 0x1]
- mov r0, sp
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- subs r0, r5, r0
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- strb r1, [r4, 0x2]
- adds r4, 0x3
- adds r0, r4, 0
- mov r1, sp
- bl StringCopy
- ldr r0, _0811A828
- adds r1, r6, 0
- adds r2, r7, 0
- bl MenuPrint
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811A824: .4byte gStringVar1
-_0811A828: .4byte gOtherText_Coins2
- thumb_func_end sub_811A798
-
- thumb_func_start GetCoins
-GetCoins: @ 811A82C
- ldr r0, _0811A838
- ldr r1, _0811A83C
- adds r0, r1
- ldrh r0, [r0]
- bx lr
- .align 2, 0
-_0811A838: .4byte gSaveBlock1
-_0811A83C: .4byte 0x00000494
- thumb_func_end GetCoins
-
- thumb_func_start sub_811A840
-sub_811A840: @ 811A840
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl GetCoins
- lsls r0, 16
- ldr r1, _0811A858
- cmp r0, r1
- bls _0811A85C
- movs r0, 0
- b _0811A88C
- .align 2, 0
-_0811A858: .4byte 0x270e0000
-_0811A85C:
- ldr r0, _0811A874
- ldr r1, _0811A878
- adds r3, r0, r1
- ldrh r1, [r3]
- adds r2, r4, r1
- lsls r0, r2, 16
- lsrs r0, 16
- cmp r1, r0
- bls _0811A880
- ldr r0, _0811A87C
- strh r0, [r3]
- b _0811A88A
- .align 2, 0
-_0811A874: .4byte gSaveBlock1
-_0811A878: .4byte 0x00000494
-_0811A87C: .4byte 0x0000270f
-_0811A880:
- strh r2, [r3]
- ldr r1, _0811A894
- cmp r0, r1
- bls _0811A88A
- strh r1, [r3]
-_0811A88A:
- movs r0, 0x1
-_0811A88C:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811A894: .4byte 0x0000270f
- thumb_func_end sub_811A840
-
- thumb_func_start sub_811A898
-sub_811A898: @ 811A898
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl GetCoins
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r4
- bcs _0811A8AE
- movs r0, 0
- b _0811A8BC
-_0811A8AE:
- ldr r1, _0811A8C4
- ldr r0, _0811A8C8
- adds r1, r0
- ldrh r0, [r1]
- subs r0, r4
- strh r0, [r1]
- movs r0, 0x1
-_0811A8BC:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811A8C4: .4byte gSaveBlock1
-_0811A8C8: .4byte 0x00000494
- thumb_func_end sub_811A898
-
- thumb_func_start sub_811A8CC
-sub_811A8CC: @ 811A8CC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- bl sub_811A920
- adds r4, r0, 0
- cmp r4, 0
- bne _0811A8E8
-_0811A8E4:
- movs r0, 0
- b _0811A91A
-_0811A8E8:
- ldr r6, _0811A8EC
- b _0811A8FE
- .align 2, 0
-_0811A8EC: .4byte 0x0000ffff
-_0811A8F0:
- subs r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_0811A8F6:
- adds r4, 0x4
- ldr r0, [r4]
- cmp r0, 0
- beq _0811A8E4
-_0811A8FE:
- ldr r1, [r4]
- ldrh r0, [r1, 0x4]
- cmp r0, r6
- beq _0811A912
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0811A8F6
-_0811A912:
- cmp r5, 0
- bne _0811A8F0
- ldr r0, [r4]
- ldr r0, [r0]
-_0811A91A:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_811A8CC
-
- thumb_func_start sub_811A920
-sub_811A920: @ 811A920
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- movs r2, 0
- ldr r0, _0811A964
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0x58
- beq _0811A990
- adds r1, r4, 0
-_0811A938:
- lsls r0, r2, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, r3
- bhi _0811A990
- cmp r0, r3
- beq _0811A956
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r0, r2, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x58
- bne _0811A938
-_0811A956:
- lsls r0, r2, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x58
- bne _0811A970
- b _0811A990
- .align 2, 0
-_0811A964: .4byte gLandmarkLists
-_0811A968:
- adds r0, r4, 0x4
- adds r0, r1, r0
- ldr r0, [r0]
- b _0811A992
-_0811A970:
- cmp r0, r3
- bne _0811A990
- ldr r5, _0811A998
-_0811A976:
- lsls r1, r2, 3
- adds r0, r1, r5
- ldrb r0, [r0, 0x1]
- cmp r0, r6
- beq _0811A968
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r0, r2, 3
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, r3
- beq _0811A976
-_0811A990:
- movs r0, 0
-_0811A992:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811A998: .4byte gLandmarkLists
- thumb_func_end sub_811A920
-
- thumb_func_start sub_811A99C
-sub_811A99C: @ 811A99C
- push {lr}
- bl sub_81474C8
- lsls r0, 24
- cmp r0, 0
- beq _0811A9D4
- ldr r1, _0811A9BC
- ldr r0, _0811A9C0
- ldrb r0, [r0]
- strh r0, [r1]
- ldr r1, _0811A9C4
- ldr r0, _0811A9C8
- str r0, [r1]
- ldr r1, _0811A9CC
- ldr r0, _0811A9D0
- b _0811A9F8
- .align 2, 0
-_0811A9BC: .4byte gScriptResult
-_0811A9C0: .4byte gUnknown_03005CE0
-_0811A9C4: .4byte gUnknown_0300485C
-_0811A9C8: .4byte sub_808AB90
-_0811A9CC: .4byte gUnknown_03005CE4
-_0811A9D0: .4byte sub_811AA38
-_0811A9D4:
- movs r0, 0x57
- bl npc_before_player_of_type
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0811A9E6
- movs r0, 0
- b _0811A9FC
-_0811A9E6:
- ldr r1, _0811AA00
- ldr r0, _0811AA04
- ldrb r0, [r0]
- strh r0, [r1]
- ldr r1, _0811AA08
- ldr r0, _0811AA0C
- str r0, [r1]
- ldr r1, _0811AA10
- ldr r0, _0811AA14
-_0811A9F8:
- str r0, [r1]
- movs r0, 0x1
-_0811A9FC:
- pop {r1}
- bx r1
- .align 2, 0
-_0811AA00: .4byte gScriptResult
-_0811AA04: .4byte gUnknown_03005CE0
-_0811AA08: .4byte gUnknown_0300485C
-_0811AA0C: .4byte sub_808AB90
-_0811AA10: .4byte gUnknown_03005CE4
-_0811AA14: .4byte sub_811AA18
- thumb_func_end sub_811A99C
-
- thumb_func_start sub_811AA18
-sub_811AA18: @ 811AA18
- push {lr}
- ldr r1, _0811AA2C
- ldr r0, _0811AA30
- ldrb r0, [r0]
- str r0, [r1]
- ldr r0, _0811AA34
- bl ScriptContext1_SetupScript
- pop {r0}
- bx r0
- .align 2, 0
-_0811AA2C: .4byte gUnknown_0202FF84
-_0811AA30: .4byte gUnknown_03005CE0
-_0811AA34: .4byte UseStrengthScript
- thumb_func_end sub_811AA18
-
- thumb_func_start sub_811AA38
-sub_811AA38: @ 811AA38
- push {lr}
- ldr r0, _0811AA4C
- ldr r1, _0811AA50
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x28
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_0811AA4C: .4byte gUnknown_0202FF84
-_0811AA50: .4byte gUnknown_03005CE0
- thumb_func_end sub_811AA38
-
- thumb_func_start sub_811AA54
-sub_811AA54: @ 811AA54
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811AA88
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _0811AA8C
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- ldr r0, _0811AA90
- ldr r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0811AA94
- adds r0, r1
- ldr r1, _0811AA98
- bl GetMonNickname
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0811AA88: .4byte gTasks
-_0811AA8C: .4byte sub_811AA9C
-_0811AA90: .4byte gUnknown_0202FF84
-_0811AA94: .4byte gPlayerParty
-_0811AA98: .4byte gStringVar1
- thumb_func_end sub_811AA54
-
- thumb_func_start sub_811AA9C
-sub_811AA9C: @ 811AA9C
- push {lr}
- bl sub_81474C8
- lsls r0, 24
- cmp r0, 0
- beq _0811AAAE
- bl sub_8147514
- b _0811AAB8
-_0811AAAE:
- movs r0, 0x28
- bl FieldEffectActiveListRemove
- bl EnableBothScriptContexts
-_0811AAB8:
- pop {r0}
- bx r0
- thumb_func_end sub_811AA9C
-
- thumb_func_start sub_811AABC
-sub_811AABC: @ 811AABC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811AAD0
- ldr r1, _0811AAD4
- str r1, [r2, 0x4]
- bl sub_811AB20
- pop {r0}
- bx r0
- .align 2, 0
-_0811AAD0: .4byte gMain
-_0811AAD4: .4byte sub_8054398
- thumb_func_end sub_811AABC
-
- thumb_func_start sub_811AAD8
-sub_811AAD8: @ 811AAD8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_811AB20
- pop {r0}
- bx r0
- thumb_func_end sub_811AAD8
-
- thumb_func_start sub_811AAE8
-sub_811AAE8: @ 811AAE8
- push {lr}
- ldr r0, _0811AB0C
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0811AB10
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0x26
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0811AB14
- movs r0, 0
- b _0811AB1C
- .align 2, 0
-_0811AB0C: .4byte sub_811AB50
-_0811AB10: .4byte gTasks
-_0811AB14:
- adds r0, r2, 0
- bl DestroyTask
- movs r0, 0x1
-_0811AB1C:
- pop {r1}
- bx r1
- thumb_func_end sub_811AAE8
-
- thumb_func_start sub_811AB20
-sub_811AB20: @ 811AB20
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0811AB48
- movs r1, 0x2
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811AB4C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xA]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811AB48: .4byte sub_811AB50
-_0811AB4C: .4byte gTasks
- thumb_func_end sub_811AB20
-
- thumb_func_start sub_811AB50
-sub_811AB50: @ 811AB50
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811AB80
- ldr r2, _0811AB84
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811AB62:
- 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 _0811AB62
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811AB80: .4byte gUnknown_083FD794
-_0811AB84: .4byte gTasks
- thumb_func_end sub_811AB50
-
- thumb_func_start sub_811AB88
-sub_811AB88: @ 811AB88
- push {r4,lr}
- adds r4, r0, 0
- bl sub_807DE10
- ldr r0, _0811ABB4
- ldr r1, _0811ABB8
- ldr r2, _0811ABBC
- bl CpuSet
- ldr r1, _0811ABC0
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0
- bne _0811ABC4
- movs r0, 0x2
- strh r0, [r4, 0x8]
- movs r0, 0x1
- b _0811ABD2
- .align 2, 0
-_0811ABB4: .4byte gPlttBufferFaded
-_0811ABB8: .4byte gPlttBufferUnfaded
-_0811ABBC: .4byte 0x04000100
-_0811ABC0: .4byte gUnknown_083FD70C
-_0811ABC4:
- movs r1, 0x4
- bl CreateTask
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
-_0811ABD2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_811AB88
-
- thumb_func_start sub_811ABD8
-sub_811ABD8: @ 811ABD8
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _0811ABF8
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0811ABFC
- movs r0, 0
- b _0811AC04
- .align 2, 0
-_0811ABF8: .4byte gUnknown_083FD70C
-_0811ABFC:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
-_0811AC04:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_811ABD8
-
- thumb_func_start sub_811AC0C
-sub_811AC0C: @ 811AC0C
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _0811AC30
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- bl CreateTask
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811AC30: .4byte gBattleTransitionFuncs
- thumb_func_end sub_811AC0C
-
- thumb_func_start sub_811AC34
-sub_811AC34: @ 811AC34
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- strh r0, [r4, 0x26]
- ldr r1, _0811AC60
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0811AC58
- movs r0, 0x1
- strh r0, [r4, 0x26]
-_0811AC58:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811AC60: .4byte gBattleTransitionFuncs
- thumb_func_end sub_811AC34
-
- thumb_func_start sub_811AC64
-sub_811AC64: @ 811AC64
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- ldr r1, _0811AC98
- 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, 0
- bne _0811AC9C
- adds r0, r2, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x2
- bl sub_811D4C8
- b _0811ACAC
- .align 2, 0
-_0811AC98: .4byte gTasks
-_0811AC9C:
- bl sub_811D52C
- lsls r0, 24
- cmp r0, 0
- beq _0811ACAC
- adds r0, r4, 0
- bl DestroyTask
-_0811ACAC:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_811AC64
-
- thumb_func_start sub_811ACB4
-sub_811ACB4: @ 811ACB4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811ACE4
- ldr r2, _0811ACE8
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811ACC6:
- 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 _0811ACC6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811ACE4: .4byte gUnknown_083FD7A4
-_0811ACE8: .4byte gTasks
- thumb_func_end sub_811ACB4
-
- thumb_func_start sub_811ACEC
-sub_811ACEC: @ 811ACEC
- ldr r2, _0811AD18
- movs r1, 0
- strh r1, [r2]
- subs r2, 0x42
- ldrh r1, [r2]
- movs r3, 0x40
- orrs r1, r3
- strh r1, [r2]
- adds r2, 0x2
- ldrh r1, [r2]
- orrs r1, r3
- strh r1, [r2]
- adds r2, 0x2
- ldrh r1, [r2]
- orrs r1, r3
- strh r1, [r2]
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- movs r0, 0x1
- bx lr
- .align 2, 0
-_0811AD18: .4byte REG_MOSAIC
- thumb_func_end sub_811ACEC
-
- thumb_func_start sub_811AD1C
-sub_811AD1C: @ 811AD1C
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0xA]
- movs r1, 0xA
- ldrsh r2, [r4, r1]
- cmp r2, 0
- beq _0811AD32
- subs r0, 0x1
- strh r0, [r4, 0xA]
- b _0811AD70
-_0811AD32:
- movs r0, 0x4
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _0811AD54
- movs r1, 0x1
- negs r1, r1
- str r2, [sp]
- adds r0, r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0811AD54:
- ldr r2, _0811AD7C
- ldrh r0, [r4, 0xC]
- movs r1, 0xF
- ands r1, r0
- lsls r0, r1, 4
- adds r0, r1
- strh r0, [r2]
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0xE
- ble _0811AD70
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0811AD70:
- movs r0, 0
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811AD7C: .4byte REG_MOSAIC
- thumb_func_end sub_811AD1C
-
- thumb_func_start sub_811AD80
-sub_811AD80: @ 811AD80
- push {lr}
- ldr r0, _0811ADA4
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0811AD9C
- ldr r0, _0811ADA8
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0811AD9C:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0811ADA4: .4byte gPaletteFade
-_0811ADA8: .4byte sub_811ACB4
- thumb_func_end sub_811AD80
-
- thumb_func_start sub_811ADAC
-sub_811ADAC: @ 811ADAC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811ADDC
- ldr r2, _0811ADE0
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811ADBE:
- 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 _0811ADBE
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811ADDC: .4byte gUnknown_083FD7B0
-_0811ADE0: .4byte gTasks
- thumb_func_end sub_811ADAC
-
- thumb_func_start sub_811ADE4
-sub_811ADE4: @ 811ADE4
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _0811AE54
- ldr r1, _0811AE58
- movs r2, 0x14
- ldrsh r1, [r1, r2]
- str r4, [sp]
- movs r2, 0xA0
- str r2, [sp, 0x4]
- movs r2, 0
- movs r3, 0x2
- bl sub_811D6E8
- ldr r0, _0811AE5C
- bl SetVBlankCallback
- ldr r0, _0811AE60
- bl SetHBlankCallback
- ldr r3, _0811AE64
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _0811AE68
- ldrh r0, [r4]
- movs r1, 0x3
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _0811AE6C
- ldrh r0, [r2]
- movs r1, 0x18
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811AE54: .4byte gUnknown_03005560
-_0811AE58: .4byte 0x0200c000
-_0811AE5C: .4byte sub_811AEE0
-_0811AE60: .4byte sub_811AF18
-_0811AE64: .4byte 0x04000208
-_0811AE68: .4byte 0x04000200
-_0811AE6C: .4byte REG_DISPSTAT
- thumb_func_end sub_811ADE4
-
- thumb_func_start sub_811AE70
-sub_811AE70: @ 811AE70
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r4, _0811AED0
- ldrb r1, [r4]
- movs r1, 0
- strb r1, [r4]
- ldrh r1, [r0, 0xA]
- adds r1, 0x4
- strh r1, [r0, 0xA]
- ldrh r1, [r0, 0xC]
- adds r1, 0x8
- strh r1, [r0, 0xC]
- ldr r3, _0811AED4
- movs r2, 0x14
- ldrsh r1, [r4, r2]
- movs r5, 0xA
- ldrsh r2, [r0, r5]
- movs r5, 0xC
- ldrsh r0, [r0, r5]
- str r0, [sp]
- movs r0, 0xA0
- str r0, [sp, 0x4]
- adds r0, r3, 0
- movs r3, 0x2
- bl sub_811D6E8
- ldr r0, _0811AED8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0811AEBE
- ldr r0, _0811AEDC
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0811AEBE:
- ldrb r0, [r4]
- adds r0, 0x1
- ldrb r1, [r4]
- strb r0, [r4]
- movs r0, 0
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811AED0: .4byte 0x0200c000
-_0811AED4: .4byte gUnknown_03004DE0
-_0811AED8: .4byte gPaletteFade
-_0811AEDC: .4byte sub_811ADAC
- thumb_func_end sub_811AE70
-
- thumb_func_start sub_811AEE0
-sub_811AEE0: @ 811AEE0
- push {lr}
- bl sub_811D67C
- ldr r0, _0811AF08
- ldrb r0, [r0]
- cmp r0, 0
- beq _0811AF02
- ldr r1, _0811AF0C
- ldr r0, _0811AF10
- str r0, [r1]
- movs r2, 0xF0
- lsls r2, 3
- adds r0, r2
- str r0, [r1, 0x4]
- ldr r0, _0811AF14
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811AF02:
- pop {r0}
- bx r0
- .align 2, 0
-_0811AF08: .4byte 0x0200c000
-_0811AF0C: .4byte 0x040000d4
-_0811AF10: .4byte gUnknown_03004DE0
-_0811AF14: .4byte 0x800000a0
- thumb_func_end sub_811AEE0
-
- thumb_func_start sub_811AF18
-sub_811AF18: @ 811AF18
- ldr r1, _0811AF38
- ldr r0, _0811AF3C
- ldrh r0, [r0]
- lsls r0, 1
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _0811AF40
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0811AF38: .4byte gUnknown_03004DE0
-_0811AF3C: .4byte REG_VCOUNT
-_0811AF40: .4byte REG_BG1HOFS
- thumb_func_end sub_811AF18
-
- thumb_func_start sub_811AF44
-sub_811AF44: @ 811AF44
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811AF74
- ldr r2, _0811AF78
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811AF56:
- 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 _0811AF56
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811AF74: .4byte gUnknown_083FD7B8
-_0811AF78: .4byte gTasks
- thumb_func_end sub_811AF44
-
- thumb_func_start sub_811AF7C
-sub_811AF7C: @ 811AF7C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0811AFE4
- ldr r0, _0811AFE8
- movs r2, 0x16
- ldrsh r1, [r1, r2]
- movs r2, 0xA0
- lsls r2, 1
- bl memset
- ldr r0, _0811AFEC
- bl SetVBlankCallback
- ldr r0, _0811AFF0
- bl SetHBlankCallback
- ldr r3, _0811AFF4
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _0811AFF8
- ldrh r0, [r4]
- movs r1, 0x3
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _0811AFFC
- ldrh r0, [r2]
- movs r1, 0x18
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811AFE4: .4byte 0x0200c000
-_0811AFE8: .4byte gUnknown_03005560
-_0811AFEC: .4byte sub_811B08C
-_0811AFF0: .4byte sub_811B0C4
-_0811AFF4: .4byte 0x04000208
-_0811AFF8: .4byte 0x04000200
-_0811AFFC: .4byte REG_DISPSTAT
- thumb_func_end sub_811AF7C
-
- thumb_func_start sub_811B000
-sub_811B000: @ 811B000
- push {r4-r7,lr}
- ldr r2, _0811B07C
- ldrb r1, [r2]
- movs r1, 0
- strb r1, [r2]
- ldrh r4, [r0, 0xA]
- ldrh r2, [r0, 0xC]
- lsls r3, r2, 16
- asrs r3, 24
- movs r5, 0x84
- lsls r5, 5
- adds r1, r4, r5
- strh r1, [r0, 0xA]
- movs r1, 0xC0
- lsls r1, 1
- adds r2, r1
- strh r2, [r0, 0xC]
- movs r5, 0
- lsls r7, r3, 16
-_0811B026:
- lsrs r0, r4, 8
- asrs r1, r7, 16
- bl Sin
- ldr r2, _0811B080
- lsls r1, r5, 1
- adds r1, r2
- ldr r6, _0811B07C
- ldrh r2, [r6, 0x16]
- adds r0, r2
- strh r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0x84
- lsls r1, 5
- adds r0, r4, r1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r5, 0x9F
- bls _0811B026
- ldr r0, _0811B084
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0811B06A
- ldr r0, _0811B088
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0811B06A:
- ldrb r0, [r6]
- adds r0, 0x1
- ldrb r1, [r6]
- strb r0, [r6]
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B07C: .4byte 0x0200c000
-_0811B080: .4byte gUnknown_03004DE0
-_0811B084: .4byte gPaletteFade
-_0811B088: .4byte sub_811AF44
- thumb_func_end sub_811B000
-
- thumb_func_start sub_811B08C
-sub_811B08C: @ 811B08C
- push {lr}
- bl sub_811D67C
- ldr r0, _0811B0B4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0811B0AE
- ldr r1, _0811B0B8
- ldr r0, _0811B0BC
- str r0, [r1]
- movs r2, 0xF0
- lsls r2, 3
- adds r0, r2
- str r0, [r1, 0x4]
- ldr r0, _0811B0C0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811B0AE:
- pop {r0}
- bx r0
- .align 2, 0
-_0811B0B4: .4byte 0x0200c000
-_0811B0B8: .4byte 0x040000d4
-_0811B0BC: .4byte gUnknown_03004DE0
-_0811B0C0: .4byte 0x800000a0
- thumb_func_end sub_811B08C
-
- thumb_func_start sub_811B0C4
-sub_811B0C4: @ 811B0C4
- ldr r1, _0811B0E4
- ldr r0, _0811B0E8
- ldrh r0, [r0]
- lsls r0, 1
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _0811B0EC
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0811B0E4: .4byte gUnknown_03004DE0
-_0811B0E8: .4byte REG_VCOUNT
-_0811B0EC: .4byte REG_BG1VOFS
- thumb_func_end sub_811B0C4
-
- thumb_func_start sub_811B0F0
-sub_811B0F0: @ 811B0F0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811B120
- ldr r2, _0811B124
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811B102:
- 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 _0811B102
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811B120: .4byte gUnknown_083FD7C0
-_0811B124: .4byte gTasks
- thumb_func_end sub_811B0F0
-
- thumb_func_start sub_811B128
-sub_811B128: @ 811B128
- push {r4-r6,lr}
- sub sp, 0xC
- adds r4, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- movs r2, 0
- movs r3, 0x10
- strh r3, [r4, 0xA]
- strh r2, [r4, 0xC]
- strh r2, [r4, 0x10]
- movs r0, 0x80
- lsls r0, 7
- strh r0, [r4, 0x12]
- ldr r1, _0811B1BC
- movs r0, 0x3F
- strh r0, [r1, 0x2]
- strh r2, [r1, 0x4]
- movs r0, 0xF0
- strh r0, [r1, 0x6]
- movs r0, 0xA0
- strh r0, [r1, 0x8]
- ldr r0, _0811B1C0
- strh r0, [r1, 0xE]
- lsls r3, 8
- strh r3, [r1, 0x10]
- movs r1, 0
- add r5, sp, 0x4
- add r6, sp, 0x8
- ldr r3, _0811B1C4
- movs r2, 0xF0
-_0811B168:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x9F
- bls _0811B168
- ldr r0, _0811B1C8
- bl SetVBlankCallback
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_811D6A8
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r1, [sp, 0x4]
- ldr r2, _0811B1CC
- mov r0, sp
- bl CpuSet
- ldr r0, _0811B1D0
- ldr r1, [sp, 0x8]
- movs r2, 0xB0
- lsls r2, 2
- bl CpuSet
- ldr r0, _0811B1D4
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B1BC: .4byte 0x0200c000
-_0811B1C0: .4byte 0x00003f41
-_0811B1C4: .4byte gUnknown_03005560
-_0811B1C8: .4byte sub_811B520
-_0811B1CC: .4byte 0x01000400
-_0811B1D0: .4byte gUnknown_083FBB88
-_0811B1D4: .4byte gFieldEffectObjectPalette10
- thumb_func_end sub_811B128
-
- thumb_func_start sub_811B1D8
-sub_811B1D8: @ 811B1D8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- adds r7, r0, 0
- ldr r5, _0811B260
- add r1, sp, 0xC
- add r0, sp, 0x8
- bl sub_811D6A8
- movs r1, 0
- ldr r0, [sp, 0x8]
- mov r9, r0
- ldr r6, _0811B264
- mov r8, r6
- movs r0, 0xF0
- lsls r0, 8
- mov r12, r0
-_0811B1FE:
- movs r0, 0
- lsls r3, r1, 16
- asrs r4, r3, 11
-_0811B204:
- lsls r2, r0, 16
- asrs r2, 16
- adds r1, r4, r2
- lsls r1, 1
- add r1, r9
- ldrh r0, [r5]
- mov r6, r12
- orrs r0, r6
- strh r0, [r1]
- adds r2, 0x1
- lsls r2, 16
- adds r5, 0x2
- lsrs r0, r2, 16
- asrs r2, 16
- cmp r2, 0x1D
- ble _0811B204
- movs r1, 0x80
- lsls r1, 9
- adds r0, r3, r1
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _0811B1FE
- movs r6, 0x10
- ldrsh r2, [r7, r6]
- movs r1, 0x12
- ldrsh r0, [r7, r1]
- str r0, [sp]
- movs r0, 0xA0
- str r0, [sp, 0x4]
- mov r0, r8
- movs r1, 0
- movs r3, 0x84
- bl sub_811D6E8
- ldrh r0, [r7, 0x8]
- adds r0, 0x1
- strh r0, [r7, 0x8]
- movs r0, 0x1
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B260: .4byte gUnknown_083FDB44
-_0811B264: .4byte gUnknown_03004DE0
- thumb_func_end sub_811B1D8
-
- thumb_func_start sub_811B268
-sub_811B268: @ 811B268
- push {r4,lr}
- sub sp, 0x8
- adds r2, r0, 0
- ldr r1, _0811B2E8
- ldrb r0, [r1]
- movs r0, 0
- strb r0, [r1]
- ldrh r3, [r2, 0xE]
- movs r4, 0xE
- ldrsh r0, [r2, r4]
- adds r4, r1, 0
- cmp r0, 0
- beq _0811B28C
- subs r0, r3, 0x1
- strh r0, [r2, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _0811B296
-_0811B28C:
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- movs r0, 0x2
- strh r0, [r2, 0xE]
-_0811B296:
- ldrh r0, [r2, 0xA]
- lsls r0, 8
- ldrh r1, [r2, 0xC]
- orrs r0, r1
- strh r0, [r4, 0x10]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0xF
- ble _0811B2AE
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
-_0811B2AE:
- ldrh r0, [r2, 0x10]
- adds r0, 0x8
- strh r0, [r2, 0x10]
- ldr r0, _0811B2EC
- adds r1, r0, 0
- ldrh r3, [r2, 0x12]
- adds r1, r3
- strh r1, [r2, 0x12]
- ldr r0, _0811B2F0
- movs r3, 0x10
- ldrsh r2, [r2, r3]
- lsls r1, 16
- asrs r1, 24
- str r1, [sp]
- movs r1, 0xA0
- str r1, [sp, 0x4]
- movs r1, 0
- movs r3, 0x84
- bl sub_811D6E8
- ldrb r0, [r4]
- adds r0, 0x1
- ldrb r1, [r4]
- strb r0, [r4]
- movs r0, 0
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B2E8: .4byte 0x0200c000
-_0811B2EC: .4byte 0xffffff00
-_0811B2F0: .4byte gUnknown_03004DE0
- thumb_func_end sub_811B268
-
- thumb_func_start sub_811B2F4
-sub_811B2F4: @ 811B2F4
- push {r4,r5,lr}
- sub sp, 0x8
- adds r3, r0, 0
- ldr r1, _0811B374
- ldrb r0, [r1]
- movs r0, 0
- strb r0, [r1]
- ldrh r2, [r3, 0xE]
- movs r4, 0xE
- ldrsh r0, [r3, r4]
- adds r4, r1, 0
- cmp r0, 0
- beq _0811B318
- subs r0, r2, 0x1
- strh r0, [r3, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _0811B322
-_0811B318:
- ldrh r0, [r3, 0xA]
- subs r0, 0x1
- strh r0, [r3, 0xA]
- movs r0, 0x2
- strh r0, [r3, 0xE]
-_0811B322:
- ldrh r0, [r3, 0xA]
- lsls r1, r0, 8
- ldrh r2, [r3, 0xC]
- orrs r1, r2
- strh r1, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bne _0811B338
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
-_0811B338:
- ldrh r0, [r3, 0x10]
- adds r0, 0x8
- strh r0, [r3, 0x10]
- ldr r5, _0811B378
- adds r1, r5, 0
- ldrh r0, [r3, 0x12]
- adds r1, r0
- strh r1, [r3, 0x12]
- ldr r0, _0811B37C
- movs r5, 0x10
- ldrsh r2, [r3, r5]
- lsls r1, 16
- asrs r1, 24
- str r1, [sp]
- movs r1, 0xA0
- str r1, [sp, 0x4]
- movs r1, 0
- movs r3, 0x84
- bl sub_811D6E8
- ldrb r0, [r4]
- adds r0, 0x1
- ldrb r1, [r4]
- strb r0, [r4]
- movs r0, 0
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B374: .4byte 0x0200c000
-_0811B378: .4byte 0xffffff00
-_0811B37C: .4byte gUnknown_03004DE0
- thumb_func_end sub_811B2F4
-
- thumb_func_start sub_811B380
-sub_811B380: @ 811B380
- push {r4-r7,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r5, _0811B3E0
- ldrb r0, [r5]
- movs r7, 0
- strb r7, [r5]
- ldrh r0, [r4, 0x10]
- adds r0, 0x8
- strh r0, [r4, 0x10]
- ldr r0, _0811B3E4
- adds r1, r0, 0
- ldrh r3, [r4, 0x12]
- adds r1, r3
- strh r1, [r4, 0x12]
- ldr r0, _0811B3E8
- movs r3, 0x10
- ldrsh r2, [r4, r3]
- lsls r1, 16
- asrs r1, 24
- str r1, [sp]
- movs r6, 0xA0
- str r6, [sp, 0x4]
- movs r1, 0
- movs r3, 0x84
- bl sub_811D6E8
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bgt _0811B3CE
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- strh r6, [r4, 0xA]
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0xC]
- strh r7, [r4, 0xE]
-_0811B3CE:
- ldrb r0, [r5]
- adds r0, 0x1
- ldrb r1, [r5]
- strb r0, [r5]
- movs r0, 0
- add sp, 0x8
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B3E0: .4byte 0x0200c000
-_0811B3E4: .4byte 0xffffff00
-_0811B3E8: .4byte gUnknown_03004DE0
- thumb_func_end sub_811B380
-
- thumb_func_start sub_811B3EC
-sub_811B3EC: @ 811B3EC
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0811B488
- ldrb r1, [r0]
- movs r3, 0
- strb r3, [r0]
- ldrh r2, [r4, 0xC]
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- ldr r0, _0811B48C
- cmp r1, r0
- bgt _0811B40A
- adds r0, r2, 0
- adds r0, 0x80
- strh r0, [r4, 0xC]
-_0811B40A:
- ldrh r1, [r4, 0xA]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0811B426
- ldrh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 24
- subs r0, r1, r0
- strh r0, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- bge _0811B426
- strh r3, [r4, 0xA]
-_0811B426:
- ldr r0, _0811B490
- movs r1, 0xA
- ldrsh r3, [r4, r1]
- movs r1, 0x78
- movs r2, 0x50
- bl sub_811D764
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0811B462
- ldr r1, _0811B494
- ldrh r2, [r1, 0xA]
- ldr r0, _0811B498
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _0811B49C
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- bl sub_811D6D4
- ldr r0, _0811B4A0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0811B462:
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0811B476
- adds r0, r1, 0x1
- strh r0, [r4, 0xE]
- ldr r0, _0811B4A4
- bl SetVBlankCallback
-_0811B476:
- ldr r0, _0811B488
- ldrb r1, [r0]
- adds r1, 0x1
- ldrb r2, [r0]
- strb r1, [r0]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B488: .4byte 0x0200c000
-_0811B48C: .4byte 0x000003ff
-_0811B490: .4byte gUnknown_03004DE0
-_0811B494: .4byte 0x040000b0
-_0811B498: .4byte 0x0000c5ff
-_0811B49C: .4byte 0x00007fff
-_0811B4A0: .4byte sub_811B0F0
-_0811B4A4: .4byte sub_811B54C
- thumb_func_end sub_811B3EC
-
- thumb_func_start sub_811B4A8
-sub_811B4A8: @ 811B4A8
- push {lr}
- ldr r1, _0811B500
- ldrh r2, [r1, 0xA]
- ldr r0, _0811B504
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _0811B508
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- bl sub_811D67C
- ldr r2, _0811B50C
- ldrb r0, [r2]
- cmp r0, 0
- beq _0811B4DE
- ldr r1, _0811B510
- ldr r0, _0811B514
- str r0, [r1]
- movs r3, 0xF0
- lsls r3, 3
- adds r0, r3
- str r0, [r1, 0x4]
- ldr r0, _0811B518
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811B4DE:
- ldr r1, _0811B51C
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r2, 0x4]
- strh r0, [r1]
- subs r1, 0x6
- ldrh r0, [r2, 0x8]
- strh r0, [r1]
- adds r1, 0xC
- ldrh r0, [r2, 0xE]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r2, 0x10]
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0811B500: .4byte 0x040000b0
-_0811B504: .4byte 0x0000c5ff
-_0811B508: .4byte 0x00007fff
-_0811B50C: .4byte 0x0200c000
-_0811B510: .4byte 0x040000d4
-_0811B514: .4byte gUnknown_03004DE0
-_0811B518: .4byte 0x800000a0
-_0811B51C: .4byte REG_WININ
- thumb_func_end sub_811B4A8
-
- thumb_func_start sub_811B520
-sub_811B520: @ 811B520
- push {lr}
- bl sub_811B4A8
- ldr r1, _0811B53C
- ldr r0, _0811B540
- str r0, [r1]
- ldr r0, _0811B544
- str r0, [r1, 0x4]
- ldr r0, _0811B548
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_0811B53C: .4byte 0x040000b0
-_0811B540: .4byte gUnknown_03005560
-_0811B544: .4byte REG_BG0HOFS
-_0811B548: .4byte 0xa2400001
- thumb_func_end sub_811B520
-
- thumb_func_start sub_811B54C
-sub_811B54C: @ 811B54C
- push {lr}
- bl sub_811B4A8
- ldr r1, _0811B568
- ldr r0, _0811B56C
- str r0, [r1]
- ldr r0, _0811B570
- str r0, [r1, 0x4]
- ldr r0, _0811B574
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_0811B568: .4byte 0x040000b0
-_0811B56C: .4byte gUnknown_03005560
-_0811B570: .4byte REG_WIN0H
-_0811B574: .4byte 0xa2400001
- thumb_func_end sub_811B54C
-
- thumb_func_start sub_811B578
-sub_811B578: @ 811B578
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811B5A8
- ldr r2, _0811B5AC
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811B58A:
- 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 _0811B58A
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811B5A8: .4byte gUnknown_083FD7D8
-_0811B5AC: .4byte gTasks
- thumb_func_end sub_811B578
-
- thumb_func_start sub_811B5B0
-sub_811B5B0: @ 811B5B0
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- add r0, sp, 0x4
- add r1, sp, 0x8
- bl sub_811D6A8
- ldr r0, _0811B5F0
- ldr r1, [sp, 0x8]
- movs r2, 0x20
- bl CpuSet
- movs r0, 0
- str r0, [sp]
- ldr r1, [sp, 0x4]
- ldr r2, _0811B5F4
- mov r0, sp
- bl CpuSet
- ldr r0, _0811B5F8
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- add sp, 0xC
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B5F0: .4byte gUnknown_083FC108
-_0811B5F4: .4byte 0x05000200
-_0811B5F8: .4byte gFieldEffectObjectPalette10
- thumb_func_end sub_811B5B0
-
- thumb_func_start sub_811B5FC
-sub_811B5FC: @ 811B5FC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- adds r7, r0, 0
- ldr r1, _0811B67C
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- add r4, sp, 0x4
- ldr r1, _0811B680
- adds r0, r4, 0
- movs r2, 0xA
- bl memcpy
- bl Random
- movs r5, 0x1
- ands r5, r0
- movs r1, 0
- mov r8, r4
- ldr r6, _0811B684
-_0811B62A:
- lsls r5, 16
- asrs r5, 16
- lsls r0, r5, 1
- add r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- str r0, [r6]
- lsls r4, r1, 16
- asrs r4, 16
- lsls r0, r4, 5
- adds r0, 0x10
- str r0, [r6, 0x4]
- str r5, [r6, 0x8]
- lsls r0, r4, 1
- add r0, r8
- movs r1, 0
- ldrsh r0, [r0, r1]
- str r0, [r6, 0xC]
- movs r0, 0x2D
- bl FieldEffectStart
- adds r4, 0x1
- lsls r4, 16
- movs r0, 0x1
- eors r5, r0
- lsls r5, 16
- lsrs r5, 16
- lsrs r1, r4, 16
- asrs r4, 16
- cmp r4, 0x4
- ble _0811B62A
- ldrh r0, [r7, 0x8]
- adds r0, 0x1
- strh r0, [r7, 0x8]
- movs r0, 0
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B67C: .4byte gUnknown_083FD7E4
-_0811B680: .4byte gUnknown_083FD7E8
-_0811B684: .4byte gUnknown_0202FF84
- thumb_func_end sub_811B5FC
-
- thumb_func_start sub_811B688
-sub_811B688: @ 811B688
- push {lr}
- movs r0, 0x2D
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- bne _0811B6A8
- bl sub_811D6D4
- ldr r0, _0811B6B0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0811B6A8:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0811B6B0: .4byte sub_811B578
- thumb_func_end sub_811B688
-
- thumb_func_start sub_811B6B4
-sub_811B6B4: @ 811B6B4
- push {r4,r5,lr}
- ldr r0, _0811B710
- ldr r5, _0811B714
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r3, 0x4
- ldrsh r2, [r5, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0811B718
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r4, r1
- ldrb r1, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r4, 0x5]
- 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, [r5, 0x8]
- strh r0, [r4, 0x2E]
- ldr r0, [r5, 0xC]
- strh r0, [r4, 0x30]
- ldr r0, _0811B71C
- strh r0, [r4, 0x32]
- adds r0, r4, 0
- bl InitSpriteAffineAnim
- ldrb r1, [r5, 0x8]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B710: .4byte gSpriteTemplate_83FD98C
-_0811B714: .4byte gUnknown_0202FF84
-_0811B718: .4byte gSprites
-_0811B71C: .4byte 0x0000ffff
- thumb_func_end sub_811B6B4
-
- thumb_func_start sub_811B720
-sub_811B720: @ 811B720
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r1, _0811B740
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0811B744
- subs r0, r1, 0x1
- strh r0, [r4, 0x30]
- b _0811B7D6
- .align 2, 0
-_0811B740: .4byte gUnknown_083FD7F2
-_0811B744:
- ldrh r0, [r4, 0x20]
- lsls r1, r0, 16
- lsrs r0, r1, 16
- cmp r0, 0xF0
- bhi _0811B7B2
- asrs r0, r1, 19
- lsls r0, 16
- ldrh r1, [r4, 0x22]
- lsls r1, 16
- asrs r1, 19
- lsls r1, 16
- lsrs r1, 16
- lsrs r2, r0, 16
- asrs r5, r0, 16
- movs r3, 0x32
- ldrsh r0, [r4, r3]
- cmp r5, r0
- beq _0811B7B2
- strh r2, [r4, 0x32]
- ldr r0, _0811B7E0
- ldrh r2, [r0]
- lsrs r2, 8
- movs r0, 0x1F
- ands r2, r0
- lsls r2, 11
- movs r0, 0xC0
- lsls r0, 19
- adds r2, r0
- lsls r1, 16
- asrs r1, 16
- subs r0, r1, 0x2
- lsls r0, 5
- adds r0, r5
- lsls r0, 1
- adds r0, r2
- ldr r6, _0811B7E4
- adds r3, r6, 0
- strh r3, [r0]
- subs r0, r1, 0x1
- lsls r0, 5
- adds r0, r5
- lsls r0, 1
- adds r0, r2
- strh r3, [r0]
- lsls r0, r1, 5
- adds r0, r5
- lsls r0, 1
- adds r0, r2
- strh r3, [r0]
- adds r1, 0x1
- lsls r1, 5
- adds r1, r5
- lsls r1, 1
- adds r1, r2
- strh r3, [r1]
-_0811B7B2:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- adds r0, 0xF
- lsls r0, 16
- movs r1, 0x87
- lsls r1, 17
- cmp r0, r1
- bls _0811B7D6
- adds r0, r4, 0
- movs r1, 0x2D
- bl FieldEffectStop
-_0811B7D6:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811B7E0: .4byte REG_BG0CNT
-_0811B7E4: .4byte 0x0000f001
- thumb_func_end sub_811B720
-
- thumb_func_start sub_811B7E8
-sub_811B7E8: @ 811B7E8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811B818
- ldr r2, _0811B81C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811B7FA:
- 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 _0811B7FA
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811B818: .4byte gUnknown_083FD7F8
-_0811B81C: .4byte gTasks
- thumb_func_end sub_811B7E8
-
- thumb_func_start sub_811B820
-sub_811B820: @ 811B820
- push {r4,lr}
- adds r4, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- ldr r1, _0811B870
- movs r0, 0
- strh r0, [r1, 0x2]
- movs r0, 0x3F
- strh r0, [r1, 0x4]
- ldr r0, _0811B874
- strh r0, [r1, 0x6]
- movs r0, 0xA0
- strh r0, [r1, 0x8]
- movs r1, 0
- ldr r3, _0811B878
- ldr r2, _0811B87C
-_0811B844:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x9F
- bls _0811B844
- ldr r0, _0811B880
- bl SetVBlankCallback
- ldr r1, _0811B870
- movs r0, 0x78
- strh r0, [r1, 0x2C]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B870: .4byte 0x0200c000
-_0811B874: .4byte 0x0000f0f1
-_0811B878: .4byte gUnknown_03005560
-_0811B87C: .4byte 0x0000f3f4
-_0811B880: .4byte sub_811BC2C
- thumb_func_end sub_811B820
-
- thumb_func_start sub_811B884
-sub_811B884: @ 811B884
- push {r4-r6,lr}
- sub sp, 0xC
- adds r6, r0, 0
- ldr r4, _0811B904
- ldrb r0, [r4]
- movs r0, 0
- strb r0, [r4]
- adds r0, r4, 0
- adds r0, 0x24
- movs r1, 0x2C
- ldrsh r3, [r4, r1]
- movs r1, 0x1
- negs r1, r1
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r1, 0x78
- movs r2, 0x50
- bl sub_811D8FC
- ldr r5, _0811B908
-_0811B8B0:
- movs r3, 0x2A
- ldrsh r2, [r4, r3]
- lsls r2, 1
- adds r2, r5
- ldrh r0, [r4, 0x28]
- adds r0, 0x1
- movs r3, 0xF0
- lsls r3, 7
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- adds r0, r4, 0
- adds r0, 0x24
- movs r1, 0x1
- movs r2, 0x1
- bl sub_811D978
- lsls r0, 24
- cmp r0, 0
- beq _0811B8B0
- ldr r2, _0811B904
- ldrh r0, [r2, 0x2C]
- adds r0, 0x10
- strh r0, [r2, 0x2C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xEF
- ble _0811B8F2
- movs r0, 0
- strh r0, [r2, 0x2E]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
-_0811B8F2:
- ldrb r0, [r2]
- adds r0, 0x1
- ldrb r1, [r2]
- strb r0, [r2]
- movs r0, 0
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B904: .4byte 0x0200c000
-_0811B908: .4byte gUnknown_03004DE0
- thumb_func_end sub_811B884
-
- thumb_func_start sub_811B90C
-sub_811B90C: @ 811B90C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x10
- adds r7, r0, 0
- add r1, sp, 0xC
- movs r0, 0
- strb r0, [r1]
- ldr r4, _0811B988
- ldrb r0, [r4]
- movs r0, 0
- strb r0, [r4]
- adds r0, r4, 0
- adds r0, 0x24
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0xF0
- bl sub_811D8FC
- adds r6, r4, 0
- ldr r5, _0811B98C
- mov r8, r5
- add r5, sp, 0xC
-_0811B946:
- movs r1, 0x78
- ldrh r0, [r4, 0x28]
- adds r0, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0x4F
- ble _0811B95C
- ldrh r1, [r4, 0x28]
- movs r3, 0xF0
-_0811B95C:
- movs r0, 0x2A
- ldrsh r2, [r4, r0]
- lsls r2, 1
- add r2, r8
- lsls r1, 16
- asrs r1, 8
- lsls r0, r3, 16
- asrs r3, r0, 16
- orrs r3, r1
- strh r3, [r2]
- ldrb r0, [r5]
- cmp r0, 0
- bne _0811B990
- adds r0, r4, 0
- adds r0, 0x24
- movs r1, 0x1
- movs r2, 0x1
- bl sub_811D978
- strb r0, [r5]
- b _0811B946
- .align 2, 0
-_0811B988: .4byte 0x0200c000
-_0811B98C: .4byte gUnknown_03004DE0
-_0811B990:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x8
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0x9F
- ble _0811B9AA
- movs r0, 0xF0
- strh r0, [r4, 0x2C]
- ldrh r0, [r7, 0x8]
- adds r0, 0x1
- strh r0, [r7, 0x8]
- b _0811B9D0
-_0811B9AA:
- movs r2, 0x2A
- ldrsh r0, [r4, r2]
- cmp r0, r1
- bge _0811B9D0
- ldr r4, _0811B9E8
- ldr r2, _0811B9EC
-_0811B9B6:
- ldrh r0, [r2, 0x2A]
- adds r0, 0x1
- strh r0, [r2, 0x2A]
- lsls r0, 16
- asrs r0, 15
- adds r0, r4
- strh r3, [r0]
- movs r5, 0x2A
- ldrsh r1, [r2, r5]
- movs r5, 0x2E
- ldrsh r0, [r2, r5]
- cmp r1, r0
- blt _0811B9B6
-_0811B9D0:
- ldrb r0, [r6]
- adds r0, 0x1
- ldrb r1, [r6]
- strb r0, [r6]
- movs r0, 0
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811B9E8: .4byte gUnknown_03004DE0
-_0811B9EC: .4byte 0x0200c000
- thumb_func_end sub_811B90C
-
- thumb_func_start sub_811B9F0
-sub_811B9F0: @ 811B9F0
- push {r4-r6,lr}
- sub sp, 0xC
- adds r6, r0, 0
- ldr r4, _0811BA68
- ldrb r0, [r4]
- movs r0, 0
- strb r0, [r4]
- adds r0, r4, 0
- adds r0, 0x24
- movs r1, 0x2C
- ldrsh r3, [r4, r1]
- movs r1, 0xA0
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r1, 0x78
- movs r2, 0x50
- bl sub_811D8FC
- ldr r5, _0811BA6C
-_0811BA1A:
- movs r0, 0x2A
- ldrsh r2, [r4, r0]
- lsls r2, 1
- adds r2, r5
- ldrh r0, [r4, 0x28]
- lsls r0, 8
- movs r1, 0xF0
- orrs r0, r1
- strh r0, [r2]
- adds r0, r4, 0
- adds r0, 0x24
- movs r1, 0x1
- movs r2, 0x1
- bl sub_811D978
- lsls r0, 24
- cmp r0, 0
- beq _0811BA1A
- ldr r2, _0811BA68
- ldrh r0, [r2, 0x2C]
- subs r0, 0x10
- strh r0, [r2, 0x2C]
- lsls r0, 16
- cmp r0, 0
- bgt _0811BA56
- movs r0, 0xA0
- strh r0, [r2, 0x2E]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
-_0811BA56:
- ldrb r0, [r2]
- adds r0, 0x1
- ldrb r1, [r2]
- strb r0, [r2]
- movs r0, 0
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811BA68: .4byte 0x0200c000
-_0811BA6C: .4byte gUnknown_03004DE0
- thumb_func_end sub_811B9F0
-
- thumb_func_start sub_811BA70
-sub_811BA70: @ 811BA70
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- mov r8, r0
- add r1, sp, 0xC
- movs r0, 0
- strb r0, [r1]
- ldr r4, _0811BAF0
- ldrb r0, [r4]
- movs r0, 0
- strb r0, [r4]
- adds r0, r4, 0
- adds r0, 0x24
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0
- bl sub_811D8FC
- ldr r3, _0811BAF4
- mov r9, r3
- mov r10, r4
- add r6, sp, 0xC
-_0811BAAE:
- movs r5, 0x2A
- ldrsh r0, [r4, r5]
- lsls r0, 1
- mov r7, r9
- adds r5, r0, r7
- ldrb r1, [r5]
- ldrh r2, [r4, 0x28]
- adds r3, r2, 0
- movs r7, 0x2E
- ldrsh r0, [r4, r7]
- cmp r0, 0x50
- bgt _0811BACA
- movs r2, 0x78
- adds r1, r3, 0
-_0811BACA:
- lsls r0, r2, 16
- asrs r0, 8
- lsls r1, 16
- asrs r1, 16
- orrs r1, r0
- movs r3, 0
- strh r1, [r5]
- ldrb r0, [r6]
- cmp r0, 0
- bne _0811BAF8
- adds r0, r4, 0
- adds r0, 0x24
- movs r1, 0x1
- movs r2, 0x1
- bl sub_811D978
- strb r0, [r6]
- b _0811BAAE
- .align 2, 0
-_0811BAF0: .4byte 0x0200c000
-_0811BAF4: .4byte gUnknown_03004DE0
-_0811BAF8:
- ldrh r0, [r4, 0x2E]
- subs r0, 0x8
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r2, r0, 16
- cmp r2, 0
- bgt _0811BB12
- strh r3, [r4, 0x2C]
- mov r1, r8
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0811BB3A
-_0811BB12:
- movs r3, 0x2A
- ldrsh r0, [r4, r3]
- cmp r0, r2
- ble _0811BB3A
- ldr r4, _0811BB58
- ldr r2, _0811BB5C
- adds r3, r1, 0
-_0811BB20:
- ldrh r0, [r2, 0x2A]
- subs r0, 0x1
- strh r0, [r2, 0x2A]
- lsls r0, 16
- asrs r0, 15
- adds r0, r4
- strh r3, [r0]
- movs r5, 0x2A
- ldrsh r1, [r2, r5]
- movs r7, 0x2E
- ldrsh r0, [r2, r7]
- cmp r1, r0
- bgt _0811BB20
-_0811BB3A:
- mov r1, r10
- ldrb r0, [r1]
- adds r0, 0x1
- ldrb r1, [r1]
- mov r2, r10
- strb r0, [r2]
- movs r0, 0
- 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
-_0811BB58: .4byte gUnknown_03004DE0
-_0811BB5C: .4byte 0x0200c000
- thumb_func_end sub_811BA70
-
- thumb_func_start sub_811BB60
-sub_811BB60: @ 811BB60
- push {r4-r6,lr}
- sub sp, 0xC
- adds r6, r0, 0
- ldr r4, _0811BBE4
- ldrb r0, [r4]
- movs r1, 0
- strb r1, [r4]
- adds r0, r4, 0
- adds r0, 0x24
- movs r2, 0x2C
- ldrsh r3, [r4, r2]
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- str r1, [sp, 0x8]
- movs r1, 0x78
- movs r2, 0x50
- bl sub_811D8FC
- ldr r5, _0811BBE8
-_0811BB88:
- movs r2, 0x78
- ldrh r3, [r4, 0x28]
- movs r1, 0x28
- ldrsh r0, [r4, r1]
- cmp r0, 0x77
- ble _0811BB98
- movs r2, 0
- movs r3, 0xF0
-_0811BB98:
- movs r0, 0x2A
- ldrsh r1, [r4, r0]
- lsls r1, 1
- adds r1, r5
- lsls r2, 8
- lsls r0, r3, 16
- asrs r0, 16
- orrs r0, r2
- strh r0, [r1]
- adds r0, r4, 0
- adds r0, 0x24
- movs r1, 0x1
- movs r2, 0x1
- bl sub_811D978
- lsls r0, 24
- cmp r0, 0
- beq _0811BB88
- ldr r2, _0811BBE4
- ldrh r0, [r2, 0x2C]
- adds r0, 0x10
- strh r0, [r2, 0x2C]
- movs r1, 0x28
- ldrsh r0, [r2, r1]
- cmp r0, 0x78
- ble _0811BBD2
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
-_0811BBD2:
- ldrb r0, [r2]
- adds r0, 0x1
- ldrb r1, [r2]
- strb r0, [r2]
- movs r0, 0
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811BBE4: .4byte 0x0200c000
-_0811BBE8: .4byte gUnknown_03004DE0
- thumb_func_end sub_811BB60
-
- thumb_func_start sub_811BBEC
-sub_811BBEC: @ 811BBEC
- push {lr}
- ldr r1, _0811BC1C
- ldrh r2, [r1, 0xA]
- ldr r0, _0811BC20
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _0811BC24
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- bl sub_811D6D4
- ldr r0, _0811BC28
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0811BC1C: .4byte 0x040000b0
-_0811BC20: .4byte 0x0000c5ff
-_0811BC24: .4byte 0x00007fff
-_0811BC28: .4byte sub_811B7E8
- thumb_func_end sub_811BBEC
-
- thumb_func_start sub_811BC2C
-sub_811BC2C: @ 811BC2C
- push {r4,lr}
- ldr r4, _0811BC94
- ldrh r1, [r4, 0xA]
- ldr r0, _0811BC98
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0xA]
- ldr r0, _0811BC9C
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xA]
- bl sub_811D67C
- ldr r2, _0811BCA0
- ldrb r0, [r2]
- cmp r0, 0
- beq _0811BC62
- ldr r1, _0811BCA4
- ldr r0, _0811BCA8
- str r0, [r1]
- movs r3, 0xF0
- lsls r3, 3
- adds r0, r3
- str r0, [r1, 0x4]
- ldr r0, _0811BCAC
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811BC62:
- ldr r1, _0811BCB0
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r2, 0x4]
- strh r0, [r1]
- subs r1, 0x6
- ldrh r0, [r2, 0x8]
- strh r0, [r1]
- ldr r2, _0811BCB4
- ldr r0, _0811BCA8
- movs r1, 0xF0
- lsls r1, 3
- adds r0, r1
- ldrh r1, [r0]
- strh r1, [r2]
- str r0, [r4]
- str r2, [r4, 0x4]
- ldr r0, _0811BCB8
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811BC94: .4byte 0x040000b0
-_0811BC98: .4byte 0x0000c5ff
-_0811BC9C: .4byte 0x00007fff
-_0811BCA0: .4byte 0x0200c000
-_0811BCA4: .4byte 0x040000d4
-_0811BCA8: .4byte gUnknown_03004DE0
-_0811BCAC: .4byte 0x800000a0
-_0811BCB0: .4byte REG_WININ
-_0811BCB4: .4byte REG_WIN0H
-_0811BCB8: .4byte 0xa2400001
- thumb_func_end sub_811BC2C
-
- thumb_func_start sub_811BCBC
-sub_811BCBC: @ 811BCBC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811BCEC
- ldr r2, _0811BCF0
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811BCCE:
- 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 _0811BCCE
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811BCEC: .4byte gUnknown_083FD814
-_0811BCF0: .4byte gTasks
- thumb_func_end sub_811BCBC
-
- thumb_func_start sub_811BCF4
-sub_811BCF4: @ 811BCF4
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- movs r2, 0
- ldr r4, _0811BD48
- ldr r3, _0811BD4C
-_0811BD06:
- lsls r0, r2, 1
- adds r0, r4
- ldrh r1, [r3, 0x16]
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x9F
- bls _0811BD06
- ldr r0, _0811BD50
- bl SetVBlankCallback
- ldr r0, _0811BD54
- bl SetHBlankCallback
- ldr r2, _0811BD58
- ldrh r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strh r0, [r2]
- ldr r2, _0811BD5C
- ldrh r0, [r2]
- movs r1, 0x10
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811BD48: .4byte gUnknown_03005560
-_0811BD4C: .4byte 0x0200c000
-_0811BD50: .4byte sub_811BE3C
-_0811BD54: .4byte sub_811BE74
-_0811BD58: .4byte 0x04000200
-_0811BD5C: .4byte REG_DISPSTAT
- thumb_func_end sub_811BCF4
-
- thumb_func_start sub_811BD60
-sub_811BD60: @ 811BD60
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r6, r0, 0
- ldr r1, _0811BE28
- ldrb r0, [r1]
- movs r0, 0
- strb r0, [r1]
- ldrh r2, [r6, 0xC]
- lsls r1, r2, 16
- asrs r0, r1, 24
- lsls r0, 16
- lsrs r3, r0, 16
- ldrh r4, [r6, 0xA]
- movs r0, 0xC0
- lsls r0, 1
- mov r8, r0
- movs r5, 0x80
- lsls r5, 3
- adds r0, r4, r5
- strh r0, [r6, 0xA]
- ldr r0, _0811BE2C
- cmp r1, r0
- bgt _0811BD9A
- movs r1, 0xC0
- lsls r1, 1
- adds r0, r2, r1
- strh r0, [r6, 0xC]
-_0811BD9A:
- movs r5, 0
- lsls r7, r3, 16
-_0811BD9E:
- lsrs r0, r4, 8
- asrs r1, r7, 16
- bl Sin
- ldr r1, _0811BE30
- lsls r2, r5, 1
- adds r2, r1
- ldr r1, _0811BE28
- ldrh r1, [r1, 0x16]
- adds r0, r1
- strh r0, [r2]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r1, r8
- adds r0, r4, r1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r5, 0x9F
- bls _0811BD9E
- ldrh r0, [r6, 0xE]
- adds r0, 0x1
- strh r0, [r6, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x51
- bne _0811BDEC
- ldrh r0, [r6, 0x10]
- adds r0, 0x1
- strh r0, [r6, 0x10]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x2
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0811BDEC:
- movs r5, 0x10
- ldrsh r0, [r6, r5]
- cmp r0, 0
- beq _0811BE0E
- ldr r0, _0811BE34
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0811BE0E
- ldr r0, _0811BE38
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0811BE0E:
- ldr r0, _0811BE28
- ldrb r1, [r0]
- adds r1, 0x1
- ldrb r2, [r0]
- strb r1, [r0]
- movs r0, 0
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811BE28: .4byte 0x0200c000
-_0811BE2C: .4byte 0x1fff0000
-_0811BE30: .4byte gUnknown_03004DE0
-_0811BE34: .4byte gPaletteFade
-_0811BE38: .4byte sub_811BCBC
- thumb_func_end sub_811BD60
-
- thumb_func_start sub_811BE3C
-sub_811BE3C: @ 811BE3C
- push {lr}
- bl sub_811D67C
- ldr r0, _0811BE64
- ldrb r0, [r0]
- cmp r0, 0
- beq _0811BE5E
- ldr r1, _0811BE68
- ldr r0, _0811BE6C
- str r0, [r1]
- movs r2, 0xF0
- lsls r2, 3
- adds r0, r2
- str r0, [r1, 0x4]
- ldr r0, _0811BE70
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811BE5E:
- pop {r0}
- bx r0
- .align 2, 0
-_0811BE64: .4byte 0x0200c000
-_0811BE68: .4byte 0x040000d4
-_0811BE6C: .4byte gUnknown_03004DE0
-_0811BE70: .4byte 0x800000a0
- thumb_func_end sub_811BE3C
-
- thumb_func_start sub_811BE74
-sub_811BE74: @ 811BE74
- ldr r1, _0811BE94
- ldr r0, _0811BE98
- ldrh r0, [r0]
- lsls r0, 1
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _0811BE9C
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0811BE94: .4byte gUnknown_03004DE0
-_0811BE98: .4byte REG_VCOUNT
-_0811BE9C: .4byte REG_BG1VOFS
- thumb_func_end sub_811BE74
-
- thumb_func_start sub_811BEA0
-sub_811BEA0: @ 811BEA0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811BED0
- ldr r2, _0811BED4
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811BEB2:
- 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 _0811BEB2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811BED0: .4byte gUnknown_083FD81C
-_0811BED4: .4byte gTasks
- thumb_func_end sub_811BEA0
-
- thumb_func_start sub_811BED8
-sub_811BED8: @ 811BED8
- push {r4,lr}
- adds r4, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- ldr r1, _0811BF20
- movs r2, 0
- movs r0, 0x3F
- strh r0, [r1, 0x2]
- strh r2, [r1, 0x4]
- movs r0, 0xF0
- strh r0, [r1, 0x6]
- movs r0, 0xA0
- strh r0, [r1, 0x8]
- movs r1, 0
- ldr r3, _0811BF24
- movs r2, 0xF2
-_0811BEFC:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x9F
- bls _0811BEFC
- ldr r0, _0811BF28
- bl SetVBlankCallback
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811BF20: .4byte 0x0200c000
-_0811BF24: .4byte gUnknown_03005560
-_0811BF28: .4byte sub_811C004
- thumb_func_end sub_811BED8
-
- thumb_func_start sub_811BF2C
-sub_811BF2C: @ 811BF2C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- ldr r1, _0811BFBC
- ldrb r0, [r1]
- movs r0, 0
- strb r0, [r1]
- ldr r7, _0811BFC0
- ldrh r0, [r4, 0xC]
- ldrb r5, [r4, 0xC]
- adds r0, 0x10
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0xA]
- adds r0, 0x8
- strh r0, [r4, 0xA]
- movs r6, 0
- movs r0, 0x1
- mov r8, r0
-_0811BF52:
- adds r0, r5, 0
- movs r1, 0x28
- bl Sin
- ldrh r1, [r4, 0xA]
- adds r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r0, 0
- bge _0811BF68
- movs r1, 0
-_0811BF68:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xF0
- ble _0811BF72
- movs r1, 0xF0
-_0811BF72:
- lsls r0, r1, 16
- asrs r0, 16
- lsls r1, r0, 8
- movs r2, 0xF1
- orrs r1, r2
- strh r1, [r7]
- cmp r0, 0xEF
- bgt _0811BF86
- movs r0, 0
- mov r8, r0
-_0811BF86:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r5, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, 0x2
- cmp r6, 0x9F
- bls _0811BF52
- mov r1, r8
- cmp r1, 0
- beq _0811BFA4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0811BFA4:
- ldr r0, _0811BFBC
- ldrb r1, [r0]
- adds r1, 0x1
- ldrb r2, [r0]
- strb r1, [r0]
- movs r0, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811BFBC: .4byte 0x0200c000
-_0811BFC0: .4byte gUnknown_03004DE0
- thumb_func_end sub_811BF2C
-
- thumb_func_start sub_811BFC4
-sub_811BFC4: @ 811BFC4
- push {lr}
- ldr r1, _0811BFF4
- ldrh r2, [r1, 0xA]
- ldr r0, _0811BFF8
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _0811BFFC
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- bl sub_811D6D4
- ldr r0, _0811C000
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0811BFF4: .4byte 0x040000b0
-_0811BFF8: .4byte 0x0000c5ff
-_0811BFFC: .4byte 0x00007fff
-_0811C000: .4byte sub_811BEA0
- thumb_func_end sub_811BFC4
-
- thumb_func_start sub_811C004
-sub_811C004: @ 811C004
- push {r4,lr}
- ldr r4, _0811C060
- ldrh r1, [r4, 0xA]
- ldr r0, _0811C064
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0xA]
- ldr r0, _0811C068
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xA]
- bl sub_811D67C
- ldr r2, _0811C06C
- ldrb r0, [r2]
- cmp r0, 0
- beq _0811C03A
- ldr r1, _0811C070
- ldr r0, _0811C074
- str r0, [r1]
- movs r3, 0xF0
- lsls r3, 3
- adds r0, r3
- str r0, [r1, 0x4]
- ldr r0, _0811C078
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811C03A:
- ldr r1, _0811C07C
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r2, 0x4]
- strh r0, [r1]
- subs r1, 0x6
- ldrh r0, [r2, 0x8]
- strh r0, [r1]
- ldr r0, _0811C080
- str r0, [r4]
- ldr r0, _0811C084
- str r0, [r4, 0x4]
- ldr r0, _0811C088
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811C060: .4byte 0x040000b0
-_0811C064: .4byte 0x0000c5ff
-_0811C068: .4byte 0x00007fff
-_0811C06C: .4byte 0x0200c000
-_0811C070: .4byte 0x040000d4
-_0811C074: .4byte gUnknown_03004DE0
-_0811C078: .4byte 0x800000a0
-_0811C07C: .4byte REG_WININ
-_0811C080: .4byte gUnknown_03005560
-_0811C084: .4byte REG_WIN0H
-_0811C088: .4byte 0xa2400001
- thumb_func_end sub_811C004
-
- thumb_func_start sub_811C08C
-sub_811C08C: @ 811C08C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811C0A8
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r2, [r1, 0x26]
- bl sub_811C12C
- pop {r0}
- bx r0
- .align 2, 0
-_0811C0A8: .4byte gTasks
- thumb_func_end sub_811C08C
-
- thumb_func_start sub_811C0AC
-sub_811C0AC: @ 811C0AC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811C0C8
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x1
- strh r2, [r1, 0x26]
- bl sub_811C12C
- pop {r0}
- bx r0
- .align 2, 0
-_0811C0C8: .4byte gTasks
- thumb_func_end sub_811C0AC
-
- thumb_func_start sub_811C0CC
-sub_811C0CC: @ 811C0CC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811C0E8
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x2
- strh r2, [r1, 0x26]
- bl sub_811C12C
- pop {r0}
- bx r0
- .align 2, 0
-_0811C0E8: .4byte gTasks
- thumb_func_end sub_811C0CC
-
- thumb_func_start sub_811C0EC
-sub_811C0EC: @ 811C0EC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811C108
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x3
- strh r2, [r1, 0x26]
- bl sub_811C12C
- pop {r0}
- bx r0
- .align 2, 0
-_0811C108: .4byte gTasks
- thumb_func_end sub_811C0EC
-
- thumb_func_start sub_811C10C
-sub_811C10C: @ 811C10C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811C128
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x4
- strh r2, [r1, 0x26]
- bl sub_811C12C
- pop {r0}
- bx r0
- .align 2, 0
-_0811C128: .4byte gTasks
- thumb_func_end sub_811C10C
-
- thumb_func_start sub_811C12C
-sub_811C12C: @ 811C12C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811C15C
- ldr r2, _0811C160
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811C13E:
- 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 _0811C13E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811C15C: .4byte gUnknown_083FD828
-_0811C160: .4byte gTasks
- thumb_func_end sub_811C12C
-
- thumb_func_start sub_811C164
-sub_811C164: @ 811C164
- push {r4,lr}
- adds r4, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- adds r0, r4, 0
- bl sub_811C7B0
- movs r0, 0
- strh r0, [r4, 0xA]
- movs r0, 0x1
- strh r0, [r4, 0xC]
- movs r0, 0xEF
- strh r0, [r4, 0xE]
- ldr r1, _0811C1BC
- movs r0, 0x3F
- strh r0, [r1, 0x2]
- movs r0, 0x3E
- strh r0, [r1, 0x4]
- movs r0, 0xA0
- strh r0, [r1, 0x8]
- movs r1, 0
- ldr r3, _0811C1C0
- ldr r2, _0811C1C4
-_0811C196:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x9F
- bls _0811C196
- ldr r0, _0811C1C8
- bl SetVBlankCallback
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C1BC: .4byte 0x0200c000
-_0811C1C0: .4byte gUnknown_03005560
-_0811C1C4: .4byte 0x0000f0f1
-_0811C1C8: .4byte sub_811C670
- thumb_func_end sub_811C164
-
- thumb_func_start sub_811C1CC
-sub_811C1CC: @ 811C1CC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- mov r8, r0
- ldr r6, _0811C284
- add r1, sp, 0x4
- mov r0, sp
- bl sub_811D6A8
- ldr r0, _0811C288
- ldr r1, [sp, 0x4]
- movs r2, 0xF0
- bl CpuSet
- ldr r1, _0811C28C
- mov r2, r8
- movs r3, 0x26
- ldrsh r0, [r2, r3]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r1, _0811C290
- ldr r0, _0811C294
- ldrb r0, [r0, 0x8]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0xFA
- movs r2, 0xC
- bl LoadPalette
- movs r1, 0
- ldr r5, [sp]
- ldr r0, _0811C298
- mov r12, r0
- movs r2, 0xF0
- lsls r2, 8
- adds r7, r2, 0
-_0811C222:
- movs r0, 0
- lsls r3, r1, 16
- asrs r4, r3, 11
-_0811C228:
- lsls r2, r0, 16
- asrs r2, 16
- adds r1, r4, r2
- lsls r1, 1
- adds r1, r5
- ldrh r0, [r6]
- orrs r0, r7
- strh r0, [r1]
- adds r2, 0x1
- lsls r2, 16
- adds r6, 0x2
- lsrs r0, r2, 16
- asrs r2, 16
- cmp r2, 0x1F
- ble _0811C228
- movs r1, 0x80
- lsls r1, 9
- adds r0, r3, r1
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0x13
- ble _0811C222
- ldr r2, _0811C29C
- ldrh r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strh r0, [r2]
- ldr r2, _0811C2A0
- ldrh r0, [r2]
- movs r1, 0x10
- orrs r0, r1
- strh r0, [r2]
- mov r0, r12
- bl SetHBlankCallback
- mov r2, r8
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- movs r0, 0
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C284: .4byte gUnknown_083FDFF4
-_0811C288: .4byte gUnknown_083FC348
-_0811C28C: .4byte gUnknown_083FDB00
-_0811C290: .4byte gUnknown_083FDB14
-_0811C294: .4byte gSaveBlock2
-_0811C298: .4byte sub_811C77C
-_0811C29C: .4byte 0x04000200
-_0811C2A0: .4byte REG_DISPSTAT
- thumb_func_end sub_811C1CC
-
- thumb_func_start sub_811C2A4
-sub_811C2A4: @ 811C2A4
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r1, _0811C384
- ldrb r0, [r1]
- movs r0, 0
- strb r0, [r1]
- ldr r7, _0811C388
- ldrh r0, [r4, 0xA]
- ldrb r5, [r4, 0xA]
- adds r0, 0x10
- strh r0, [r4, 0xA]
- movs r6, 0
-_0811C2BC:
- adds r0, r5, 0
- movs r1, 0x10
- bl Sin
- ldrh r1, [r4, 0xC]
- adds r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r0, 0
- bge _0811C2D2
- movs r2, 0x1
-_0811C2D2:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0xF0
- ble _0811C2DC
- movs r2, 0xF0
-_0811C2DC:
- strh r2, [r7]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r7, 0x2
- adds r0, r5, 0
- adds r0, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r6, 0x4F
- bls _0811C2BC
- cmp r6, 0x9F
- bhi _0811C334
-_0811C2F6:
- adds r0, r5, 0
- movs r1, 0x10
- bl Sin
- ldrh r1, [r4, 0xE]
- subs r1, r0
- lsls r1, 16
- lsrs r2, r1, 16
- cmp r1, 0
- bge _0811C30C
- movs r2, 0
-_0811C30C:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0xEF
- ble _0811C316
- movs r2, 0xEF
-_0811C316:
- lsls r0, r2, 16
- asrs r0, 8
- movs r1, 0xF0
- orrs r0, r1
- strh r0, [r7]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r7, 0x2
- adds r0, r5, 0
- adds r0, 0x10
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r6, 0x9F
- bls _0811C2F6
-_0811C334:
- ldrh r1, [r4, 0xC]
- adds r1, 0x8
- strh r1, [r4, 0xC]
- ldrh r0, [r4, 0xE]
- subs r0, 0x8
- strh r0, [r4, 0xE]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0xF0
- ble _0811C34C
- movs r0, 0xF0
- strh r0, [r4, 0xC]
-_0811C34C:
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _0811C358
- movs r0, 0
- strh r0, [r4, 0xE]
-_0811C358:
- ldr r0, [r4, 0xC]
- cmp r0, 0xF0
- bne _0811C364
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0811C364:
- ldr r1, _0811C384
- ldrh r0, [r1, 0x18]
- subs r0, 0x8
- strh r0, [r1, 0x18]
- ldrh r0, [r1, 0x1A]
- adds r0, 0x8
- strh r0, [r1, 0x1A]
- ldrb r0, [r1]
- adds r0, 0x1
- ldrb r2, [r1]
- strb r0, [r1]
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C384: .4byte 0x0200c000
-_0811C388: .4byte gUnknown_03004DE0
- thumb_func_end sub_811C2A4
-
- thumb_func_start sub_811C38C
-sub_811C38C: @ 811C38C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, _0811C3F8
- ldrb r1, [r0]
- movs r1, 0
- strb r1, [r0]
- ldr r2, _0811C3FC
- adds r5, r0, 0
- movs r3, 0xF0
-_0811C39E:
- strh r3, [r2]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- adds r2, 0x2
- cmp r1, 0x9F
- bls _0811C39E
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x8]
- strh r1, [r4, 0xA]
- strh r1, [r4, 0xC]
- strh r1, [r4, 0xE]
- ldrh r0, [r5, 0x18]
- subs r0, 0x8
- strh r0, [r5, 0x18]
- ldrh r0, [r5, 0x1A]
- adds r0, 0x8
- strh r0, [r5, 0x1A]
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- movs r1, 0
- bl sub_811CA10
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- movs r1, 0x1
- bl sub_811CA10
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- bl sub_811CA28
- movs r0, 0x68
- bl PlaySE
- ldrb r0, [r5]
- adds r0, 0x1
- ldrb r1, [r5]
- strb r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C3F8: .4byte 0x0200c000
-_0811C3FC: .4byte gUnknown_03004DE0
- thumb_func_end sub_811C38C
-
- thumb_func_start sub_811C400
-sub_811C400: @ 811C400
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _0811C438
- ldrh r0, [r1, 0x18]
- subs r0, 0x8
- strh r0, [r1, 0x18]
- ldrh r0, [r1, 0x1A]
- adds r0, 0x8
- strh r0, [r1, 0x1A]
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- bl sub_811CA44
- lsls r0, 16
- cmp r0, 0
- beq _0811C42E
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- bl sub_811CA28
-_0811C42E:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C438: .4byte 0x0200c000
- thumb_func_end sub_811C400
-
- thumb_func_start sub_811C43C
-sub_811C43C: @ 811C43C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- ldr r7, _0811C4D0
- ldrh r0, [r7, 0x18]
- subs r0, 0x8
- movs r1, 0
- mov r8, r1
- strh r0, [r7, 0x18]
- ldrh r0, [r7, 0x1A]
- adds r0, 0x8
- strh r0, [r7, 0x1A]
- movs r1, 0x24
- ldrsh r0, [r6, r1]
- bl sub_811CA44
- lsls r0, 16
- cmp r0, 0
- beq _0811C4C4
- ldrb r0, [r7]
- movs r0, 0
- strb r0, [r7]
- movs r0, 0
- bl SetVBlankCallback
- ldr r1, _0811C4D4
- ldrh r2, [r1, 0xA]
- ldr r0, _0811C4D8
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _0811C4DC
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- ldr r4, _0811C4E0
- movs r5, 0xA0
- lsls r5, 1
- adds r0, r4, 0
- movs r1, 0
- adds r2, r5, 0
- bl memset
- movs r0, 0xF0
- lsls r0, 3
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0
- adds r2, r5, 0
- bl memset
- ldr r1, _0811C4E4
- movs r0, 0xF0
- strh r0, [r1]
- ldr r0, _0811C4E8
- mov r1, r8
- strh r1, [r0]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- strh r1, [r6, 0xE]
- strh r1, [r6, 0x10]
- movs r0, 0xBF
- strh r0, [r7, 0xE]
- ldr r0, _0811C4EC
- bl SetVBlankCallback
-_0811C4C4:
- movs r0, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C4D0: .4byte 0x0200c000
-_0811C4D4: .4byte 0x040000b0
-_0811C4D8: .4byte 0x0000c5ff
-_0811C4DC: .4byte 0x00007fff
-_0811C4E0: .4byte gUnknown_03004DE0
-_0811C4E4: .4byte REG_WIN0H
-_0811C4E8: .4byte REG_BLDY
-_0811C4EC: .4byte sub_811C700
- thumb_func_end sub_811C43C
-
- thumb_func_start sub_811C4F0
-sub_811C4F0: @ 811C4F0
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r1, _0811C5AC
- ldrb r0, [r1]
- movs r0, 0
- strb r0, [r1]
- movs r6, 0x1
- ldrh r0, [r1, 0x18]
- subs r0, 0x8
- strh r0, [r1, 0x18]
- ldrh r0, [r1, 0x1A]
- adds r0, 0x8
- strh r0, [r1, 0x1A]
- ldrh r2, [r4, 0x10]
- movs r3, 0x10
- ldrsh r0, [r4, r3]
- adds r7, r1, 0
- cmp r0, 0x4F
- bgt _0811C51A
- adds r0, r2, 0x2
- strh r0, [r4, 0x10]
-_0811C51A:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0x50
- ble _0811C526
- movs r0, 0x50
- strh r0, [r4, 0x10]
-_0811C526:
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- movs r1, 0x1
- ands r0, r1
- ldrh r2, [r4, 0x10]
- cmp r0, 0
- beq _0811C58C
- movs r3, 0
- lsls r0, r2, 16
- movs r6, 0
- cmp r0, 0
- blt _0811C58C
- movs r2, 0x50
- mov r12, r2
- ldr r5, _0811C5B0
-_0811C546:
- lsls r0, r3, 16
- asrs r2, r0, 16
- mov r3, r12
- subs r1, r3, r2
- adds r0, r2, 0
- adds r0, 0x50
- lsls r0, 16
- lsrs r3, r0, 16
- lsls r1, 16
- asrs r1, 15
- adds r1, r5
- ldrh r0, [r1]
- cmp r0, 0xF
- bhi _0811C568
- movs r6, 0x1
- adds r0, 0x1
- strh r0, [r1]
-_0811C568:
- lsls r0, r3, 16
- asrs r0, 15
- adds r1, r0, r5
- ldrh r0, [r1]
- cmp r0, 0xF
- bhi _0811C57A
- movs r6, 0x1
- adds r0, 0x1
- strh r0, [r1]
-_0811C57A:
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- asrs r0, 16
- movs r2, 0x10
- ldrsh r1, [r4, r2]
- ldrh r2, [r4, 0x10]
- cmp r0, r1
- ble _0811C546
-_0811C58C:
- cmp r2, 0x50
- bne _0811C59A
- cmp r6, 0
- bne _0811C59A
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0811C59A:
- ldrb r0, [r7]
- adds r0, 0x1
- ldrb r1, [r7]
- strb r0, [r7]
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C5AC: .4byte 0x0200c000
-_0811C5B0: .4byte gUnknown_03004DE0
- thumb_func_end sub_811C4F0
-
- thumb_func_start sub_811C5B4
-sub_811C5B4: @ 811C5B4
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r4, _0811C5E0
- ldrb r0, [r4]
- movs r6, 0
- strb r6, [r4]
- movs r0, 0x1
- negs r0, r0
- ldr r2, _0811C5E4
- movs r1, 0x10
- bl BlendPalettes
- movs r0, 0xFF
- strh r0, [r4, 0xE]
- strh r6, [r5, 0xE]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0x1
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C5E0: .4byte 0x0200c000
-_0811C5E4: .4byte 0x00007fff
- thumb_func_end sub_811C5B4
-
- thumb_func_start sub_811C5E8
-sub_811C5E8: @ 811C5E8
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _0811C628
- ldrb r0, [r5]
- movs r0, 0
- strb r0, [r5]
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- ldr r0, _0811C62C
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- movs r2, 0xA0
- lsls r2, 1
- bl memset
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- cmp r0, 0xF
- ble _0811C616
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0811C616:
- ldrb r0, [r5]
- adds r0, 0x1
- ldrb r1, [r5]
- strb r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C628: .4byte 0x0200c000
-_0811C62C: .4byte gUnknown_03004DE0
- thumb_func_end sub_811C5E8
-
- thumb_func_start sub_811C630
-sub_811C630: @ 811C630
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _0811C664
- ldrh r2, [r1, 0xA]
- ldr r0, _0811C668
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _0811C66C
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- bl sub_811D6D4
- ldr r0, [r4]
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C664: .4byte 0x040000b0
-_0811C668: .4byte 0x0000c5ff
-_0811C66C: .4byte 0x00007fff
- thumb_func_end sub_811C630
-
- thumb_func_start sub_811C670
-sub_811C670: @ 811C670
- push {r4,lr}
- ldr r4, _0811C6D4
- ldrh r1, [r4, 0xA]
- ldr r0, _0811C6D8
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0xA]
- ldr r0, _0811C6DC
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xA]
- bl sub_811D67C
- ldr r2, _0811C6E0
- ldrb r0, [r2]
- cmp r0, 0
- beq _0811C6A6
- ldr r1, _0811C6E4
- ldr r0, _0811C6E8
- str r0, [r1]
- movs r3, 0xF0
- lsls r3, 3
- adds r0, r3
- str r0, [r1, 0x4]
- ldr r0, _0811C6EC
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811C6A6:
- ldr r1, _0811C6F0
- ldrh r0, [r2, 0x1C]
- strh r0, [r1]
- adds r1, 0x36
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r2, 0x4]
- strh r0, [r1]
- subs r1, 0x6
- ldrh r0, [r2, 0x8]
- strh r0, [r1]
- ldr r0, _0811C6F4
- str r0, [r4]
- ldr r0, _0811C6F8
- str r0, [r4, 0x4]
- ldr r0, _0811C6FC
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811C6D4: .4byte 0x040000b0
-_0811C6D8: .4byte 0x0000c5ff
-_0811C6DC: .4byte 0x00007fff
-_0811C6E0: .4byte 0x0200c000
-_0811C6E4: .4byte 0x040000d4
-_0811C6E8: .4byte gUnknown_03004DE0
-_0811C6EC: .4byte 0x800000a0
-_0811C6F0: .4byte REG_BG0VOFS
-_0811C6F4: .4byte gUnknown_03005560
-_0811C6F8: .4byte REG_WIN0H
-_0811C6FC: .4byte 0xa2400001
- thumb_func_end sub_811C670
-
- thumb_func_start sub_811C700
-sub_811C700: @ 811C700
- push {r4,lr}
- ldr r4, _0811C750
- ldrh r1, [r4, 0xA]
- ldr r0, _0811C754
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0xA]
- ldr r0, _0811C758
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xA]
- bl sub_811D67C
- ldr r2, _0811C75C
- ldrb r0, [r2]
- cmp r0, 0
- beq _0811C736
- ldr r1, _0811C760
- ldr r0, _0811C764
- str r0, [r1]
- movs r3, 0xF0
- lsls r3, 3
- adds r0, r3
- str r0, [r1, 0x4]
- ldr r0, _0811C768
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811C736:
- ldr r1, _0811C76C
- ldrh r0, [r2, 0xE]
- strh r0, [r1]
- ldr r0, _0811C770
- str r0, [r4]
- ldr r0, _0811C774
- str r0, [r4, 0x4]
- ldr r0, _0811C778
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811C750: .4byte 0x040000b0
-_0811C754: .4byte 0x0000c5ff
-_0811C758: .4byte 0x00007fff
-_0811C75C: .4byte 0x0200c000
-_0811C760: .4byte 0x040000d4
-_0811C764: .4byte gUnknown_03004DE0
-_0811C768: .4byte 0x800000a0
-_0811C76C: .4byte REG_BLDCNT
-_0811C770: .4byte gUnknown_03005560
-_0811C774: .4byte REG_BLDY
-_0811C778: .4byte 0xa2400001
- thumb_func_end sub_811C700
-
- thumb_func_start sub_811C77C
-sub_811C77C: @ 811C77C
- push {lr}
- ldr r0, _0811C790
- ldrh r0, [r0]
- cmp r0, 0x4F
- bhi _0811C79C
- ldr r0, _0811C794
- ldr r1, _0811C798
- ldrh r1, [r1, 0x18]
- b _0811C7A2
- .align 2, 0
-_0811C790: .4byte REG_VCOUNT
-_0811C794: .4byte REG_BG0HOFS
-_0811C798: .4byte 0x0200c000
-_0811C79C:
- ldr r0, _0811C7A8
- ldr r1, _0811C7AC
- ldrh r1, [r1, 0x1A]
-_0811C7A2:
- strh r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0811C7A8: .4byte REG_BG0HOFS
-_0811C7AC: .4byte 0x0200c000
- thumb_func_end sub_811C77C
-
- thumb_func_start sub_811C7B0
-sub_811C7B0: @ 811C7B0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r0, _0811C8EC
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- mov r8, r1
- add r0, r8
- ldrb r0, [r0]
- ldr r2, _0811C8F0
- lsls r1, 2
- mov r8, r1
- adds r1, r2
- ldrh r1, [r1]
- subs r1, 0x20
- lsls r1, 16
- asrs r1, 16
- adds r2, 0x2
- add r2, r8
- ldrh r2, [r2]
- adds r2, 0x2A
- lsls r2, 16
- asrs r2, 16
- ldr r5, _0811C8F4
- str r5, [sp]
- movs r3, 0
- bl sub_80859BC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- ldr r0, _0811C8F8
- ldrb r0, [r0, 0x8]
- movs r1, 0x88
- lsls r1, 1
- str r5, [sp]
- movs r2, 0x6A
- movs r3, 0
- bl sub_80859BC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x24]
- movs r3, 0x22
- ldrsh r0, [r4, r3]
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- ldr r1, _0811C8FC
- adds r5, r1
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- lsls r6, r0, 4
- adds r6, r0
- lsls r6, 2
- adds r6, r1
- ldr r0, _0811C900
- str r0, [r5, 0x1C]
- str r0, [r6, 0x1C]
- ldrb r0, [r5, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r5, 0x1]
- ldrb r0, [r6, 0x1]
- orrs r0, r1
- strb r0, [r6, 0x1]
- bl AllocOamMatrix
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0x1F
- mov r9, r3
- mov r4, r9
- ands r0, r4
- lsls r0, 1
- ldrb r2, [r5, 0x3]
- movs r4, 0x3F
- negs r4, r4
- adds r1, r4, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x3]
- bl AllocOamMatrix
- lsls r0, 24
- lsrs r0, 24
- mov r1, r9
- ands r0, r1
- lsls r0, 1
- ldrb r1, [r6, 0x3]
- ands r4, r1
- orrs r4, r0
- strb r4, [r6, 0x3]
- ldrb r2, [r5, 0x1]
- movs r1, 0x3F
- adds r0, r1, 0
- ands r0, r2
- movs r2, 0x40
- orrs r0, r2
- strb r0, [r5, 0x1]
- ldrb r0, [r6, 0x1]
- ands r1, r0
- orrs r1, r2
- strb r1, [r6, 0x1]
- ldrb r0, [r5, 0x3]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r5, 0x3]
- ldrb r0, [r6, 0x3]
- orrs r0, r1
- strb r0, [r6, 0x3]
- adds r0, r5, 0
- movs r1, 0x1
- movs r2, 0x3
- movs r3, 0x3
- bl CalcCenterToCornerVec
- adds r0, r6, 0
- movs r1, 0x1
- movs r2, 0x3
- movs r3, 0x3
- bl CalcCenterToCornerVec
- ldrb r0, [r5, 0x3]
- lsls r0, 26
- lsrs r0, 27
- ldr r2, _0811C904
- mov r3, r8
- adds r1, r3, r2
- movs r4, 0
- ldrsh r1, [r1, r4]
- adds r2, 0x2
- add r8, r2
- mov r3, r8
- movs r4, 0
- ldrsh r2, [r3, r4]
- movs r3, 0
- bl SetOamMatrixRotationScaling
- ldrb r0, [r6, 0x3]
- lsls r0, 26
- lsrs r0, 27
- ldr r1, _0811C908
- movs r2, 0x80
- lsls r2, 2
- movs r3, 0
- bl SetOamMatrixRotationScaling
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811C8EC: .4byte gUnknown_083FD850
-_0811C8F0: .4byte gUnknown_083FD86A
-_0811C8F4: .4byte 0x0200c03c
-_0811C8F8: .4byte gSaveBlock2
-_0811C8FC: .4byte gSprites
-_0811C900: .4byte sub_811C90C
-_0811C904: .4byte gUnknown_083FD856
-_0811C908: .4byte 0xfffffe00
- thumb_func_end sub_811C7B0
-
- thumb_func_start sub_811C90C
-sub_811C90C: @ 811C90C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _0811C930
-_0811C912:
- 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 _0811C912
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811C930: .4byte gUnknown_083FD880
- thumb_func_end sub_811C90C
-
- thumb_func_start sub_811C934
-sub_811C934: @ 811C934
- movs r0, 0
- bx lr
- thumb_func_end sub_811C934
-
- thumb_func_start sub_811C938
-sub_811C938: @ 811C938
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- ldr r1, _0811C97C
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- add r4, sp, 0x4
- ldr r1, _0811C980
- adds r0, r4, 0
- movs r2, 0x4
- bl memcpy
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0x30]
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- lsls r0, 1
- adds r4, r0
- ldrh r0, [r4]
- strh r0, [r5, 0x32]
- movs r0, 0x1
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811C97C: .4byte gUnknown_083FD89C
-_0811C980: .4byte gUnknown_083FD8A0
- thumb_func_end sub_811C938
-
- thumb_func_start sub_811C984
-sub_811C984: @ 811C984
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- ldrh r3, [r1, 0x20]
- adds r2, r0, r3
- strh r2, [r1, 0x20]
- movs r3, 0x3C
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0811C9A2
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x84
- bgt _0811C9B0
- b _0811C9AA
-_0811C9A2:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x67
- ble _0811C9B0
-_0811C9AA:
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
-_0811C9B0:
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_811C984
-
- thumb_func_start sub_811C9B8
-sub_811C9B8: @ 811C9B8
- push {lr}
- adds r2, r0, 0
- ldrh r3, [r2, 0x32]
- ldrh r0, [r2, 0x30]
- adds r1, r3, r0
- strh r1, [r2, 0x30]
- ldrh r0, [r2, 0x20]
- adds r0, r1
- strh r0, [r2, 0x20]
- lsls r1, 16
- cmp r1, 0
- bne _0811C9DE
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- negs r0, r3
- strh r0, [r2, 0x32]
- movs r0, 0x1
- strh r0, [r2, 0x3A]
-_0811C9DE:
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_811C9B8
-
- thumb_func_start sub_811C9E4
-sub_811C9E4: @ 811C9E4
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x30]
- adds r0, r1
- strh r0, [r2, 0x30]
- ldrh r1, [r2, 0x20]
- adds r1, r0
- strh r1, [r2, 0x20]
- adds r1, 0x1F
- lsls r1, 16
- movs r0, 0x97
- lsls r0, 17
- cmp r1, r0
- bls _0811CA08
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
-_0811CA08:
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_811C9E4
-
- thumb_func_start sub_811CA10
-sub_811CA10: @ 811CA10
- ldr r3, _0811CA24
- lsls r0, 16
- asrs r0, 16
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- strh r1, [r2, 0x3C]
- bx lr
- .align 2, 0
-_0811CA24: .4byte gSprites
- thumb_func_end sub_811CA10
-
- thumb_func_start sub_811CA28
-sub_811CA28: @ 811CA28
- ldr r2, _0811CA40
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- bx lr
- .align 2, 0
-_0811CA40: .4byte gSprites
- thumb_func_end sub_811CA28
-
- thumb_func_start sub_811CA44
-sub_811CA44: @ 811CA44
- ldr r2, _0811CA58
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r2, 0x3A
- ldrsh r0, [r1, r2]
- bx lr
- .align 2, 0
-_0811CA58: .4byte gSprites
- thumb_func_end sub_811CA44
-
- thumb_func_start sub_811CA5C
-sub_811CA5C: @ 811CA5C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811CA8C
- ldr r2, _0811CA90
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811CA6E:
- 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 _0811CA6E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811CA8C: .4byte gUnknown_083FD8A4
-_0811CA90: .4byte gTasks
- thumb_func_end sub_811CA5C
-
- thumb_func_start sub_811CA94
-sub_811CA94: @ 811CA94
- push {r4-r6,lr}
- adds r4, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- movs r2, 0
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0xC]
- movs r0, 0x1
- strh r0, [r4, 0xE]
- ldr r1, _0811CB08
- movs r0, 0x3F
- strh r0, [r1, 0x2]
- strh r2, [r1, 0x4]
- movs r0, 0xA0
- strh r0, [r1, 0x8]
- ldr r3, _0811CB0C
- adds r6, r1, 0
- movs r5, 0xF0
-_0811CABE:
- lsls r0, r2, 1
- adds r0, r3
- ldrh r1, [r6, 0x14]
- strh r1, [r0]
- adds r0, r2, 0
- adds r0, 0xA0
- lsls r0, 1
- adds r0, r3
- strh r5, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x9F
- bls _0811CABE
- ldr r2, _0811CB10
- ldrh r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strh r0, [r2]
- ldr r2, _0811CB14
- ldrh r0, [r2]
- movs r1, 0x10
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0811CB18
- bl SetVBlankCallback
- ldr r0, _0811CB1C
- bl SetHBlankCallback
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x1
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811CB08: .4byte 0x0200c000
-_0811CB0C: .4byte gUnknown_03005560
-_0811CB10: .4byte 0x04000200
-_0811CB14: .4byte REG_DISPSTAT
-_0811CB18: .4byte sub_811CC28
-_0811CB1C: .4byte sub_811CCB0
- thumb_func_end sub_811CA94
-
- thumb_func_start sub_811CB20
-sub_811CB20: @ 811CB20
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r2, r0, 0
- ldr r1, _0811CB98
- ldrb r0, [r1]
- movs r0, 0
- strb r0, [r1]
- ldrh r0, [r2, 0xC]
- lsls r0, 16
- asrs r0, 24
- ldrh r3, [r2, 0xA]
- adds r0, r3
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- mov r12, r1
- cmp r0, 0xF0
- ble _0811CB4A
- movs r0, 0xF0
- strh r0, [r2, 0xA]
-_0811CB4A:
- ldrh r4, [r2, 0xC]
- movs r0, 0xC
- ldrsh r1, [r2, r0]
- ldr r0, _0811CB9C
- ldrh r3, [r2, 0xE]
- cmp r1, r0
- bgt _0811CB5C
- adds r0, r4, r3
- strh r0, [r2, 0xC]
-_0811CB5C:
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, 0x7F
- bgt _0811CB68
- lsls r0, r3, 1
- strh r0, [r2, 0xE]
-_0811CB68:
- movs r5, 0
- ldr r7, _0811CBA0
- movs r1, 0xA0
- lsls r1, 1
- adds r1, r7
- mov r8, r1
- mov r6, r12
-_0811CB76:
- lsls r0, r5, 1
- adds r3, r0, r7
- mov r1, r8
- adds r4, r0, r1
- movs r0, 0x1
- ands r0, r5
- cmp r0, 0
- beq _0811CBA4
- ldrh r0, [r2, 0xA]
- ldrh r1, [r6, 0x14]
- adds r0, r1
- strh r0, [r3]
- ldrh r1, [r2, 0xA]
- movs r0, 0xF0
- subs r0, r1
- b _0811CBB4
- .align 2, 0
-_0811CB98: .4byte 0x0200c000
-_0811CB9C: .4byte 0x00000fff
-_0811CBA0: .4byte gUnknown_03004DE0
-_0811CBA4:
- ldrh r0, [r6, 0x14]
- ldrh r1, [r2, 0xA]
- subs r0, r1
- strh r0, [r3]
- ldrh r0, [r2, 0xA]
- lsls r0, 8
- movs r1, 0xF1
- orrs r0, r1
-_0811CBB4:
- strh r0, [r4]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x9F
- bls _0811CB76
- movs r3, 0xA
- ldrsh r0, [r2, r3]
- cmp r0, 0xEF
- ble _0811CBCE
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
-_0811CBCE:
- mov r1, r12
- ldrb r0, [r1]
- adds r0, 0x1
- ldrb r1, [r1]
- mov r2, r12
- strb r0, [r2]
- movs r0, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_811CB20
-
- thumb_func_start sub_811CBE8
-sub_811CBE8: @ 811CBE8
- push {lr}
- ldr r1, _0811CC18
- ldrh r2, [r1, 0xA]
- ldr r0, _0811CC1C
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _0811CC20
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- bl sub_811D6D4
- ldr r0, _0811CC24
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0811CC18: .4byte 0x040000b0
-_0811CC1C: .4byte 0x0000c5ff
-_0811CC20: .4byte 0x00007fff
-_0811CC24: .4byte sub_811CA5C
- thumb_func_end sub_811CBE8
-
- thumb_func_start sub_811CC28
-sub_811CC28: @ 811CC28
- push {r4,lr}
- ldr r4, _0811CC84
- ldrh r1, [r4, 0xA]
- ldr r0, _0811CC88
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0xA]
- ldr r0, _0811CC8C
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xA]
- bl sub_811D67C
- ldr r2, _0811CC90
- ldr r1, _0811CC94
- ldrh r0, [r1, 0x2]
- strh r0, [r2]
- adds r2, 0x2
- ldrh r0, [r1, 0x4]
- strh r0, [r2]
- subs r2, 0x6
- ldrh r0, [r1, 0x8]
- strh r0, [r2]
- ldrb r0, [r1]
- cmp r0, 0
- beq _0811CC70
- ldr r1, _0811CC98
- ldr r0, _0811CC9C
- str r0, [r1]
- movs r2, 0xF0
- lsls r2, 3
- adds r0, r2
- str r0, [r1, 0x4]
- ldr r0, _0811CCA0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811CC70:
- ldr r0, _0811CCA4
- str r0, [r4]
- ldr r0, _0811CCA8
- str r0, [r4, 0x4]
- ldr r0, _0811CCAC
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811CC84: .4byte 0x040000b0
-_0811CC88: .4byte 0x0000c5ff
-_0811CC8C: .4byte 0x00007fff
-_0811CC90: .4byte REG_WININ
-_0811CC94: .4byte 0x0200c000
-_0811CC98: .4byte 0x040000d4
-_0811CC9C: .4byte gUnknown_03004DE0
-_0811CCA0: .4byte 0x80000140
-_0811CCA4: .4byte gUnknown_030056A0
-_0811CCA8: .4byte REG_WIN0H
-_0811CCAC: .4byte 0xa2400001
- thumb_func_end sub_811CC28
-
- thumb_func_start sub_811CCB0
-sub_811CCB0: @ 811CCB0
- ldr r1, _0811CCD0
- ldr r0, _0811CCD4
- ldrh r0, [r0]
- lsls r0, 1
- movs r2, 0xF0
- lsls r2, 3
- adds r1, r2
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _0811CCD8
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- bx lr
- .align 2, 0
-_0811CCD0: .4byte gUnknown_03004DE0
-_0811CCD4: .4byte REG_VCOUNT
-_0811CCD8: .4byte REG_BG1HOFS
- thumb_func_end sub_811CCB0
-
- thumb_func_start sub_811CCDC
-sub_811CCDC: @ 811CCDC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811CD0C
- ldr r2, _0811CD10
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811CCEE:
- 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 _0811CCEE
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811CD0C: .4byte gUnknown_083FD8B0
-_0811CD10: .4byte gTasks
- thumb_func_end sub_811CCDC
-
- thumb_func_start sub_811CD14
-sub_811CD14: @ 811CD14
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- ldr r1, _0811CD88
- movs r2, 0
- movs r0, 0xBF
- strh r0, [r1, 0xE]
- strh r2, [r1, 0x12]
- movs r0, 0x1E
- strh r0, [r1, 0x2]
- movs r0, 0x3F
- strh r0, [r1, 0x4]
- movs r0, 0xA0
- strh r0, [r1, 0x8]
- movs r1, 0
- ldr r2, _0811CD8C
- movs r4, 0
- movs r3, 0xF0
-_0811CD3E:
- lsls r0, r1, 1
- adds r0, r2
- strh r4, [r0]
- adds r0, r1, 0
- adds r0, 0xA0
- lsls r0, 1
- adds r0, r2
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x9F
- bls _0811CD3E
- ldr r2, _0811CD90
- ldrh r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strh r0, [r2]
- ldr r2, _0811CD94
- ldrh r0, [r2]
- movs r1, 0x10
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0811CD98
- bl SetHBlankCallback
- ldr r0, _0811CD9C
- bl SetVBlankCallback
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811CD88: .4byte 0x0200c000
-_0811CD8C: .4byte gUnknown_03005560
-_0811CD90: .4byte 0x04000200
-_0811CD94: .4byte REG_DISPSTAT
-_0811CD98: .4byte sub_811CFAC
-_0811CD9C: .4byte sub_811CEE4
- thumb_func_end sub_811CD14
-
- thumb_func_start sub_811CDA0
-sub_811CDA0: @ 811CDA0
- push {r4-r6,lr}
- sub sp, 0x10
- adds r6, r0, 0
- ldr r1, _0811CE08
- mov r0, sp
- movs r2, 0x10
- bl memcpy
- movs r5, 0
- movs r4, 0
-_0811CDB4:
- ldr r0, _0811CE0C
- bl CreateInvisibleSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0811CE10
- adds r2, r1, r0
- movs r0, 0xF0
- strh r0, [r2, 0x20]
- strh r4, [r2, 0x22]
- lsls r1, r5, 16
- asrs r1, 16
- lsls r0, r1, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r2, 0x38]
- adds r1, 0x1
- lsls r1, 16
- lsls r0, r4, 16
- movs r3, 0xA0
- lsls r3, 13
- adds r0, r3
- lsrs r4, r0, 16
- lsrs r5, r1, 16
- asrs r1, 16
- cmp r1, 0x7
- ble _0811CDB4
- ldrh r0, [r2, 0x3A]
- adds r0, 0x1
- strh r0, [r2, 0x3A]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- movs r0, 0
- add sp, 0x10
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811CE08: .4byte gUnknown_083FD8C4
-_0811CE0C: .4byte sub_811CFD0
-_0811CE10: .4byte gSprites
- thumb_func_end sub_811CDA0
-
- thumb_func_start sub_811CE14
-sub_811CE14: @ 811CE14
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0811CE44
- ldrb r1, [r0]
- movs r1, 0
- strb r1, [r0]
- movs r1, 0x20
- ldrsh r0, [r0, r1]
- cmp r0, 0x7
- ble _0811CE3A
- movs r0, 0x1
- negs r0, r0
- ldr r2, _0811CE48
- movs r1, 0x10
- bl BlendPalettes
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0811CE3A:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811CE44: .4byte 0x0200c000
-_0811CE48: .4byte 0x00007fff
- thumb_func_end sub_811CE14
-
- thumb_func_start sub_811CE4C
-sub_811CE4C: @ 811CE4C
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r4, _0811CE9C
- ldrb r0, [r4]
- movs r5, 0
- strb r5, [r4]
- ldr r1, _0811CEA0
- ldrh r2, [r1, 0xA]
- ldr r0, _0811CEA4
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _0811CEA8
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0xF0
- strh r0, [r4, 0x6]
- strh r5, [r4, 0x12]
- movs r0, 0xFF
- strh r0, [r4, 0xE]
- movs r0, 0x3F
- strh r0, [r4, 0x2]
- ldr r0, _0811CEAC
- bl SetVBlankCallback
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811CE9C: .4byte 0x0200c000
-_0811CEA0: .4byte 0x040000b0
-_0811CEA4: .4byte 0x0000c5ff
-_0811CEA8: .4byte 0x00007fff
-_0811CEAC: .4byte sub_811CF74
- thumb_func_end sub_811CE4C
-
- thumb_func_start sub_811CEB0
-sub_811CEB0: @ 811CEB0
- push {lr}
- ldr r1, _0811CEDC
- ldrh r0, [r1, 0x12]
- adds r0, 0x1
- strh r0, [r1, 0x12]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x10
- bls _0811CED4
- bl sub_811D6D4
- ldr r0, _0811CEE0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0811CED4:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0811CEDC: .4byte 0x0200c000
-_0811CEE0: .4byte sub_811CCDC
- thumb_func_end sub_811CEB0
-
- thumb_func_start sub_811CEE4
-sub_811CEE4: @ 811CEE4
- push {r4,lr}
- ldr r4, _0811CF48
- ldrh r1, [r4, 0xA]
- ldr r0, _0811CF4C
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0xA]
- ldr r0, _0811CF50
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xA]
- bl sub_811D67C
- ldr r2, _0811CF54
- ldr r1, _0811CF58
- ldrh r0, [r1, 0xE]
- strh r0, [r2]
- subs r2, 0x8
- ldrh r0, [r1, 0x2]
- strh r0, [r2]
- adds r2, 0x2
- ldrh r0, [r1, 0x4]
- strh r0, [r2]
- subs r2, 0x6
- ldrh r0, [r1, 0x6]
- strh r0, [r2]
- ldrb r0, [r1]
- cmp r0, 0
- beq _0811CF32
- ldr r1, _0811CF5C
- ldr r0, _0811CF60
- str r0, [r1]
- movs r2, 0xF0
- lsls r2, 3
- adds r0, r2
- str r0, [r1, 0x4]
- ldr r0, _0811CF64
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811CF32:
- ldr r0, _0811CF68
- str r0, [r4]
- ldr r0, _0811CF6C
- str r0, [r4, 0x4]
- ldr r0, _0811CF70
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811CF48: .4byte 0x040000b0
-_0811CF4C: .4byte 0x0000c5ff
-_0811CF50: .4byte 0x00007fff
-_0811CF54: .4byte REG_BLDCNT
-_0811CF58: .4byte 0x0200c000
-_0811CF5C: .4byte 0x040000d4
-_0811CF60: .4byte gUnknown_03004DE0
-_0811CF64: .4byte 0x80000140
-_0811CF68: .4byte gUnknown_030056A0
-_0811CF6C: .4byte REG_WIN0H
-_0811CF70: .4byte 0xa2400001
- thumb_func_end sub_811CEE4
-
- thumb_func_start sub_811CF74
-sub_811CF74: @ 811CF74
- push {lr}
- bl sub_811D67C
- ldr r1, _0811CFA4
- ldr r2, _0811CFA8
- ldrh r0, [r2, 0x12]
- strh r0, [r1]
- subs r1, 0x4
- ldrh r0, [r2, 0xE]
- strh r0, [r1]
- subs r1, 0x8
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r2, 0x4]
- strh r0, [r1]
- subs r1, 0xA
- ldrh r0, [r2, 0x6]
- strh r0, [r1]
- adds r1, 0x4
- ldrh r0, [r2, 0x8]
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0811CFA4: .4byte REG_BLDY
-_0811CFA8: .4byte 0x0200c000
- thumb_func_end sub_811CF74
-
- thumb_func_start sub_811CFAC
-sub_811CFAC: @ 811CFAC
- ldr r2, _0811CFC4
- ldr r1, _0811CFC8
- ldr r0, _0811CFCC
- ldrh r0, [r0]
- lsls r0, 1
- movs r3, 0xF0
- lsls r3, 3
- adds r1, r3
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- bx lr
- .align 2, 0
-_0811CFC4: .4byte REG_BLDY
-_0811CFC8: .4byte gUnknown_03004DE0
-_0811CFCC: .4byte REG_VCOUNT
- thumb_func_end sub_811CFAC
-
- thumb_func_start sub_811CFD0
-sub_811CFD0: @ 811CFD0
- push {r4-r6,lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x38]
- movs r2, 0x38
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _0811CFF8
- subs r0, r1, 0x1
- strh r0, [r3, 0x38]
- movs r1, 0x3A
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _0811D0AA
- ldr r0, _0811CFF4
- ldrb r1, [r0]
- movs r1, 0x1
- strb r1, [r0]
- b _0811D0AA
- .align 2, 0
-_0811CFF4: .4byte 0x0200c000
-_0811CFF8:
- movs r2, 0x22
- ldrsh r1, [r3, r2]
- lsls r1, 1
- ldr r0, _0811D0B0
- adds r6, r1, r0
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r2
- adds r5, r1, r0
- movs r4, 0
-_0811D00C:
- lsls r1, r4, 1
- adds r2, r1, r6
- ldrh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r2]
- adds r1, r5
- ldrh r0, [r3, 0x20]
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x13
- bls _0811D00C
- movs r1, 0x20
- ldrsh r0, [r3, r1]
- ldrh r2, [r3, 0x20]
- cmp r0, 0
- bne _0811D046
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- movs r0, 0x80
- lsls r0, 5
- cmp r1, r0
- bne _0811D046
- movs r0, 0x1
- strh r0, [r3, 0x30]
-_0811D046:
- adds r1, r2, 0
- subs r1, 0x10
- strh r1, [r3, 0x20]
- ldrh r0, [r3, 0x2E]
- adds r0, 0x80
- strh r0, [r3, 0x2E]
- lsls r1, 16
- cmp r1, 0
- bge _0811D05C
- movs r0, 0
- strh r0, [r3, 0x20]
-_0811D05C:
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- movs r1, 0x80
- lsls r1, 5
- cmp r0, r1
- ble _0811D06A
- strh r1, [r3, 0x2E]
-_0811D06A:
- movs r0, 0x3A
- ldrsh r2, [r3, r0]
- cmp r2, 0
- beq _0811D07A
- ldr r0, _0811D0B4
- ldrb r1, [r0]
- movs r1, 0x1
- strb r1, [r0]
-_0811D07A:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _0811D0AA
- ldr r4, _0811D0B4
- cmp r2, 0
- beq _0811D09E
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x6
- ble _0811D0AA
- ldrh r0, [r3, 0x32]
- adds r1, r0, 0x1
- strh r1, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _0811D0AA
-_0811D09E:
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- strh r0, [r4, 0x20]
- adds r0, r3, 0
- bl DestroySprite
-_0811D0AA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811D0B0: .4byte gUnknown_03004DE0
-_0811D0B4: .4byte 0x0200c000
- thumb_func_end sub_811CFD0
-
- thumb_func_start sub_811D0B8
-sub_811D0B8: @ 811D0B8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811D0E8
- ldr r2, _0811D0EC
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811D0CA:
- 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 _0811D0CA
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811D0E8: .4byte gUnknown_083FD8D4
-_0811D0EC: .4byte gTasks
- thumb_func_end sub_811D0B8
-
- thumb_func_start sub_811D0F0
-sub_811D0F0: @ 811D0F0
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- add r0, sp, 0x4
- add r1, sp, 0x8
- bl sub_811D6A8
- ldr r0, _0811D138
- ldr r1, [sp, 0x8]
- movs r2, 0x10
- bl CpuSet
- mov r1, sp
- movs r2, 0xF0
- lsls r2, 8
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, [sp, 0x4]
- ldr r2, _0811D13C
- mov r0, sp
- bl CpuSet
- ldr r0, _0811D140
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0
- add sp, 0xC
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811D138: .4byte gUnknown_083FD528
-_0811D13C: .4byte 0x01000400
-_0811D140: .4byte gFieldEffectObjectPalette10
- thumb_func_end sub_811D0F0
-
- thumb_func_start sub_811D144
-sub_811D144: @ 811D144
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0811D186
- mov r0, sp
- bl sub_811D690
- movs r0, 0x3
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- lsls r0, 5
- ldr r1, _0811D198
- adds r0, r1
- ldr r1, [sp]
- movs r2, 0x10
- bl CpuSet
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0xD
- ble _0811D186
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r0, 0x10
- strh r0, [r4, 0xA]
-_0811D186:
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- movs r0, 0
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811D198: .4byte gUnknown_083FD528
- thumb_func_end sub_811D144
-
- thumb_func_start sub_811D19C
-sub_811D19C: @ 811D19C
- push {lr}
- ldrh r1, [r0, 0xA]
- subs r1, 0x1
- strh r1, [r0, 0xA]
- lsls r1, 16
- cmp r1, 0
- bne _0811D1BC
- bl sub_811D6D4
- ldr r0, _0811D1C4
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
-_0811D1BC:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0811D1C4: .4byte sub_811D0B8
- thumb_func_end sub_811D19C
-
- thumb_func_start sub_811D1C8
-sub_811D1C8: @ 811D1C8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811D1F8
- ldr r2, _0811D1FC
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811D1DA:
- 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 _0811D1DA
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811D1F8: .4byte gUnknown_083FD8E0
-_0811D1FC: .4byte gTasks
- thumb_func_end sub_811D1C8
-
- thumb_func_start sub_811D200
-sub_811D200: @ 811D200
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_811D658
- bl dp12_8087EA4
- ldr r1, _0811D254
- movs r2, 0
- movs r0, 0x3F
- strh r0, [r1, 0x2]
- strh r2, [r1, 0x4]
- movs r0, 0xA0
- strh r0, [r1, 0x8]
- movs r1, 0
- ldr r2, _0811D258
- movs r3, 0xF0
- adds r4, r2, 0
-_0811D222:
- lsls r0, r1, 1
- adds r0, r2
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x9F
- bls _0811D222
- movs r0, 0xF0
- lsls r0, 3
- adds r1, r4, r0
- adds r0, r4, 0
- movs r2, 0xA0
- bl CpuSet
- ldr r0, _0811D25C
- bl SetVBlankCallback
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0811D254: .4byte 0x0200c000
-_0811D258: .4byte gUnknown_03004DE0
-_0811D25C: .4byte sub_811D438
- thumb_func_end sub_811D200
-
- thumb_func_start sub_811D260
-sub_811D260: @ 811D260
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0xC
- mov r8, r0
- ldr r0, _0811D2D0
- ldr r6, _0811D2D4
- mov r2, r8
- movs r3, 0xA
- ldrsh r1, [r2, r3]
- lsls r4, r1, 2
- adds r4, r1
- lsls r4, 1
- adds r1, r4, r6
- movs r5, 0
- ldrsh r1, [r1, r5]
- adds r2, r6, 0x2
- adds r2, r4, r2
- movs r3, 0
- ldrsh r2, [r2, r3]
- adds r3, r6, 0x4
- adds r3, r4, r3
- movs r5, 0
- ldrsh r3, [r3, r5]
- adds r5, r6, 0x6
- adds r4, r5
- movs r5, 0
- ldrsh r4, [r4, r5]
- str r4, [sp]
- movs r4, 0x1
- str r4, [sp, 0x4]
- str r4, [sp, 0x8]
- bl sub_811D8FC
- mov r0, r8
- movs r2, 0xA
- ldrsh r1, [r0, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- adds r6, 0x8
- adds r0, r6
- ldrh r0, [r0]
- mov r3, r8
- strh r0, [r3, 0xC]
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- movs r0, 0x1
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0811D2D0: .4byte 0x0200c024
-_0811D2D4: .4byte gUnknown_083FD8F4
- thumb_func_end sub_811D260
-
- thumb_func_start sub_811D2D8
-sub_811D2D8: @ 811D2D8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- ldr r0, _0811D324
- ldrb r1, [r0]
- movs r1, 0
- strb r1, [r0]
- mov r8, r1
- mov r12, r1
- adds r6, r0, 0
- ldr r0, _0811D328
- mov r9, r0
-_0811D2F4:
- ldr r1, _0811D328
- movs r2, 0x2A
- ldrsh r0, [r6, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsrs r3, r0, 8
- movs r4, 0xFF
- ands r4, r0
- movs r1, 0xC
- ldrsh r0, [r7, r1]
- cmp r0, 0
- bne _0811D32C
- movs r2, 0x28
- ldrsh r0, [r6, r2]
- cmp r3, r0
- bge _0811D318
- ldrh r3, [r6, 0x28]
-_0811D318:
- lsls r0, r3, 16
- lsls r1, r4, 16
- cmp r0, r1
- ble _0811D344
- lsrs r3, r1, 16
- b _0811D344
- .align 2, 0
-_0811D324: .4byte 0x0200c000
-_0811D328: .4byte gUnknown_03004DE0
-_0811D32C:
- lsls r0, r4, 16
- asrs r0, 16
- movs r2, 0x28
- ldrsh r1, [r6, r2]
- cmp r0, r1
- ble _0811D33A
- ldrh r4, [r6, 0x28]
-_0811D33A:
- lsls r0, r4, 16
- lsls r1, r3, 16
- cmp r0, r1
- bgt _0811D344
- lsrs r4, r1, 16
-_0811D344:
- ldr r5, _0811D368
- movs r0, 0x2A
- ldrsh r2, [r5, r0]
- lsls r2, 1
- add r2, r9
- lsls r1, r3, 16
- asrs r1, 8
- lsls r0, r4, 16
- asrs r0, 16
- orrs r0, r1
- strh r0, [r2]
- mov r1, r12
- cmp r1, 0
- beq _0811D36C
- ldrh r0, [r7, 0x8]
- adds r0, 0x1
- strh r0, [r7, 0x8]
- b _0811D392
- .align 2, 0
-_0811D368: .4byte 0x0200c000
-_0811D36C:
- adds r0, r5, 0
- adds r0, 0x24
- movs r1, 0x1
- movs r2, 0x1
- bl sub_811D978
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- mov r2, r8
- lsls r0, r2, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r2, r0, 16
- mov r8, r2
- asrs r0, 16
- cmp r0, 0xF
- ble _0811D2F4
-_0811D392:
- ldr r0, _0811D3AC
- ldrb r1, [r0]
- adds r1, 0x1
- ldrb r2, [r0]
- strb r1, [r0]
- movs r0, 0
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811D3AC: .4byte 0x0200c000
- thumb_func_end sub_811D2D8
-
- thumb_func_start sub_811D3B0
-sub_811D3B0: @ 811D3B0
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- ble _0811D3FC
- ldr r1, _0811D3EC
- ldrh r2, [r1, 0xA]
- ldr r0, _0811D3F0
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r2, [r1, 0xA]
- ldr r0, _0811D3F4
- ands r0, r2
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xA]
- bl sub_811D6D4
- ldr r0, _0811D3F8
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- b _0811D414
- .align 2, 0
-_0811D3EC: .4byte 0x040000b0
-_0811D3F0: .4byte 0x0000c5ff
-_0811D3F4: .4byte 0x00007fff
-_0811D3F8: .4byte sub_811D1C8
-_0811D3FC:
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- ldr r1, _0811D418
- movs r3, 0xA
- ldrsh r0, [r2, r3]
- subs r0, 0x1
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2, 0xE]
- movs r0, 0x1
-_0811D414:
- pop {r1}
- bx r1
- .align 2, 0
-_0811D418: .4byte gUnknown_083FD93A
- thumb_func_end sub_811D3B0
-
- thumb_func_start sub_811D41C
-sub_811D41C: @ 811D41C
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0xE]
- subs r0, 0x1
- strh r0, [r1, 0xE]
- lsls r0, 16
- cmp r0, 0
- beq _0811D430
- movs r0, 0
- b _0811D434
-_0811D430:
- movs r0, 0x1
- strh r0, [r1, 0x8]
-_0811D434:
- pop {r1}
- bx r1
- thumb_func_end sub_811D41C
-
- thumb_func_start sub_811D438
-sub_811D438: @ 811D438
- push {r4,lr}
- ldr r4, _0811D4A0
- ldrh r1, [r4, 0xA]
- ldr r0, _0811D4A4
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0xA]
- ldr r0, _0811D4A8
- ands r0, r1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xA]
- bl sub_811D67C
- ldr r2, _0811D4AC
- ldrb r0, [r2]
- cmp r0, 0
- beq _0811D46E
- ldr r1, _0811D4B0
- ldr r0, _0811D4B4
- str r0, [r1]
- movs r3, 0xF0
- lsls r3, 3
- adds r0, r3
- str r0, [r1, 0x4]
- ldr r0, _0811D4B8
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
-_0811D46E:
- ldr r1, _0811D4BC
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r2, 0x4]
- strh r0, [r1]
- subs r1, 0x6
- ldrh r0, [r2, 0x8]
- strh r0, [r1]
- ldr r2, _0811D4C0
- ldr r0, _0811D4B4
- movs r1, 0xF0
- lsls r1, 3
- adds r0, r1
- ldrh r1, [r0]
- strh r1, [r2]
- str r0, [r4]
- str r2, [r4, 0x4]
- ldr r0, _0811D4C4
- str r0, [r4, 0x8]
- ldr r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811D4A0: .4byte 0x040000b0
-_0811D4A4: .4byte 0x0000c5ff
-_0811D4A8: .4byte 0x00007fff
-_0811D4AC: .4byte 0x0200c000
-_0811D4B0: .4byte 0x040000d4
-_0811D4B4: .4byte gUnknown_03004DE0
-_0811D4B8: .4byte 0x800000a0
-_0811D4BC: .4byte REG_WININ
-_0811D4C0: .4byte REG_WIN0H
-_0811D4C4: .4byte 0xa2400001
- thumb_func_end sub_811D438
-
- thumb_func_start sub_811D4C8
-sub_811D4C8: @ 811D4C8
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- mov r8, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- ldr r3, [sp, 0x18]
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r6, 16
- lsrs r6, 16
- lsls r3, 16
- lsrs r3, 16
- ldr r0, _0811D524
- movs r1, 0x3
- str r3, [sp]
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0811D528
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- mov r0, r8
- strh r0, [r1, 0xA]
- strh r4, [r1, 0xC]
- strh r5, [r1, 0xE]
- strh r6, [r1, 0x10]
- ldr r3, [sp]
- strh r3, [r1, 0x12]
- strh r0, [r1, 0x14]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811D524: .4byte sub_811D54C
-_0811D528: .4byte gTasks
- thumb_func_end sub_811D4C8
-
- thumb_func_start sub_811D52C
-sub_811D52C: @ 811D52C
- push {lr}
- ldr r0, _0811D540
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0811D544
- movs r0, 0
- b _0811D546
- .align 2, 0
-_0811D540: .4byte sub_811D54C
-_0811D544:
- movs r0, 0x1
-_0811D546:
- pop {r1}
- bx r1
- thumb_func_end sub_811D52C
-
- thumb_func_start sub_811D54C
-sub_811D54C: @ 811D54C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _0811D57C
- ldr r2, _0811D580
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
-_0811D55E:
- 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 _0811D55E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811D57C: .4byte gUnknown_083FD948
-_0811D580: .4byte gTasks
- thumb_func_end sub_811D54C
-
- thumb_func_start sub_811D584
-sub_811D584: @ 811D584
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x14]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0811D59C
- subs r0, r1, 0x1
- strh r0, [r4, 0x14]
- lsls r0, 16
- cmp r0, 0
- bne _0811D5C0
-_0811D59C:
- ldrh r0, [r4, 0xA]
- strh r0, [r4, 0x14]
- ldrh r0, [r4, 0x10]
- ldrh r1, [r4, 0x16]
- adds r0, r1
- strh r0, [r4, 0x16]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _0811D5B4
- movs r0, 0x10
- strh r0, [r4, 0x16]
-_0811D5B4:
- movs r0, 0x1
- negs r0, r0
- ldrb r1, [r4, 0x16]
- ldr r2, _0811D5DC
- bl BlendPalettes
-_0811D5C0:
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r0, 0xF
- ble _0811D5D2
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xC]
- strh r0, [r4, 0x14]
-_0811D5D2:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0811D5DC: .4byte 0x00002d6b
- thumb_func_end sub_811D584
-
- thumb_func_start sub_811D5E0
-sub_811D5E0: @ 811D5E0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x14]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0811D5F8
- subs r0, r1, 0x1
- strh r0, [r4, 0x14]
- lsls r0, 16
- cmp r0, 0
- bne _0811D61A
-_0811D5F8:
- ldrh r0, [r4, 0xC]
- strh r0, [r4, 0x14]
- ldrh r0, [r4, 0x16]
- ldrh r1, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0x16]
- lsls r0, 16
- cmp r0, 0
- bge _0811D60E
- movs r0, 0
- strh r0, [r4, 0x16]
-_0811D60E:
- movs r0, 0x1
- negs r0, r0
- ldrb r1, [r4, 0x16]
- ldr r2, _0811D640
- bl BlendPalettes
-_0811D61A:
- movs r0, 0x16
- ldrsh r1, [r4, r0]
- cmp r1, 0
- bne _0811D64E
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _0811D648
- ldr r0, _0811D644
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- b _0811D64E
- .align 2, 0
-_0811D640: .4byte 0x00002d6b
-_0811D644: .4byte sub_811D54C
-_0811D648:
- ldrh r0, [r4, 0xA]
- strh r0, [r4, 0x14]
- strh r1, [r4, 0x8]
-_0811D64E:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_811D5E0
-
- thumb_func_start sub_811D658
-sub_811D658: @ 811D658
- push {lr}
- ldr r0, _0811D674
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0x3C
- bl memset
- ldr r0, _0811D678
- adds r1, r0, 0x2
- bl sub_8057B14
- pop {r0}
- bx r0
- .align 2, 0
-_0811D674: .4byte gUnknown_083FD708
-_0811D678: .4byte 0x0200c014
- thumb_func_end sub_811D658
-
- thumb_func_start sub_811D67C
-sub_811D67C: @ 811D67C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_811D67C
-
- thumb_func_start sub_811D690
-sub_811D690: @ 811D690
- ldr r1, _0811D6A4
- ldrh r1, [r1]
- lsrs r1, 2
- lsls r1, 30
- lsrs r1, 16
- movs r2, 0xC0
- lsls r2, 19
- adds r1, r2
- str r1, [r0]
- bx lr
- .align 2, 0
-_0811D6A4: .4byte REG_BG0CNT
- thumb_func_end sub_811D690
-
- thumb_func_start sub_811D6A8
-sub_811D6A8: @ 811D6A8
- push {r4,lr}
- ldr r3, _0811D6D0
- ldrh r2, [r3]
- lsrs r2, 8
- ldrh r3, [r3]
- lsrs r3, 2
- lsls r2, 27
- lsrs r2, 16
- lsls r3, 30
- lsrs r3, 16
- movs r4, 0xC0
- lsls r4, 19
- adds r2, r4
- str r2, [r0]
- adds r3, r4
- str r3, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811D6D0: .4byte REG_BG0CNT
- thumb_func_end sub_811D6A8
-
- thumb_func_start sub_811D6D4
-sub_811D6D4: @ 811D6D4
- push {lr}
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- pop {r0}
- bx r0
- thumb_func_end sub_811D6D4
-
- thumb_func_start sub_811D6E8
-sub_811D6E8: @ 811D6E8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r0
- ldr r0, [sp, 0x20]
- ldr r4, [sp, 0x24]
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 16
- lsrs r3, 16
- lsls r0, 16
- lsrs r1, r0, 16
- lsls r4, 16
- movs r6, 0
- lsrs r5, r4, 16
- cmp r4, 0
- ble _0811D750
- lsls r0, r7, 16
- asrs r0, 16
- mov r9, r0
- lsls r1, 16
- mov r8, r1
- lsls r0, r3, 16
- asrs r7, r0, 16
-_0811D720:
- lsls r4, r2, 16
- asrs r4, 16
- movs r0, 0xFF
- ands r0, r4
- mov r2, r8
- asrs r1, r2, 16
- bl Sin
- lsls r1, r6, 1
- add r1, r10
- add r0, r9
- strh r0, [r1]
- lsls r1, r5, 16
- ldr r0, _0811D760
- adds r1, r0
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r4, r7
- lsls r4, 16
- lsrs r2, r4, 16
- lsrs r5, r1, 16
- cmp r1, 0
- bgt _0811D720
-_0811D750:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811D760: .4byte 0xffff0000
- thumb_func_end sub_811D6E8
-
- thumb_func_start sub_811D764
-sub_811D764: @ 811D764
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r9, r0
- adds r5, r2, 0
- adds r4, r3, 0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 16
- lsrs r4, 16
- movs r2, 0xA0
- lsls r2, 1
- movs r1, 0xA
- bl memset
- movs r1, 0
- lsls r4, 16
- asrs r4, 16
- str r4, [sp, 0x4]
- lsls r5, 16
- asrs r5, 16
- str r5, [sp, 0x8]
-_0811D79C:
- lsls r5, r1, 16
- asrs r0, r5, 16
- mov r10, r0
- ldr r1, [sp, 0x4]
- bl Sin
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r10
- ldr r1, [sp, 0x4]
- bl Cos
- ldr r2, [sp]
- lsls r1, r2, 16
- asrs r1, 16
- lsls r4, 16
- asrs r4, 16
- subs r2, r1, r4
- lsls r2, 16
- adds r1, r4
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r0, 16
- asrs r0, 16
- ldr r3, [sp, 0x8]
- subs r1, r3, r0
- lsls r1, 16
- lsrs r7, r1, 16
- adds r0, r3, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsrs r1, r2, 16
- str r5, [sp, 0x10]
- cmp r2, 0
- bge _0811D7E8
- movs r1, 0
-_0811D7E8:
- lsls r0, r6, 16
- asrs r0, 16
- cmp r0, 0xF0
- ble _0811D7F2
- movs r6, 0xF0
-_0811D7F2:
- lsls r0, r7, 16
- cmp r0, 0
- bge _0811D7FA
- movs r7, 0
-_0811D7FA:
- mov r2, r8
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x9F
- ble _0811D808
- movs r3, 0x9F
- mov r8, r3
-_0811D808:
- lsls r0, r1, 24
- lsrs r0, 16
- orrs r6, r0
- lsls r0, r7, 16
- asrs r0, 16
- str r0, [sp, 0xC]
- lsls r0, 1
- add r0, r9
- strh r6, [r0]
- mov r0, r8
- lsls r4, r0, 16
- asrs r0, r4, 15
- add r0, r9
- strh r6, [r0]
- mov r0, r10
- adds r0, 0x1
- lsls r0, 16
- asrs r0, 16
- ldr r1, [sp, 0x4]
- bl Cos
- lsls r0, 16
- asrs r0, 16
- ldr r2, [sp, 0x8]
- subs r1, r2, r0
- lsls r1, 16
- adds r0, r2, r0
- lsls r0, 16
- lsrs r2, r0, 16
- lsrs r3, r1, 16
- cmp r1, 0
- bge _0811D84A
- movs r3, 0
-_0811D84A:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x9F
- ble _0811D854
- movs r2, 0x9F
-_0811D854:
- lsls r0, r3, 16
- asrs r1, r0, 16
- adds r3, r0, 0
- lsls r5, r2, 16
- ldr r0, [sp, 0xC]
- cmp r0, r1
- ble _0811D878
- adds r2, r1, 0
-_0811D864:
- lsls r1, r7, 16
- ldr r0, _0811D8F8
- adds r1, r0
- asrs r0, r1, 15
- add r0, r9
- strh r6, [r0]
- lsrs r7, r1, 16
- asrs r1, 16
- cmp r1, r2
- bgt _0811D864
-_0811D878:
- lsls r1, r7, 16
- asrs r0, r3, 16
- cmp r1, r3
- bge _0811D896
- adds r2, r0, 0
-_0811D882:
- movs r3, 0x80
- lsls r3, 9
- adds r0, r1, r3
- asrs r1, r0, 15
- add r1, r9
- strh r6, [r1]
- adds r1, r0, 0
- asrs r0, r1, 16
- cmp r0, r2
- blt _0811D882
-_0811D896:
- asrs r0, r5, 16
- cmp r4, r5
- ble _0811D8B4
- adds r1, r0, 0
-_0811D89E:
- ldr r2, _0811D8F8
- adds r0, r4, r2
- lsrs r3, r0, 16
- mov r8, r3
- asrs r0, 15
- add r0, r9
- strh r6, [r0]
- lsls r4, r3, 16
- asrs r0, r4, 16
- cmp r0, r1
- bgt _0811D89E
-_0811D8B4:
- mov r0, r8
- lsls r4, r0, 16
- asrs r0, r5, 16
- cmp r4, r5
- bge _0811D8D4
- adds r2, r0, 0
-_0811D8C0:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r4, r1
- asrs r1, r0, 15
- add r1, r9
- strh r6, [r1]
- adds r4, r0, 0
- asrs r0, r4, 16
- cmp r0, r2
- blt _0811D8C0
-_0811D8D4:
- ldr r2, [sp, 0x10]
- movs r3, 0x80
- lsls r3, 9
- adds r0, r2, r3
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0x3F
- bgt _0811D8E6
- b _0811D79C
-_0811D8E6:
- 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
-_0811D8F8: .4byte 0xffff0000
- thumb_func_end sub_811D764
-
- thumb_func_start sub_811D8FC
-sub_811D8FC: @ 811D8FC
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r0, [sp, 0x14]
- ldr r5, [sp, 0x18]
- ldr r4, [sp, 0x1C]
- lsls r1, 16
- lsrs r1, 16
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 16
- lsrs r3, 16
- lsls r0, 16
- lsrs r0, 16
- adds r7, r0, 0
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 16
- lsrs r4, 16
- strh r1, [r6]
- strh r2, [r6, 0x2]
- strh r1, [r6, 0x4]
- strh r2, [r6, 0x6]
- strh r3, [r6, 0x8]
- strh r7, [r6, 0xA]
- strh r5, [r6, 0xC]
- strh r4, [r6, 0xE]
- lsls r3, 16
- asrs r3, 16
- lsls r1, 16
- asrs r1, 16
- subs r3, r1
- strh r3, [r6, 0x10]
- lsls r0, r3, 16
- cmp r0, 0
- bge _0811D94E
- negs r0, r3
- strh r0, [r6, 0x10]
- lsls r0, r5, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r6, 0xC]
-_0811D94E:
- lsls r0, r7, 16
- asrs r0, 16
- lsls r1, r2, 16
- asrs r1, 16
- subs r1, r0, r1
- strh r1, [r6, 0x12]
- lsls r0, r1, 16
- cmp r0, 0
- bge _0811D96C
- negs r0, r1
- strh r0, [r6, 0x12]
- lsls r0, r4, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r6, 0xE]
-_0811D96C:
- movs r0, 0
- strh r0, [r6, 0x14]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_811D8FC
-
- thumb_func_start sub_811D978
-sub_811D978: @ 811D978
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r3, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- ldrh r0, [r3, 0x10]
- mov r8, r0
- movs r1, 0x10
- ldrsh r6, [r3, r1]
- ldrh r2, [r3, 0x12]
- mov r12, r2
- movs r4, 0x12
- ldrsh r5, [r3, r4]
- cmp r6, r5
- ble _0811D9C8
- ldrh r0, [r3, 0xC]
- ldrh r2, [r3, 0x4]
- adds r1, r0, r2
- strh r1, [r3, 0x4]
- ldrh r2, [r3, 0x14]
- add r2, r12
- strh r2, [r3, 0x14]
- lsls r1, r2, 16
- asrs r1, 16
- adds r4, r0, 0
- ldrh r7, [r3, 0xE]
- cmp r1, r6
- ble _0811D9EE
- ldrh r1, [r3, 0x6]
- adds r0, r7, r1
- strh r0, [r3, 0x6]
- mov r1, r8
- b _0811D9EA
-_0811D9C8:
- ldrh r0, [r3, 0xE]
- ldrh r2, [r3, 0x6]
- adds r1, r0, r2
- strh r1, [r3, 0x6]
- ldrh r2, [r3, 0x14]
- add r2, r8
- strh r2, [r3, 0x14]
- lsls r1, r2, 16
- asrs r1, 16
- ldrh r4, [r3, 0xC]
- adds r7, r0, 0
- cmp r1, r5
- ble _0811D9EE
- ldrh r1, [r3, 0x4]
- adds r0, r4, r1
- strh r0, [r3, 0x4]
- mov r1, r12
-_0811D9EA:
- subs r0, r2, r1
- strh r0, [r3, 0x14]
-_0811D9EE:
- movs r5, 0
- lsls r0, r4, 16
- asrs r2, r0, 16
- cmp r2, 0
- ble _0811DA06
- movs r4, 0x4
- ldrsh r1, [r3, r4]
- movs r4, 0x8
- ldrsh r0, [r3, r4]
- ldrh r4, [r3, 0x8]
- cmp r1, r0
- bge _0811DA18
-_0811DA06:
- cmp r2, 0
- bge _0811DA26
- movs r0, 0x4
- ldrsh r1, [r3, r0]
- movs r2, 0x8
- ldrsh r0, [r3, r2]
- ldrh r4, [r3, 0x8]
- cmp r1, r0
- bgt _0811DA26
-_0811DA18:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, r9
- cmp r0, 0
- beq _0811DA26
- strh r4, [r3, 0x4]
-_0811DA26:
- lsls r0, r7, 16
- asrs r2, r0, 16
- cmp r2, 0
- ble _0811DA3C
- movs r4, 0x6
- ldrsh r1, [r3, r4]
- movs r4, 0xA
- ldrsh r0, [r3, r4]
- ldrh r4, [r3, 0xA]
- cmp r1, r0
- bge _0811DA4E
-_0811DA3C:
- cmp r2, 0
- bge _0811DA5C
- movs r0, 0x6
- ldrsh r1, [r3, r0]
- movs r2, 0xA
- ldrsh r0, [r3, r2]
- ldrh r4, [r3, 0xA]
- cmp r1, r0
- bgt _0811DA5C
-_0811DA4E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, r10
- cmp r0, 0
- beq _0811DA5C
- strh r4, [r3, 0x6]
-_0811DA5C:
- cmp r5, 0x2
- beq _0811DA64
- movs r0, 0
- b _0811DA66
-_0811DA64:
- movs r0, 0x1
-_0811DA66:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_811D978
-
- thumb_func_start nullsub_74
-nullsub_74: @ 811DA74
- bx lr
- thumb_func_end nullsub_74
-
- thumb_func_start sub_811DA78
-sub_811DA78: @ 811DA78
- ldr r1, _0811DA88
- ldr r0, _0811DA8C
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811DA90
- str r1, [r0]
- bx lr
- .align 2, 0
-_0811DA88: .4byte gUnknown_03004330
-_0811DA8C: .4byte gUnknown_02024A60
-_0811DA90: .4byte sub_811DA94
- thumb_func_end sub_811DA78
-
- thumb_func_start sub_811DA94
-sub_811DA94: @ 811DA94
- push {lr}
- ldr r2, _0811DAC8
- ldr r1, _0811DACC
- ldr r0, _0811DAD0
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0811DAE0
- ldr r0, _0811DAD4
- lsls r1, r3, 9
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x38
- bhi _0811DADC
- ldr r0, _0811DAD8
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- b _0811DAE0
- .align 2, 0
-_0811DAC8: .4byte gUnknown_02024A64
-_0811DACC: .4byte gBitTable
-_0811DAD0: .4byte gUnknown_02024A60
-_0811DAD4: .4byte gUnknown_02023A60
-_0811DAD8: .4byte gUnknown_083FE4F4
-_0811DADC:
- bl dp01_tbl3_exec_completed
-_0811DAE0:
- pop {r0}
- bx r0
- thumb_func_end sub_811DA94
-
- thumb_func_start sub_811DAE4
-sub_811DAE4: @ 811DAE4
- push {lr}
- ldr r2, _0811DB0C
- ldr r1, _0811DB10
- ldr r0, _0811DB14
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0811DB18
- cmp r1, r0
- bne _0811DB08
- bl dp01_tbl3_exec_completed
-_0811DB08:
- pop {r0}
- bx r0
- .align 2, 0
-_0811DB0C: .4byte gSprites
-_0811DB10: .4byte gUnknown_02024BE0
-_0811DB14: .4byte gUnknown_02024A60
-_0811DB18: .4byte SpriteCallbackDummy
- thumb_func_end sub_811DAE4
-
- thumb_func_start sub_811DB1C
-sub_811DB1C: @ 811DB1C
- push {r4-r6,lr}
- ldr r6, _0811DB74
- ldr r5, _0811DB78
- ldr r4, _0811DB7C
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r6, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, [r0]
- ldr r0, _0811DB80
- cmp r1, r0
- bne _0811DB6C
- movs r0, 0
- bl nullsub_10
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl FreeSpriteOamMatrix
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- bl dp01_tbl3_exec_completed
-_0811DB6C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811DB74: .4byte gSprites
-_0811DB78: .4byte gUnknown_02024BE0
-_0811DB7C: .4byte gUnknown_02024A60
-_0811DB80: .4byte SpriteCallbackDummy
- thumb_func_end sub_811DB1C
-
- thumb_func_start sub_811DB84
-sub_811DB84: @ 811DB84
- push {lr}
- ldr r3, _0811DBB8
- ldrb r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r2, _0811DBBC
- adds r1, r2
- ldrb r0, [r1, 0x9]
- subs r0, 0x1
- strb r0, [r1, 0x9]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0811DBB4
- ldrb r0, [r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0
- strb r0, [r1, 0x9]
- bl dp01_tbl3_exec_completed
-_0811DBB4:
- pop {r0}
- bx r0
- .align 2, 0
-_0811DBB8: .4byte gUnknown_02024A60
-_0811DBBC: .4byte 0x02017810
- thumb_func_end sub_811DB84
-
- thumb_func_start sub_811DBC0
-sub_811DBC0: @ 811DBC0
- push {r4-r6,lr}
- movs r6, 0
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0811DBE4
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0811DC18
- ldr r0, _0811DC04
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0811DC18
-_0811DBE4:
- ldr r2, _0811DC08
- ldr r1, _0811DC0C
- ldr r0, _0811DC10
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0811DC14
- cmp r1, r0
- bne _0811DC50
- b _0811DC4E
- .align 2, 0
-_0811DC04: .4byte gUnknown_020239F8
-_0811DC08: .4byte gSprites
-_0811DC0C: .4byte gUnknown_03004340
-_0811DC10: .4byte gUnknown_02024A60
-_0811DC14: .4byte SpriteCallbackDummy
-_0811DC18:
- ldr r2, _0811DC84
- ldr r5, _0811DC88
- ldr r0, _0811DC8C
- ldrb r3, [r0]
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r2, 0
- adds r4, 0x1C
- adds r0, r4
- ldr r2, [r0]
- ldr r0, _0811DC90
- cmp r2, r0
- bne _0811DC50
- movs r0, 0x2
- eors r3, r0
- adds r0, r3, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- cmp r0, r2
- bne _0811DC50
-_0811DC4E:
- movs r6, 0x1
-_0811DC50:
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- beq _0811DC5C
- movs r6, 0
-_0811DC5C:
- cmp r6, 0
- beq _0811DC7E
- ldr r2, _0811DC8C
- ldrb r1, [r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0811DC94
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x9]
- ldr r1, _0811DC98
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811DC9C
- str r1, [r0]
-_0811DC7E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811DC84: .4byte gSprites
-_0811DC88: .4byte gUnknown_03004340
-_0811DC8C: .4byte gUnknown_02024A60
-_0811DC90: .4byte SpriteCallbackDummy
-_0811DC94: .4byte 0x02017810
-_0811DC98: .4byte gUnknown_03004330
-_0811DC9C: .4byte sub_811DB84
- thumb_func_end sub_811DBC0
-
- thumb_func_start sub_811DCA0
-sub_811DCA0: @ 811DCA0
- push {r4-r7,lr}
- ldr r6, _0811DDBC
- ldrb r2, [r6]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _0811DDC0
- adds r3, r0, r4
- ldrb r1, [r3]
- movs r5, 0x8
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _0811DDB4
- movs r7, 0x2
- adds r1, r7, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- adds r0, r5, 0
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _0811DDB4
- ldrb r0, [r3, 0x9]
- adds r0, 0x1
- strb r0, [r3, 0x9]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0811DDB4
- ldrb r0, [r6]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- strb r2, [r1, 0x9]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _0811DD56
- ldr r0, _0811DDC4
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0811DD56
- ldr r1, _0811DDC8
- ldrb r0, [r6]
- eors r0, r7
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0811DDCC
- adds r0, r1
- bl DestroySprite
- ldr r4, _0811DDD0
- ldrb r0, [r6]
- adds r1, r7, 0
- eors r1, r0
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _0811DDD4
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0811DDD8
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r6]
- eors r0, r7
- bl sub_804777C
- ldrb r0, [r6]
- eors r0, r7
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8043DFC
-_0811DD56:
- ldr r1, _0811DDC8
- ldr r4, _0811DDBC
- ldrb r0, [r4]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0811DDCC
- adds r0, r1
- bl DestroySprite
- ldr r5, _0811DDD0
- ldrb r1, [r4]
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, _0811DDD4
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0811DDD8
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r4]
- bl sub_804777C
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8043DFC
- ldr r2, _0811DDDC
- ldrb r1, [r2, 0x9]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _0811DDE0
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811DDE4
- str r1, [r0]
-_0811DDB4:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811DDBC: .4byte gUnknown_02024A60
-_0811DDC0: .4byte 0x02017810
-_0811DDC4: .4byte gUnknown_020239F8
-_0811DDC8: .4byte gUnknown_0300434C
-_0811DDCC: .4byte gSprites
-_0811DDD0: .4byte gUnknown_03004340
-_0811DDD4: .4byte gUnknown_02024A6A
-_0811DDD8: .4byte gPlayerParty
-_0811DDDC: .4byte 0x02017840
-_0811DDE0: .4byte gUnknown_03004330
-_0811DDE4: .4byte sub_811DBC0
- thumb_func_end sub_811DCA0
-
- thumb_func_start sub_811DDE8
-sub_811DDE8: @ 811DDE8
- push {lr}
- ldr r2, _0811DE1C
- ldr r1, _0811DE20
- ldr r0, _0811DE24
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- 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, 27
- cmp r0, 0
- bge _0811DE16
- movs r2, 0x24
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0811DE16
- bl dp01_tbl3_exec_completed
-_0811DE16:
- pop {r0}
- bx r0
- .align 2, 0
-_0811DE1C: .4byte gSprites
-_0811DE20: .4byte gUnknown_02024BE0
-_0811DE24: .4byte gUnknown_02024A60
- thumb_func_end sub_811DDE8
-
- thumb_func_start bx_t3_healthbar_update
-bx_t3_healthbar_update: @ 811DE28
- push {r4-r6,lr}
- ldr r5, _0811DE68
- ldrb r0, [r5]
- ldr r6, _0811DE6C
- adds r1, r0, r6
- ldrb r1, [r1]
- movs r2, 0
- movs r3, 0
- bl sub_8045C78
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- bl sub_8043DFC
- lsls r4, 16
- asrs r1, r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0811DE70
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- movs r2, 0
- bl sub_80440EC
- b _0811DE8A
- .align 2, 0
-_0811DE68: .4byte gUnknown_02024A60
-_0811DE6C: .4byte gUnknown_03004340
-_0811DE70:
- ldr r2, _0811DE90
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0811DE94
- adds r0, r2
- bl sub_80324F8
- bl dp01_tbl3_exec_completed
-_0811DE8A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811DE90: .4byte gUnknown_02024A6A
-_0811DE94: .4byte gPlayerParty
- thumb_func_end bx_t3_healthbar_update
-
- thumb_func_start sub_811DE98
-sub_811DE98: @ 811DE98
- push {r4-r6,lr}
- ldr r6, _0811DF1C
- ldr r5, _0811DF20
- ldr r4, _0811DF24
- ldrb r2, [r4]
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r3, 0x22
- ldrsh r1, [r0, r3]
- movs r3, 0x26
- ldrsh r0, [r0, r3]
- adds r1, r0
- cmp r1, 0xA0
- ble _0811DF14
- ldr r1, _0811DF28
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0811DF2C
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl nullsub_9
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- ldr r1, _0811DF30
- ldrb r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl3_exec_completed
-_0811DF14:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811DF1C: .4byte gSprites
-_0811DF20: .4byte gUnknown_02024BE0
-_0811DF24: .4byte gUnknown_02024A60
-_0811DF28: .4byte gUnknown_02024A6A
-_0811DF2C: .4byte gPlayerParty
-_0811DF30: .4byte gUnknown_03004340
- thumb_func_end sub_811DE98
-
- thumb_func_start sub_811DF34
-sub_811DF34: @ 811DF34
- push {r4-r6,lr}
- ldr r6, _0811DF8C
- ldrb r2, [r6]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _0811DF90
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0811DF84
- ldr r5, _0811DF94
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0811DF98
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r1, _0811DF9C
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl3_exec_completed
-_0811DF84:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811DF8C: .4byte gUnknown_02024A60
-_0811DF90: .4byte 0x02017810
-_0811DF94: .4byte gUnknown_02024BE0
-_0811DF98: .4byte gSprites
-_0811DF9C: .4byte gUnknown_03004340
- thumb_func_end sub_811DF34
-
- thumb_func_start sub_811DFA0
-sub_811DFA0: @ 811DFA0
- push {lr}
- ldr r0, _0811DFB4
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- bne _0811DFAE
- bl dp01_tbl3_exec_completed
-_0811DFAE:
- pop {r0}
- bx r0
- .align 2, 0
-_0811DFB4: .4byte gUnknown_03004210
- thumb_func_end sub_811DFA0
-
- thumb_func_start bx_blink_t3
-bx_blink_t3: @ 811DFB8
- push {r4,lr}
- ldr r1, _0811DFF4
- ldr r0, _0811DFF8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- ldr r2, _0811DFFC
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x20
- bne _0811E004
- movs r3, 0
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- subs r0, 0x5
- ands r0, r1
- strb r0, [r2]
- ldr r0, _0811E000
- strb r3, [r0]
- bl dp01_tbl3_exec_completed
- b _0811E02E
- .align 2, 0
-_0811DFF4: .4byte gUnknown_02024BE0
-_0811DFF8: .4byte gUnknown_02024A60
-_0811DFFC: .4byte gSprites
-_0811E000: .4byte gUnknown_02024E6D
-_0811E004:
- ldrh r0, [r4, 0x30]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0811E028
- 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]
-_0811E028:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_0811E02E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end bx_blink_t3
-
- thumb_func_start sub_811E034
-sub_811E034: @ 811E034
- push {r4,lr}
- ldr r2, _0811E084
- ldr r0, _0811E088
- ldr r4, _0811E08C
- ldrb r3, [r4]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0811E090
- cmp r1, r0
- bne _0811E07C
- lsls r0, r3, 2
- ldr r1, _0811E094
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0811E070
- adds r0, r3, 0
- adds r1, r3, 0
- adds r2, r3, 0
- movs r3, 0x6
- bl move_anim_start_t4
-_0811E070:
- ldr r0, _0811E098
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, _0811E09C
- str r0, [r1]
-_0811E07C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811E084: .4byte gSprites
-_0811E088: .4byte gUnknown_03004340
-_0811E08C: .4byte gUnknown_02024A60
-_0811E090: .4byte SpriteCallbackDummy
-_0811E094: .4byte 0x02017800
-_0811E098: .4byte gUnknown_03004330
-_0811E09C: .4byte sub_811E0A0
- thumb_func_end sub_811E034
-
- thumb_func_start sub_811E0A0
-sub_811E0A0: @ 811E0A0
- push {lr}
- ldr r0, _0811E0C4
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0811E0C8
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0811E0BE
- bl dp01_tbl3_exec_completed
-_0811E0BE:
- pop {r0}
- bx r0
- .align 2, 0
-_0811E0C4: .4byte gUnknown_02024A60
-_0811E0C8: .4byte 0x02017810
- thumb_func_end sub_811E0A0
-
- thumb_func_start sub_811E0CC
-sub_811E0CC: @ 811E0CC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r7, _0811E190
- ldrb r1, [r7]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _0811E194
- adds r2, r0, r3
- ldrb r1, [r2, 0x1]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0811E186
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r2, [r1, 0x1]
- movs r0, 0x2
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldr r4, _0811E198
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldr r0, _0811E19C
- movs r1, 0xA
- bl CreateTask
- ldr r0, _0811E1A0
- mov r8, r0
- ldrb r1, [r7]
- lsls r0, r1, 1
- add r0, r8
- ldrh r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _0811E1A4
- adds r0, r5
- bl sub_80324F8
- ldr r1, _0811E1A8
- ldrb r0, [r7]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0811E1AC
- adds r0, r1
- movs r1, 0
- bl StartSpriteAnim
- ldr r4, _0811E1B0
- ldrb r1, [r7]
- adds r0, r1, r4
- ldrb r0, [r0]
- lsls r1, 1
- add r1, r8
- ldrh r1, [r1]
- muls r1, r6
- adds r1, r5
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r7]
- bl sub_804777C
- ldrb r0, [r7]
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8043DFC
- ldrb r0, [r7]
- bl sub_8031F88
- ldr r1, _0811E1B4
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811E1B8
- str r1, [r0]
-_0811E186:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811E190: .4byte gUnknown_02024A60
-_0811E194: .4byte 0x02017810
-_0811E198: .4byte 0x000027f9
-_0811E19C: .4byte c3_0802FDF4
-_0811E1A0: .4byte gUnknown_02024A6A
-_0811E1A4: .4byte gPlayerParty
-_0811E1A8: .4byte gUnknown_02024BE0
-_0811E1AC: .4byte gSprites
-_0811E1B0: .4byte gUnknown_03004340
-_0811E1B4: .4byte gUnknown_03004330
-_0811E1B8: .4byte sub_811E034
- thumb_func_end sub_811E0CC
-
- thumb_func_start sub_811E1BC
-sub_811E1BC: @ 811E1BC
- push {r4-r6,lr}
- ldr r4, _0811E234
- ldrb r2, [r4]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- ldr r6, _0811E238
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x88
- ands r0, r1
- cmp r0, 0
- bne _0811E1EA
- ldr r0, _0811E23C
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0811E240
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_0811E1EA:
- ldr r5, _0811E244
- ldr r0, _0811E248
- ldrb r2, [r4]
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r3, r0, 2
- adds r0, r5, 0
- adds r0, 0x1C
- adds r0, r3, r0
- ldr r1, [r0]
- ldr r0, _0811E24C
- cmp r1, r0
- bne _0811E22C
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _0811E22C
- adds r0, r3, r5
- bl DestroySprite
- ldr r1, _0811E250
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811E254
- str r1, [r0]
-_0811E22C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811E234: .4byte gUnknown_02024A60
-_0811E238: .4byte 0x02017810
-_0811E23C: .4byte gUnknown_02024A6A
-_0811E240: .4byte gPlayerParty
-_0811E244: .4byte gSprites
-_0811E248: .4byte gUnknown_0300434C
-_0811E24C: .4byte SpriteCallbackDummy
-_0811E250: .4byte gUnknown_03004330
-_0811E254: .4byte sub_811E0CC
- thumb_func_end sub_811E1BC
-
- thumb_func_start sub_811E258
-sub_811E258: @ 811E258
- push {lr}
- ldr r0, _0811E288
- ldrb r0, [r0]
- cmp r0, 0
- bne _0811E284
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r3, _0811E28C
- ldr r0, _0811E290
- adds r2, r3, r0
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _0811E294
- ldr r0, [r0]
- str r0, [r3]
- ldr r0, _0811E298
- bl SetMainCallback2
-_0811E284:
- pop {r0}
- bx r0
- .align 2, 0
-_0811E288: .4byte gReceivedRemoteLinkPlayers
-_0811E28C: .4byte gMain
-_0811E290: .4byte 0x0000043d
-_0811E294: .4byte gUnknown_030042D0
-_0811E298: .4byte c2_8011A1C
- thumb_func_end sub_811E258
-
- thumb_func_start sub_811E29C
-sub_811E29C: @ 811E29C
- push {lr}
- ldr r0, _0811E2CC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0811E302
- ldr r0, _0811E2D0
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0811E2E0
- bl sub_800832C
- ldr r1, _0811E2D4
- ldr r0, _0811E2D8
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811E2DC
- str r1, [r0]
- b _0811E302
- .align 2, 0
-_0811E2CC: .4byte gPaletteFade
-_0811E2D0: .4byte gUnknown_020239F8
-_0811E2D4: .4byte gUnknown_03004330
-_0811E2D8: .4byte gUnknown_02024A60
-_0811E2DC: .4byte sub_811E258
-_0811E2E0:
- movs r0, 0x5A
- bl m4aSongNumStop
- ldr r2, _0811E308
- ldr r0, _0811E30C
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r0, _0811E310
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r2, 0x8]
- bl SetMainCallback2
-_0811E302:
- pop {r0}
- bx r0
- .align 2, 0
-_0811E308: .4byte gMain
-_0811E30C: .4byte 0x0000043d
-_0811E310: .4byte gUnknown_030042D0
- thumb_func_end sub_811E29C
-
- thumb_func_start dp01_tbl3_exec_completed
-dp01_tbl3_exec_completed: @ 811E314
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _0811E354
- ldr r4, _0811E358
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811E35C
- str r1, [r0]
- ldr r0, _0811E360
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0811E368
- bl GetMultiplayerId
- mov r1, sp
- strb r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- mov r2, sp
- bl dp01_prepare_buffer_wireless_probably
- ldr r1, _0811E364
- ldrb r0, [r4]
- lsls r0, 9
- adds r0, r1
- movs r1, 0x38
- strb r1, [r0]
- b _0811E37A
- .align 2, 0
-_0811E354: .4byte gUnknown_03004330
-_0811E358: .4byte gUnknown_02024A60
-_0811E35C: .4byte sub_811DA94
-_0811E360: .4byte gUnknown_020239F8
-_0811E364: .4byte gUnknown_02023A60
-_0811E368:
- ldr r2, _0811E384
- ldr r1, _0811E388
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
-_0811E37A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0811E384: .4byte gUnknown_02024A64
-_0811E388: .4byte gBitTable
- thumb_func_end dp01_tbl3_exec_completed
-
- thumb_func_start sub_811E38C
-sub_811E38C: @ 811E38C
- push {lr}
- ldr r0, _0811E3B0
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0811E3B4
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0811E3AA
- bl dp01_tbl3_exec_completed
-_0811E3AA:
- pop {r0}
- bx r0
- .align 2, 0
-_0811E3B0: .4byte gUnknown_02024A60
-_0811E3B4: .4byte 0x02017810
- thumb_func_end sub_811E38C
-
- thumb_func_start sub_811E3B8
-sub_811E3B8: @ 811E3B8
- push {lr}
- ldr r0, _0811E3DC
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0811E3E0
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0811E3D6
- bl dp01_tbl3_exec_completed
-_0811E3D6:
- pop {r0}
- bx r0
- .align 2, 0
-_0811E3DC: .4byte gUnknown_02024A60
-_0811E3E0: .4byte 0x02017810
- thumb_func_end sub_811E3B8
-
- thumb_func_start dp01t_00_3_getattr
-dp01t_00_3_getattr: @ 811E3E4
- push {r4-r6,lr}
- sub sp, 0x100
- movs r6, 0
- ldr r1, _0811E410
- ldr r0, _0811E414
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _0811E41C
- ldr r0, _0811E418
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- mov r1, sp
- bl dp01_getattr_by_ch1_for_player_pokemon
- adds r6, r0, 0
- b _0811E43E
- .align 2, 0
-_0811E410: .4byte gUnknown_02023A60
-_0811E414: .4byte gUnknown_02024A60
-_0811E418: .4byte gUnknown_02024A6A
-_0811E41C:
- ldrb r4, [r1]
- movs r5, 0
-_0811E420:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0811E436
- lsls r0, r5, 24
- lsrs r0, 24
- mov r2, sp
- adds r1, r2, r6
- bl dp01_getattr_by_ch1_for_player_pokemon
- adds r6, r0
-_0811E436:
- lsrs r4, 1
- adds r5, 0x1
- cmp r5, 0x5
- ble _0811E420
-_0811E43E:
- lsls r1, r6, 16
- lsrs r1, 16
- movs r0, 0x1
- mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
- bl dp01_tbl3_exec_completed
- add sp, 0x100
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end dp01t_00_3_getattr
-
- thumb_func_start dp01_getattr_by_ch1_for_player_pokemon
-dp01_getattr_by_ch1_for_player_pokemon: @ 811E458
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x90
- adds r7, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- ldr r2, _0811E48C
- ldr r3, _0811E490
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3B
- bls _0811E482
- bl _0811EBEE
-_0811E482:
- lsls r0, 2
- ldr r1, _0811E494
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0811E48C: .4byte gUnknown_02023A60
-_0811E490: .4byte gUnknown_02024A60
-_0811E494: .4byte _0811E498
- .align 2, 0
-_0811E498:
- .4byte _0811E588
- .4byte _0811E7AC
- .4byte _0811E7BC
- .4byte _0811E7CC
- .4byte _0811E834
- .4byte _0811E834
- .4byte _0811E834
- .4byte _0811E834
- .4byte _0811E850
- .4byte _0811E88C
- .4byte _0811E88C
- .4byte _0811E88C
- .4byte _0811E88C
- .4byte _0811EBEE
- .4byte _0811EBEE
- .4byte _0811EBEE
- .4byte _0811EBEE
- .4byte _0811E8A8
- .4byte _0811E8B8
- .4byte _0811E8E8
- .4byte _0811E8F8
- .4byte _0811E908
- .4byte _0811E918
- .4byte _0811E928
- .4byte _0811E938
- .4byte _0811E948
- .4byte _0811E958
- .4byte _0811E968
- .4byte _0811E978
- .4byte _0811E988
- .4byte _0811E998
- .4byte _0811E9A8
- .4byte _0811E9F8
- .4byte _0811EA08
- .4byte _0811EA18
- .4byte _0811EA28
- .4byte _0811EA38
- .4byte _0811EA48
- .4byte _0811EA58
- .4byte _0811EA68
- .4byte _0811EA78
- .4byte _0811EAAC
- .4byte _0811EABC
- .4byte _0811EACC
- .4byte _0811EADC
- .4byte _0811EAEC
- .4byte _0811EAFC
- .4byte _0811EB0C
- .4byte _0811EB1C
- .4byte _0811EB3C
- .4byte _0811EB4C
- .4byte _0811EB5C
- .4byte _0811EB6C
- .4byte _0811EB7C
- .4byte _0811EB8C
- .4byte _0811EB9C
- .4byte _0811EBAC
- .4byte _0811EBBC
- .4byte _0811EBCC
- .4byte _0811EBDC
-_0811E588:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0811E79C
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2E]
- movs r6, 0
- add r0, sp, 0x24
- mov r9, r0
- movs r1, 0x3B
- add r1, sp
- mov r10, r1
- mov r2, sp
- adds r2, 0x2B
- str r2, [sp, 0x80]
- mov r0, sp
- adds r0, 0x2A
- str r0, [sp, 0x7C]
- mov r1, sp
- adds r1, 0x68
- str r1, [sp, 0x8C]
- adds r2, 0x5
- str r2, [sp, 0x84]
- adds r0, 0x12
- str r0, [sp, 0x88]
- mov r8, r4
- add r4, sp, 0xC
-_0811E5D4:
- adds r1, r6, 0
- adds r1, 0xD
- mov r0, r8
- bl GetMonData
- strh r0, [r4]
- adds r1, r6, 0
- adds r1, 0x11
- mov r0, r8
- bl GetMonData
- mov r2, r9
- adds r1, r2, r6
- strb r0, [r1]
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _0811E5D4
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0811E79C
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl GetMonData
- mov r1, r10
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- ldr r2, [sp, 0x80]
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x19
- bl GetMonData
- str r0, [sp, 0x44]
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- mov r3, sp
- movs r5, 0x1F
- ands r0, r5
- ldrb r2, [r3, 0x14]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- mov r3, sp
- movs r6, 0x1F
- ands r0, r6
- lsls r0, 5
- ldrh r2, [r3, 0x14]
- ldr r1, _0811E7A0
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 2
- ldrb r2, [r3, 0x15]
- movs r1, 0x7D
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x15]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- movs r1, 0x1F
- ands r1, r0
- lsls r1, 15
- ldr r0, [sp, 0x14]
- ldr r2, _0811E7A4
- ands r0, r2
- orrs r0, r1
- str r0, [sp, 0x14]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- mov r3, sp
- ands r0, r6
- lsls r0, 4
- ldrh r2, [r3, 0x16]
- ldr r1, _0811E7A8
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x16]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 1
- ldrb r2, [r3, 0x17]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x48]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- str r0, [sp, 0x4C]
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- ldr r1, [sp, 0x7C]
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x28]
- adds r0, r4, 0
- movs r1, 0x3A
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2C]
- adds r0, r4, 0
- movs r1, 0x3B
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2]
- adds r0, r4, 0
- movs r1, 0x3C
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- movs r1, 0x3D
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x6]
- adds r0, r4, 0
- movs r1, 0x3E
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- movs r1, 0x3F
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0xA]
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- mov r3, sp
- movs r1, 0x1
- ands r0, r1
- lsls r0, 6
- ldrb r2, [r3, 0x17]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- mov r3, sp
- lsls r0, 7
- ldrb r2, [r3, 0x17]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- str r0, [sp, 0x54]
- adds r0, r4, 0
- movs r1, 0x2
- ldr r2, [sp, 0x8C]
- bl GetMonData
- ldr r0, [sp, 0x84]
- ldr r1, [sp, 0x8C]
- bl StringCopy10
- adds r0, r4, 0
- movs r1, 0x7
- ldr r2, [sp, 0x88]
- bl GetMonData
- mov r2, sp
- movs r6, 0
-_0811E78C:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0x57
- bls _0811E78C
- b _0811EBEE
- .align 2, 0
-_0811E79C: .4byte gPlayerParty
-_0811E7A0: .4byte 0xfffffc1f
-_0811E7A4: .4byte 0xfff07fff
-_0811E7A8: .4byte 0xfffffe0f
-_0811E7AC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E7B8
- adds r0, r1
- movs r1, 0xB
- b _0811EB26
- .align 2, 0
-_0811E7B8: .4byte gPlayerParty
-_0811E7BC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E7C8
- adds r0, r1
- movs r1, 0xC
- b _0811EB26
- .align 2, 0
-_0811E7C8: .4byte gPlayerParty
-_0811E7CC:
- movs r6, 0
- add r2, sp, 0x58
- mov r9, r2
- add r0, sp, 0x60
- mov r10, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0811E830
- adds r4, r1, r0
- mov r8, r9
-_0811E7E2:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r4, 0
- bl GetMonData
- mov r1, r8
- strh r0, [r1]
- adds r1, r6, 0
- adds r1, 0x11
- adds r0, r4, 0
- bl GetMonData
- mov r2, r10
- adds r1, r2, r6
- strb r0, [r1]
- movs r0, 0x2
- add r8, r0
- adds r6, 0x1
- cmp r6, 0x3
- ble _0811E7E2
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E830
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- mov r1, r9
- strb r0, [r1, 0xC]
- mov r2, r9
- movs r6, 0
-_0811E820:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0xF
- bls _0811E820
- b _0811EBEE
- .align 2, 0
-_0811E830: .4byte gPlayerParty
-_0811E834:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E84C
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x9
- b _0811EB26
- .align 2, 0
-_0811E84C: .4byte gPlayerParty
-_0811E850:
- movs r6, 0
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r2, _0811E888
- mov r8, r2
-_0811E85C:
- adds r1, r6, 0
- adds r1, 0x11
- mov r2, r8
- adds r0, r4, r2
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- cmp r6, 0x3
- ble _0811E85C
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E888
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- b _0811EBEE
- .align 2, 0
-_0811E888: .4byte gPlayerParty
-_0811E88C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E8A4
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x8
- b _0811EBE6
- .align 2, 0
-_0811E8A4: .4byte gPlayerParty
-_0811E8A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E8B4
- adds r0, r1
- movs r1, 0x1
- b _0811E8C2
- .align 2, 0
-_0811E8B4: .4byte gPlayerParty
-_0811E8B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E8E4
- adds r0, r1
- movs r1, 0x19
-_0811E8C2:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- movs r6, 0x3
- b _0811EBEE
- .align 2, 0
-_0811E8E4: .4byte gPlayerParty
-_0811E8E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E8F4
- adds r0, r1
- movs r1, 0x1A
- b _0811EBE6
- .align 2, 0
-_0811E8F4: .4byte gPlayerParty
-_0811E8F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E904
- adds r0, r1
- movs r1, 0x1B
- b _0811EBE6
- .align 2, 0
-_0811E904: .4byte gPlayerParty
-_0811E908:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E914
- adds r0, r1
- movs r1, 0x1C
- b _0811EBE6
- .align 2, 0
-_0811E914: .4byte gPlayerParty
-_0811E918:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E924
- adds r0, r1
- movs r1, 0x1D
- b _0811EBE6
- .align 2, 0
-_0811E924: .4byte gPlayerParty
-_0811E928:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E934
- adds r0, r1
- movs r1, 0x1E
- b _0811EBE6
- .align 2, 0
-_0811E934: .4byte gPlayerParty
-_0811E938:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E944
- adds r0, r1
- movs r1, 0x1F
- b _0811EBE6
- .align 2, 0
-_0811E944: .4byte gPlayerParty
-_0811E948:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E954
- adds r0, r1
- movs r1, 0x20
- b _0811EBE6
- .align 2, 0
-_0811E954: .4byte gPlayerParty
-_0811E958:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E964
- adds r0, r1
- movs r1, 0x22
- b _0811EBE6
- .align 2, 0
-_0811E964: .4byte gPlayerParty
-_0811E968:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E974
- adds r0, r1
- movs r1, 0x23
- b _0811EBE6
- .align 2, 0
-_0811E974: .4byte gPlayerParty
-_0811E978:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E984
- adds r0, r1
- movs r1, 0x24
- b _0811EBE6
- .align 2, 0
-_0811E984: .4byte gPlayerParty
-_0811E988:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E994
- adds r0, r1
- movs r1, 0x25
- b _0811EBE6
- .align 2, 0
-_0811E994: .4byte gPlayerParty
-_0811E998:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811E9A4
- adds r0, r1
- movs r1, 0x26
- b _0811EBE6
- .align 2, 0
-_0811E9A4: .4byte gPlayerParty
-_0811E9A8:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0811E9F4
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- strb r0, [r7]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- strb r0, [r7, 0x1]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- strb r0, [r7, 0x2]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- strb r0, [r7, 0x3]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- strb r0, [r7, 0x4]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- strb r0, [r7, 0x5]
- movs r6, 0x6
- b _0811EBEE
- .align 2, 0
-_0811E9F4: .4byte gPlayerParty
-_0811E9F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EA04
- adds r0, r1
- movs r1, 0x27
- b _0811EBE6
- .align 2, 0
-_0811EA04: .4byte gPlayerParty
-_0811EA08:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EA14
- adds r0, r1
- movs r1, 0x28
- b _0811EBE6
- .align 2, 0
-_0811EA14: .4byte gPlayerParty
-_0811EA18:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EA24
- adds r0, r1
- movs r1, 0x29
- b _0811EBE6
- .align 2, 0
-_0811EA24: .4byte gPlayerParty
-_0811EA28:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EA34
- adds r0, r1
- movs r1, 0x2A
- b _0811EBE6
- .align 2, 0
-_0811EA34: .4byte gPlayerParty
-_0811EA38:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EA44
- adds r0, r1
- movs r1, 0x2B
- b _0811EBE6
- .align 2, 0
-_0811EA44: .4byte gPlayerParty
-_0811EA48:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EA54
- adds r0, r1
- movs r1, 0x2C
- b _0811EBE6
- .align 2, 0
-_0811EA54: .4byte gPlayerParty
-_0811EA58:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EA64
- adds r0, r1
- movs r1, 0
- b _0811EA82
- .align 2, 0
-_0811EA64: .4byte gPlayerParty
-_0811EA68:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EA74
- adds r0, r1
- movs r1, 0x9
- b _0811EB26
- .align 2, 0
-_0811EA74: .4byte gPlayerParty
-_0811EA78:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EAA8
- adds r0, r1
- movs r1, 0x37
-_0811EA82:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- lsrs r0, r1, 24
- strb r0, [r7, 0x3]
- movs r6, 0x4
- b _0811EBEE
- .align 2, 0
-_0811EAA8: .4byte gPlayerParty
-_0811EAAC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EAB8
- adds r0, r1
- movs r1, 0x38
- b _0811EBE6
- .align 2, 0
-_0811EAB8: .4byte gPlayerParty
-_0811EABC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EAC8
- adds r0, r1
- movs r1, 0x39
- b _0811EB26
- .align 2, 0
-_0811EAC8: .4byte gPlayerParty
-_0811EACC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EAD8
- adds r0, r1
- movs r1, 0x3A
- b _0811EB26
- .align 2, 0
-_0811EAD8: .4byte gPlayerParty
-_0811EADC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EAE8
- adds r0, r1
- movs r1, 0x3B
- b _0811EB26
- .align 2, 0
-_0811EAE8: .4byte gPlayerParty
-_0811EAEC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EAF8
- adds r0, r1
- movs r1, 0x3C
- b _0811EB26
- .align 2, 0
-_0811EAF8: .4byte gPlayerParty
-_0811EAFC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EB08
- adds r0, r1
- movs r1, 0x3D
- b _0811EB26
- .align 2, 0
-_0811EB08: .4byte gPlayerParty
-_0811EB0C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EB18
- adds r0, r1
- movs r1, 0x3E
- b _0811EB26
- .align 2, 0
-_0811EB18: .4byte gPlayerParty
-_0811EB1C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EB38
- adds r0, r1
- movs r1, 0x3F
-_0811EB26:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- strb r0, [r7]
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r6, 0x2
- b _0811EBEE
- .align 2, 0
-_0811EB38: .4byte gPlayerParty
-_0811EB3C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EB48
- adds r0, r1
- movs r1, 0x16
- b _0811EBE6
- .align 2, 0
-_0811EB48: .4byte gPlayerParty
-_0811EB4C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EB58
- adds r0, r1
- movs r1, 0x17
- b _0811EBE6
- .align 2, 0
-_0811EB58: .4byte gPlayerParty
-_0811EB5C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EB68
- adds r0, r1
- movs r1, 0x18
- b _0811EBE6
- .align 2, 0
-_0811EB68: .4byte gPlayerParty
-_0811EB6C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EB78
- adds r0, r1
- movs r1, 0x21
- b _0811EBE6
- .align 2, 0
-_0811EB78: .4byte gPlayerParty
-_0811EB7C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EB88
- adds r0, r1
- movs r1, 0x2F
- b _0811EBE6
- .align 2, 0
-_0811EB88: .4byte gPlayerParty
-_0811EB8C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EB98
- adds r0, r1
- movs r1, 0x30
- b _0811EBE6
- .align 2, 0
-_0811EB98: .4byte gPlayerParty
-_0811EB9C:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EBA8
- adds r0, r1
- movs r1, 0x32
- b _0811EBE6
- .align 2, 0
-_0811EBA8: .4byte gPlayerParty
-_0811EBAC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EBB8
- adds r0, r1
- movs r1, 0x33
- b _0811EBE6
- .align 2, 0
-_0811EBB8: .4byte gPlayerParty
-_0811EBBC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EBC8
- adds r0, r1
- movs r1, 0x34
- b _0811EBE6
- .align 2, 0
-_0811EBC8: .4byte gPlayerParty
-_0811EBCC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EBD8
- adds r0, r1
- movs r1, 0x35
- b _0811EBE6
- .align 2, 0
-_0811EBD8: .4byte gPlayerParty
-_0811EBDC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EC00
- adds r0, r1
- movs r1, 0x36
-_0811EBE6:
- bl GetMonData
- strb r0, [r7]
- movs r6, 0x1
-_0811EBEE:
- adds r0, r6, 0
- add sp, 0x90
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0811EC00: .4byte gPlayerParty
- thumb_func_end dp01_getattr_by_ch1_for_player_pokemon
-
- thumb_func_start sub_811EC04
-sub_811EC04: @ 811EC04
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_811EC04
-
- thumb_func_start sub_811EC10
-sub_811EC10: @ 811EC10
- push {r4,r5,lr}
- ldr r1, _0811EC34
- ldr r0, _0811EC38
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _0811EC40
- ldr r0, _0811EC3C
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- bl sub_811EC68
- b _0811EC5E
- .align 2, 0
-_0811EC34: .4byte gUnknown_02023A60
-_0811EC38: .4byte gUnknown_02024A60
-_0811EC3C: .4byte gUnknown_02024A6A
-_0811EC40:
- ldrb r4, [r1]
- movs r5, 0
-_0811EC44:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0811EC52
- adds r0, r5, 0
- bl sub_811EC68
-_0811EC52:
- lsrs r4, 1
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _0811EC44
-_0811EC5E:
- bl dp01_tbl3_exec_completed
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_811EC10
-
- thumb_func_start sub_811EC68
-sub_811EC68: @ 811EC68
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0811ECA0
- ldrb r0, [r0]
- lsls r0, 9
- ldr r2, _0811ECA4
- adds r3, r0, r2
- adds r6, r3, 0
- subs r1, r2, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r7, r2, 0
- cmp r0, 0x3B
- bls _0811EC94
- bl _0811F62E
-_0811EC94:
- lsls r0, 2
- ldr r1, _0811ECA8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0811ECA0: .4byte gUnknown_02024A60
-_0811ECA4: .4byte gUnknown_02023A63
-_0811ECA8: .4byte _0811ECAC
- .align 2, 0
-_0811ECAC:
- .4byte _0811ED9C
- .4byte _0811EF34
- .4byte _0811EF54
- .4byte _0811EF74
- .4byte _0811EFCC
- .4byte _0811EFCC
- .4byte _0811EFCC
- .4byte _0811EFCC
- .4byte _0811EFF4
- .4byte _0811F058
- .4byte _0811F058
- .4byte _0811F058
- .4byte _0811F058
- .4byte _0811F62E
- .4byte _0811F62E
- .4byte _0811F62E
- .4byte _0811F62E
- .4byte _0811F088
- .4byte _0811F0A8
- .4byte _0811F0C8
- .4byte _0811F0E8
- .4byte _0811F108
- .4byte _0811F128
- .4byte _0811F148
- .4byte _0811F168
- .4byte _0811F188
- .4byte _0811F1A8
- .4byte _0811F1C8
- .4byte _0811F1E8
- .4byte _0811F208
- .4byte _0811F228
- .4byte _0811F248
- .4byte _0811F2B8
- .4byte _0811F2D8
- .4byte _0811F2F8
- .4byte _0811F318
- .4byte _0811F338
- .4byte _0811F358
- .4byte _0811F378
- .4byte _0811F398
- .4byte _0811F3B8
- .4byte _0811F3D8
- .4byte _0811F3F8
- .4byte _0811F418
- .4byte _0811F438
- .4byte _0811F458
- .4byte _0811F478
- .4byte _0811F498
- .4byte _0811F4B8
- .4byte _0811F4D8
- .4byte _0811F4F8
- .4byte _0811F518
- .4byte _0811F538
- .4byte _0811F558
- .4byte _0811F578
- .4byte _0811F598
- .4byte _0811F5B8
- .4byte _0811F5D8
- .4byte _0811F5F8
- .4byte _0811F618
-_0811ED9C:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0811EF30
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- adds r2, r6, 0
- bl SetMonData
- adds r2, r6, 0
- adds r2, 0x2E
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- movs r0, 0
- mov r8, r0
- movs r0, 0x3B
- adds r0, r6
- mov r10, r0
- adds r0, r6, 0
- adds r0, 0x2B
- str r0, [sp, 0x20]
- adds r0, 0x19
- str r0, [sp, 0x28]
- adds r0, 0x4
- str r0, [sp, 0x2C]
- adds r0, 0x4
- str r0, [sp, 0x30]
- subs r0, 0x22
- str r0, [sp, 0x1C]
- subs r0, 0x2
- str r0, [sp, 0x18]
- adds r0, 0x4
- str r0, [sp, 0x24]
- adds r0, r6, 0x2
- str r0, [sp, 0x4]
- adds r0, r6, 0x4
- str r0, [sp, 0x8]
- adds r0, r6, 0x6
- str r0, [sp, 0xC]
- adds r0, 0x2
- str r0, [sp, 0x10]
- adds r0, 0x2
- str r0, [sp, 0x14]
- mov r9, r4
- adds r7, r6, 0
- adds r7, 0x24
- adds r4, r6, 0
- adds r4, 0xC
-_0811EE02:
- mov r1, r8
- adds r1, 0xD
- mov r0, r9
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- mov r0, r9
- adds r2, r7, 0
- bl SetMonData
- adds r7, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _0811EE02
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0811EF30
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- mov r2, r10
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x20
- ldr r2, [sp, 0x20]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x19
- ldr r2, [sp, 0x28]
- bl SetMonData
- ldrb r0, [r6, 0x14]
- lsls r0, 27
- lsrs r0, 27
- mov r1, sp
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x27
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r6, 0x14]
- lsls r0, 22
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x28
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r6, 0x15]
- lsls r0, 25
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x29
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldr r0, [r6, 0x14]
- lsls r0, 12
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2A
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r6, 0x16]
- lsls r0, 23
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2B
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r6, 0x17]
- lsls r0, 26
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2C
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0
- ldr r2, [sp, 0x2C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x37
- ldr r2, [sp, 0x30]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x38
- ldr r2, [sp, 0x1C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x39
- ldr r2, [sp, 0x18]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3A
- ldr r2, [sp, 0x24]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3B
- ldr r2, [sp, 0x4]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3C
- ldr r2, [sp, 0x8]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3D
- ldr r2, [sp, 0xC]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3E
- ldr r2, [sp, 0x10]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3F
- ldr r2, [sp, 0x14]
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811EF30: .4byte gPlayerParty
-_0811EF34:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EF4C
- adds r0, r1
- ldr r1, _0811EF50
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0xB
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811EF4C: .4byte gPlayerParty
-_0811EF50: .4byte gUnknown_02024A60
-_0811EF54:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EF6C
- adds r0, r1
- ldr r1, _0811EF70
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0xC
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811EF6C: .4byte gPlayerParty
-_0811EF70: .4byte gUnknown_02024A60
-_0811EF74:
- movs r0, 0
- mov r8, r0
- movs r0, 0xC
- adds r0, r3
- mov r9, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0811EFC8
- adds r7, r1, r0
- adds r6, r3, 0
- adds r6, 0x8
- adds r4, r3, 0
-_0811EF8E:
- mov r1, r8
- adds r1, 0xD
- adds r0, r7, 0
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- adds r0, r7, 0
- adds r2, r6, 0
- bl SetMonData
- adds r6, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _0811EF8E
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EFC8
- adds r0, r1
- movs r1, 0x15
- mov r2, r9
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811EFC8: .4byte gPlayerParty
-_0811EFCC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811EFE8
- adds r0, r1
- ldr r3, _0811EFEC
- ldr r1, _0811EFF0
- ldrb r2, [r1]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x9
- b _0811F070
- .align 2, 0
-_0811EFE8: .4byte gPlayerParty
-_0811EFEC: .4byte gUnknown_02023A60
-_0811EFF0: .4byte gUnknown_02024A60
-_0811EFF4:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0811F050
- adds r4, r0
- ldr r5, _0811F054
- ldrb r2, [r5]
- lsls r2, 9
- adds r2, r7
- adds r0, r4, 0
- movs r1, 0x11
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x12
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x13
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x14
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F050: .4byte gPlayerParty
-_0811F054: .4byte gUnknown_02024A60
-_0811F058:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F07C
- adds r0, r1
- ldr r3, _0811F080
- ldr r1, _0811F084
- ldrb r2, [r1]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x8
-_0811F070:
- adds r3, 0x3
- adds r2, r3
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F07C: .4byte gPlayerParty
-_0811F080: .4byte gUnknown_02023A60
-_0811F084: .4byte gUnknown_02024A60
-_0811F088:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F0A0
- adds r0, r1
- ldr r1, _0811F0A4
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F0A0: .4byte gPlayerParty
-_0811F0A4: .4byte gUnknown_02024A60
-_0811F0A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F0C0
- adds r0, r1
- ldr r1, _0811F0C4
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x19
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F0C0: .4byte gPlayerParty
-_0811F0C4: .4byte gUnknown_02024A60
-_0811F0C8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F0E0
- adds r0, r1
- ldr r1, _0811F0E4
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1A
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F0E0: .4byte gPlayerParty
-_0811F0E4: .4byte gUnknown_02024A60
-_0811F0E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F100
- adds r0, r1
- ldr r1, _0811F104
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1B
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F100: .4byte gPlayerParty
-_0811F104: .4byte gUnknown_02024A60
-_0811F108:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F120
- adds r0, r1
- ldr r1, _0811F124
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1C
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F120: .4byte gPlayerParty
-_0811F124: .4byte gUnknown_02024A60
-_0811F128:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F140
- adds r0, r1
- ldr r1, _0811F144
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1D
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F140: .4byte gPlayerParty
-_0811F144: .4byte gUnknown_02024A60
-_0811F148:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F160
- adds r0, r1
- ldr r1, _0811F164
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1E
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F160: .4byte gPlayerParty
-_0811F164: .4byte gUnknown_02024A60
-_0811F168:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F180
- adds r0, r1
- ldr r1, _0811F184
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1F
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F180: .4byte gPlayerParty
-_0811F184: .4byte gUnknown_02024A60
-_0811F188:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F1A0
- adds r0, r1
- ldr r1, _0811F1A4
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x20
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F1A0: .4byte gPlayerParty
-_0811F1A4: .4byte gUnknown_02024A60
-_0811F1A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F1C0
- adds r0, r1
- ldr r1, _0811F1C4
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x22
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F1C0: .4byte gPlayerParty
-_0811F1C4: .4byte gUnknown_02024A60
-_0811F1C8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F1E0
- adds r0, r1
- ldr r1, _0811F1E4
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x23
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F1E0: .4byte gPlayerParty
-_0811F1E4: .4byte gUnknown_02024A60
-_0811F1E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F200
- adds r0, r1
- ldr r1, _0811F204
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x24
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F200: .4byte gPlayerParty
-_0811F204: .4byte gUnknown_02024A60
-_0811F208:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F220
- adds r0, r1
- ldr r1, _0811F224
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x25
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F220: .4byte gPlayerParty
-_0811F224: .4byte gUnknown_02024A60
-_0811F228:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F240
- adds r0, r1
- ldr r1, _0811F244
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x26
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F240: .4byte gPlayerParty
-_0811F244: .4byte gUnknown_02024A60
-_0811F248:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0811F2B0
- adds r4, r0
- ldr r5, _0811F2B4
- ldrb r2, [r5]
- lsls r2, 9
- adds r2, r7
- adds r0, r4, 0
- movs r1, 0x27
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x28
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x29
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2A
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2B
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x5
- adds r2, r0
- adds r0, r4, 0
- b _0811F368
- .align 2, 0
-_0811F2B0: .4byte gPlayerParty
-_0811F2B4: .4byte gUnknown_02024A60
-_0811F2B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F2D0
- adds r0, r1
- ldr r1, _0811F2D4
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x27
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F2D0: .4byte gPlayerParty
-_0811F2D4: .4byte gUnknown_02024A60
-_0811F2D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F2F0
- adds r0, r1
- ldr r1, _0811F2F4
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x28
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F2F0: .4byte gPlayerParty
-_0811F2F4: .4byte gUnknown_02024A60
-_0811F2F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F310
- adds r0, r1
- ldr r1, _0811F314
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x29
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F310: .4byte gPlayerParty
-_0811F314: .4byte gUnknown_02024A60
-_0811F318:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F330
- adds r0, r1
- ldr r1, _0811F334
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2A
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F330: .4byte gPlayerParty
-_0811F334: .4byte gUnknown_02024A60
-_0811F338:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F350
- adds r0, r1
- ldr r1, _0811F354
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2B
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F350: .4byte gPlayerParty
-_0811F354: .4byte gUnknown_02024A60
-_0811F358:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F370
- adds r0, r1
- ldr r1, _0811F374
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
-_0811F368:
- movs r1, 0x2C
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F370: .4byte gPlayerParty
-_0811F374: .4byte gUnknown_02024A60
-_0811F378:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F390
- adds r0, r1
- ldr r1, _0811F394
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F390: .4byte gPlayerParty
-_0811F394: .4byte gUnknown_02024A60
-_0811F398:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F3B0
- adds r0, r1
- ldr r1, _0811F3B4
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x9
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F3B0: .4byte gPlayerParty
-_0811F3B4: .4byte gUnknown_02024A60
-_0811F3B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F3D0
- adds r0, r1
- ldr r1, _0811F3D4
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x37
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F3D0: .4byte gPlayerParty
-_0811F3D4: .4byte gUnknown_02024A60
-_0811F3D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F3F0
- adds r0, r1
- ldr r1, _0811F3F4
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x38
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F3F0: .4byte gPlayerParty
-_0811F3F4: .4byte gUnknown_02024A60
-_0811F3F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F410
- adds r0, r1
- ldr r1, _0811F414
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x39
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F410: .4byte gPlayerParty
-_0811F414: .4byte gUnknown_02024A60
-_0811F418:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F430
- adds r0, r1
- ldr r1, _0811F434
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3A
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F430: .4byte gPlayerParty
-_0811F434: .4byte gUnknown_02024A60
-_0811F438:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F450
- adds r0, r1
- ldr r1, _0811F454
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3B
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F450: .4byte gPlayerParty
-_0811F454: .4byte gUnknown_02024A60
-_0811F458:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F470
- adds r0, r1
- ldr r1, _0811F474
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3C
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F470: .4byte gPlayerParty
-_0811F474: .4byte gUnknown_02024A60
-_0811F478:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F490
- adds r0, r1
- ldr r1, _0811F494
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3D
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F490: .4byte gPlayerParty
-_0811F494: .4byte gUnknown_02024A60
-_0811F498:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F4B0
- adds r0, r1
- ldr r1, _0811F4B4
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3E
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F4B0: .4byte gPlayerParty
-_0811F4B4: .4byte gUnknown_02024A60
-_0811F4B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F4D0
- adds r0, r1
- ldr r1, _0811F4D4
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3F
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F4D0: .4byte gPlayerParty
-_0811F4D4: .4byte gUnknown_02024A60
-_0811F4D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F4F0
- adds r0, r1
- ldr r1, _0811F4F4
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x16
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F4F0: .4byte gPlayerParty
-_0811F4F4: .4byte gUnknown_02024A60
-_0811F4F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F510
- adds r0, r1
- ldr r1, _0811F514
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x17
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F510: .4byte gPlayerParty
-_0811F514: .4byte gUnknown_02024A60
-_0811F518:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F530
- adds r0, r1
- ldr r1, _0811F534
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x18
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F530: .4byte gPlayerParty
-_0811F534: .4byte gUnknown_02024A60
-_0811F538:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F550
- adds r0, r1
- ldr r1, _0811F554
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x21
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F550: .4byte gPlayerParty
-_0811F554: .4byte gUnknown_02024A60
-_0811F558:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F570
- adds r0, r1
- ldr r1, _0811F574
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2F
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F570: .4byte gPlayerParty
-_0811F574: .4byte gUnknown_02024A60
-_0811F578:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F590
- adds r0, r1
- ldr r1, _0811F594
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x30
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F590: .4byte gPlayerParty
-_0811F594: .4byte gUnknown_02024A60
-_0811F598:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F5B0
- adds r0, r1
- ldr r1, _0811F5B4
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x32
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F5B0: .4byte gPlayerParty
-_0811F5B4: .4byte gUnknown_02024A60
-_0811F5B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F5D0
- adds r0, r1
- ldr r1, _0811F5D4
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x33
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F5D0: .4byte gPlayerParty
-_0811F5D4: .4byte gUnknown_02024A60
-_0811F5D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F5F0
- adds r0, r1
- ldr r1, _0811F5F4
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x34
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F5F0: .4byte gPlayerParty
-_0811F5F4: .4byte gUnknown_02024A60
-_0811F5F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F610
- adds r0, r1
- ldr r1, _0811F614
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x35
- bl SetMonData
- b _0811F62E
- .align 2, 0
-_0811F610: .4byte gPlayerParty
-_0811F614: .4byte gUnknown_02024A60
-_0811F618:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0811F658
- adds r0, r1
- ldr r1, _0811F65C
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x36
- bl SetMonData
-_0811F62E:
- ldr r2, _0811F660
- ldr r0, _0811F65C
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0811F658
- adds r0, r2
- bl sub_80324F8
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811F658: .4byte gPlayerParty
-_0811F65C: .4byte gUnknown_02024A60
-_0811F660: .4byte gUnknown_02024A6A
- thumb_func_end sub_811EC68
-
- thumb_func_start sub_811F664
-sub_811F664: @ 811F664
- push {r4-r7,lr}
- ldr r1, _0811F6C8
- ldr r7, _0811F6CC
- ldrb r2, [r7]
- lsls r0, r2, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- adds r3, r1, 0
- muls r3, r0
- ldr r4, _0811F6D0
- lsls r2, 9
- adds r0, r4, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- ldr r1, _0811F6D4
- adds r0, r1
- adds r5, r3, r0
- movs r3, 0
- adds r0, r4, 0x2
- adds r2, r0
- ldrb r2, [r2]
- cmp r3, r2
- bcs _0811F6BC
- adds r6, r4, 0
- adds r2, r7, 0
- adds r4, r0, 0
-_0811F69A:
- adds r1, r5, r3
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, 0x3
- adds r0, r3, r0
- adds r0, r6
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r2]
- lsls r0, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r3, r0
- bcc _0811F69A
-_0811F6BC:
- bl dp01_tbl3_exec_completed
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0811F6C8: .4byte gUnknown_02024A6A
-_0811F6CC: .4byte gUnknown_02024A60
-_0811F6D0: .4byte gUnknown_02023A60
-_0811F6D4: .4byte gPlayerParty
- thumb_func_end sub_811F664
-
- thumb_func_start sub_811F6D8
-sub_811F6D8: @ 811F6D8
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, _0811F7CC
- mov r8, r0
- ldr r6, _0811F7D0
- ldrb r1, [r6]
- lsls r0, r1, 1
- add r0, r8
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _0811F7D4
- adds r0, r4
- bl sub_80318FC
- ldrb r0, [r6]
- lsls r0, 1
- add r0, r8
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r4
- movs r1, 0xB
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r6]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _0811F7D8
- mov r8, r0
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldrb r0, [r6]
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r6]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _0811F7DC
- ldrb r1, [r6]
- adds r1, r4
- strb r0, [r1]
- ldr r5, _0811F7E0
- ldrb r0, [r6]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0811F7E4
- strh r1, [r0, 0x24]
- ldrb r2, [r6]
- adds r0, r2, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x2E]
- ldrb r3, [r6]
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r2, [r6]
- adds r4, r2, r4
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0811F7E8
- adds r2, r1
- ldrb r1, [r2]
- bl StartSpriteAnim
- ldr r1, _0811F7EC
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811F7F0
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811F7CC: .4byte gUnknown_02024A6A
-_0811F7D0: .4byte gUnknown_02024A60
-_0811F7D4: .4byte gPlayerParty
-_0811F7D8: .4byte gUnknown_02024E8C
-_0811F7DC: .4byte gUnknown_02024BE0
-_0811F7E0: .4byte gSprites
-_0811F7E4: .4byte 0x0000ff10
-_0811F7E8: .4byte gUnknown_02024E84
-_0811F7EC: .4byte gUnknown_03004330
-_0811F7F0: .4byte sub_811DDE8
- thumb_func_end sub_811F6D8
-
- thumb_func_start sub_811F7F4
-sub_811F7F4: @ 811F7F4
- push {r4-r6,lr}
- ldr r5, _0811F84C
- ldrb r0, [r5]
- ldr r4, _0811F850
- lsls r1, r0, 9
- adds r6, r4, 0x2
- adds r1, r6
- ldrb r1, [r1]
- bl sub_8032AA8
- ldr r2, _0811F854
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r2
- lsls r0, 9
- adds r4, 0x1
- adds r0, r4
- ldrb r0, [r0]
- strh r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0811F858
- adds r0, r2
- bl sub_80318FC
- ldrb r0, [r5]
- lsls r1, r0, 9
- adds r1, r6
- ldrb r1, [r1]
- bl sub_811F864
- ldr r1, _0811F85C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811F860
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811F84C: .4byte gUnknown_02024A60
-_0811F850: .4byte gUnknown_02023A60
-_0811F854: .4byte gUnknown_02024A6A
-_0811F858: .4byte gPlayerParty
-_0811F85C: .4byte gUnknown_03004330
-_0811F860: .4byte sub_811E1BC
- thumb_func_end sub_811F7F4
-
- thumb_func_start sub_811F864
-sub_811F864: @ 811F864
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8032AA8
- ldr r0, _0811F9A8
- lsls r2, r6, 1
- adds r2, r0
- ldr r0, _0811F9AC
- lsls r1, r6, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- strh r0, [r2]
- ldrh r1, [r2]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0811F9B0
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _0811F9B4
- bl object_new_hidden_with_callback
- ldr r1, _0811F9B8
- mov r9, r1
- add r9, r6
- mov r1, r9
- strb r0, [r1]
- adds r0, r6, 0
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _0811F9BC
- mov r10, r0
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r10
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _0811F9C0
- adds r4, r6, r4
- strb r0, [r4]
- ldr r5, _0811F9C4
- mov r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r4]
- strh r1, [r0, 0x30]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x2E]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, r6, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0811F9C8
- adds r6, r1
- ldrb r1, [r6]
- bl StartSpriteAnim
- ldrb r1, [r4]
- 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]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0811F9CC
- str r1, [r0]
- movs r0, 0
- movs r1, 0xFF
- bl sub_8046400
- mov r1, r9
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x2E]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811F9A8: .4byte gUnknown_02024A6A
-_0811F9AC: .4byte gUnknown_02023A60
-_0811F9B0: .4byte gPlayerParty
-_0811F9B4: .4byte sub_80312F0
-_0811F9B8: .4byte gUnknown_0300434C
-_0811F9BC: .4byte gUnknown_02024E8C
-_0811F9C0: .4byte gUnknown_02024BE0
-_0811F9C4: .4byte gSprites
-_0811F9C8: .4byte gUnknown_02024E84
-_0811F9CC: .4byte SpriteCallbackDummy
- thumb_func_end sub_811F864
-
- thumb_func_start sub_811F9D0
-sub_811F9D0: @ 811F9D0
- push {r4-r6,lr}
- ldr r1, _0811FA00
- ldr r6, _0811FA04
- ldrb r2, [r6]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r3, [r0]
- cmp r3, 0
- bne _0811FA14
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _0811FA08
- adds r0, r1
- strb r3, [r0, 0x4]
- ldr r1, _0811FA0C
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811FA10
- str r1, [r0]
- b _0811FA4A
- .align 2, 0
-_0811FA00: .4byte gUnknown_02023A60
-_0811FA04: .4byte gUnknown_02024A60
-_0811FA08: .4byte 0x02017810
-_0811FA0C: .4byte gUnknown_03004330
-_0811FA10: .4byte sub_811FA5C
-_0811FA14:
- ldr r5, _0811FA50
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0811FA54
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r1, _0811FA58
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl3_exec_completed
-_0811FA4A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811FA50: .4byte gUnknown_02024BE0
-_0811FA54: .4byte gSprites
-_0811FA58: .4byte gUnknown_03004340
- thumb_func_end sub_811F9D0
-
- thumb_func_start sub_811FA5C
-sub_811FA5C: @ 811FA5C
- push {r4,r5,lr}
- ldr r5, _0811FA78
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _0811FA7C
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- beq _0811FA80
- cmp r0, 0x1
- beq _0811FAAC
- b _0811FAD4
- .align 2, 0
-_0811FA78: .4byte gUnknown_02024A60
-_0811FA7C: .4byte 0x02017810
-_0811FA80:
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0811FA9C
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0811FA9C:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _0811FAD4
-_0811FAAC:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0811FAD4
- strb r0, [r3, 0x4]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x1
- bl move_anim_start_t4
- ldr r1, _0811FADC
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811FAE0
- str r1, [r0]
-_0811FAD4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811FADC: .4byte gUnknown_03004330
-_0811FAE0: .4byte sub_811DF34
- thumb_func_end sub_811FA5C
-
- thumb_func_start sub_811FAE4
-sub_811FAE4: @ 811FAE4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, _0811FB14
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0811FB24
- ldr r6, _0811FB18
- ldrb r0, [r6]
- bl battle_get_per_side_status
- movs r1, 0x2
- ands r1, r0
- ldr r5, _0811FB1C
- cmp r1, 0
- beq _0811FB0A
- movs r5, 0x10
-_0811FB0A:
- ldr r4, _0811FB20
- ldrb r0, [r6]
- bl sub_803FC34
- b _0811FB34
- .align 2, 0
-_0811FB14: .4byte gUnknown_020239F8
-_0811FB18: .4byte gUnknown_02024A60
-_0811FB1C: .4byte 0x0000fff0
-_0811FB20: .4byte gLinkPlayers
-_0811FB24:
- movs r5, 0
- ldr r4, _0811FC08
- bl GetMultiplayerId
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
-_0811FB34:
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r4, [r1, 0x13]
- ldr r6, _0811FC0C
- ldrb r1, [r6]
- adds r0, r4, 0
- bl sub_8031AF4
- ldrb r0, [r6]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl GetMonSpriteTemplate_803C5A0
- ldr r0, _0811FC10
- mov r8, r0
- lsls r5, 16
- movs r0, 0xA0
- lsls r0, 15
- adds r5, r0
- asrs r5, 16
- ldr r0, _0811FC14
- lsls r4, 2
- adds r4, r0
- ldrb r0, [r4]
- movs r4, 0x8
- subs r4, r0
- lsls r4, 18
- movs r0, 0xA0
- lsls r0, 15
- adds r4, r0
- asrs r4, 16
- ldrb r0, [r6]
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r5, _0811FC18
- ldrb r1, [r6]
- adds r1, r5
- strb r0, [r1]
- ldr r4, _0811FC1C
- ldrb r3, [r6]
- adds r0, r3, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xF0
- strh r1, [r0, 0x24]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0811FC20
- strh r1, [r0, 0x2E]
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _0811FC24
- str r1, [r0]
- ldr r1, _0811FC28
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811FC2C
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811FC08: .4byte gLinkPlayers
-_0811FC0C: .4byte gUnknown_02024A60
-_0811FC10: .4byte gUnknown_02024E8C
-_0811FC14: .4byte gTrainerBackPicCoords
-_0811FC18: .4byte gUnknown_02024BE0
-_0811FC1C: .4byte gSprites
-_0811FC20: .4byte 0x0000fffe
-_0811FC24: .4byte sub_80313A0
-_0811FC28: .4byte gUnknown_03004330
-_0811FC2C: .4byte sub_811DAE4
- thumb_func_end sub_811FAE4
-
- thumb_func_start sub_811FC30
-sub_811FC30: @ 811FC30
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_811FC30
-
- thumb_func_start sub_811FC3C
-sub_811FC3C: @ 811FC3C
- push {r4-r6,lr}
- ldr r6, _0811FCC8
- ldr r4, _0811FCCC
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _0811FCD0
- adds r0, r5
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x23
- strh r1, [r0, 0x2E]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0811FCD4
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0811FCD8
- str r1, [r0]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0811FCDC
- bl oamt_set_x3A_32
- ldr r1, _0811FCE0
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811FCE4
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811FCC8: .4byte gUnknown_02024BE0
-_0811FCCC: .4byte gUnknown_02024A60
-_0811FCD0: .4byte gSprites
-_0811FCD4: .4byte 0x0000ffd8
-_0811FCD8: .4byte sub_8078B34
-_0811FCDC: .4byte SpriteCallbackDummy
-_0811FCE0: .4byte gUnknown_03004330
-_0811FCE4: .4byte sub_811DB1C
- thumb_func_end sub_811FC3C
-
- thumb_func_start sub_811FCE8
-sub_811FCE8: @ 811FCE8
- push {r4,r5,lr}
- ldr r5, _0811FD2C
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r4, _0811FD30
- adds r3, r0, r4
- ldrb r0, [r3, 0x4]
- cmp r0, 0
- bne _0811FD34
- lsls r0, r2, 2
- adds r1, r4, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0811FD1A
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0811FD1A:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r1, 0x4]
- adds r0, 0x1
- strb r0, [r1, 0x4]
- b _0811FDAA
- .align 2, 0
-_0811FD2C: .4byte gUnknown_02024A60
-_0811FD30: .4byte 0x02017810
-_0811FD34:
- ldrb r1, [r3]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0811FDAA
- strb r4, [r3, 0x4]
- ldr r2, _0811FDB0
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0811FDB4
- adds r0, r2
- bl sub_80324F8
- movs r1, 0x40
- negs r1, r1
- movs r0, 0x10
- bl PlaySE12WithPanning
- ldr r2, _0811FDB8
- ldr r3, _0811FDBC
- ldrb r0, [r5]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r4, [r0, 0x30]
- ldrb r0, [r5]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x5
- strh r1, [r0, 0x32]
- ldrb r0, [r5]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, _0811FDC0
- str r1, [r0]
- ldr r1, _0811FDC4
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811FDC8
- str r1, [r0]
-_0811FDAA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0811FDB0: .4byte gUnknown_02024A6A
-_0811FDB4: .4byte gPlayerParty
-_0811FDB8: .4byte gSprites
-_0811FDBC: .4byte gUnknown_02024BE0
-_0811FDC0: .4byte sub_80105EC
-_0811FDC4: .4byte gUnknown_03004330
-_0811FDC8: .4byte sub_811DE98
- thumb_func_end sub_811FCE8
-
- thumb_func_start sub_811FDCC
-sub_811FDCC: @ 811FDCC
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_811FDCC
-
- thumb_func_start sub_811FDD8
-sub_811FDD8: @ 811FDD8
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_811FDD8
-
- thumb_func_start sub_811FDE4
-sub_811FDE4: @ 811FDE4
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_811FDE4
-
- thumb_func_start sub_811FDF0
-sub_811FDF0: @ 811FDF0
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_811FDF0
-
- thumb_func_start sub_811FDFC
-sub_811FDFC: @ 811FDFC
- push {r4-r6,lr}
- ldr r6, _0811FEE0
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- beq _0811FE0E
- b _0811FF1E
-_0811FE0E:
- ldr r0, _0811FEE4
- mov r12, r0
- ldrb r2, [r6]
- lsls r2, 9
- adds r0, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- mov r1, r12
- adds r1, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- ldr r5, _0811FEE8
- mov r1, r12
- adds r1, 0x3
- adds r2, r1
- ldrb r1, [r2]
- strb r1, [r5]
- ldr r4, _0811FEEC
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x4
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x5
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r4, _0811FEF0
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x6
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x7
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r3, r1
- mov r1, r12
- adds r1, 0x8
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 16
- orrs r3, r1
- mov r1, r12
- adds r1, 0x9
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 24
- orrs r3, r1
- str r3, [r4]
- ldr r3, _0811FEF4
- ldrb r1, [r6]
- lsls r1, 9
- mov r2, r12
- adds r2, 0xA
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r3]
- ldr r4, _0811FEF8
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0xC
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0xD
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r3, _0811FEFC
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x10
- adds r2, r1
- str r2, [r3]
- ldr r3, _0811FF00
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r3
- ldr r2, [r2]
- str r2, [r1]
- ldrb r1, [r5]
- bl sub_8031720
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0811FF04
- bl dp01_tbl3_exec_completed
- b _0811FF1E
- .align 2, 0
-_0811FEE0: .4byte gUnknown_02024A60
-_0811FEE4: .4byte gUnknown_02023A60
-_0811FEE8: .4byte gUnknown_0202F7C4
-_0811FEEC: .4byte gUnknown_0202F7BC
-_0811FEF0: .4byte gUnknown_0202F7B8
-_0811FEF4: .4byte gUnknown_0202F7BE
-_0811FEF8: .4byte gUnknown_0202F7C0
-_0811FEFC: .4byte gUnknown_0202F7B4
-_0811FF00: .4byte gUnknown_02024E70
-_0811FF04:
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0811FF24
- adds r0, r1
- strb r2, [r0, 0x4]
- ldr r1, _0811FF28
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0811FF2C
- str r1, [r0]
-_0811FF1E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0811FF24: .4byte 0x02017810
-_0811FF28: .4byte gUnknown_03004330
-_0811FF2C: .4byte sub_811FF30
- thumb_func_end sub_811FDFC
-
- thumb_func_start sub_811FF30
-sub_811FF30: @ 811FF30
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r2, _0811FF74
- ldr r5, _0811FF78
- ldrb r3, [r5]
- lsls r1, r3, 9
- adds r0, r2, 0x1
- mov r9, r0
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r6, r2, 0x2
- mov r8, r6
- adds r0, r1, r6
- ldrb r0, [r0]
- lsls r0, 8
- orrs r4, r0
- adds r2, 0xB
- adds r1, r2
- ldrb r7, [r1]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r6, _0811FF7C
- adds r0, r6
- ldrb r2, [r0, 0x4]
- cmp r2, 0x1
- beq _0811FFBE
- cmp r2, 0x1
- bgt _0811FF80
- cmp r2, 0
- beq _0811FF8A
- b _08120088
- .align 2, 0
-_0811FF74: .4byte gUnknown_02023A60
-_0811FF78: .4byte gUnknown_02024A60
-_0811FF7C: .4byte 0x02017810
-_0811FF80:
- cmp r2, 0x2
- beq _0811FFE4
- cmp r2, 0x3
- beq _08120050
- b _08120088
-_0811FF8A:
- lsls r1, r3, 2
- adds r0, r6, 0
- subs r0, 0x10
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0xC
- ands r0, r2
- cmp r0, 0x4
- bne _0811FFAE
- movs r0, 0x8
- orrs r0, r2
- strb r0, [r1]
- ldrb r2, [r5]
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_0811FFAE:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _08120088
-_0811FFBE:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08120088
- movs r0, 0
- bl sub_80326EC
- adds r0, r4, 0
- bl move_anim_start_t1
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _08120088
-_0811FFE4:
- ldr r0, _08120040
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _08120044
- ldrb r0, [r0]
- cmp r0, 0
- bne _08120088
- movs r0, 0x1
- bl sub_80326EC
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r4, r6, 0
- subs r4, 0x10
- adds r0, r4
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0812002C
- cmp r7, 0x1
- bhi _0812002C
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl move_anim_start_t4
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r4
- ldrb r2, [r0]
- movs r1, 0x9
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_0812002C:
- ldr r0, _08120048
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0812004C
- adds r0, r1
- movs r1, 0x3
- strb r1, [r0, 0x4]
- b _08120088
- .align 2, 0
-_08120040: .4byte gUnknown_0202F7AC
-_08120044: .4byte gUnknown_0202F7B1
-_08120048: .4byte gUnknown_02024A60
-_0812004C: .4byte 0x02017810
-_08120050:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08120088
- bl sub_8031F24
- ldrb r0, [r5]
- lsls r2, r0, 9
- mov r3, r9
- adds r1, r2, r3
- ldrb r1, [r1]
- add r2, r8
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- bl sub_80324BC
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strb r4, [r0, 0x4]
- bl dp01_tbl3_exec_completed
-_08120088:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_811FF30
-
- thumb_func_start sub_8120094
-sub_8120094: @ 8120094
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _081200D8
- movs r1, 0
- strh r1, [r0]
- ldr r0, _081200DC
- strh r1, [r0]
- ldr r4, _081200E0
- ldrb r0, [r4]
- lsls r0, 9
- ldr r1, _081200E4
- adds r0, r1
- ldrh r0, [r0]
- bl sub_8120AA8
- ldr r0, _081200E8
- ldr r1, _081200EC
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _081200F0
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _081200F4
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081200D8: .4byte gUnknown_030042A4
-_081200DC: .4byte gUnknown_030042A0
-_081200E0: .4byte gUnknown_02024A60
-_081200E4: .4byte gUnknown_02023A62
-_081200E8: .4byte gUnknown_03004210
-_081200EC: .4byte gUnknown_020238CC
-_081200F0: .4byte gUnknown_03004330
-_081200F4: .4byte sub_811DFA0
- thumb_func_end sub_8120094
-
- thumb_func_start sub_81200F8
-sub_81200F8: @ 81200F8
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81200F8
-
- thumb_func_start sub_8120104
-sub_8120104: @ 8120104
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120104
-
- thumb_func_start sub_8120110
-sub_8120110: @ 8120110
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120110
-
- thumb_func_start sub_812011C
-sub_812011C: @ 812011C
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812011C
-
- thumb_func_start sub_8120128
-sub_8120128: @ 8120128
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120128
-
- thumb_func_start sub_8120134
-sub_8120134: @ 8120134
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120134
-
- thumb_func_start sub_8120140
-sub_8120140: @ 8120140
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120140
-
- thumb_func_start sub_812014C
-sub_812014C: @ 812014C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r0, 0
- bl load_gfxc_health_bar
- ldr r3, _081201C4
- ldr r0, _081201C8
- mov r9, r0
- ldrb r4, [r0]
- lsls r2, r4, 9
- adds r0, r3, 0x2
- adds r0, r2, r0
- ldrb r1, [r0]
- adds r3, 0x3
- adds r2, r3
- ldrb r0, [r2]
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- asrs r7, r1, 16
- ldr r0, _081201CC
- cmp r7, r0
- beq _081201DC
- ldr r6, _081201D0
- lsls r0, r4, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _081201D4
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- mov r8, r0
- mov r1, r9
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- adds r3, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _081201D8
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- mov r2, r8
- bl sub_8043D84
- b _08120206
- .align 2, 0
-_081201C4: .4byte gUnknown_02023A60
-_081201C8: .4byte gUnknown_02024A60
-_081201CC: .4byte 0x00007fff
-_081201D0: .4byte gUnknown_02024A6A
-_081201D4: .4byte gPlayerParty
-_081201D8: .4byte gUnknown_03004340
-_081201DC:
- ldr r1, _08120224
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08120228
- adds r0, r1
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _0812022C
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- movs r3, 0
- bl sub_8043D84
-_08120206:
- ldr r1, _08120230
- ldr r0, _08120234
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08120238
- str r1, [r0]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08120224: .4byte gUnknown_02024A6A
-_08120228: .4byte gPlayerParty
-_0812022C: .4byte gUnknown_03004340
-_08120230: .4byte gUnknown_03004330
-_08120234: .4byte gUnknown_02024A60
-_08120238: .4byte bx_t3_healthbar_update
- thumb_func_end sub_812014C
-
- thumb_func_start sub_812023C
-sub_812023C: @ 812023C
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812023C
-
- thumb_func_start sub_8120248
-sub_8120248: @ 8120248
- push {r4,lr}
- ldr r4, _081202A0
- ldrb r0, [r4]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08120298
- ldr r0, _081202A4
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, _081202A8
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _081202AC
- adds r1, r2
- movs r2, 0x9
- bl sub_8045A5C
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _081202B0
- adds r1, r0
- ldrb r2, [r1]
- movs r0, 0x11
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, _081202B4
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _081202B8
- str r1, [r0]
-_08120298:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081202A0: .4byte gUnknown_02024A60
-_081202A4: .4byte gUnknown_03004340
-_081202A8: .4byte gUnknown_02024A6A
-_081202AC: .4byte gPlayerParty
-_081202B0: .4byte 0x02017810
-_081202B4: .4byte gUnknown_03004330
-_081202B8: .4byte sub_811E38C
- thumb_func_end sub_8120248
-
- thumb_func_start sub_81202BC
-sub_81202BC: @ 81202BC
- push {r4,r5,lr}
- ldr r5, _08120314
- ldrb r0, [r5]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _0812030C
- ldr r4, _08120318
- ldrb r3, [r5]
- lsls r3, 9
- adds r0, r4, 0x1
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r1, r4, 0x2
- adds r1, r3, r1
- ldrb r1, [r1]
- adds r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- adds r2, r4, 0x4
- adds r2, r3, r2
- ldrb r2, [r2]
- lsls r2, 16
- orrs r1, r2
- adds r4, 0x5
- adds r3, r4
- ldrb r2, [r3]
- lsls r2, 24
- orrs r1, r2
- bl move_anim_start_t2_for_situation
- ldr r1, _0812031C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08120320
- str r1, [r0]
-_0812030C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08120314: .4byte gUnknown_02024A60
-_08120318: .4byte gUnknown_02023A60
-_0812031C: .4byte gUnknown_03004330
-_08120320: .4byte sub_811E38C
- thumb_func_end sub_81202BC
-
- thumb_func_start sub_8120324
-sub_8120324: @ 8120324
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120324
-
- thumb_func_start sub_8120330
-sub_8120330: @ 8120330
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120330
-
- thumb_func_start sub_812033C
-sub_812033C: @ 812033C
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812033C
-
- thumb_func_start sub_8120348
-sub_8120348: @ 8120348
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120348
-
- thumb_func_start sub_8120354
-sub_8120354: @ 8120354
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120354
-
- thumb_func_start sub_8120360
-sub_8120360: @ 8120360
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120360
-
- thumb_func_start sub_812036C
-sub_812036C: @ 812036C
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812036C
-
- thumb_func_start sub_8120378
-sub_8120378: @ 8120378
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120378
-
- thumb_func_start sub_8120384
-sub_8120384: @ 8120384
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120384
-
- thumb_func_start sub_8120390
-sub_8120390: @ 8120390
- push {lr}
- ldr r2, _081203A8
- ldrb r1, [r2]
- movs r0, 0x80
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_081203A8: .4byte gUnknown_020238C8
- thumb_func_end sub_8120390
-
- thumb_func_start sub_81203AC
-sub_81203AC: @ 81203AC
- push {lr}
- ldr r3, _081203D8
- ldr r1, _081203DC
- ldr r0, _081203E0
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0x7F
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_081203D8: .4byte gUnknown_020238C8
-_081203DC: .4byte gUnknown_02023A60
-_081203E0: .4byte gUnknown_02024A60
- thumb_func_end sub_81203AC
-
- thumb_func_start sub_81203E4
-sub_81203E4: @ 81203E4
- push {lr}
- ldr r2, _081203F8
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_081203F8: .4byte gUnknown_020238C8
- thumb_func_end sub_81203E4
-
- thumb_func_start sub_81203FC
-sub_81203FC: @ 81203FC
- push {lr}
- ldr r3, _08120420
- ldr r1, [r3]
- lsls r1, 24
- lsrs r1, 31
- movs r0, 0x1
- eors r1, r0
- lsls r1, 7
- ldrb r2, [r3]
- movs r0, 0x7F
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08120420: .4byte gUnknown_020238C8
- thumb_func_end sub_81203FC
-
- thumb_func_start dp01t_29_3_blink
-dp01t_29_3_blink: @ 8120424
- push {r4,lr}
- ldr r3, _0812044C
- ldr r2, _08120450
- ldr r4, _08120454
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _08120458
- bl dp01_tbl3_exec_completed
- b _08120482
- .align 2, 0
-_0812044C: .4byte gSprites
-_08120450: .4byte gUnknown_02024BE0
-_08120454: .4byte gUnknown_02024A60
-_08120458:
- ldr r1, _08120488
- movs r0, 0x1
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x30]
- ldrb r0, [r4]
- bl sub_8047858
- ldr r1, _0812048C
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08120490
- str r1, [r0]
-_08120482:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08120488: .4byte gUnknown_02024E6D
-_0812048C: .4byte gUnknown_03004330
-_08120490: .4byte bx_blink_t3
- thumb_func_end dp01t_29_3_blink
-
- thumb_func_start sub_8120494
-sub_8120494: @ 8120494
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120494
-
- thumb_func_start sub_81204A0
-sub_81204A0: @ 81204A0
- push {r4,lr}
- ldr r4, _081204DC
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- movs r3, 0x3F
- cmp r0, 0
- bne _081204B4
- movs r3, 0xC0
-_081204B4:
- ldr r2, _081204E0
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- lsls r1, r3, 24
- asrs r1, 24
- bl PlaySE12WithPanning
- bl dp01_tbl3_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081204DC: .4byte gUnknown_02024A60
-_081204E0: .4byte gUnknown_02023A60
- thumb_func_end sub_81204A0
-
- thumb_func_start sub_81204E4
-sub_81204E4: @ 81204E4
- push {lr}
- ldr r2, _0812050C
- ldr r0, _08120510
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlayFanfare
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0812050C: .4byte gUnknown_02023A60
-_08120510: .4byte gUnknown_02024A60
- thumb_func_end sub_81204E4
-
- thumb_func_start sub_8120514
-sub_8120514: @ 8120514
- push {lr}
- ldr r1, _08120548
- ldr r0, _0812054C
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08120550
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- negs r1, r1
- movs r2, 0x5
- bl PlayCry3
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08120548: .4byte gUnknown_02024A6A
-_0812054C: .4byte gUnknown_02024A60
-_08120550: .4byte gPlayerParty
- thumb_func_end sub_8120514
-
- thumb_func_start dp01t_2E_3_battle_intro
-dp01t_2E_3_battle_intro: @ 8120554
- push {lr}
- ldr r1, _0812057C
- ldr r0, _08120580
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80E43C0
- ldr r2, _08120584
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0812057C: .4byte gUnknown_02023A60
-_08120580: .4byte gUnknown_02024A60
-_08120584: .4byte gUnknown_02024DE8
- thumb_func_end dp01t_2E_3_battle_intro
-
- thumb_func_start sub_8120588
-sub_8120588: @ 8120588
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r6, _081206DC
- ldr r7, _081206E0
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _081206E4
- adds r0, r5
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x32
- strh r1, [r0, 0x2E]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _081206E8
- strh r1, [r0, 0x32]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _081206EC
- str r1, [r0]
- ldrb r2, [r7]
- adds r0, r2, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x38]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _081206F0
- bl oamt_set_x3A_32
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, _081206F4
- bl AllocSpritePalette
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _081206F8
- mov r8, r0
- ldrb r0, [r7]
- bl sub_803FC34
- ldr r2, _081206FC
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x13]
- lsls r0, 3
- add r0, r8
- ldr r0, [r0]
- lsls r4, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- movs r2, 0x20
- bl LoadCompressedPalette
- ldrb r0, [r7]
- adds r0, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r4
- strb r0, [r1, 0x5]
- ldr r0, _08120700
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08120704
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- ldrb r0, [r7]
- strh r0, [r1, 0x8]
- ldrb r3, [r7]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r2, _08120708
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081206BA
- ldr r0, _0812070C
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldr r1, _08120710
- str r1, [r0]
-_081206BA:
- adds r2, 0x30
- ldrb r0, [r2, 0x9]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _08120714
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08120718
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081206DC: .4byte gUnknown_02024BE0
-_081206E0: .4byte gUnknown_02024A60
-_081206E4: .4byte gSprites
-_081206E8: .4byte 0x0000ffd8
-_081206EC: .4byte sub_8078B34
-_081206F0: .4byte sub_8030E38
-_081206F4: .4byte 0x0000d6f9
-_081206F8: .4byte gTrainerBackPicPaletteTable
-_081206FC: .4byte gLinkPlayers
-_08120700: .4byte sub_812071C
-_08120704: .4byte gTasks
-_08120708: .4byte 0x02017810
-_0812070C: .4byte gUnknown_02024E68
-_08120710: .4byte sub_8044CA0
-_08120714: .4byte gUnknown_03004330
-_08120718: .4byte nullsub_74
- thumb_func_end sub_8120588
-
- thumb_func_start sub_812071C
-sub_812071C: @ 812071C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _08120744
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0xA]
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0x17
- bgt _08120748
- adds r0, r2, 0x1
- strh r0, [r1, 0xA]
- b _08120804
- .align 2, 0
-_08120744: .4byte gTasks
-_08120748:
- ldr r7, _08120788
- ldrb r0, [r7]
- mov r9, r0
- ldrh r0, [r1, 0x8]
- strb r0, [r7]
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08120768
- ldr r0, _0812078C
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08120798
-_08120768:
- ldr r0, _08120790
- ldrb r1, [r7]
- lsls r2, r1, 9
- adds r0, 0x1
- adds r2, r0
- ldr r0, _08120794
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- strb r0, [r2]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_811F864
- b _081207EC
- .align 2, 0
-_08120788: .4byte gUnknown_02024A60
-_0812078C: .4byte gUnknown_020239F8
-_08120790: .4byte gUnknown_02023A60
-_08120794: .4byte gUnknown_02024A6A
-_08120798:
- ldr r4, _08120810
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r4, 0x1
- adds r1, r4
- ldr r5, _08120814
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r0, [r7]
- movs r1, 0
- bl sub_811F864
- ldrb r0, [r7]
- movs r6, 0x2
- eors r0, r6
- strb r0, [r7]
- ldrb r0, [r7]
- lsls r1, r0, 9
- adds r1, r4
- lsls r0, 1
- adds r0, r5
- ldrh r0, [r0]
- strb r0, [r1]
- ldrb r1, [r7]
- lsls r0, r1, 1
- adds r0, r5
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _08120818
- adds r0, r2
- bl sub_80318FC
- ldrb r0, [r7]
- movs r1, 0
- bl sub_811F864
- ldrb r0, [r7]
- eors r0, r6
- strb r0, [r7]
-_081207EC:
- ldr r1, _0812081C
- ldr r2, _08120820
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08120824
- str r1, [r0]
- mov r3, r9
- strb r3, [r2]
- mov r0, r8
- bl DestroyTask
-_08120804:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08120810: .4byte gUnknown_02023A60
-_08120814: .4byte gUnknown_02024A6A
-_08120818: .4byte gPlayerParty
-_0812081C: .4byte gUnknown_03004330
-_08120820: .4byte gUnknown_02024A60
-_08120824: .4byte sub_811DCA0
- thumb_func_end sub_812071C
-
- thumb_func_start dp01t_30_3_80EB11C
-dp01t_30_3_80EB11C: @ 8120828
- push {r4-r6,lr}
- ldr r1, _08120850
- ldr r0, _08120854
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08120858
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08120858
- bl dp01_tbl3_exec_completed
- b _081208C0
- .align 2, 0
-_08120850: .4byte gUnknown_02023A60
-_08120854: .4byte gUnknown_02024A60
-_08120858:
- ldr r5, _081208C8
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r6, _081208CC
- adds r0, r6
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- ldrb r0, [r5]
- lsls r3, r0, 9
- ldr r4, _081208D0
- adds r1, r3, r4
- subs r2, r4, 0x3
- adds r2, r3, r2
- ldrb r2, [r2]
- subs r4, 0x2
- adds r3, r4
- ldrb r3, [r3]
- bl sub_8044804
- ldr r2, _081208D4
- ldrb r1, [r5]
- adds r1, r2
- movs r2, 0
- strb r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strb r2, [r0, 0x5]
- ldrb r1, [r5]
- lsls r0, r1, 9
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _081208B4
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x5D
- strb r1, [r0, 0x5]
-_081208B4:
- ldr r0, _081208D8
- ldrb r1, [r5]
- lsls r1, 2
- adds r1, r0
- ldr r0, _081208DC
- str r0, [r1]
-_081208C0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081208C8: .4byte gUnknown_02024A60
-_081208CC: .4byte 0x02017810
-_081208D0: .4byte gUnknown_02023A64
-_081208D4: .4byte gUnknown_02024E68
-_081208D8: .4byte gUnknown_03004330
-_081208DC: .4byte sub_81208E0
- thumb_func_end dp01t_30_3_80EB11C
-
- thumb_func_start sub_81208E0
-sub_81208E0: @ 81208E0
- push {r4,lr}
- ldr r4, _08120918
- ldrb r1, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r3, _0812091C
- adds r0, r3
- ldrb r1, [r0, 0x5]
- adds r2, r1, 0x1
- strb r2, [r0, 0x5]
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x5C
- bls _08120910
- ldrb r0, [r4]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- movs r0, 0
- strb r0, [r1, 0x5]
- bl dp01_tbl3_exec_completed
-_08120910:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08120918: .4byte gUnknown_02024A60
-_0812091C: .4byte 0x02017810
- thumb_func_end sub_81208E0
-
- thumb_func_start sub_8120920
-sub_8120920: @ 8120920
- push {lr}
- ldr r0, _08120958
- ldrb r3, [r0]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r1, _0812095C
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0812094E
- ldr r2, _08120960
- ldr r0, _08120964
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _08120968
- str r1, [r0]
-_0812094E:
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08120958: .4byte gUnknown_02024A60
-_0812095C: .4byte 0x02017810
-_08120960: .4byte gTasks
-_08120964: .4byte gUnknown_02024E68
-_08120968: .4byte sub_8044CA0
- thumb_func_end sub_8120920
-
- thumb_func_start sub_812096C
-sub_812096C: @ 812096C
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812096C
-
- thumb_func_start sub_8120978
-sub_8120978: @ 8120978
- push {r4,lr}
- ldr r4, _081209C8
- ldrb r0, [r4]
- bl sub_8078874
- lsls r0, 24
- cmp r0, 0
- beq _081209BE
- ldr r3, _081209CC
- ldr r0, _081209D0
- ldrb r1, [r4]
- adds r0, r1, r0
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldr r0, _081209D4
- lsls r1, 9
- adds r0, 0x1
- adds r1, r0
- adds r2, 0x3E
- movs r0, 0x1
- ldrb r1, [r1]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r4]
- bl sub_8031F88
-_081209BE:
- bl dp01_tbl3_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081209C8: .4byte gUnknown_02024A60
-_081209CC: .4byte gSprites
-_081209D0: .4byte gUnknown_02024BE0
-_081209D4: .4byte gUnknown_02023A60
- thumb_func_end sub_8120978
-
- thumb_func_start sub_81209D8
-sub_81209D8: @ 81209D8
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r6, _08120A1C
- ldrb r0, [r6]
- bl mplay_80342A4
- lsls r0, 24
- cmp r0, 0
- bne _08120A30
- ldr r5, _08120A20
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, r5, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r5, 0x3
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- str r4, [sp]
- adds r0, r2, 0
- adds r1, r2, 0
- bl move_anim_start_t3
- lsls r0, 24
- cmp r0, 0
- beq _08120A24
- bl dp01_tbl3_exec_completed
- b _08120A30
- .align 2, 0
-_08120A1C: .4byte gUnknown_02024A60
-_08120A20: .4byte gUnknown_02023A60
-_08120A24:
- ldr r0, _08120A38
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _08120A3C
- str r0, [r1]
-_08120A30:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08120A38: .4byte gUnknown_03004330
-_08120A3C: .4byte sub_811E3B8
- thumb_func_end sub_81209D8
-
- thumb_func_start sub_8120A40
-sub_8120A40: @ 8120A40
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120A40
-
- thumb_func_start sub_8120A4C
-sub_8120A4C: @ 8120A4C
- push {lr}
- bl dp01_tbl3_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8120A4C
-
- thumb_func_start sub_8120A58
-sub_8120A58: @ 8120A58
- push {r4,lr}
- ldr r2, _08120A90
- ldr r1, _08120A94
- ldr r4, _08120A98
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- movs r0, 0x5
- bl FadeOutMapMusic
- movs r0, 0x3
- bl BeginFastPaletteFade
- bl dp01_tbl3_exec_completed
- ldr r1, _08120A9C
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08120AA0
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08120A90: .4byte gUnknown_02024D26
-_08120A94: .4byte gUnknown_02023A60
-_08120A98: .4byte gUnknown_02024A60
-_08120A9C: .4byte gUnknown_03004330
-_08120AA0: .4byte sub_811E29C
- thumb_func_end sub_8120A58
-
- thumb_func_start nullsub_75
-nullsub_75: @ 8120AA4
- bx lr
- thumb_func_end nullsub_75
-
- thumb_func_start sub_8120AA8
-sub_8120AA8: @ 8120AA8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r7, r0, 16
- movs r6, 0
- ldr r5, _08120B70
- ldr r4, _08120B74
- ldrb r1, [r4]
- lsls r1, 9
- ldr r0, _08120B78
- adds r1, r0
- str r1, [r5]
- ldr r2, _08120B7C
- ldrh r0, [r1, 0x4]
- strh r0, [r2]
- ldr r2, _08120B80
- ldrb r0, [r1, 0x6]
- strb r0, [r2]
- ldr r3, _08120B84
- ldrb r0, [r1, 0x7]
- mov r8, r0
- ldr r2, _08120B88
- adds r0, r3, r2
- mov r2, r8
- strb r2, [r0]
- ldrb r0, [r1, 0x8]
- mov r8, r0
- ldr r2, _08120B8C
- adds r0, r3, r2
- mov r2, r8
- strb r2, [r0]
- ldrb r0, [r1, 0x9]
- mov r8, r0
- ldr r2, _08120B90
- adds r0, r3, r2
- mov r2, r8
- strb r2, [r0]
- ldr r2, _08120B94
- ldrb r0, [r1, 0xA]
- strb r0, [r2]
- ldrb r1, [r1, 0xB]
- ldr r2, _08120B98
- adds r0, r3, r2
- strb r1, [r0]
- movs r2, 0
- mov r9, r3
- ldr r3, _08120B9C
- mov r10, r3
- ldr r3, _08120BA0
-_08120B10:
- adds r0, r2, r3
- ldr r1, [r5]
- adds r1, 0xC
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x3
- ble _08120B10
- movs r2, 0
- ldr r0, _08120B9C
- mov r8, r0
- ldr r3, _08120B70
- ldr r1, _08120BA4
- mov r12, r1
- ldr r5, _08120BA8
-_08120B30:
- mov r0, r8
- adds r1, r2, r0
- ldr r0, [r3]
- adds r0, 0x10
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- mov r0, r12
- adds r1, r2, r0
- ldr r0, [r3]
- adds r0, 0x20
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r1, r2, r5
- ldr r0, [r3]
- adds r0, 0x30
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r2, 0x1
- cmp r2, 0xF
- ble _08120B30
- cmp r7, 0x5
- bls _08120B64
- b _08120F50
-_08120B64:
- lsls r0, r7, 2
- ldr r1, _08120BAC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08120B70: .4byte gUnknown_02039270
-_08120B74: .4byte gUnknown_02024A60
-_08120B78: .4byte gUnknown_02023A64
-_08120B7C: .4byte gUnknown_02024C04
-_08120B80: .4byte byte_2024C06
-_08120B84: .4byte 0x02000000
-_08120B88: .4byte 0x00016003
-_08120B8C: .4byte 0x0001605e
-_08120B90: .4byte 0x000160c1
-_08120B94: .4byte gUnknown_02024C0B
-_08120B98: .4byte 0x000160a0
-_08120B9C: .4byte gUnknown_030041C0
-_08120BA0: .4byte gUnknown_0203926C
-_08120BA4: .4byte gUnknown_03004290
-_08120BA8: .4byte gUnknown_030042B0
-_08120BAC: .4byte _08120BB0
- .align 2, 0
-_08120BB0:
- .4byte _08120BC8
- .4byte _08120C40
- .4byte _08120CCC
- .4byte _08120D5C
- .4byte _08120DE8
- .4byte _08120E50
-_08120BC8:
- ldr r0, _08120BEC
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08120C00
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08120BF8
- movs r0, 0x40
- ands r0, r1
- ldr r6, _08120BF0
- cmp r0, 0
- bne _08120BE8
- b _08120F70
-_08120BE8:
- ldr r6, _08120BF4
- b _08120F70
- .align 2, 0
-_08120BEC: .4byte gUnknown_020239F8
-_08120BF0: .4byte gUnknown_084005C7
-_08120BF4: .4byte gUnknown_084005DB
-_08120BF8:
- ldr r6, _08120BFC
- b _08120F70
- .align 2, 0
-_08120BFC: .4byte gUnknown_084005AA
-_08120C00:
- movs r0, 0x80
- lsls r0, 6
- ands r0, r1
- cmp r0, 0
- beq _08120C14
- ldr r6, _08120C10
- b _08120F70
- .align 2, 0
-_08120C10: .4byte gUnknown_08400568
-_08120C14:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08120C24
- ldr r6, _08120C20
- b _08120F70
- .align 2, 0
-_08120C20: .4byte gUnknown_08400590
-_08120C24:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- ldr r6, _08120C38
- cmp r0, 0
- bne _08120C32
- b _08120F70
-_08120C32:
- ldr r6, _08120C3C
- b _08120F70
- .align 2, 0
-_08120C38: .4byte gUnknown_08400555
-_08120C3C: .4byte gUnknown_0840057B
-_08120C40:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08120C7C
- ldr r0, _08120C68
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08120C74
- movs r0, 0x40
- ands r0, r1
- ldr r6, _08120C6C
- cmp r0, 0
- bne _08120C64
- b _08120F70
-_08120C64:
- ldr r6, _08120C70
- b _08120F70
- .align 2, 0
-_08120C68: .4byte gUnknown_020239F8
-_08120C6C: .4byte gUnknown_084006A4
-_08120C70: .4byte gUnknown_084006F1
-_08120C74:
- ldr r6, _08120C78
- b _08120F70
- .align 2, 0
-_08120C78: .4byte gUnknown_0840069C
-_08120C7C:
- ldr r0, _08120C94
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08120CB4
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08120C9C
- ldr r6, _08120C98
- b _08120F70
- .align 2, 0
-_08120C94: .4byte gUnknown_020239F8
-_08120C98: .4byte gUnknown_0840065C
-_08120C9C:
- movs r0, 0x2
- ands r0, r1
- ldr r6, _08120CAC
- cmp r0, 0
- bne _08120CA8
- b _08120F70
-_08120CA8:
- ldr r6, _08120CB0
- b _08120F70
- .align 2, 0
-_08120CAC: .4byte gUnknown_08400608
-_08120CB0: .4byte gUnknown_08400645
-_08120CB4:
- movs r0, 0x2
- ands r0, r1
- ldr r6, _08120CC4
- cmp r0, 0
- bne _08120CC0
- b _08120F70
-_08120CC0:
- ldr r6, _08120CC8
- b _08120F70
- .align 2, 0
-_08120CC4: .4byte gUnknown_084005F5
-_08120CC8: .4byte gUnknown_08400635
-_08120CCC:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08120D24
- ldr r0, _08120CE8
- ldr r1, _08120CEC
- adds r0, r1
- ldrb r2, [r0]
- cmp r2, 0
- bne _08120CF4
- ldr r6, _08120CF0
- b _08120F70
- .align 2, 0
-_08120CE8: .4byte 0x02000000
-_08120CEC: .4byte 0x000160c1
-_08120CF0: .4byte gUnknown_08400709
-_08120CF4:
- cmp r2, 0x1
- beq _08120D04
- ldr r0, _08120D08
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08120D10
-_08120D04:
- ldr r6, _08120D0C
- b _08120F70
- .align 2, 0
-_08120D08: .4byte gUnknown_020239F8
-_08120D0C: .4byte gUnknown_08400727
-_08120D10:
- ldr r6, _08120D1C
- cmp r2, 0x2
- beq _08120D18
- b _08120F70
-_08120D18:
- ldr r6, _08120D20
- b _08120F70
- .align 2, 0
-_08120D1C: .4byte gUnknown_08400749
-_08120D20: .4byte gUnknown_08400736
-_08120D24:
- ldr r0, _08120D44
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 4
- cmp r1, r0
- bne _08120D54
- ldr r0, _08120D48
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- ldr r6, _08120D4C
- cmp r0, 0
- bne _08120D40
- b _08120F70
-_08120D40:
- ldr r6, _08120D50
- b _08120F70
- .align 2, 0
-_08120D44: .4byte word_202FF5E
-_08120D48: .4byte gUnknown_020239F8
-_08120D4C: .4byte gUnknown_08400771
-_08120D50: .4byte gUnknown_08400781
-_08120D54:
- ldr r6, _08120D58
- b _08120F70
- .align 2, 0
-_08120D58: .4byte gUnknown_0840075E
-_08120D5C:
- ldr r0, _08120D88
- add r0, r9
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08120DB8
- ldr r0, _08120D8C
- add r0, r9
- ldrb r3, [r0]
- cmp r3, 0
- beq _08120D82
- ldr r0, _08120D90
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08120D98
-_08120D82:
- ldr r6, _08120D94
- b _08120F70
- .align 2, 0
-_08120D88: .4byte 0x00016003
-_08120D8C: .4byte 0x000160c1
-_08120D90: .4byte gUnknown_020239F8
-_08120D94: .4byte gUnknown_084006B3
-_08120D98:
- cmp r3, 0x1
- bne _08120DA4
- ldr r6, _08120DA0
- b _08120F70
- .align 2, 0
-_08120DA0: .4byte gUnknown_084006BB
-_08120DA4:
- ldr r6, _08120DB0
- cmp r3, 0x2
- beq _08120DAC
- b _08120F70
-_08120DAC:
- ldr r6, _08120DB4
- b _08120F70
- .align 2, 0
-_08120DB0: .4byte gUnknown_084006D5
-_08120DB4: .4byte gUnknown_084006C6
-_08120DB8:
- ldr r0, _08120DD4
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08120DE0
- movs r0, 0x40
- ands r0, r1
- ldr r6, _08120DD8
- cmp r0, 0
- bne _08120DD0
- b _08120F70
-_08120DD0:
- ldr r6, _08120DDC
- b _08120F70
- .align 2, 0
-_08120DD4: .4byte gUnknown_020239F8
-_08120DD8: .4byte gUnknown_0840067C
-_08120DDC: .4byte gUnknown_0840068C
-_08120DE0:
- ldr r6, _08120DE4
- b _08120F70
- .align 2, 0
-_08120DE4: .4byte gUnknown_08400622
-_08120DE8:
- mov r0, r10
- bl sub_8121D1C
- ldr r0, _08120E14
- ldr r2, [r0]
- ldrh r1, [r2]
- movs r0, 0xB1
- lsls r0, 1
- cmp r1, r0
- bls _08120E28
- ldr r0, _08120E18
- ldr r2, _08120E1C
- ldr r1, _08120E20
- ldr r3, _08120E24
- adds r1, r3
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- b _08120E38
- .align 2, 0
-_08120E14: .4byte gUnknown_02039270
-_08120E18: .4byte gUnknown_03004290
-_08120E1C: .4byte gUnknown_08401674
-_08120E20: .4byte 0x02000000
-_08120E24: .4byte 0x000160a0
-_08120E28:
- ldr r0, _08120E44
- ldrh r2, [r2]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _08120E48
- adds r1, r2
- bl StringCopy
-_08120E38:
- ldr r0, _08120E44
- bl sub_8121D74
- ldr r6, _08120E4C
- b _08120F70
- .align 2, 0
-_08120E44: .4byte gUnknown_03004290
-_08120E48: .4byte gMoveNames
-_08120E4C: .4byte gUnknown_084007BD
-_08120E50:
- ldr r5, _08120E90
- ldrb r1, [r5]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08120EB8
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r5]
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08120E7C
- ldrb r1, [r5]
- cmp r1, 0x3
- beq _08120E7C
- movs r0, 0x3
- eors r0, r1
- strb r0, [r5]
-_08120E7C:
- ldr r0, _08120E90
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08120E98
- ldr r6, _08120E94
- b _08120F70
- .align 2, 0
-_08120E90: .4byte gUnknown_030041C0
-_08120E94: .4byte gUnknown_083FFEFC
-_08120E98:
- ldr r0, _08120EAC
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- ldr r6, _08120EB0
- cmp r0, 0
- beq _08120F70
- ldr r6, _08120EB4
- b _08120F70
- .align 2, 0
-_08120EAC: .4byte gUnknown_020239F8
-_08120EB0: .4byte gUnknown_083FFFEA
-_08120EB4: .4byte gUnknown_083FFFF7
-_08120EB8:
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08120ED2
- ldrb r1, [r5]
- cmp r1, 0x3
- beq _08120ED2
- movs r0, 0x3
- eors r0, r1
- strb r0, [r5]
-_08120ED2:
- ldr r0, _08120EF0
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08120F18
- ldr r0, _08120EF4
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08120F08
- cmp r0, 0x2
- bgt _08120EF8
- cmp r0, 0x1
- beq _08120EFE
- b _08120F70
- .align 2, 0
-_08120EF0: .4byte gUnknown_020239F8
-_08120EF4: .4byte gUnknown_030041C0
-_08120EF8:
- cmp r0, 0x3
- beq _08120F10
- b _08120F70
-_08120EFE:
- ldr r6, _08120F04
- b _08120F70
- .align 2, 0
-_08120F04: .4byte gUnknown_083FFF6A
-_08120F08:
- ldr r6, _08120F0C
- b _08120F70
- .align 2, 0
-_08120F0C: .4byte gUnknown_083FFF99
-_08120F10:
- ldr r6, _08120F14
- b _08120F70
- .align 2, 0
-_08120F14: .4byte gUnknown_083FFFCB
-_08120F18:
- ldr r0, _08120F2C
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _08120F40
- cmp r0, 0x2
- bgt _08120F30
- cmp r0, 0x1
- beq _08120F36
- b _08120F70
- .align 2, 0
-_08120F2C: .4byte gUnknown_030041C0
-_08120F30:
- cmp r0, 0x3
- beq _08120F48
- b _08120F70
-_08120F36:
- ldr r6, _08120F3C
- b _08120F70
- .align 2, 0
-_08120F3C: .4byte gUnknown_083FFF56
-_08120F40:
- ldr r6, _08120F44
- b _08120F70
- .align 2, 0
-_08120F44: .4byte gUnknown_083FFF81
-_08120F48:
- ldr r6, _08120F4C
- b _08120F70
- .align 2, 0
-_08120F4C: .4byte gUnknown_083FFFB3
-_08120F50:
- movs r0, 0xB5
- lsls r0, 1
- cmp r7, r0
- bls _08120F64
- ldr r1, _08120F60
- movs r0, 0xFF
- strb r0, [r1]
- b _08120F76
- .align 2, 0
-_08120F60: .4byte gUnknown_020238CC
-_08120F64:
- ldr r1, _08120F84
- adds r0, r7, 0
- subs r0, 0xC
- lsls r0, 2
- adds r0, r1
- ldr r6, [r0]
-_08120F70:
- adds r0, r6, 0
- bl get_battle_strings_
-_08120F76:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08120F84: .4byte gUnknown_08400F8C
- thumb_func_end sub_8120AA8
-
- thumb_func_start get_battle_strings_
-get_battle_strings_: @ 8120F88
- push {lr}
- ldr r1, _08120F94
- bl sub_8120FFC
- pop {r1}
- bx r1
- .align 2, 0
-_08120F94: .4byte gUnknown_020238CC
- thumb_func_end get_battle_strings_
-
- thumb_func_start sub_8120F98
-sub_8120F98: @ 8120F98
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r1, _08120FB0
- mov r0, sp
- movs r2, 0x8
- bl memcpy
- mov r2, sp
- movs r3, 0
- b _08120FC0
- .align 2, 0
-_08120FB0: .4byte gUnknown_084017A8
-_08120FB4:
- strb r1, [r2]
- adds r4, 0x1
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x7
- bhi _08120FC8
-_08120FC0:
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _08120FB4
-_08120FC8:
- ldr r5, [sp]
- ldr r4, [sp, 0x4]
- movs r3, 0
- ldr r2, _08120FE4
-_08120FD0:
- ldr r1, [r2]
- ldr r0, [r1]
- cmp r5, r0
- bne _08120FE8
- ldr r0, [r1, 0x4]
- cmp r4, r0
- bne _08120FE8
- ldr r0, [r2, 0x4]
- b _08120FF2
- .align 2, 0
-_08120FE4: .4byte gUnknown_081FA6D4
-_08120FE8:
- adds r2, 0x8
- adds r3, 0x1
- cmp r3, 0x6
- bls _08120FD0
- movs r0, 0
-_08120FF2:
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8120F98
-
- thumb_func_start sub_8120FFC
-sub_8120FFC: @ 8120FFC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- mov r9, r0
- mov r8, r1
- movs r6, 0
- movs r4, 0
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r7, r0, 24
- mov r0, r9
- ldrb r1, [r0]
- bl _08121A40
-_0812101E:
- cmp r1, 0xFD
- beq _08121026
- bl _08121A30
-_08121026:
- movs r1, 0x1
- add r9, r1
- mov r2, r9
- ldrb r0, [r2]
- cmp r0, 0x2A
- bls _08121036
- bl _081219E6
-_08121036:
- lsls r0, 2
- ldr r1, _08121040
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08121040: .4byte _08121044
- .align 2, 0
-_08121044:
- .4byte _081210F0
- .4byte _0812111E
- .4byte _0812115A
- .4byte _08121180
- .4byte _081211A4
- .4byte _081211C8
- .4byte _081211EC
- .4byte _08121218
- .4byte _08121248
- .4byte _08121278
- .4byte _081212A8
- .4byte _0812133C
- .4byte _081213A8
- .4byte _0812141C
- .4byte _08121490
- .4byte _08121504
- .4byte _08121578
- .4byte _081215F8
- .4byte _08121620
- .4byte _08121660
- .4byte _081216EC
- .4byte _081216F4
- .4byte _08121704
- .4byte _08121714
- .4byte _0812172C
- .4byte _0812174C
- .4byte _081217C0
- .4byte _08121830
- .4byte _08121840
- .4byte _08121854
- .4byte _08121868
- .4byte _0812188C
- .4byte _081218B0
- .4byte _081218B8
- .4byte _081218C0
- .4byte _0812195C
- .4byte _081219A4
- .4byte _081219AC
- .4byte _0812197C
- .4byte _08121984
- .4byte _081219CC
- .4byte _081219D4
- .4byte _08121134
-_081210F0:
- ldr r5, _08121100
- ldrb r0, [r5]
- cmp r0, 0xFD
- bne _08121108
- ldr r4, _08121104
- adds r0, r5, 0
- b _08121140
- .align 2, 0
-_08121100: .4byte gUnknown_030041C0
-_08121104: .4byte gStringVar1
-_08121108:
- adds r0, r5, 0
- bl sub_8120F98
- adds r4, r0, 0
- cmp r4, 0
- beq _08121118
- bl _081219E6
-_08121118:
- adds r4, r5, 0
- bl _081219E6
-_0812111E:
- ldr r1, _0812112C
- ldrb r0, [r1]
- cmp r0, 0xFD
- bne _08121154
- ldr r4, _08121130
- b _0812113E
- .align 2, 0
-_0812112C: .4byte gUnknown_03004290
-_08121130: .4byte gStringVar2
-_08121134:
- ldr r1, _0812114C
- ldrb r0, [r1]
- cmp r0, 0xFD
- bne _08121154
- ldr r4, _08121150
-_0812113E:
- adds r0, r1, 0
-_08121140:
- adds r1, r4, 0
- bl sub_8121A68
- bl _081219E6
- .align 2, 0
-_0812114C: .4byte gUnknown_030042B0
-_08121150: .4byte gStringVar3
-_08121154:
- adds r4, r1, 0
- bl _081219E6
-_0812115A:
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _08121178
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0812117C
- adds r0, r1
- bl _0812190E
- .align 2, 0
-_08121178: .4byte gUnknown_02024A6A
-_0812117C: .4byte gPlayerParty
-_08121180:
- movs r0, 0x1
- bl battle_get_side_with_given_state
- ldr r1, _0812119C
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _081211A0
- adds r0, r1
- b _0812190E
- .align 2, 0
-_0812119C: .4byte gUnknown_02024A6A
-_081211A0: .4byte gEnemyParty
-_081211A4:
- movs r0, 0x2
- bl battle_get_side_with_given_state
- ldr r1, _081211C0
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _081211C4
- adds r0, r1
- b _0812190E
- .align 2, 0
-_081211C0: .4byte gUnknown_02024A6A
-_081211C4: .4byte gPlayerParty
-_081211C8:
- movs r0, 0x3
- bl battle_get_side_with_given_state
- ldr r1, _081211E4
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _081211E8
- adds r0, r1
- b _0812190E
- .align 2, 0
-_081211E4: .4byte gUnknown_02024A6A
-_081211E8: .4byte gEnemyParty
-_081211EC:
- ldr r2, _0812120C
- ldr r1, _08121210
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x18]
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121214
- adds r0, r1
- b _0812190E
- .align 2, 0
-_0812120C: .4byte gUnknown_02024A6A
-_08121210: .4byte gLinkPlayers
-_08121214: .4byte gPlayerParty
-_08121218:
- ldr r2, _0812123C
- ldr r1, _08121240
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x18]
- movs r0, 0x1
- eors r0, r1
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121244
- adds r0, r1
- b _0812190E
- .align 2, 0
-_0812123C: .4byte gUnknown_02024A6A
-_08121240: .4byte gLinkPlayers
-_08121244: .4byte gEnemyParty
-_08121248:
- ldr r2, _0812126C
- ldr r1, _08121270
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x18]
- movs r0, 0x2
- eors r0, r1
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121274
- adds r0, r1
- b _0812190E
- .align 2, 0
-_0812126C: .4byte gUnknown_02024A6A
-_08121270: .4byte gLinkPlayers
-_08121274: .4byte gPlayerParty
-_08121278:
- ldr r2, _0812129C
- ldr r1, _081212A0
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x18]
- movs r0, 0x3
- eors r0, r1
- lsls r0, 1
- adds r0, r2
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _081212A4
- adds r0, r1
- b _0812190E
- .align 2, 0
-_0812129C: .4byte gUnknown_02024A6A
-_081212A0: .4byte gLinkPlayers
-_081212A4: .4byte gEnemyParty
-_081212A8:
- ldr r4, _081212CC
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- adds r2, r4, 0
- cmp r0, 0
- beq _0812131C
- ldr r0, _081212D0
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- ldr r4, _081212D4
- cmp r0, 0
- beq _081212E6
- ldr r4, _081212D8
- b _081212E6
- .align 2, 0
-_081212CC: .4byte gUnknown_02024C07
-_081212D0: .4byte gUnknown_020239F8
-_081212D4: .4byte gUnknown_08400791
-_081212D8: .4byte gUnknown_08400797
-_081212DC:
- mov r3, r8
- adds r0, r3, r6
- strb r1, [r0]
- adds r6, 0x1
- adds r4, 0x1
-_081212E6:
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _081212DC
- ldrb r0, [r2]
- bl battle_get_per_side_status
- adds r1, r0, 0
- movs r0, 0x1
- ands r0, r1
- bl battle_get_side_with_given_state
- ldr r1, _08121314
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121318
- adds r0, r1
- b _0812190E
- .align 2, 0
-_08121314: .4byte gUnknown_02024A6A
-_08121318: .4byte gEnemyParty
-_0812131C:
- ldrb r0, [r2]
- bl battle_get_per_side_status
- adds r1, r0, 0
- movs r0, 0x1
- ands r0, r1
- bl battle_get_side_with_given_state
- ldr r1, _08121338
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- ldrh r1, [r0]
- b _0812193A
- .align 2, 0
-_08121338: .4byte gUnknown_02024A6A
-_0812133C:
- ldr r4, _08121370
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0812137C
- ldrb r0, [r4]
- bl battle_get_per_side_status
- adds r1, r0, 0
- movs r0, 0x1
- ands r0, r1
- bl battle_get_side_with_given_state
- ldr r1, _08121374
- lsls r0, 24
- lsrs r0, 23
- adds r0, 0x4
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121378
- adds r0, r1
- b _0812190E
- .align 2, 0
-_08121370: .4byte gUnknown_02024C07
-_08121374: .4byte gUnknown_02024A6A
-_08121378: .4byte gPlayerParty
-_0812137C:
- ldrb r0, [r4]
- bl battle_get_per_side_status
- adds r1, r0, 0
- movs r0, 0x1
- ands r0, r1
- bl battle_get_side_with_given_state
- ldr r1, _081213A0
- lsls r0, 24
- lsrs r0, 23
- adds r0, 0x4
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _081213A4
- b _08121940
- .align 2, 0
-_081213A0: .4byte gUnknown_02024A6A
-_081213A4: .4byte gEnemyParty
-_081213A8:
- ldr r5, _081213F4
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812140C
- ldr r0, _081213F8
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- ldr r4, _081213FC
- cmp r0, 0
- beq _081213C6
- ldr r4, _08121400
-_081213C6:
- ldrb r1, [r4]
- adds r0, r1, 0
- ldr r3, _08121404
- ldr r2, _08121408
- mov r12, r2
- adds r2, r5, 0
- cmp r0, 0xFF
- beq _081213E8
-_081213D6:
- mov r5, r8
- adds r0, r5, r6
- strb r1, [r0]
- adds r6, 0x1
- adds r4, 0x1
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _081213D6
-_081213E8:
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r1, [r0]
- b _08121908
- .align 2, 0
-_081213F4: .4byte gUnknown_02024C07
-_081213F8: .4byte gUnknown_020239F8
-_081213FC: .4byte gUnknown_08400791
-_08121400: .4byte gUnknown_08400797
-_08121404: .4byte gUnknown_02024A6A
-_08121408: .4byte gEnemyParty
-_0812140C:
- ldr r1, _08121418
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- b _0812193A
- .align 2, 0
-_08121418: .4byte gUnknown_02024A6A
-_0812141C:
- ldr r5, _08121468
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08121480
- ldr r0, _0812146C
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- ldr r4, _08121470
- cmp r0, 0
- beq _0812143A
- ldr r4, _08121474
-_0812143A:
- ldrb r1, [r4]
- adds r0, r1, 0
- ldr r3, _08121478
- ldr r2, _0812147C
- mov r12, r2
- adds r2, r5, 0
- cmp r0, 0xFF
- beq _0812145C
-_0812144A:
- mov r5, r8
- adds r0, r5, r6
- strb r1, [r0]
- adds r6, 0x1
- adds r4, 0x1
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _0812144A
-_0812145C:
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r1, [r0]
- b _08121908
- .align 2, 0
-_08121468: .4byte gUnknown_02024C08
-_0812146C: .4byte gUnknown_020239F8
-_08121470: .4byte gUnknown_08400791
-_08121474: .4byte gUnknown_08400797
-_08121478: .4byte gUnknown_02024A6A
-_0812147C: .4byte gEnemyParty
-_08121480:
- ldr r1, _0812148C
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- b _0812193A
- .align 2, 0
-_0812148C: .4byte gUnknown_02024A6A
-_08121490:
- ldr r5, _081214DC
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _081214F4
- ldr r0, _081214E0
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- ldr r4, _081214E4
- cmp r0, 0
- beq _081214AE
- ldr r4, _081214E8
-_081214AE:
- ldrb r1, [r4]
- adds r0, r1, 0
- ldr r3, _081214EC
- ldr r2, _081214F0
- mov r12, r2
- adds r2, r5, 0
- cmp r0, 0xFF
- beq _081214D0
-_081214BE:
- mov r5, r8
- adds r0, r5, r6
- strb r1, [r0]
- adds r6, 0x1
- adds r4, 0x1
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _081214BE
-_081214D0:
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r1, [r0]
- b _08121908
- .align 2, 0
-_081214DC: .4byte gUnknown_02024C0A
-_081214E0: .4byte gUnknown_020239F8
-_081214E4: .4byte gUnknown_08400791
-_081214E8: .4byte gUnknown_08400797
-_081214EC: .4byte gUnknown_02024A6A
-_081214F0: .4byte gEnemyParty
-_081214F4:
- ldr r1, _08121500
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- b _0812193A
- .align 2, 0
-_08121500: .4byte gUnknown_02024A6A
-_08121504:
- ldr r5, _08121550
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08121568
- ldr r0, _08121554
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- ldr r4, _08121558
- cmp r0, 0
- beq _08121522
- ldr r4, _0812155C
-_08121522:
- ldrb r1, [r4]
- adds r0, r1, 0
- ldr r3, _08121560
- ldr r2, _08121564
- mov r12, r2
- adds r2, r5, 0
- cmp r0, 0xFF
- beq _08121544
-_08121532:
- mov r5, r8
- adds r0, r5, r6
- strb r1, [r0]
- adds r6, 0x1
- adds r4, 0x1
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _08121532
-_08121544:
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r3
- ldrh r1, [r0]
- b _08121908
- .align 2, 0
-_08121550: .4byte gUnknown_02024A60
-_08121554: .4byte gUnknown_020239F8
-_08121558: .4byte gUnknown_08400791
-_0812155C: .4byte gUnknown_08400797
-_08121560: .4byte gUnknown_02024A6A
-_08121564: .4byte gEnemyParty
-_08121568:
- ldr r1, _08121574
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- b _0812193A
- .align 2, 0
-_08121574: .4byte gUnknown_02024A6A
-_08121578:
- ldr r4, _081215CC
- ldr r0, _081215D0
- adds r5, r4, r0
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- adds r2, r4, 0
- cmp r0, 0
- beq _081215E8
- ldr r0, _081215D4
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- ldr r4, _081215D8
- cmp r0, 0
- beq _0812159C
- ldr r4, _081215DC
-_0812159C:
- ldrb r1, [r4]
- adds r0, r1, 0
- ldr r3, _081215E0
- ldr r5, _081215E4
- mov r12, r5
- cmp r0, 0xFF
- beq _081215BC
-_081215AA:
- mov r5, r8
- adds r0, r5, r6
- strb r1, [r0]
- adds r6, 0x1
- adds r4, 0x1
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _081215AA
-_081215BC:
- ldr r1, _081215D0
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r3
- ldrh r1, [r0]
- b _08121908
- .align 2, 0
-_081215CC: .4byte 0x02000000
-_081215D0: .4byte 0x00016003
-_081215D4: .4byte gUnknown_020239F8
-_081215D8: .4byte gUnknown_08400791
-_081215DC: .4byte gUnknown_08400797
-_081215E0: .4byte gUnknown_02024A6A
-_081215E4: .4byte gEnemyParty
-_081215E8:
- ldr r1, _081215F4
- ldrb r0, [r5]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- b _0812193A
- .align 2, 0
-_081215F4: .4byte gUnknown_02024A6A
-_081215F8:
- ldr r0, _08121610
- ldr r2, [r0]
- ldrh r1, [r2]
- movs r0, 0xB1
- lsls r0, 1
- cmp r1, r0
- bls _0812161C
- ldr r0, _08121614
- ldr r2, _08121618
- adds r0, r2
- b _08121634
- .align 2, 0
-_08121610: .4byte gUnknown_02039270
-_08121614: .4byte 0x02000000
-_08121618: .4byte 0x000160a0
-_0812161C:
- ldrh r1, [r2]
- b _08121652
-_08121620:
- ldr r0, _08121640
- ldr r2, [r0]
- ldrh r1, [r2, 0x2]
- movs r0, 0xB1
- lsls r0, 1
- cmp r1, r0
- bls _08121650
- ldr r0, _08121644
- ldr r3, _08121648
- adds r0, r3
-_08121634:
- ldrb r0, [r0]
- lsls r0, 2
- ldr r1, _0812164C
- adds r4, r0, r1
- b _081219E6
- .align 2, 0
-_08121640: .4byte gUnknown_02039270
-_08121644: .4byte 0x02000000
-_08121648: .4byte 0x000160a0
-_0812164C: .4byte gUnknown_08401674
-_08121650:
- ldrh r1, [r2, 0x2]
-_08121652:
- movs r0, 0xD
- muls r1, r0
- ldr r0, _0812165C
- adds r4, r1, r0
- b _081219E6
- .align 2, 0
-_0812165C: .4byte gMoveNames
-_08121660:
- ldr r0, _081216AC
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081216D8
- ldr r1, _081216B0
- ldrh r0, [r1]
- cmp r0, 0xAF
- bne _081216D4
- ldr r2, _081216B4
- ldr r0, _081216B8
- ldr r5, _081216BC
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _081216C0
- ldrb r2, [r1]
- ldrh r0, [r0, 0x18]
- cmp r0, r2
- bne _081216CC
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- ldr r0, _081216C4
- adds r1, r0
- mov r0, sp
- bl StringCopy
- ldr r1, _081216C8
- mov r0, sp
- bl StringAppend
- mov r4, sp
- b _081219E6
- .align 2, 0
-_081216AC: .4byte gUnknown_020239F8
-_081216B0: .4byte gUnknown_02024C04
-_081216B4: .4byte gLinkPlayers
-_081216B8: .4byte 0x02000000
-_081216BC: .4byte 0x000160cb
-_081216C0: .4byte gUnknown_02024C0B
-_081216C4: .4byte gEnigmaBerries
-_081216C8: .4byte gUnknown_08400A85
-_081216CC:
- ldr r4, _081216D0
- b _081219E6
- .align 2, 0
-_081216D0: .4byte gUnknown_08400A78
-_081216D4:
- ldrh r0, [r1]
- b _081216DC
-_081216D8:
- ldr r0, _081216E8
- ldrh r0, [r0]
-_081216DC:
- mov r1, sp
- bl itemid_copy_name
- mov r4, sp
- b _081219E6
- .align 2, 0
-_081216E8: .4byte gUnknown_02024C04
-_081216EC:
- ldr r0, _081216F0
- b _08121734
- .align 2, 0
-_081216F0: .4byte byte_2024C06
-_081216F4:
- ldr r1, _081216FC
- ldr r0, _08121700
- b _08121730
- .align 2, 0
-_081216FC: .4byte gUnknown_0203926C
-_08121700: .4byte gUnknown_02024C07
-_08121704:
- ldr r1, _0812170C
- ldr r0, _08121710
- b _08121730
- .align 2, 0
-_0812170C: .4byte gUnknown_0203926C
-_08121710: .4byte gUnknown_02024C08
-_08121714:
- ldr r1, _08121720
- ldr r0, _08121724
- ldr r2, _08121728
- adds r0, r2
- b _08121730
- .align 2, 0
-_08121720: .4byte gUnknown_0203926C
-_08121724: .4byte 0x02000000
-_08121728: .4byte 0x00016003
-_0812172C:
- ldr r1, _08121740
- ldr r0, _08121744
-_08121730:
- ldrb r0, [r0]
- adds r0, r1
-_08121734:
- ldrb r1, [r0]
- movs r0, 0xD
- muls r1, r0
- ldr r0, _08121748
- adds r4, r1, r0
- b _081219E6
- .align 2, 0
-_08121740: .4byte gUnknown_0203926C
-_08121744: .4byte gUnknown_02024C0A
-_08121748: .4byte gAbilityNames
-_0812174C:
- ldr r3, _08121764
- ldrh r1, [r3]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _08121768
- bl GetSecretBaseTrainerNameIndex
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xD
- b _081217AE
- .align 2, 0
-_08121764: .4byte word_202FF5E
-_08121768:
- ldr r0, _08121784
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08121788
- bl get_trainer_class_name_index
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xD
- b _081217AE
- .align 2, 0
-_08121784: .4byte gUnknown_020239F8
-_08121788:
- movs r0, 0x80
- lsls r0, 4
- ands r0, r1
- cmp r0, 0
- beq _0812179E
- bl sub_8135FD8
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xD
- b _081217AE
-_0812179E:
- ldr r2, _081217B8
- ldrh r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r1, [r0, 0x1]
- movs r0, 0xD
-_081217AE:
- muls r1, r0
- ldr r0, _081217BC
- adds r4, r1, r0
- b _081219E6
- .align 2, 0
-_081217B8: .4byte gTrainers
-_081217BC: .4byte gTrainerClassNames
-_081217C0:
- ldr r2, _081217E4
- ldrh r1, [r2]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- bne _081217EC
- mov r0, sp
- movs r1, 0xFF
- movs r2, 0x8
- bl memset
- ldr r1, _081217E8
- mov r0, sp
- movs r2, 0x7
- bl memcpy
- mov r4, sp
- b _081219E6
- .align 2, 0
-_081217E4: .4byte word_202FF5E
-_081217E8: .4byte 0x02017002
-_081217EC:
- ldr r0, _08121804
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- beq _08121808
- mov r0, sp
- bl get_trainer_name
- mov r4, sp
- b _081219E6
- .align 2, 0
-_08121804: .4byte gUnknown_020239F8
-_08121808:
- movs r0, 0x80
- lsls r0, 4
- ands r0, r1
- cmp r0, 0
- beq _0812181C
- mov r0, sp
- bl sub_8135FF4
- mov r4, sp
- b _081219E6
-_0812181C:
- ldrh r0, [r2]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0812182C
- adds r4, r1, r0
- b _081219E6
- .align 2, 0
-_0812182C: .4byte gTrainers + 0x4
-_08121830:
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- ldr r1, _0812183C
- adds r4, r0, r1
- b _081219E6
- .align 2, 0
-_0812183C: .4byte gLinkPlayers + 0x8
-_08121840:
- ldr r4, _08121850
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x18]
- movs r0, 0x2
- b _08121876
- .align 2, 0
-_08121850: .4byte gLinkPlayers
-_08121854:
- ldr r4, _08121864
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x18]
- movs r0, 0x1
- b _08121876
- .align 2, 0
-_08121864: .4byte gLinkPlayers
-_08121868:
- ldr r4, _08121888
- lsls r0, r7, 3
- subs r0, r7
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r0, 0x18]
- movs r0, 0x3
-_08121876:
- eors r0, r1
- bl sub_803FC34
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r4, 0x8
- adds r4, r1, r4
- b _081219E6
- .align 2, 0
-_08121888: .4byte gLinkPlayers
-_0812188C:
- ldr r0, _081218A4
- ldr r3, _081218A8
- adds r0, r3
- ldrb r0, [r0]
- bl sub_803FC34
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- ldr r0, _081218AC
- adds r4, r1, r0
- b _081219E6
- .align 2, 0
-_081218A4: .4byte 0x02000000
-_081218A8: .4byte 0x00016003
-_081218AC: .4byte gLinkPlayers + 0x8
-_081218B0:
- ldr r4, _081218B4
- b _081219E6
- .align 2, 0
-_081218B4: .4byte gSaveBlock2
-_081218B8:
- bl sub_8082830
- adds r4, r0, 0
- b _081219E6
-_081218C0:
- ldr r5, _08121918
- ldr r1, _0812191C
- adds r0, r5, r1
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08121934
- ldr r0, _08121920
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- ldr r4, _08121924
- cmp r0, 0
- beq _081218E2
- ldr r4, _08121928
-_081218E2:
- ldrb r1, [r4]
- adds r0, r1, 0
- ldr r2, _0812192C
- mov r12, r2
- adds r2, r5, 0
- cmp r0, 0xFF
- beq _08121902
-_081218F0:
- mov r3, r8
- adds r0, r3, r6
- strb r1, [r0]
- adds r6, 0x1
- adds r4, 0x1
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _081218F0
-_08121902:
- ldr r5, _08121930
- adds r0, r2, r5
- ldrb r1, [r0]
-_08121908:
- movs r0, 0x64
- muls r0, r1
- add r0, r12
-_0812190E:
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- b _0812194A
- .align 2, 0
-_08121918: .4byte 0x02000000
-_0812191C: .4byte 0x00016003
-_08121920: .4byte gUnknown_020239F8
-_08121924: .4byte gUnknown_08400791
-_08121928: .4byte gUnknown_08400797
-_0812192C: .4byte gEnemyParty
-_08121930: .4byte 0x0001605e
-_08121934:
- ldr r1, _08121954
- adds r0, r5, r1
- ldrb r1, [r0]
-_0812193A:
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121958
-_08121940:
- adds r0, r1
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
-_0812194A:
- mov r0, sp
- bl StringGetEnd10
- mov r4, sp
- b _081219E6
- .align 2, 0
-_08121954: .4byte 0x0001605e
-_08121958: .4byte gPlayerParty
-_0812195C:
- ldr r0, _08121970
- bl FlagGet
- lsls r0, 24
- ldr r4, _08121974
- cmp r0, 0
- beq _081219E6
- ldr r4, _08121978
- b _081219E6
- .align 2, 0
-_08121970: .4byte 0x0000084b
-_08121974: .4byte gUnknown_084009ED
-_08121978: .4byte gUnknown_084009F7
-_0812197C:
- ldr r0, _08121980
- b _08121986
- .align 2, 0
-_08121980: .4byte gUnknown_02024C07
-_08121984:
- ldr r0, _08121998
-_08121986:
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- ldr r4, _0812199C
- cmp r0, 0
- bne _081219E6
- ldr r4, _081219A0
- b _081219E6
- .align 2, 0
-_08121998: .4byte gUnknown_02024C08
-_0812199C: .4byte gUnknown_084007A7
-_081219A0: .4byte gUnknown_084007AC
-_081219A4:
- ldr r0, _081219A8
- b _081219AE
- .align 2, 0
-_081219A8: .4byte gUnknown_02024C07
-_081219AC:
- ldr r0, _081219C0
-_081219AE:
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- ldr r4, _081219C4
- cmp r0, 0
- bne _081219E6
- ldr r4, _081219C8
- b _081219E6
- .align 2, 0
-_081219C0: .4byte gUnknown_02024C08
-_081219C4: .4byte gUnknown_0840079C
-_081219C8: .4byte gUnknown_084007A1
-_081219CC:
- ldr r0, _081219D0
- b _081219D6
- .align 2, 0
-_081219D0: .4byte gUnknown_02024C07
-_081219D4:
- ldr r0, _08121A24
-_081219D6:
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- ldr r4, _08121A28
- cmp r0, 0
- bne _081219E6
- ldr r4, _08121A2C
-_081219E6:
- ldrb r1, [r4]
- adds r0, r1, 0
- mov r3, r9
- ldrb r2, [r3]
- adds r3, 0x1
- cmp r0, 0xFF
- beq _08121A06
-_081219F4:
- mov r5, r8
- adds r0, r5, r6
- strb r1, [r0]
- adds r6, 0x1
- adds r4, 0x1
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _081219F4
-_08121A06:
- lsls r0, r2, 24
- lsrs r0, 24
- cmp r0, 0x21
- bne _08121A3C
- mov r0, r8
- adds r1, r0, r6
- movs r0, 0xFC
- strb r0, [r1]
- adds r6, 0x1
- mov r2, r8
- adds r1, r2, r6
- movs r0, 0x9
- strb r0, [r1]
- adds r6, 0x1
- b _08121A3C
- .align 2, 0
-_08121A24: .4byte gUnknown_02024C08
-_08121A28: .4byte gUnknown_084007B2
-_08121A2C: .4byte gUnknown_084007B7
-_08121A30:
- mov r3, r8
- adds r0, r3, r6
- strb r1, [r0]
- adds r6, 0x1
- mov r3, r9
- adds r3, 0x1
-_08121A3C:
- mov r9, r3
- ldrb r1, [r3]
-_08121A40:
- adds r0, r1, 0
- cmp r0, 0xFF
- beq _08121A4A
- bl _0812101E
-_08121A4A:
- mov r5, r8
- adds r1, r5, r6
- mov r2, r9
- ldrb r0, [r2]
- strb r0, [r1]
- adds r6, 0x1
- adds r0, r6, 0
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8120FFC
-
- thumb_func_start sub_8121A68
-sub_8121A68: @ 8121A68
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- adds r7, r0, 0
- adds r6, r1, 0
- movs r5, 0x1
- movs r0, 0
- mov r8, r0
- movs r0, 0xFF
- strb r0, [r6]
- ldrb r0, [r7, 0x1]
- cmp r0, 0xFF
- bne _08121A86
- b _08121D0E
-_08121A86:
- adds r0, r7, r5
- ldrb r1, [r0]
- adds r4, r0, 0
- cmp r1, 0xA
- bls _08121A92
- b _08121D04
-_08121A92:
- lsls r0, r1, 2
- ldr r1, _08121A9C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08121A9C: .4byte _08121AA0
- .align 2, 0
-_08121AA0:
- .4byte _08121ACC
- .4byte _08121AE8
- .4byte _08121B3C
- .4byte _08121B54
- .4byte _08121B64
- .4byte _08121BDC
- .4byte _08121BF0
- .4byte _08121C02
- .4byte _08121C48
- .4byte _08121C5C
- .4byte _08121C78
-_08121ACC:
- adds r0, r5, r7
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldr r0, _08121AE4
- subs r1, 0xC
- lsls r1, 2
- adds r1, r0
- ldr r1, [r1]
- b _08121CE2
- .align 2, 0
-_08121AE4: .4byte gUnknown_08400F8C
-_08121AE8:
- ldrb r0, [r4, 0x1]
- cmp r0, 0x2
- beq _08121B04
- cmp r0, 0x2
- bgt _08121AF8
- cmp r0, 0x1
- beq _08121AFE
- b _08121B26
-_08121AF8:
- cmp r0, 0x4
- beq _08121B0C
- b _08121B26
-_08121AFE:
- ldrb r4, [r4, 0x3]
- mov r8, r4
- b _08121B26
-_08121B04:
- ldrb r1, [r4, 0x3]
- ldrb r0, [r4, 0x4]
- lsls r0, 8
- b _08121B22
-_08121B0C:
- ldrb r0, [r4, 0x3]
- mov r8, r0
- ldrb r0, [r4, 0x4]
- lsls r0, 8
- mov r1, r8
- orrs r1, r0
- ldrb r0, [r4, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r4, 0x6]
- lsls r0, 24
-_08121B22:
- orrs r1, r0
- mov r8, r1
-_08121B26:
- adds r4, r5, r7
- ldrb r3, [r4, 0x2]
- adds r0, r6, 0
- mov r1, r8
- movs r2, 0
- bl ConvertIntToDecimalStringN
- adds r0, r5, 0x3
- ldrb r4, [r4, 0x1]
- adds r5, r0, r4
- b _08121D04
-_08121B3C:
- adds r0, r5, r7
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r1, r0
- movs r0, 0xD
- muls r1, r0
- ldr r0, _08121B50
- adds r1, r0
- b _08121CE2
- .align 2, 0
-_08121B50: .4byte gMoveNames
-_08121B54:
- adds r0, r5, r7
- ldrb r0, [r0, 0x1]
- lsls r1, r0, 3
- subs r1, r0
- ldr r0, _08121B60
- b _08121C66
- .align 2, 0
-_08121B60: .4byte gTypeNames
-_08121B64:
- ldrb r0, [r4, 0x1]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08121B88
- ldrb r1, [r4, 0x2]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121B84
- adds r0, r1
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- b _08121BC4
- .align 2, 0
-_08121B84: .4byte gPlayerParty
-_08121B88:
- ldr r0, _08121BA0
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08121BA8
- ldr r1, _08121BA4
- adds r0, r6, 0
- bl StringAppend
- b _08121BB0
- .align 2, 0
-_08121BA0: .4byte gUnknown_020239F8
-_08121BA4: .4byte gUnknown_08400797
-_08121BA8:
- ldr r1, _08121BD4
- adds r0, r6, 0
- bl StringAppend
-_08121BB0:
- adds r0, r5, r7
- ldrb r1, [r0, 0x2]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121BD8
- adds r0, r1
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
-_08121BC4:
- mov r0, sp
- bl StringGetEnd10
- adds r0, r6, 0
- mov r1, sp
- bl StringAppend
- b _08121D02
- .align 2, 0
-_08121BD4: .4byte gUnknown_08400791
-_08121BD8: .4byte gEnemyParty
-_08121BDC:
- ldr r1, _08121BEC
- adds r0, r5, r7
- ldrb r0, [r0, 0x1]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- b _08121C68
- .align 2, 0
-_08121BEC: .4byte gUnknown_08400F58
-_08121BF0:
- adds r0, r5, r7
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r1, r0
- adds r0, r6, 0
- bl GetSpeciesName
- b _08121D02
-_08121C02:
- adds r4, r5, r7
- ldrb r0, [r4, 0x1]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08121C28
- ldrb r1, [r4, 0x2]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121C24
- adds r0, r1
- movs r1, 0x2
- adds r2, r6, 0
- bl GetMonData
- b _08121C3A
- .align 2, 0
-_08121C24: .4byte gPlayerParty
-_08121C28:
- ldrb r1, [r4, 0x2]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08121C44
- adds r0, r1
- movs r1, 0x2
- adds r2, r6, 0
- bl GetMonData
-_08121C3A:
- adds r0, r6, 0
- bl StringGetEnd10
- b _08121D02
- .align 2, 0
-_08121C44: .4byte gEnemyParty
-_08121C48:
- ldr r1, _08121C58
- adds r0, r5, r7
- ldrb r0, [r0, 0x1]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- b _08121C68
- .align 2, 0
-_08121C58: .4byte gUnknown_08400F78
-_08121C5C:
- adds r0, r5, r7
- ldrb r1, [r0, 0x1]
- movs r0, 0xD
- muls r1, r0
- ldr r0, _08121C74
-_08121C66:
- adds r1, r0
-_08121C68:
- adds r0, r6, 0
- bl StringAppend
- adds r5, 0x2
- b _08121D04
- .align 2, 0
-_08121C74: .4byte gAbilityNames
-_08121C78:
- adds r0, r5, r7
- ldrb r2, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r2, r0
- ldr r0, _08121CC4
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08121CFA
- cmp r2, 0xAF
- bne _08121CF0
- ldr r2, _08121CC8
- ldr r0, _08121CCC
- ldr r1, _08121CD0
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _08121CD4
- ldrb r2, [r1]
- ldrh r0, [r0, 0x18]
- cmp r0, r2
- bne _08121CE0
- lsls r1, r2, 3
- subs r1, r2
- lsls r1, 2
- ldr r0, _08121CD8
- adds r1, r0
- adds r0, r6, 0
- bl StringCopy
- ldr r1, _08121CDC
- b _08121CE2
- .align 2, 0
-_08121CC4: .4byte gUnknown_020239F8
-_08121CC8: .4byte gLinkPlayers
-_08121CCC: .4byte 0x02000000
-_08121CD0: .4byte 0x000160cb
-_08121CD4: .4byte gUnknown_02024C0B
-_08121CD8: .4byte gEnigmaBerries
-_08121CDC: .4byte gUnknown_08400A85
-_08121CE0:
- ldr r1, _08121CEC
-_08121CE2:
- adds r0, r6, 0
- bl StringAppend
- b _08121D02
- .align 2, 0
-_08121CEC: .4byte gUnknown_08400A78
-_08121CF0:
- adds r0, r2, 0
- adds r1, r6, 0
- bl itemid_copy_name
- b _08121D02
-_08121CFA:
- adds r0, r2, 0
- adds r1, r6, 0
- bl itemid_copy_name
-_08121D02:
- adds r5, 0x3
-_08121D04:
- adds r0, r7, r5
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _08121D0E
- b _08121A86
-_08121D0E:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8121A68
-
- thumb_func_start sub_8121D1C
-sub_8121D1C: @ 8121D1C
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r2, 0
- ldr r5, _08121D50
- ldr r3, _08121D54
-_08121D26:
- cmp r2, 0x4
- beq _08121D3C
- ldrh r1, [r3]
- cmp r1, 0
- bne _08121D32
- adds r2, 0x1
-_08121D32:
- ldr r0, [r5]
- adds r3, 0x2
- ldrh r0, [r0]
- cmp r1, r0
- bne _08121D26
-_08121D3C:
- cmp r2, 0
- blt _08121D68
- cmp r2, 0x2
- bgt _08121D5C
- ldr r1, _08121D58
- adds r0, r4, 0
- bl StringCopy
- b _08121D68
- .align 2, 0
-_08121D50: .4byte gUnknown_02039270
-_08121D54: .4byte gUnknown_084016BC
-_08121D58: .4byte gUnknown_08400E5E
-_08121D5C:
- cmp r2, 0x4
- bgt _08121D68
- ldr r1, _08121D70
- adds r0, r4, 0
- bl StringCopy
-_08121D68:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08121D70: .4byte gUnknown_08400E62
- thumb_func_end sub_8121D1C
-
- thumb_func_start sub_8121D74
-sub_8121D74: @ 8121D74
- push {r4,r5,lr}
- adds r3, r0, 0
- movs r4, 0
- b _08121D7E
-_08121D7C:
- adds r3, 0x1
-_08121D7E:
- ldrb r0, [r3]
- cmp r0, 0xFF
- bne _08121D7C
- ldr r1, _08121DB4
- ldr r5, _08121DB8
- movs r0, 0
- lsls r0, 1
- adds r2, r0, r1
-_08121D8E:
- cmp r4, 0x4
- beq _08121DA8
- ldrh r1, [r2]
- cmp r1, 0
- bne _08121D9A
- adds r4, 0x1
-_08121D9A:
- ldr r0, [r5]
- adds r2, 0x2
- ldrh r0, [r0]
- cmp r1, r0
- bne _08121D8E
- cmp r4, 0x4
- bhi _08121E04
-_08121DA8:
- lsls r0, r4, 2
- ldr r1, _08121DBC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08121DB4: .4byte gUnknown_084016BC
-_08121DB8: .4byte gUnknown_02039270
-_08121DBC: .4byte _08121DC0
- .align 2, 0
-_08121DC0:
- .4byte _08121DD4
- .4byte _08121DDC
- .4byte _08121DE4
- .4byte _08121DEC
- .4byte _08121DFC
-_08121DD4:
- ldr r1, _08121DD8
- b _08121DEE
- .align 2, 0
-_08121DD8: .4byte gUnknown_084007C8
-_08121DDC:
- ldr r1, _08121DE0
- b _08121DEE
- .align 2, 0
-_08121DE0: .4byte gUnknown_084007CA
-_08121DE4:
- ldr r1, _08121DE8
- b _08121DEE
- .align 2, 0
-_08121DE8: .4byte gUnknown_084007CC
-_08121DEC:
- ldr r1, _08121DF8
-_08121DEE:
- adds r0, r3, 0
- bl StringCopy
- b _08121E04
- .align 2, 0
-_08121DF8: .4byte gUnknown_084007CE
-_08121DFC:
- ldr r1, _08121E0C
- adds r0, r3, 0
- bl StringCopy
-_08121E04:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08121E0C: .4byte gUnknown_084007D0
- thumb_func_end sub_8121D74
-
- thumb_func_start sub_8121E10
-sub_8121E10: @ 8121E10
- push {lr}
- bl sub_8121E58
- ldr r0, _08121E2C
- ldr r1, _08121E30
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x4
- bl sub_806AFAC
- pop {r0}
- bx r0
- .align 2, 0
-_08121E2C: .4byte 0x0201b000
-_08121E30: .4byte 0x00000263
- thumb_func_end sub_8121E10
-
- thumb_func_start sub_8121E34
-sub_8121E34: @ 8121E34
- push {lr}
- bl sub_8121E58
- ldr r0, _08121E50
- ldr r1, _08121E54
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- movs r0, 0x4
- movs r1, 0
- bl sub_806AFAC
- pop {r0}
- bx r0
- .align 2, 0
-_08121E50: .4byte 0x0201b000
-_08121E54: .4byte 0x00000263
- thumb_func_end sub_8121E34
-
- thumb_func_start sub_8121E58
-sub_8121E58: @ 8121E58
- push {lr}
- movs r1, 0
- ldr r3, _08121E74
- movs r2, 0
-_08121E60:
- adds r0, r1, r3
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bls _08121E60
- pop {r0}
- bx r0
- .align 2, 0
-_08121E74: .4byte gUnknown_02039270
- thumb_func_end sub_8121E58
-
- thumb_func_start sub_8121E78
-sub_8121E78: @ 8121E78
- push {r4-r6,lr}
- ldr r1, _08121E98
- 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 _08121E8E
- b _08122026
-_08121E8E:
- lsls r0, 2
- ldr r1, _08121E9C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08121E98: .4byte 0x0201b000
-_08121E9C: .4byte _08121EA0
- .align 2, 0
-_08121EA0:
- .4byte _08121EC0
- .4byte _08121F00
- .4byte _08121F14
- .4byte _08121F28
- .4byte _08121F54
- .4byte _08121F68
- .4byte _08121F6E
- .4byte _08121FF8
-_08121EC0:
- ldr r0, _08121EE8
- adds r5, r4, r0
- movs r1, 0
- ldrsh r3, [r5, r1]
- ldr r0, _08121EEC
- ldrb r0, [r0]
- cmp r3, r0
- bge _08121EF4
- movs r2, 0x98
- lsls r2, 2
- adds r0, r4, r2
- ldrb r0, [r0]
- ldrb r1, [r5]
- movs r2, 0x64
- muls r2, r3
- ldr r3, _08121EF0
- adds r2, r3
- bl sub_806D90C
- b _08122020
- .align 2, 0
-_08121EE8: .4byte 0x00000266
-_08121EEC: .4byte gPlayerPartyCount
-_08121EF0: .4byte gPlayerParty
-_08121EF4:
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r4, r0
- b _08121FE8
-_08121F00:
- bl sub_806DA98
- ldr r1, _08121F10
- movs r2, 0x99
- lsls r2, 2
- adds r1, r2
- b _08121FE8
- .align 2, 0
-_08121F10: .4byte 0x0201b000
-_08121F14:
- 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 _08121FE8
-_08121F28:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- ldr r2, _08121F50
- adds r5, r4, r2
- ldrb r1, [r5]
- bl sub_806BD58
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08122020
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r4, r0
- b _08121FE8
- .align 2, 0
-_08121F50: .4byte 0x00000266
-_08121F54:
- bl sub_806E334
- ldr r1, _08121F64
- movs r2, 0x99
- lsls r2, 2
- adds r1, r2
- b _08121FE8
- .align 2, 0
-_08121F64: .4byte 0x0201b000
-_08121F68:
- bl sub_806E0C4
- b _08121FE0
-_08121F6E:
- movs r5, 0
- b _08121FD8
-_08121F72:
- movs r4, 0
- adds r6, r5, 0x1
- b _08121F7E
-_08121F78:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_08121F7E:
- cmp r4, 0x2
- bhi _08121FA0
- ldr r0, _08121FC4
- adds r0, r4, r0
- ldrb r0, [r0]
- cmp r0, r6
- bne _08121F78
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 25
- movs r2, 0xE0
- lsls r2, 21
- adds r1, r2
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_806BC3C
-_08121FA0:
- cmp r4, 0x3
- bne _08121FD4
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08121FC8
- adds r0, r1
- bl sub_8122030
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08121FCC
- adds r0, r5, 0
- movs r1, 0x70
- bl sub_806BC3C
- b _08121FD4
- .align 2, 0
-_08121FC4: .4byte gUnknown_02039270
-_08121FC8: .4byte gPlayerParty
-_08121FCC:
- adds r0, r5, 0
- movs r1, 0x7E
- bl sub_806BC3C
-_08121FD4:
- lsls r0, r6, 24
- lsrs r5, r0, 24
-_08121FD8:
- ldr r0, _08121FF0
- ldrb r0, [r0]
- cmp r5, r0
- bcc _08121F72
-_08121FE0:
- ldr r1, _08121FF4
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
-_08121FE8:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _08122026
- .align 2, 0
-_08121FF0: .4byte gPlayerPartyCount
-_08121FF4: .4byte 0x0201b000
-_08121FF8:
- ldr r1, _0812201C
- adds r5, r4, r1
- ldrb r0, [r5]
- bl sub_806B58C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08122020
- movs r1, 0
- strh r1, [r5]
- movs r2, 0x99
- lsls r2, 2
- adds r0, r4, r2
- strh r1, [r0]
- movs r0, 0x1
- b _08122028
- .align 2, 0
-_0812201C: .4byte 0x00000266
-_08122020:
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_08122026:
- movs r0, 0
-_08122028:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8121E78
-
- thumb_func_start sub_8122030
-sub_8122030: @ 8122030
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _0812207C
- ldr r0, _08122058
- ldr r1, _0812205C
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08122060
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _0812207C
- b _081220B6
- .align 2, 0
-_08122058: .4byte 0x0201b000
-_0812205C: .4byte 0x00000263
-_08122060:
- ldr r0, _08122080
- ldr r1, _08122084
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08122088
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x32
- bls _08122088
-_0812207C:
- movs r0, 0
- b _081220B8
- .align 2, 0
-_08122080: .4byte gSaveBlock2
-_08122084: .4byte 0x00000554
-_08122088:
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r1, _081220C0
- movs r0, 0
- lsls r0, 1
- adds r2, r0, r1
- ldrh r0, [r2]
- ldr r1, _081220C4
- cmp r0, r1
- beq _081220B6
- adds r4, r1, 0
- adds r1, r2, 0
-_081220A8:
- ldrh r0, [r1]
- cmp r0, r3
- beq _0812207C
- adds r1, 0x2
- ldrh r0, [r1]
- cmp r0, r4
- bne _081220A8
-_081220B6:
- movs r0, 0x1
-_081220B8:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081220C0: .4byte gBattleTowerBanlist
-_081220C4: .4byte 0x0000ffff
- thumb_func_end sub_8122030
-
- thumb_func_start sub_81220C8
-sub_81220C8: @ 81220C8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r1, _081220EC
- ldr r2, _081220F0
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _081221A2
- ldr r0, _081220F4
- ldrb r0, [r0, 0x2]
- cmp r0, 0
- bne _08122100
- movs r0, 0x11
- b _081221A4
- .align 2, 0
-_081220EC: .4byte 0x0201b000
-_081220F0: .4byte 0x00000263
-_081220F4: .4byte gUnknown_02039270
-_081220F8:
- movs r0, 0x12
- b _081221A4
-_081220FC:
- movs r0, 0x13
- b _081221A4
-_08122100:
- movs r5, 0
-_08122102:
- ldr r4, _081221B4
- adds r4, r5, r4
- ldrb r0, [r4]
- movs r1, 0x64
- muls r0, r1
- ldr r2, _081221B8
- adds r0, r2
- movs r1, 0xB
- bl GetMonData
- ldr r1, _081221BC
- ldr r2, _081221C0
- adds r6, r1, r2
- strh r0, [r6]
- ldrb r0, [r4]
- movs r1, 0x64
- muls r0, r1
- ldr r2, _081221B8
- adds r0, r2
- movs r1, 0xC
- bl GetMonData
- ldr r1, _081221C4
- strh r0, [r1]
- adds r1, r5, 0x1
- lsls r0, r1, 24
- lsrs r5, r0, 24
- mov r10, r1
- cmp r5, 0x2
- bhi _08122198
- ldr r2, _081221C8
- adds r2, r6
- mov r9, r2
- movs r0, 0x64
- mov r8, r0
- ldr r7, _081221B8
-_0812214A:
- ldr r0, _081221C0
- add r0, r9
- movs r1, 0
- ldrsh r4, [r0, r1]
- ldr r0, _081221B4
- adds r6, r5, r0
- ldrb r0, [r6]
- mov r2, r8
- muls r2, r0
- adds r0, r2, 0
- adds r0, r7
- movs r1, 0xB
- bl GetMonData
- cmp r4, r0
- beq _081220F8
- movs r1, 0xA0
- lsls r1, 2
- add r1, r9
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0812218E
- adds r4, r0, 0
- ldrb r0, [r6]
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r0, r7
- movs r1, 0xC
- bl GetMonData
- cmp r4, r0
- beq _081220FC
-_0812218E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _0812214A
-_08122198:
- mov r2, r10
- lsls r0, r2, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bls _08122102
-_081221A2:
- movs r0, 0xFF
-_081221A4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081221B4: .4byte gUnknown_02039270
-_081221B8: .4byte gUnknown_030042FC
-_081221BC: .4byte 0x0201b000
-_081221C0: .4byte 0x00000282
-_081221C4: .4byte 0x0201b280
-_081221C8: .4byte 0xfffffd7e
- thumb_func_end sub_81220C8
-
- thumb_func_start sub_81221CC
-sub_81221CC: @ 81221CC
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r3, _081221E4
-_081221D6:
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _081221E8
- movs r0, 0x1
- b _081221F4
- .align 2, 0
-_081221E4: .4byte gUnknown_02039270
-_081221E8:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bls _081221D6
- movs r0, 0
-_081221F4:
- pop {r1}
- bx r1
- thumb_func_end sub_81221CC
-
- thumb_func_start sub_81221F8
-sub_81221F8: @ 81221F8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x5
- movs r1, 0x1
- bl sub_806D538
- ldr r5, _08122248
- ldrb r1, [r5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0812224C
- adds r0, r1
- bl sub_8122030
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08122284
- ldrb r0, [r5]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- bl sub_81221CC
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x1
- bne _0812225C
- ldr r1, _08122250
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x10]
- ldr r1, _08122254
- ldr r2, _08122258
- movs r0, 0x1
- b _08122270
- .align 2, 0
-_08122248: .4byte gUnknown_03005CE0
-_0812224C: .4byte gPlayerParty
-_08122250: .4byte gTasks
-_08122254: .4byte gUnknown_084017D8
-_08122258: .4byte gUnknown_084017B0
-_0812225C:
- ldr r1, _08122278
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x10]
- ldr r1, _0812227C
- ldr r2, _08122280
- movs r0, 0
-_08122270:
- movs r3, 0
- bl sub_806E750
- b _0812229E
- .align 2, 0
-_08122278: .4byte gTasks
-_0812227C: .4byte gUnknown_084017D8
-_08122280: .4byte gUnknown_084017B0
-_08122284:
- ldr r1, _081222A4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x10]
- ldr r1, _081222A8
- ldr r2, _081222AC
- movs r0, 0x2
- movs r3, 0
- bl sub_806E750
-_0812229E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081222A4: .4byte gTasks
-_081222A8: .4byte gUnknown_084017D8
-_081222AC: .4byte gUnknown_084017B0
- thumb_func_end sub_81221F8
-
- thumb_func_start sub_81222B0
-sub_81222B0: @ 81222B0
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _081222DC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0812237C
- adds r0, r4, 0
- bl sub_806BE38
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _081222E0
- cmp r0, 0x2
- beq _08122354
- b _0812237C
- .align 2, 0
-_081222DC: .4byte gPaletteFade
-_081222E0:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _08122320
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- beq _08122334
- ldrb r1, [r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08122324
- adds r0, r1
- ldr r1, _08122328
- bl GetMonNickname
- adds r0, r4, 0
- bl sub_81221F8
- ldr r1, _0812232C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08122330
- str r1, [r0]
- b _08122342
- .align 2, 0
-_08122320: .4byte gUnknown_03005CE0
-_08122324: .4byte gPlayerParty
-_08122328: .4byte gStringVar1
-_0812232C: .4byte gTasks
-_08122330: .4byte sub_812238C
-_08122334:
- ldr r0, _0812234C
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08122350
- str r0, [r1]
-_08122342:
- adds r0, r4, 0
- bl sub_808B5B4
- b _0812237C
- .align 2, 0
-_0812234C: .4byte gTasks
-_08122350: .4byte sub_81224A8
-_08122354:
- movs r0, 0x5
- bl PlaySE
- bl sub_8121E58
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08122384
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08122388
- str r1, [r0]
-_0812237C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08122384: .4byte gTasks
-_08122388: .4byte sub_8122450
- thumb_func_end sub_81222B0
-
- thumb_func_start sub_812238C
-sub_812238C: @ 812238C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- adds r4, r7, 0
- ldr r0, _081223C8
- ldrb r1, [r0, 0x7]
- movs r3, 0x80
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0812244A
- ldr r2, _081223CC
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _081223D0
- bl GetMenuCursorPos
- lsls r0, 24
- cmp r0, 0
- beq _0812244A
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _0812244A
- .align 2, 0
-_081223C8: .4byte gPaletteFade
-_081223CC: .4byte gMain
-_081223D0:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _081223F2
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _0812244A
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _0812244A
-_081223F2:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0812243C
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08122430
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrb r4, [r0, 0x10]
- ldr r5, _08122434
- ldr r6, _08122438
- 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 _0812244A
- .align 2, 0
-_08122430: .4byte gTasks
-_08122434: .4byte gUnknown_084017D8
-_08122438: .4byte gUnknown_084017B0
-_0812243C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0812244A
- adds r0, r4, 0
- bl sub_8122838
-_0812244A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812238C
-
- thumb_func_start sub_8122450
-sub_8122450: @ 8122450
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08122478
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08122470
- ldr r0, _0812247C
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08122470:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08122478: .4byte gPaletteFade
-_0812247C: .4byte gMain
- thumb_func_end sub_8122450
-
- thumb_func_start sub_8122480
-sub_8122480: @ 8122480
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _081224A4
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0812249A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081224A0
-_0812249A:
- adds r0, r2, 0
- bl sub_8122838
-_081224A0:
- pop {r0}
- bx r0
- .align 2, 0
-_081224A4: .4byte gMain
- thumb_func_end sub_8122480
-
- thumb_func_start sub_81224A8
-sub_81224A8: @ 81224A8
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_81220C8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _081224D0
- movs r1, 0
- bl sub_806D538
- ldr r0, _081224CC
- lsls r1, r4, 2
- adds r1, r4
- b _08122518
- .align 2, 0
-_081224CC: .4byte gTasks
-_081224D0:
- ldr r0, _081224F8
- ldrb r0, [r0]
- cmp r0, 0
- beq _08122504
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _081224FC
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08122500
- str r1, [r0]
- b _08122520
- .align 2, 0
-_081224F8: .4byte gUnknown_02039270
-_081224FC: .4byte gTasks
-_08122500: .4byte sub_8122450
-_08122504:
- movs r0, 0x20
- bl PlaySE
- movs r0, 0xE
- movs r1, 0
- bl sub_806D538
- ldr r0, _08122528
- lsls r1, r5, 2
- adds r1, r5
-_08122518:
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812252C
- str r0, [r1]
-_08122520:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08122528: .4byte gTasks
-_0812252C: .4byte sub_8122480
- thumb_func_end sub_81224A8
-
- thumb_func_start sub_8122530
-sub_8122530: @ 8122530
- push {r4,r5,lr}
- ldr r5, _08122578
- ldr r4, _0812257C
-_08122536:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08122590
- ldrb r0, [r5]
- ldrb r1, [r4]
- bl sub_806C994
- ldrb r0, [r5]
- movs r1, 0
- bl sub_806C658
- ldrb r1, [r4]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08122580
- adds r0, r1
- ldr r1, _08122584
- bl GetMonNickname
- ldr r1, _08122588
- ldrb r0, [r4]
- strb r0, [r1]
- ldrb r0, [r5]
- bl sub_81221F8
- ldr r0, _0812258C
- bl SetMainCallback2
- b _0812259C
- .align 2, 0
-_08122578: .4byte 0x0201b260
-_0812257C: .4byte gUnknown_020384F0
-_08122580: .4byte gPlayerParty
-_08122584: .4byte gStringVar1
-_08122588: .4byte gUnknown_03005CE0
-_0812258C: .4byte sub_806AEDC
-_08122590:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08122536
-_0812259C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8122530
-
- thumb_func_start sub_81225A4
-sub_81225A4: @ 81225A4
- push {lr}
- ldr r2, _081225C8
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r2, _081225CC
- movs r0, 0x4
- movs r1, 0xFF
- movs r3, 0x5
- bl sub_806AF4C
- ldr r0, _081225D0
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_081225C8: .4byte gPaletteFade
-_081225CC: .4byte sub_812238C
-_081225D0: .4byte sub_8122530
- thumb_func_end sub_81225A4
-
- thumb_func_start sub_81225D4
-sub_81225D4: @ 81225D4
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0812263C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08122632
- ldr r2, _08122640
- ldr r1, _08122644
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0xE]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r4, [r0, 0x2E]
- lsls r4, 24
- lsrs r4, 24
- adds r0, r3, 0
- bl DestroyTask
- ldr r0, _08122648
- ldr r1, _0812264C
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _08122650
- ldr r1, _08122654
- ldrb r2, [r1]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _08122658
- str r5, [sp]
- adds r1, r4, 0
- bl sub_809D8BC
-_08122632:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812263C: .4byte gPaletteFade
-_08122640: .4byte gSprites
-_08122644: .4byte gTasks
-_08122648: .4byte 0x0201b000
-_0812264C: .4byte 0x00000262
-_08122650: .4byte gPlayerParty
-_08122654: .4byte gPlayerPartyCount
-_08122658: .4byte sub_81225A4
- thumb_func_end sub_81225D4
-
- thumb_func_start sub_812265C
-sub_812265C: @ 812265C
- 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, _0812268C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08122690
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812268C: .4byte gTasks
-_08122690: .4byte sub_81225D4
- thumb_func_end sub_812265C
-
- thumb_func_start sub_8122694
-sub_8122694: @ 8122694
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r3, _081226D4
- ldr r2, _081226D8
-_081226A0:
- adds r1, r4, r3
- ldrb r0, [r1]
- cmp r0, 0
- bne _081226DC
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r1]
- ldrb r0, [r2]
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 25
- movs r2, 0xE0
- lsls r2, 21
- adds r1, r2
- lsrs r1, 24
- bl sub_806BC3C
- cmp r4, 0x2
- bne _081226CC
- adds r0, r5, 0
- bl sub_806C890
-_081226CC:
- adds r0, r5, 0
- bl sub_8122838
- b _08122716
- .align 2, 0
-_081226D4: .4byte gUnknown_02039270
-_081226D8: .4byte gUnknown_03005CE0
-_081226DC:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081226A0
- movs r0, 0x20
- bl PlaySE
- movs r0, 0x14
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_8072DEC
- bl sub_806D5A4
- ldr r0, _0812271C
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _08122720
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _08122724
- str r1, [r0]
-_08122716:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812271C: .4byte gOtherText_NoMoreThreePoke
-_08122720: .4byte gTasks
-_08122724: .4byte sub_8122728
- thumb_func_end sub_8122694
-
- thumb_func_start sub_8122728
-sub_8122728: @ 8122728
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08122768
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08122760
- ldr r0, _0812276C
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0812274A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08122760
-_0812274A:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_8072DEC
- adds r0, r4, 0
- bl sub_8122838
-_08122760:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08122768: .4byte gUnknown_0202E8F6
-_0812276C: .4byte gMain
- thumb_func_end sub_8122728
-
- thumb_func_start sub_8122770
-sub_8122770: @ 8122770
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- ldr r5, _08122798
- ldr r3, _0812279C
-_0812277C:
- adds r2, r4, r3
- ldrb r1, [r2]
- ldrb r0, [r5]
- adds r0, 0x1
- cmp r1, r0
- bne _081227B4
- movs r1, 0
- strb r1, [r2]
- cmp r4, 0
- beq _081227A0
- cmp r4, 0x1
- beq _081227AC
- b _081227BE
- .align 2, 0
-_08122798: .4byte gUnknown_03005CE0
-_0812279C: .4byte gUnknown_02039270
-_081227A0:
- ldrb r0, [r3, 0x1]
- strb r0, [r3]
- ldrb r0, [r3, 0x2]
- strb r0, [r3, 0x1]
- strb r4, [r3, 0x2]
- b _081227BE
-_081227AC:
- ldrb r0, [r3, 0x2]
- strb r0, [r3, 0x1]
- strb r1, [r3, 0x2]
- b _081227BE
-_081227B4:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0812277C
-_081227BE:
- ldrb r0, [r5]
- movs r1, 0x70
- bl sub_806BC3C
- ldr r4, _081227F8
- ldrb r0, [r4]
- cmp r0, 0
- beq _081227DA
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1C
- bl sub_806BC3C
-_081227DA:
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _081227EC
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2A
- bl sub_806BC3C
-_081227EC:
- adds r0, r6, 0
- bl sub_8122838
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081227F8: .4byte gUnknown_02039270
- thumb_func_end sub_8122770
-
- thumb_func_start sub_81227FC
-sub_81227FC: @ 81227FC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x14
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- bl sub_806D538
- ldr r1, _08122830
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08122834
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08122830: .4byte gTasks
-_08122834: .4byte sub_81222B0
- thumb_func_end sub_81227FC
-
- thumb_func_start sub_8122838
-sub_8122838: @ 8122838
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_81227FC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8122838
-
- thumb_func_start sub_8122854
-sub_8122854: @ 8122854
- push {r4,lr}
- ldr r1, _08122874
- movs r2, 0x99
- lsls r2, 2
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0x4
- bhi _081228E0
- lsls r0, 2
- ldr r1, _08122878
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08122874: .4byte 0x0201b000
-_08122878: .4byte _0812287C
- .align 2, 0
-_0812287C:
- .4byte _08122890
- .4byte _081228A4
- .4byte _081228AA
- .4byte _081228BE
- .4byte _081228D8
-_08122890:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_81228E8
- movs r2, 0x99
- lsls r2, 2
- adds r1, r4, r2
- b _081228CA
-_081228A4:
- bl sub_806DA98
- b _081228C2
-_081228AA:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- bl sub_8122950
- movs r2, 0x99
- lsls r2, 2
- adds r1, r4, r2
- b _081228CA
-_081228BE:
- bl sub_81229B8
-_081228C2:
- ldr r1, _081228D4
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
-_081228CA:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _081228E0
- .align 2, 0
-_081228D4: .4byte 0x0201b000
-_081228D8:
- bl sub_806B908
- movs r0, 0x1
- b _081228E2
-_081228E0:
- movs r0, 0
-_081228E2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8122854
-
- thumb_func_start sub_81228E8
-sub_81228E8: @ 81228E8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
-_081228F0:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08122948
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08122912
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x3
- adds r3, r4, 0
- bl sub_806D880
-_08122912:
- ldr r0, _0812294C
- lsls r1, r5, 5
- adds r3, r1, r0
- ldrh r0, [r3]
- cmp r0, 0
- beq _08122936
- adds r4, r5, 0x3
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0x3
- bl sub_806D99C
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_806D50C
-_08122936:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _081228F0
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08122948: .4byte gPlayerParty
-_0812294C: .4byte gUnknown_02023A00
- thumb_func_end sub_81228E8
-
- thumb_func_start sub_8122950
-sub_8122950: @ 8122950
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
-_08122958:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _081229B0
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08122984
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_806DCD4
-_08122984:
- ldr r0, _081229B4
- lsls r1, r5, 5
- adds r2, r1, r0
- ldrh r0, [r2]
- cmp r0, 0
- beq _0812299E
- adds r1, r5, 0x3
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r2, 0x2]
- adds r0, r6, 0
- bl sub_806DCD4
-_0812299E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _08122958
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081229B0: .4byte gPlayerParty
-_081229B4: .4byte gUnknown_02023A00
- thumb_func_end sub_8122950
-
- thumb_func_start sub_81229B8
-sub_81229B8: @ 81229B8
- push {r4-r7,lr}
- movs r5, 0
- movs r7, 0x64
- ldr r6, _08122A00
-_081229C0:
- adds r0, r5, 0
- muls r0, r7
- adds r4, r0, r6
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08122A36
- adds r0, r5, 0
- movs r1, 0x3
- adds r2, r4, 0
- bl sub_806E4A4
- adds r0, r4, 0
- bl sub_80A1CD8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08122A04
- cmp r0, 0x6
- beq _08122A04
- subs r2, r0, 0x1
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_806E104
- b _08122A12
- .align 2, 0
-_08122A00: .4byte gPlayerParty
-_08122A04:
- adds r2, r5, 0
- muls r2, r7
- adds r2, r6
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_806E294
-_08122A12:
- adds r4, r5, 0
- muls r4, r7
- adds r4, r6
- adds r0, r5, 0
- movs r1, 0x3
- adds r2, r4, 0
- bl sub_806E3C0
- adds r0, r5, 0
- movs r1, 0x3
- adds r2, r4, 0
- bl sub_806E050
- adds r0, r5, 0
- movs r1, 0x3
- adds r2, r4, 0
- bl sub_806E630
-_08122A36:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _081229C0
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81229B8
-
- thumb_func_start sub_8122A48
-sub_8122A48: @ 8122A48
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08122AA0
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08122A98
- ldr r0, _08122AA4
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- adds r4, r0
- movs r0, 0x1E
- strh r0, [r4, 0x8]
- ldr r5, _08122AA8
- ldrh r1, [r5]
- adds r0, r6, 0
- movs r2, 0
- bl sub_806D4AC
- ldrh r1, [r5, 0x20]
- adds r0, r6, 0
- movs r2, 0x1
- bl sub_806D4AC
- adds r5, 0x40
- ldrh r1, [r5]
- adds r0, r6, 0
- movs r2, 0x2
- bl sub_806D4AC
- ldr r0, _08122AAC
- str r0, [r4]
- ldr r0, _08122AB0
- ldr r1, _08122AB4
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_08122A98:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08122AA0: .4byte gPaletteFade
-_08122AA4: .4byte gTasks
-_08122AA8: .4byte gUnknown_02023A00
-_08122AAC: .4byte sub_8122AB8
-_08122AB0: .4byte 0x0201b000
-_08122AB4: .4byte 0x00000261
- thumb_func_end sub_8122A48
-
- thumb_func_start sub_8122AB8
-sub_8122AB8: @ 8122AB8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08122AFC
- ldrh r1, [r0, 0x20]
- adds r0, 0x40
- ldrh r2, [r0]
- adds r0, r4, 0
- bl sub_806D3B4
- ldr r1, _08122B00
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08122AF4
- ldr r0, _08122B04
- str r0, [r1]
- ldr r0, _08122B08
- ldr r1, _08122B0C
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- movs r0, 0x78
- bl PlaySE
-_08122AF4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08122AFC: .4byte gUnknown_02023A00
-_08122B00: .4byte gTasks
-_08122B04: .4byte sub_8122B10
-_08122B08: .4byte 0x0201b000
-_08122B0C: .4byte 0x00000261
- thumb_func_end sub_8122AB8
-
- thumb_func_start sub_8122B10
-sub_8122B10: @ 8122B10
- 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
- str r0, [sp, 0x4]
- movs r0, 0
- mov r8, r0
- ldr r1, _08122B5C
- mov r10, r1
- ldr r2, _08122B60
- mov r9, r2
-_08122B2E:
- mov r1, r8
- lsls r0, r1, 5
- mov r2, r10
- adds r6, r0, r2
- ldrh r1, [r6]
- adds r7, r0, 0
- cmp r1, 0
- beq _08122BDA
- mov r4, r8
- adds r4, 0x3
- lsls r0, r4, 24
- lsrs r5, r0, 24
- ldrh r2, [r6, 0x10]
- ldrh r3, [r6, 0x12]
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_806E420
- ldrh r0, [r6, 0x10]
- cmp r0, 0
- bne _08122B64
- movs r2, 0x7
- b _08122B76
- .align 2, 0
-_08122B5C: .4byte gUnknown_02023A00
-_08122B60: .4byte gStringVar1
-_08122B64:
- ldr r1, _08122B88
- adds r0, r7, r1
- ldr r0, [r0]
- bl pokemon_ailments_get_primary
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _08122B8C
-_08122B76:
- lsls r0, r4, 24
- lsrs r0, 24
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r1, 0x3
- bl sub_806E104
- b _08122B96
- .align 2, 0
-_08122B88: .4byte gUnknown_02023A14
-_08122B8C:
- ldrb r2, [r6, 0xF]
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_806E1F4
-_08122B96:
- mov r2, r10
- adds r6, r7, r2
- ldrh r0, [r6]
- ldrb r1, [r6, 0x1C]
- lsls r4, 24
- lsrs r4, 24
- ldr r2, _08122C0C
- adds r5, r7, r2
- str r5, [sp]
- movs r2, 0x3
- adds r3, r4, 0
- bl sub_806E35C
- mov r0, r9
- adds r1, r5, 0
- bl StringCopy
- mov r0, r9
- bl StringGetEnd10
- mov r0, r9
- bl sub_814A568
- adds r0, r4, 0
- movs r1, 0x3
- mov r2, r9
- bl box_print
- ldrh r2, [r6, 0x10]
- ldrh r3, [r6, 0x12]
- adds r0, r4, 0
- movs r1, 0x3
- bl sub_806E574
-_08122BDA:
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x2
- bls _08122B2E
- ldr r1, _08122C10
- ldr r2, [sp, 0x4]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldr r1, _08122C14
- str r1, [r0]
- movs r1, 0
- strh r1, [r0, 0x8]
- 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
-_08122C0C: .4byte gUnknown_02023A04
-_08122C10: .4byte gTasks
-_08122C14: .4byte sub_8122C18
- thumb_func_end sub_8122B10
-
- thumb_func_start sub_8122C18
-sub_8122C18: @ 8122C18
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08122C58
- 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
- movs r1, 0x80
- lsls r1, 17
- cmp r0, r1
- bne _08122C4E
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08122C5C
- str r0, [r4]
-_08122C4E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08122C58: .4byte gTasks
-_08122C5C: .4byte sub_8122450
- thumb_func_end sub_8122C18
-
- thumb_func_start unref_sub_8122C60
-unref_sub_8122C60: @ 8122C60
- push {r4,r5,lr}
- ldr r1, _08122C80
- 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 _08122C76
- b _08122D8A
-_08122C76:
- lsls r0, 2
- ldr r1, _08122C84
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08122C80: .4byte 0x0201b000
-_08122C84: .4byte _08122C88
- .align 2, 0
-_08122C88:
- .4byte _08122CA8
- .4byte _08122CE8
- .4byte _08122CEE
- .4byte _08122D02
- .4byte _08122D2C
- .4byte _08122D32
- .4byte _08122D44
- .4byte _08122D5C
-_08122CA8:
- ldr r0, _08122CD0
- adds r5, r4, r0
- movs r1, 0
- ldrsh r3, [r5, r1]
- ldr r0, _08122CD4
- ldrb r0, [r0]
- cmp r3, r0
- bge _08122CDC
- movs r2, 0x98
- lsls r2, 2
- adds r0, r4, r2
- ldrb r0, [r0]
- ldrb r1, [r5]
- movs r2, 0x64
- muls r2, r3
- ldr r3, _08122CD8
- adds r2, r3
- bl sub_806D90C
- b _08122D84
- .align 2, 0
-_08122CD0: .4byte 0x00000266
-_08122CD4: .4byte gPlayerPartyCount
-_08122CD8: .4byte gPlayerParty
-_08122CDC:
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r4, r0
- b _08122D50
-_08122CE8:
- bl sub_806DA98
- b _08122D48
-_08122CEE:
- 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 _08122D50
-_08122D02:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- ldr r2, _08122D28
- adds r5, r4, r2
- ldrb r1, [r5]
- bl sub_806BD58
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08122D84
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r4, r0
- b _08122D50
- .align 2, 0
-_08122D28: .4byte 0x00000266
-_08122D2C:
- bl sub_806E334
- b _08122D48
-_08122D32:
- bl sub_806E0C4
- ldr r1, _08122D40
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- b _08122D50
- .align 2, 0
-_08122D40: .4byte 0x0201b000
-_08122D44:
- bl sub_806BCE8
-_08122D48:
- ldr r1, _08122D58
- movs r2, 0x99
- lsls r2, 2
- adds r1, r2
-_08122D50:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _08122D8A
- .align 2, 0
-_08122D58: .4byte 0x0201b000
-_08122D5C:
- ldr r0, _08122D80
- adds r5, r4, r0
- ldrb r0, [r5]
- bl sub_806B58C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08122D84
- movs r1, 0
- strh r1, [r5]
- movs r2, 0x99
- lsls r2, 2
- adds r0, r4, r2
- strh r1, [r0]
- movs r0, 0x1
- b _08122D8C
- .align 2, 0
-_08122D80: .4byte 0x00000266
-_08122D84:
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_08122D8A:
- movs r0, 0
-_08122D8C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8122C60
-
- thumb_func_start sub_8122D94
-sub_8122D94: @ 8122D94
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08122DCC
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08122DD0
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- adds r2, r0, 0
- cmp r2, 0
- bne _08122DE0
- ldr r1, _08122DD4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x10]
- ldr r1, _08122DD8
- ldr r2, _08122DDC
- movs r0, 0
- movs r3, 0
- bl sub_806E750
- b _08122DFA
- .align 2, 0
-_08122DCC: .4byte gUnknown_03005CE0
-_08122DD0: .4byte gPlayerParty
-_08122DD4: .4byte gTasks
-_08122DD8: .4byte gUnknown_08401810
-_08122DDC: .4byte gUnknown_084017F0
-_08122DE0:
- ldr r1, _08122E00
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x10]
- ldr r1, _08122E04
- ldr r2, _08122E08
- movs r0, 0x1
- movs r3, 0
- bl sub_806E750
-_08122DFA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08122E00: .4byte gTasks
-_08122E04: .4byte gUnknown_08401810
-_08122E08: .4byte gUnknown_084017F0
- thumb_func_end sub_8122D94
-
- thumb_func_start sub_8122E0C
-sub_8122E0C: @ 8122E0C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08122E34
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08122E9C
- adds r0, r4, 0
- bl sub_806BD80
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _08122E38
- cmp r0, 0x2
- beq _08122E84
- b _08122E9C
- .align 2, 0
-_08122E34: .4byte gPaletteFade
-_08122E38:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_806CA38
- ldr r1, _08122E70
- strb r0, [r1]
- ldrb r1, [r1]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08122E74
- adds r0, r1
- ldr r1, _08122E78
- bl GetMonNickname
- adds r0, r4, 0
- bl sub_8122D94
- ldr r1, _08122E7C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08122E80
- str r1, [r0]
- b _08122E9C
- .align 2, 0
-_08122E70: .4byte gUnknown_03005CE0
-_08122E74: .4byte gPlayerParty
-_08122E78: .4byte gStringVar1
-_08122E7C: .4byte gTasks
-_08122E80: .4byte sub_8122EAC
-_08122E84:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08122EA4
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, _08122EA8
- movs r0, 0xFF
- strh r0, [r1]
- adds r0, r4, 0
- bl sub_8123138
-_08122E9C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08122EA4: .4byte gUnknown_03005CE0
-_08122EA8: .4byte gUnknown_0202E8CC
- thumb_func_end sub_8122E0C
-
- thumb_func_start sub_8122EAC
-sub_8122EAC: @ 8122EAC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- adds r4, r7, 0
- ldr r0, _08122EE8
- ldrb r1, [r0, 0x7]
- movs r3, 0x80
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _08122F6A
- ldr r2, _08122EEC
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08122EF0
- bl GetMenuCursorPos
- lsls r0, 24
- cmp r0, 0
- beq _08122F6A
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _08122F6A
- .align 2, 0
-_08122EE8: .4byte gPaletteFade
-_08122EEC: .4byte gMain
-_08122EF0:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08122F12
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- beq _08122F6A
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _08122F6A
-_08122F12:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08122F5C
- movs r0, 0x5
- bl PlaySE
- ldr r1, _08122F50
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrb r4, [r0, 0x10]
- ldr r5, _08122F54
- ldr r6, _08122F58
- 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 _08122F6A
- .align 2, 0
-_08122F50: .4byte gTasks
-_08122F54: .4byte gUnknown_08401810
-_08122F58: .4byte gUnknown_084017F0
-_08122F5C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08122F6A
- adds r0, r4, 0
- bl sub_81230F4
-_08122F6A:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8122EAC
-
- thumb_func_start sub_8122F70
-sub_8122F70: @ 8122F70
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08122F88
- ldr r1, _08122F8C
- ldrb r1, [r1]
- strh r1, [r2]
- bl sub_8123138
- pop {r0}
- bx r0
- .align 2, 0
-_08122F88: .4byte gUnknown_0202E8CC
-_08122F8C: .4byte gUnknown_03005CE0
- thumb_func_end sub_8122F70
-
- thumb_func_start sub_8122F90
-sub_8122F90: @ 8122F90
- push {r4,r5,lr}
- ldr r5, _08122FD8
- ldr r4, _08122FDC
-_08122F96:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08122FF0
- ldrb r0, [r5]
- ldrb r1, [r4]
- bl sub_806C994
- ldrb r0, [r5]
- movs r1, 0
- bl sub_806BF74
- ldrb r1, [r4]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08122FE0
- adds r0, r1
- ldr r1, _08122FE4
- bl GetMonNickname
- ldr r1, _08122FE8
- ldrb r0, [r4]
- strb r0, [r1]
- ldrb r0, [r5]
- bl sub_8122D94
- ldr r0, _08122FEC
- bl SetMainCallback2
- b _08122FFC
- .align 2, 0
-_08122FD8: .4byte 0x0201b260
-_08122FDC: .4byte gUnknown_020384F0
-_08122FE0: .4byte gPlayerParty
-_08122FE4: .4byte gStringVar1
-_08122FE8: .4byte gUnknown_03005CE0
-_08122FEC: .4byte sub_806AEDC
-_08122FF0:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08122F96
-_08122FFC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8122F90
-
- thumb_func_start sub_8123004
-sub_8123004: @ 8123004
- push {lr}
- ldr r2, _08123028
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r2, _0812302C
- movs r0, 0x6
- movs r1, 0xFF
- movs r3, 0x5
- bl sub_806AF4C
- ldr r0, _08123030
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_08123028: .4byte gPaletteFade
-_0812302C: .4byte sub_8122EAC
-_08123030: .4byte sub_8122F90
- thumb_func_end sub_8123004
-
- thumb_func_start sub_8123034
-sub_8123034: @ 8123034
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0812309C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08123092
- ldr r2, _081230A0
- ldr r1, _081230A4
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0xE]
- lsls r1, 16
- asrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r4, [r0, 0x2E]
- lsls r4, 24
- lsrs r4, 24
- adds r0, r3, 0
- bl DestroyTask
- ldr r0, _081230A8
- ldr r1, _081230AC
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _081230B0
- ldr r1, _081230B4
- ldrb r2, [r1]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _081230B8
- str r5, [sp]
- adds r1, r4, 0
- bl sub_809D8BC
-_08123092:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812309C: .4byte gPaletteFade
-_081230A0: .4byte gSprites
-_081230A4: .4byte gTasks
-_081230A8: .4byte 0x0201b000
-_081230AC: .4byte 0x00000262
-_081230B0: .4byte gPlayerParty
-_081230B4: .4byte gPlayerPartyCount
-_081230B8: .4byte sub_8123004
- thumb_func_end sub_8123034
-
- thumb_func_start sub_81230BC
-sub_81230BC: @ 81230BC
- 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, _081230EC
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _081230F0
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081230EC: .4byte gTasks
-_081230F0: .4byte sub_8123034
- thumb_func_end sub_81230BC
-
- thumb_func_start sub_81230F4
-sub_81230F4: @ 81230F4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x14
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_8072DEC
- movs r0, 0xF
- movs r1, 0
- bl sub_806D538
- ldr r1, _08123130
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08123134
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08123130: .4byte gTasks
-_08123134: .4byte sub_8122E0C
- thumb_func_end sub_81230F4
-
- thumb_func_start sub_8123138
-sub_8123138: @ 8123138
- 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, _08123168
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0812316C
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08123168: .4byte gTasks
-_0812316C: .4byte sub_8123170
- thumb_func_end sub_8123138
-
- thumb_func_start sub_8123170
-sub_8123170: @ 8123170
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0812319C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08123194
- ldr r0, _081231A0
- ldr r1, _081231A4
- str r1, [r0]
- ldr r0, _081231A8
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08123194:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812319C: .4byte gPaletteFade
-_081231A0: .4byte gUnknown_0300485C
-_081231A4: .4byte sub_81231AC
-_081231A8: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_8123170
-
- thumb_func_start sub_81231AC
-sub_81231AC: @ 81231AC
- push {lr}
- bl pal_fill_black
- ldr r0, _081231C0
- movs r1, 0xA
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_081231C0: .4byte sub_81231C4
- thumb_func_end sub_81231AC
-
- thumb_func_start sub_81231C4
-sub_81231C4: @ 81231C4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081231E4
- adds r0, r4, 0
- bl DestroyTask
- bl ScriptContext2_Disable
- bl EnableBothScriptContexts
-_081231E4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81231C4
-
- thumb_func_start sub_81231EC
-sub_81231EC: @ 81231EC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08123210
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0812320A
- ldr r0, _08123214
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_0812320A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08123210: .4byte gPaletteFade
-_08123214: .4byte sub_8123244
- thumb_func_end sub_81231EC
-
- thumb_func_start sub_8123218
-sub_8123218: @ 8123218
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- ldr r0, _08123240
- movs r1, 0x1
- 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
-_08123240: .4byte sub_81231EC
- thumb_func_end sub_8123218
-
- thumb_func_start sub_8123244
-sub_8123244: @ 8123244
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- ldr r1, _08123268
- ldr r2, _0812326C
- adds r0, r1, r2
- ldrb r0, [r0]
- mov r9, r1
- cmp r0, 0x8
- bhi _08123298
- lsls r0, 2
- ldr r1, _08123270
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08123268: .4byte gMain
-_0812326C: .4byte 0x0000043c
-_08123270: .4byte _08123274
- .align 2, 0
-_08123274:
- .4byte _08123298
- .4byte _08123384
- .4byte _081233E8
- .4byte _08123484
- .4byte _081234A0
- .4byte _08123504
- .4byte _08123598
- .4byte _08123678
- .4byte _081236B0
-_08123298:
- movs r0, 0
- bl SetVBlankCallback
- bl remove_some_task
- movs r3, 0xC0
- lsls r3, 19
- movs r4, 0xC0
- lsls r4, 9
- add r0, sp, 0xC
- mov r9, r0
- add r2, sp, 0x8
- movs r6, 0
- ldr r1, _08123368
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _0812336C
- movs r0, 0x81
- lsls r0, 24
- mov r8, r0
-_081232C0:
- strh r6, [r2]
- add r0, sp, 0x8
- 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 _081232C0
- strh r6, [r2]
- add r2, sp, 0x8
- str r2, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r4, 1
- mov r2, r8
- 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, 0xC]
- ldr r2, _08123368
- mov r1, r9
- 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, 0x8
- strh r4, [r0]
- str r0, [r2]
- str r1, [r2, 0x4]
- lsrs r3, 1
- movs r4, 0x81
- lsls r4, 24
- orrs r3, r4
- str r3, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r1, _08123370
- ldr r0, _08123374
- str r0, [r1]
- adds r3, r0, 0
- ldr r5, _08123378
- ldr r0, _0812337C
- mov r9, r0
- add r1, sp, 0x8
- movs r7, 0
- movs r6, 0x80
- lsls r6, 5
- ldr r0, _0812336C
- mov r8, r0
-_08123338:
- strh r7, [r1]
- add r0, sp, 0x8
- str r0, [r2]
- str r3, [r2, 0x4]
- mov r0, r8
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- adds r3, r6
- subs r5, r6
- cmp r5, r6
- bhi _08123338
- strh r7, [r1]
- add r1, sp, 0x8
- str r1, [r2]
- str r3, [r2, 0x4]
- lsrs r0, r5, 1
- orrs r0, r4
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r1, _08123380
- add r1, r9
- ldrb r0, [r1]
- adds r0, 0x1
- b _0812370C
- .align 2, 0
-_08123368: .4byte 0x040000d4
-_0812336C: .4byte 0x81000800
-_08123370: .4byte gUnknown_02039274
-_08123374: .4byte 0x02017000
-_08123378: .4byte 0x000010fc
-_0812337C: .4byte gMain
-_08123380: .4byte 0x0000043c
-_08123384:
- bl ResetSpriteData
- bl ResetTasks
- bl FreeAllSpritePalettes
- bl ResetPaletteFade
- bl sub_807C828
- movs r4, 0
- ldr r0, _081233D4
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0xF0
- movs r2, 0
-_081233A4:
- lsls r0, r4, 2
- adds r0, r1, r0
- str r2, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x13
- bls _081233A4
- bl InitMapMusic
- bl ResetMapMusic
- ldr r2, _081233D8
- ldr r1, _081233DC
- movs r0, 0
- strh r0, [r1]
- strh r0, [r2]
- ldr r1, _081233E0
- ldr r2, _081233E4
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- b _0812370C
- .align 2, 0
-_081233D4: .4byte gUnknown_08396FC4
-_081233D8: .4byte gSpriteCoordOffsetX
-_081233DC: .4byte gSpriteCoordOffsetY
-_081233E0: .4byte gMain
-_081233E4: .4byte 0x0000043c
-_081233E8:
- movs r4, 0
- ldr r5, _08123454
-_081233EC:
- lsls r0, r4, 3
- adds r0, r5
- bl LoadCompressedObjectPic
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081233EC
- ldr r0, _08123458
- bl LoadSpritePalettes
- ldr r0, _0812345C
- ldr r4, _08123460
- adds r1, r4, 0
- bl sub_800D238
- ldr r0, _08123464
- movs r2, 0xB4
- lsls r2, 1
- adds r1, r4, r2
- bl sub_800D238
- ldr r0, _08123468
- movs r2, 0xA5
- lsls r2, 3
- adds r1, r4, r2
- bl sub_800D238
- ldr r0, _0812346C
- ldr r1, _08123470
- adds r4, r1
- adds r1, r4, 0
- bl sub_800D238
- ldr r0, _08123474
- movs r1, 0
- movs r2, 0x80
- bl LoadPalette
- ldr r0, _08123478
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r1, _0812347C
- ldr r2, _08123480
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- b _0812370C
- .align 2, 0
-_08123454: .4byte gUnknown_08401CF8
-_08123458: .4byte gUnknown_08401D18
-_0812345C: .4byte gCableCarMtChimneyTilemap
-_08123460: .4byte 0x02019000
-_08123464: .4byte gCableCarTreeTilemap
-_08123468: .4byte gCableCarMountainTilemap
-_0812346C: .4byte gCableCarPylonStemTilemap
-_08123470: .4byte 0x000009d8
-_08123474: .4byte gCableCarBG_Pal
-_08123478: .4byte gCableCarBG_Gfx
-_0812347C: .4byte gMain
-_08123480: .4byte 0x0000043c
-_08123484:
- bl sub_8124118
- bl RunTasks
- ldr r1, _08123498
- ldr r0, _0812349C
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- b _0812370C
- .align 2, 0
-_08123498: .4byte gMain
-_0812349C: .4byte 0x0000043c
-_081234A0:
- ldr r0, _081234B4
- ldr r0, [r0]
- ldrb r0, [r0, 0x2]
- cmp r0, 0x7
- bne _081234BC
- ldr r1, _081234B8
- add r1, r9
- ldrb r0, [r1]
- adds r0, 0x1
- b _0812370C
- .align 2, 0
-_081234B4: .4byte gUnknown_02039274
-_081234B8: .4byte 0x0000043c
-_081234BC:
- ldr r0, _081234FC
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0xF0
- ldr r0, [r1]
- cmp r0, 0
- bne _081234CC
- b _0812370E
-_081234CC:
- movs r4, 0
- adds r3, r1, 0
- movs r5, 0xD
- negs r5, r5
-_081234D4:
- lsls r0, r4, 2
- adds r0, r3, r0
- ldr r2, [r0]
- cmp r2, 0
- beq _081234E6
- ldrb r1, [r2, 0x5]
- adds r0, r5, 0
- ands r0, r1
- strb r0, [r2, 0x5]
-_081234E6:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x13
- bls _081234D4
- ldr r1, _08123500
- add r1, r9
- ldrb r0, [r1]
- adds r0, 0x1
- b _0812370C
- .align 2, 0
-_081234FC: .4byte gUnknown_08396FC4
-_08123500: .4byte 0x0000043c
-_08123504:
- ldr r0, _08123578
- ldr r5, _0812357C
- movs r1, 0x20
- str r1, [sp]
- movs r1, 0xF
- str r1, [sp, 0x4]
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0x11
- bl sub_8124F08
- ldr r0, _08123580
- movs r2, 0xF0
- lsls r2, 2
- adds r1, r5, r2
- movs r2, 0x1E
- str r2, [sp]
- movs r2, 0x14
- mov r9, r2
- str r2, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_8124F08
- ldr r0, _08123584
- mov r8, r0
- ldr r0, [r0]
- ldr r6, _08123588
- adds r0, r6
- ldr r1, _0812358C
- movs r2, 0x5
- str r2, [sp]
- movs r4, 0x2
- str r4, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_8124F08
- mov r1, r8
- ldr r0, [r1]
- adds r0, r6
- movs r2, 0x87
- lsls r2, 4
- adds r5, r2
- str r4, [sp]
- mov r1, r9
- str r1, [sp, 0x4]
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0x2
- bl sub_8124F08
- ldr r1, _08123590
- ldr r2, _08123594
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- b _0812370C
- .align 2, 0
-_08123578: .4byte 0x0600e800
-_0812357C: .4byte 0x02019168
-_08123580: .4byte 0x0600f000
-_08123584: .4byte gUnknown_02039274
-_08123588: .4byte 0x000008fc
-_0812358C: .4byte gCableCarPylonHookTilemapEntries
-_08123590: .4byte gMain
-_08123594: .4byte 0x0000043c
-_08123598:
- ldr r0, _08123664
- ldrb r0, [r0]
- bl sub_81248AC
- ldr r0, _08123668
- mov r8, r0
- ldr r0, [r0]
- adds r0, 0xFC
- ldr r4, _0812366C
- movs r6, 0xC
- str r6, [sp]
- movs r5, 0x3
- str r5, [sp, 0x4]
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0xE
- bl sub_8124F08
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0xFC
- adds r1, r4, 0
- adds r1, 0x48
- str r6, [sp]
- str r5, [sp, 0x4]
- movs r2, 0xC
- movs r3, 0x11
- bl sub_8124F08
- mov r2, r8
- ldr r0, [r2]
- adds r0, 0xFC
- adds r1, r4, 0
- adds r1, 0x90
- str r6, [sp]
- str r5, [sp, 0x4]
- movs r2, 0x18
- movs r3, 0x14
- bl sub_8124F08
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0xFC
- movs r2, 0x90
- negs r2, r2
- adds r2, r4
- mov r9, r2
- str r6, [sp]
- str r5, [sp, 0x4]
- mov r1, r9
- movs r2, 0
- movs r3, 0x11
- bl sub_8124F08
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0xFC
- subs r4, 0x48
- str r6, [sp]
- str r5, [sp, 0x4]
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x14
- bl sub_8124F08
- mov r2, r8
- ldr r0, [r2]
- adds r0, 0xFC
- str r6, [sp]
- str r5, [sp, 0x4]
- mov r1, r9
- movs r2, 0xC
- movs r3, 0x14
- bl sub_8124F08
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0xFC
- str r6, [sp]
- str r5, [sp, 0x4]
- adds r1, r4, 0
- movs r2, 0xC
- movs r3, 0x17
- bl sub_8124F08
- mov r2, r8
- ldr r0, [r2]
- adds r0, 0xFC
- str r6, [sp]
- str r5, [sp, 0x4]
- mov r1, r9
- movs r2, 0x18
- movs r3, 0x17
- bl sub_8124F08
- ldr r1, _08123670
- ldr r0, _08123674
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- b _0812370C
- .align 2, 0
-_08123664: .4byte gUnknown_0202E8CC
-_08123668: .4byte gUnknown_02039274
-_0812366C: .4byte 0x02019090
-_08123670: .4byte gMain
-_08123674: .4byte 0x0000043c
-_08123678:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r1, 0x3
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _081236A4
- movs r1, 0x1
- bl FadeInNewBGM
- movs r0, 0x1
- bl sub_8123FBC
- ldr r1, _081236A8
- ldr r2, _081236AC
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- b _0812370C
- .align 2, 0
-_081236A4: .4byte 0x000001a9
-_081236A8: .4byte gMain
-_081236AC: .4byte 0x0000043c
-_081236B0:
- ldr r3, _081236E4
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _081236E8
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r0, _081236EC
- bl SetVBlankCallback
- ldr r0, _081236F0
- bl SetMainCallback2
- ldr r0, _081236F4
- movs r1, 0
- bl CreateTask
- ldr r0, _081236F8
- ldrh r0, [r0]
- cmp r0, 0
- bne _08123700
- ldr r0, _081236FC
- b _08123702
- .align 2, 0
-_081236E4: .4byte 0x04000208
-_081236E8: .4byte 0x04000200
-_081236EC: .4byte sub_8123C40
-_081236F0: .4byte mainloop
-_081236F4: .4byte sub_8123878
-_081236F8: .4byte gUnknown_0202E8CC
-_081236FC: .4byte sub_81239E4
-_08123700:
- ldr r0, _0812371C
-_08123702:
- movs r1, 0x1
- bl CreateTask
- ldr r1, _08123720
- ldr r1, [r1]
-_0812370C:
- strb r0, [r1]
-_0812370E:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812371C: .4byte sub_8123AF8
-_08123720: .4byte gUnknown_02039274
- thumb_func_end sub_8123244
-
- thumb_func_start mainloop
-mainloop: @ 8123724
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- bl MapMusicMain
- pop {r0}
- bx r0
- thumb_func_end mainloop
-
- thumb_func_start sub_8123740
-sub_8123740: @ 8123740
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r4, 0
- movs r0, 0
- bl sub_8123FBC
- ldr r0, _08123854
- strh r4, [r0]
- movs r0, 0
- bl sub_807C9B4
- add r7, sp, 0x4
- ldr r0, _08123858
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0xF0
- movs r2, 0
-_08123766:
- lsls r0, r4, 2
- adds r0, r1, r0
- str r2, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x13
- bls _08123766
- bl ResetTasks
- bl ResetSpriteData
- bl ResetPaletteFade
- ldr r2, _0812385C
- movs r3, 0x80
- lsls r3, 10
- movs r5, 0
- ldr r1, _08123860
- movs r4, 0x80
- lsls r4, 5
- ldr r6, _08123864
- movs r0, 0x85
- lsls r0, 24
- mov r12, r0
-_08123798:
- 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 _08123798
- str r5, [sp]
- mov r0, sp
- str r0, [r1]
- str r2, [r1, 0x4]
- lsrs r0, r3, 2
- mov r2, r12
- orrs r0, r2
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, _08123868
- movs r0, 0
- str r0, [r1]
- movs r3, 0xC0
- lsls r3, 19
- movs r4, 0xC0
- lsls r4, 9
- adds r2, r7, 0
- movs r6, 0
- ldr r1, _08123860
- movs r5, 0x80
- lsls r5, 5
- ldr r0, _0812386C
- mov r12, r0
- movs r0, 0x81
- lsls r0, 24
- mov r8, r0
-_081237E0:
- strh r6, [r2]
- str r2, [r1]
- str r3, [r1, 0x4]
- mov r0, r12
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r5
- subs r4, r5
- cmp r4, r5
- bhi _081237E0
- strh r6, [r7]
- str r7, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r4, 1
- mov r2, r8
- 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]
- ldr r2, _08123860
- mov r1, sp
- 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 r0, 0xA0
- lsls r0, 19
- strh r4, [r7]
- str r7, [r2]
- str r0, [r2, 0x4]
- lsrs r3, 1
- movs r0, 0x81
- lsls r0, 24
- orrs r3, r0
- str r3, [r2, 0x8]
- ldr r0, [r2, 0x8]
- bl warp_in
- ldr r0, _08123870
- str r4, [r0]
- ldr r0, _08123874
- bl SetMainCallback2
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08123854: .4byte gSpriteCoordOffsetX
-_08123858: .4byte gUnknown_08396FC4
-_0812385C: .4byte 0x02000000
-_08123860: .4byte 0x040000d4
-_08123864: .4byte 0x85000400
-_08123868: .4byte gUnknown_02039274
-_0812386C: .4byte 0x81000800
-_08123870: .4byte gUnknown_0300485C
-_08123874: .4byte CB2_LoadMap
- thumb_func_end sub_8123740
-
- thumb_func_start sub_8123878
-sub_8123878: @ 8123878
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- ldr r5, _081238A4
- ldr r3, [r5]
- ldrh r0, [r3, 0x6]
- adds r0, 0x1
- strh r0, [r3, 0x6]
- ldrb r2, [r3, 0x1]
- adds r7, r5, 0
- cmp r2, 0x2
- beq _0812397E
- cmp r2, 0x2
- bgt _081238A8
- cmp r2, 0
- beq _081238B6
- cmp r2, 0x1
- beq _081238D0
- b _081239D6
- .align 2, 0
-_081238A4: .4byte gUnknown_02039274
-_081238A8:
- cmp r2, 0x3
- bne _081238AE
- b _081239A4
-_081238AE:
- cmp r2, 0xFF
- bne _081238B4
- b _081239BC
-_081238B4:
- b _081239D6
-_081238B6:
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r3, 0x4]
- cmp r0, r1
- beq _081238C2
- b _081239D6
-_081238C2:
- ldrb r0, [r3, 0x2]
- bl sub_807C91C
- ldr r1, [r5]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- b _081239D6
-_081238D0:
- ldrb r0, [r3, 0x2]
- cmp r0, 0x2
- beq _08123924
- cmp r0, 0x7
- beq _081238DC
- b _081239D6
-_081238DC:
- ldr r0, _08123920
- ldr r0, [r0]
- adds r2, r0, 0
- adds r2, 0xF0
- ldr r0, [r2]
- cmp r0, 0
- beq _081239D6
- ldrb r1, [r0, 0x5]
- movs r0, 0xC
- ands r0, r1
- cmp r0, 0
- beq _081239D6
- adds r3, r2, 0
- movs r5, 0xD
- negs r5, r5
-_081238FA:
- lsls r0, r4, 2
- adds r0, r3, r0
- ldr r2, [r0]
- cmp r2, 0
- beq _0812390C
- ldrb r1, [r2, 0x5]
- adds r0, r5, 0
- ands r0, r1
- strb r0, [r2, 0x5]
-_0812390C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x13
- bls _081238FA
- ldr r1, [r7]
- movs r0, 0x2
- strb r0, [r1, 0x1]
- b _081239D6
- .align 2, 0
-_08123920: .4byte gUnknown_08396FC4
-_08123924:
- ldr r0, _08123938
- ldr r2, [r0]
- movs r1, 0xDA
- lsls r1, 3
- adds r0, r2, r1
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0812393C
- strb r0, [r3, 0x1]
- b _081239D6
- .align 2, 0
-_08123938: .4byte gUnknown_08396FC4
-_0812393C:
- ldrh r1, [r3, 0x6]
- ldrh r0, [r3, 0x4]
- adds r0, 0x8
- cmp r1, r0
- blt _081239D6
- adds r6, r2, 0
- adds r6, 0xF0
- movs r5, 0x1
- movs r7, 0x5
- negs r7, r7
-_08123950:
- lsls r0, r4, 2
- adds r0, r6, r0
- ldr r0, [r0]
- cmp r0, 0
- beq _08123972
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r1, r2, 29
- lsrs r1, 31
- eors r1, r5
- ands r1, r5
- lsls r1, 2
- adds r0, r7, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_08123972:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x13
- bls _08123950
- b _081239D6
-_0812397E:
- lsls r1, r0, 16
- ldr r0, _081239A0
- cmp r1, r0
- bne _081239D6
- movs r0, 0x3
- strb r0, [r3, 0x1]
- subs r0, 0x4
- str r4, [sp]
- movs r1, 0x3
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r0, 0x4
- bl FadeOutBGM
- b _081239D6
- .align 2, 0
-_081239A0: .4byte 0x023a0000
-_081239A4:
- ldr r0, _081239B8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081239D6
- movs r0, 0xFF
- strb r0, [r3, 0x1]
- b _081239D6
- .align 2, 0
-_081239B8: .4byte gPaletteFade
-_081239BC:
- movs r0, 0
- bl SetVBlankCallback
- adds r0, r6, 0
- bl DestroyTask
- ldr r0, [r5]
- ldrb r0, [r0]
- bl DestroyTask
- ldr r0, _081239E0
- bl SetMainCallback2
-_081239D6:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081239E0: .4byte sub_8123740
- thumb_func_end sub_8123878
-
- thumb_func_start sub_81239E4
-sub_81239E4: @ 81239E4
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r6, _08123A38
- ldr r1, [r6]
- ldrb r0, [r1, 0x1]
- cmp r0, 0xFF
- beq _08123AC0
- ldrb r0, [r1, 0x14]
- subs r0, 0x1
- strb r0, [r1, 0x14]
- ldr r1, [r6]
- ldrh r0, [r1, 0x6]
- movs r3, 0x1
- ands r0, r3
- cmp r0, 0
- bne _08123A0A
- ldrb r0, [r1, 0x15]
- subs r0, 0x1
- strb r0, [r1, 0x15]
-_08123A0A:
- ldr r2, [r6]
- ldrh r0, [r2, 0x6]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08123A24
- ldrb r0, [r2, 0xC]
- subs r0, 0x1
- strb r0, [r2, 0xC]
- ldr r1, [r6]
- ldrb r0, [r1, 0xD]
- subs r0, 0x1
- strb r0, [r1, 0xD]
-_08123A24:
- ldr r0, [r6]
- ldrb r1, [r0, 0x14]
- cmp r1, 0x20
- beq _08123A74
- cmp r1, 0x20
- bgt _08123A3C
- cmp r1, 0x10
- beq _08123A90
- b _08123AC0
- .align 2, 0
-_08123A38: .4byte gUnknown_02039274
-_08123A3C:
- cmp r1, 0x28
- beq _08123A60
- cmp r1, 0xAF
- bne _08123AC0
- ldr r1, _08123A5C
- adds r0, r1
- movs r1, 0x2
- str r1, [sp]
- movs r1, 0xA
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0x16
- bl sub_8124E7C
- b _08123AC0
- .align 2, 0
-_08123A5C: .4byte 0x000008fc
-_08123A60:
- ldr r1, _08123A70
- adds r0, r1
- movs r1, 0x2
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0x3
- b _08123A82
- .align 2, 0
-_08123A70: .4byte 0x000008fc
-_08123A74:
- ldr r1, _08123A8C
- adds r0, r1
- str r3, [sp]
- movs r1, 0x2
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0x2
-_08123A82:
- movs r3, 0
- bl sub_8124E7C
- b _08123AC0
- .align 2, 0
-_08123A8C: .4byte 0x000008fc
-_08123A90:
- ldr r5, _08123AE8
- adds r0, r5
- ldr r1, _08123AEC
- movs r2, 0x5
- str r2, [sp]
- movs r4, 0x2
- str r4, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_8124F08
- ldr r0, [r6]
- adds r0, r5
- ldr r1, _08123AF0
- str r4, [sp]
- movs r2, 0x1E
- str r2, [sp, 0x4]
- movs r2, 0
- movs r3, 0x2
- bl sub_8124F08
- ldr r1, [r6]
- movs r0, 0x40
- strb r0, [r1, 0x15]
-_08123AC0:
- bl sub_812453C
- ldr r3, _08123AF4
- movs r0, 0
- ldrsh r2, [r3, r0]
- adds r1, r2, 0x1
- adds r0, r1, 0
- cmp r1, 0
- bge _08123AD6
- adds r0, r2, 0
- adds r0, 0x80
-_08123AD6:
- asrs r0, 7
- lsls r0, 7
- subs r0, r1, r0
- strh r0, [r3]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08123AE8: .4byte 0x000008fc
-_08123AEC: .4byte gCableCarPylonHookTilemapEntries
-_08123AF0: .4byte 0x020199d8
-_08123AF4: .4byte gSpriteCoordOffsetX
- thumb_func_end sub_81239E4
-
- thumb_func_start sub_8123AF8
-sub_8123AF8: @ 8123AF8
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r6, _08123B4C
- ldr r1, [r6]
- ldrb r0, [r1, 0x1]
- cmp r0, 0xFF
- beq _08123BEE
- ldrb r0, [r1, 0x14]
- adds r0, 0x1
- strb r0, [r1, 0x14]
- ldr r2, [r6]
- ldrh r0, [r2, 0x6]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08123B1E
- ldrb r0, [r2, 0x15]
- adds r0, 0x1
- strb r0, [r2, 0x15]
-_08123B1E:
- ldr r2, [r6]
- ldrh r0, [r2, 0x6]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _08123B38
- ldrb r0, [r2, 0xC]
- adds r0, 0x1
- strb r0, [r2, 0xC]
- ldr r1, [r6]
- ldrb r0, [r1, 0xD]
- adds r0, 0x1
- strb r0, [r1, 0xD]
-_08123B38:
- ldr r3, [r6]
- ldrb r0, [r3, 0x14]
- cmp r0, 0x20
- beq _08123BB0
- cmp r0, 0x20
- bgt _08123B50
- cmp r0, 0x10
- beq _08123B78
- b _08123BEE
- .align 2, 0
-_08123B4C: .4byte gUnknown_02039274
-_08123B50:
- cmp r0, 0x28
- beq _08123BDC
- cmp r0, 0xB0
- bne _08123BEE
- ldr r1, _08123B70
- adds r0, r3, r1
- ldr r1, _08123B74
- movs r2, 0x2
- str r2, [sp]
- movs r2, 0x1E
- str r2, [sp, 0x4]
- movs r2, 0
- movs r3, 0x2
- bl sub_8124F08
- b _08123BEE
- .align 2, 0
-_08123B70: .4byte 0x000008fc
-_08123B74: .4byte 0x020199d8
-_08123B78:
- ldr r5, _08123BAC
- adds r0, r3, r5
- movs r1, 0x3
- str r1, [sp]
- movs r4, 0x2
- str r4, [sp, 0x4]
- movs r1, 0
- movs r2, 0x2
- movs r3, 0
- bl sub_8124E7C
- ldr r0, [r6]
- adds r0, r5
- str r4, [sp]
- movs r1, 0xA
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- movs r3, 0x16
- bl sub_8124E7C
- ldr r1, [r6]
- movs r0, 0xC0
- strb r0, [r1, 0x15]
- b _08123BEE
- .align 2, 0
-_08123BAC: .4byte 0x000008fc
-_08123BB0:
- ldr r1, _08123BD4
- ldrh r2, [r1]
- movs r4, 0x90
- lsls r4, 4
- adds r0, r3, r4
- strh r2, [r0]
- ldrh r2, [r1, 0x2]
- adds r4, 0x2
- adds r0, r3, r4
- strh r2, [r0]
- ldrh r2, [r1, 0xA]
- adds r4, 0x3E
- adds r0, r3, r4
- strh r2, [r0]
- ldrh r1, [r1, 0xC]
- ldr r2, _08123BD8
- b _08123BEA
- .align 2, 0
-_08123BD4: .4byte gCableCarPylonHookTilemapEntries + 0x4
-_08123BD8: .4byte 0x00000942
-_08123BDC:
- ldr r2, _08123C08
- ldrh r1, [r2]
- ldr r4, _08123C0C
- adds r0, r3, r4
- strh r1, [r0]
- ldrh r1, [r2, 0xA]
- ldr r2, _08123C10
-_08123BEA:
- adds r0, r3, r2
- strh r1, [r0]
-_08123BEE:
- bl sub_8124598
- ldr r0, _08123C14
- ldr r1, [r0]
- ldrh r0, [r1, 0x6]
- ldrh r1, [r1, 0x4]
- cmp r0, r1
- bcs _08123C1C
- ldr r4, _08123C18
- movs r1, 0
- ldrsh r0, [r4, r1]
- b _08123C26
- .align 2, 0
-_08123C08: .4byte gCableCarPylonHookTilemapEntries + 0x8
-_08123C0C: .4byte 0x00000904
-_08123C10: .4byte 0x00000944
-_08123C14: .4byte gUnknown_02039274
-_08123C18: .4byte gSpriteCoordOffsetX
-_08123C1C:
- ldr r0, _08123C38
- ldr r4, [r0]
- ldr r2, _08123C3C
- adds r4, r2
- ldrh r0, [r4]
-_08123C26:
- adds r0, 0xF7
- movs r1, 0xF8
- bl __modsi3
- strh r0, [r4]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08123C38: .4byte gUnknown_08396FC4
-_08123C3C: .4byte 0x000006fc
- thumb_func_end sub_8123AF8
-
- thumb_func_start sub_8123C40
-sub_8123C40: @ 8123C40
- push {r4,lr}
- ldr r1, _08123C9C
- ldr r0, _08123CA0
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0xFC
- str r0, [r1]
- ldr r0, _08123CA4
- str r0, [r1, 0x4]
- ldr r3, _08123CA8
- str r3, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r4, _08123CAC
- adds r0, r2, r4
- str r0, [r1]
- ldr r0, _08123CB0
- str r0, [r1, 0x4]
- str r3, [r1, 0x8]
- ldr r0, [r1, 0x8]
- subs r1, 0xB8
- ldrb r0, [r2, 0x14]
- strh r0, [r1]
- adds r1, 0x2
- ldrb r0, [r2, 0x15]
- strh r0, [r1]
- subs r1, 0xA
- ldrb r0, [r2, 0xC]
- strh r0, [r1]
- adds r1, 0x2
- ldrb r0, [r2, 0xD]
- strh r0, [r1]
- subs r1, 0x6
- ldrb r0, [r2, 0x8]
- strh r0, [r1]
- adds r1, 0x2
- ldrb r0, [r2, 0x9]
- strh r0, [r1]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08123C9C: .4byte 0x040000d4
-_08123CA0: .4byte gUnknown_02039274
-_08123CA4: .4byte 0x0600e000
-_08123CA8: .4byte 0x80000400
-_08123CAC: .4byte 0x000008fc
-_08123CB0: .4byte 0x0600f800
- thumb_func_end sub_8123C40
-
- thumb_func_start nullsub_76
-nullsub_76: @ 8123CB4
- bx lr
- thumb_func_end nullsub_76
-
- thumb_func_start sub_8123CB8
-sub_8123CB8: @ 8123CB8
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _08123D20
- ldr r6, [r0]
- ldrb r0, [r6, 0x1]
- cmp r0, 0xFF
- beq _08123D84
- ldr r0, _08123D24
- ldrh r0, [r0]
- cmp r0, 0
- bne _08123D34
- movs r0, 0x6
- ldrsh r4, [r6, r0]
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _08123CE2
- ldr r1, _08123D28
- bl __addsf3
-_08123CE2:
- ldr r1, _08123D2C
- bl __mulsf3
- bl __fixunssfsi
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x2E]
- subs r1, r0
- strh r1, [r5, 0x20]
- movs r1, 0x6
- ldrsh r4, [r6, r1]
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _08123D0A
- ldr r1, _08123D28
- bl __addsf3
-_08123D0A:
- ldr r1, _08123D30
- bl __mulsf3
- bl __fixunssfsi
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x30]
- subs r1, r0
- strh r1, [r5, 0x22]
- b _08123D84
- .align 2, 0
-_08123D20: .4byte gUnknown_02039274
-_08123D24: .4byte gUnknown_0202E8CC
-_08123D28: .4byte 0x47800000
-_08123D2C: .4byte 0x3e0f5c29
-_08123D30: .4byte 0x3d89374c
-_08123D34:
- movs r0, 0x6
- ldrsh r4, [r6, r0]
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _08123D48
- ldr r1, _08123D8C
- bl __addsf3
-_08123D48:
- ldr r1, _08123D90
- bl __mulsf3
- bl __fixunssfsi
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x2E]
- adds r0, r1
- strh r0, [r5, 0x20]
- movs r0, 0x6
- ldrsh r4, [r6, r0]
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _08123D70
- ldr r1, _08123D8C
- bl __addsf3
-_08123D70:
- ldr r1, _08123D94
- bl __mulsf3
- bl __fixunssfsi
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x30]
- adds r0, r1
- strh r0, [r5, 0x22]
-_08123D84:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08123D8C: .4byte 0x47800000
-_08123D90: .4byte 0x3e0f5c29
-_08123D94: .4byte 0x3d89374c
- thumb_func_end sub_8123CB8
-
- thumb_func_start sub_8123D98
-sub_8123D98: @ 8123D98
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _08123E04
- ldr r6, [r0]
- ldrb r0, [r6, 0x1]
- cmp r0, 0xFF
- bne _08123DA8
- b _08123EB0
-_08123DA8:
- ldr r0, _08123E08
- ldrh r0, [r0]
- cmp r0, 0
- bne _08123E18
- movs r0, 0x6
- ldrsh r4, [r6, r0]
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _08123DC4
- ldr r1, _08123E0C
- bl __addsf3
-_08123DC4:
- ldr r1, _08123E10
- bl __mulsf3
- bl __fixunssfsi
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x2E]
- subs r1, r0
- strh r1, [r5, 0x20]
- movs r1, 0x6
- ldrsh r4, [r6, r1]
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _08123DEC
- ldr r1, _08123E0C
- bl __addsf3
-_08123DEC:
- ldr r1, _08123E14
- bl __mulsf3
- bl __fixunssfsi
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x30]
- subs r1, r0
- strh r1, [r5, 0x22]
- b _08123E68
- .align 2, 0
-_08123E04: .4byte gUnknown_02039274
-_08123E08: .4byte gUnknown_0202E8CC
-_08123E0C: .4byte 0x47800000
-_08123E10: .4byte 0x3e0f5c29
-_08123E14: .4byte 0x3d89374c
-_08123E18:
- movs r0, 0x6
- ldrsh r4, [r6, r0]
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _08123E2C
- ldr r1, _08123E8C
- bl __addsf3
-_08123E2C:
- ldr r1, _08123E90
- bl __mulsf3
- bl __fixunssfsi
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x2E]
- adds r0, r1
- strh r0, [r5, 0x20]
- movs r0, 0x6
- ldrsh r4, [r6, r0]
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _08123E54
- ldr r1, _08123E8C
- bl __addsf3
-_08123E54:
- ldr r1, _08123E94
- bl __mulsf3
- bl __fixunssfsi
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x30]
- adds r0, r1
- strh r0, [r5, 0x22]
-_08123E68:
- movs r0, 0x32
- ldrsh r2, [r5, r0]
- cmp r2, 0
- bne _08123E98
- movs r0, 0x11
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x34]
- adds r1, r0, 0x1
- strh r1, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- ble _08123EB0
- strh r2, [r5, 0x34]
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- b _08123EB0
- .align 2, 0
-_08123E8C: .4byte 0x47800000
-_08123E90: .4byte 0x3e0f5c29
-_08123E94: .4byte 0x3d89374c
-_08123E98:
- movs r2, 0
- movs r0, 0x10
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x34]
- adds r1, r0, 0x1
- strh r1, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- ble _08123EB0
- strh r2, [r5, 0x34]
- strh r2, [r5, 0x32]
-_08123EB0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8123D98
-
- thumb_func_start sub_8123EB8
-sub_8123EB8: @ 8123EB8
- push {lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _08123EE8
- adds r0, r2, 0
- adds r0, 0x28
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 1
- ldrh r3, [r2, 0x20]
- adds r0, r3
- strh r0, [r2, 0x20]
- ldrh r1, [r2, 0x22]
- adds r1, 0x10
- adds r0, r2, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
- strh r0, [r2, 0x22]
-_08123EE8:
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x32
- ldrsh r1, [r2, r3]
- cmp r0, r1
- blt _08123F3E
- movs r0, 0x30
- ldrsh r1, [r2, r0]
- cmp r1, 0
- beq _08123F08
- cmp r1, 0x1
- beq _08123F12
- b _08123F30
-_08123F08:
- ldrh r0, [r2, 0x20]
- adds r0, 0x1
- strh r0, [r2, 0x20]
- ldrh r0, [r2, 0x2E]
- b _08123F22
-_08123F12:
- ldrh r0, [r2, 0x2E]
- ands r0, r1
- cmp r0, 0
- beq _08123F30
- ldrh r0, [r2, 0x20]
- adds r0, 0x1
- strh r0, [r2, 0x20]
- ldrh r0, [r2, 0x20]
-_08123F22:
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08123F30
- ldrh r0, [r2, 0x22]
- adds r0, 0x1
- strh r0, [r2, 0x22]
-_08123F30:
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- cmp r0, 0xA0
- ble _08123F3E
- adds r0, r2, 0
- bl DestroySprite
-_08123F3E:
- pop {r0}
- bx r0
- thumb_func_end sub_8123EB8
-
- thumb_func_start sub_8123F44
-sub_8123F44: @ 8123F44
- push {lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _08123F62
- ldrh r1, [r2, 0x22]
- adds r1, 0x10
- adds r0, r2, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- adds r0, r1
- strh r0, [r2, 0x22]
-_08123F62:
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x32
- ldrsh r1, [r2, r3]
- cmp r0, r1
- blt _08123FB8
- movs r0, 0x30
- ldrsh r1, [r2, r0]
- cmp r1, 0
- beq _08123F82
- cmp r1, 0x1
- beq _08123F8C
- b _08123FAA
-_08123F82:
- ldrh r0, [r2, 0x20]
- subs r0, 0x1
- strh r0, [r2, 0x20]
- ldrh r0, [r2, 0x2E]
- b _08123F9C
-_08123F8C:
- ldrh r0, [r2, 0x2E]
- ands r0, r1
- cmp r0, 0
- beq _08123FAA
- ldrh r0, [r2, 0x20]
- subs r0, 0x1
- strh r0, [r2, 0x20]
- ldrh r0, [r2, 0x20]
-_08123F9C:
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08123FAA
- ldrh r0, [r2, 0x22]
- subs r0, 0x1
- strh r0, [r2, 0x22]
-_08123FAA:
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- cmp r0, 0x4F
- bgt _08123FB8
- adds r0, r2, 0
- bl DestroySprite
-_08123FB8:
- pop {r0}
- bx r0
- thumb_func_end sub_8123F44
-
- thumb_func_start sub_8123FBC
-sub_8123FBC: @ 8123FBC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08123FCA
- cmp r0, 0x1
- beq _08124024
-_08123FCA:
- ldr r1, _08124020
- movs r0, 0
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- subs r1, 0xA
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- subs r1, 0x46
- strh r0, [r1]
- adds r1, 0xE
- strh r0, [r1]
- subs r1, 0x2
- strh r0, [r1]
- subs r1, 0x2
- strh r0, [r1]
- subs r1, 0x2
- strh r0, [r1]
- adds r1, 0x14
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- subs r1, 0x6
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- subs r1, 0x6
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- subs r1, 0x6
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r1, 0x3E
- strh r0, [r1]
- b _081240EE
- .align 2, 0
-_08124020: .4byte REG_WININ
-_08124024:
- ldr r0, _08124060
- movs r3, 0
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
- subs r0, 0xA
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
- adds r0, 0x2
- strh r3, [r0]
- ldr r0, _08124064
- ldrh r0, [r0]
- cmp r0, 0
- bne _0812406C
- ldr r1, _08124068
- ldr r2, [r1]
- movs r0, 0xB0
- strb r0, [r2, 0x14]
- ldr r2, [r1]
- movs r0, 0x10
- strb r0, [r2, 0x15]
- ldr r0, [r1]
- strb r3, [r0, 0xC]
- ldr r2, [r1]
- movs r0, 0x50
- b _08124082
- .align 2, 0
-_08124060: .4byte REG_WININ
-_08124064: .4byte gUnknown_0202E8CC
-_08124068: .4byte gUnknown_02039274
-_0812406C:
- ldr r1, _081240F4
- ldr r2, [r1]
- movs r0, 0x60
- strb r0, [r2, 0x14]
- ldr r2, [r1]
- movs r0, 0xE8
- strb r0, [r2, 0x15]
- ldr r0, [r1]
- strb r3, [r0, 0xC]
- ldr r2, [r1]
- movs r0, 0x4
-_08124082:
- strb r0, [r2, 0xD]
- ldr r0, [r1]
- strb r3, [r0, 0x9]
- ldr r0, [r1]
- strb r3, [r0, 0x9]
- adds r2, r1, 0
- ldr r1, _081240F8
- ldr r2, [r2]
- ldrb r0, [r2, 0x14]
- strh r0, [r1]
- adds r1, 0x2
- ldrb r0, [r2, 0x15]
- strh r0, [r1]
- ldr r0, _081240FC
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _08124100
- ldrb r0, [r2, 0xC]
- strh r0, [r1]
- adds r1, 0x2
- ldrb r0, [r2, 0xD]
- strh r0, [r1]
- subs r1, 0x6
- ldrb r0, [r2, 0x8]
- strh r0, [r1]
- adds r1, 0x2
- ldrb r0, [r2, 0x9]
- strh r0, [r1]
- subs r1, 0xA
- ldr r2, _08124104
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r3, _08124108
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0812410C
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08124110
- movs r3, 0xFC
- lsls r3, 6
- adds r2, r3, 0
- strh r2, [r0]
- subs r1, 0xC
- movs r3, 0xFA
- lsls r3, 5
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _08124114
- strh r2, [r0]
-_081240EE:
- pop {r0}
- bx r0
- .align 2, 0
-_081240F4: .4byte gUnknown_02039274
-_081240F8: .4byte REG_BG3HOFS
-_081240FC: .4byte REG_BG2HOFS
-_08124100: .4byte REG_BG1HOFS
-_08124104: .4byte 0x00003c01
-_08124108: .4byte 0x00003d02
-_0812410C: .4byte 0x00003e03
-_08124110: .4byte REG_BG3CNT
-_08124114: .4byte REG_BLDCNT
- thumb_func_end sub_8123FBC
-
- thumb_func_start sub_8124118
-sub_8124118: @ 8124118
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- ldr r1, _0812422C
- add r0, sp, 0x8
- movs r2, 0x2
- bl memcpy
- bl Random
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- add r6, sp, 0xC
- ldr r1, _08124230
- adds r0, r6, 0
- movs r2, 0x4
- bl memcpy
- add r5, sp, 0x10
- ldr r1, _08124234
- adds r0, r5, 0
- movs r2, 0x8
- bl memcpy
- add r4, sp, 0x18
- ldr r1, _08124238
- adds r0, r4, 0
- movs r2, 0x4
- bl memcpy
- ldr r0, _0812423C
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp, 0x1C]
- str r1, [sp, 0x20]
- ldr r0, _08124240
- ldrh r0, [r0]
- mov r8, r6
- mov r10, r5
- cmp r0, 0
- beq _08124176
- cmp r0, 0x1
- beq _08124258
-_08124176:
- ldr r0, _08124244
- ldrb r0, [r0, 0x8]
- add r0, sp
- adds r0, 0x8
- ldrb r0, [r0]
- ldr r1, _08124248
- movs r2, 0x66
- str r2, [sp]
- movs r2, 0xC8
- movs r3, 0x49
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x40
- beq _081241BE
- ldr r0, _0812424C
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x8
- orrs r0, r2
- strb r0, [r1, 0x5]
- movs r0, 0x8
- strh r0, [r1, 0x24]
- movs r0, 0x10
- strh r0, [r1, 0x26]
- movs r0, 0xC8
- strh r0, [r1, 0x2E]
- movs r0, 0x49
- strh r0, [r1, 0x30]
-_081241BE:
- ldr r4, _08124250
- adds r0, r4, 0
- movs r1, 0xB0
- movs r2, 0x2B
- movs r3, 0x67
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _0812424C
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r5
- movs r1, 0x20
- strh r1, [r0, 0x26]
- strh r1, [r0, 0x24]
- movs r1, 0xB0
- strh r1, [r0, 0x2E]
- movs r1, 0x2B
- strh r1, [r0, 0x30]
- adds r4, 0x18
- adds r0, r4, 0
- movs r1, 0xC8
- movs r2, 0x63
- movs r3, 0x65
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r5
- movs r1, 0x8
- strh r1, [r0, 0x24]
- movs r1, 0x4
- strh r1, [r0, 0x26]
- movs r1, 0xC8
- strh r1, [r0, 0x2E]
- movs r1, 0x63
- strh r1, [r0, 0x30]
- ldr r2, _08124254
- ldr r1, [r2]
- movs r0, 0x7
- strb r0, [r1, 0x2]
- ldr r1, [r2]
- movs r0, 0xAF
- lsls r0, 1
- strh r0, [r1, 0x4]
- movs r0, 0x2
- bl sub_807C9B4
- b _0812431E
- .align 2, 0
-_0812422C: .4byte gCableCarPlayerGraphicsIDs
-_08124230: .4byte gMtChimneyHikerGraphicsIDs
-_08124234: .4byte gMtChimneyHikerCoords
-_08124238: .4byte gMtChimneyHikerMovementDelayTable
-_0812423C: .4byte gUnknown_08401D9C
-_08124240: .4byte gUnknown_0202E8CC
-_08124244: .4byte gSaveBlock2
-_08124248: .4byte sub_8123D98
-_0812424C: .4byte gSprites
-_08124250: .4byte gSpriteTemplate_8401D40
-_08124254: .4byte gUnknown_02039274
-_08124258:
- ldr r7, _081243EC
- ldr r0, [r7]
- adds r0, 0xFC
- ldr r1, _081243F0
- movs r2, 0xC
- str r2, [sp]
- movs r2, 0x3
- str r2, [sp, 0x4]
- movs r2, 0x18
- movs r3, 0x1A
- bl sub_8124F08
- ldr r0, _081243F4
- ldrb r0, [r0, 0x8]
- add r0, sp
- adds r0, 0x8
- ldrb r0, [r0]
- ldr r1, _081243F8
- movs r2, 0x66
- str r2, [sp]
- movs r2, 0x80
- movs r3, 0x27
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x40
- beq _081242B8
- ldr r0, _081243FC
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- adds r1, r0
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x8
- orrs r0, r2
- strb r0, [r1, 0x5]
- movs r0, 0x8
- strh r0, [r1, 0x24]
- movs r0, 0x10
- strh r0, [r1, 0x26]
- movs r0, 0x80
- strh r0, [r1, 0x2E]
- movs r0, 0x27
- strh r0, [r1, 0x30]
-_081242B8:
- ldr r4, _08124400
- adds r0, r4, 0
- movs r1, 0x68
- movs r2, 0x9
- movs r3, 0x67
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _081243FC
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r5
- movs r1, 0x20
- strh r1, [r0, 0x26]
- strh r1, [r0, 0x24]
- movs r1, 0x68
- strh r1, [r0, 0x2E]
- movs r1, 0x9
- strh r1, [r0, 0x30]
- adds r4, 0x18
- adds r0, r4, 0
- movs r1, 0x80
- movs r2, 0x41
- movs r3, 0x65
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r5
- movs r1, 0x8
- strh r1, [r0, 0x24]
- movs r1, 0x4
- strh r1, [r0, 0x26]
- movs r1, 0x80
- strh r1, [r0, 0x2E]
- movs r1, 0x41
- strh r1, [r0, 0x30]
- ldr r1, [r7]
- movs r0, 0x2
- strb r0, [r1, 0x2]
- ldr r1, [r7]
- ldr r0, _08124404
- strh r0, [r1, 0x4]
- movs r0, 0x7
- bl sub_807C9B4
-_0812431E:
- movs r4, 0
- ldr r5, _081243FC
-_08124322:
- lsls r1, r4, 20
- movs r0, 0xC0
- lsls r0, 15
- adds r1, r0
- asrs r1, 16
- lsls r2, r4, 19
- ldr r3, _08124408
- adds r2, r3
- asrs r2, 16
- ldr r0, _0812440C
- movs r3, 0x68
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r5
- movs r1, 0x8
- strh r1, [r0, 0x24]
- strh r1, [r0, 0x26]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x8
- bls _08124322
- movs r0, 0x3F
- mov r4, r9
- ands r0, r4
- cmp r0, 0
- bne _08124458
- mov r0, r9
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- add r0, r8
- ldrb r0, [r0]
- ldr r5, _08124410
- ldrh r4, [r5]
- lsls r4, 2
- add r1, sp, 0x1C
- adds r1, r4, r1
- ldr r1, [r1]
- mov r3, r10
- adds r2, r3, r4
- movs r3, 0
- ldrsh r2, [r2, r3]
- mov r3, sp
- adds r3, 0x12
- adds r3, r4
- movs r4, 0
- ldrsh r3, [r3, r4]
- movs r4, 0x6A
- str r4, [sp]
- bl AddPseudoFieldObject
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x40
- beq _08124458
- ldr r1, _081243FC
- lsls r2, r6, 4
- adds r0, r2, r6
- lsls r0, 2
- adds r4, r0, r1
- ldrb r1, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r4, 0x5]
- adds r0, r4, 0
- adds r0, 0x28
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x24]
- adds r0, r4, 0
- adds r0, 0x29
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r5]
- mov r8, r2
- cmp r0, 0
- bne _0812441A
- movs r7, 0x1
- mov r5, r9
- ands r5, r7
- cmp r5, 0
- beq _08124414
- adds r0, r4, 0
- movs r1, 0x6
- b _08124428
- .align 2, 0
-_081243EC: .4byte gUnknown_02039274
-_081243F0: .4byte 0x02019048
-_081243F4: .4byte gSaveBlock2
-_081243F8: .4byte sub_8123D98
-_081243FC: .4byte gSprites
-_08124400: .4byte gSpriteTemplate_8401D40
-_08124404: .4byte 0x00000109
-_08124408: .4byte 0xfff80000
-_0812440C: .4byte gSpriteTemplate_8401D70
-_08124410: .4byte gUnknown_0202E8CC
-_08124414:
- adds r0, r4, 0
- movs r1, 0x7
- b _0812443A
-_0812441A:
- movs r7, 0x1
- mov r5, r9
- ands r5, r7
- cmp r5, 0
- beq _08124436
- adds r0, r4, 0
- movs r1, 0x7
-_08124428:
- bl StartSpriteAnim
- strh r7, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- adds r0, 0x2
- strh r0, [r4, 0x22]
- b _08124440
-_08124436:
- adds r0, r4, 0
- movs r1, 0x6
-_0812443A:
- bl StartSpriteAnim
- strh r5, [r4, 0x30]
-_08124440:
- ldr r0, _08124468
- mov r2, r8
- adds r1, r2, r6
- lsls r1, 2
- adds r1, r0
- movs r0, 0x3
- mov r3, r9
- ands r0, r3
- add r0, sp
- adds r0, 0x18
- ldrb r0, [r0]
- strh r0, [r1, 0x32]
-_08124458:
- 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
-_08124468: .4byte gSprites
- thumb_func_end sub_8124118
-
- thumb_func_start sub_812446C
-sub_812446C: @ 812446C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r3, 0
- mov r9, r3
- ldr r2, _08124530
- ldr r0, [r2]
- ldrb r1, [r0, 0x1B]
- adds r1, 0x2
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 26
- lsrs r0, 24
- mov r12, r0
-_0812448E:
- movs r6, 0
- lsls r0, r3, 1
- adds r1, r3, 0x3
- adds r2, r3, 0x6
- adds r4, r3, 0x1
- str r4, [sp]
- adds r0, r3
- lsls r0, 3
- mov r10, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- mov r8, r0
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- str r0, [sp, 0x4]
-_081244B0:
- ldr r7, _08124530
- ldr r5, [r7]
- lsls r3, r6, 1
- mov r0, r10
- adds r2, r3, r0
- adds r4, r5, 0
- adds r4, 0x22
- adds r2, r4, r2
- mov r1, r12
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r1, 1
- ldr r7, _08124534
- adds r1, r7
- ldrh r0, [r1]
- strh r0, [r2]
- mov r0, r8
- adds r1, r3, r0
- adds r1, r4, r1
- mov r7, r9
- lsls r2, r7, 1
- ldr r7, _08124534
- adds r0, r2, r7
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r0, [sp, 0x4]
- adds r3, r0
- adds r4, r3
- ldr r1, _08124538
- adds r2, r1
- ldrh r0, [r2]
- strh r0, [r4]
- mov r0, r9
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xB
- bls _081244B0
- ldr r4, [sp]
- lsls r0, r4, 24
- lsrs r3, r0, 24
- cmp r3, 0x2
- bls _0812448E
- ldrb r0, [r5, 0x1B]
- adds r0, 0x1
- movs r1, 0x3
- bl __modsi3
- strb r0, [r5, 0x1B]
- 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
-_08124530: .4byte gUnknown_02039274
-_08124534: .4byte 0x02019000
-_08124538: .4byte 0x02019048
- thumb_func_end sub_812446C
-
- thumb_func_start sub_812453C
-sub_812453C: @ 812453C
- push {r4,r5,lr}
- ldr r5, _08124594
- ldr r4, [r5]
- ldrb r0, [r4, 0x1C]
- adds r0, 0x1
- movs r1, 0x60
- bl __modsi3
- strb r0, [r4, 0x1C]
- ldr r1, [r5]
- ldrb r0, [r1, 0x1F]
- ldrb r2, [r1, 0x1D]
- subs r0, r2
- strb r0, [r1, 0x8]
- ldr r2, [r5]
- adds r0, r2, 0
- adds r0, 0x20
- ldrb r0, [r0]
- ldrb r1, [r2, 0x1E]
- subs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, [r5]
- ldrb r0, [r1, 0x1D]
- adds r0, 0x1
- strb r0, [r1, 0x1D]
- ldr r2, [r5]
- ldrb r0, [r2, 0x1D]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08124580
- ldrb r0, [r2, 0x1E]
- adds r0, 0x1
- strb r0, [r2, 0x1E]
-_08124580:
- ldr r0, [r5]
- ldrb r0, [r0, 0x1D]
- cmp r0, 0x10
- bls _0812458C
- bl sub_81245F4
-_0812458C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08124594: .4byte gUnknown_02039274
- thumb_func_end sub_812453C
-
- thumb_func_start sub_8124598
-sub_8124598: @ 8124598
- push {r4,r5,lr}
- ldr r5, _081245F0
- ldr r4, [r5]
- ldrb r0, [r4, 0x1C]
- adds r0, 0x1
- movs r1, 0x60
- bl __modsi3
- strb r0, [r4, 0x1C]
- ldr r1, [r5]
- ldrb r0, [r1, 0x1D]
- ldrb r2, [r1, 0x1F]
- adds r0, r2
- strb r0, [r1, 0x8]
- ldr r1, [r5]
- adds r2, r1, 0
- adds r2, 0x20
- ldrb r0, [r1, 0x1E]
- ldrb r2, [r2]
- adds r0, r2
- strb r0, [r1, 0x9]
- ldr r1, [r5]
- ldrb r0, [r1, 0x1D]
- adds r0, 0x1
- strb r0, [r1, 0x1D]
- ldr r2, [r5]
- ldrb r0, [r2, 0x1D]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _081245DC
- ldrb r0, [r2, 0x1E]
- adds r0, 0x1
- strb r0, [r2, 0x1E]
-_081245DC:
- ldr r0, [r5]
- ldrb r0, [r0, 0x1D]
- cmp r0, 0x10
- bls _081245E8
- bl sub_812476C
-_081245E8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081245F0: .4byte gUnknown_02039274
- thumb_func_end sub_8124598
-
- thumb_func_start sub_81245F4
-sub_81245F4: @ 81245F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- mov r12, r0
- ldr r2, _0812475C
- ldr r0, [r2]
- mov r1, r12
- strb r1, [r0, 0x1E]
- strb r1, [r0, 0x1D]
- ldr r1, [r2]
- ldrb r0, [r1, 0x8]
- strb r0, [r1, 0x1F]
- ldr r0, [r2]
- ldrb r1, [r0, 0x9]
- adds r0, 0x20
- strb r1, [r0]
- ldr r4, [r2]
- ldrb r1, [r4, 0x19]
- adds r3, r1, 0
- adds r3, 0x1E
- adds r0, r3, 0
- mov r9, r2
- asrs r0, 5
- lsls r0, 5
- subs r0, r3, r0
- strb r0, [r4, 0x19]
- mov r2, r9
- ldr r1, [r2]
- ldrb r0, [r1, 0x18]
- subs r0, 0x2
- strb r0, [r1, 0x18]
- ldr r0, [r2]
- ldrb r1, [r0, 0x1A]
- adds r2, r1, 0
- adds r2, 0x17
- adds r0, r2, 0
- ldr r3, _08124760
- mov r10, r3
- asrs r0, 5
- lsls r0, 5
- subs r0, r2, r0
- mov r4, r10
- strb r0, [r4]
- ldr r7, _08124764
- ldr r0, _08124768
- mov r8, r0
-_08124658:
- mov r1, r9
- ldr r3, [r1]
- ldrb r0, [r3, 0x19]
- strb r0, [r7]
- mov r2, r10
- ldrb r0, [r2]
- mov r4, r12
- adds r1, r0, r4
- adds r0, r1, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r1, r0
- mov r1, r8
- strb r0, [r1]
- ldrb r2, [r7]
- lsls r2, 1
- ldrb r0, [r1]
- lsls r0, 6
- adds r2, r0
- adds r6, r3, 0
- adds r6, 0xFC
- adds r2, r6, r2
- ldrb r1, [r3, 0x18]
- lsls r1, 1
- mov r4, r12
- lsls r0, r4, 1
- add r0, r12
- lsls r5, r0, 3
- adds r1, r5
- adds r4, r3, 0
- adds r4, 0x22
- adds r1, r4, r1
- ldrh r0, [r1]
- strh r0, [r2]
- ldrb r1, [r7]
- adds r2, r1, 0x1
- adds r0, r2, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r2, r0
- strb r0, [r7]
- ldrb r1, [r7]
- lsls r1, 1
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 6
- adds r1, r0
- adds r1, r6, r1
- ldrb r0, [r3, 0x18]
- adds r0, 0x1
- lsls r0, 1
- adds r0, r5
- adds r0, r4, r0
- ldrh r0, [r0]
- strh r0, [r1]
- mov r0, r12
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- cmp r0, 0x8
- bls _08124658
- ldr r4, _08124764
- mov r5, r9
- ldr r3, [r5]
- ldrb r1, [r3, 0x19]
- adds r2, r1, 0
- adds r2, 0x1E
- adds r0, r2, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r2, r0
- strb r0, [r4]
- adds r0, r3, 0
- adds r0, 0xFC
- ldrb r2, [r4]
- movs r1, 0x2
- str r1, [sp]
- movs r6, 0x20
- str r6, [sp, 0x4]
- movs r1, 0
- movs r3, 0
- bl sub_8124E7C
- ldr r1, [r5]
- ldrb r0, [r1, 0x18]
- cmp r0, 0
- bne _0812474C
- ldrb r2, [r1, 0x1A]
- adds r3, r2, 0
- adds r3, 0x1D
- adds r0, r3, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r3, r0
- strb r0, [r1, 0x1A]
- mov r3, r9
- ldr r1, [r3]
- movs r0, 0xC
- strb r0, [r1, 0x18]
- bl sub_812446C
- mov r4, r9
- ldr r1, [r4]
- ldrb r3, [r1, 0x1A]
- adds r4, r3, 0x1
- adds r0, r4, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r4, r0
- ldr r2, _08124764
- strb r0, [r2]
- adds r0, r1, 0
- adds r0, 0xFC
- ldrb r3, [r2]
- str r6, [sp]
- movs r1, 0x9
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0
- bl sub_8124E7C
-_0812474C:
- 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
-_0812475C: .4byte gUnknown_02039274
-_08124760: .4byte gUnknown_0203927A
-_08124764: .4byte gUnknown_02039278
-_08124768: .4byte gUnknown_02039279
- thumb_func_end sub_81245F4
-
- thumb_func_start sub_812476C
-sub_812476C: @ 812476C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0
- mov r12, r0
- ldr r2, _0812489C
- ldr r0, [r2]
- mov r1, r12
- strb r1, [r0, 0x1E]
- strb r1, [r0, 0x1D]
- ldr r1, [r2]
- ldrb r0, [r1, 0x8]
- strb r0, [r1, 0x1F]
- ldr r0, [r2]
- ldrb r1, [r0, 0x9]
- adds r0, 0x20
- strb r1, [r0]
- ldr r4, [r2]
- ldrb r1, [r4, 0x19]
- adds r3, r1, 0x2
- adds r0, r3, 0
- mov r9, r2
- asrs r0, 5
- lsls r0, 5
- subs r0, r3, r0
- strb r0, [r4, 0x19]
- mov r2, r9
- ldr r1, [r2]
- ldrb r0, [r1, 0x18]
- adds r0, 0x2
- strb r0, [r1, 0x18]
- ldr r1, _081248A0
- ldr r0, [r2]
- ldrb r0, [r0, 0x1A]
- strb r0, [r1]
- ldr r4, _081248A4
- mov r10, r4
- ldr r7, _081248A8
- mov r8, r10
-_081247C0:
- mov r0, r9
- ldr r3, [r0]
- ldrb r0, [r3, 0x19]
- strb r0, [r7]
- ldr r1, _081248A0
- ldrb r0, [r1]
- mov r2, r12
- adds r1, r0, r2
- adds r0, r1, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r1, r0
- mov r4, r8
- strb r0, [r4]
- ldrb r2, [r7]
- lsls r2, 1
- ldrb r0, [r4]
- lsls r0, 6
- adds r2, r0
- adds r6, r3, 0
- adds r6, 0xFC
- adds r2, r6, r2
- ldrb r1, [r3, 0x18]
- lsls r1, 1
- mov r4, r12
- lsls r0, r4, 1
- add r0, r12
- lsls r5, r0, 3
- adds r1, r5
- adds r4, r3, 0
- adds r4, 0x22
- adds r1, r4, r1
- ldrh r0, [r1]
- strh r0, [r2]
- ldrb r1, [r7]
- adds r2, r1, 0x1
- adds r0, r2, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r2, r0
- strb r0, [r7]
- ldrb r1, [r7]
- lsls r1, 1
- mov r2, r8
- ldrb r0, [r2]
- lsls r0, 6
- adds r1, r0
- adds r1, r6, r1
- ldrb r0, [r3, 0x18]
- adds r0, 0x1
- lsls r0, 1
- adds r0, r5
- adds r0, r4, r0
- ldrh r0, [r0]
- strh r0, [r1]
- mov r0, r12
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- cmp r0, 0x8
- bls _081247C0
- mov r4, r9
- ldr r1, [r4]
- ldrb r2, [r1, 0x1A]
- adds r3, r2, 0
- adds r3, 0x17
- adds r0, r3, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r3, r0
- mov r2, r10
- strb r0, [r2]
- adds r0, r1, 0
- adds r0, 0xFC
- ldrb r2, [r1, 0x19]
- mov r1, r10
- ldrb r3, [r1]
- movs r1, 0x2
- str r1, [sp]
- movs r1, 0x9
- str r1, [sp, 0x4]
- movs r1, 0
- bl sub_8124E7C
- ldr r1, [r4]
- ldrb r0, [r1, 0x18]
- cmp r0, 0xA
- bne _0812488C
- ldrb r2, [r1, 0x1A]
- adds r3, r2, 0x3
- adds r0, r3, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r3, r0
- strb r0, [r1, 0x1A]
- mov r2, r9
- ldr r1, [r2]
- movs r0, 0xFE
- strb r0, [r1, 0x18]
- bl sub_812446C
-_0812488C:
- 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
-_0812489C: .4byte gUnknown_02039274
-_081248A0: .4byte gUnknown_0203927D
-_081248A4: .4byte gUnknown_0203927C
-_081248A8: .4byte gUnknown_0203927B
- thumb_func_end sub_812476C
-
- thumb_func_start sub_81248AC
-sub_81248AC: @ 81248AC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _081248BA
- cmp r0, 0x1
- beq _081248E4
-_081248BA:
- ldr r1, _081248E0
- ldr r2, [r1]
- movs r3, 0
- movs r0, 0x2
- strb r0, [r2, 0x1B]
- ldr r0, [r1]
- strb r3, [r0, 0x19]
- ldr r2, [r1]
- movs r0, 0x14
- strb r0, [r2, 0x1A]
- ldr r1, [r1]
- movs r0, 0xC
- strb r0, [r1, 0x18]
- bl sub_812446C
- bl sub_81245F4
- b _08124906
- .align 2, 0
-_081248E0: .4byte gUnknown_02039274
-_081248E4:
- ldr r1, _08124914
- ldr r2, [r1]
- movs r0, 0x2
- strb r0, [r2, 0x1B]
- ldr r2, [r1]
- movs r0, 0x1C
- strb r0, [r2, 0x19]
- ldr r2, [r1]
- movs r0, 0x14
- strb r0, [r2, 0x1A]
- ldr r1, [r1]
- movs r0, 0x4
- strb r0, [r1, 0x18]
- bl sub_812446C
- bl sub_812476C
-_08124906:
- ldr r0, _08124914
- ldr r1, [r0]
- movs r0, 0
- strb r0, [r1, 0x1C]
- pop {r0}
- bx r0
- .align 2, 0
-_08124914: .4byte gUnknown_02039274
- thumb_func_end sub_81248AC
-
- thumb_func_start sub_8124918
-sub_8124918: @ 8124918
- push {lr}
- movs r1, 0
- strb r1, [r0]
- strh r1, [r0, 0x2]
- adds r0, 0x4
- movs r2, 0xC0
- bl memset
- pop {r0}
- bx r0
- thumb_func_end sub_8124918
-
- thumb_func_start sub_812492C
-sub_812492C: @ 812492C
- push {r4-r7,lr}
- adds r3, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- cmp r6, 0xF
- bhi _08124948
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- adds r5, r3, r0
- ldrb r7, [r5, 0x4]
- lsrs r0, r7, 7
- cmp r0, 0
- beq _0812494C
-_08124948:
- movs r0, 0xFF
- b _081249AA
-_0812494C:
- ldrh r0, [r2]
- movs r4, 0
- strh r0, [r5, 0x8]
- ldrh r0, [r2, 0x2]
- strh r0, [r5, 0xA]
- ldrb r0, [r2, 0x4]
- strb r0, [r5, 0xC]
- ldrb r0, [r2, 0x5]
- strb r0, [r5, 0xD]
- ldrb r0, [r2, 0x6]
- strb r0, [r5, 0xE]
- ldrb r3, [r2, 0x7]
- lsls r0, r3, 27
- lsrs r0, 27
- ldrb r2, [r5, 0xF]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- movs r0, 0x60
- ands r0, r3
- movs r2, 0x61
- negs r2, r2
- ands r1, r2
- orrs r1, r0
- lsls r3, 24
- asrs r3, 31
- lsls r3, 7
- movs r0, 0x7F
- ands r1, r0
- orrs r1, r3
- strb r1, [r5, 0xF]
- subs r0, 0xFF
- ands r0, r7
- movs r2, 0x80
- orrs r0, r2
- strb r0, [r5, 0x4]
- strb r4, [r5, 0x6]
- strb r4, [r5, 0x5]
- lsls r1, 24
- cmp r1, 0
- bge _081249A4
- movs r0, 0xFF
- b _081249A6
-_081249A4:
- movs r0, 0x1
-_081249A6:
- strb r0, [r5, 0x7]
- adds r0, r6, 0
-_081249AA:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_812492C
-
- thumb_func_start unref_sub_81249B0
-unref_sub_81249B0: @ 81249B0
- push {r4,lr}
- adds r2, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r4, r1, 0
- cmp r4, 0xF
- bhi _081249DC
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r1, r2, r0
- ldrb r0, [r1, 0x4]
- lsrs r0, 7
- cmp r0, 0
- beq _081249DC
- adds r0, r1, 0x4
- movs r1, 0
- movs r2, 0xC
- bl memset
- adds r0, r4, 0
- b _081249DE
-_081249DC:
- movs r0, 0xFF
-_081249DE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_81249B0
-
- thumb_func_start sub_81249E4
-sub_81249E4: @ 81249E4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r5, r0, 0
- movs r0, 0
- mov r12, r0
- ldrb r1, [r5, 0x8]
- cmp r12, r1
- bcc _081249FC
- b _08124B94
-_081249FC:
- movs r7, 0x1F
- ldr r0, _08124A2C
- mov r10, r0
- movs r1, 0x7D
- negs r1, r1
- mov r9, r1
- movs r0, 0x1F
- mov r8, r0
-_08124A0C:
- ldrh r0, [r5, 0x6]
- add r0, r12
- lsls r0, 1
- ldr r1, _08124A30
- adds r3, r0, r1
- ldr r1, _08124A34
- adds r6, r0, r1
- ldrb r0, [r5]
- lsls r0, 25
- lsrs r0, 25
- cmp r0, 0x1
- beq _08124A38
- cmp r0, 0x2
- beq _08124A96
- b _08124B82
- .align 2, 0
-_08124A2C: .4byte 0xfffffc1f
-_08124A30: .4byte gPlttBufferFaded
-_08124A34: .4byte gPlttBufferUnfaded
-_08124A38:
- ldr r0, [r3]
- lsls r2, r0, 27
- lsrs r0, r2, 27
- movs r1, 0x3
- ldrsb r1, [r5, r1]
- adds r0, r1
- cmp r0, 0x1F
- bhi _08124A5A
- lsrs r0, r2, 27
- adds r0, r1
- ands r0, r7
- ldrb r2, [r3]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3]
-_08124A5A:
- ldr r0, [r3]
- lsls r2, r0, 22
- lsrs r0, r2, 27
- movs r1, 0x3
- ldrsb r1, [r5, r1]
- adds r0, r1
- cmp r0, 0x1F
- bhi _08124A7E
- lsrs r0, r2, 27
- adds r0, r1
- mov r1, r8
- ands r0, r1
- lsls r0, 5
- ldrh r2, [r3]
- mov r1, r10
- ands r1, r2
- orrs r1, r0
- strh r1, [r3]
-_08124A7E:
- ldr r0, [r3]
- lsls r2, r0, 17
- lsrs r0, r2, 27
- movs r1, 0x3
- ldrsb r1, [r5, r1]
- adds r0, r1
- cmp r0, 0x1F
- bls _08124A90
- b _08124B82
-_08124A90:
- lsrs r0, r2, 27
- adds r0, r1
- b _08124B74
-_08124A96:
- movs r0, 0x3
- ldrsb r0, [r5, r0]
- cmp r0, 0
- bge _08124B08
- ldr r0, [r3]
- lsls r4, r0, 27
- lsrs r1, r4, 27
- movs r2, 0x3
- ldrsb r2, [r5, r2]
- adds r1, r2
- ldr r0, [r6]
- lsls r0, 27
- lsrs r0, 27
- cmp r1, r0
- blt _08124AC6
- lsrs r0, r4, 27
- adds r0, r2
- ands r0, r7
- ldrb r2, [r3]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3]
-_08124AC6:
- ldr r0, [r3]
- lsls r4, r0, 22
- lsrs r1, r4, 27
- movs r2, 0x3
- ldrsb r2, [r5, r2]
- adds r1, r2
- ldr r0, [r6]
- lsls r0, 22
- lsrs r0, 27
- cmp r1, r0
- blt _08124AF0
- lsrs r0, r4, 27
- adds r0, r2
- mov r1, r8
- ands r0, r1
- lsls r0, 5
- ldrh r2, [r3]
- mov r1, r10
- ands r1, r2
- orrs r1, r0
- strh r1, [r3]
-_08124AF0:
- ldr r0, [r3]
- lsls r4, r0, 17
- lsrs r1, r4, 27
- movs r2, 0x3
- ldrsb r2, [r5, r2]
- adds r1, r2
- ldr r0, [r6]
- lsls r0, 17
- lsrs r0, 27
- cmp r1, r0
- blt _08124B82
- b _08124B70
-_08124B08:
- ldr r0, [r3]
- lsls r4, r0, 27
- lsrs r1, r4, 27
- movs r2, 0x3
- ldrsb r2, [r5, r2]
- adds r1, r2
- ldr r0, [r6]
- lsls r0, 27
- lsrs r0, 27
- cmp r1, r0
- bgt _08124B30
- lsrs r0, r4, 27
- adds r0, r2
- ands r0, r7
- ldrb r2, [r3]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3]
-_08124B30:
- ldr r0, [r3]
- lsls r4, r0, 22
- lsrs r1, r4, 27
- movs r2, 0x3
- ldrsb r2, [r5, r2]
- adds r1, r2
- ldr r0, [r6]
- lsls r0, 22
- lsrs r0, 27
- cmp r1, r0
- bgt _08124B5A
- lsrs r0, r4, 27
- adds r0, r2
- mov r1, r8
- ands r0, r1
- lsls r0, 5
- ldrh r2, [r3]
- mov r1, r10
- ands r1, r2
- orrs r1, r0
- strh r1, [r3]
-_08124B5A:
- ldr r0, [r3]
- lsls r4, r0, 17
- lsrs r1, r4, 27
- movs r2, 0x3
- ldrsb r2, [r5, r2]
- adds r1, r2
- ldr r0, [r6]
- lsls r0, 17
- lsrs r0, 27
- cmp r1, r0
- bgt _08124B82
-_08124B70:
- lsrs r0, r4, 27
- adds r0, r2
-_08124B74:
- ands r0, r7
- lsls r0, 2
- ldrb r2, [r3, 0x1]
- mov r1, r9
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x1]
-_08124B82:
- mov r0, r12
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- ldrb r0, [r5, 0x8]
- cmp r12, r0
- bcs _08124B94
- b _08124A0C
-_08124B94:
- ldrb r1, [r5, 0x2]
- adds r0, r1, 0x1
- strb r0, [r5, 0x2]
- ldrb r0, [r5, 0xB]
- lsls r0, 27
- lsls r1, 24
- asrs r0, 3
- cmp r1, r0
- beq _08124BAA
- movs r0, 0
- b _08124BDE
-_08124BAA:
- movs r0, 0
- strb r0, [r5, 0x2]
- movs r0, 0x3
- ldrsb r0, [r5, r0]
- negs r0, r0
- strb r0, [r5, 0x3]
- ldrb r2, [r5]
- movs r1, 0x7F
- movs r0, 0x7F
- ands r0, r2
- cmp r0, 0x1
- bne _08124BCA
- lsls r0, r2, 25
- lsrs r0, 25
- adds r0, 0x1
- b _08124BD0
-_08124BCA:
- lsls r0, r2, 25
- lsrs r0, 25
- subs r0, 0x1
-_08124BD0:
- ands r0, r1
- movs r1, 0x80
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5]
- movs r0, 0x1
-_08124BDE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81249E4
-
- thumb_func_start sub_8124BEC
-sub_8124BEC: @ 8124BEC
- push {r4,r5,lr}
- adds r3, r0, 0
- movs r2, 0
- ldrb r0, [r3]
- lsls r0, 25
- lsrs r0, 25
- cmp r0, 0x1
- beq _08124C02
- cmp r0, 0x2
- beq _08124C30
- b _08124C6A
-_08124C02:
- ldrb r0, [r3, 0x8]
- cmp r2, r0
- bcs _08124C22
- ldr r4, _08124C2C
-_08124C0A:
- ldrh r0, [r3, 0x6]
- adds r0, r2
- lsls r0, 1
- adds r0, r4
- ldrh r1, [r3, 0x4]
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r3, 0x8]
- cmp r2, r0
- bcc _08124C0A
-_08124C22:
- ldrb r2, [r3]
- lsls r1, r2, 25
- lsrs r1, 25
- adds r1, 0x1
- b _08124C5C
- .align 2, 0
-_08124C2C: .4byte gPlttBufferFaded
-_08124C30:
- ldrb r0, [r3, 0x8]
- cmp r2, r0
- bcs _08124C54
- ldr r5, _08124C74
- ldr r4, _08124C78
-_08124C3A:
- ldrh r0, [r3, 0x6]
- adds r0, r2
- lsls r0, 1
- adds r1, r0, r5
- adds r0, r4
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- ldrb r0, [r3, 0x8]
- cmp r2, r0
- bcc _08124C3A
-_08124C54:
- ldrb r2, [r3]
- lsls r1, r2, 25
- lsrs r1, 25
- subs r1, 0x1
-_08124C5C:
- movs r0, 0x7F
- ands r1, r0
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
-_08124C6A:
- movs r0, 0x1
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08124C74: .4byte gPlttBufferFaded
-_08124C78: .4byte gPlttBufferUnfaded
- thumb_func_end sub_8124BEC
-
- thumb_func_start task_tutorial_controls_fadein
-task_tutorial_controls_fadein: @ 8124C7C
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r5, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _08124CE0
-_08124C88:
- ldrh r0, [r4, 0x2]
- asrs r0, r5
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08124CD6
- lsls r1, r5, 1
- adds r0, r1, r5
- lsls r3, r0, 2
- adds r2, r4, r3
- ldrb r0, [r2, 0x5]
- subs r0, 0x1
- strb r0, [r2, 0x5]
- lsls r0, 24
- lsrs r0, 24
- adds r6, r1, 0
- cmp r0, 0xFF
- bne _08124CD6
- ldrh r0, [r2, 0x8]
- movs r2, 0x80
- lsls r2, 8
- adds r1, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _08124CC4
- adds r0, r3, 0x4
- adds r0, r4, r0
- bl sub_81249E4
- b _08124CCC
-_08124CC4:
- adds r0, r3, 0x4
- adds r0, r4, r0
- bl sub_8124BEC
-_08124CCC:
- adds r0, r6, r5
- lsls r0, 2
- adds r0, r4, r0
- ldrb r1, [r0, 0xD]
- strb r1, [r0, 0x5]
-_08124CD6:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _08124C88
-_08124CE0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end task_tutorial_controls_fadein
-
- thumb_func_start sub_8124CE8
-sub_8124CE8: @ 8124CE8
- push {r4-r7,lr}
- adds r3, r0, 0
- lsls r1, 16
- lsrs r6, r1, 16
- movs r4, 0
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- movs r5, 0x1
- movs r7, 0x80
- negs r7, r7
-_08124CFE:
- adds r0, r6, 0
- asrs r0, r4
- ands r0, r5
- cmp r0, 0
- beq _08124D2C
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- adds r2, r3, r0
- ldrb r0, [r2, 0x4]
- lsrs r0, 7
- cmp r0, 0
- beq _08124D2C
- adds r0, r5, 0
- lsls r0, r4
- ldrh r1, [r3, 0x2]
- orrs r0, r1
- strh r0, [r3, 0x2]
- ldrb r1, [r2, 0x4]
- adds r0, r7, 0
- ands r0, r1
- orrs r0, r5
- strb r0, [r2, 0x4]
-_08124D2C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _08124CFE
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8124CE8
-
- thumb_func_start sub_8124D3C
-sub_8124D3C: @ 8124D3C
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- lsls r1, 16
- lsrs r7, r1, 16
- movs r5, 0
- movs r3, 0x1
-_08124D4A:
- ldrh r0, [r6, 0x2]
- asrs r0, r5
- ands r0, r3
- cmp r0, 0
- beq _08124DB2
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- adds r4, r6, r0
- ldrb r0, [r4, 0x4]
- lsrs r0, 7
- cmp r0, 0
- beq _08124DB2
- adds r0, r7, 0
- asrs r0, r5
- ands r0, r3
- cmp r0, 0
- beq _08124DB2
- ldrh r1, [r4, 0xA]
- lsls r1, 1
- ldr r0, _08124DA8
- adds r0, r1, r0
- ldr r2, _08124DAC
- adds r1, r2
- ldrb r2, [r4, 0xC]
- lsls r2, 1
- str r3, [sp]
- bl memcpy
- ldrb r0, [r4, 0x4]
- movs r2, 0x80
- negs r2, r2
- adds r1, r2, 0
- ands r0, r1
- strb r0, [r4, 0x4]
- movs r0, 0
- strb r0, [r4, 0x6]
- strb r0, [r4, 0x5]
- ldrb r0, [r4, 0xF]
- lsls r0, 24
- ldr r3, [sp]
- cmp r0, 0
- bge _08124DB0
- movs r0, 0xFF
- strb r0, [r4, 0x7]
- b _08124DB2
- .align 2, 0
-_08124DA8: .4byte gPlttBufferFaded
-_08124DAC: .4byte gPlttBufferUnfaded
-_08124DB0:
- strb r3, [r4, 0x7]
-_08124DB2:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xF
- bls _08124D4A
- ldr r0, _08124DC8
- cmp r7, r0
- bne _08124DCC
- movs r0, 0
- strb r0, [r6]
- b _08124DD0
- .align 2, 0
-_08124DC8: .4byte 0x0000ffff
-_08124DCC:
- ldrh r0, [r6, 0x2]
- bics r0, r7
-_08124DD0:
- strh r0, [r6, 0x2]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8124D3C
-
- thumb_func_start sub_8124DDC
-sub_8124DDC: @ 8124DDC
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r0, [sp, 0x14]
- ldr r4, [sp, 0x18]
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r4, 24
- movs r1, 0
- lsrs r3, 19
- adds r3, r2
- lsls r3, 1
- adds r6, r3
- cmp r1, r4
- bcs _08124E26
-_08124E04:
- lsls r0, r1, 6
- adds r2, r6, r0
- movs r0, 0
- adds r3, r1, 0x1
- cmp r0, r5
- bcs _08124E1E
-_08124E10:
- strh r7, [r2]
- adds r2, 0x2
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r5
- bcc _08124E10
-_08124E1E:
- lsls r0, r3, 24
- lsrs r1, r0, 24
- cmp r1, r4
- bcc _08124E04
-_08124E26:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8124DDC
-
- thumb_func_start sub_8124E2C
-sub_8124E2C: @ 8124E2C
- push {r4-r7,lr}
- adds r7, r0, 0
- ldr r0, [sp, 0x14]
- ldr r4, [sp, 0x18]
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r4, 24
- lsrs r6, r4, 24
- movs r4, 0
- lsrs r3, 19
- adds r3, r2
- lsls r3, 1
- adds r7, r3
- cmp r4, r6
- bcs _08124E76
-_08124E50:
- lsls r0, r4, 6
- adds r2, r7, r0
- movs r3, 0
- adds r4, 0x1
- cmp r3, r5
- bcs _08124E6E
-_08124E5C:
- ldrh r0, [r1]
- strh r0, [r2]
- adds r1, 0x2
- adds r2, 0x2
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r5
- bcc _08124E5C
-_08124E6E:
- lsls r0, r4, 24
- lsrs r4, r0, 24
- cmp r4, r6
- bcc _08124E50
-_08124E76:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8124E2C
-
- thumb_func_start sub_8124E7C
-sub_8124E7C: @ 8124E7C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r0
- ldr r0, [sp, 0x24]
- ldr r4, [sp, 0x28]
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp]
- lsls r3, 24
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r4, 24
- lsrs r4, 24
- mov r8, r4
- movs r0, 0
- lsrs r4, r3, 24
- cmp r0, r8
- bcs _08124EF6
-_08124EAE:
- ldr r2, [sp]
- movs r3, 0
- adds r6, r4, 0x1
- adds r0, 0x1
- mov r12, r0
- cmp r3, r7
- bcs _08124EE0
- lsls r5, r4, 6
-_08124EBE:
- lsls r0, r2, 1
- adds r0, r5
- add r0, r10
- mov r1, r9
- strh r1, [r0]
- adds r1, r2, 0x1
- adds r0, r1, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r1, r0
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r7
- bcc _08124EBE
-_08124EE0:
- adds r0, r6, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r6, r0
- lsls r0, 24
- lsrs r4, r0, 24
- mov r1, r12
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, r8
- bcc _08124EAE
-_08124EF6:
- 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_8124E7C
-
- thumb_func_start sub_8124F08
-sub_8124F08: @ 8124F08
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r0
- ldr r0, [sp, 0x24]
- ldr r4, [sp, 0x28]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp]
- lsls r3, 24
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r4, 24
- lsrs r4, 24
- mov r9, r4
- movs r0, 0
- adds r5, r1, 0
- lsrs r4, r3, 24
- cmp r0, r9
- bcs _08124F82
-_08124F38:
- ldr r2, [sp]
- movs r3, 0
- adds r7, r4, 0x1
- adds r0, 0x1
- mov r8, r0
- cmp r3, r12
- bcs _08124F6C
- lsls r6, r4, 6
-_08124F48:
- lsls r0, r2, 1
- adds r0, r6
- add r0, r10
- ldrh r1, [r5]
- strh r1, [r0]
- adds r5, 0x2
- adds r1, r2, 0x1
- adds r0, r1, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r1, r0
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r12
- bcc _08124F48
-_08124F6C:
- adds r0, r7, 0
- asrs r0, 5
- lsls r0, 5
- subs r0, r7, r0
- lsls r0, 24
- lsrs r4, r0, 24
- mov r1, r8
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, r9
- bcc _08124F38
-_08124F82:
- 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_8124F08
-
- thumb_func_start unref_sub_8124F94
-unref_sub_8124F94: @ 8124F94
- sub sp, 0x4
- movs r3, 0
- strb r3, [r0, 0x1]
- strb r3, [r0]
- strh r3, [r0, 0x2]
- movs r1, 0xC0
- lsls r1, 19
- str r1, [r0, 0x4]
- mov r1, sp
- strh r3, [r1]
- ldr r2, _08124FCC
- str r1, [r2]
- adds r1, r0, 0
- adds r1, 0x8
- str r1, [r2, 0x4]
- ldr r1, _08124FD0
- str r1, [r2, 0x8]
- ldr r1, [r2, 0x8]
- mov r1, sp
- strh r3, [r1]
- str r1, [r2]
- adds r0, 0x88
- str r0, [r2, 0x4]
- ldr r0, _08124FD4
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- add sp, 0x4
- bx lr
- .align 2, 0
-_08124FCC: .4byte 0x040000d4
-_08124FD0: .4byte 0x81000040
-_08124FD4: .4byte 0x810000c0
- thumb_func_end unref_sub_8124F94
-
- thumb_func_start unref_sub_8124FD8
-unref_sub_8124FD8: @ 8124FD8
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r7, _08124FE4
- b _0812508A
- .align 2, 0
-_08124FE4: .4byte 0x040000d4
-_08124FE8:
- ldrb r0, [r4, 0x1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r0, r4, 0
- adds r0, 0x88
- adds r0, r1
- str r3, [r0]
- ldrb r1, [r4, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- ldrb r1, [r5, 0x6]
- adds r0, 0x8E
- strb r1, [r0]
- ldrb r1, [r4, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- ldrb r1, [r5, 0x4]
- adds r0, 0x8C
- strb r1, [r0]
- ldrb r1, [r4, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- ldrb r1, [r5, 0x5]
- adds r0, 0x8D
- strb r1, [r0]
- ldrb r1, [r5, 0x4]
- ldrb r0, [r5, 0x5]
- adds r6, r1, 0
- muls r6, r0
- ldrh r2, [r4, 0x2]
- adds r1, r2, r6
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- ble _08125040
- movs r0, 0x2
- b _0812509C
-_08125040:
- ldrh r0, [r5, 0x8]
- cmp r0, 0
- bne _08125060
- str r3, [r7]
- ldrh r1, [r4, 0x2]
- lsls r1, 6
- ldr r0, [r4, 0x4]
- adds r0, r1
- str r0, [r7, 0x4]
- lsls r0, r6, 4
- movs r1, 0x80
- lsls r1, 24
- orrs r0, r1
- str r0, [r7, 0x8]
- ldr r0, [r7, 0x8]
- b _0812506C
-_08125060:
- lsls r0, r2, 6
- ldr r1, [r4, 0x4]
- adds r1, r0
- adds r0, r3, 0
- bl sub_800D238
-_0812506C:
- ldrb r1, [r4, 0x1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4, r0
- ldrh r1, [r4, 0x2]
- adds r0, 0x90
- strh r1, [r0]
- ldrh r0, [r4, 0x2]
- adds r0, r6, r0
- strh r0, [r4, 0x2]
- ldrb r0, [r4, 0x1]
- adds r0, 0x1
- strb r0, [r4, 0x1]
- adds r5, 0xC
-_0812508A:
- ldrb r0, [r4, 0x1]
- cmp r0, 0x1F
- bhi _0812509A
- ldr r3, [r5]
- cmp r3, 0
- bne _08124FE8
- movs r0, 0
- b _0812509C
-_0812509A:
- movs r0, 0x1
-_0812509C:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8124FD8
-
- thumb_func_start unref_sub_81250A4
-unref_sub_81250A4: @ 81250A4
- push {r4,r5,lr}
- sub sp, 0x20
- adds r4, r0, 0
- adds r5, r1, 0
- b _081250FC
-_081250AE:
- ldrb r1, [r4]
- lsls r1, 3
- adds r0, r4, 0
- adds r0, 0x8
- adds r0, r1
- str r2, [r0]
- ldrb r0, [r4]
- lsls r0, 3
- adds r0, r4, r0
- ldrb r1, [r5, 0x4]
- strb r1, [r0, 0xC]
- ldrb r0, [r5, 0x5]
- cmp r0, 0
- bne _081250D8
- ldrb r1, [r4]
- lsls r1, 4
- adds r0, r2, 0
- movs r2, 0x20
- bl LoadPalette
- b _081250EC
-_081250D8:
- adds r0, r2, 0
- mov r1, sp
- bl sub_800D238
- ldrb r1, [r4]
- lsls r1, 4
- mov r0, sp
- movs r2, 0x20
- bl LoadPalette
-_081250EC:
- ldrb r0, [r4]
- lsls r1, r0, 3
- adds r1, r4, r1
- strb r0, [r1, 0xD]
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- adds r5, 0x8
-_081250FC:
- ldrb r0, [r4]
- cmp r0, 0xF
- bhi _0812510C
- ldr r2, [r5]
- cmp r2, 0
- bne _081250AE
- movs r0, 0
- b _0812510E
-_0812510C:
- movs r0, 0x1
-_0812510E:
- add sp, 0x20
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_81250A4
-
- thumb_func_start unref_sub_8125118
-unref_sub_8125118: @ 8125118
- push {r4-r7,lr}
- ldr r4, _0812514C
- add sp, r4
- adds r5, r0, 0
- adds r6, r1, 0
- movs r2, 0x80
- lsls r2, 2
- mov r0, sp
- movs r1, 0
- bl memset
- ldrb r7, [r6, 0x5]
- ldr r0, [r6]
- mov r1, sp
- bl sub_800D238
- ldrb r4, [r5]
- cmp r4, r7
- bcs _08125186
-_0812513E:
- ldrb r0, [r5]
- adds r0, r4
- cmp r0, 0xF
- ble _08125150
- movs r0, 0x1
- b _08125188
- .align 2, 0
-_0812514C: .4byte 0xfffffe00
-_08125150:
- lsls r2, r4, 3
- adds r0, r5, 0
- adds r0, 0x8
- adds r0, r2
- ldr r1, [r6]
- str r1, [r0]
- adds r2, r5, r2
- ldrb r0, [r6, 0x4]
- adds r0, r4, r0
- strb r0, [r2, 0xC]
- ldrb r0, [r5]
- strb r0, [r2, 0xD]
- lsls r0, r4, 5
- add r0, sp
- ldrb r1, [r5]
- lsls r1, 4
- movs r2, 0x20
- bl LoadPalette
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r7
- bcc _0812513E
-_08125186:
- movs r0, 0
-_08125188:
- movs r3, 0x80
- lsls r3, 2
- add sp, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8125118
-
- thumb_func_start calls_flash_erase_block
-calls_flash_erase_block: @ 8125194
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _081251B4
-_0812519A:
- ldr r1, [r5]
- adds r0, r4, 0
- bl _call_via_r1
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1F
- bls _0812519A
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081251B4: .4byte EraseFlashSector
- thumb_func_end calls_flash_erase_block
-
- thumb_func_start sub_81251B8
-sub_81251B8: @ 81251B8
- ldr r0, _081251C8
- movs r1, 0
- str r1, [r0]
- ldr r0, _081251CC
- strh r1, [r0]
- ldr r0, _081251D0
- str r1, [r0]
- bx lr
- .align 2, 0
-_081251C8: .4byte gUnknown_03005EAC
-_081251CC: .4byte gUnknown_03005E9C
-_081251D0: .4byte gUnknown_03005EA8
- thumb_func_end sub_81251B8
-
- thumb_func_start sub_81251D4
-sub_81251D4: @ 81251D4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- movs r4, 0
- cmp r0, 0x1
- beq _08125208
- cmp r0, 0x1
- bgt _081251EE
- cmp r0, 0
- beq _081251F4
- b _0812522C
-_081251EE:
- cmp r0, 0x2
- beq _0812521C
- b _0812522C
-_081251F4:
- ldr r2, _08125204
- movs r1, 0x1
- lsls r1, r3
- ldr r0, [r2]
- orrs r0, r1
- str r0, [r2]
- b _0812522C
- .align 2, 0
-_08125204: .4byte gUnknown_03005EA8
-_08125208:
- ldr r2, _08125218
- adds r1, r0, 0
- lsls r1, r3
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
- b _0812522C
- .align 2, 0
-_08125218: .4byte gUnknown_03005EA8
-_0812521C:
- ldr r0, _08125234
- movs r1, 0x1
- lsls r1, r3
- ldr r0, [r0]
- ands r0, r1
- cmp r0, 0
- beq _0812522C
- movs r4, 0x1
-_0812522C:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08125234: .4byte gUnknown_03005EA8
- thumb_func_end sub_81251D4
-
- thumb_func_start save_write_to_flash
-save_write_to_flash: @ 8125238
- push {r4-r7,lr}
- adds r7, r1, 0
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r1, _0812525C
- ldr r0, _08125260
- str r0, [r1]
- ldr r0, _08125264
- cmp r2, r0
- beq _08125268
- adds r0, r2, 0
- adds r1, r7, 0
- bl sub_81252D8
- lsls r0, 24
- lsrs r5, r0, 24
- b _081252BA
- .align 2, 0
-_0812525C: .4byte gUnknown_03005EB0
-_08125260: .4byte 0x02000000
-_08125264: .4byte 0x0000ffff
-_08125268:
- ldr r1, _081252C4
- ldr r5, _081252C8
- ldrh r0, [r5]
- strh r0, [r1]
- ldr r1, _081252CC
- ldr r6, _081252D0
- ldr r4, [r6]
- str r4, [r1]
- adds r0, 0x1
- strh r0, [r5]
- ldrh r0, [r5]
- movs r1, 0xE
- bl __umodsi3
- strh r0, [r5]
- adds r4, 0x1
- str r4, [r6]
- movs r5, 0x1
- movs r4, 0
-_0812528E:
- adds r0, r4, 0
- adds r1, r7, 0
- bl sub_81252D8
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xD
- bls _0812528E
- ldr r0, _081252D4
- ldr r0, [r0]
- cmp r0, 0
- beq _081252BA
- movs r5, 0xFF
- ldr r1, _081252C8
- ldr r0, _081252C4
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _081252D0
- ldr r0, _081252CC
- ldr r0, [r0]
- str r0, [r1]
-_081252BA:
- adds r0, r5, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081252C4: .4byte gUnknown_03005EA4
-_081252C8: .4byte gUnknown_03005E9C
-_081252CC: .4byte gUnknown_03005EA0
-_081252D0: .4byte gUnknown_03005EAC
-_081252D4: .4byte gUnknown_03005EA8
- thumb_func_end save_write_to_flash
-
- thumb_func_start sub_81252D8
-sub_81252D8: @ 81252D8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r4, r1, 0
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _081253A4
- ldrh r0, [r0]
- adds r0, r6, r0
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r5, 0
- movs r1, 0xE
- bl __umodsi3
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r2, _081253A8
- ldr r1, [r2]
- movs r0, 0x1
- ands r1, r0
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r0, r5, r0
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r0, r6, 3
- adds r0, r4
- ldr r1, [r0]
- mov r10, r1
- ldrh r4, [r0, 0x4]
- movs r3, 0
- mov r9, r2
- ldr r2, _081253AC
- mov r12, r2
- mov r8, r12
- movs r2, 0
- ldr r1, _081253B0
-_0812532A:
- mov r7, r8
- ldr r0, [r7]
- adds r0, r3
- strb r2, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r1
- bls _0812532A
- mov r0, r12
- ldr r1, [r0]
- ldr r2, _081253B4
- adds r0, r1, r2
- strh r6, [r0]
- ldr r3, _081253B8
- adds r2, r1, r3
- ldr r0, _081253BC
- str r0, [r2]
- ldr r6, _081253C0
- adds r1, r6
- mov r7, r9
- ldr r0, [r7]
- str r0, [r1]
- movs r3, 0
- lsls r5, 24
- cmp r3, r4
- bcs _08125378
- mov r2, r12
-_08125362:
- ldr r1, [r2]
- adds r1, r3
- mov r6, r10
- adds r0, r6, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r4
- bcc _08125362
-_08125378:
- mov r0, r10
- adds r1, r4, 0
- bl sub_8125C10
- ldr r1, _081253AC
- ldr r1, [r1]
- ldr r7, _081253C4
- adds r2, r1, r7
- strh r0, [r2]
- lsrs r0, r5, 24
- bl sub_8125440
- lsls r0, 24
- lsrs r0, 24
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081253A4: .4byte gUnknown_03005E9C
-_081253A8: .4byte gUnknown_03005EAC
-_081253AC: .4byte gUnknown_03005EB0
-_081253B0: .4byte 0x00000fff
-_081253B4: .4byte 0x00000ff4
-_081253B8: .4byte 0x00000ff8
-_081253BC: .4byte 0x08012025 @ TODO: figure out what this represents
-_081253C0: .4byte 0x00000ffc
-_081253C4: .4byte 0x00000ff6
- thumb_func_end sub_81252D8
-
- thumb_func_start sub_81253C8
-sub_81253C8: @ 81253C8
- push {r4-r7,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r2, 16
- lsrs r2, 16
- ldr r4, _0812542C
- movs r3, 0
- movs r6, 0
- ldr r1, _08125430
-_081253DC:
- adds r0, r4, r3
- strb r6, [r0]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r1
- bls _081253DC
- ldr r0, _08125434
- adds r1, r4, r0
- ldr r0, _08125438
- str r0, [r1]
- movs r3, 0
- cmp r3, r2
- bcs _0812540A
-_081253F8:
- adds r1, r4, r3
- adds r0, r5, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r2
- bcc _081253F8
-_0812540A:
- adds r0, r5, 0
- adds r1, r2, 0
- bl sub_8125C10
- ldr r2, _0812543C
- adds r1, r4, r2
- strh r0, [r1]
- adds r0, r7, 0
- adds r1, r4, 0
- bl sub_8125440
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0812542C: .4byte 0x02000000
-_08125430: .4byte 0x00000fff
-_08125434: .4byte 0x00000ff8
-_08125438: .4byte 0x08012025 @ TODO: figure out what this represents
-_0812543C: .4byte 0x00000ff4
- thumb_func_end sub_81253C8
-
- thumb_func_start sub_8125440
-sub_8125440: @ 8125440
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl ProgramFlashSectorAndVerify
- cmp r0, 0
- bne _0812545C
- movs r0, 0x1
- adds r1, r4, 0
- bl sub_81251D4
- movs r0, 0x1
- b _08125466
-_0812545C:
- movs r0, 0
- adds r1, r4, 0
- bl sub_81251D4
- movs r0, 0xFF
-_08125466:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8125440
-
- thumb_func_start sub_812546C
-sub_812546C: @ 812546C
- push {r4-r6,lr}
- ldr r1, _081254A8
- ldr r0, _081254AC
- str r0, [r1]
- ldr r1, _081254B0
- ldr r5, _081254B4
- ldrh r0, [r5]
- strh r0, [r1]
- ldr r1, _081254B8
- ldr r6, _081254BC
- ldr r4, [r6]
- str r4, [r1]
- adds r0, 0x1
- strh r0, [r5]
- ldrh r0, [r5]
- movs r1, 0xE
- bl __umodsi3
- strh r0, [r5]
- adds r4, 0x1
- str r4, [r6]
- ldr r1, _081254C0
- movs r0, 0
- strh r0, [r1]
- ldr r1, _081254C4
- movs r0, 0
- str r0, [r1]
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081254A8: .4byte gUnknown_03005EB0
-_081254AC: .4byte 0x02000000
-_081254B0: .4byte gUnknown_03005EA4
-_081254B4: .4byte gUnknown_03005E9C
-_081254B8: .4byte gUnknown_03005EA0
-_081254BC: .4byte gUnknown_03005EAC
-_081254C0: .4byte gUnknown_03005EB4
-_081254C4: .4byte gUnknown_03005EA8
- thumb_func_end sub_812546C
-
- thumb_func_start sub_81254C8
-sub_81254C8: @ 81254C8
- ldr r1, _081254EC
- ldr r0, _081254F0
- str r0, [r1]
- ldr r1, _081254F4
- ldr r0, _081254F8
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _081254FC
- ldr r0, _08125500
- ldr r0, [r0]
- str r0, [r1]
- ldr r1, _08125504
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08125508
- movs r0, 0
- str r0, [r1]
- bx lr
- .align 2, 0
-_081254EC: .4byte gUnknown_03005EB0
-_081254F0: .4byte 0x02000000
-_081254F4: .4byte gUnknown_03005EA4
-_081254F8: .4byte gUnknown_03005E9C
-_081254FC: .4byte gUnknown_03005EA0
-_08125500: .4byte gUnknown_03005EAC
-_08125504: .4byte gUnknown_03005EB4
-_08125508: .4byte gUnknown_03005EA8
- thumb_func_end sub_81254C8
-
- thumb_func_start sub_812550C
-sub_812550C: @ 812550C
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _08125548
- ldrh r2, [r4]
- subs r0, 0x1
- cmp r2, r0
- bge _08125560
- movs r5, 0x1
- adds r0, r2, 0
- bl sub_81252D8
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- ldr r0, _0812554C
- ldr r0, [r0]
- cmp r0, 0
- beq _08125562
- movs r5, 0xFF
- ldr r1, _08125550
- ldr r0, _08125554
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _08125558
- ldr r0, _0812555C
- ldr r0, [r0]
- str r0, [r1]
- b _08125562
- .align 2, 0
-_08125548: .4byte gUnknown_03005EB4
-_0812554C: .4byte gUnknown_03005EA8
-_08125550: .4byte gUnknown_03005E9C
-_08125554: .4byte gUnknown_03005EA4
-_08125558: .4byte gUnknown_03005EAC
-_0812555C: .4byte gUnknown_03005EA0
-_08125560:
- movs r5, 0xFF
-_08125562:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_812550C
-
- thumb_func_start sub_812556C
-sub_812556C: @ 812556C
- push {r4,lr}
- lsls r0, 16
- movs r4, 0x1
- ldr r2, _081255A0
- adds r0, r2
- lsrs r0, 16
- bl sub_81255B8
- ldr r0, _081255A4
- ldr r0, [r0]
- cmp r0, 0
- beq _08125596
- movs r4, 0xFF
- ldr r1, _081255A8
- ldr r0, _081255AC
- ldrh r0, [r0]
- strh r0, [r1]
- ldr r1, _081255B0
- ldr r0, _081255B4
- ldr r0, [r0]
- str r0, [r1]
-_08125596:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081255A0: .4byte 0xffff0000
-_081255A4: .4byte gUnknown_03005EA8
-_081255A8: .4byte gUnknown_03005E9C
-_081255AC: .4byte gUnknown_03005EA4
-_081255B0: .4byte gUnknown_03005EAC
-_081255B4: .4byte gUnknown_03005EA0
- thumb_func_end sub_812556C
-
- thumb_func_start sub_81255B8
-sub_81255B8: @ 81255B8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r4, r1, 0
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _08125684
- ldrh r0, [r0]
- adds r0, r6, r0
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r5, 0
- movs r1, 0xE
- bl __umodsi3
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r2, _08125688
- ldr r1, [r2]
- movs r0, 0x1
- ands r1, r0
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r0, r5, r0
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r0, r6, 3
- adds r0, r4
- ldr r1, [r0]
- mov r10, r1
- ldrh r3, [r0, 0x4]
- movs r4, 0
- mov r9, r2
- ldr r2, _0812568C
- mov r12, r2
- mov r8, r12
- movs r2, 0
- ldr r1, _08125690
-_0812560A:
- mov r7, r8
- ldr r0, [r7]
- adds r0, r4
- strb r2, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r1
- bls _0812560A
- mov r0, r12
- ldr r1, [r0]
- ldr r2, _08125694
- adds r0, r1, r2
- strh r6, [r0]
- ldr r6, _08125698
- adds r2, r1, r6
- ldr r0, _0812569C
- str r0, [r2]
- ldr r7, _081256A0
- adds r1, r7
- mov r2, r9
- ldr r0, [r2]
- str r0, [r1]
- movs r4, 0
- lsls r6, r5, 24
- mov r8, r6
- cmp r4, r3
- bcs _0812565A
- mov r2, r12
-_08125644:
- ldr r1, [r2]
- adds r1, r4
- mov r7, r10
- adds r0, r7, r4
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r3
- bcc _08125644
-_0812565A:
- mov r0, r10
- adds r1, r3, 0
- bl sub_8125C10
- ldr r1, _0812568C
- ldr r1, [r1]
- ldr r2, _081256A4
- adds r1, r2
- strh r0, [r1]
- ldr r0, _081256A8
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- movs r6, 0x1
- movs r4, 0
- ldr r7, _081256AC
- mov r9, r7
- ldr r7, _081256B0
- b _081256BA
- .align 2, 0
-_08125684: .4byte gUnknown_03005E9C
-_08125688: .4byte gUnknown_03005EAC
-_0812568C: .4byte gUnknown_03005EB0
-_08125690: .4byte 0x00000fff
-_08125694: .4byte 0x00000ff4
-_08125698: .4byte 0x00000ff8
-_0812569C: .4byte 0x08012025 @ TODO: figure out what this represents
-_081256A0: .4byte 0x00000ffc
-_081256A4: .4byte 0x00000ff6
-_081256A8: .4byte EraseFlashSector
-_081256AC: .4byte 0x00000ff7
-_081256B0: .4byte ProgramFlashByte
-_081256B4:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_081256BA:
- cmp r4, r9
- bhi _081256D8
- ldr r0, _081256E4
- ldr r0, [r0]
- adds r0, r4
- ldrb r2, [r0]
- ldr r3, [r7]
- adds r0, r5, 0
- adds r1, r4, 0
- bl _call_via_r3
- lsls r0, 16
- cmp r0, 0
- beq _081256B4
- movs r6, 0xFF
-_081256D8:
- cmp r6, 0xFF
- bne _081256E8
- mov r0, r8
- lsrs r1, r0, 24
- b _08125740
- .align 2, 0
-_081256E4: .4byte gUnknown_03005EB0
-_081256E8:
- movs r6, 0x1
- movs r4, 0
- ldr r1, _081256F4
- mov r9, r1
- ldr r7, _081256F8
- b _08125702
- .align 2, 0
-_081256F4: .4byte ProgramFlashByte
-_081256F8: .4byte 0x00000ff9
-_081256FC:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_08125702:
- cmp r4, 0x6
- bhi _08125724
- adds r1, r4, r7
- ldr r0, _08125738
- ldr r0, [r0]
- adds r0, r4, r0
- adds r0, r7
- ldrb r2, [r0]
- mov r0, r9
- ldr r3, [r0]
- adds r0, r5, 0
- bl _call_via_r3
- lsls r0, 16
- cmp r0, 0
- beq _081256FC
- movs r6, 0xFF
-_08125724:
- cmp r6, 0xFF
- beq _0812573C
- mov r2, r8
- lsrs r1, r2, 24
- movs r0, 0x1
- bl sub_81251D4
- movs r0, 0x1
- b _08125748
- .align 2, 0
-_08125738: .4byte gUnknown_03005EB0
-_0812573C:
- mov r6, r8
- lsrs r1, r6, 24
-_08125740:
- movs r0, 0
- bl sub_81251D4
- movs r0, 0xFF
-_08125748:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81255B8
-
- thumb_func_start sub_8125758
-sub_8125758: @ 8125758
- push {r4-r6,lr}
- lsls r0, 16
- ldr r6, _081257B4
- lsrs r0, 16
- ldrh r1, [r6]
- adds r0, r1
- subs r0, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- movs r1, 0xE
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r5, _081257B8
- ldr r1, [r5]
- movs r0, 0x1
- ands r1, r0
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r3, _081257BC
- ldr r1, _081257C0
- ldr r0, _081257C4
- ldr r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- ldr r3, [r3]
- adds r0, r4, 0
- bl _call_via_r3
- lsls r0, 16
- cmp r0, 0
- bne _081257C8
- lsls r1, r4, 24
- lsrs r1, 24
- movs r0, 0x1
- bl sub_81251D4
- movs r0, 0x1
- b _081257E0
- .align 2, 0
-_081257B4: .4byte gUnknown_03005E9C
-_081257B8: .4byte gUnknown_03005EAC
-_081257BC: .4byte ProgramFlashByte
-_081257C0: .4byte 0x00000ff8
-_081257C4: .4byte gUnknown_03005EB0
-_081257C8:
- lsls r1, r4, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_81251D4
- ldr r0, _081257E8
- ldrh r0, [r0]
- strh r0, [r6]
- ldr r0, _081257EC
- ldr r0, [r0]
- str r0, [r5]
- movs r0, 0xFF
-_081257E0:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081257E8: .4byte gUnknown_03005EA4
-_081257EC: .4byte gUnknown_03005EA0
- thumb_func_end sub_8125758
-
- thumb_func_start sub_81257F0
-sub_81257F0: @ 81257F0
- push {r4-r6,lr}
- lsls r0, 16
- ldr r6, _08125844
- lsrs r0, 16
- ldrh r1, [r6]
- adds r0, r1
- subs r0, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- movs r1, 0xE
- bl __umodsi3
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r5, _08125848
- ldr r1, [r5]
- movs r0, 0x1
- ands r1, r0
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 1
- adds r0, r4, r0
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _0812584C
- ldr r1, _08125850
- ldr r3, [r0]
- adds r0, r4, 0
- movs r2, 0x25
- bl _call_via_r3
- lsls r0, 16
- cmp r0, 0
- bne _08125854
- lsls r1, r4, 24
- lsrs r1, 24
- movs r0, 0x1
- bl sub_81251D4
- movs r0, 0x1
- b _0812586C
- .align 2, 0
-_08125844: .4byte gUnknown_03005E9C
-_08125848: .4byte gUnknown_03005EAC
-_0812584C: .4byte ProgramFlashByte
-_08125850: .4byte 0x00000ff8
-_08125854:
- lsls r1, r4, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_81251D4
- ldr r0, _08125874
- ldrh r0, [r0]
- strh r0, [r6]
- ldr r0, _08125878
- ldr r0, [r0]
- str r0, [r5]
- movs r0, 0xFF
-_0812586C:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08125874: .4byte gUnknown_03005EA4
-_08125878: .4byte gUnknown_03005EA0
- thumb_func_end sub_81257F0
-
- thumb_func_start sub_812587C
-sub_812587C: @ 812587C
- push {r4-r6,lr}
- adds r6, r1, 0
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r1, _08125894
- ldr r0, _08125898
- str r0, [r1]
- ldr r0, _0812589C
- cmp r4, r0
- beq _081258A0
- movs r5, 0xFF
- b _081258B2
- .align 2, 0
-_08125894: .4byte gUnknown_03005EB0
-_08125898: .4byte 0x02000000
-_0812589C: .4byte 0x0000ffff
-_081258A0:
- adds r0, r6, 0
- bl sub_8125974
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_81258BC
-_081258B2:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_812587C
-
- thumb_func_start sub_81258BC
-sub_81258BC: @ 81258BC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r1
- ldr r0, _08125958
- ldr r1, [r0]
- movs r0, 0x1
- ands r1, r0
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 17
- lsrs r7, r0, 16
- movs r5, 0
- ldr r6, _0812595C
-_081258D8:
- adds r0, r5, r7
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r6]
- bl sub_8125BF8
- ldr r0, [r6]
- ldr r1, _08125960
- adds r0, r1
- ldrh r1, [r0]
- cmp r1, 0
- bne _081258F4
- ldr r0, _08125964
- strh r5, [r0]
-_081258F4:
- ldr r0, [r6]
- lsls r1, 3
- mov r2, r8
- adds r4, r1, r2
- ldrh r1, [r4, 0x4]
- bl sub_8125C10
- lsls r0, 16
- lsrs r3, r0, 16
- ldr r2, [r6]
- ldr r1, _08125968
- adds r0, r2, r1
- ldr r1, [r0]
- ldr r0, _0812596C
- adds r5, 0x1
- cmp r1, r0
- bne _08125944
- ldr r1, _08125970
- adds r0, r2, r1
- ldrh r0, [r0]
- cmp r0, r3
- bne _08125944
- movs r2, 0
- ldrh r0, [r4, 0x4]
- cmp r2, r0
- bcs _08125944
- adds r3, r4, 0
- ldr r4, _0812595C
-_0812592C:
- ldr r1, [r3]
- adds r1, r2
- ldr r0, [r4]
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r1, [r3, 0x4]
- cmp r2, r1
- bcc _0812592C
-_08125944:
- lsls r0, r5, 16
- lsrs r5, r0, 16
- cmp r5, 0xD
- bls _081258D8
- movs r0, 0x1
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08125958: .4byte gUnknown_03005EAC
-_0812595C: .4byte gUnknown_03005EB0
-_08125960: .4byte 0x00000ff4
-_08125964: .4byte gUnknown_03005E9C
-_08125968: .4byte 0x00000ff8
-_0812596C: .4byte 0x08012025 @ TODO: figure out what this represents
-_08125970: .4byte 0x00000ff6
- thumb_func_end sub_81258BC
-
- thumb_func_start sub_8125974
-sub_8125974: @ 8125974
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r0
- movs r0, 0
- mov r8, r0
- mov r9, r0
- movs r6, 0
- movs r5, 0
- movs r4, 0
- ldr r7, _08125A00
-_08125990:
- lsls r0, r4, 24
- lsrs r0, 24
- ldr r1, [r7]
- bl sub_8125BF8
- ldr r2, [r7]
- ldr r1, _08125A04
- adds r0, r2, r1
- ldr r1, [r0]
- ldr r0, _08125A08
- cmp r1, r0
- bne _081259E0
- movs r5, 0x1
- ldr r3, _08125A0C
- adds r0, r2, r3
- ldrh r0, [r0]
- lsls r0, 3
- add r0, r10
- ldrh r1, [r0, 0x4]
- adds r0, r2, 0
- bl sub_8125C10
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r1, [r7]
- ldr r3, _08125A10
- adds r0, r1, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _081259E0
- ldr r2, _08125A14
- adds r0, r1, r2
- ldr r0, [r0]
- mov r8, r0
- subs r3, 0x2
- adds r1, r3
- adds r0, r5, 0
- ldrh r1, [r1]
- lsls r0, r1
- orrs r6, r0
-_081259E0:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xD
- bls _08125990
- cmp r5, 0
- beq _08125A1C
- ldr r0, _08125A18
- movs r1, 0xFF
- str r1, [sp]
- cmp r6, r0
- bne _08125A20
- movs r2, 0x1
- str r2, [sp]
- b _08125A20
- .align 2, 0
-_08125A00: .4byte gUnknown_03005EB0
-_08125A04: .4byte 0x00000ff8
-_08125A08: .4byte 0x08012025 @ TODO: figure out what this represents
-_08125A0C: .4byte 0x00000ff4
-_08125A10: .4byte 0x00000ff6
-_08125A14: .4byte 0x00000ffc
-_08125A18: .4byte 0x00003fff
-_08125A1C:
- movs r3, 0
- str r3, [sp]
-_08125A20:
- movs r6, 0
- movs r5, 0
- movs r4, 0
- ldr r7, _08125A98
-_08125A28:
- adds r0, r4, 0
- adds r0, 0xE
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r7]
- bl sub_8125BF8
- ldr r2, [r7]
- ldr r1, _08125A9C
- adds r0, r2, r1
- ldr r1, [r0]
- ldr r0, _08125AA0
- cmp r1, r0
- bne _08125A7C
- movs r5, 0x1
- ldr r3, _08125AA4
- adds r0, r2, r3
- ldrh r0, [r0]
- lsls r0, 3
- add r0, r10
- ldrh r1, [r0, 0x4]
- adds r0, r2, 0
- bl sub_8125C10
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r1, [r7]
- ldr r3, _08125AA8
- adds r0, r1, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _08125A7C
- ldr r2, _08125AAC
- adds r0, r1, r2
- ldr r0, [r0]
- mov r9, r0
- subs r3, 0x2
- adds r1, r3
- adds r0, r5, 0
- ldrh r1, [r1]
- lsls r0, r1
- orrs r6, r0
-_08125A7C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xD
- bls _08125A28
- cmp r5, 0
- beq _08125AB4
- ldr r0, _08125AB0
- movs r1, 0xFF
- cmp r6, r0
- bne _08125AB6
- movs r1, 0x1
- b _08125AB6
- .align 2, 0
-_08125A98: .4byte gUnknown_03005EB0
-_08125A9C: .4byte 0x00000ff8
-_08125AA0: .4byte 0x08012025 @ TODO: figure out what this represents
-_08125AA4: .4byte 0x00000ff4
-_08125AA8: .4byte 0x00000ff6
-_08125AAC: .4byte 0x00000ffc
-_08125AB0: .4byte 0x00003fff
-_08125AB4:
- movs r1, 0
-_08125AB6:
- ldr r0, [sp]
- cmp r0, 0x1
- bne _08125B28
- cmp r1, 0x1
- bne _08125B18
- movs r0, 0x1
- negs r0, r0
- cmp r8, r0
- bne _08125ACE
- mov r1, r9
- cmp r1, 0
- beq _08125AD8
-_08125ACE:
- mov r2, r8
- cmp r2, 0
- bne _08125AFC
- cmp r9, r0
- bne _08125AFC
-_08125AD8:
- mov r1, r8
- adds r1, 0x1
- mov r0, r9
- adds r0, 0x1
- cmp r1, r0
- bcs _08125AF0
- ldr r0, _08125AEC
- mov r3, r9
- b _08125B10
- .align 2, 0
-_08125AEC: .4byte gUnknown_03005EAC
-_08125AF0:
- ldr r0, _08125AF8
- mov r1, r8
- str r1, [r0]
- b _08125B40
- .align 2, 0
-_08125AF8: .4byte gUnknown_03005EAC
-_08125AFC:
- cmp r8, r9
- bcs _08125B0C
- ldr r0, _08125B08
- mov r2, r9
- str r2, [r0]
- b _08125B40
- .align 2, 0
-_08125B08: .4byte gUnknown_03005EAC
-_08125B0C:
- ldr r0, _08125B14
- mov r3, r8
-_08125B10:
- str r3, [r0]
- b _08125B40
- .align 2, 0
-_08125B14: .4byte gUnknown_03005EAC
-_08125B18:
- ldr r0, _08125B24
- mov r2, r8
- str r2, [r0]
- cmp r1, 0xFF
- beq _08125B38
- b _08125B40
- .align 2, 0
-_08125B24: .4byte gUnknown_03005EAC
-_08125B28:
- cmp r1, 0x1
- bne _08125B44
- ldr r0, _08125B3C
- mov r3, r9
- str r3, [r0]
- ldr r0, [sp]
- cmp r0, 0xFF
- bne _08125B40
-_08125B38:
- movs r0, 0xFF
- b _08125B70
- .align 2, 0
-_08125B3C: .4byte gUnknown_03005EAC
-_08125B40:
- movs r0, 0x1
- b _08125B70
-_08125B44:
- ldr r2, [sp]
- cmp r2, 0
- bne _08125B64
- cmp r1, 0
- bne _08125B64
- ldr r0, _08125B5C
- str r1, [r0]
- ldr r0, _08125B60
- strh r1, [r0]
- movs r0, 0
- b _08125B70
- .align 2, 0
-_08125B5C: .4byte gUnknown_03005EAC
-_08125B60: .4byte gUnknown_03005E9C
-_08125B64:
- ldr r0, _08125B80
- movs r1, 0
- str r1, [r0]
- ldr r0, _08125B84
- strh r1, [r0]
- movs r0, 0x2
-_08125B70:
- 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
-_08125B80: .4byte gUnknown_03005EAC
-_08125B84: .4byte gUnknown_03005E9C
- thumb_func_end sub_8125974
-
- thumb_func_start sub_8125B88
-sub_8125B88: @ 8125B88
- push {r4-r6,lr}
- adds r6, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 16
- lsrs r4, r2, 16
- ldr r5, _08125BDC
- adds r1, r5, 0
- bl sub_8125BF8
- ldr r1, _08125BE0
- adds r0, r5, r1
- ldr r1, [r0]
- ldr r0, _08125BE4
- cmp r1, r0
- bne _08125BF0
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8125C10
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08125BE8
- adds r1, r5, r2
- ldrh r1, [r1]
- cmp r1, r0
- bne _08125BEC
- movs r2, 0
- cmp r2, r4
- bcs _08125BD6
-_08125BC4:
- adds r1, r6, r2
- adds r0, r5, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r4
- bcc _08125BC4
-_08125BD6:
- movs r0, 0x1
- b _08125BF2
- .align 2, 0
-_08125BDC: .4byte 0x02000000
-_08125BE0: .4byte 0x00000ff8
-_08125BE4: .4byte 0x08012025 @ TODO: figure out what this represents
-_08125BE8: .4byte 0x00000ff4
-_08125BEC:
- movs r0, 0x2
- b _08125BF2
-_08125BF0:
- movs r0, 0
-_08125BF2:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8125B88
-
- thumb_func_start sub_8125BF8
-sub_8125BF8: @ 8125BF8
- push {lr}
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0x80
- lsls r3, 5
- movs r1, 0
- bl ReadFlash
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8125BF8
-
- thumb_func_start sub_8125C10
-sub_8125C10: @ 8125C10
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 16
- movs r2, 0
- movs r3, 0
- lsrs r1, 18
- cmp r2, r1
- bcs _08125C2E
-_08125C20:
- ldm r4!, {r0}
- adds r2, r0
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r1
- bcc _08125C20
-_08125C2E:
- lsrs r0, r2, 16
- adds r0, r2
- lsls r0, 16
- lsrs r0, 16
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8125C10
-
- thumb_func_start sub_8125C3C
-sub_8125C3C: @ 8125C3C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bhi _08125CB6
- lsls r0, 2
- ldr r1, _08125C50
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08125C50: .4byte _08125C54
- .align 2, 0
-_08125C54:
- .4byte _08125CB6
- .4byte _08125CD8
- .4byte _08125CF8
- .4byte _08125C82
- .4byte _08125D0C
- .4byte _08125C6C
-_08125C6C:
- movs r4, 0x1C
- ldr r5, _08125CC4
-_08125C70:
- ldr r1, [r5]
- adds r0, r4, 0
- bl _call_via_r1
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1F
- bls _08125C70
-_08125C82:
- movs r0, 0xA
- bl sub_8053108
- ldr r1, _08125CC8
- cmp r0, r1
- bhi _08125C94
- movs r0, 0xA
- bl sav12_xor_increment
-_08125C94:
- movs r4, 0
- ldr r5, _08125CCC
-_08125C98:
- adds r0, r4, 0
- adds r0, 0x1C
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r4, 3
- adds r2, r5
- ldr r1, [r2]
- ldrh r2, [r2, 0x4]
- bl sub_81253C8
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _08125C98
-_08125CB6:
- bl save_serialize_game
- ldr r0, _08125CD0
- ldr r1, _08125CD4
- bl save_write_to_flash
- b _08125D2E
- .align 2, 0
-_08125CC4: .4byte EraseFlashSector
-_08125CC8: .4byte 0x000003e6
-_08125CCC: .4byte gUnknown_08401E14
-_08125CD0: .4byte 0x0000ffff
-_08125CD4: .4byte gUnknown_08401DA4
-_08125CD8:
- bl save_serialize_game
- movs r4, 0
-_08125CDE:
- adds r0, r4, 0
- ldr r1, _08125CF4
- bl save_write_to_flash
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x4
- bls _08125CDE
- b _08125D2E
- .align 2, 0
-_08125CF4: .4byte gUnknown_08401DA4
-_08125CF8:
- bl save_serialize_game
- ldr r1, _08125D08
- movs r0, 0
- bl save_write_to_flash
- b _08125D2E
- .align 2, 0
-_08125D08: .4byte gUnknown_08401DA4
-_08125D0C:
- movs r4, 0x1C
- ldr r5, _08125D38
-_08125D10:
- ldr r1, [r5]
- adds r0, r4, 0
- bl _call_via_r1
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1F
- bls _08125D10
- bl save_serialize_game
- ldr r0, _08125D3C
- ldr r1, _08125D40
- bl save_write_to_flash
-_08125D2E:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08125D38: .4byte EraseFlashSector
-_08125D3C: .4byte 0x0000ffff
-_08125D40: .4byte gUnknown_08401DA4
- thumb_func_end sub_8125C3C
-
- thumb_func_start sub_8125D44
-sub_8125D44: @ 8125D44
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08125D58
- ldr r0, [r0]
- cmp r0, 0x1
- beq _08125D5C
- movs r0, 0xFF
- b _08125D7A
- .align 2, 0
-_08125D58: .4byte gUnknown_3004820
-_08125D5C:
- adds r0, r4, 0
- bl sub_8125C3C
- ldr r0, _08125D74
- ldr r0, [r0]
- cmp r0, 0
- beq _08125D78
- adds r0, r4, 0
- bl fullscreen_save_activate
- movs r0, 0xFF
- b _08125D7A
- .align 2, 0
-_08125D74: .4byte gUnknown_03005EA8
-_08125D78:
- movs r0, 0x1
-_08125D7A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8125D44
-
- thumb_func_start sub_8125D80
-sub_8125D80: @ 8125D80
- push {lr}
- ldr r0, _08125D98
- ldr r0, [r0]
- cmp r0, 0x1
- bne _08125DA0
- bl save_serialize_game
- ldr r0, _08125D9C
- bl sub_812546C
- movs r0, 0
- b _08125DA2
- .align 2, 0
-_08125D98: .4byte gUnknown_3004820
-_08125D9C: .4byte gUnknown_08401DA4
-_08125DA0:
- movs r0, 0x1
-_08125DA2:
- pop {r1}
- bx r1
- thumb_func_end sub_8125D80
-
- thumb_func_start sub_8125DA8
-sub_8125DA8: @ 8125DA8
- push {r4,lr}
- ldr r1, _08125DCC
- movs r0, 0xE
- bl sub_812550C
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08125DD0
- ldr r0, [r0]
- cmp r0, 0
- beq _08125DC4
- movs r0, 0
- bl fullscreen_save_activate
-_08125DC4:
- cmp r4, 0xFF
- beq _08125DD4
- movs r0, 0
- b _08125DD6
- .align 2, 0
-_08125DCC: .4byte gUnknown_08401DA4
-_08125DD0: .4byte gUnknown_03005EA8
-_08125DD4:
- movs r0, 0x1
-_08125DD6:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8125DA8
-
- thumb_func_start sub_8125DDC
-sub_8125DDC: @ 8125DDC
- push {lr}
- ldr r1, _08125DFC
- movs r0, 0xE
- bl sub_812556C
- ldr r0, _08125E00
- ldr r0, [r0]
- cmp r0, 0
- beq _08125DF4
- movs r0, 0
- bl fullscreen_save_activate
-_08125DF4:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08125DFC: .4byte gUnknown_08401DA4
-_08125E00: .4byte gUnknown_03005EA8
- thumb_func_end sub_8125DDC
-
- thumb_func_start sub_8125E04
-sub_8125E04: @ 8125E04
- push {lr}
- ldr r1, _08125E24
- movs r0, 0xE
- bl sub_8125758
- ldr r0, _08125E28
- ldr r0, [r0]
- cmp r0, 0
- beq _08125E1C
- movs r0, 0
- bl fullscreen_save_activate
-_08125E1C:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08125E24: .4byte gUnknown_08401DA4
-_08125E28: .4byte gUnknown_03005EA8
- thumb_func_end sub_8125E04
-
- thumb_func_start sub_8125E2C
-sub_8125E2C: @ 8125E2C
- push {r4,lr}
- ldr r0, _08125E58
- ldr r0, [r0]
- cmp r0, 0x1
- bne _08125E64
- bl save_serialize_game
- ldr r4, _08125E5C
- adds r0, r4, 0
- bl sub_81254C8
- ldr r0, _08125E60
- ldrh r0, [r0]
- adds r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl sub_812556C
- movs r0, 0
- b _08125E66
- .align 2, 0
-_08125E58: .4byte gUnknown_3004820
-_08125E5C: .4byte gUnknown_08401DA4
-_08125E60: .4byte gUnknown_03005EB4
-_08125E64:
- movs r0, 0x1
-_08125E66:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8125E2C
-
- thumb_func_start sub_8125E6C
-sub_8125E6C: @ 8125E6C
- push {r4-r6,lr}
- movs r6, 0
- ldr r0, _08125E98
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- lsls r0, r1, 16
- lsrs r5, r0, 16
- cmp r5, 0x4
- bhi _08125EA0
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _08125E9C
- adds r1, r4, 0
- bl sub_812556C
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81257F0
- b _08125EAA
- .align 2, 0
-_08125E98: .4byte gUnknown_03005EB4
-_08125E9C: .4byte gUnknown_08401DA4
-_08125EA0:
- ldr r1, _08125EC0
- adds r0, r5, 0
- bl sub_81257F0
- movs r6, 0x1
-_08125EAA:
- ldr r0, _08125EC4
- ldr r0, [r0]
- cmp r0, 0
- beq _08125EB8
- movs r0, 0x1
- bl fullscreen_save_activate
-_08125EB8:
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08125EC0: .4byte gUnknown_08401DA4
-_08125EC4: .4byte gUnknown_03005EA8
- thumb_func_end sub_8125E6C
-
- thumb_func_start sub_8125EC8
-sub_8125EC8: @ 8125EC8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _08125EE0
- ldr r0, [r0]
- cmp r0, 0x1
- beq _08125EE8
- ldr r1, _08125EE4
- movs r0, 0x4
- strh r0, [r1]
- movs r0, 0xFF
- b _08125F40
- .align 2, 0
-_08125EE0: .4byte gUnknown_3004820
-_08125EE4: .4byte gSaveFileStatus
-_08125EE8:
- cmp r1, 0
- beq _08125EF0
- cmp r1, 0x3
- beq _08125F1C
-_08125EF0:
- ldr r0, _08125F0C
- ldr r1, _08125F10
- bl sub_812587C
- lsls r0, 24
- lsrs r4, r0, 24
- bl save_deserialize_game
- ldr r0, _08125F14
- strh r4, [r0]
- ldr r1, _08125F18
- movs r0, 0
- str r0, [r1]
- b _08125F3E
- .align 2, 0
-_08125F0C: .4byte 0x0000ffff
-_08125F10: .4byte gUnknown_08401DA4
-_08125F14: .4byte gSaveFileStatus
-_08125F18: .4byte gUnknown_03005EBC
-_08125F1C:
- ldr r5, _08125F48
- ldr r1, [r5]
- ldrh r2, [r5, 0x4]
- movs r0, 0x1C
- bl sub_8125B88
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bne _08125F3E
- ldr r1, [r5, 0x8]
- ldrh r2, [r5, 0xC]
- movs r0, 0x1D
- bl sub_8125B88
- lsls r0, 24
- lsrs r4, r0, 24
-_08125F3E:
- adds r0, r4, 0
-_08125F40:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08125F48: .4byte gUnknown_08401E14
- thumb_func_end sub_8125EC8
-
- thumb_func_start unref_sub_8125F4C
-unref_sub_8125F4C: @ 8125F4C
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r2, r4, 0
- movs r1, 0
- ldr r6, _08125F88
- movs r5, 0
- ldr r3, _08125F8C
-_08125F5A:
- adds r0, r2, r1
- strb r5, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r3
- bls _08125F5A
- ldrb r0, [r6]
- movs r3, 0x80
- lsls r3, 5
- movs r1, 0
- adds r2, r4, 0
- bl ReadFlash
- ldr r1, _08125F90
- adds r0, r4, r1
- ldr r1, [r0]
- ldr r0, _08125F94
- cmp r1, r0
- bne _08125F98
- movs r0, 0x1
- b _08125F9A
- .align 2, 0
-_08125F88: .4byte gUnknown_08401E24
-_08125F8C: .4byte 0x00000fff
-_08125F90: .4byte 0x00000ff4
-_08125F94: .4byte 0x08012025 @ TODO: figure out what this represents
-_08125F98:
- movs r0, 0
-_08125F9A:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8125F4C
-
- thumb_func_start unref_sub_8125FA0
-unref_sub_8125FA0: @ 8125FA0
- push {r4-r7,lr}
- movs r0, 0
- bl sub_8125D44
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r7, _08125FD0
- ldr r6, _08125FD4
-_08125FB2:
- adds r0, r4, r6
- ldrb r0, [r0]
- ldr r1, [r7]
- bl _call_via_r1
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x1
- bls _08125FB2
- cmp r5, 0xFF
- bne _08125FD8
- movs r0, 0x3
- b _08125FE8
- .align 2, 0
-_08125FD0: .4byte EraseFlashSector
-_08125FD4: .4byte gUnknown_08401E24
-_08125FD8:
- cmp r5, 0x3
- beq _08125FE6
- movs r0, 0
- bl sub_8125EC8
- movs r0, 0x1
- b _08125FE8
-_08125FE6:
- movs r0, 0x2
-_08125FE8:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8125FA0
-
- thumb_func_start unref_sub_8125FF0
-unref_sub_8125FF0: @ 8125FF0
- push {r4-r7,lr}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r3, r1, 16
- ldr r4, _08126048
- movs r2, 0
- ldr r7, _0812604C
- movs r5, 0
- ldr r1, _08126050
-_08126002:
- adds r0, r4, r2
- strb r5, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r1
- bls _08126002
- ldr r0, _08126054
- adds r1, r4, r0
- ldr r0, _08126058
- str r0, [r1]
- movs r2, 0
- cmp r2, r3
- bcs _08126030
-_0812601E:
- adds r1, r4, r2
- adds r0, r6, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r3
- bcc _0812601E
-_08126030:
- ldrb r0, [r7]
- movs r2, 0x80
- lsls r2, 5
- adds r1, r4, 0
- bl ProgramFlashSectorAndVerifyNBytes
- ldr r1, _0812605C
- str r0, [r1]
- cmp r0, 0
- bne _08126060
- movs r0, 0x1
- b _08126062
- .align 2, 0
-_08126048: .4byte 0x02000000
-_0812604C: .4byte gUnknown_08401E24
-_08126050: .4byte 0x00000fff
-_08126054: .4byte 0x00000ff4
-_08126058: .4byte 0x08012025 @ TODO: figure out what this represents
-_0812605C: .4byte gUnknown_02039284
-_08126060:
- movs r0, 0xFF
-_08126062:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8125FF0
-
- thumb_func_start unref_sub_8126068
-unref_sub_8126068: @ 8126068
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl ProgramFlashSectorAndVerify
- cmp r0, 0
- bne _0812607A
- movs r0, 0x1
- b _0812607C
-_0812607A:
- movs r0, 0xFF
-_0812607C:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8126068
-
- thumb_func_start unref_sub_8126080
-unref_sub_8126080: @ 8126080
- push {lr}
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0x80
- lsls r3, 5
- movs r1, 0
- bl ReadFlash
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end unref_sub_8126080
-
- thumb_func_start sub_8126098
-sub_8126098: @ 8126098
- push {r4,lr}
- adds r4, r3, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r2, 16
- lsrs r2, 16
- movs r3, 0x2
- ands r0, r3
- cmp r0, 0
- beq _081260C6
- ands r1, r3
- cmp r1, 0
- beq _081260C6
- movs r0, 0x4
- ands r2, r0
- cmp r2, 0
- beq _081260C6
- movs r0, 0x80
- .ifdef SAPPHIRE
- lsls r0, 1 @ unknown difference
- .endif
- ands r0, r4
- cmp r0, 0
- beq _081260C6
- movs r0, 0x1
- b _081260C8
-_081260C6:
- movs r0, 0
-_081260C8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8126098
-
- thumb_func_start sub_81260D0
-sub_81260D0: @ 81260D0
- push {lr}
- ldr r0, _081260E4
- ldr r1, _081260E8
- bl StringExpandPlaceholders
- movs r0, 0x3
- bl sub_8126160
- pop {r0}
- bx r0
- .align 2, 0
-_081260E4: .4byte gStringVar4
-_081260E8: .4byte gOtherText_DataCannotUseVersion
- thumb_func_end sub_81260D0
-
- thumb_func_start sub_81260EC
-sub_81260EC: @ 81260EC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, _08126114
- ldr r2, _08126118
- bl InitScriptContext
- adds r0, r4, 0
- adds r1, r5, 0
- bl SetupBytecodeScript
- str r5, [r4, 0x64]
- movs r0, 0
- str r0, [r4, 0x68]
- str r0, [r4, 0x6C]
- str r0, [r4, 0x70]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08126114: .4byte gScriptFuncs
-_08126118: .4byte gScriptFuncs_End
- thumb_func_end sub_81260EC
-
- thumb_func_start sub_812611C
-sub_812611C: @ 812611C
- push {r4,lr}
- adds r4, r0, 0
- bl RunScript
- lsls r0, 24
- cmp r0, 0
- beq _08126134
- ldr r0, [r4, 0x70]
- cmp r0, 0
- beq _08126134
- movs r0, 0x1
- b _08126136
-_08126134:
- movs r0, 0
-_08126136:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_812611C
-
- thumb_func_start sub_812613C
-sub_812613C: @ 812613C
- push {r4,lr}
- adds r1, r0, 0
- ldr r4, _0812615C
- adds r0, r4, 0
- bl sub_81260EC
-_08126148:
- adds r0, r4, 0
- bl sub_812611C
- cmp r0, 0
- bne _08126148
- ldr r0, [r4, 0x6C]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0812615C: .4byte gUnknown_02039288
- thumb_func_end sub_812613C
-
- thumb_func_start sub_8126160
-sub_8126160: @ 8126160
- ldr r1, _08126168
- str r0, [r1, 0x6C]
- bx lr
- .align 2, 0
-_08126168: .4byte gUnknown_02039288
- thumb_func_end sub_8126160
-
- thumb_func_start sub_812616C
-sub_812616C: @ 812616C
- push {r4,lr}
- adds r4, r0, 0
- movs r3, 0
- movs r2, 0
- cmp r3, r1
- bcs _08126184
-_08126178:
- adds r0, r4, r2
- ldrb r0, [r0]
- adds r3, r0
- adds r2, 0x1
- cmp r2, r1
- bcc _08126178
-_08126184:
- adds r0, r3, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_812616C
-
- thumb_func_start sub_812618C
-sub_812618C: @ 812618C
- adds r2, r0, 0
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- orrs r0, r1
- ldrb r1, [r2, 0x2]
- lsls r1, 16
- orrs r0, r1
- ldrb r1, [r2, 0x3]
- lsls r1, 24
- orrs r0, r1
- bx lr
- thumb_func_end sub_812618C
-
- thumb_func_start sub_81261A4
-sub_81261A4: @ 81261A4
- 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
- thumb_func_end sub_81261A4
-
- thumb_func_start unref_sub_81261B4
-unref_sub_81261B4: @ 81261B4
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r7, r1, 0
- ldrb r0, [r5]
- cmp r0, 0x1
- bne _08126204
- ldrb r0, [r5, 0x11]
- cmp r0, 0xF
- bne _08126204
- adds r6, r5, 0
- adds r6, 0x12
- adds r0, r6, 0
- bl sub_812618C
- cmp r0, 0
- bne _08126204
- adds r0, r5, 0
- adds r0, 0x16
- bl sub_812618C
- adds r4, r0, 0
- subs r4, r7
- adds r4, r5
- adds r0, r5, 0
- adds r0, 0x1A
- bl sub_812618C
- adds r1, r0, 0
- subs r1, r7
- adds r1, r5
- subs r1, r4
- adds r0, r4, 0
- bl sub_812616C
- adds r1, r0, 0
- adds r0, r6, 0
- bl sub_81261A4
- movs r0, 0x1
- b _08126206
-_08126204:
- movs r0, 0
-_08126206:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_81261B4
-
- thumb_func_start unref_sub_812620C
-unref_sub_812620C: @ 812620C
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r7, r1, 0
- ldrb r0, [r5]
- cmp r0, 0x1
- bne _08126260
- ldrb r0, [r5, 0x11]
- cmp r0, 0x10
- bne _08126260
- adds r6, r5, 0
- adds r6, 0x12
- adds r0, r6, 0
- bl sub_812618C
- cmp r0, 0
- bne _08126260
- adds r0, r5, 0
- adds r0, 0x16
- bl sub_812618C
- adds r4, r0, 0
- subs r4, r7
- adds r4, r5
- adds r0, r5, 0
- adds r0, 0x1A
- bl sub_812618C
- adds r1, r0, 0
- subs r1, r7
- adds r1, r5
- subs r1, r4
- adds r0, r4, 0
- bl sub_8041174
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r6, 0
- bl sub_81261A4
- movs r0, 0x1
- b _08126262
-_08126260:
- movs r0, 0
-_08126262:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end unref_sub_812620C
-
- thumb_func_start sub_8126268
-sub_8126268: @ 8126268
- push {lr}
- movs r2, 0
- ldr r3, _08126284
- movs r1, 0
-_08126270:
- adds r0, r3, r1
- ldrb r0, [r0]
- adds r2, r0
- adds r1, 0x1
- cmp r1, 0xB
- bls _08126270
- adds r0, r2, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08126284: .4byte gSaveBlock1 + 0x3A80
- thumb_func_end sub_8126268
-
- thumb_func_start sub_8126288
-sub_8126288: @ 8126288
- push {r4,lr}
- ldr r4, _081262B4
- bl sub_8126268
- adds r1, r0, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _081262B0
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _081262B0
- ldrh r0, [r4, 0x2]
- cmp r0, 0
- beq _081262B0
- cmp r1, 0
- beq _081262B0
- subs r0, r4, 0x4
- ldr r0, [r0]
- cmp r1, r0
- beq _081262B8
-_081262B0:
- movs r0, 0
- b _081262BA
- .align 2, 0
-_081262B4: .4byte gSaveBlock1 + 0x3A80
-_081262B8:
- movs r0, 0x1
-_081262BA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8126288
-
- thumb_func_start sub_81262C0
-sub_81262C0: @ 81262C0
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r1, _081262DC
- ldr r2, _081262E0
- mov r0, sp
- bl CpuSet
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_081262DC: .4byte gSaveBlock1 + 0x3A7C
-_081262E0: .4byte 0x01000008
- thumb_func_end sub_81262C0
-
- thumb_func_start sub_81262E4
-sub_81262E4: @ 81262E4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r5, r1, 0
- lsls r2, 16
- lsrs r2, 16
- adds r6, r2, 0
- cmp r3, 0
- beq _08126304
- cmp r1, 0
- beq _08126304
- cmp r2, 0
- bne _0812630A
-_08126304:
- bl sub_81262C0
- b _0812632A
-_0812630A:
- ldr r4, _08126330
- movs r1, 0xEA
- lsls r1, 6
- adds r0, r4, r1
- strb r3, [r0]
- adds r1, 0x1
- adds r0, r4, r1
- strb r5, [r0]
- adds r1, 0x1
- adds r0, r4, r1
- strh r6, [r0]
- bl sub_8126268
- ldr r1, _08126334
- adds r4, r1
- str r0, [r4]
-_0812632A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08126330: .4byte gSaveBlock1
-_08126334: .4byte 0x00003a7c
- thumb_func_end sub_81262E4
-
- thumb_func_start sub_8126338
-sub_8126338: @ 8126338
- push {r4,r5,lr}
- ldr r4, _0812634C
- bl sub_8126288
- cmp r0, 0
- bne _08126350
- bl sub_81262C0
- movs r0, 0
- b _0812636E
- .align 2, 0
-_0812634C: .4byte gSaveBlock1 + 0x3A80
-_08126350:
- ldrh r5, [r4, 0x2]
- ldrb r0, [r4, 0x1]
- subs r0, 0x1
- strb r0, [r4, 0x1]
- lsls r0, 24
- cmp r0, 0
- bne _08126364
- bl sub_81262C0
- b _0812636C
-_08126364:
- bl sub_8126268
- subs r1, r4, 0x4
- str r0, [r1]
-_0812636C:
- adds r0, r5, 0
-_0812636E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8126338
-
- thumb_func_start script_status_stop_and_ret_1
-script_status_stop_and_ret_1: @ 8126374
- push {lr}
- bl StopScript
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end script_status_stop_and_ret_1
-
- thumb_func_start sub_8126380
-sub_8126380: @ 8126380
- push {r4-r7,lr}
- adds r7, r0, 0
- bl ScriptReadWord
- str r0, [r7, 0x68]
- adds r0, r7, 0
- bl ScriptReadHalfword
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r7, 0
- bl ScriptReadWord
- adds r6, r0, 0
- adds r0, r7, 0
- bl ScriptReadHalfword
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r7, 0
- bl ScriptReadWord
- adds r3, r0, 0
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_8126098
- cmp r0, 0x1
- bne _081263C4
- str r0, [r7, 0x70]
- b _081263C8
-_081263C4:
- bl sub_81260D0
-_081263C8:
- movs r0, 0x1
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8126380
-
- thumb_func_start sub_81263D0
-sub_81263D0: @ 81263D0
- movs r0, 0
- bx lr
- thumb_func_end sub_81263D0
-
- thumb_func_start sub_81263D4
-sub_81263D4: @ 81263D4
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- str r2, [r0, 0x6C]
- movs r0, 0
- bx lr
- thumb_func_end sub_81263D4
-
- thumb_func_start sub_81263E4
-sub_81263E4: @ 81263E4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r5, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- adds r0, r4, 0
- bl ScriptReadWord
- ldr r1, [r4, 0x68]
- subs r0, r1
- ldr r1, [r4, 0x64]
- adds r1, r0, r1
- cmp r5, 0xFF
- beq _08126408
- ldr r0, [r4, 0x6C]
- cmp r5, r0
- bne _0812640E
-_08126408:
- ldr r0, _08126418
- bl StringExpandPlaceholders
-_0812640E:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08126418: .4byte gStringVar4
- thumb_func_end sub_81263E4
-
- thumb_func_start sub_812641C
-sub_812641C: @ 812641C
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- ldr r1, [r4, 0x68]
- subs r0, r1
- ldr r1, [r4, 0x64]
- adds r0, r1
- bl ScriptContext2_RunNewScript
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_812641C
-
- thumb_func_start sub_8126438
-sub_8126438: @ 8126438
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- bl sub_80B4940
- mov r8, r0
- adds r0, r7, 0
- bl ScriptReadWord
- adds r4, r0, 0
- ldr r0, [r7, 0x68]
- subs r4, r0
- ldr r0, [r7, 0x64]
- adds r4, r0
- ldr r6, _08126484
- ldr r5, _08126488
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x7
- bl StringCopyN
- adds r0, r4, 0
- bl sub_80B48A8
- ldr r4, _0812648C
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x7
- bl StringCopyN
- mov r0, r8
- cmp r0, 0
- bne _08126498
- ldr r0, _08126490
- ldr r1, _08126494
- b _081264B8
- .align 2, 0
-_08126484: .4byte gStringVar1
-_08126488: .4byte gSaveBlock1 + 0x3160
-_0812648C: .4byte gStringVar2
-_08126490: .4byte gStringVar4
-_08126494: .4byte gOtherText_BerryObtainedDadHasIt
-_08126498:
- adds r0, r6, 0
- adds r1, r4, 0
- bl StringCompare
- cmp r0, 0
- beq _081264B4
- ldr r0, _081264AC
- ldr r1, _081264B0
- b _081264B8
- .align 2, 0
-_081264AC: .4byte gStringVar4
-_081264B0: .4byte gOtherText_BerryTransformed
-_081264B4:
- ldr r0, _081264D4
- ldr r1, _081264D8
-_081264B8:
- bl StringExpandPlaceholders
- movs r0, 0x2
- str r0, [r7, 0x6C]
- bl sub_80B4940
- cmp r0, 0x1
- bne _081264E0
- ldr r0, _081264DC
- movs r1, 0x1
- bl VarSet
- b _081264E4
- .align 2, 0
-_081264D4: .4byte gStringVar4
-_081264D8: .4byte gOtherText_BerryAlreadyObtained
-_081264DC: .4byte 0x0000402d
-_081264E0:
- movs r0, 0x1
- str r0, [r7, 0x6C]
-_081264E4:
- movs r0, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8126438
-
- thumb_func_start sub_81264F0
-sub_81264F0: @ 81264F0
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, [r4, 0x8]
- ldrb r0, [r2]
- adds r2, 0x1
- str r2, [r4, 0x8]
- ldrb r1, [r2]
- adds r2, 0x1
- str r2, [r4, 0x8]
- bl sub_80C5C38
- ldr r0, _0812651C
- ldr r1, _08126520
- bl StringExpandPlaceholders
- movs r0, 0x2
- str r0, [r4, 0x6C]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0812651C: .4byte gStringVar4
-_08126520: .4byte gOtherText_SpecialRibbonReceived
- thumb_func_end sub_81264F0
-
- thumb_func_start sub_8126524
-sub_8126524: @ 8126524
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r4, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r4, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r4, 0x8]
- adds r0, r4, 0
- bl ScriptReadWord
- adds r5, r0, 0
- ldr r0, [r4, 0x68]
- subs r5, r0
- ldr r0, [r4, 0x64]
- adds r5, r0
- adds r0, r4, 0
- bl ScriptReadWord
- adds r1, r0, 0
- ldr r0, [r4, 0x68]
- subs r1, r0
- ldr r0, [r4, 0x64]
- adds r1, r0
- subs r1, r5
- lsls r1, 16
- lsrs r1, 16
- str r6, [sp]
- adds r0, r5, 0
- mov r2, r9
- mov r3, r8
- bl InitRamScript
- movs r0, 0
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8126524
-
- thumb_func_start sub_812658C
-sub_812658C: @ 812658C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80690F0
- ldr r0, _081265A8
- ldr r1, _081265AC
- bl StringExpandPlaceholders
- movs r0, 0x2
- str r0, [r4, 0x6C]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081265A8: .4byte gStringVar4
-_081265AC: .4byte gOtherText_DexUpgraded
- thumb_func_end sub_812658C
-
- thumb_func_start sub_81265B0
-sub_81265B0: @ 81265B0
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, [r4, 0x8]
- ldrb r0, [r1]
- adds r1, 0x1
- str r1, [r4, 0x8]
- bl sub_80EB890
- ldr r0, _081265D4
- ldr r1, _081265D8
- bl StringExpandPlaceholders
- movs r0, 0x2
- str r0, [r4, 0x6C]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081265D4: .4byte gStringVar4
-_081265D8: .4byte gOtherText_RareWordAdded
- thumb_func_end sub_81265B0
-
- thumb_func_start sub_81265DC
-sub_81265DC: @ 81265DC
- push {r4,r5,lr}
- ldr r1, [r0, 0x8]
- ldrb r5, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl ScriptReadHalfword
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_81262E4
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81265DC
-
- thumb_func_start sub_8126608
-sub_8126608: @ 8126608
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x88
- adds r6, r0, 0
- bl ScriptReadWord
- ldr r1, [r6, 0x68]
- subs r0, r1
- ldr r1, [r6, 0x64]
- adds r5, r0, r1
- movs r0, 0x64
- adds r0, r5
- mov r8, r0
- add r4, sp, 0x24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- bne _08126658
- ldr r0, _08126650
- ldr r1, _08126654
- movs r2, 0xB
- bl StringCopyN
- b _08126662
- .align 2, 0
-_08126650: .4byte gStringVar1
-_08126654: .4byte gSystemText_Egg
-_08126658:
- ldr r0, _08126678
- ldr r1, _0812667C
- movs r2, 0xB
- bl StringCopyN
-_08126662:
- ldr r0, _08126680
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _0812668C
- ldr r0, _08126684
- ldr r1, _08126688
- bl StringExpandPlaceholders
- movs r0, 0x3
- b _081266F6
- .align 2, 0
-_08126678: .4byte gStringVar1
-_0812667C: .4byte gSystemText_Pokemon2
-_08126680: .4byte gPlayerPartyCount
-_08126684: .4byte gStringVar4
-_08126688: .4byte gOtherText_PartyIsFull
-_0812668C:
- ldr r7, _08126708
- adds r0, r7, 0
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
- mov r0, sp
- mov r1, r8
- movs r2, 0x24
- bl memcpy
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- beq _081266C6
- adds r0, r4, 0
- bl SpeciesToNationalPokedexNum
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- movs r1, 0x2
- bl sub_8090D90
- adds r0, r4, 0
- movs r1, 0x3
- bl sub_8090D90
-_081266C6:
- adds r0, r7, 0
- movs r1, 0xC
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _081266E4
- adds r0, r7, 0
- mov r1, sp
- bl sub_80A2D88
-_081266E4:
- bl party_compaction
- bl CalculatePlayerPartyCount
- ldr r0, _0812670C
- ldr r1, _08126710
- bl StringExpandPlaceholders
- movs r0, 0x2
-_081266F6:
- str r0, [r6, 0x6C]
- movs r0, 0
- add sp, 0x88
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08126708: .4byte gUnknown_03004554
-_0812670C: .4byte gStringVar4
-_08126710: .4byte gOtherText_PokeWasSentOver
- thumb_func_end sub_8126608
-
- thumb_func_start sub_8126714
-sub_8126714: @ 8126714
- push {r4,lr}
- adds r4, r0, 0
- bl ScriptReadWord
- adds r1, r0, 0
- ldr r0, [r4, 0x68]
- subs r1, r0
- ldr r0, [r4, 0x64]
- adds r1, r0
- ldr r0, _08126748
- movs r2, 0xBC
- bl memcpy
- bl sub_813601C
- ldr r0, _0812674C
- ldr r1, _08126750
- bl StringExpandPlaceholders
- movs r0, 0x2
- str r0, [r4, 0x6C]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08126748: .4byte gSaveBlock2 + 0x498
-_0812674C: .4byte gStringVar4
-_08126750: .4byte gOtherText_NewTrainerInHoenn
- thumb_func_end sub_8126714
-
- thumb_func_start sub_8126754
-sub_8126754: @ 8126754
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80691BC
- ldr r0, _08126770
- ldr r1, _08126774
- bl StringExpandPlaceholders
- movs r0, 0x2
- str r0, [r4, 0x6C]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08126770: .4byte gStringVar4
-_08126774: .4byte gSystemText_ClockAdjustmentUsable
- thumb_func_end sub_8126754
-
- thumb_func_start sub_8126778
-sub_8126778: @ 8126778
- push {r4-r6,lr}
- adds r6, r0, 0
- bl ScriptReadWord
- adds r5, r0, 0
- adds r0, r6, 0
- bl ScriptReadWord
- adds r4, r0, 0
- ldr r0, [r6, 0x68]
- subs r4, r0
- ldr r0, [r6, 0x64]
- adds r4, r0
- adds r0, r6, 0
- bl ScriptReadWord
- adds r1, r0, 0
- ldr r0, [r6, 0x68]
- subs r1, r0
- ldr r0, [r6, 0x64]
- adds r1, r0
- subs r1, r4
- adds r0, r4, 0
- bl sub_812616C
- cmp r5, r0
- beq _081267B6
- movs r0, 0
- str r0, [r6, 0x70]
- movs r0, 0x1
- str r0, [r6, 0x6C]
-_081267B6:
- movs r0, 0x1
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8126778
-
- thumb_func_start sub_81267C0
-sub_81267C0: @ 81267C0
- push {r4-r6,lr}
- adds r6, r0, 0
- bl ScriptReadWord
- adds r5, r0, 0
- adds r0, r6, 0
- bl ScriptReadWord
- adds r4, r0, 0
- ldr r0, [r6, 0x68]
- subs r4, r0
- ldr r0, [r6, 0x64]
- adds r4, r0
- adds r0, r6, 0
- bl ScriptReadWord
- adds r1, r0, 0
- ldr r0, [r6, 0x68]
- subs r1, r0
- ldr r0, [r6, 0x64]
- adds r1, r0
- subs r1, r4
- adds r0, r4, 0
- bl sub_8041174
- lsls r0, 16
- lsrs r0, 16
- cmp r5, r0
- beq _08126802
- movs r0, 0
- str r0, [r6, 0x70]
- movs r0, 0x1
- str r0, [r6, 0x6C]
-_08126802:
- movs r0, 0x1
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_81267C0
-
- thumb_func_start SetUpReflection
-SetUpReflection: @ 812680C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r4, r1, 0
- lsls r5, r2, 24
- lsrs r5, 24
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r0, 0x22
- ldrsh r2, [r4, r0]
- adds r0, r4, 0
- movs r3, 0x98
- bl obj_unfreeze
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _081268BC
- adds r7, r1, r0
- ldr r0, _081268C0
- str r0, [r7, 0x1C]
- ldrb r1, [r7, 0x5]
- movs r0, 0xC
- orrs r1, r0
- strb r1, [r7, 0x5]
- ldr r2, _081268C4
- lsrs r0, r1, 4
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 4
- movs r2, 0xF
- ands r1, r2
- orrs r1, r0
- strb r1, [r7, 0x5]
- movs r1, 0x3F
- adds r1, r7
- mov r8, r1
- ldrb r0, [r1]
- movs r1, 0x40
- orrs r0, r1
- mov r1, r8
- strb r0, [r1]
- ldr r0, _081268C8
- str r0, [r7, 0x8]
- adds r0, r7, 0
- movs r1, 0
- bl StartSpriteAnim
- ldr r0, _081268CC
- str r0, [r7, 0x10]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x8
- orrs r0, r1
- mov r1, r8
- strb r0, [r1]
- adds r2, r7, 0
- adds r2, 0x42
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x2E]
- strh r0, [r7, 0x2E]
- ldrb r0, [r6, 0x8]
- strh r0, [r7, 0x30]
- strh r5, [r7, 0x3C]
- adds r0, r6, 0
- adds r1, r7, 0
- bl npc_pal_op
- cmp r5, 0
- bne _081268B2
- ldrb r0, [r7, 0x1]
- movs r1, 0x4
- negs r1, r1
- ands r1, r0
- movs r0, 0x1
- orrs r1, r0
- strb r1, [r7, 0x1]
-_081268B2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081268BC: .4byte gSprites
-_081268C0: .4byte sub_81269E0
-_081268C4: .4byte gUnknown_0830FD14
-_081268C8: .4byte gDummySpriteAnimTable
-_081268CC: .4byte gDummySpriteAffineAnimTable
- thumb_func_end SetUpReflection
-
- thumb_func_start sub_81268D0
-sub_81268D0: @ 81268D0
- push {lr}
- ldrb r0, [r0, 0x5]
- bl GetFieldObjectGraphicsInfo
- ldrh r0, [r0, 0xA]
- subs r0, 0x2
- lsls r0, 16
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_81268D0
-
- thumb_func_start npc_pal_op
-npc_pal_op: @ 81268E4
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r1, _0812693C
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- movs r0, 0
- strh r0, [r4, 0x32]
- ldrb r0, [r5, 0x5]
- bl GetFieldObjectGraphicsInfo
- ldrb r1, [r0, 0xC]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08126940
- ldrb r0, [r5, 0x1F]
- bl sub_8057450
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08126926
- ldrb r0, [r5, 0x1E]
- bl sub_8057450
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08126940
-_08126926:
- subs r0, 0x1
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x32]
- ldrb r1, [r4, 0x5]
- lsrs r1, 4
- adds r0, r5, 0
- bl npc_pal_op_A
- b _0812694A
- .align 2, 0
-_0812693C: .4byte gUnknown_08401E2C
-_08126940:
- ldrb r1, [r4, 0x5]
- lsrs r1, 4
- adds r0, r5, 0
- bl npc_pal_op_B
-_0812694A:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end npc_pal_op
-
- thumb_func_start npc_pal_op_B
-npc_pal_op_B: @ 8126954
- push {r4,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- ldrb r0, [r0, 0x5]
- bl GetFieldObjectGraphicsInfo
- adds r2, r0, 0
- ldrh r1, [r2, 0x4]
- ldr r0, _08126980
- cmp r1, r0
- beq _081269A8
- ldrb r0, [r2, 0xC]
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0
- bne _08126984
- ldrh r0, [r2, 0x2]
- adds r1, r4, 0
- bl npc_load_two_palettes__no_record
- b _081269A2
- .align 2, 0
-_08126980: .4byte 0x000011ff
-_08126984:
- cmp r1, 0xA
- bne _08126992
- ldrh r0, [r2, 0x2]
- adds r1, r4, 0
- bl npc_load_two_palettes__and_record
- b _081269A2
-_08126992:
- adds r0, r4, 0
- bl npc_paltag_by_palslot
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl pal_patch_for_npc
-_081269A2:
- adds r0, r4, 0
- bl sub_807D78C
-_081269A8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end npc_pal_op_B
-
- thumb_func_start npc_pal_op_A
-npc_pal_op_A: @ 81269B0
- push {r4,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- ldrb r0, [r0, 0x5]
- bl GetFieldObjectGraphicsInfo
- adds r2, r0, 0
- ldrh r1, [r2, 0x4]
- ldr r0, _081269DC
- cmp r1, r0
- beq _081269D4
- adds r0, r1, 0
- adds r1, r4, 0
- bl pal_patch_for_npc
- adds r0, r4, 0
- bl sub_807D78C
-_081269D4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081269DC: .4byte 0x000011ff
- thumb_func_end npc_pal_op_A
-
- thumb_func_start sub_81269E0
-sub_81269E0: @ 81269E0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08126A28
- adds r7, r0, r1
- ldrb r1, [r7, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08126A2C
- adds r5, r0, r1
- ldr r0, [r7]
- ldr r1, _08126A30
- ands r0, r1
- cmp r0, r1
- bne _08126A18
- ldrb r1, [r7, 0x8]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r1, r0
- beq _08126A34
-_08126A18:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- b _08126B3E
- .align 2, 0
-_08126A28: .4byte gMapObjects
-_08126A2C: .4byte gSprites
-_08126A30: .4byte 0x00020001
-_08126A34:
- ldr r1, _08126B4C
- ldrb r0, [r5, 0x5]
- lsrs r0, 4
- adds r0, r1
- ldrb r1, [r0]
- lsls r1, 4
- ldrb r2, [r4, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- ldrb r1, [r5, 0x1]
- lsrs r1, 6
- lsls r1, 6
- ldrb r2, [r4, 0x1]
- movs r3, 0x3F
- adds r0, r3, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r5, 0x3]
- lsrs r0, 6
- lsls r0, 6
- ldrb r2, [r4, 0x3]
- adds r1, r3, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x3]
- ldrb r0, [r5, 0x3]
- lsls r0, 26
- lsrs r0, 27
- movs r2, 0x10
- orrs r0, r2
- lsls r0, 1
- subs r2, 0x4F
- mov r9, r2
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x3]
- ldrh r1, [r5, 0x4]
- lsls r1, 22
- lsrs r1, 22
- ldrh r2, [r4, 0x4]
- ldr r0, _08126B50
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- ldr r0, [r5, 0x18]
- str r0, [r4, 0x18]
- adds r0, r5, 0
- adds r0, 0x42
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 26
- adds r2, r4, 0
- adds r2, 0x42
- ands r3, r0
- ldrb r1, [r2]
- movs r0, 0x40
- negs r0, r0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
- movs r0, 0x3E
- adds r0, r5
- mov r8, r0
- ldrb r0, [r0]
- adds r6, r4, 0
- adds r6, 0x3E
- movs r1, 0x4
- ands r1, r0
- ldrb r2, [r6]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6]
- ldrh r0, [r5, 0x20]
- strh r0, [r4, 0x20]
- adds r0, r7, 0
- bl sub_81268D0
- ldrh r1, [r5, 0x22]
- adds r0, r1
- ldrh r1, [r4, 0x32]
- adds r1, r0
- strh r1, [r4, 0x22]
- adds r0, r5, 0
- adds r0, 0x28
- ldrb r1, [r0]
- adds r0, r4, 0
- adds r0, 0x28
- strb r1, [r0]
- adds r0, r5, 0
- adds r0, 0x29
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x29
- strb r0, [r1]
- ldrh r0, [r5, 0x24]
- strh r0, [r4, 0x24]
- ldrh r0, [r5, 0x26]
- negs r0, r0
- strh r0, [r4, 0x26]
- mov r2, r8
- ldrb r0, [r2]
- movs r1, 0x2
- ands r1, r0
- ldrb r2, [r6]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08126B3E
- ldrb r0, [r4, 0x3]
- mov r2, r9
- ands r2, r0
- strb r2, [r4, 0x3]
- ldrb r0, [r5, 0x3]
- lsls r0, 26
- lsrs r0, 27
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08126B3E
- movs r1, 0x2
- adds r0, r2, 0
- orrs r0, r1
- strb r0, [r4, 0x3]
-_08126B3E:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08126B4C: .4byte gUnknown_0830FD14
-_08126B50: .4byte 0xfffffc00
- thumb_func_end sub_81269E0
-
- thumb_func_start sub_8126B54
-sub_8126B54: @ 8126B54
- push {r4,lr}
- ldr r0, _08126B9C
- ldr r0, [r0, 0x20]
- movs r1, 0
- movs r2, 0
- movs r3, 0x52
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- cmp r0, 0x40
- beq _08126B92
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08126BA0
- adds r1, r0
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r1, 0x5]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- orrs r0, r3
- strb r0, [r1]
-_08126B92:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08126B9C: .4byte gFieldEffectObjectTemplatePointers
-_08126BA0: .4byte gSprites
- thumb_func_end sub_8126B54
-
- thumb_func_start objid_set_invisible
-objid_set_invisible: @ 8126BA4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08126BC0
- 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]
- bx lr
- .align 2, 0
-_08126BC0: .4byte gSprites
- thumb_func_end objid_set_invisible
-
- thumb_func_start sub_8126BC4
-sub_8126BC4: @ 8126BC4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 16
- lsrs r7, r2, 16
- lsls r3, 16
- lsrs r6, r3, 16
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r1, _08126C68
- adds r2, r0, r1
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _08126C0E
- movs r0, 0x2E
- ldrsh r1, [r2, r0]
- lsls r0, r7, 16
- asrs r0, 16
- cmp r1, r0
- bne _08126C0E
- movs r0, 0x30
- ldrsh r1, [r2, r0]
- lsls r0, r6, 16
- asrs r0, 16
- cmp r1, r0
- beq _08126C5A
-_08126C0E:
- lsls r0, r7, 16
- asrs r0, 16
- lsls r1, r6, 16
- asrs r1, 16
- mov r4, sp
- adds r4, 0x2
- mov r2, sp
- adds r3, r4, 0
- bl sub_80603CC
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r1, _08126C68
- adds r2, r0, r1
- mov r0, sp
- ldrh r0, [r0]
- adds r0, 0x8
- strh r0, [r2, 0x20]
- ldrh r0, [r4]
- adds r0, 0x8
- strh r0, [r2, 0x22]
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- strh r7, [r2, 0x2E]
- strh r6, [r2, 0x30]
- mov r1, r8
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- adds r0, r2, 0
- bl StartSpriteAnim
-_08126C5A:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08126C68: .4byte gSprites
- thumb_func_end sub_8126BC4
-
- thumb_func_start oei_shadow
-oei_shadow: @ 8126C6C
- push {r4,r5,lr}
- ldr r5, _08126CF8
- ldrb r0, [r5]
- ldrb r1, [r5, 0x4]
- ldrb r2, [r5, 0x8]
- bl GetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08126CFC
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x5]
- bl GetFieldObjectGraphicsInfo
- adds r4, r0, 0
- ldr r2, _08126D00
- ldr r1, _08126D04
- ldrb r0, [r4, 0xC]
- lsls r0, 26
- lsrs r0, 30
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0
- movs r3, 0x94
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _08126CF0
- ldr r0, _08126D08
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- ldr r0, [r5]
- strh r0, [r2, 0x2E]
- ldr r0, [r5, 0x4]
- strh r0, [r2, 0x30]
- ldr r0, [r5, 0x8]
- strh r0, [r2, 0x32]
- ldrh r1, [r4, 0xA]
- lsls r1, 16
- asrs r1, 17
- ldr r3, _08126D0C
- ldrb r0, [r4, 0xC]
- lsls r0, 26
- lsrs r0, 30
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- subs r1, r0
- strh r1, [r2, 0x34]
-_08126CF0:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08126CF8: .4byte gUnknown_0202FF84
-_08126CFC: .4byte gMapObjects
-_08126D00: .4byte gFieldEffectObjectTemplatePointers
-_08126D04: .4byte gUnknown_08401E32
-_08126D08: .4byte gSprites
-_08126D0C: .4byte gUnknown_08401E36
- thumb_func_end oei_shadow
-
- thumb_func_start oamc_shadow
-oamc_shadow: @ 8126D10
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r5, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _08126D3E
- adds r0, r5, 0
- movs r1, 0x3
- bl FieldEffectStop
- b _08126DC4
-_08126D3E:
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08126DCC
- adds r4, r0, r1
- ldrb r0, [r4, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08126DD0
- adds r1, r0
- ldrb r0, [r1, 0x5]
- movs r2, 0xC
- ands r2, r0
- ldrb r3, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r5, 0x5]
- ldrh r0, [r1, 0x20]
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x34]
- ldrh r1, [r1, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- ldr r0, [r4]
- ldr r1, _08126DD4
- ands r0, r1
- cmp r0, r1
- bne _08126DBC
- ldrb r0, [r4, 0x1E]
- bl sub_8056E14
- lsls r0, 24
- cmp r0, 0
- bne _08126DBC
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- bne _08126DBC
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- bne _08126DBC
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsReflective
- lsls r0, 24
- cmp r0, 0
- bne _08126DBC
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsReflective
- lsls r0, 24
- cmp r0, 0
- beq _08126DC4
-_08126DBC:
- adds r0, r5, 0
- movs r1, 0x3
- bl FieldEffectStop
-_08126DC4:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08126DCC: .4byte gMapObjects
-_08126DD0: .4byte gSprites
-_08126DD4: .4byte 0x00400001
- thumb_func_end oamc_shadow
-
- thumb_func_start oei_grass_normal
-oei_grass_normal: @ 8126DD8
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _08126E70
- ldrh r1, [r5]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r5, 0x4]
- mov r4, sp
- adds r4, 0x2
- strh r0, [r4]
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08126E74
- ldr r0, [r0, 0x10]
- 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 r1, r0, 24
- cmp r1, 0x40
- beq _08126E64
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08126E78
- adds r3, r0, r1
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x3
- ldrb r1, [r5, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x5]
- ldr r0, [r5, 0x8]
- strh r0, [r3, 0x2E]
- ldr r0, [r5]
- strh r0, [r3, 0x30]
- ldr r0, [r5, 0x4]
- strh r0, [r3, 0x32]
- ldr r0, [r5, 0x10]
- strh r0, [r3, 0x34]
- ldr r0, [r5, 0x14]
- strh r0, [r3, 0x36]
- ldr r0, [r5, 0x18]
- strh r0, [r3, 0x38]
- ldr r0, [r5, 0x1C]
- cmp r0, 0
- beq _08126E64
- adds r0, r3, 0
- movs r1, 0x4
- bl SeekSpriteAnim
-_08126E64:
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08126E70: .4byte gUnknown_0202FF84
-_08126E74: .4byte gFieldEffectObjectTemplatePointers
-_08126E78: .4byte gSprites
- thumb_func_end oei_grass_normal
-
- thumb_func_start unc_grass_normal
-unc_grass_normal: @ 8126E7C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x38]
- lsrs r4, r0, 8
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r3, _08126F24
- ldrb r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08126EC6
- ldr r2, _08126F28
- movs r0, 0x5
- ldrsb r0, [r2, r0]
- cmp r0, r4
- bne _08126EAC
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- cmp r0, r7
- beq _08126EC6
-_08126EAC:
- ldr r1, [r3, 0x4]
- ldrh r0, [r5, 0x30]
- subs r0, r1
- strh r0, [r5, 0x30]
- ldr r1, [r3, 0x8]
- ldrh r0, [r5, 0x32]
- subs r0, r1
- strh r0, [r5, 0x32]
- ldrb r1, [r2, 0x5]
- lsls r1, 8
- ldrb r0, [r2, 0x4]
- orrs r0, r1
- strh r0, [r5, 0x38]
-_08126EC6:
- ldrh r0, [r5, 0x34]
- lsrs r1, r0, 8
- mov r8, r1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrh r0, [r5, 0x36]
- lsls r0, 24
- lsrs r7, r0, 24
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- movs r2, 0x32
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r6, r0, 24
- mov r0, r8
- adds r1, r4, 0
- adds r2, r7, 0
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08126F1A
- adds r0, r6, 0
- bl MetatileBehavior_IsTallGrass
- lsls r0, 24
- cmp r0, 0
- beq _08126F1A
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08126F2C
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08126F2C
-_08126F1A:
- adds r0, r5, 0
- movs r1, 0x4
- bl FieldEffectStop
- b _08126F70
- .align 2, 0
-_08126F24: .4byte gUnknown_0202E844
-_08126F28: .4byte gSaveBlock1
-_08126F2C:
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _08126F7C
- adds r2, r0, r1
- ldr r0, [r2, 0x10]
- ldr r1, [r5, 0x30]
- cmp r0, r1
- beq _08126F4C
- ldr r0, [r2, 0x14]
- cmp r0, r1
- beq _08126F4C
- movs r0, 0x1
- strh r0, [r5, 0x3C]
-_08126F4C:
- movs r6, 0
- adds r0, r5, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0
- bne _08126F5A
- movs r6, 0x4
-_08126F5A:
- adds r0, r5, 0
- movs r1, 0
- bl sub_806487C
- ldrh r1, [r5, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- adds r2, r6, 0
- bl sub_812882C
-_08126F70:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08126F7C: .4byte gMapObjects
- thumb_func_end unc_grass_normal
-
- thumb_func_start sub_8126F80
-sub_8126F80: @ 8126F80
- push {r4,lr}
- ldr r4, _08126FE4
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0xC
- bl sub_8060470
- ldr r0, _08126FE8
- ldr r0, [r0, 0x28]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08126FDC
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08126FEC
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0xC
- strh r0, [r2, 0x30]
-_08126FDC:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08126FE4: .4byte gUnknown_0202FF84
-_08126FE8: .4byte gFieldEffectObjectTemplatePointers
-_08126FEC: .4byte gSprites
- thumb_func_end sub_8126F80
-
- thumb_func_start sub_8126FF0
-sub_8126FF0: @ 8126FF0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, [sp, 0x18]
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- movs r5, 0
- ldr r0, _08127060
- mov r8, r0
- lsls r3, 16
- asrs r3, 16
- lsls r4, 16
- asrs r4, 16
-_08127014:
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- mov r1, r8
- adds r2, r0, r1
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _08127068
- ldr r1, [r2, 0x1C]
- ldr r0, _08127064
- cmp r1, r0
- bne _08127068
- movs r1, 0x30
- ldrsh r0, [r2, r1]
- cmp r3, r0
- bne _08127068
- movs r1, 0x32
- ldrsh r0, [r2, r1]
- cmp r4, r0
- bne _08127068
- ldrh r1, [r2, 0x34]
- lsrs r0, r1, 8
- cmp r12, r0
- bne _08127068
- movs r0, 0xFF
- ands r0, r1
- cmp r7, r0
- bne _08127068
- movs r1, 0x36
- ldrsh r0, [r2, r1]
- cmp r6, r0
- bne _08127068
- adds r0, r5, 0
- b _08127074
- .align 2, 0
-_08127060: .4byte gSprites
-_08127064: .4byte unc_grass_normal
-_08127068:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3F
- bls _08127014
- movs r0, 0x40
-_08127074:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8126FF0
-
- thumb_func_start sub_8127080
-sub_8127080: @ 8127080
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _0812711C
- ldrh r1, [r5]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r5, 0x4]
- mov r4, sp
- adds r4, 0x2
- strh r0, [r4]
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127120
- ldr r0, [r0, 0x3C]
- 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 r1, r0, 24
- cmp r1, 0x40
- beq _08127110
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08127124
- adds r4, r0, r1
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r5, 0x8]
- bl ZCoordToPriority
- 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 r0, [r5, 0x8]
- strh r0, [r4, 0x2E]
- ldr r0, [r5]
- strh r0, [r4, 0x30]
- ldr r0, [r5, 0x4]
- strh r0, [r4, 0x32]
- ldr r0, [r5, 0x10]
- strh r0, [r4, 0x34]
- ldr r0, [r5, 0x14]
- strh r0, [r4, 0x36]
- ldr r0, [r5, 0x18]
- strh r0, [r4, 0x38]
- ldr r0, [r5, 0x1C]
- cmp r0, 0
- beq _08127110
- adds r0, r4, 0
- movs r1, 0x6
- bl SeekSpriteAnim
-_08127110:
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0812711C: .4byte gUnknown_0202FF84
-_08127120: .4byte gFieldEffectObjectTemplatePointers
-_08127124: .4byte gSprites
- thumb_func_end sub_8127080
-
- thumb_func_start unc_grass_tall
-unc_grass_tall: @ 8127128
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x38]
- lsrs r7, r0, 8
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, _081271D0
- ldrb r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08127172
- ldr r2, _081271D4
- movs r0, 0x5
- ldrsb r0, [r2, r0]
- cmp r0, r7
- bne _08127158
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- cmp r0, r6
- beq _08127172
-_08127158:
- ldr r1, [r3, 0x4]
- ldrh r0, [r5, 0x30]
- subs r0, r1
- strh r0, [r5, 0x30]
- ldr r1, [r3, 0x8]
- ldrh r0, [r5, 0x32]
- subs r0, r1
- strh r0, [r5, 0x32]
- ldrb r1, [r2, 0x5]
- lsls r1, 8
- ldrb r0, [r2, 0x4]
- orrs r0, r1
- strh r0, [r5, 0x38]
-_08127172:
- ldrh r0, [r5, 0x34]
- lsrs r1, r0, 8
- mov r8, r1
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r0, [r5, 0x36]
- lsls r0, 24
- lsrs r6, r0, 24
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- movs r2, 0x32
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, r8
- adds r1, r7, 0
- adds r2, r6, 0
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _081271C6
- adds r0, r4, 0
- bl MetatileBehavior_IsLongGrass
- lsls r0, 24
- cmp r0, 0
- beq _081271C6
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _081271D8
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081271D8
-_081271C6:
- adds r0, r5, 0
- movs r1, 0x11
- bl FieldEffectStop
- b _0812720E
- .align 2, 0
-_081271D0: .4byte gUnknown_0202E844
-_081271D4: .4byte gSaveBlock1
-_081271D8:
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0812721C
- adds r2, r0, r1
- ldr r0, [r2, 0x10]
- ldr r1, [r5, 0x30]
- cmp r0, r1
- beq _081271F8
- ldr r0, [r2, 0x14]
- cmp r0, r1
- beq _081271F8
- movs r0, 0x1
- strh r0, [r5, 0x3C]
-_081271F8:
- adds r0, r5, 0
- movs r1, 0
- bl sub_806487C
- ldrh r1, [r5, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- movs r2, 0
- bl sub_812882C
-_0812720E:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812721C: .4byte gMapObjects
- thumb_func_end unc_grass_tall
-
- thumb_func_start sub_8127220
-sub_8127220: @ 8127220
- push {r4,lr}
- ldr r4, _08127284
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127288
- ldr r0, [r0, 0x40]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0812727C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _0812728C
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0x12
- strh r0, [r2, 0x30]
-_0812727C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08127284: .4byte gUnknown_0202FF84
-_08127288: .4byte gFieldEffectObjectTemplatePointers
-_0812728C: .4byte gSprites
- thumb_func_end sub_8127220
-
- thumb_func_start sub_8127290
-sub_8127290: @ 8127290
- push {r4-r6,lr}
- ldr r6, _08127324
- ldrb r0, [r6]
- ldrb r1, [r6, 0x4]
- ldrb r2, [r6, 0x8]
- bl GetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _08127328
- adds r5, r1, r0
- ldr r0, _0812732C
- ldr r0, [r0, 0x78]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0812731C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r4, _08127330
- adds r2, r4
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x5]
- movs r1, 0xC
- ands r1, r0
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r6]
- strh r0, [r2, 0x2E]
- ldr r0, [r6, 0x4]
- strh r0, [r2, 0x30]
- ldr r0, [r6, 0x8]
- strh r0, [r2, 0x32]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x20]
- strh r0, [r2, 0x34]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x22]
- strh r0, [r2, 0x36]
-_0812731C:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08127324: .4byte gUnknown_0202FF84
-_08127328: .4byte gMapObjects
-_0812732C: .4byte gFieldEffectObjectTemplatePointers
-_08127330: .4byte gSprites
- thumb_func_end sub_8127290
-
- thumb_func_start sub_8127334
-sub_8127334: @ 8127334
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08127372
- ldr r5, _0812737C
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1, 0x2]
- lsls r0, 29
- cmp r0, 0
- blt _08127380
-_08127372:
- adds r0, r4, 0
- movs r1, 0x29
- bl FieldEffectStop
- b _08127416
- .align 2, 0
-_0812737C: .4byte gMapObjects
-_08127380:
- ldrb r0, [r1, 0x5]
- bl GetFieldObjectGraphicsInfo
- mov r8, r0
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08127424
- adds r6, r0, r1
- ldrh r5, [r6, 0x22]
- ldrh r7, [r6, 0x20]
- movs r0, 0x20
- ldrsh r1, [r6, r0]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _081273BC
- lsls r0, r5, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _081273D6
-_081273BC:
- strh r7, [r4, 0x34]
- strh r5, [r4, 0x36]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081273D6
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
-_081273D6:
- strh r7, [r4, 0x20]
- strh r5, [r4, 0x22]
- mov r1, r8
- ldrh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 17
- subs r0, 0x8
- strh r0, [r4, 0x26]
- adds r0, r6, 0
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r0, [r6, 0x5]
- movs r1, 0xC
- ands r1, r0
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- adds r0, r6, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- lsls r1, 29
- lsrs r1, 31
- adds r0, r4, 0
- bl sub_806487C
-_08127416:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08127424: .4byte gSprites
- thumb_func_end sub_8127334
-
- thumb_func_start sub_8127428
-sub_8127428: @ 8127428
- push {r4,lr}
- ldr r4, _08127490
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127494
- ldr r0, [r0, 0x2C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _08127486
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08127498
- adds r0, r1
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- movs r1, 0x3
- ldrb r2, [r4, 0xC]
- ands r2, r1
- lsls r2, 2
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0xD
- strh r1, [r0, 0x3C]
- ldrb r1, [r4, 0x10]
- bl StartSpriteAnim
-_08127486:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08127490: .4byte gUnknown_0202FF84
-_08127494: .4byte gFieldEffectObjectTemplatePointers
-_08127498: .4byte gSprites
- thumb_func_end sub_8127428
-
- thumb_func_start sub_812749C
-sub_812749C: @ 812749C
- push {r4,r5,lr}
- ldr r4, _08127504
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127508
- ldr r0, [r0, 0x5C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- adds r5, r1, 0
- cmp r1, 0x40
- beq _081274FC
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0812750C
- adds r0, r1
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- movs r1, 0x3
- ldrb r2, [r4, 0xC]
- ands r2, r1
- lsls r2, 2
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0x18
- strh r1, [r0, 0x3C]
- ldrb r1, [r4, 0x10]
- bl StartSpriteAnim
-_081274FC:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08127504: .4byte gUnknown_0202FF84
-_08127508: .4byte gFieldEffectObjectTemplatePointers
-_0812750C: .4byte gSprites
- thumb_func_end sub_812749C
-
- thumb_func_start sub_8127510
-sub_8127510: @ 8127510
- push {r4,r5,lr}
- ldr r4, _08127578
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _0812757C
- ldr r0, [r0, 0x6C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- adds r5, r1, 0
- cmp r1, 0x40
- beq _08127570
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08127580
- adds r0, r1
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- movs r1, 0x3
- ldrb r2, [r4, 0xC]
- ands r2, r1
- lsls r2, 2
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0x23
- strh r1, [r0, 0x3C]
- ldrb r1, [r4, 0x10]
- bl StartSpriteAnim
-_08127570:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08127578: .4byte gUnknown_0202FF84
-_0812757C: .4byte gFieldEffectObjectTemplatePointers
-_08127580: .4byte gSprites
- thumb_func_end sub_8127510
-
- thumb_func_start sub_8127584
-sub_8127584: @ 8127584
- push {lr}
- ldr r2, _0812759C
- movs r3, 0x2E
- ldrsh r1, [r0, r3]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_0812759C: .4byte gUnknown_08401E40
- thumb_func_end sub_8127584
-
- thumb_func_start sub_81275A0
-sub_81275A0: @ 81275A0
- 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, 0x28
- ble _081275B6
- movs r0, 0x1
- strh r0, [r1, 0x2E]
-_081275B6:
- adds r0, r1, 0
- movs r1, 0
- bl sub_806487C
- pop {r0}
- bx r0
- thumb_func_end sub_81275A0
-
- thumb_func_start sub_81275C4
-sub_81275C4: @ 81275C4
- push {r4,lr}
- adds r4, r0, 0
- 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]
- ldrb r1, [r3]
- lsls r1, 29
- lsrs r1, 31
- adds r0, r4, 0
- bl sub_806487C
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x38
- ble _08127608
- ldrh r1, [r4, 0x3C]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldEffectStop
-_08127608:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81275C4
-
- thumb_func_start sub_8127610
-sub_8127610: @ 8127610
- push {r4-r6,lr}
- ldr r6, _081276A4
- ldrb r0, [r6]
- ldrb r1, [r6, 0x4]
- ldrb r2, [r6, 0x8]
- bl GetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _081276A8
- adds r5, r1, r0
- ldr r0, _081276AC
- ldr r0, [r0, 0x34]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x40
- beq _0812769A
- ldrb r0, [r5, 0x5]
- bl GetFieldObjectGraphicsInfo
- lsls r3, r4, 4
- adds r3, r4
- lsls r3, 2
- ldr r4, _081276B0
- adds r3, r4
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- ldrb r1, [r1]
- movs r2, 0x2
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- ldrb r2, [r5, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrb r1, [r1, 0x5]
- movs r2, 0xC
- ands r2, r1
- ldrb r4, [r3, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r4
- orrs r1, r2
- strb r1, [r3, 0x5]
- ldr r1, [r6]
- strh r1, [r3, 0x2E]
- ldr r1, [r6, 0x4]
- strh r1, [r3, 0x30]
- ldr r1, [r6, 0x8]
- strh r1, [r3, 0x32]
- ldrh r0, [r0, 0xA]
- lsls r0, 16
- asrs r0, 17
- subs r0, 0x4
- strh r0, [r3, 0x26]
- movs r0, 0x46
- bl PlaySE
-_0812769A:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081276A4: .4byte gUnknown_0202FF84
-_081276A8: .4byte gMapObjects
-_081276AC: .4byte gFieldEffectObjectTemplatePointers
-_081276B0: .4byte gSprites
- thumb_func_end sub_8127610
-
- thumb_func_start sub_81276B4
-sub_81276B4: @ 81276B4
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _081276E4
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _081276EE
-_081276E4:
- adds r0, r4, 0
- movs r1, 0xF
- bl FieldEffectStop
- b _0812772E
-_081276EE:
- ldr r3, _08127738
- ldr r2, _0812773C
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x20]
- strh r0, [r4, 0x20]
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0
- bl sub_806487C
-_0812772E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08127738: .4byte gSprites
-_0812773C: .4byte gMapObjects
- thumb_func_end sub_81276B4
-
- thumb_func_start sub_8127740
-sub_8127740: @ 8127740
- push {r4,lr}
- ldr r4, _081277A4
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0xC
- bl sub_8060470
- ldr r0, _081277A8
- ldr r0, [r0, 0x38]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0812779C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _081277AC
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0x10
- strh r0, [r2, 0x30]
-_0812779C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081277A4: .4byte gUnknown_0202FF84
-_081277A8: .4byte gFieldEffectObjectTemplatePointers
-_081277AC: .4byte gSprites
- thumb_func_end sub_8127740
-
- thumb_func_start oei_water_drop_tall
-oei_water_drop_tall: @ 81277B0
- push {r4,lr}
- ldr r4, _08127814
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127818
- ldr r0, [r0, 0x30]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0812780C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _0812781C
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0xE
- strh r0, [r2, 0x30]
-_0812780C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08127814: .4byte gUnknown_0202FF84
-_08127818: .4byte gFieldEffectObjectTemplatePointers
-_0812781C: .4byte gSprites
- thumb_func_end oei_water_drop_tall
-
- thumb_func_start sub_8127820
-sub_8127820: @ 8127820
- push {r4-r7,lr}
- ldr r7, _081278C0
- ldrb r0, [r7]
- ldrb r1, [r7, 0x4]
- ldrb r2, [r7, 0x8]
- bl GetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _081278C4
- adds r6, r1, r0
- ldr r0, _081278C8
- ldr r0, [r0, 0x34]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x40
- beq _081278B6
- ldrb r0, [r6, 0x5]
- bl GetFieldObjectGraphicsInfo
- adds r4, r0, 0
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r3, _081278CC
- adds r0, r3
- ldr r1, _081278D0
- str r1, [r0, 0x1C]
- adds r5, r0, 0
- adds r5, 0x3E
- ldrb r1, [r5]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r5]
- ldrb r2, [r6, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- ldrb r1, [r1, 0x5]
- movs r2, 0xC
- ands r2, r1
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r1, [r7]
- strh r1, [r0, 0x2E]
- ldr r1, [r7, 0x4]
- strh r1, [r0, 0x30]
- ldr r1, [r7, 0x8]
- strh r1, [r0, 0x32]
- ldr r1, _081278D4
- strh r1, [r0, 0x34]
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x36]
- ldrh r1, [r4, 0xA]
- lsls r1, 16
- asrs r1, 17
- subs r1, 0x4
- strh r1, [r0, 0x26]
- movs r1, 0x1
- bl StartSpriteAnim
-_081278B6:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081278C0: .4byte gUnknown_0202FF84
-_081278C4: .4byte gMapObjects
-_081278C8: .4byte gFieldEffectObjectTemplatePointers
-_081278CC: .4byte gSprites
-_081278D0: .4byte sub_81278D8
-_081278D4: .4byte 0x0000ffff
- thumb_func_end sub_8127820
-
- thumb_func_start sub_81278D8
-sub_81278D8: @ 81278D8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08127912
- ldr r2, _0812791C
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r5, r0, r2
- ldrb r0, [r5, 0x2]
- lsls r0, 28
- cmp r0, 0
- blt _08127920
-_08127912:
- adds r0, r4, 0
- movs r1, 0x22
- bl FieldEffectStop
- b _0812796A
- .align 2, 0
-_0812791C: .4byte gMapObjects
-_08127920:
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08127974
- adds r0, r1
- ldrh r1, [r0, 0x20]
- strh r1, [r4, 0x20]
- ldrh r1, [r0, 0x22]
- strh r1, [r4, 0x22]
- adds r0, 0x43
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0
- bl sub_806487C
- ldr r1, [r5, 0x10]
- ldr r0, [r4, 0x34]
- cmp r1, r0
- beq _0812796A
- ldrh r0, [r5, 0x10]
- strh r0, [r4, 0x34]
- ldrh r0, [r5, 0x12]
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _0812796A
- movs r0, 0x46
- bl PlaySE
-_0812796A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08127974: .4byte gSprites
- thumb_func_end sub_81278D8
-
- thumb_func_start oei_ripples
-oei_ripples: @ 8127978
- push {r4,lr}
- ldr r0, _081279CC
- ldr r0, [r0, 0x14]
- ldr r4, _081279D0
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _081279C4
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _081279D4
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x5
- strh r0, [r2, 0x2E]
-_081279C4:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081279CC: .4byte gFieldEffectObjectTemplatePointers
-_081279D0: .4byte gUnknown_0202FF84
-_081279D4: .4byte gSprites
- thumb_func_end oei_ripples
-
- thumb_func_start sub_81279D8
-sub_81279D8: @ 81279D8
- push {r4-r6,lr}
- ldr r6, _08127A6C
- ldrb r0, [r6]
- ldrb r1, [r6, 0x4]
- ldrb r2, [r6, 0x8]
- bl GetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _08127A70
- adds r5, r1, r0
- ldr r0, _08127A74
- ldr r0, [r0, 0x7C]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08127A64
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r4, _08127A78
- adds r2, r4
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x5]
- movs r1, 0xC
- ands r1, r0
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r6]
- strh r0, [r2, 0x2E]
- ldr r0, [r6, 0x4]
- strh r0, [r2, 0x30]
- ldr r0, [r6, 0x8]
- strh r0, [r2, 0x32]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x20]
- strh r0, [r2, 0x34]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x22]
- strh r0, [r2, 0x36]
-_08127A64:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08127A6C: .4byte gUnknown_0202FF84
-_08127A70: .4byte gMapObjects
-_08127A74: .4byte gFieldEffectObjectTemplatePointers
-_08127A78: .4byte gSprites
- thumb_func_end sub_81279D8
-
- thumb_func_start sub_8127A7C
-sub_8127A7C: @ 8127A7C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08127AB6
- ldr r5, _08127AC0
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1, 0x2]
- lsls r0, 26
- cmp r0, 0
- blt _08127AC4
-_08127AB6:
- adds r0, r4, 0
- movs r1, 0x2A
- bl FieldEffectStop
- b _08127B08
- .align 2, 0
-_08127AC0: .4byte gMapObjects
-_08127AC4:
- ldrb r0, [r1, 0x5]
- bl GetFieldObjectGraphicsInfo
- mov r1, sp
- ldrb r2, [r1]
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r2, _08127B10
- adds r1, r2
- ldrh r2, [r1, 0x20]
- strh r2, [r4, 0x20]
- ldrh r0, [r0, 0xA]
- lsls r0, 16
- asrs r0, 17
- ldrh r2, [r1, 0x22]
- adds r0, r2
- subs r0, 0x8
- strh r0, [r4, 0x22]
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0
- bl sub_806487C
-_08127B08:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08127B10: .4byte gSprites
- thumb_func_end sub_8127A7C
-
- thumb_func_start sub_8127B14
-sub_8127B14: @ 8127B14
- push {r4,lr}
- ldr r4, _08127B74
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127B78
- ldr r0, [r0, 0x44]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08127B6C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08127B7C
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x13
- strh r0, [r2, 0x2E]
-_08127B6C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08127B74: .4byte gUnknown_0202FF84
-_08127B78: .4byte gFieldEffectObjectTemplatePointers
-_08127B7C: .4byte gSprites
- thumb_func_end sub_8127B14
-
- thumb_func_start sub_8127B80
-sub_8127B80: @ 8127B80
- push {r4,lr}
- ldr r4, _08127BE0
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127BE4
- ldr r0, [r0, 0x48]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08127BD8
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08127BE8
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x14
- strh r0, [r2, 0x2E]
-_08127BD8:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08127BE0: .4byte gUnknown_0202FF84
-_08127BE4: .4byte gFieldEffectObjectTemplatePointers
-_08127BE8: .4byte gSprites
- thumb_func_end sub_8127B80
-
- thumb_func_start sub_8127BEC
-sub_8127BEC: @ 8127BEC
- push {r4,lr}
- ldr r4, _08127C4C
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127C50
- ldr r0, [r0, 0x4C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08127C44
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08127C54
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x15
- strh r0, [r2, 0x2E]
-_08127C44:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08127C4C: .4byte gUnknown_0202FF84
-_08127C50: .4byte gFieldEffectObjectTemplatePointers
-_08127C54: .4byte gSprites
- thumb_func_end sub_8127BEC
-
- thumb_func_start sub_8127C58
-sub_8127C58: @ 8127C58
- push {r4,lr}
- ldr r4, _08127CB8
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127CBC
- ldr r0, [r0, 0x50]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08127CB0
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08127CC0
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x16
- strh r0, [r2, 0x2E]
-_08127CB0:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08127CB8: .4byte gUnknown_0202FF84
-_08127CBC: .4byte gFieldEffectObjectTemplatePointers
-_08127CC0: .4byte gSprites
- thumb_func_end sub_8127C58
-
- thumb_func_start ash
-ash: @ 8127CC4
- push {r4,lr}
- lsls r2, 16
- lsrs r2, 16
- ldr r4, _08127CF4
- lsls r0, 16
- asrs r0, 16
- str r0, [r4]
- lsls r1, 16
- asrs r1, 16
- str r1, [r4, 0x4]
- movs r0, 0x52
- str r0, [r4, 0x8]
- movs r0, 0x1
- str r0, [r4, 0xC]
- str r2, [r4, 0x10]
- lsls r3, 16
- asrs r3, 16
- str r3, [r4, 0x14]
- movs r0, 0x7
- bl FieldEffectStart
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08127CF4: .4byte gUnknown_0202FF84
- thumb_func_end ash
-
- thumb_func_start oei_ash
-oei_ash: @ 8127CF8
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _08127D78
- ldrh r1, [r5]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r5, 0x4]
- mov r4, sp
- adds r4, 0x2
- strh r0, [r4]
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127D7C
- ldr r0, [r0, 0x18]
- mov r1, sp
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r3, 0
- ldrsh r2, [r4, r3]
- ldrb r3, [r5, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08127D6E
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08127D80
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r5, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r5]
- strh r0, [r2, 0x30]
- ldr r0, [r5, 0x4]
- strh r0, [r2, 0x32]
- ldr r0, [r5, 0x10]
- strh r0, [r2, 0x34]
- ldr r0, [r5, 0x14]
- strh r0, [r2, 0x36]
-_08127D6E:
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08127D78: .4byte gUnknown_0202FF84
-_08127D7C: .4byte gFieldEffectObjectTemplatePointers
-_08127D80: .4byte gSprites
- thumb_func_end oei_ash
-
- thumb_func_start sub_8127D84
-sub_8127D84: @ 8127D84
- push {lr}
- ldr r2, _08127D9C
- movs r3, 0x2E
- ldrsh r1, [r0, r3]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_08127D9C: .4byte gUnknown_08401E48
- thumb_func_end sub_8127D84
-
- thumb_func_start sub_8127DA0
-sub_8127DA0: @ 8127DA0
- 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]
- subs r2, 0x12
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r3, 0x36]
- subs r0, 0x1
- strh r0, [r3, 0x36]
- lsls r0, 16
- cmp r0, 0
- bne _08127DCA
- movs r0, 0x1
- strh r0, [r3, 0x2E]
-_08127DCA:
- pop {r0}
- bx r0
- thumb_func_end sub_8127DA0
-
- thumb_func_start sub_8127DD0
-sub_8127DD0: @ 8127DD0
- 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]
- subs r2, 0x12
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- ldrh r2, [r4, 0x34]
- bl MapGridSetMetatileIdAt
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- ldr r2, _08127E28
- ldr r0, _08127E2C
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0x2
- strh r0, [r4, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08127E28: .4byte gMapObjects
-_08127E2C: .4byte gPlayerAvatar
- thumb_func_end sub_8127DD0
-
- thumb_func_start sub_8127E30
-sub_8127E30: @ 8127E30
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_806487C
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08127E50
- adds r0, r4, 0
- movs r1, 0x7
- bl FieldEffectStop
-_08127E50:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8127E30
-
- thumb_func_start sub_8127E58
-sub_8127E58: @ 8127E58
- push {r4,r5,lr}
- ldr r4, _08127EC0
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _08127EC4
- ldr r0, [r0, 0x1C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0x96
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- cmp r0, 0x40
- beq _08127EB2
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08127EC8
- adds r1, r0
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r3]
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- strb r0, [r1, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r1, 0x32]
- ldr r0, _08127ECC
- strh r0, [r1, 0x34]
- movs r0, 0x1
- negs r0, r0
- strh r0, [r1, 0x3A]
- strh r0, [r1, 0x3C]
-_08127EB2:
- movs r0, 0x8
- bl FieldEffectActiveListRemove
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08127EC0: .4byte gUnknown_0202FF84
-_08127EC4: .4byte gFieldEffectObjectTemplatePointers
-_08127EC8: .4byte gSprites
-_08127ECC: .4byte 0x0000ffff
- thumb_func_end sub_8127E58
-
- thumb_func_start sub_8127ED0
-sub_8127ED0: @ 8127ED0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, _08127EF8
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldrh r0, [r2, 0x2E]
- movs r3, 0x10
- negs r3, r3
- ands r3, r0
- movs r0, 0xF0
- lsls r0, 20
- ands r0, r1
- lsrs r0, 24
- orrs r0, r3
- strh r0, [r2, 0x2E]
- bx lr
- .align 2, 0
-_08127EF8: .4byte gSprites
- thumb_func_end sub_8127ED0
-
- thumb_func_start sub_8127EFC
-sub_8127EFC: @ 8127EFC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, _08127F24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldrh r0, [r2, 0x2E]
- movs r3, 0xF1
- negs r3, r3
- ands r3, r0
- movs r0, 0xF0
- lsls r0, 20
- ands r0, r1
- lsrs r0, 20
- orrs r3, r0
- strh r3, [r2, 0x2E]
- bx lr
- .align 2, 0
-_08127F24: .4byte gSprites
- thumb_func_end sub_8127EFC
-
- thumb_func_start sub_8127F28
-sub_8127F28: @ 8127F28
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r4, _08127F54
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r3, r4
- ldrh r0, [r3, 0x2E]
- ldr r4, _08127F58
- ands r4, r0
- movs r0, 0xF0
- lsls r0, 20
- ands r0, r1
- lsrs r0, 16
- orrs r4, r0
- strh r4, [r3, 0x2E]
- strh r2, [r3, 0x30]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08127F54: .4byte gSprites
-_08127F58: .4byte 0xfffff0ff
- thumb_func_end sub_8127F28
-
- thumb_func_start sub_8127F5C
-sub_8127F5C: @ 8127F5C
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF
- ands r0, r1
- bx lr
- thumb_func_end sub_8127F5C
-
- thumb_func_start sub_8127F64
-sub_8127F64: @ 8127F64
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF0
- ands r0, r1
- lsrs r0, 4
- bx lr
- thumb_func_end sub_8127F64
-
- thumb_func_start sub_8127F70
-sub_8127F70: @ 8127F70
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF0
- lsls r0, 4
- ands r0, r1
- lsrs r0, 8
- bx lr
- thumb_func_end sub_8127F70
-
- thumb_func_start sub_8127F7C
-sub_8127F7C: @ 8127F7C
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x32
- ldrsh r0, [r6, r1]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, _08127FCC
- adds r4, r0
- ldrb r0, [r4, 0x4]
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- ldr r0, _08127FD0
- adds r5, r0
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_8127FD4
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_812800C
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_81280A0
- ldrb r0, [r5, 0x5]
- movs r1, 0xC
- ands r1, r0
- ldrb r2, [r6, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08127FCC: .4byte gMapObjects
-_08127FD0: .4byte gSprites
- thumb_func_end sub_8127F7C
-
- thumb_func_start sub_8127FD4
-sub_8127FD4: @ 8127FD4
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r1, _08128008
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- adds r0, r4, 0
- bl sub_8127F64
- lsls r0, 24
- cmp r0, 0
- bne _08128000
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- add r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- bl StartSpriteAnimIfDifferent
-_08128000:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08128008: .4byte gUnknown_08401E54
- thumb_func_end sub_8127FD4
-
- thumb_func_start sub_812800C
-sub_812800C: @ 812800C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r1, 0
- ldrh r2, [r0, 0x10]
- mov r1, sp
- strh r2, [r1]
- ldrh r1, [r0, 0x12]
- mov r0, sp
- adds r0, 0x2
- strh r1, [r0]
- movs r2, 0x26
- ldrsh r3, [r4, r2]
- mov r8, r0
- cmp r3, 0
- bne _08128094
- mov r0, sp
- movs r5, 0
- ldrsh r2, [r0, r5]
- movs r5, 0x3A
- ldrsh r0, [r4, r5]
- cmp r2, r0
- bne _08128048
- lsls r0, r1, 16
- asrs r0, 16
- movs r5, 0x3C
- ldrsh r1, [r4, r5]
- cmp r0, r1
- beq _08128094
-_08128048:
- strh r3, [r4, 0x38]
- strh r2, [r4, 0x3A]
- mov r1, r8
- movs r2, 0
- ldrsh r0, [r1, r2]
- strh r0, [r4, 0x3C]
- movs r5, 0x1
- mov r7, r8
- mov r6, sp
-_0812805A:
- adds r0, r5, 0
- mov r1, sp
- adds r2, r7, 0
- bl MoveCoords
- movs r1, 0
- ldrsh r0, [r6, r1]
- movs r2, 0
- ldrsh r1, [r7, r2]
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _08128080
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- b _08128094
-_08128080:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r4, 0x3A]
- strh r0, [r6]
- ldrh r0, [r4, 0x3C]
- mov r1, r8
- strh r0, [r1]
- cmp r5, 0x4
- bls _0812805A
-_08128094:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812800C
-
- thumb_func_start sub_81280A0
-sub_81280A0: @ 81280A0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r1, 0
- adds r4, r2, 0
- ldr r1, _08128104
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r0, r4, 0
- bl sub_8127F5C
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- cmp r2, 0
- beq _0812811A
- ldrh r1, [r4, 0x36]
- adds r1, 0x1
- strh r1, [r4, 0x36]
- movs r3, 0x38
- ldrsh r0, [r4, r3]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _081280E0
- ldrh r0, [r4, 0x34]
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
-_081280E0:
- ldrh r1, [r4, 0x36]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _081280F0
- ldrh r0, [r4, 0x34]
- negs r0, r0
- strh r0, [r4, 0x34]
-_081280F0:
- cmp r2, 0x2
- beq _0812811A
- adds r0, r4, 0
- bl sub_8127F70
- lsls r0, 24
- cmp r0, 0
- bne _08128108
- ldrh r0, [r4, 0x26]
- b _0812810E
- .align 2, 0
-_08128104: .4byte gUnknown_08401E5A
-_08128108:
- ldrh r0, [r4, 0x26]
- ldrh r3, [r4, 0x30]
- adds r0, r3
-_0812810E:
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x20]
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x22]
- adds r0, 0x8
- strh r0, [r4, 0x22]
-_0812811A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81280A0
-
- thumb_func_start sub_8128124
-sub_8128124: @ 8128124
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08128168
- movs r1, 0
- movs r2, 0
- movs r3, 0xFF
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r1, _0812816C
- adds r2, r1
- ldr r1, _08128170
- str r1, [r2, 0x1C]
- movs r1, 0x3E
- adds r1, r2
- mov r12, r1
- ldrb r1, [r1]
- movs r3, 0x4
- orrs r1, r3
- mov r3, r12
- strb r1, [r3]
- strh r4, [r2, 0x2E]
- movs r1, 0x1
- strh r1, [r2, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08128168: .4byte gDummySpriteTemplate
-_0812816C: .4byte gSprites
-_08128170: .4byte sub_8128174
- thumb_func_end sub_8128124
-
- thumb_func_start sub_8128174
-sub_8128174: @ 8128174
- push {lr}
- adds r2, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081281B0
- adds r3, r0, r1
- ldrh r1, [r2, 0x32]
- adds r0, r1, 0x1
- strh r0, [r2, 0x32]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0812819C
- ldrh r0, [r2, 0x30]
- ldrh r1, [r3, 0x26]
- adds r0, r1
- strh r0, [r3, 0x26]
-_0812819C:
- ldrh r1, [r2, 0x32]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _081281AC
- ldrh r0, [r2, 0x30]
- negs r0, r0
- strh r0, [r2, 0x30]
-_081281AC:
- pop {r0}
- bx r0
- .align 2, 0
-_081281B0: .4byte gSprites
- thumb_func_end sub_8128174
-
- thumb_func_start sub_81281B4
-sub_81281B4: @ 81281B4
- push {r4,lr}
- ldr r4, _08128218
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0xC
- bl sub_8060470
- ldr r0, _0812821C
- ldr r0, [r0, 0x24]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08128210
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _08128220
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0xA
- strh r0, [r2, 0x30]
-_08128210:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08128218: .4byte gUnknown_0202FF84
-_0812821C: .4byte gFieldEffectObjectTemplatePointers
-_08128220: .4byte gSprites
- thumb_func_end sub_81281B4
-
- thumb_func_start sub_8128224
-sub_8128224: @ 8128224
- push {r4-r7,lr}
- ldr r7, _081282D0
- ldrb r0, [r7]
- ldrb r1, [r7, 0x4]
- ldrb r2, [r7, 0x8]
- bl GetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _081282D4
- adds r6, r1, r0
- ldr r0, _081282D8
- ldr r0, [r0, 0x74]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x40
- beq _081282C8
- ldrb r0, [r6, 0x5]
- bl GetFieldObjectGraphicsInfo
- adds r5, r0, 0
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r4, _081282DC
- adds r0, r4
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- ldrb r2, [r6, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrb r1, [r1, 0x5]
- movs r2, 0xC
- ands r2, r1
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r1, [r7]
- strh r1, [r0, 0x2E]
- ldr r1, [r7, 0x4]
- strh r1, [r0, 0x30]
- ldr r1, [r7, 0x8]
- strh r1, [r0, 0x32]
- ldrb r2, [r6, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x20]
- strh r1, [r0, 0x34]
- ldrb r2, [r6, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x22]
- strh r1, [r0, 0x36]
- ldrh r1, [r5, 0xA]
- lsls r1, 16
- asrs r1, 17
- subs r1, 0x2
- strh r1, [r0, 0x26]
- movs r1, 0x2
- bl SeekSpriteAnim
-_081282C8:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081282D0: .4byte gUnknown_0202FF84
-_081282D4: .4byte gMapObjects
-_081282D8: .4byte gFieldEffectObjectTemplatePointers
-_081282DC: .4byte gSprites
- thumb_func_end sub_8128224
-
- thumb_func_start sub_81282E0
-sub_81282E0: @ 81282E0
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _0812831A
- ldr r2, _08128324
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldrb r0, [r1, 0x2]
- lsls r0, 27
- cmp r0, 0
- blt _08128328
-_0812831A:
- adds r0, r4, 0
- movs r1, 0x27
- bl FieldEffectStop
- b _0812839A
- .align 2, 0
-_08128324: .4byte gMapObjects
-_08128328:
- ldr r2, _081283A4
- ldrb r1, [r1, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r5, [r0, 0x22]
- ldrh r6, [r0, 0x20]
- movs r2, 0x20
- ldrsh r1, [r0, r2]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _08128350
- lsls r0, r5, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _0812836A
-_08128350:
- strh r6, [r4, 0x34]
- strh r5, [r4, 0x36]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0812836A
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
-_0812836A:
- strh r6, [r4, 0x20]
- strh r5, [r4, 0x22]
- ldr r3, _081283A4
- ldr r2, _081283A8
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x43
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0
- bl sub_806487C
-_0812839A:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081283A4: .4byte gSprites
-_081283A8: .4byte gMapObjects
- thumb_func_end sub_81282E0
-
- thumb_func_start sub_81283AC
-sub_81283AC: @ 81283AC
- push {r4,lr}
- ldr r4, _08128404
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0
- bl sub_8060470
- ldr r0, _08128408
- adds r0, 0x88
- ldr r0, [r0]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0x52
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _081283FC
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0812840C
- adds r1, r0
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r3]
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1, 0x5]
-_081283FC:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08128404: .4byte gUnknown_0202FF84
-_08128408: .4byte gFieldEffectObjectTemplatePointers
-_0812840C: .4byte gSprites
- thumb_func_end sub_81283AC
-
- thumb_func_start sub_8128410
-sub_8128410: @ 8128410
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- movs r1, 0x80
- lsls r1, 1
- ands r0, r1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x22]
- subs r1, r0
- strh r1, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0
- bl sub_806487C
- ldrh r1, [r4, 0x3E]
- ldr r0, _0812844C
- ands r0, r1
- cmp r0, 0
- beq _08128444
- adds r0, r4, 0
- movs r1, 0x35
- bl FieldEffectStop
-_08128444:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812844C: .4byte 0x00001004
- thumb_func_end sub_8128410
-
- thumb_func_start sub_8128450
-sub_8128450: @ 8128450
- push {r4,lr}
- ldr r4, _081284B8
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x4
- bl sub_8060470
- ldr r0, _081284BC
- ldr r0, [r0, 0x58]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _081284B0
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _081284C0
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x50
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x17
- strh r0, [r2, 0x2E]
-_081284B0:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_081284B8: .4byte gUnknown_0202FF84
-_081284BC: .4byte gFieldEffectObjectTemplatePointers
-_081284C0: .4byte gSprites
- thumb_func_end sub_8128450
-
- thumb_func_start ShowTreeDisguiseFieldEffect
-ShowTreeDisguiseFieldEffect: @ 81284C4
- push {lr}
- movs r0, 0x1C
- movs r1, 0x18
- movs r2, 0x4
- bl ShowDisguiseFieldEffect
- pop {r1}
- bx r1
- thumb_func_end ShowTreeDisguiseFieldEffect
-
- thumb_func_start ShowMountainDisguiseFieldEffect
-ShowMountainDisguiseFieldEffect: @ 81284D4
- push {lr}
- movs r0, 0x1D
- movs r1, 0x19
- movs r2, 0x3
- bl ShowDisguiseFieldEffect
- pop {r1}
- bx r1
- thumb_func_end ShowMountainDisguiseFieldEffect
-
- thumb_func_start ShowSandDisguiseFieldEffect
-ShowSandDisguiseFieldEffect: @ 81284E4
- push {lr}
- movs r0, 0x24
- movs r1, 0x1C
- movs r2, 0x2
- bl ShowDisguiseFieldEffect
- pop {r1}
- bx r1
- thumb_func_end ShowSandDisguiseFieldEffect
-
- thumb_func_start ShowDisguiseFieldEffect
-ShowDisguiseFieldEffect: @ 81284F4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- mov r8, r4
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- ldr r5, _08128528
- ldrb r0, [r5]
- ldrb r1, [r5, 0x4]
- ldrb r2, [r5, 0x8]
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _0812852C
- adds r0, r4, 0
- bl FieldEffectActiveListRemove
- movs r0, 0x40
- b _08128598
- .align 2, 0
-_08128528: .4byte gUnknown_0202FF84
-_0812852C:
- ldr r1, _081285A4
- lsls r0, r6, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- mov r1, sp
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08128594
- mov r0, sp
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, _081285A8
- adds r2, r0
- movs r0, 0x3E
- adds r0, r2
- mov r12, r0
- ldrb r3, [r0]
- lsls r1, r3, 30
- lsrs r1, 31
- adds r1, 0x1
- movs r0, 0x1
- ands r1, r0
- lsls r1, 1
- movs r0, 0x3
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- lsls r3, r7, 4
- ldrb r1, [r2, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r3
- strb r0, [r2, 0x5]
- mov r0, r8
- strh r0, [r2, 0x30]
- ldr r0, [r5]
- strh r0, [r2, 0x32]
- ldr r0, [r5, 0x4]
- strh r0, [r2, 0x34]
- ldr r0, [r5, 0x8]
- strh r0, [r2, 0x36]
-_08128594:
- mov r0, sp
- ldrb r0, [r0]
-_08128598:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081285A4: .4byte gFieldEffectObjectTemplatePointers
-_081285A8: .4byte gSprites
- thumb_func_end ShowDisguiseFieldEffect
-
- thumb_func_start sub_81285AC
-sub_81285AC: @ 81285AC
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x34]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r5, 0x36]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetFieldObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _081285DC
- ldrh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldEffectStop
-_081285DC:
- ldr r4, _08128694
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x5]
- bl GetFieldObjectGraphicsInfo
- mov r1, sp
- ldrb r2, [r1]
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- ldr r1, _08128698
- adds r2, r1
- adds r1, r2, 0
- adds r1, 0x3E
- ldrb r1, [r1]
- movs r3, 0x3E
- adds r3, r5
- mov r12, r3
- movs r3, 0x4
- ands r3, r1
- mov r1, r12
- ldrb r4, [r1]
- movs r1, 0x5
- negs r1, r1
- ands r1, r4
- orrs r1, r3
- mov r3, r12
- strb r1, [r3]
- ldrh r1, [r2, 0x20]
- strh r1, [r5, 0x20]
- ldrh r0, [r0, 0xA]
- lsls r0, 16
- asrs r0, 17
- ldrh r1, [r2, 0x22]
- adds r0, r1
- subs r0, 0x10
- strh r0, [r5, 0x22]
- adds r2, 0x43
- ldrb r0, [r2]
- subs r0, 0x1
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrh r1, [r5, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0x1
- bne _0812865C
- adds r0, r1, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_0812865C:
- movs r3, 0x2E
- ldrsh r0, [r5, r3]
- ldrh r2, [r5, 0x2E]
- cmp r0, 0x2
- bne _08128678
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08128678
- movs r0, 0x1
- strh r0, [r5, 0x3C]
-_08128678:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _0812868C
- ldrh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldEffectStop
-_0812868C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08128694: .4byte gMapObjects
-_08128698: .4byte gSprites
- thumb_func_end sub_81285AC
-
- thumb_func_start sub_812869C
-sub_812869C: @ 812869C
- push {lr}
- adds r1, r0, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _081286BA
- ldr r2, _081286C0
- ldrb r1, [r1, 0x1A]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x2E]
- adds r1, 0x1
- strh r1, [r0, 0x2E]
-_081286BA:
- pop {r0}
- bx r0
- .align 2, 0
-_081286C0: .4byte gSprites
- thumb_func_end sub_812869C
-
- thumb_func_start sub_81286C4
-sub_81286C4: @ 81286C4
- push {lr}
- adds r2, r0, 0
- adds r2, 0x21
- ldrb r1, [r2]
- cmp r1, 0x2
- beq _081286FA
- cmp r1, 0
- beq _081286FA
- ldrb r1, [r0, 0x1A]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081286EC
- adds r1, r0, r1
- movs r3, 0x3C
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _081286F0
- movs r0, 0
- b _081286FC
- .align 2, 0
-_081286EC: .4byte gSprites
-_081286F0:
- movs r0, 0x2
- strb r0, [r2]
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
-_081286FA:
- movs r0, 0x1
-_081286FC:
- pop {r1}
- bx r1
- thumb_func_end sub_81286C4
-
- thumb_func_start sub_8128700
-sub_8128700: @ 8128700
- push {r4,lr}
- ldr r4, _08128768
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
- ldr r0, [r4, 0x4]
- adds r0, 0x7
- str r0, [r4, 0x4]
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_8060470
- ldr r0, _0812876C
- adds r0, 0x8C
- ldr r0, [r0]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0x52
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _08128760
- ldr r0, _08128770
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- movs r0, 0x3
- ldrb r2, [r4, 0x8]
- 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]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1]
-_08128760:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08128768: .4byte gUnknown_0202FF84
-_0812876C: .4byte gFieldEffectObjectTemplatePointers
-_08128770: .4byte gSprites
- thumb_func_end sub_8128700
-
- thumb_func_start sub_8128774
-sub_8128774: @ 8128774
- push {lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _081287A8
- adds r0, r2, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081287A0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
-_081287A0:
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _081287BE
-_081287A8:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x22
- ble _081287BE
- adds r0, r2, 0
- movs r1, 0x36
- bl FieldEffectStop
-_081287BE:
- pop {r0}
- bx r0
- thumb_func_end sub_8128774
-
- thumb_func_start sub_81287C4
-sub_81287C4: @ 81287C4
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081287E2
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldEffectStop
- b _081287F8
-_081287E2:
- adds r0, r4, 0
- movs r1, 0
- bl sub_806487C
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- movs r2, 0
- bl SetObjectSubpriorityByZCoord
-_081287F8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81287C4
-
- thumb_func_start sub_8128800
-sub_8128800: @ 8128800
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0812881E
- ldrh r1, [r2, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r2, 0
- bl FieldEffectStop
- b _08128826
-_0812881E:
- adds r0, r2, 0
- movs r1, 0
- bl sub_806487C
-_08128826:
- pop {r0}
- bx r0
- thumb_func_end sub_8128800
-
- thumb_func_start sub_812882C
-sub_812882C: @ 812882C
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r0, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 24
- lsrs r2, 24
- adds r1, r6, 0
- bl SetObjectSubpriorityByZCoord
- movs r7, 0
-_08128842:
- lsls r0, r7, 3
- adds r0, r7
- lsls r0, 2
- ldr r1, _081288DC
- adds r4, r0, r1
- ldrb r0, [r4]
- lsls r0, 31
- cmp r0, 0
- beq _081288E4
- ldrb r0, [r4, 0x5]
- bl GetFieldObjectGraphicsInfo
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081288E0
- adds r5, r0, r1
- adds r0, r6, 0
- adds r0, 0x28
- movs r2, 0
- ldrsb r2, [r0, r2]
- ldrh r0, [r6, 0x20]
- adds r1, r0, r2
- subs r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x20
- ldrsh r2, [r5, r0]
- cmp r1, r2
- bge _081288E4
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, r2
- ble _081288E4
- adds r0, r5, 0
- adds r0, 0x29
- movs r3, 0
- ldrsb r3, [r0, r3]
- ldrh r2, [r5, 0x22]
- adds r2, r3
- ldrh r4, [r5, 0x22]
- adds r0, r6, 0
- adds r0, 0x29
- movs r1, 0
- ldrsb r1, [r0, r1]
- ldrh r0, [r6, 0x22]
- subs r0, r1
- lsls r0, 16
- asrs r0, 16
- adds r3, r0, r3
- lsls r2, 16
- asrs r2, 16
- lsls r3, 16
- asrs r3, 16
- cmp r2, r3
- blt _081288BC
- cmp r2, r0
- bge _081288E4
-_081288BC:
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, r3
- ble _081288E4
- adds r2, r6, 0
- adds r2, 0x43
- adds r0, r5, 0
- adds r0, 0x43
- ldrb r1, [r0]
- ldrb r0, [r2]
- cmp r0, r1
- bhi _081288E4
- adds r0, r1, 0x2
- strb r0, [r2]
- b _081288EE
- .align 2, 0
-_081288DC: .4byte gMapObjects
-_081288E0: .4byte gSprites
-_081288E4:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0xF
- bls _08128842
-_081288EE:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812882C
-
- thumb_func_start sub_81288F4
-sub_81288F4: @ 81288F4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _0812893C
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x44
- bl memset
- movs r3, 0x64
- adds r2, r4, 0
- movs r1, 0x3
- adds r0, r2, 0
- adds r0, 0x8
-_08128910:
- strb r3, [r0]
- subs r0, 0x1
- subs r1, 0x1
- cmp r1, 0
- bge _08128910
- adds r3, r2, 0
- adds r3, 0x41
- movs r1, 0
- strb r5, [r3]
- adds r0, r2, 0
- adds r0, 0x40
- strb r1, [r0]
- ldr r1, _08128940
- ldrb r0, [r3]
- lsls r0, 6
- adds r1, 0x18
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2, 0x14]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812893C: .4byte 0x020192e4
-_08128940: .4byte gUnknown_02038570
- thumb_func_end sub_81288F4
-
- thumb_func_start sub_8128944
-sub_8128944: @ 8128944
- push {r4-r6,lr}
- ldr r1, _081289A8
- ldr r0, [r1, 0x14]
- cmp r0, 0
- beq _08128974
- adds r4, r1, 0
- movs r5, 0
-_08128952:
- ldr r0, [r4, 0x14]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08128962
- strb r5, [r4]
- bl sub_81289AC
-_08128962:
- ldr r1, [r4, 0x14]
- lsrs r1, 1
- str r1, [r4, 0x14]
- ldrb r0, [r4, 0x10]
- adds r0, 0x1
- strb r0, [r4, 0x10]
- strb r5, [r4, 0x4]
- cmp r1, 0
- bne _08128952
-_08128974:
- movs r6, 0x3
- ldr r5, _081289A8
-_08128978:
- bl Random
- adds r4, r0, 0
- ands r4, r6
- adds r3, r5, 0x5
- adds r0, r4, r3
- ldrb r2, [r0]
- movs r1, 0
- ldrb r0, [r5, 0x5]
- cmp r2, r0
- bcc _0812899C
-_0812898E:
- adds r1, 0x1
- cmp r1, 0x3
- bgt _0812899C
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r2, r0
- bcs _0812898E
-_0812899C:
- cmp r1, 0x4
- bne _08128978
- adds r0, r4, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081289A8: .4byte 0x020192e4
- thumb_func_end sub_8128944
-
- thumb_func_start sub_81289AC
-sub_81289AC: @ 81289AC
- push {r4-r6,lr}
- ldr r1, _081289F4
- ldrb r0, [r1]
- adds r2, r1, 0
- cmp r0, 0x2
- beq _08128A76
- adds r4, r1, 0
- ldr r5, _081289F8
- ldr r6, _081289FC
-_081289BE:
- ldrb r0, [r4]
- cmp r0, 0x1
- beq _08128A0E
- cmp r0, 0x1
- bgt _08128A6E
- cmp r0, 0
- bne _08128A6E
- ldr r1, _08128A00
- ldrb r0, [r4, 0x10]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r5]
- ldrb r1, [r4, 0x4]
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r1, r6
- ldrh r1, [r1]
- adds r0, r1, 0
- cmp r0, 0
- bne _08128A04
- strh r0, [r4, 0x2]
- b _08128A06
- .align 2, 0
-_081289F4: .4byte 0x020192e4
-_081289F8: .4byte gUnknown_02039238
-_081289FC: .4byte gUnknown_0203858E
-_08128A00: .4byte gContestAIs
-_08128A04:
- strh r1, [r4, 0x2]
-_08128A06:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _08128A6E
-_08128A0E:
- ldrh r1, [r1, 0x2]
- cmp r1, 0
- beq _08128A2C
- ldr r1, _08128A28
- ldr r0, [r5]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- b _08128A3C
- .align 2, 0
-_08128A28: .4byte gUnknown_08401E60
-_08128A2C:
- adds r0, r4, 0x5
- ldrb r2, [r4, 0x4]
- adds r0, r2
- strb r1, [r0]
- ldrb r1, [r4, 0x9]
- movs r0, 0x1
- orrs r0, r1
- strb r0, [r4, 0x9]
-_08128A3C:
- ldr r2, _08128A5C
- ldrb r1, [r2, 0x9]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08128A6E
- ldrb r0, [r2, 0x4]
- adds r0, 0x1
- movs r1, 0
- strb r0, [r2, 0x4]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bhi _08128A60
- strb r1, [r2]
- b _08128A66
- .align 2, 0
-_08128A5C: .4byte 0x020192e4
-_08128A60:
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
-_08128A66:
- ldrb r1, [r4, 0x9]
- movs r0, 0xFE
- ands r0, r1
- strb r0, [r4, 0x9]
-_08128A6E:
- adds r1, r2, 0
- ldrb r0, [r1]
- cmp r0, 0x2
- bne _081289BE
-_08128A76:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_81289AC
-
- thumb_func_start sub_8128A7C
-sub_8128A7C: @ 8128A7C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r3, _08128AA4
- ldrb r0, [r3]
- cmp r0, r2
- beq _08128A9A
-_08128A8C:
- adds r1, 0x1
- cmp r1, 0x3
- bgt _08128A9A
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _08128A8C
-_08128A9A:
- lsls r0, r1, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08128AA4: .4byte 0x020192d0
- thumb_func_end sub_8128A7C
-
- thumb_func_start sub_8128AA8
-sub_8128AA8: @ 8128AA8
- push {lr}
- ldr r2, _08128AD0
- adds r1, r2, 0x5
- ldrb r0, [r2, 0x4]
- adds r1, r0
- ldr r3, _08128AD4
- ldr r0, [r3]
- ldrb r0, [r0, 0x1]
- lsls r0, 24
- asrs r0, 24
- ldrb r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _08128AD8
- movs r1, 0xFF
- b _08128ADE
- .align 2, 0
-_08128AD0: .4byte 0x020192e4
-_08128AD4: .4byte gUnknown_02039238
-_08128AD8:
- cmp r0, 0
- bge _08128ADE
- movs r1, 0
-_08128ADE:
- adds r0, r2, 0x5
- ldrb r2, [r2, 0x4]
- adds r0, r2
- strb r1, [r0]
- ldr r0, [r3]
- adds r0, 0x2
- str r0, [r3]
- pop {r0}
- bx r0
- thumb_func_end sub_8128AA8
-
- thumb_func_start contest_ai_get_turn
-contest_ai_get_turn: @ 8128AF0
- ldr r1, _08128B04
- adds r0, r1, 0
- subs r0, 0xE0
- ldrb r0, [r0, 0x1]
- strh r0, [r1, 0x18]
- ldr r1, _08128B08
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08128B04: .4byte 0x020192e4
-_08128B08: .4byte gUnknown_02039238
- thumb_func_end contest_ai_get_turn
-
- thumb_func_start sub_8128B0C
-sub_8128B0C: @ 8128B0C
- push {lr}
- bl contest_ai_get_turn
- ldr r0, _08128B3C
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128B40
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08128B44
- 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 _08128B48
- .align 2, 0
-_08128B3C: .4byte 0x020192e4
-_08128B40: .4byte gUnknown_02039238
-_08128B44:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128B48:
- pop {r0}
- bx r0
- thumb_func_end sub_8128B0C
-
- thumb_func_start sub_8128B4C
-sub_8128B4C: @ 8128B4C
- push {lr}
- bl contest_ai_get_turn
- ldr r0, _08128B7C
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128B80
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08128B84
- 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 _08128B88
- .align 2, 0
-_08128B7C: .4byte 0x020192e4
-_08128B80: .4byte gUnknown_02039238
-_08128B84:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128B88:
- pop {r0}
- bx r0
- thumb_func_end sub_8128B4C
-
- thumb_func_start sub_8128B8C
-sub_8128B8C: @ 8128B8C
- push {lr}
- bl contest_ai_get_turn
- ldr r0, _08128BBC
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128BC0
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08128BC4
- 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 _08128BC8
- .align 2, 0
-_08128BBC: .4byte 0x020192e4
-_08128BC0: .4byte gUnknown_02039238
-_08128BC4:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128BC8:
- pop {r0}
- bx r0
- thumb_func_end sub_8128B8C
-
- thumb_func_start sub_8128BCC
-sub_8128BCC: @ 8128BCC
- push {lr}
- bl contest_ai_get_turn
- ldr r0, _08128BFC
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128C00
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _08128C04
- 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 _08128C08
- .align 2, 0
-_08128BFC: .4byte 0x020192e4
-_08128C00: .4byte gUnknown_02039238
-_08128C04:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128C08:
- pop {r0}
- bx r0
- thumb_func_end sub_8128BCC
-
- thumb_func_start contest_ai_get_excitement
-contest_ai_get_excitement: @ 8128C0C
- ldr r1, _08128C24
- adds r0, r1, 0
- subs r0, 0xE0
- ldrb r0, [r0, 0x13]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r1, 0x18]
- ldr r1, _08128C28
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08128C24: .4byte 0x020192e4
-_08128C28: .4byte gUnknown_02039238
- thumb_func_end contest_ai_get_excitement
-
- thumb_func_start sub_8128C2C
-sub_8128C2C: @ 8128C2C
- push {lr}
- bl contest_ai_get_excitement
- ldr r0, _08128C5C
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128C60
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08128C64
- 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 _08128C68
- .align 2, 0
-_08128C5C: .4byte 0x020192e4
-_08128C60: .4byte gUnknown_02039238
-_08128C64:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128C68:
- pop {r0}
- bx r0
- thumb_func_end sub_8128C2C
-
- thumb_func_start sub_8128C6C
-sub_8128C6C: @ 8128C6C
- push {lr}
- bl contest_ai_get_excitement
- ldr r0, _08128C9C
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128CA0
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08128CA4
- 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 _08128CA8
- .align 2, 0
-_08128C9C: .4byte 0x020192e4
-_08128CA0: .4byte gUnknown_02039238
-_08128CA4:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128CA8:
- pop {r0}
- bx r0
- thumb_func_end sub_8128C6C
-
- thumb_func_start sub_8128CAC
-sub_8128CAC: @ 8128CAC
- push {lr}
- bl contest_ai_get_excitement
- ldr r0, _08128CDC
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128CE0
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08128CE4
- 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 _08128CE8
- .align 2, 0
-_08128CDC: .4byte 0x020192e4
-_08128CE0: .4byte gUnknown_02039238
-_08128CE4:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128CE8:
- pop {r0}
- bx r0
- thumb_func_end sub_8128CAC
-
- thumb_func_start sub_8128CEC
-sub_8128CEC: @ 8128CEC
- push {lr}
- bl contest_ai_get_excitement
- ldr r0, _08128D1C
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128D20
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _08128D24
- 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 _08128D28
- .align 2, 0
-_08128D1C: .4byte 0x020192e4
-_08128D20: .4byte gUnknown_02039238
-_08128D24:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128D28:
- pop {r0}
- bx r0
- thumb_func_end sub_8128CEC
-
- thumb_func_start contest_ai_get_user_order
-contest_ai_get_user_order: @ 8128D2C
- ldr r1, _08128D48
- adds r2, r1, 0
- adds r2, 0x41
- adds r0, r1, 0
- subs r0, 0x14
- ldrb r2, [r2]
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r1, 0x18]
- ldr r1, _08128D4C
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08128D48: .4byte 0x020192e4
-_08128D4C: .4byte gUnknown_02039238
- thumb_func_end contest_ai_get_user_order
-
- thumb_func_start sub_8128D50
-sub_8128D50: @ 8128D50
- push {lr}
- bl contest_ai_get_user_order
- ldr r0, _08128D80
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128D84
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08128D88
- 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 _08128D8C
- .align 2, 0
-_08128D80: .4byte 0x020192e4
-_08128D84: .4byte gUnknown_02039238
-_08128D88:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128D8C:
- pop {r0}
- bx r0
- thumb_func_end sub_8128D50
-
- thumb_func_start sub_8128D90
-sub_8128D90: @ 8128D90
- push {lr}
- bl contest_ai_get_user_order
- ldr r0, _08128DC0
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128DC4
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08128DC8
- 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 _08128DCC
- .align 2, 0
-_08128DC0: .4byte 0x020192e4
-_08128DC4: .4byte gUnknown_02039238
-_08128DC8:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128DCC:
- pop {r0}
- bx r0
- thumb_func_end sub_8128D90
-
- thumb_func_start sub_8128DD0
-sub_8128DD0: @ 8128DD0
- push {lr}
- bl contest_ai_get_user_order
- ldr r0, _08128E00
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128E04
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08128E08
- 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 _08128E0C
- .align 2, 0
-_08128E00: .4byte 0x020192e4
-_08128E04: .4byte gUnknown_02039238
-_08128E08:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128E0C:
- pop {r0}
- bx r0
- thumb_func_end sub_8128DD0
-
- thumb_func_start sub_8128E10
-sub_8128E10: @ 8128E10
- push {lr}
- bl contest_ai_get_user_order
- ldr r0, _08128E40
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128E44
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _08128E48
- 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 _08128E4C
- .align 2, 0
-_08128E40: .4byte 0x020192e4
-_08128E44: .4byte gUnknown_02039238
-_08128E48:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128E4C:
- pop {r0}
- bx r0
- thumb_func_end sub_8128E10
-
- thumb_func_start contest_ai_get_user_condition_maybe
-contest_ai_get_user_condition_maybe: @ 8128E50
- push {r4,lr}
- ldr r4, _08128E88
- adds r0, r4, 0
- adds r0, 0x41
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r4, 0
- subs r1, 0x84
- adds r0, r1
- ldrb r0, [r0, 0xD]
- lsls r0, 24
- asrs r0, 24
- movs r1, 0xA
- bl __divsi3
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x18]
- ldr r1, _08128E8C
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08128E88: .4byte 0x020192e4
-_08128E8C: .4byte gUnknown_02039238
- thumb_func_end contest_ai_get_user_condition_maybe
-
- thumb_func_start sub_8128E90
-sub_8128E90: @ 8128E90
- push {lr}
- bl contest_ai_get_user_condition_maybe
- ldr r0, _08128EC0
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128EC4
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08128EC8
- 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 _08128ECC
- .align 2, 0
-_08128EC0: .4byte 0x020192e4
-_08128EC4: .4byte gUnknown_02039238
-_08128EC8:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128ECC:
- pop {r0}
- bx r0
- thumb_func_end sub_8128E90
-
- thumb_func_start sub_8128ED0
-sub_8128ED0: @ 8128ED0
- push {lr}
- bl contest_ai_get_user_condition_maybe
- ldr r0, _08128F00
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128F04
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08128F08
- 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 _08128F0C
- .align 2, 0
-_08128F00: .4byte 0x020192e4
-_08128F04: .4byte gUnknown_02039238
-_08128F08:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128F0C:
- pop {r0}
- bx r0
- thumb_func_end sub_8128ED0
-
- thumb_func_start sub_8128F10
-sub_8128F10: @ 8128F10
- push {lr}
- bl contest_ai_get_user_condition_maybe
- ldr r0, _08128F40
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128F44
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08128F48
- 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 _08128F4C
- .align 2, 0
-_08128F40: .4byte 0x020192e4
-_08128F44: .4byte gUnknown_02039238
-_08128F48:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128F4C:
- pop {r0}
- bx r0
- thumb_func_end sub_8128F10
-
- thumb_func_start sub_8128F50
-sub_8128F50: @ 8128F50
- push {lr}
- bl contest_ai_get_user_condition_maybe
- ldr r0, _08128F80
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08128F84
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _08128F88
- 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 _08128F8C
- .align 2, 0
-_08128F80: .4byte 0x020192e4
-_08128F84: .4byte gUnknown_02039238
-_08128F88:
- adds r0, r2, 0x5
- str r0, [r3]
-_08128F8C:
- pop {r0}
- bx r0
- thumb_func_end sub_8128F50
-
- thumb_func_start sub_8128F90
-sub_8128F90: @ 8128F90
- ldr r2, _08128FB4
- adds r0, r2, 0
- adds r0, 0x41
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r2, 0
- subs r1, 0x84
- adds r0, r1
- ldrh r0, [r0, 0x4]
- strh r0, [r2, 0x18]
- ldr r1, _08128FB8
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08128FB4: .4byte 0x020192e4
-_08128FB8: .4byte gUnknown_02039238
- thumb_func_end sub_8128F90
-
- thumb_func_start sub_8128FBC
-sub_8128FBC: @ 8128FBC
- push {r4,r5,lr}
- bl sub_8128F90
- ldr r2, _08128FF4
- ldr r4, _08128FF8
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- bge _08128FFC
- 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 _08129000
- .align 2, 0
-_08128FF4: .4byte 0x020192e4
-_08128FF8: .4byte gUnknown_02039238
-_08128FFC:
- adds r0, r3, 0x6
- str r0, [r4]
-_08129000:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8128FBC
-
- thumb_func_start sub_8129008
-sub_8129008: @ 8129008
- push {r4,r5,lr}
- bl sub_8128F90
- ldr r2, _08129040
- ldr r4, _08129044
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- ble _08129048
- 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 _0812904C
- .align 2, 0
-_08129040: .4byte 0x020192e4
-_08129044: .4byte gUnknown_02039238
-_08129048:
- adds r0, r3, 0x6
- str r0, [r4]
-_0812904C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8129008
-
- thumb_func_start sub_8129054
-sub_8129054: @ 8129054
- push {r4,r5,lr}
- bl sub_8128F90
- ldr r2, _0812908C
- ldr r4, _08129090
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- bne _08129094
- 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 _08129098
- .align 2, 0
-_0812908C: .4byte 0x020192e4
-_08129090: .4byte gUnknown_02039238
-_08129094:
- adds r0, r3, 0x6
- str r0, [r4]
-_08129098:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8129054
-
- thumb_func_start sub_81290A0
-sub_81290A0: @ 81290A0
- push {r4,r5,lr}
- bl sub_8128F90
- ldr r2, _081290D8
- ldr r4, _081290DC
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- beq _081290E0
- 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 _081290E4
- .align 2, 0
-_081290D8: .4byte 0x020192e4
-_081290DC: .4byte gUnknown_02039238
-_081290E0:
- adds r0, r3, 0x6
- str r0, [r4]
-_081290E4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81290A0
-
- thumb_func_start sub_81290EC
-sub_81290EC: @ 81290EC
- ldr r2, _08129108
- ldr r1, _0812910C
- adds r0, r2, 0
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2, 0x18]
- ldr r1, _08129110
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08129108: .4byte 0x020192e4
-_0812910C: .4byte gUnknown_02038670
-_08129110: .4byte gUnknown_02039238
- thumb_func_end sub_81290EC
-
- thumb_func_start sub_8129114
-sub_8129114: @ 8129114
- push {r4,r5,lr}
- bl sub_81290EC
- ldr r2, _0812914C
- ldr r4, _08129150
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- bge _08129154
- 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 _08129158
- .align 2, 0
-_0812914C: .4byte 0x020192e4
-_08129150: .4byte gUnknown_02039238
-_08129154:
- adds r0, r3, 0x6
- str r0, [r4]
-_08129158:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8129114
-
- thumb_func_start sub_8129160
-sub_8129160: @ 8129160
- push {r4,r5,lr}
- bl sub_81290EC
- ldr r2, _08129198
- ldr r4, _0812919C
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- ble _081291A0
- 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 _081291A4
- .align 2, 0
-_08129198: .4byte 0x020192e4
-_0812919C: .4byte gUnknown_02039238
-_081291A0:
- adds r0, r3, 0x6
- str r0, [r4]
-_081291A4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8129160
-
- thumb_func_start sub_81291AC
-sub_81291AC: @ 81291AC
- push {r4,r5,lr}
- bl sub_81290EC
- ldr r2, _081291E4
- ldr r4, _081291E8
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- bne _081291EC
- 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 _081291F0
- .align 2, 0
-_081291E4: .4byte 0x020192e4
-_081291E8: .4byte gUnknown_02039238
-_081291EC:
- adds r0, r3, 0x6
- str r0, [r4]
-_081291F0:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81291AC
-
- thumb_func_start sub_81291F8
-sub_81291F8: @ 81291F8
- push {r4,r5,lr}
- bl sub_81290EC
- ldr r2, _08129230
- ldr r4, _08129234
- ldr r3, [r4]
- ldrb r1, [r3]
- ldrb r0, [r3, 0x1]
- lsls r0, 8
- orrs r1, r0
- movs r5, 0x18
- ldrsh r0, [r2, r5]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- beq _08129238
- 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 _0812923C
- .align 2, 0
-_08129230: .4byte 0x020192e4
-_08129234: .4byte gUnknown_02039238
-_08129238:
- adds r0, r3, 0x6
- str r0, [r4]
-_0812923C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81291F8
-
- thumb_func_start contest_ai_get_contest_type
-contest_ai_get_contest_type: @ 8129244
- ldr r1, _08129258
- ldr r0, _0812925C
- ldrh r0, [r0]
- strh r0, [r1, 0x18]
- ldr r1, _08129260
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08129258: .4byte 0x020192e4
-_0812925C: .4byte gUnknown_0203869C
-_08129260: .4byte gUnknown_02039238
- thumb_func_end contest_ai_get_contest_type
-
- thumb_func_start sub_8129264
-sub_8129264: @ 8129264
- push {lr}
- bl contest_ai_get_contest_type
- ldr r0, _08129294
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129298
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _0812929C
- 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 _081292A0
- .align 2, 0
-_08129294: .4byte 0x020192e4
-_08129298: .4byte gUnknown_02039238
-_0812929C:
- adds r0, r2, 0x5
- str r0, [r3]
-_081292A0:
- pop {r0}
- bx r0
- thumb_func_end sub_8129264
-
- thumb_func_start sub_81292A4
-sub_81292A4: @ 81292A4
- push {lr}
- bl contest_ai_get_contest_type
- ldr r0, _081292D4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _081292D8
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _081292DC
- 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 _081292E0
- .align 2, 0
-_081292D4: .4byte 0x020192e4
-_081292D8: .4byte gUnknown_02039238
-_081292DC:
- adds r0, r2, 0x5
- str r0, [r3]
-_081292E0:
- pop {r0}
- bx r0
- thumb_func_end sub_81292A4
-
- thumb_func_start contest_ai_get_move_excitement
-contest_ai_get_move_excitement: @ 81292E4
- push {r4,lr}
- ldr r2, _08129318
- ldr r4, _0812931C
- ldrb r1, [r4, 0x4]
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r2, 0x1E
- adds r1, r2
- ldrh r0, [r1]
- bl contest_get_move_excitement
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x18]
- ldr r1, _08129320
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08129318: .4byte gUnknown_02038570
-_0812931C: .4byte 0x020192e4
-_08129320: .4byte gUnknown_02039238
- thumb_func_end contest_ai_get_move_excitement
-
- thumb_func_start sub_8129324
-sub_8129324: @ 8129324
- push {r4,lr}
- bl contest_ai_get_move_excitement
- ldr r0, _08129354
- ldr r3, _08129358
- ldr r2, [r3]
- movs r4, 0x18
- ldrsh r1, [r0, r4]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- bge _0812935C
- 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 _08129360
- .align 2, 0
-_08129354: .4byte 0x020192e4
-_08129358: .4byte gUnknown_02039238
-_0812935C:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129360:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8129324
-
- thumb_func_start sub_8129368
-sub_8129368: @ 8129368
- push {r4,lr}
- bl contest_ai_get_move_excitement
- ldr r0, _08129398
- ldr r3, _0812939C
- ldr r2, [r3]
- movs r4, 0x18
- ldrsh r1, [r0, r4]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- ble _081293A0
- 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 _081293A4
- .align 2, 0
-_08129398: .4byte 0x020192e4
-_0812939C: .4byte gUnknown_02039238
-_081293A0:
- adds r0, r2, 0x5
- str r0, [r3]
-_081293A4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8129368
-
- thumb_func_start sub_81293AC
-sub_81293AC: @ 81293AC
- push {r4,lr}
- bl contest_ai_get_move_excitement
- ldr r0, _081293DC
- ldr r3, _081293E0
- ldr r2, [r3]
- movs r4, 0x18
- ldrsh r1, [r0, r4]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- bne _081293E4
- 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 _081293E8
- .align 2, 0
-_081293DC: .4byte 0x020192e4
-_081293E0: .4byte gUnknown_02039238
-_081293E4:
- adds r0, r2, 0x5
- str r0, [r3]
-_081293E8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81293AC
-
- thumb_func_start sub_81293F0
-sub_81293F0: @ 81293F0
- push {r4,lr}
- bl contest_ai_get_move_excitement
- ldr r0, _08129420
- ldr r3, _08129424
- ldr r2, [r3]
- movs r4, 0x18
- ldrsh r1, [r0, r4]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- beq _08129428
- 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 _0812942C
- .align 2, 0
-_08129420: .4byte 0x020192e4
-_08129424: .4byte gUnknown_02039238
-_08129428:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812942C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81293F0
-
- thumb_func_start contest_ai_get_move_effect
-contest_ai_get_move_effect: @ 8129434
- ldr r2, _08129460
- ldr r3, _08129464
- ldrb r1, [r3, 0x4]
- lsls r1, 1
- adds r0, r3, 0
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r2, 0x1E
- adds r1, r2
- ldrh r0, [r1]
- ldr r1, _08129468
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r3, 0x18]
- ldr r1, _0812946C
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08129460: .4byte gUnknown_02038570
-_08129464: .4byte 0x020192e4
-_08129468: .4byte gContestMoves
-_0812946C: .4byte gUnknown_02039238
- thumb_func_end contest_ai_get_move_effect
-
- thumb_func_start sub_8129470
-sub_8129470: @ 8129470
- push {lr}
- bl contest_ai_get_move_effect
- ldr r0, _081294A0
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _081294A4
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _081294A8
- 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 _081294AC
- .align 2, 0
-_081294A0: .4byte 0x020192e4
-_081294A4: .4byte gUnknown_02039238
-_081294A8:
- adds r0, r2, 0x5
- str r0, [r3]
-_081294AC:
- pop {r0}
- bx r0
- thumb_func_end sub_8129470
-
- thumb_func_start sub_81294B0
-sub_81294B0: @ 81294B0
- push {lr}
- bl contest_ai_get_move_effect
- ldr r0, _081294E0
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _081294E4
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _081294E8
- 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 _081294EC
- .align 2, 0
-_081294E0: .4byte 0x020192e4
-_081294E4: .4byte gUnknown_02039238
-_081294E8:
- adds r0, r2, 0x5
- str r0, [r3]
-_081294EC:
- pop {r0}
- bx r0
- thumb_func_end sub_81294B0
-
- thumb_func_start contest_ai_get_move_effect_type
-contest_ai_get_move_effect_type: @ 81294F0
- ldr r2, _08129524
- ldr r3, _08129528
- ldrb r1, [r3, 0x4]
- lsls r1, 1
- adds r0, r3, 0
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r2, 0x1E
- adds r1, r2
- ldrh r0, [r1]
- ldr r2, _0812952C
- ldr r1, _08129530
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r3, 0x18]
- ldr r1, _08129534
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08129524: .4byte gUnknown_02038570
-_08129528: .4byte 0x020192e4
-_0812952C: .4byte gContestEffects
-_08129530: .4byte gContestMoves
-_08129534: .4byte gUnknown_02039238
- thumb_func_end contest_ai_get_move_effect_type
-
- thumb_func_start sub_8129538
-sub_8129538: @ 8129538
- push {lr}
- bl contest_ai_get_move_effect_type
- ldr r0, _08129568
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812956C
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08129570
- 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 _08129574
- .align 2, 0
-_08129568: .4byte 0x020192e4
-_0812956C: .4byte gUnknown_02039238
-_08129570:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129574:
- pop {r0}
- bx r0
- thumb_func_end sub_8129538
-
- thumb_func_start sub_8129578
-sub_8129578: @ 8129578
- push {lr}
- bl contest_ai_get_move_effect_type
- ldr r0, _081295A8
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _081295AC
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _081295B0
- 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 _081295B4
- .align 2, 0
-_081295A8: .4byte 0x020192e4
-_081295AC: .4byte gUnknown_02039238
-_081295B0:
- adds r0, r2, 0x5
- str r0, [r3]
-_081295B4:
- pop {r0}
- bx r0
- thumb_func_end sub_8129578
-
- thumb_func_start contest_ai_check_move_has_highest_appeal
-contest_ai_check_move_has_highest_appeal: @ 81295B8
- push {r4-r7,lr}
- ldr r2, _08129610
- ldr r3, _08129614
- ldrb r0, [r3, 0x4]
- lsls r0, 1
- adds r1, r3, 0
- adds r1, 0x41
- ldrb r1, [r1]
- lsls r1, 6
- adds r0, r1
- adds r2, 0x1E
- adds r0, r2
- ldrh r0, [r0]
- ldr r4, _08129618
- ldr r5, _0812961C
- lsls r0, 3
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldrb r7, [r0, 0x1]
- movs r6, 0
- ldr r0, _08129620
- mov r12, r0
- adds r1, r2
-_081295EA:
- ldrh r0, [r1]
- cmp r0, 0
- beq _08129600
- lsls r0, 3
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x1]
- cmp r7, r0
- bcc _08129608
-_08129600:
- adds r1, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _081295EA
-_08129608:
- cmp r6, 0x4
- bne _08129624
- movs r0, 0x1
- b _08129626
- .align 2, 0
-_08129610: .4byte gUnknown_02038570
-_08129614: .4byte 0x020192e4
-_08129618: .4byte gContestEffects
-_0812961C: .4byte gContestMoves
-_08129620: .4byte gUnknown_02039238
-_08129624:
- movs r0, 0
-_08129626:
- strh r0, [r3, 0x18]
- mov r1, r12
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end contest_ai_check_move_has_highest_appeal
-
- thumb_func_start sub_8129638
-sub_8129638: @ 8129638
- push {lr}
- bl contest_ai_check_move_has_highest_appeal
- ldr r0, _08129664
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0812966C
- ldr r3, _08129668
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129674
- .align 2, 0
-_08129664: .4byte 0x020192e4
-_08129668: .4byte gUnknown_02039238
-_0812966C:
- ldr r1, _08129678
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_08129674:
- pop {r0}
- bx r0
- .align 2, 0
-_08129678: .4byte gUnknown_02039238
- thumb_func_end sub_8129638
-
- thumb_func_start sub_812967C
-sub_812967C: @ 812967C
- push {r4-r7,lr}
- ldr r2, _081296D4
- ldr r3, _081296D8
- ldrb r0, [r3, 0x4]
- lsls r0, 1
- adds r1, r3, 0
- adds r1, 0x41
- ldrb r1, [r1]
- lsls r1, 6
- adds r0, r1
- adds r2, 0x1E
- adds r0, r2
- ldrh r0, [r0]
- ldr r4, _081296DC
- ldr r5, _081296E0
- lsls r0, 3
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldrb r7, [r0, 0x2]
- movs r6, 0
- ldr r0, _081296E4
- mov r12, r0
- adds r1, r2
-_081296AE:
- ldrh r0, [r1]
- cmp r0, 0
- beq _081296C4
- lsls r0, 3
- adds r0, r5
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x2]
- cmp r7, r0
- bcc _081296CC
-_081296C4:
- adds r1, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _081296AE
-_081296CC:
- cmp r6, 0x4
- bne _081296E8
- movs r0, 0x1
- b _081296EA
- .align 2, 0
-_081296D4: .4byte gUnknown_02038570
-_081296D8: .4byte 0x020192e4
-_081296DC: .4byte gContestEffects
-_081296E0: .4byte gContestMoves
-_081296E4: .4byte gUnknown_02039238
-_081296E8:
- movs r0, 0
-_081296EA:
- strh r0, [r3, 0x18]
- mov r1, r12
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812967C
-
- thumb_func_start sub_81296FC
-sub_81296FC: @ 81296FC
- push {lr}
- bl sub_812967C
- ldr r0, _08129728
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08129730
- ldr r3, _0812972C
- 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 _08129738
- .align 2, 0
-_08129728: .4byte 0x020192e4
-_0812972C: .4byte gUnknown_02039238
-_08129730:
- ldr r1, _0812973C
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08129738:
- pop {r0}
- bx r0
- .align 2, 0
-_0812973C: .4byte gUnknown_02039238
- thumb_func_end sub_81296FC
-
- thumb_func_start sub_8129740
-sub_8129740: @ 8129740
- push {r4,lr}
- ldr r2, _08129784
- ldr r4, _08129788
- ldrb r1, [r4, 0x4]
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r2, 0x1E
- adds r1, r2
- ldrh r0, [r1]
- ldr r2, _0812978C
- ldr r1, _08129790
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x18]
- ldr r1, _08129794
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08129784: .4byte gUnknown_02038570
-_08129788: .4byte 0x020192e4
-_0812978C: .4byte gContestEffects
-_08129790: .4byte gContestMoves
-_08129794: .4byte gUnknown_02039238
- thumb_func_end sub_8129740
-
- thumb_func_start sub_8129798
-sub_8129798: @ 8129798
- push {lr}
- bl sub_8129740
- ldr r0, _081297C8
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _081297CC
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _081297D0
- 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 _081297D4
- .align 2, 0
-_081297C8: .4byte 0x020192e4
-_081297CC: .4byte gUnknown_02039238
-_081297D0:
- adds r0, r2, 0x5
- str r0, [r3]
-_081297D4:
- pop {r0}
- bx r0
- thumb_func_end sub_8129798
-
- thumb_func_start sub_81297D8
-sub_81297D8: @ 81297D8
- push {lr}
- bl sub_8129740
- ldr r0, _08129808
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812980C
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08129810
- 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 _08129814
- .align 2, 0
-_08129808: .4byte 0x020192e4
-_0812980C: .4byte gUnknown_02039238
-_08129810:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129814:
- pop {r0}
- bx r0
- thumb_func_end sub_81297D8
-
- thumb_func_start sub_8129818
-sub_8129818: @ 8129818
- push {lr}
- bl sub_8129740
- ldr r0, _08129848
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812984C
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08129850
- 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 _08129854
- .align 2, 0
-_08129848: .4byte 0x020192e4
-_0812984C: .4byte gUnknown_02039238
-_08129850:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129854:
- pop {r0}
- bx r0
- thumb_func_end sub_8129818
-
- thumb_func_start sub_8129858
-sub_8129858: @ 8129858
- push {lr}
- bl sub_8129740
- ldr r0, _08129888
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812988C
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _08129890
- 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 _08129894
- .align 2, 0
-_08129888: .4byte 0x020192e4
-_0812988C: .4byte gUnknown_02039238
-_08129890:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129894:
- pop {r0}
- bx r0
- thumb_func_end sub_8129858
-
- thumb_func_start sub_8129898
-sub_8129898: @ 8129898
- push {r4,lr}
- ldr r2, _081298DC
- ldr r4, _081298E0
- ldrb r1, [r4, 0x4]
- lsls r1, 1
- adds r0, r4, 0
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r2, 0x1E
- adds r1, r2
- ldrh r0, [r1]
- ldr r2, _081298E4
- ldr r1, _081298E8
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x18]
- ldr r1, _081298EC
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081298DC: .4byte gUnknown_02038570
-_081298E0: .4byte 0x020192e4
-_081298E4: .4byte gContestEffects
-_081298E8: .4byte gContestMoves
-_081298EC: .4byte gUnknown_02039238
- thumb_func_end sub_8129898
-
- thumb_func_start sub_81298F0
-sub_81298F0: @ 81298F0
- push {lr}
- bl sub_8129898
- ldr r0, _08129920
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129924
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08129928
- 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 _0812992C
- .align 2, 0
-_08129920: .4byte 0x020192e4
-_08129924: .4byte gUnknown_02039238
-_08129928:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812992C:
- pop {r0}
- bx r0
- thumb_func_end sub_81298F0
-
- thumb_func_start sub_8129930
-sub_8129930: @ 8129930
- push {lr}
- bl sub_8129898
- ldr r0, _08129960
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129964
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08129968
- 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 _0812996C
- .align 2, 0
-_08129960: .4byte 0x020192e4
-_08129964: .4byte gUnknown_02039238
-_08129968:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812996C:
- pop {r0}
- bx r0
- thumb_func_end sub_8129930
-
- thumb_func_start sub_8129970
-sub_8129970: @ 8129970
- push {lr}
- bl sub_8129898
- ldr r0, _081299A0
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _081299A4
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _081299A8
- 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 _081299AC
- .align 2, 0
-_081299A0: .4byte 0x020192e4
-_081299A4: .4byte gUnknown_02039238
-_081299A8:
- adds r0, r2, 0x5
- str r0, [r3]
-_081299AC:
- pop {r0}
- bx r0
- thumb_func_end sub_8129970
-
- thumb_func_start sub_81299B0
-sub_81299B0: @ 81299B0
- push {lr}
- bl sub_8129898
- ldr r0, _081299E0
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _081299E4
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _081299E8
- 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 _081299EC
- .align 2, 0
-_081299E0: .4byte 0x020192e4
-_081299E4: .4byte gUnknown_02039238
-_081299E8:
- adds r0, r2, 0x5
- str r0, [r3]
-_081299EC:
- pop {r0}
- bx r0
- thumb_func_end sub_81299B0
-
- thumb_func_start contest_ai_get_move_used_count
-contest_ai_get_move_used_count: @ 81299F0
- push {r4,lr}
- ldr r3, _08129A20
- ldr r4, _08129A24
- ldrb r0, [r4, 0x4]
- lsls r0, 1
- adds r1, r4, 0
- adds r1, 0x41
- ldrb r2, [r1]
- lsls r1, r2, 6
- adds r0, r1
- adds r3, 0x1E
- adds r0, r3
- ldrh r3, [r0]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r1, r4, 0
- subs r1, 0x84
- adds r0, r1
- ldrh r1, [r0, 0x8]
- cmp r3, r1
- beq _08129A28
- movs r0, 0
- b _08129A30
- .align 2, 0
-_08129A20: .4byte gUnknown_02038570
-_08129A24: .4byte 0x020192e4
-_08129A28:
- ldrb r0, [r0, 0xB]
- lsls r0, 25
- lsrs r0, 29
- adds r0, 0x1
-_08129A30:
- strh r0, [r4, 0x18]
- ldr r1, _08129A40
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08129A40: .4byte gUnknown_02039238
- thumb_func_end contest_ai_get_move_used_count
-
- thumb_func_start sub_8129A44
-sub_8129A44: @ 8129A44
- push {lr}
- bl contest_ai_get_move_used_count
- ldr r0, _08129A74
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129A78
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08129A7C
- 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 _08129A80
- .align 2, 0
-_08129A74: .4byte 0x020192e4
-_08129A78: .4byte gUnknown_02039238
-_08129A7C:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129A80:
- pop {r0}
- bx r0
- thumb_func_end sub_8129A44
-
- thumb_func_start sub_8129A84
-sub_8129A84: @ 8129A84
- push {lr}
- bl contest_ai_get_move_used_count
- ldr r0, _08129AB4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129AB8
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08129ABC
- 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 _08129AC0
- .align 2, 0
-_08129AB4: .4byte 0x020192e4
-_08129AB8: .4byte gUnknown_02039238
-_08129ABC:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129AC0:
- pop {r0}
- bx r0
- thumb_func_end sub_8129A84
-
- thumb_func_start sub_8129AC4
-sub_8129AC4: @ 8129AC4
- push {lr}
- bl contest_ai_get_move_used_count
- ldr r0, _08129AF4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129AF8
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08129AFC
- 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 _08129B00
- .align 2, 0
-_08129AF4: .4byte 0x020192e4
-_08129AF8: .4byte gUnknown_02039238
-_08129AFC:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129B00:
- pop {r0}
- bx r0
- thumb_func_end sub_8129AC4
-
- thumb_func_start sub_8129B04
-sub_8129B04: @ 8129B04
- push {lr}
- bl contest_ai_get_move_used_count
- ldr r0, _08129B34
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129B38
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _08129B3C
- 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 _08129B40
- .align 2, 0
-_08129B34: .4byte 0x020192e4
-_08129B38: .4byte gUnknown_02039238
-_08129B3C:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129B40:
- pop {r0}
- bx r0
- thumb_func_end sub_8129B04
-
- thumb_func_start contest_ai_check_combo_starter
-contest_ai_check_combo_starter: @ 8129B44
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r5, 0
- ldr r3, _08129BAC
- ldr r2, _08129BB0
- ldrb r1, [r2, 0x4]
- lsls r1, 1
- adds r2, 0x41
- ldrb r0, [r2]
- lsls r0, 6
- adds r1, r0
- adds r3, 0x1E
- adds r1, r3
- ldrh r6, [r1]
- movs r4, 0
- mov r8, r2
- adds r7, r3, 0
-_08129B68:
- lsls r0, r4, 1
- mov r2, r8
- ldrb r1, [r2]
- lsls r1, 6
- adds r0, r1
- adds r1, r0, r7
- ldrh r0, [r1]
- cmp r0, 0
- beq _08129B8A
- adds r1, r0, 0
- adds r0, r6, 0
- bl AreMovesContestCombo
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08129B94
-_08129B8A:
- adds r4, 0x1
- cmp r4, 0x3
- ble _08129B68
- cmp r5, 0
- beq _08129B96
-_08129B94:
- movs r5, 0x1
-_08129B96:
- ldr r0, _08129BB0
- strh r5, [r0, 0x18]
- ldr r1, _08129BB4
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08129BAC: .4byte gUnknown_02038570
-_08129BB0: .4byte 0x020192e4
-_08129BB4: .4byte gUnknown_02039238
- thumb_func_end contest_ai_check_combo_starter
-
- thumb_func_start sub_8129BB8
-sub_8129BB8: @ 8129BB8
- push {lr}
- bl contest_ai_check_combo_starter
- ldr r0, _08129BE4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08129BEC
- ldr r3, _08129BE8
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129BF4
- .align 2, 0
-_08129BE4: .4byte 0x020192e4
-_08129BE8: .4byte gUnknown_02039238
-_08129BEC:
- ldr r1, _08129BF8
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_08129BF4:
- pop {r0}
- bx r0
- .align 2, 0
-_08129BF8: .4byte gUnknown_02039238
- thumb_func_end sub_8129BB8
-
- thumb_func_start sub_8129BFC
-sub_8129BFC: @ 8129BFC
- push {lr}
- bl contest_ai_check_combo_starter
- ldr r0, _08129C28
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08129C30
- ldr r3, _08129C2C
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129C38
- .align 2, 0
-_08129C28: .4byte 0x020192e4
-_08129C2C: .4byte gUnknown_02039238
-_08129C30:
- ldr r1, _08129C3C
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_08129C38:
- pop {r0}
- bx r0
- .align 2, 0
-_08129C3C: .4byte gUnknown_02039238
- thumb_func_end sub_8129BFC
-
- thumb_func_start contest_ai_check_combo_finisher
-contest_ai_check_combo_finisher: @ 8129C40
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r5, 0
- ldr r3, _08129CA8
- ldr r2, _08129CAC
- ldrb r1, [r2, 0x4]
- lsls r1, 1
- adds r2, 0x41
- ldrb r0, [r2]
- lsls r0, 6
- adds r1, r0
- adds r3, 0x1E
- adds r1, r3
- ldrh r6, [r1]
- movs r4, 0
- mov r8, r2
- adds r7, r3, 0
-_08129C64:
- lsls r0, r4, 1
- mov r2, r8
- ldrb r1, [r2]
- lsls r1, 6
- adds r0, r1
- adds r1, r0, r7
- ldrh r0, [r1]
- cmp r0, 0
- beq _08129C84
- adds r1, r6, 0
- bl AreMovesContestCombo
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08129C8E
-_08129C84:
- adds r4, 0x1
- cmp r4, 0x3
- ble _08129C64
- cmp r5, 0
- beq _08129C90
-_08129C8E:
- movs r5, 0x1
-_08129C90:
- ldr r0, _08129CAC
- strh r5, [r0, 0x18]
- ldr r1, _08129CB0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08129CA8: .4byte gUnknown_02038570
-_08129CAC: .4byte 0x020192e4
-_08129CB0: .4byte gUnknown_02039238
- thumb_func_end contest_ai_check_combo_finisher
-
- thumb_func_start sub_8129CB4
-sub_8129CB4: @ 8129CB4
- push {lr}
- bl contest_ai_check_combo_finisher
- ldr r0, _08129CE0
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08129CE8
- ldr r3, _08129CE4
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129CF0
- .align 2, 0
-_08129CE0: .4byte 0x020192e4
-_08129CE4: .4byte gUnknown_02039238
-_08129CE8:
- ldr r1, _08129CF4
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_08129CF0:
- pop {r0}
- bx r0
- .align 2, 0
-_08129CF4: .4byte gUnknown_02039238
- thumb_func_end sub_8129CB4
-
- thumb_func_start sub_8129CF8
-sub_8129CF8: @ 8129CF8
- push {lr}
- bl contest_ai_check_combo_finisher
- ldr r0, _08129D24
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08129D2C
- ldr r3, _08129D28
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129D34
- .align 2, 0
-_08129D24: .4byte 0x020192e4
-_08129D28: .4byte gUnknown_02039238
-_08129D2C:
- ldr r1, _08129D38
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_08129D34:
- pop {r0}
- bx r0
- .align 2, 0
-_08129D38: .4byte gUnknown_02039238
- thumb_func_end sub_8129CF8
-
- thumb_func_start contest_ai_check_would_finish_combo
-contest_ai_check_would_finish_combo: @ 8129D3C
- push {r4,r5,lr}
- movs r5, 0
- ldr r3, _08129D8C
- ldr r4, _08129D90
- ldrb r0, [r4, 0x4]
- lsls r0, 1
- adds r1, r4, 0
- adds r1, 0x41
- ldrb r2, [r1]
- lsls r1, r2, 6
- adds r0, r1
- adds r3, 0x1E
- adds r0, r3
- ldrh r3, [r0]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r1, r4, 0
- subs r1, 0x84
- adds r1, r0, r1
- ldrh r0, [r1, 0x8]
- cmp r0, 0
- beq _08129D74
- adds r1, r3, 0
- bl AreMovesContestCombo
- lsls r0, 24
- lsrs r5, r0, 24
-_08129D74:
- cmp r5, 0
- beq _08129D7A
- movs r5, 0x1
-_08129D7A:
- strh r5, [r4, 0x18]
- ldr r1, _08129D94
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08129D8C: .4byte gUnknown_02038570
-_08129D90: .4byte 0x020192e4
-_08129D94: .4byte gUnknown_02039238
- thumb_func_end contest_ai_check_would_finish_combo
-
- thumb_func_start sub_8129D98
-sub_8129D98: @ 8129D98
- push {lr}
- bl contest_ai_check_would_finish_combo
- ldr r0, _08129DC4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08129DCC
- ldr r3, _08129DC8
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129DD4
- .align 2, 0
-_08129DC4: .4byte 0x020192e4
-_08129DC8: .4byte gUnknown_02039238
-_08129DCC:
- ldr r1, _08129DD8
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_08129DD4:
- pop {r0}
- bx r0
- .align 2, 0
-_08129DD8: .4byte gUnknown_02039238
- thumb_func_end sub_8129D98
-
- thumb_func_start sub_8129DDC
-sub_8129DDC: @ 8129DDC
- push {lr}
- bl contest_ai_check_would_finish_combo
- ldr r0, _08129E08
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08129E10
- ldr r3, _08129E0C
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08129E18
- .align 2, 0
-_08129E08: .4byte 0x020192e4
-_08129E0C: .4byte gUnknown_02039238
-_08129E10:
- ldr r1, _08129E1C
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_08129E18:
- pop {r0}
- bx r0
- .align 2, 0
-_08129E1C: .4byte gUnknown_02039238
- thumb_func_end sub_8129DDC
-
- thumb_func_start contest_ai_get_condition
-contest_ai_get_condition: @ 8129E20
- push {r4,r5,lr}
- ldr r4, _08129E5C
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08129E60
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r0, r5, 0
- subs r0, 0x84
- adds r1, r0
- movs r0, 0xD
- ldrsb r0, [r1, r0]
- movs r1, 0xA
- bl __divsi3
- lsls r0, 24
- asrs r0, 24
- strh r0, [r5, 0x18]
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08129E5C: .4byte gUnknown_02039238
-_08129E60: .4byte 0x020192e4
- thumb_func_end contest_ai_get_condition
-
- thumb_func_start sub_8129E64
-sub_8129E64: @ 8129E64
- push {lr}
- bl contest_ai_get_condition
- ldr r0, _08129E94
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129E98
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08129E9C
- 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 _08129EA0
- .align 2, 0
-_08129E94: .4byte 0x020192e4
-_08129E98: .4byte gUnknown_02039238
-_08129E9C:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129EA0:
- pop {r0}
- bx r0
- thumb_func_end sub_8129E64
-
- thumb_func_start sub_8129EA4
-sub_8129EA4: @ 8129EA4
- push {lr}
- bl contest_ai_get_condition
- ldr r0, _08129ED4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129ED8
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _08129EDC
- 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 _08129EE0
- .align 2, 0
-_08129ED4: .4byte 0x020192e4
-_08129ED8: .4byte gUnknown_02039238
-_08129EDC:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129EE0:
- pop {r0}
- bx r0
- thumb_func_end sub_8129EA4
-
- thumb_func_start sub_8129EE4
-sub_8129EE4: @ 8129EE4
- push {lr}
- bl contest_ai_get_condition
- ldr r0, _08129F14
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129F18
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _08129F1C
- 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 _08129F20
- .align 2, 0
-_08129F14: .4byte 0x020192e4
-_08129F18: .4byte gUnknown_02039238
-_08129F1C:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129F20:
- pop {r0}
- bx r0
- thumb_func_end sub_8129EE4
-
- thumb_func_start sub_8129F24
-sub_8129F24: @ 8129F24
- push {lr}
- bl contest_ai_get_condition
- ldr r0, _08129F54
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129F58
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _08129F5C
- 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 _08129F60
- .align 2, 0
-_08129F54: .4byte 0x020192e4
-_08129F58: .4byte gUnknown_02039238
-_08129F5C:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129F60:
- pop {r0}
- bx r0
- thumb_func_end sub_8129F24
-
- thumb_func_start contest_ai_get_used_combo_starter
-contest_ai_get_used_combo_starter: @ 8129F64
- push {r4-r6,lr}
- movs r6, 0
- ldr r5, _08129FAC
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80B214C
- lsls r0, 24
- cmp r0, 0
- beq _08129F9C
- ldr r2, _08129FB0
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- ldr r1, _08129FB4
- adds r0, r1
- ldrh r0, [r0, 0x8]
- lsls r0, 3
- adds r0, r2
- ldrb r1, [r0, 0x2]
- negs r0, r1
- orrs r0, r1
- lsrs r6, r0, 31
-_08129F9C:
- ldr r0, _08129FB8
- strh r6, [r0, 0x18]
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08129FAC: .4byte gUnknown_02039238
-_08129FB0: .4byte gContestMoves
-_08129FB4: .4byte 0x02019260
-_08129FB8: .4byte 0x020192e4
- thumb_func_end contest_ai_get_used_combo_starter
-
- thumb_func_start sub_8129FBC
-sub_8129FBC: @ 8129FBC
- push {lr}
- bl contest_ai_get_used_combo_starter
- ldr r0, _08129FEC
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _08129FF0
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _08129FF4
- 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 _08129FF8
- .align 2, 0
-_08129FEC: .4byte 0x020192e4
-_08129FF0: .4byte gUnknown_02039238
-_08129FF4:
- adds r0, r2, 0x5
- str r0, [r3]
-_08129FF8:
- pop {r0}
- bx r0
- thumb_func_end sub_8129FBC
-
- thumb_func_start sub_8129FFC
-sub_8129FFC: @ 8129FFC
- push {lr}
- bl contest_ai_get_used_combo_starter
- ldr r0, _0812A02C
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A030
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _0812A034
- 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 _0812A038
- .align 2, 0
-_0812A02C: .4byte 0x020192e4
-_0812A030: .4byte gUnknown_02039238
-_0812A034:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A038:
- pop {r0}
- bx r0
- thumb_func_end sub_8129FFC
-
- thumb_func_start sub_812A03C
-sub_812A03C: @ 812A03C
- push {lr}
- bl contest_ai_get_used_combo_starter
- ldr r0, _0812A06C
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A070
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _0812A074
- 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 _0812A078
- .align 2, 0
-_0812A06C: .4byte 0x020192e4
-_0812A070: .4byte gUnknown_02039238
-_0812A074:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A078:
- pop {r0}
- bx r0
- thumb_func_end sub_812A03C
-
- thumb_func_start sub_812A07C
-sub_812A07C: @ 812A07C
- push {lr}
- bl contest_ai_get_used_combo_starter
- ldr r0, _0812A0AC
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A0B0
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _0812A0B4
- 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 _0812A0B8
- .align 2, 0
-_0812A0AC: .4byte 0x020192e4
-_0812A0B0: .4byte gUnknown_02039238
-_0812A0B4:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A0B8:
- pop {r0}
- bx r0
- thumb_func_end sub_812A07C
-
- thumb_func_start contest_ai_check_can_participate
-contest_ai_check_can_participate: @ 812A0BC
- push {lr}
- ldr r0, _0812A0DC
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- lsrs r0, 24
- bl sub_80AF59C
- lsls r0, 24
- cmp r0, 0
- beq _0812A0E4
- ldr r1, _0812A0E0
- movs r0, 0
- b _0812A0E8
- .align 2, 0
-_0812A0DC: .4byte gUnknown_02039238
-_0812A0E0: .4byte 0x020192e4
-_0812A0E4:
- ldr r1, _0812A0F8
- movs r0, 0x1
-_0812A0E8:
- strh r0, [r1, 0x18]
- ldr r1, _0812A0FC
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0812A0F8: .4byte 0x020192e4
-_0812A0FC: .4byte gUnknown_02039238
- thumb_func_end contest_ai_check_can_participate
-
- thumb_func_start sub_812A100
-sub_812A100: @ 812A100
- push {lr}
- bl contest_ai_check_can_participate
- ldr r0, _0812A12C
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0812A134
- ldr r3, _0812A130
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A13C
- .align 2, 0
-_0812A12C: .4byte 0x020192e4
-_0812A130: .4byte gUnknown_02039238
-_0812A134:
- ldr r1, _0812A140
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A13C:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A140: .4byte gUnknown_02039238
- thumb_func_end sub_812A100
-
- thumb_func_start sub_812A144
-sub_812A144: @ 812A144
- push {lr}
- bl contest_ai_check_can_participate
- ldr r0, _0812A170
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0812A178
- ldr r3, _0812A174
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A180
- .align 2, 0
-_0812A170: .4byte 0x020192e4
-_0812A174: .4byte gUnknown_02039238
-_0812A178:
- ldr r1, _0812A184
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A180:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A184: .4byte gUnknown_02039238
- thumb_func_end sub_812A144
-
- thumb_func_start contest_ai_get_val_812A188
-contest_ai_get_val_812A188: @ 812A188
- push {r4,lr}
- ldr r4, _0812A1BC
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0812A1C0
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r0, r2, 0
- subs r0, 0x84
- adds r1, r0
- ldrb r0, [r1, 0x15]
- lsls r0, 28
- lsrs r0, 31
- strh r0, [r2, 0x18]
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A1BC: .4byte gUnknown_02039238
-_0812A1C0: .4byte 0x020192e4
- thumb_func_end contest_ai_get_val_812A188
-
- thumb_func_start sub_812A1C4
-sub_812A1C4: @ 812A1C4
- push {lr}
- bl contest_ai_get_val_812A188
- ldr r0, _0812A1F0
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0812A1F8
- ldr r3, _0812A1F4
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A200
- .align 2, 0
-_0812A1F0: .4byte 0x020192e4
-_0812A1F4: .4byte gUnknown_02039238
-_0812A1F8:
- ldr r1, _0812A204
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A200:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A204: .4byte gUnknown_02039238
- thumb_func_end sub_812A1C4
-
- thumb_func_start sub_812A208
-sub_812A208: @ 812A208
- push {lr}
- bl contest_ai_get_val_812A188
- ldr r0, _0812A234
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0812A23C
- ldr r3, _0812A238
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A244
- .align 2, 0
-_0812A234: .4byte 0x020192e4
-_0812A238: .4byte gUnknown_02039238
-_0812A23C:
- ldr r1, _0812A248
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A244:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A248: .4byte gUnknown_02039238
- thumb_func_end sub_812A208
-
- thumb_func_start sub_812A24C
-sub_812A24C: @ 812A24C
- push {r4,r5,lr}
- ldr r5, _0812A28C
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0812A290
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r4, r3, 0
- subs r4, 0x84
- adds r1, r4
- adds r0, r3, 0
- adds r0, 0x41
- ldrb r2, [r0]
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r1, 0x4]
- ldrh r0, [r0, 0x4]
- subs r1, r0
- strh r1, [r3, 0x18]
- ldr r0, [r5]
- adds r0, 0x2
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A28C: .4byte gUnknown_02039238
-_0812A290: .4byte 0x020192e4
- thumb_func_end sub_812A24C
-
- thumb_func_start sub_812A294
-sub_812A294: @ 812A294
- push {lr}
- bl sub_812A24C
- ldr r0, _0812A2C0
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _0812A2C8
- ldr r3, _0812A2C4
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A2D0
- .align 2, 0
-_0812A2C0: .4byte 0x020192e4
-_0812A2C4: .4byte gUnknown_02039238
-_0812A2C8:
- ldr r1, _0812A2D4
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A2D0:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A2D4: .4byte gUnknown_02039238
- thumb_func_end sub_812A294
-
- thumb_func_start sub_812A2D8
-sub_812A2D8: @ 812A2D8
- push {lr}
- bl sub_812A24C
- ldr r0, _0812A304
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- ble _0812A30C
- ldr r3, _0812A308
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A314
- .align 2, 0
-_0812A304: .4byte 0x020192e4
-_0812A308: .4byte gUnknown_02039238
-_0812A30C:
- ldr r1, _0812A318
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A314:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A318: .4byte gUnknown_02039238
- thumb_func_end sub_812A2D8
-
- thumb_func_start sub_812A31C
-sub_812A31C: @ 812A31C
- push {lr}
- bl sub_812A24C
- ldr r0, _0812A348
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0812A350
- ldr r3, _0812A34C
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A358
- .align 2, 0
-_0812A348: .4byte 0x020192e4
-_0812A34C: .4byte gUnknown_02039238
-_0812A350:
- ldr r1, _0812A35C
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A358:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A35C: .4byte gUnknown_02039238
- thumb_func_end sub_812A31C
-
- thumb_func_start sub_812A360
-sub_812A360: @ 812A360
- push {lr}
- bl sub_812A24C
- ldr r0, _0812A38C
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0812A394
- ldr r3, _0812A390
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A39C
- .align 2, 0
-_0812A38C: .4byte 0x020192e4
-_0812A390: .4byte gUnknown_02039238
-_0812A394:
- ldr r1, _0812A3A0
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A39C:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A3A0: .4byte gUnknown_02039238
- thumb_func_end sub_812A360
-
- thumb_func_start sub_812A3A4
-sub_812A3A4: @ 812A3A4
- push {r4,lr}
- ldr r4, _0812A3D8
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- ldr r3, _0812A3DC
- ldr r2, _0812A3E0
- lsrs r0, 23
- adds r0, r2
- adds r1, r3, 0
- adds r1, 0x41
- ldrb r1, [r1]
- lsls r1, 1
- adds r1, r2
- ldrh r0, [r0]
- ldrh r1, [r1]
- subs r0, r1
- strh r0, [r3, 0x18]
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A3D8: .4byte gUnknown_02039238
-_0812A3DC: .4byte 0x020192e4
-_0812A3E0: .4byte gUnknown_02038670
- thumb_func_end sub_812A3A4
-
- thumb_func_start sub_812A3E4
-sub_812A3E4: @ 812A3E4
- push {lr}
- bl sub_812A3A4
- ldr r0, _0812A410
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _0812A418
- ldr r3, _0812A414
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A420
- .align 2, 0
-_0812A410: .4byte 0x020192e4
-_0812A414: .4byte gUnknown_02039238
-_0812A418:
- ldr r1, _0812A424
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A420:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A424: .4byte gUnknown_02039238
- thumb_func_end sub_812A3E4
-
- thumb_func_start sub_812A428
-sub_812A428: @ 812A428
- push {lr}
- bl sub_812A3A4
- ldr r0, _0812A454
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- ble _0812A45C
- ldr r3, _0812A458
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A464
- .align 2, 0
-_0812A454: .4byte 0x020192e4
-_0812A458: .4byte gUnknown_02039238
-_0812A45C:
- ldr r1, _0812A468
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A464:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A468: .4byte gUnknown_02039238
- thumb_func_end sub_812A428
-
- thumb_func_start sub_812A46C
-sub_812A46C: @ 812A46C
- push {lr}
- bl sub_812A3A4
- ldr r0, _0812A498
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0812A4A0
- ldr r3, _0812A49C
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A4A8
- .align 2, 0
-_0812A498: .4byte 0x020192e4
-_0812A49C: .4byte gUnknown_02039238
-_0812A4A0:
- ldr r1, _0812A4AC
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A4A8:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A4AC: .4byte gUnknown_02039238
- thumb_func_end sub_812A46C
-
- thumb_func_start sub_812A4B0
-sub_812A4B0: @ 812A4B0
- push {lr}
- bl sub_812A3A4
- ldr r0, _0812A4DC
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0812A4E4
- ldr r3, _0812A4E0
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812A4EC
- .align 2, 0
-_0812A4DC: .4byte 0x020192e4
-_0812A4E0: .4byte gUnknown_02039238
-_0812A4E4:
- ldr r1, _0812A4F0
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812A4EC:
- pop {r0}
- bx r0
- .align 2, 0
-_0812A4F0: .4byte gUnknown_02039238
- thumb_func_end sub_812A4B0
-
- thumb_func_start sub_812A4F4
-sub_812A4F4: @ 812A4F4
- push {r4,lr}
- ldr r4, _0812A52C
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- ldr r3, [r4]
- ldrb r1, [r3, 0x2]
- ldr r2, _0812A530
- lsrs r0, 23
- lsls r1, 3
- adds r0, r1
- adds r1, r2, 0
- adds r1, 0x1C
- adds r0, r1
- ldrh r0, [r0]
- adds r2, 0xE0
- ldr r1, _0812A534
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r2, 0x18]
- adds r3, 0x3
- str r3, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A52C: .4byte gUnknown_02039238
-_0812A530: .4byte 0x02019204
-_0812A534: .4byte gContestMoves
- thumb_func_end sub_812A4F4
-
- thumb_func_start sub_812A538
-sub_812A538: @ 812A538
- push {lr}
- bl sub_812A4F4
- ldr r0, _0812A568
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A56C
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _0812A570
- 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 _0812A574
- .align 2, 0
-_0812A568: .4byte 0x020192e4
-_0812A56C: .4byte gUnknown_02039238
-_0812A570:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A574:
- pop {r0}
- bx r0
- thumb_func_end sub_812A538
-
- thumb_func_start sub_812A578
-sub_812A578: @ 812A578
- push {lr}
- bl sub_812A4F4
- ldr r0, _0812A5A8
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A5AC
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _0812A5B0
- 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 _0812A5B4
- .align 2, 0
-_0812A5A8: .4byte 0x020192e4
-_0812A5AC: .4byte gUnknown_02039238
-_0812A5B0:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A5B4:
- pop {r0}
- bx r0
- thumb_func_end sub_812A578
-
- thumb_func_start sub_812A5B8
-sub_812A5B8: @ 812A5B8
- push {lr}
- bl sub_812A4F4
- ldr r0, _0812A5E8
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A5EC
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _0812A5F0
- 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 _0812A5F4
- .align 2, 0
-_0812A5E8: .4byte 0x020192e4
-_0812A5EC: .4byte gUnknown_02039238
-_0812A5F0:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A5F4:
- pop {r0}
- bx r0
- thumb_func_end sub_812A5B8
-
- thumb_func_start sub_812A5F8
-sub_812A5F8: @ 812A5F8
- push {lr}
- bl sub_812A4F4
- ldr r0, _0812A628
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A62C
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _0812A630
- 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 _0812A634
- .align 2, 0
-_0812A628: .4byte 0x020192e4
-_0812A62C: .4byte gUnknown_02039238
-_0812A630:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A634:
- pop {r0}
- bx r0
- thumb_func_end sub_812A5F8
-
- thumb_func_start sub_812A638
-sub_812A638: @ 812A638
- push {r4,lr}
- ldr r4, _0812A66C
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- lsrs r0, 24
- ldr r3, [r4]
- ldrb r1, [r3, 0x2]
- ldr r2, _0812A670
- lsls r1, 2
- adds r0, r1
- adds r1, r2, 0
- adds r1, 0x44
- adds r0, r1
- adds r2, 0xE0
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r2, 0x18]
- adds r3, 0x3
- str r3, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A66C: .4byte gUnknown_02039238
-_0812A670: .4byte 0x02019204
- thumb_func_end sub_812A638
-
- thumb_func_start sub_812A674
-sub_812A674: @ 812A674
- push {lr}
- bl sub_812A638
- ldr r0, _0812A6A4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A6A8
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bge _0812A6AC
- 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 _0812A6B0
- .align 2, 0
-_0812A6A4: .4byte 0x020192e4
-_0812A6A8: .4byte gUnknown_02039238
-_0812A6AC:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A6B0:
- pop {r0}
- bx r0
- thumb_func_end sub_812A674
-
- thumb_func_start sub_812A6B4
-sub_812A6B4: @ 812A6B4
- push {lr}
- bl sub_812A638
- ldr r0, _0812A6E4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A6E8
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- ble _0812A6EC
- 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 _0812A6F0
- .align 2, 0
-_0812A6E4: .4byte 0x020192e4
-_0812A6E8: .4byte gUnknown_02039238
-_0812A6EC:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A6F0:
- pop {r0}
- bx r0
- thumb_func_end sub_812A6B4
-
- thumb_func_start sub_812A6F4
-sub_812A6F4: @ 812A6F4
- push {lr}
- bl sub_812A638
- ldr r0, _0812A724
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A728
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _0812A72C
- 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 _0812A730
- .align 2, 0
-_0812A724: .4byte 0x020192e4
-_0812A728: .4byte gUnknown_02039238
-_0812A72C:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A730:
- pop {r0}
- bx r0
- thumb_func_end sub_812A6F4
-
- thumb_func_start sub_812A734
-sub_812A734: @ 812A734
- push {lr}
- bl sub_812A638
- ldr r0, _0812A764
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A768
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _0812A76C
- 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 _0812A770
- .align 2, 0
-_0812A764: .4byte 0x020192e4
-_0812A768: .4byte gUnknown_02039238
-_0812A76C:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A770:
- pop {r0}
- bx r0
- thumb_func_end sub_812A734
-
- thumb_func_start sub_812A774
-sub_812A774: @ 812A774
- push {r4,r5,lr}
- ldr r5, _0812A7B4
- ldr r0, [r5]
- ldrb r0, [r0, 0x1]
- bl sub_8128A7C
- lsls r0, 24
- ldr r3, [r5]
- ldrb r1, [r3, 0x2]
- ldr r2, _0812A7B8
- lsrs r0, 23
- lsls r1, 3
- adds r0, r1
- adds r1, r2, 0
- adds r1, 0x1C
- adds r0, r1
- ldrh r0, [r0]
- adds r2, 0xE0
- ldr r4, _0812A7BC
- ldr r1, _0812A7C0
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0]
- strh r0, [r2, 0x18]
- adds r3, 0x3
- str r3, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A7B4: .4byte gUnknown_02039238
-_0812A7B8: .4byte 0x02019204
-_0812A7BC: .4byte gContestEffects
-_0812A7C0: .4byte gContestMoves
- thumb_func_end sub_812A774
-
- thumb_func_start sub_812A7C4
-sub_812A7C4: @ 812A7C4
- push {lr}
- bl sub_812A774
- ldr r0, _0812A7F4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A7F8
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- bne _0812A7FC
- 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 _0812A800
- .align 2, 0
-_0812A7F4: .4byte 0x020192e4
-_0812A7F8: .4byte gUnknown_02039238
-_0812A7FC:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A800:
- pop {r0}
- bx r0
- thumb_func_end sub_812A7C4
-
- thumb_func_start sub_812A804
-sub_812A804: @ 812A804
- push {lr}
- bl sub_812A774
- ldr r0, _0812A834
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- ldr r3, _0812A838
- ldr r2, [r3]
- ldrb r1, [r2]
- cmp r0, r1
- beq _0812A83C
- 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 _0812A840
- .align 2, 0
-_0812A834: .4byte 0x020192e4
-_0812A838: .4byte gUnknown_02039238
-_0812A83C:
- adds r0, r2, 0x5
- str r0, [r3]
-_0812A840:
- pop {r0}
- bx r0
- thumb_func_end sub_812A804
-
- thumb_func_start sub_812A844
-sub_812A844: @ 812A844
- push {r4,lr}
- ldr r3, _0812A864
- ldr r4, _0812A868
- ldr r2, [r4]
- ldrb r0, [r2, 0x1]
- lsls r0, 1
- adds r1, r3, 0
- adds r1, 0x1A
- adds r0, r1
- ldrh r1, [r3, 0x18]
- strh r1, [r0]
- adds r2, 0x2
- str r2, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A864: .4byte 0x020192e4
-_0812A868: .4byte gUnknown_02039238
- thumb_func_end sub_812A844
-
- thumb_func_start sub_812A86C
-sub_812A86C: @ 812A86C
- push {r4,lr}
- ldr r0, _0812A890
- ldr r4, _0812A894
- ldr r3, [r4]
- ldrb r2, [r3, 0x1]
- lsls r2, 1
- adds r0, 0x1A
- adds r2, r0
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- adds r3, 0x4
- str r3, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A890: .4byte 0x020192e4
-_0812A894: .4byte gUnknown_02039238
- thumb_func_end sub_812A86C
-
- thumb_func_start sub_812A898
-sub_812A898: @ 812A898
- push {r4,lr}
- ldr r0, _0812A8C4
- ldr r4, _0812A8C8
- ldr r3, [r4]
- ldrb r2, [r3, 0x1]
- lsls r2, 1
- adds r0, 0x1A
- adds r2, r0
- movs r1, 0x2
- ldrsb r1, [r3, r1]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrh r0, [r2]
- adds r1, r0
- strh r1, [r2]
- adds r3, 0x4
- str r3, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A8C4: .4byte 0x020192e4
-_0812A8C8: .4byte gUnknown_02039238
- thumb_func_end sub_812A898
-
- thumb_func_start sub_812A8CC
-sub_812A8CC: @ 812A8CC
- push {r4,lr}
- ldr r2, _0812A8F4
- ldr r4, _0812A8F8
- ldr r3, [r4]
- ldrb r1, [r3, 0x1]
- lsls r1, 1
- adds r2, 0x1A
- adds r1, r2
- ldrb r0, [r3, 0x2]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
- adds r3, 0x3
- str r3, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A8F4: .4byte 0x020192e4
-_0812A8F8: .4byte gUnknown_02039238
- thumb_func_end sub_812A8CC
-
- thumb_func_start sub_812A8FC
-sub_812A8FC: @ 812A8FC
- push {r4,lr}
- ldr r2, _0812A924
- ldr r4, _0812A928
- ldr r3, [r4]
- ldrb r1, [r3, 0x1]
- lsls r1, 1
- adds r2, 0x1A
- adds r1, r2
- ldrb r0, [r3, 0x2]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- ldrh r2, [r1]
- adds r0, r2
- strh r0, [r1]
- adds r3, 0x3
- str r3, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812A924: .4byte 0x020192e4
-_0812A928: .4byte gUnknown_02039238
- thumb_func_end sub_812A8FC
-
- thumb_func_start sub_812A92C
-sub_812A92C: @ 812A92C
- push {r4,lr}
- ldr r1, _0812A964
- ldr r4, _0812A968
- ldr r3, [r4]
- ldrb r0, [r3, 0x1]
- lsls r0, 1
- adds r1, 0x1A
- adds r0, r1
- movs r1, 0
- ldrsh r2, [r0, r1]
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- cmp r2, r1
- bge _0812A96C
- ldrb r1, [r3, 0x4]
- ldrb r0, [r3, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812A972
- .align 2, 0
-_0812A964: .4byte 0x020192e4
-_0812A968: .4byte gUnknown_02039238
-_0812A96C:
- adds r0, r3, 0
- adds r0, 0x8
- str r0, [r4]
-_0812A972:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812A92C
-
- thumb_func_start sub_812A978
-sub_812A978: @ 812A978
- push {r4,lr}
- ldr r1, _0812A9B0
- ldr r4, _0812A9B4
- ldr r3, [r4]
- ldrb r0, [r3, 0x1]
- lsls r0, 1
- adds r1, 0x1A
- adds r0, r1
- movs r1, 0
- ldrsh r2, [r0, r1]
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- cmp r2, r1
- ble _0812A9B8
- ldrb r1, [r3, 0x4]
- ldrb r0, [r3, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812A9BE
- .align 2, 0
-_0812A9B0: .4byte 0x020192e4
-_0812A9B4: .4byte gUnknown_02039238
-_0812A9B8:
- adds r0, r3, 0
- adds r0, 0x8
- str r0, [r4]
-_0812A9BE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812A978
-
- thumb_func_start sub_812A9C4
-sub_812A9C4: @ 812A9C4
- push {r4,lr}
- ldr r1, _0812A9FC
- ldr r4, _0812AA00
- ldr r3, [r4]
- ldrb r0, [r3, 0x1]
- lsls r0, 1
- adds r1, 0x1A
- adds r0, r1
- movs r1, 0
- ldrsh r2, [r0, r1]
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- cmp r2, r1
- bne _0812AA04
- ldrb r1, [r3, 0x4]
- ldrb r0, [r3, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812AA0A
- .align 2, 0
-_0812A9FC: .4byte 0x020192e4
-_0812AA00: .4byte gUnknown_02039238
-_0812AA04:
- adds r0, r3, 0
- adds r0, 0x8
- str r0, [r4]
-_0812AA0A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812A9C4
-
- thumb_func_start sub_812AA10
-sub_812AA10: @ 812AA10
- push {r4,lr}
- ldr r1, _0812AA48
- ldr r4, _0812AA4C
- ldr r3, [r4]
- ldrb r0, [r3, 0x1]
- lsls r0, 1
- adds r1, 0x1A
- adds r0, r1
- movs r1, 0
- ldrsh r2, [r0, r1]
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- cmp r2, r1
- beq _0812AA50
- ldrb r1, [r3, 0x4]
- ldrb r0, [r3, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812AA56
- .align 2, 0
-_0812AA48: .4byte 0x020192e4
-_0812AA4C: .4byte gUnknown_02039238
-_0812AA50:
- adds r0, r3, 0
- adds r0, 0x8
- str r0, [r4]
-_0812AA56:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812AA10
-
- thumb_func_start sub_812AA5C
-sub_812AA5C: @ 812AA5C
- push {r4,lr}
- ldr r2, _0812AA98
- ldr r4, _0812AA9C
- ldr r3, [r4]
- ldrb r1, [r3, 0x1]
- lsls r1, 1
- adds r2, 0x1A
- adds r1, r2
- ldrb r0, [r3, 0x2]
- lsls r0, 1
- adds r0, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r1, r0
- bge _0812AAA0
- ldrb r1, [r3, 0x3]
- ldrb r0, [r3, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812AAA4
- .align 2, 0
-_0812AA98: .4byte 0x020192e4
-_0812AA9C: .4byte gUnknown_02039238
-_0812AAA0:
- adds r0, r3, 0x7
- str r0, [r4]
-_0812AAA4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812AA5C
-
- thumb_func_start sub_812AAAC
-sub_812AAAC: @ 812AAAC
- push {r4,lr}
- ldr r2, _0812AAE8
- ldr r4, _0812AAEC
- ldr r3, [r4]
- ldrb r1, [r3, 0x1]
- lsls r1, 1
- adds r2, 0x1A
- adds r1, r2
- ldrb r0, [r3, 0x2]
- lsls r0, 1
- adds r0, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r1, r0
- ble _0812AAF0
- ldrb r1, [r3, 0x3]
- ldrb r0, [r3, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812AAF4
- .align 2, 0
-_0812AAE8: .4byte 0x020192e4
-_0812AAEC: .4byte gUnknown_02039238
-_0812AAF0:
- adds r0, r3, 0x7
- str r0, [r4]
-_0812AAF4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812AAAC
-
- thumb_func_start sub_812AAFC
-sub_812AAFC: @ 812AAFC
- push {r4,lr}
- ldr r2, _0812AB38
- ldr r4, _0812AB3C
- ldr r3, [r4]
- ldrb r1, [r3, 0x1]
- lsls r1, 1
- adds r2, 0x1A
- adds r1, r2
- ldrb r0, [r3, 0x2]
- lsls r0, 1
- adds r0, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r1, r0
- bne _0812AB40
- ldrb r1, [r3, 0x3]
- ldrb r0, [r3, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812AB44
- .align 2, 0
-_0812AB38: .4byte 0x020192e4
-_0812AB3C: .4byte gUnknown_02039238
-_0812AB40:
- adds r0, r3, 0x7
- str r0, [r4]
-_0812AB44:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812AAFC
-
- thumb_func_start sub_812AB4C
-sub_812AB4C: @ 812AB4C
- push {r4,lr}
- ldr r2, _0812AB88
- ldr r4, _0812AB8C
- ldr r3, [r4]
- ldrb r1, [r3, 0x1]
- lsls r1, 1
- adds r2, 0x1A
- adds r1, r2
- ldrb r0, [r3, 0x2]
- lsls r0, 1
- adds r0, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r1, r0
- beq _0812AB90
- ldrb r1, [r3, 0x3]
- ldrb r0, [r3, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _0812AB94
- .align 2, 0
-_0812AB88: .4byte 0x020192e4
-_0812AB8C: .4byte gUnknown_02039238
-_0812AB90:
- adds r0, r3, 0x7
- str r0, [r4]
-_0812AB94:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812AB4C
-
- thumb_func_start sub_812AB9C
-sub_812AB9C: @ 812AB9C
- push {r4,lr}
- bl Random
- movs r2, 0xFF
- ands r2, r0
- ldr r1, _0812ABD4
- ldr r4, _0812ABD8
- ldr r3, [r4]
- ldrb r0, [r3, 0x1]
- lsls r0, 1
- adds r1, 0x1A
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r2, r0
- bge _0812ABDC
- 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 _0812ABE0
- .align 2, 0
-_0812ABD4: .4byte 0x020192e4
-_0812ABD8: .4byte gUnknown_02039238
-_0812ABDC:
- adds r0, r3, 0x6
- str r0, [r4]
-_0812ABE0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812AB9C
-
- thumb_func_start sub_812ABE8
-sub_812ABE8: @ 812ABE8
- push {r4,lr}
- bl Random
- movs r2, 0xFF
- ands r2, r0
- ldr r1, _0812AC20
- ldr r4, _0812AC24
- ldr r3, [r4]
- ldrb r0, [r3, 0x1]
- lsls r0, 1
- adds r1, 0x1A
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r2, r0
- ble _0812AC28
- 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 _0812AC2C
- .align 2, 0
-_0812AC20: .4byte 0x020192e4
-_0812AC24: .4byte gUnknown_02039238
-_0812AC28:
- adds r0, r3, 0x6
- str r0, [r4]
-_0812AC2C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812ABE8
-
- thumb_func_start sub_812AC34
-sub_812AC34: @ 812AC34
- ldr r3, _0812AC50
- 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
-_0812AC50: .4byte gUnknown_02039238
- thumb_func_end sub_812AC34
-
- thumb_func_start sub_812AC54
-sub_812AC54: @ 812AC54
- push {r4,lr}
- ldr r4, _0812AC80
- ldr r0, [r4]
- adds r0, 0x5
- bl sub_812ACA4
- 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
-_0812AC80: .4byte gUnknown_02039238
- thumb_func_end sub_812AC54
-
- thumb_func_start sub_812AC84
-sub_812AC84: @ 812AC84
- push {lr}
- bl sub_812ACC8
- lsls r0, 24
- cmp r0, 0
- bne _0812AC9A
- ldr r2, _0812ACA0
- ldrb r1, [r2, 0x9]
- movs r0, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
-_0812AC9A:
- pop {r0}
- bx r0
- .align 2, 0
-_0812ACA0: .4byte 0x020192e4
- thumb_func_end sub_812AC84
-
- thumb_func_start sub_812ACA4
-sub_812ACA4: @ 812ACA4
- push {r4,lr}
- ldr r3, _0812ACC4
- adds r4, r3, 0
- adds r4, 0x40
- ldrb r1, [r4]
- adds r2, r1, 0x1
- strb r2, [r4]
- lsls r1, 24
- lsrs r1, 22
- adds r3, 0x20
- adds r1, r3
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812ACC4: .4byte 0x020192e4
- thumb_func_end sub_812ACA4
-
- thumb_func_start sub_812ACC8
-sub_812ACC8: @ 812ACC8
- push {lr}
- ldr r1, _0812ACDC
- adds r3, r1, 0
- adds r3, 0x40
- ldrb r0, [r3]
- cmp r0, 0
- bne _0812ACE0
- movs r0, 0
- b _0812ACF4
- .align 2, 0
-_0812ACDC: .4byte 0x020192e4
-_0812ACE0:
- subs r0, 0x1
- strb r0, [r3]
- ldr r2, _0812ACF8
- ldrb r0, [r3]
- lsls r0, 2
- adds r1, 0x20
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- movs r0, 0x1
-_0812ACF4:
- pop {r1}
- bx r1
- .align 2, 0
-_0812ACF8: .4byte gUnknown_02039238
- thumb_func_end sub_812ACC8
-
- thumb_func_start contest_ai_check_for_exciting_move
-contest_ai_check_for_exciting_move: @ 812ACFC
- push {r4-r7,lr}
- movs r5, 0
- movs r4, 0
- ldr r7, _0812AD28
- ldr r6, _0812AD2C
-_0812AD06:
- lsls r0, r4, 1
- ldrb r1, [r7]
- lsls r1, 6
- adds r0, r1
- adds r1, r0, r6
- ldrh r0, [r1]
- cmp r0, 0
- beq _0812AD30
- bl contest_get_move_excitement
- lsls r0, 24
- asrs r0, 24
- cmp r0, 0x1
- bne _0812AD30
- movs r5, 0x1
- b _0812AD36
- .align 2, 0
-_0812AD28: .4byte 0x02019325
-_0812AD2C: .4byte gUnknown_0203858E
-_0812AD30:
- adds r4, 0x1
- cmp r4, 0x3
- ble _0812AD06
-_0812AD36:
- ldr r0, _0812AD48
- strh r5, [r0, 0x18]
- ldr r1, _0812AD4C
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812AD48: .4byte 0x020192e4
-_0812AD4C: .4byte gUnknown_02039238
- thumb_func_end contest_ai_check_for_exciting_move
-
- thumb_func_start sub_812AD50
-sub_812AD50: @ 812AD50
- push {lr}
- bl contest_ai_check_for_exciting_move
- ldr r0, _0812AD7C
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0812AD84
- ldr r3, _0812AD80
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812AD8C
- .align 2, 0
-_0812AD7C: .4byte 0x020192e4
-_0812AD80: .4byte gUnknown_02039238
-_0812AD84:
- ldr r1, _0812AD90
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812AD8C:
- pop {r0}
- bx r0
- .align 2, 0
-_0812AD90: .4byte gUnknown_02039238
- thumb_func_end sub_812AD50
-
- thumb_func_start sub_812AD94
-sub_812AD94: @ 812AD94
- push {lr}
- bl contest_ai_check_for_exciting_move
- ldr r0, _0812ADC0
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0812ADC8
- ldr r3, _0812ADC4
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812ADD0
- .align 2, 0
-_0812ADC0: .4byte 0x020192e4
-_0812ADC4: .4byte gUnknown_02039238
-_0812ADC8:
- ldr r1, _0812ADD4
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812ADD0:
- pop {r0}
- bx r0
- .align 2, 0
-_0812ADD4: .4byte gUnknown_02039238
- thumb_func_end sub_812AD94
-
- thumb_func_start sub_812ADD8
-sub_812ADD8: @ 812ADD8
- push {r4-r7,lr}
- movs r6, 0
- ldr r2, _0812AE08
- ldr r0, [r2]
- ldrb r4, [r0, 0x1]
- ldrb r0, [r0, 0x2]
- lsls r0, 8
- orrs r4, r0
- movs r3, 0
- ldr r0, _0812AE0C
- mov r12, r0
- ldr r5, _0812AE10
- adds r0, r5, 0
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 6
- mov r1, r12
- adds r1, 0x1E
- adds r0, r1
- ldrh r0, [r0]
- adds r7, r2, 0
- mov r2, r12
- mov r12, r5
- b _0812AE2E
- .align 2, 0
-_0812AE08: .4byte gUnknown_02039238
-_0812AE0C: .4byte gUnknown_02038570
-_0812AE10: .4byte 0x020192e4
-_0812AE14:
- adds r3, 0x1
- cmp r3, 0x3
- bgt _0812AE34
- lsls r1, r3, 1
- mov r0, r12
- adds r0, 0x41
- ldrb r0, [r0]
- lsls r0, 6
- adds r1, r0
- adds r0, r2, 0
- adds r0, 0x1E
- adds r1, r0
- ldrh r0, [r1]
-_0812AE2E:
- cmp r0, r4
- bne _0812AE14
- movs r6, 0x1
-_0812AE34:
- mov r0, r12
- strh r6, [r0, 0x18]
- ldr r0, [r7]
- adds r0, 0x3
- str r0, [r7]
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812ADD8
-
- thumb_func_start sub_812AE44
-sub_812AE44: @ 812AE44
- push {lr}
- bl sub_812ADD8
- ldr r0, _0812AE70
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0812AE78
- ldr r3, _0812AE74
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812AE80
- .align 2, 0
-_0812AE70: .4byte 0x020192e4
-_0812AE74: .4byte gUnknown_02039238
-_0812AE78:
- ldr r1, _0812AE84
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812AE80:
- pop {r0}
- bx r0
- .align 2, 0
-_0812AE84: .4byte gUnknown_02039238
- thumb_func_end sub_812AE44
-
- thumb_func_start sub_812AE88
-sub_812AE88: @ 812AE88
- push {lr}
- bl sub_812ADD8
- ldr r0, _0812AEB4
- movs r1, 0x18
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0812AEBC
- ldr r3, _0812AEB8
- ldr r2, [r3]
- ldrb r1, [r2]
- ldrb r0, [r2, 0x1]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x2]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0812AEC4
- .align 2, 0
-_0812AEB4: .4byte 0x020192e4
-_0812AEB8: .4byte gUnknown_02039238
-_0812AEBC:
- ldr r1, _0812AEC8
- ldr r0, [r1]
- adds r0, 0x4
- str r0, [r1]
-_0812AEC4:
- pop {r0}
- bx r0
- .align 2, 0
-_0812AEC8: .4byte gUnknown_02039238
- thumb_func_end sub_812AE88
-
- thumb_func_start unref_sub_812AECC
-unref_sub_812AECC: @ 812AECC
- push {lr}
- bl sub_812613C
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x1
- beq _0812AEEA
- cmp r0, 0x1
- ble _0812AF08
- cmp r1, 0x2
- beq _0812AEF4
- cmp r1, 0x3
- beq _0812AEFA
- b _0812AF08
-_0812AEEA:
- movs r0, 0x16
- bl PlaySE
- movs r0, 0x1
- b _0812AF0A
-_0812AEF4:
- bl sub_812AF10
- b _0812AF08
-_0812AEFA:
- movs r0, 0x16
- bl PlaySE
- bl sub_812AF10
- movs r0, 0x1
- b _0812AF0A
-_0812AF08:
- movs r0, 0
-_0812AF0A:
- pop {r1}
- bx r1
- thumb_func_end unref_sub_812AECC
-
- thumb_func_start sub_812AF10
-sub_812AF10: @ 812AF10
- push {lr}
- movs r0, 0x2
- movs r1, 0xE
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _0812AF2C
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrint
- pop {r0}
- bx r0
- .align 2, 0
-_0812AF2C: .4byte gStringVar4
- thumb_func_end sub_812AF10
-
- thumb_func_start sub_812AF30
-sub_812AF30: @ 812AF30
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0812AF8C
- lsls r6, r0, 2
- adds r6, r0
- lsls r6, 3
- adds r6, r1
- ldr r1, _0812AF90
- ldrh r0, [r1]
- strh r0, [r6, 0x8]
- ldrh r0, [r1, 0x2]
- strh r0, [r6, 0xA]
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x3F
- bl sub_8076F98
- adds r5, r0, 0
- lsls r4, 24
- asrs r4, 24
- lsls r5, 24
- asrs r5, 24
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl sub_807712C
- strh r4, [r6, 0xC]
- strh r5, [r6, 0xE]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r6, 0x10]
- movs r0, 0xA
- strh r0, [r6, 0x1C]
- ldr r0, _0812AF94
- str r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812AF8C: .4byte gTasks
-_0812AF90: .4byte gUnknown_03004B00
-_0812AF94: .4byte sub_812AF98
- thumb_func_end sub_812AF30
-
- thumb_func_start sub_812AF98
-sub_812AF98: @ 812AF98
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0812AFC8
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r5, [r4, 0xC]
- ldrb r6, [r4, 0x10]
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6F
- bne _0812AFD0
- movs r0, 0x5
- strh r0, [r4, 0x1C]
- strh r1, [r4, 0x1E]
- ldr r0, _0812AFCC
- str r0, [r4]
- b _0812AFFE
- .align 2, 0
-_0812AFC8: .4byte gTasks
-_0812AFCC: .4byte sub_812B004
-_0812AFD0:
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- bne _0812AFEA
- strh r1, [r4, 0x1C]
- ldrh r0, [r4, 0x8]
- lsls r1, r5, 24
- asrs r1, 24
- bl PlaySE12WithPanning
-_0812AFEA:
- lsls r1, r6, 24
- asrs r1, 24
- lsls r0, r5, 16
- asrs r0, 16
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- bl sub_8077104
- strh r0, [r4, 0xC]
-_0812AFFE:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_812AF98
-
- thumb_func_start sub_812B004
-sub_812B004: @ 812B004
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0812B054
- lsls r0, r5, 2
- adds r0, r5
- 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, 0x6
- bne _0812B04C
- movs r0, 0
- strh r0, [r4, 0x1C]
- movs r0, 0x3F
- bl sub_8076F98
- adds r1, r0, 0
- ldrh r0, [r4, 0xA]
- lsls r1, 24
- asrs r1, 24
- bl PlaySE12WithPanning
- ldrh r0, [r4, 0x1E]
- adds r0, 0x1
- strh r0, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _0812B04C
- adds r0, r5, 0
- bl move_anim_related_task_del
-_0812B04C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B054: .4byte gTasks
- thumb_func_end sub_812B004
-
- thumb_func_start sub_812B058
-sub_812B058: @ 812B058
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r8, r0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0812B0FC
- ldrh r1, [r0]
- str r1, [sp]
- ldrb r5, [r0, 0x4]
- ldrb r6, [r0, 0x6]
- ldrb r3, [r0, 0x8]
- mov r10, r3
- ldrb r7, [r0, 0xA]
- ldrb r1, [r0, 0xC]
- mov r9, r1
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- bl sub_8076F98
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- asrs r5, 24
- adds r0, r5, 0
- bl sub_8076F98
- adds r5, r0, 0
- lsls r4, 24
- asrs r4, 24
- lsls r5, 24
- asrs r5, 24
- lsls r6, 24
- asrs r6, 24
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_807712C
- ldr r2, _0812B100
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- mov r6, sp
- ldrh r6, [r6]
- strh r6, [r1, 0x8]
- strh r4, [r1, 0xA]
- strh r5, [r1, 0xC]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r1, 0xE]
- mov r0, r10
- strh r0, [r1, 0x10]
- strh r7, [r1, 0x12]
- mov r3, r9
- strh r3, [r1, 0x14]
- strh r2, [r1, 0x1C]
- strh r4, [r1, 0x1E]
- strh r3, [r1, 0x20]
- ldr r2, _0812B104
- str r2, [r1]
- mov r0, r8
- bl _call_via_r2
- 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
-_0812B0FC: .4byte gUnknown_03004B00
-_0812B100: .4byte gTasks
-_0812B104: .4byte sub_812B108
- thumb_func_end sub_812B058
-
- thumb_func_start sub_812B108
-sub_812B108: @ 812B108
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0812B14C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x20]
- adds r1, r0, 0x1
- strh r1, [r4, 0x20]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x14
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _0812B150
- movs r0, 0
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x8]
- movs r1, 0x1E
- ldrsb r1, [r4, r1]
- bl PlaySE12WithPanning
- ldrh r0, [r4, 0x10]
- subs r0, 0x1
- strh r0, [r4, 0x10]
- lsls r0, 16
- cmp r0, 0
- bne _0812B150
- adds r0, r5, 0
- bl move_anim_related_task_del
- b _0812B182
- .align 2, 0
-_0812B14C: .4byte gTasks
-_0812B150:
- ldr r1, _0812B188
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- cmp r0, r1
- bne _0812B182
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r0, [r4, 0xE]
- ldrh r1, [r4, 0x1E]
- adds r0, r1
- strh r0, [r4, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r4, r2]
- bl sub_8077104
- strh r0, [r4, 0x1E]
-_0812B182:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B188: .4byte gTasks
- thumb_func_end sub_812B108
-
- thumb_func_start sub_812B18C
-sub_812B18C: @ 812B18C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- lsls r0, 24
- lsrs r6, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0812B1CC
- ldr r0, _0812B1BC
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0812B1C4
- ldr r0, _0812B1C0
- ldrh r4, [r0]
- b _0812B272
- .align 2, 0
-_0812B1BC: .4byte gUnknown_03004B00
-_0812B1C0: .4byte 0x02019348
-_0812B1C4:
- adds r0, r5, 0
- bl move_anim_task_del
- b _0812B272
-_0812B1CC:
- ldr r0, _0812B1E0
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r2, r0, 0
- cmp r1, 0
- bne _0812B1E8
- ldr r0, _0812B1E4
- ldrb r4, [r0]
- b _0812B20E
- .align 2, 0
-_0812B1E0: .4byte gUnknown_03004B00
-_0812B1E4: .4byte gUnknown_0202F7C8
-_0812B1E8:
- cmp r1, 0x1
- bne _0812B1F8
- ldr r0, _0812B1F4
- ldrb r4, [r0]
- b _0812B20E
- .align 2, 0
-_0812B1F4: .4byte gUnknown_0202F7C9
-_0812B1F8:
- cmp r1, 0x2
- bne _0812B204
- ldr r0, _0812B200
- b _0812B206
- .align 2, 0
-_0812B200: .4byte gUnknown_0202F7C8
-_0812B204:
- ldr r0, _0812B230
-_0812B206:
- ldrb r1, [r0]
- movs r0, 0x2
- adds r4, r0, 0
- eors r4, r1
-_0812B20E:
- movs r1, 0
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- beq _0812B21A
- cmp r0, 0x3
- bne _0812B234
-_0812B21A:
- adds r0, r4, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- bne _0812B234
- adds r0, r5, 0
- bl move_anim_task_del
- b _0812B2B0
- .align 2, 0
-_0812B230: .4byte gUnknown_0202F7C9
-_0812B234:
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812B258
- ldr r1, _0812B250
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0812B254
- b _0812B266
- .align 2, 0
-_0812B250: .4byte gUnknown_02024A6A
-_0812B254: .4byte gEnemyParty
-_0812B258:
- ldr r1, _0812B290
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0812B294
-_0812B266:
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
-_0812B272:
- cmp r4, 0
- beq _0812B2AA
- ldr r0, _0812B298
- ldrh r2, [r0, 0x2]
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- cmp r0, 0xFF
- bne _0812B29C
- lsls r1, r6, 24
- asrs r1, 24
- adds r0, r4, 0
- bl PlayCry1
- b _0812B2AA
- .align 2, 0
-_0812B290: .4byte gUnknown_02024A6A
-_0812B294: .4byte gPlayerParty
-_0812B298: .4byte gUnknown_03004B00
-_0812B29C:
- lsls r1, r6, 24
- asrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- bl PlayCry3
-_0812B2AA:
- adds r0, r5, 0
- bl move_anim_task_del
-_0812B2B0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_812B18C
-
- thumb_func_start sub_812B2B8
-sub_812B2B8: @ 812B2B8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0812B2DC
- ldr r0, _0812B2D8
- b _0812B2E6
- .align 2, 0
-_0812B2D8: .4byte 0x02019348
-_0812B2DC:
- ldr r1, _0812B304
- ldr r0, _0812B308
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
-_0812B2E6:
- ldrh r0, [r0]
- cmp r0, 0
- beq _0812B2F6
- lsls r1, r4, 24
- asrs r1, 24
- movs r2, 0x4
- bl PlayCry3
-_0812B2F6:
- adds r0, r5, 0
- bl move_anim_task_del
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B304: .4byte gUnknown_0202F7CA
-_0812B308: .4byte gUnknown_0202F7C8
- thumb_func_end sub_812B2B8
-
- thumb_func_start sub_812B30C
-sub_812B30C: @ 812B30C
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0812B33C
- ldrh r5, [r0]
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- adds r0, r5, 0
- bl PlaySE1WithPanning
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B33C: .4byte gUnknown_03004B00
- thumb_func_end sub_812B30C
-
- thumb_func_start sub_812B340
-sub_812B340: @ 812B340
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0812B370
- ldrh r5, [r0]
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- adds r0, r5, 0
- bl PlaySE2WithPanning
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B370: .4byte gUnknown_03004B00
- thumb_func_end sub_812B340
-
- thumb_func_start sub_812B374
-sub_812B374: @ 812B374
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- mov r8, r0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _0812B3F8
- ldrb r5, [r0, 0x2]
- ldrb r6, [r0, 0x4]
- ldrh r1, [r0, 0x6]
- mov r9, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- bl sub_8076F98
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- asrs r5, 24
- adds r0, r5, 0
- bl sub_8076F98
- adds r5, r0, 0
- lsls r4, 24
- asrs r4, 24
- lsls r5, 24
- asrs r5, 24
- lsls r6, 24
- asrs r6, 24
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_807712C
- ldr r2, _0812B3FC
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r2
- movs r2, 0
- strh r4, [r1, 0xA]
- strh r5, [r1, 0xC]
- lsls r0, 24
- asrs r0, 24
- strh r0, [r1, 0xE]
- mov r0, r9
- strh r0, [r1, 0x12]
- strh r2, [r1, 0x1C]
- strh r4, [r1, 0x1E]
- ldr r2, _0812B400
- str r2, [r1]
- mov r0, r8
- bl _call_via_r2
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B3F8: .4byte gUnknown_03004B00
-_0812B3FC: .4byte gTasks
-_0812B400: .4byte sub_812B404
- thumb_func_end sub_812B374
-
- thumb_func_start sub_812B404
-sub_812B404: @ 812B404
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _0812B45C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r2, [r4, 0xE]
- ldrh r0, [r4, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x12
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bne _0812B43E
- movs r0, 0
- strh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- adds r0, r2, r1
- strh r0, [r4, 0x1E]
- movs r2, 0x1E
- ldrsh r0, [r4, r2]
- bl sub_8077104
- strh r0, [r4, 0x1E]
-_0812B43E:
- ldr r1, _0812B460
- ldrh r0, [r4, 0x1E]
- strb r0, [r1]
- movs r3, 0x1E
- ldrsh r1, [r4, r3]
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _0812B456
- adds r0, r5, 0
- bl move_anim_task_del
-_0812B456:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B45C: .4byte gTasks
-_0812B460: .4byte gUnknown_0202F7D2
- thumb_func_end sub_812B404
-
- thumb_func_start unref_sub_812B464
-unref_sub_812B464: @ 812B464
- bx lr
- thumb_func_end unref_sub_812B464
-
- thumb_func_start sub_812B468
-sub_812B468: @ 812B468
- ldr r1, _0812B478
- ldr r0, _0812B47C
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812B480
- str r1, [r0]
- bx lr
- .align 2, 0
-_0812B478: .4byte gUnknown_03004330
-_0812B47C: .4byte gUnknown_02024A60
-_0812B480: .4byte sub_812B484
- thumb_func_end sub_812B468
-
- thumb_func_start sub_812B484
-sub_812B484: @ 812B484
- push {lr}
- ldr r2, _0812B4B8
- ldr r1, _0812B4BC
- ldr r0, _0812B4C0
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0812B4D0
- ldr r0, _0812B4C4
- lsls r1, r3, 9
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x38
- bhi _0812B4CC
- ldr r0, _0812B4C8
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- b _0812B4D0
- .align 2, 0
-_0812B4B8: .4byte gUnknown_02024A64
-_0812B4BC: .4byte gBitTable
-_0812B4C0: .4byte gUnknown_02024A60
-_0812B4C4: .4byte gUnknown_02023A60
-_0812B4C8: .4byte gUnknown_08402080
-_0812B4CC:
- bl dp01_tbl6_exec_completed
-_0812B4D0:
- pop {r0}
- bx r0
- thumb_func_end sub_812B484
-
- thumb_func_start bx_battle_menu_t6_2
-bx_battle_menu_t6_2: @ 812B4D4
- push {r4,r5,lr}
- ldr r0, _0812B508
- ldrh r1, [r0, 0x2E]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0812B546
- movs r0, 0x5
- bl PlaySE
- bl sub_814A7FC
- ldr r1, _0812B50C
- ldr r0, _0812B510
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0812B524
- cmp r0, 0x1
- bgt _0812B514
- cmp r0, 0
- beq _0812B51E
- b _0812B540
- .align 2, 0
-_0812B508: .4byte gMain
-_0812B50C: .4byte gUnknown_02024E60
-_0812B510: .4byte gUnknown_02024A60
-_0812B514:
- cmp r0, 0x2
- beq _0812B52A
- cmp r0, 0x3
- beq _0812B536
- b _0812B540
-_0812B51E:
- movs r0, 0x1
- movs r1, 0x5
- b _0812B52E
-_0812B524:
- movs r0, 0x1
- movs r1, 0x6
- b _0812B52E
-_0812B52A:
- movs r0, 0x1
- movs r1, 0x7
-_0812B52E:
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- b _0812B540
-_0812B536:
- movs r0, 0x1
- movs r1, 0x8
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
-_0812B540:
- bl dp01_tbl6_exec_completed
- b _0812B64E
-_0812B546:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0812B584
- ldr r5, _0812B57C
- ldr r4, _0812B580
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0812B64E
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl nullsub_8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x1
- b _0812B5F2
- .align 2, 0
-_0812B57C: .4byte gUnknown_02024E60
-_0812B580: .4byte gUnknown_02024A60
-_0812B584:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0812B5C0
- ldr r5, _0812B5B8
- ldr r4, _0812B5BC
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0812B64E
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl nullsub_8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x1
- b _0812B5F2
- .align 2, 0
-_0812B5B8: .4byte gUnknown_02024E60
-_0812B5BC: .4byte gUnknown_02024A60
-_0812B5C0:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0812B60C
- ldr r5, _0812B604
- ldr r4, _0812B608
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0812B64E
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl nullsub_8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x2
-_0812B5F2:
- eors r0, r2
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3E4
- b _0812B64E
- .align 2, 0
-_0812B604: .4byte gUnknown_02024E60
-_0812B608: .4byte gUnknown_02024A60
-_0812B60C:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0812B64E
- ldr r5, _0812B654
- ldr r4, _0812B658
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0812B64E
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl nullsub_8
- ldrb r1, [r4]
- adds r1, r5
- ldrb r0, [r1]
- movs r2, 0x2
- eors r0, r2
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3E4
-_0812B64E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B654: .4byte gUnknown_02024E60
-_0812B658: .4byte gUnknown_02024A60
- thumb_func_end bx_battle_menu_t6_2
-
- thumb_func_start sub_812B65C
-sub_812B65C: @ 812B65C
- push {lr}
- ldr r2, _0812B684
- ldr r1, _0812B688
- ldr r0, _0812B68C
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0812B690
- cmp r1, r0
- bne _0812B680
- bl dp01_tbl6_exec_completed
-_0812B680:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B684: .4byte gSprites
-_0812B688: .4byte gUnknown_02024BE0
-_0812B68C: .4byte gUnknown_02024A60
-_0812B690: .4byte SpriteCallbackDummy
- thumb_func_end sub_812B65C
-
- thumb_func_start sub_812B694
-sub_812B694: @ 812B694
- push {lr}
- ldr r0, _0812B6A8
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- bne _0812B6A2
- bl dp01_tbl6_exec_completed
-_0812B6A2:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B6A8: .4byte gUnknown_03004210
- thumb_func_end sub_812B694
-
- thumb_func_start sub_812B6AC
-sub_812B6AC: @ 812B6AC
- push {lr}
- ldr r0, _0812B6DC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0812B6D6
- ldr r2, _0812B6E0
- ldr r0, _0812B6E4
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r0, _0812B6E8
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r2, 0x8]
- bl SetMainCallback2
-_0812B6D6:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B6DC: .4byte gPaletteFade
-_0812B6E0: .4byte gMain
-_0812B6E4: .4byte 0x0000043d
-_0812B6E8: .4byte gUnknown_030042D0
- thumb_func_end sub_812B6AC
-
- thumb_func_start bx_wait_t6
-bx_wait_t6: @ 812B6EC
- push {lr}
- ldr r0, _0812B718
- ldrb r0, [r0]
- cmp r0, 0
- beq _0812B70E
- ldr r0, _0812B71C
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0812B720
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0812B712
-_0812B70E:
- bl dp01_tbl6_exec_completed
-_0812B712:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B718: .4byte gUnknown_02024E6D
-_0812B71C: .4byte gUnknown_02024A60
-_0812B720: .4byte 0x02017810
- thumb_func_end bx_wait_t6
-
- thumb_func_start sub_812B724
-sub_812B724: @ 812B724
- push {lr}
- ldr r0, _0812B748
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0812B744
- ldr r1, _0812B74C
- ldr r0, _0812B750
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812B754
- str r1, [r0]
- bl sub_810BADC
-_0812B744:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B748: .4byte gPaletteFade
-_0812B74C: .4byte gUnknown_03004330
-_0812B750: .4byte gUnknown_02024A60
-_0812B754: .4byte sub_812B758
- thumb_func_end sub_812B724
-
- thumb_func_start sub_812B758
-sub_812B758: @ 812B758
- push {lr}
- ldr r0, _0812B784
- ldr r1, [r0, 0x4]
- ldr r0, _0812B788
- cmp r1, r0
- bne _0812B77E
- ldr r0, _0812B78C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0812B77E
- ldr r0, _0812B790
- ldrh r1, [r0]
- movs r0, 0x1
- bl dp01_build_cmdbuf_x23_aa_0
- bl dp01_tbl6_exec_completed
-_0812B77E:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B784: .4byte gMain
-_0812B788: .4byte sub_800F808
-_0812B78C: .4byte gPaletteFade
-_0812B790: .4byte word_203855E
- thumb_func_end sub_812B758
-
- thumb_func_start sub_812B794
-sub_812B794: @ 812B794
- push {lr}
- ldr r0, _0812B7B8
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0812B7BC
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0812B7B2
- bl dp01_tbl6_exec_completed
-_0812B7B2:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B7B8: .4byte gUnknown_02024A60
-_0812B7BC: .4byte 0x02017810
- thumb_func_end sub_812B794
-
- thumb_func_start dp01_tbl6_exec_completed
-dp01_tbl6_exec_completed: @ 812B7C0
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _0812B800
- ldr r4, _0812B804
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812B808
- str r1, [r0]
- ldr r0, _0812B80C
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0812B814
- bl GetMultiplayerId
- mov r1, sp
- strb r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- mov r2, sp
- bl dp01_prepare_buffer_wireless_probably
- ldr r1, _0812B810
- ldrb r0, [r4]
- lsls r0, 9
- adds r0, r1
- movs r1, 0x38
- strb r1, [r0]
- b _0812B826
- .align 2, 0
-_0812B800: .4byte gUnknown_03004330
-_0812B804: .4byte gUnknown_02024A60
-_0812B808: .4byte sub_812B484
-_0812B80C: .4byte gUnknown_020239F8
-_0812B810: .4byte gUnknown_02023A60
-_0812B814:
- ldr r2, _0812B830
- ldr r1, _0812B834
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
-_0812B826:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B830: .4byte gUnknown_02024A64
-_0812B834: .4byte gBitTable
- thumb_func_end dp01_tbl6_exec_completed
-
- thumb_func_start unref_sub_812B838
-unref_sub_812B838: @ 812B838
- push {lr}
- ldr r0, _0812B85C
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _0812B860
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0812B856
- bl dp01_tbl6_exec_completed
-_0812B856:
- pop {r0}
- bx r0
- .align 2, 0
-_0812B85C: .4byte gUnknown_02024A60
-_0812B860: .4byte 0x02017810
- thumb_func_end unref_sub_812B838
-
- thumb_func_start sub_812B864
-sub_812B864: @ 812B864
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B864
-
- thumb_func_start sub_812B870
-sub_812B870: @ 812B870
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B870
-
- thumb_func_start sub_812B87C
-sub_812B87C: @ 812B87C
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B87C
-
- thumb_func_start sub_812B888
-sub_812B888: @ 812B888
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B888
-
- thumb_func_start sub_812B894
-sub_812B894: @ 812B894
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B894
-
- thumb_func_start sub_812B8A0
-sub_812B8A0: @ 812B8A0
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B8A0
-
- thumb_func_start sub_812B8AC
-sub_812B8AC: @ 812B8AC
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B8AC
-
- thumb_func_start sub_812B8B8
-sub_812B8B8: @ 812B8B8
- push {r4-r6,lr}
- ldr r4, _0812B96C
- ldrb r0, [r4, 0x8]
- ldr r5, _0812B970
- ldrb r1, [r5]
- bl sub_8031AF4
- ldrb r6, [r4, 0x8]
- ldrb r0, [r5]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl GetMonSpriteTemplate_803C5A0
- ldr r0, _0812B974
- ldr r2, _0812B978
- ldrb r1, [r4, 0x8]
- lsls r1, 2
- adds r1, r2
- 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, 0x50
- movs r3, 0x1E
- bl CreateSprite
- ldr r6, _0812B97C
- ldrb r1, [r5]
- adds r1, r6
- strb r0, [r1]
- ldr r4, _0812B980
- ldrb r3, [r5]
- adds r0, r3, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xF0
- strh r1, [r0, 0x24]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _0812B984
- strh r1, [r0, 0x2E]
- ldrb r0, [r5]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, 0x1C
- adds r0, r4
- ldr r1, _0812B988
- str r1, [r0]
- ldr r1, _0812B98C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812B990
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812B96C: .4byte gSaveBlock2
-_0812B970: .4byte gUnknown_02024A60
-_0812B974: .4byte gUnknown_02024E8C
-_0812B978: .4byte gTrainerBackPicCoords
-_0812B97C: .4byte gUnknown_02024BE0
-_0812B980: .4byte gSprites
-_0812B984: .4byte 0x0000fffe
-_0812B988: .4byte sub_80313A0
-_0812B98C: .4byte gUnknown_03004330
-_0812B990: .4byte sub_812B65C
- thumb_func_end sub_812B8B8
-
- thumb_func_start sub_812B994
-sub_812B994: @ 812B994
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B994
-
- thumb_func_start sub_812B9A0
-sub_812B9A0: @ 812B9A0
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B9A0
-
- thumb_func_start sub_812B9AC
-sub_812B9AC: @ 812B9AC
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B9AC
-
- thumb_func_start sub_812B9B8
-sub_812B9B8: @ 812B9B8
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812B9B8
-
- thumb_func_start sub_812B9C4
-sub_812B9C4: @ 812B9C4
- push {r4,r5,lr}
- ldr r1, _0812BA00
- movs r0, 0x4
- strb r0, [r1, 0x8]
- ldr r1, _0812BA04
- movs r0, 0x1
- strb r0, [r1]
- ldr r5, _0812BA08
- ldrb r4, [r5]
- movs r0, 0x1
- bl battle_get_side_with_given_state
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x4
- bl move_anim_start_t4
- ldr r1, _0812BA0C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812BA10
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BA00: .4byte 0x02017840
-_0812BA04: .4byte gUnknown_02024E6D
-_0812BA08: .4byte gUnknown_02024A60
-_0812BA0C: .4byte gUnknown_03004330
-_0812BA10: .4byte bx_wait_t6
- thumb_func_end sub_812B9C4
-
- thumb_func_start sub_812BA14
-sub_812BA14: @ 812BA14
- push {r4,r5,lr}
- ldr r1, _0812BA58
- ldr r5, _0812BA5C
- ldrb r0, [r5]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r1, [r0]
- ldr r0, _0812BA60
- strb r1, [r0, 0x8]
- ldr r1, _0812BA64
- movs r0, 0x1
- strb r0, [r1]
- ldrb r4, [r5]
- movs r0, 0x1
- bl battle_get_side_with_given_state
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x4
- bl move_anim_start_t4
- ldr r1, _0812BA68
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812BA6C
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BA58: .4byte gUnknown_02023A60
-_0812BA5C: .4byte gUnknown_02024A60
-_0812BA60: .4byte 0x02017840
-_0812BA64: .4byte gUnknown_02024E6D
-_0812BA68: .4byte gUnknown_03004330
-_0812BA6C: .4byte bx_wait_t6
- thumb_func_end sub_812BA14
-
- thumb_func_start sub_812BA70
-sub_812BA70: @ 812BA70
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BA70
-
- thumb_func_start sub_812BA7C
-sub_812BA7C: @ 812BA7C
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BA7C
-
- thumb_func_start dp01t_10_6_message
-dp01t_10_6_message: @ 812BA88
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _0812BACC
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0812BAD0
- strh r1, [r0]
- ldr r4, _0812BAD4
- ldrb r0, [r4]
- lsls r0, 9
- ldr r1, _0812BAD8
- adds r0, r1
- ldrh r0, [r0]
- bl sub_8120AA8
- ldr r0, _0812BADC
- ldr r1, _0812BAE0
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _0812BAE4
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812BAE8
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BACC: .4byte gUnknown_030042A4
-_0812BAD0: .4byte gUnknown_030042A0
-_0812BAD4: .4byte gUnknown_02024A60
-_0812BAD8: .4byte gUnknown_02023A62
-_0812BADC: .4byte gUnknown_03004210
-_0812BAE0: .4byte gUnknown_020238CC
-_0812BAE4: .4byte gUnknown_03004330
-_0812BAE8: .4byte sub_812B694
- thumb_func_end dp01t_10_6_message
-
- thumb_func_start dp01t_11_6_message_for_player_only
-dp01t_11_6_message_for_player_only: @ 812BAEC
- push {lr}
- ldr r0, _0812BB04
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0812BB08
- bl dp01t_10_6_message
- b _0812BB0C
- .align 2, 0
-_0812BB04: .4byte gUnknown_02024A60
-_0812BB08:
- bl dp01_tbl6_exec_completed
-_0812BB0C:
- pop {r0}
- bx r0
- thumb_func_end dp01t_11_6_message_for_player_only
-
- thumb_func_start sub_812BB10
-sub_812BB10: @ 812BB10
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r0, _0812BBCC
- movs r2, 0
- strh r2, [r0]
- ldr r1, _0812BBD0
- movs r0, 0xA0
- strh r0, [r1]
- ldr r4, _0812BBD4
- movs r5, 0
- strb r2, [r4, 0x6]
- movs r0, 0x1B
- str r0, [sp]
- movs r0, 0x12
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0x2
- movs r3, 0xF
- bl FillWindowRect_DefaultPalette
- movs r0, 0x10
- str r0, [sp]
- movs r0, 0x24
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0x2
- movs r3, 0x23
- bl FillWindowRect_DefaultPalette
- ldr r1, _0812BBD8
- ldr r0, _0812BBDC
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812BBE0
- str r1, [r0]
- ldr r1, _0812BBE4
- movs r2, 0xC8
- lsls r2, 1
- movs r0, 0x23
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x12
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _0812BBE8
- ldr r3, _0812BBEC
- str r5, [sp]
- movs r0, 0
- movs r2, 0xC
- bl sub_814A5C0
- movs r4, 0
-_0812BB84:
- lsls r0, r4, 24
- lsrs r0, 24
- bl nullsub_8
- adds r4, 0x1
- cmp r4, 0x3
- ble _0812BB84
- ldr r1, _0812BBF0
- ldr r0, _0812BBDC
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_802E3E4
- ldr r0, _0812BBF4
- bl get_battle_strings_
- ldr r4, _0812BBD4
- ldr r1, _0812BBF8
- movs r2, 0xDC
- lsls r2, 1
- movs r0, 0x23
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x2
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BBCC: .4byte gUnknown_030042A4
-_0812BBD0: .4byte gUnknown_030042A0
-_0812BBD4: .4byte gUnknown_03004210
-_0812BBD8: .4byte gUnknown_03004330
-_0812BBDC: .4byte gUnknown_02024A60
-_0812BBE0: .4byte bx_battle_menu_t6_2
-_0812BBE4: .4byte gUnknown_08400D15
-_0812BBE8: .4byte 0x0000ffff
-_0812BBEC: .4byte 0x00002d9f
-_0812BBF0: .4byte gUnknown_02024E60
-_0812BBF4: .4byte gUnknown_08400CBB
-_0812BBF8: .4byte gUnknown_020238CC
- thumb_func_end sub_812BB10
-
- thumb_func_start sub_812BBFC
-sub_812BBFC: @ 812BBFC
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BBFC
-
- thumb_func_start sub_812BC08
-sub_812BC08: @ 812BC08
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BC08
-
- thumb_func_start sub_812BC14
-sub_812BC14: @ 812BC14
- 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, _0812BC44
- ldr r2, _0812BC48
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _0812BC4C
- str r1, [r0]
- ldr r1, _0812BC50
- ldrb r0, [r2]
- strb r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0812BC44: .4byte gUnknown_03004330
-_0812BC48: .4byte gUnknown_02024A60
-_0812BC4C: .4byte sub_812B724
-_0812BC50: .4byte gUnknown_02024E6C
- thumb_func_end sub_812BC14
-
- thumb_func_start sub_812BC54
-sub_812BC54: @ 812BC54
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BC54
-
- thumb_func_start sub_812BC60
-sub_812BC60: @ 812BC60
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BC60
-
- thumb_func_start sub_812BC6C
-sub_812BC6C: @ 812BC6C
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BC6C
-
- thumb_func_start sub_812BC78
-sub_812BC78: @ 812BC78
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BC78
-
- thumb_func_start sub_812BC84
-sub_812BC84: @ 812BC84
- push {lr}
- ldr r0, _0812BCB0
- ldr r1, _0812BCB4
- ldrb r1, [r1]
- adds r0, r1, r0
- ldrb r0, [r0]
- ldr r2, _0812BCB8
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0812BCBC
- adds r1, r2
- movs r2, 0xB
- bl sub_8045A5C
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0812BCB0: .4byte gUnknown_03004340
-_0812BCB4: .4byte gUnknown_02024A60
-_0812BCB8: .4byte gUnknown_02024A6A
-_0812BCBC: .4byte gPlayerParty
- thumb_func_end sub_812BC84
-
- thumb_func_start sub_812BCC0
-sub_812BCC0: @ 812BCC0
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BCC0
-
- thumb_func_start sub_812BCCC
-sub_812BCCC: @ 812BCCC
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BCCC
-
- thumb_func_start sub_812BCD8
-sub_812BCD8: @ 812BCD8
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BCD8
-
- thumb_func_start sub_812BCE4
-sub_812BCE4: @ 812BCE4
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BCE4
-
- thumb_func_start sub_812BCF0
-sub_812BCF0: @ 812BCF0
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BCF0
-
- thumb_func_start sub_812BCFC
-sub_812BCFC: @ 812BCFC
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BCFC
-
- thumb_func_start sub_812BD08
-sub_812BD08: @ 812BD08
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD08
-
- thumb_func_start sub_812BD14
-sub_812BD14: @ 812BD14
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD14
-
- thumb_func_start sub_812BD20
-sub_812BD20: @ 812BD20
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD20
-
- thumb_func_start sub_812BD2C
-sub_812BD2C: @ 812BD2C
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD2C
-
- thumb_func_start sub_812BD38
-sub_812BD38: @ 812BD38
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD38
-
- thumb_func_start sub_812BD44
-sub_812BD44: @ 812BD44
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD44
-
- thumb_func_start sub_812BD50
-sub_812BD50: @ 812BD50
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD50
-
- thumb_func_start sub_812BD5C
-sub_812BD5C: @ 812BD5C
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD5C
-
- thumb_func_start sub_812BD68
-sub_812BD68: @ 812BD68
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD68
-
- thumb_func_start sub_812BD74
-sub_812BD74: @ 812BD74
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BD74
-
- thumb_func_start sub_812BD80
-sub_812BD80: @ 812BD80
- push {r4,lr}
- ldr r4, _0812BDBC
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- movs r3, 0x3F
- cmp r0, 0
- bne _0812BD94
- movs r3, 0xC0
-_0812BD94:
- ldr r2, _0812BDC0
- ldrb r1, [r4]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- lsls r1, r3, 24
- asrs r1, 24
- bl PlaySE12WithPanning
- bl dp01_tbl6_exec_completed
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BDBC: .4byte gUnknown_02024A60
-_0812BDC0: .4byte gUnknown_02023A60
- thumb_func_end sub_812BD80
-
- thumb_func_start sub_812BDC4
-sub_812BDC4: @ 812BDC4
- push {lr}
- ldr r2, _0812BDEC
- ldr r0, _0812BDF0
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlayFanfare
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0812BDEC: .4byte gUnknown_02023A60
-_0812BDF0: .4byte gUnknown_02024A60
- thumb_func_end sub_812BDC4
-
- thumb_func_start sub_812BDF4
-sub_812BDF4: @ 812BDF4
- push {lr}
- ldr r1, _0812BE24
- ldr r0, _0812BE28
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0812BE2C
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- bl PlayCry1
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0812BE24: .4byte gUnknown_02024A6A
-_0812BE28: .4byte gUnknown_02024A60
-_0812BE2C: .4byte gPlayerParty
- thumb_func_end sub_812BDF4
-
- thumb_func_start dp01t_2E_6_battle_intro
-dp01t_2E_6_battle_intro: @ 812BE30
- push {lr}
- ldr r1, _0812BE58
- ldr r0, _0812BE5C
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80E43C0
- ldr r2, _0812BE60
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_0812BE58: .4byte gUnknown_02023A60
-_0812BE5C: .4byte gUnknown_02024A60
-_0812BE60: .4byte gUnknown_02024DE8
- thumb_func_end dp01t_2E_6_battle_intro
-
- thumb_func_start sub_812BE64
-sub_812BE64: @ 812BE64
- push {r4,r5,lr}
- ldr r5, _0812BEA0
- ldr r4, _0812BEA4
- ldrb r1, [r4]
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, _0812BEA8
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _0812BEAC
- adds r1, r2
- movs r2, 0xA
- bl sub_8045A5C
- ldrb r0, [r4]
- bl sub_804777C
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8043DFC
- bl dp01_tbl6_exec_completed
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BEA0: .4byte gUnknown_03004340
-_0812BEA4: .4byte gUnknown_02024A60
-_0812BEA8: .4byte gUnknown_02024A6A
-_0812BEAC: .4byte gPlayerParty
- thumb_func_end sub_812BE64
-
- thumb_func_start sub_812BEB0
-sub_812BEB0: @ 812BEB0
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BEB0
-
- thumb_func_start sub_812BEBC
-sub_812BEBC: @ 812BEBC
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BEBC
-
- thumb_func_start sub_812BEC8
-sub_812BEC8: @ 812BEC8
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BEC8
-
- thumb_func_start sub_812BED4
-sub_812BED4: @ 812BED4
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BED4
-
- thumb_func_start sub_812BEE0
-sub_812BEE0: @ 812BEE0
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r5, _0812BF18
- ldr r6, _0812BF1C
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, r5, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r5, 0x3
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- str r4, [sp]
- adds r0, r2, 0
- adds r1, r2, 0
- bl move_anim_start_t3
- lsls r0, 24
- cmp r0, 0
- beq _0812BF20
- bl dp01_tbl6_exec_completed
- b _0812BF2C
- .align 2, 0
-_0812BF18: .4byte gUnknown_02023A60
-_0812BF1C: .4byte gUnknown_02024A60
-_0812BF20:
- ldr r0, _0812BF34
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _0812BF38
- str r0, [r1]
-_0812BF2C:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BF34: .4byte gUnknown_03004330
-_0812BF38: .4byte sub_812B794
- thumb_func_end sub_812BEE0
-
- thumb_func_start sub_812BF3C
-sub_812BF3C: @ 812BF3C
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BF3C
-
- thumb_func_start sub_812BF48
-sub_812BF48: @ 812BF48
- push {lr}
- bl dp01_tbl6_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_812BF48
-
- thumb_func_start sub_812BF54
-sub_812BF54: @ 812BF54
- push {r4,lr}
- ldr r2, _0812BF98
- ldr r1, _0812BF9C
- ldr r4, _0812BFA0
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- movs r0, 0x5
- bl FadeOutMapMusic
- movs r0, 0x3
- bl BeginFastPaletteFade
- bl dp01_tbl6_exec_completed
- ldr r0, _0812BFA4
- ldrh r1, [r0]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0x2
- bne _0812BF90
- ldr r0, _0812BFA8
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, _0812BFAC
- str r0, [r1]
-_0812BF90:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812BF98: .4byte gUnknown_02024D26
-_0812BF9C: .4byte gUnknown_02023A60
-_0812BFA0: .4byte gUnknown_02024A60
-_0812BFA4: .4byte gUnknown_020239F8
-_0812BFA8: .4byte gUnknown_03004330
-_0812BFAC: .4byte sub_812B6AC
- thumb_func_end sub_812BF54
-
- thumb_func_start nullsub_78
-nullsub_78: @ 812BFB0
- bx lr
- thumb_func_end nullsub_78
-
- thumb_func_start sub_812BFB4
-sub_812BFB4: @ 812BFB4
- ldr r1, _0812BFC4
- ldr r0, _0812BFC8
- str r0, [r1]
- ldr r1, _0812BFCC
- ldr r0, _0812BFD0
- str r0, [r1]
- movs r0, 0x1
- bx lr
- .align 2, 0
-_0812BFC4: .4byte gUnknown_0300485C
-_0812BFC8: .4byte sub_808AB90
-_0812BFCC: .4byte gUnknown_03005CE4
-_0812BFD0: .4byte sub_812BFD4
- thumb_func_end sub_812BFB4
-
- thumb_func_start sub_812BFD4
-sub_812BFD4: @ 812BFD4
- push {lr}
- movs r0, 0x33
- bl FieldEffectStart
- ldr r0, _0812BFE8
- ldr r1, _0812BFEC
- ldrb r1, [r1]
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0812BFE8: .4byte gUnknown_0202FF84
-_0812BFEC: .4byte gUnknown_03005CE0
- thumb_func_end sub_812BFD4
-
- thumb_func_start sub_812BFF0
-sub_812BFF0: @ 812BFF0
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0812C014
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _0812C018
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0812C014: .4byte gTasks
-_0812C018: .4byte sub_812C01C
- thumb_func_end sub_812BFF0
-
- thumb_func_start sub_812C01C
-sub_812C01C: @ 812C01C
- push {lr}
- sub sp, 0x4
- movs r0, 0xEC
- bl PlaySE
- bl GetPlayerAvatarObjectId
- ldr r2, _0812C078
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x5]
- lsrs r1, 4
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- mvns r0, r0
- movs r1, 0x1F
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x8
- bl BeginNormalPaletteFade
- ldr r0, _0812C07C
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0812C080
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- movs r0, 0x33
- bl FieldEffectActiveListRemove
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0812C078: .4byte gSprites
-_0812C07C: .4byte sub_812C084
-_0812C080: .4byte gTasks
- thumb_func_end sub_812C01C
-
- thumb_func_start sub_812C084
-sub_812C084: @ 812C084
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0812C0C8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _0812C110
- ldr r0, _0812C0CC
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r4, r1, r0
- ldrh r1, [r4, 0x8]
- movs r3, 0x8
- ldrsh r0, [r4, r3]
- cmp r0, 0x40
- bne _0812C10C
- strh r2, [r4, 0x8]
- bl sub_80852FC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812C0D0
- adds r0, r5, 0
- bl DestroyTask
- b _0812C110
- .align 2, 0
-_0812C0C8: .4byte gPaletteFade
-_0812C0CC: .4byte gTasks
-_0812C0D0:
- ldr r0, _0812C104
- str r0, [r4]
- bl GetPlayerAvatarObjectId
- ldr r2, _0812C108
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r1, [r1, 0x5]
- lsrs r1, 4
- adds r1, 0x10
- movs r0, 0x1
- lsls r0, r1
- mvns r0, r0
- movs r1, 0x1F
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0x8
- movs r3, 0
- bl BeginNormalPaletteFade
- b _0812C110
- .align 2, 0
-_0812C104: .4byte sub_812C118
-_0812C108: .4byte gSprites
-_0812C10C:
- adds r0, r1, 0x1
- strh r0, [r4, 0x8]
-_0812C110:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812C084
-
- thumb_func_start sub_812C118
-sub_812C118: @ 812C118
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0812C13C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0812C136
- ldr r0, _0812C140
- bl ScriptContext1_SetupScript
- adds r0, r4, 0
- bl DestroyTask
-_0812C136:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C13C: .4byte gPaletteFade
-_0812C140: .4byte SweetScentNothingHereScript
- thumb_func_end sub_812C118
-
- thumb_func_start sub_812C144
-sub_812C144: @ 812C144
- push {lr}
- adds r2, r0, 0
- ldr r1, _0812C168
- ldrh r0, [r1]
- ldrh r3, [r2, 0x20]
- adds r0, r3
- strh r0, [r2, 0x20]
- ldrh r0, [r1, 0x2]
- ldrh r3, [r2, 0x22]
- adds r0, r3
- strh r0, [r2, 0x22]
- movs r3, 0x6
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _0812C16C
- ldrh r0, [r1, 0x4]
- b _0812C170
- .align 2, 0
-_0812C168: .4byte gUnknown_03004B00
-_0812C16C:
- ldrh r0, [r1, 0x4]
- negs r0, r0
-_0812C170:
- strh r0, [r2, 0x2E]
- ldrh r0, [r1, 0x8]
- strh r0, [r2, 0x30]
- ldr r0, _0812C180
- str r0, [r2, 0x1C]
- pop {r0}
- bx r0
- .align 2, 0
-_0812C180: .4byte sub_812C184
- thumb_func_end sub_812C144
-
- thumb_func_start sub_812C184
-sub_812C184: @ 812C184
- push {lr}
- adds r3, r0, 0
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0
- ble _0812C1C4
- ldrh r1, [r3, 0x32]
- lsls r0, r1, 16
- asrs r0, 24
- strh r0, [r3, 0x24]
- ldrh r0, [r3, 0x2E]
- adds r1, r0
- strh r1, [r3, 0x32]
- 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, 0x30]
- subs r0, 0x1
- strh r0, [r3, 0x30]
- b _0812C1CA
-_0812C1C4:
- adds r0, r3, 0
- bl move_anim_8072740
-_0812C1CA:
- pop {r0}
- bx r0
- thumb_func_end sub_812C184
-
- thumb_func_start sub_812C1D0
-sub_812C1D0: @ 812C1D0
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _0812C21C
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 8
- movs r0, 0x80
- lsls r0, 12
- adds r4, r0
- asrs r4, 16
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8077ABC
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 8
- movs r0, 0x80
- lsls r0, 12
- adds r1, r0
- asrs r1, 16
- adds r0, r4, 0
- movs r2, 0
- bl sub_8046234
- adds r0, r5, 0
- bl move_anim_task_del
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C21C: .4byte gUnknown_0202F7C9
- thumb_func_end sub_812C1D0
-
- thumb_func_start sub_812C220
-sub_812C220: @ 812C220
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x5A
- strh r0, [r4, 0x2E]
- ldr r0, _0812C258
- str r0, [r4, 0x1C]
- movs r0, 0x7
- strh r0, [r4, 0x30]
- ldr r1, _0812C25C
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r1, _0812C260
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r2, _0812C264
- ldrh r1, [r4, 0x30]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C258: .4byte sub_80782D8
-_0812C25C: .4byte sub_812C268
-_0812C260: .4byte REG_BLDCNT
-_0812C264: .4byte REG_BLDALPHA
- thumb_func_end sub_812C220
-
- thumb_func_start sub_812C268
-sub_812C268: @ 812C268
- push {lr}
- adds r3, r0, 0
- ldr r2, _0812C29C
- ldrh r1, [r3, 0x30]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r3, 0x30]
- subs r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- cmp r0, 0
- bge _0812C296
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812C2A0
- str r0, [r3, 0x1C]
-_0812C296:
- pop {r0}
- bx r0
- .align 2, 0
-_0812C29C: .4byte REG_BLDALPHA
-_0812C2A0: .4byte sub_812C2A4
- thumb_func_end sub_812C268
-
- thumb_func_start sub_812C2A4
-sub_812C2A4: @ 812C2A4
- push {lr}
- ldr r1, _0812C2B8
- movs r2, 0
- strh r2, [r1]
- adds r1, 0x2
- strh r2, [r1]
- bl move_anim_8072740
- pop {r0}
- bx r0
- .align 2, 0
-_0812C2B8: .4byte REG_BLDCNT
- thumb_func_end sub_812C2A4
-
- thumb_func_start sub_812C2BC
-sub_812C2BC: @ 812C2BC
- push {r4-r7,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r4, _0812C348
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r7, r0, 0
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8078764
- ldrh r0, [r5, 0x20]
- subs r0, r7
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r5, 0x22]
- subs r1, r6
- lsls r1, 16
- asrs r1, 16
- bl sub_80790F0
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 23
- adds r0, r1
- lsrs r4, r0, 16
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0812C31A
- movs r1, 0x80
- lsls r1, 7
- adds r0, r4, r1
- lsls r0, 16
- lsrs r4, r0, 16
-_0812C31A:
- movs r3, 0x80
- lsls r3, 1
- str r4, [sp]
- adds r0, r5, 0
- movs r1, 0
- adds r2, r3, 0
- bl sub_8078FDC
- ldr r0, _0812C34C
- ldrh r0, [r0, 0x4]
- strh r0, [r5, 0x2E]
- strh r7, [r5, 0x32]
- strh r6, [r5, 0x36]
- ldr r0, _0812C350
- str r0, [r5, 0x1C]
- ldr r1, _0812C354
- adds r0, r5, 0
- bl oamt_set_x3A_32
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C348: .4byte gUnknown_0202F7C9
-_0812C34C: .4byte gUnknown_03004B00
-_0812C350: .4byte sub_8078B34
-_0812C354: .4byte move_anim_8072740
- thumb_func_end sub_812C2BC
-
- thumb_func_start sub_812C358
-sub_812C358: @ 812C358
- ldr r2, _0812C378
- movs r3, 0xFD
- lsls r3, 6
- adds r1, r3, 0
- strh r1, [r2]
- adds r2, 0x2
- movs r3, 0x80
- lsls r3, 5
- adds r1, r3, 0
- strh r1, [r2]
- movs r1, 0x4
- strh r1, [r0, 0x2E]
- ldr r1, _0812C37C
- str r1, [r0, 0x1C]
- bx lr
- .align 2, 0
-_0812C378: .4byte REG_BLDCNT
-_0812C37C: .4byte sub_812C380
- thumb_func_end sub_812C358
-
- thumb_func_start sub_812C380
-sub_812C380: @ 812C380
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, _0812C3A0
- ldrh r1, [r4, 0x2E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0812C3A4
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- b _0812C3A8
- .align 2, 0
-_0812C3A0: .4byte REG_BLDALPHA
-_0812C3A4:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
-_0812C3A8:
- strh r0, [r4, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0xF
- beq _0812C3B6
- cmp r0, 0x4
- bne _0812C3BE
-_0812C3B6:
- ldrh r0, [r4, 0x30]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r4, 0x30]
-_0812C3BE:
- ldrh r0, [r4, 0x32]
- adds r1, r0, 0x1
- strh r1, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x46
- ble _0812C3FC
- ldr r0, _0812C404
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- movs r0, 0
- strh r0, [r4, 0x32]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- subs r2, 0x12
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812C408
- str r0, [r4, 0x1C]
-_0812C3FC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C404: .4byte REG_BLDCNT
-_0812C408: .4byte sub_812C40C
- thumb_func_end sub_812C380
-
- thumb_func_start sub_812C40C
-sub_812C40C: @ 812C40C
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x32]
- adds r1, r0, 0x1
- strh r1, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- ble _0812C448
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- subs r2, 0x12
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- adds r0, r3, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0812C448
- ldr r0, _0812C44C
- str r0, [r3, 0x1C]
-_0812C448:
- pop {r0}
- bx r0
- .align 2, 0
-_0812C44C: .4byte sub_812C450
- thumb_func_end sub_812C40C
-
- thumb_func_start sub_812C450
-sub_812C450: @ 812C450
- push {lr}
- adds r2, r0, 0
- movs r1, 0x34
- ldrsh r0, [r2, r1]
- cmp r0, 0x6
- bhi _0812C4A8
- lsls r0, 2
- ldr r1, _0812C468
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812C468: .4byte _0812C46C
- .align 2, 0
-_0812C46C:
- .4byte _0812C488
- .4byte _0812C488
- .4byte _0812C492
- .4byte _0812C492
- .4byte _0812C4A0
- .4byte _0812C4A0
- .4byte _0812C4A8
-_0812C488:
- movs r1, 0
- movs r0, 0x1
- strh r0, [r2, 0x24]
- strh r1, [r2, 0x26]
- b _0812C4B0
-_0812C492:
- ldr r0, _0812C49C
- strh r0, [r2, 0x24]
- movs r0, 0
- b _0812C4AE
- .align 2, 0
-_0812C49C: .4byte 0x0000ffff
-_0812C4A0:
- movs r0, 0
- strh r0, [r2, 0x24]
- movs r0, 0x1
- b _0812C4AE
-_0812C4A8:
- movs r0, 0
- strh r0, [r2, 0x24]
- ldr r0, _0812C4F0
-_0812C4AE:
- strh r0, [r2, 0x26]
-_0812C4B0:
- ldrh r0, [r2, 0x34]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r2, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _0812C4C2
- strh r3, [r2, 0x34]
-_0812C4C2:
- ldrh r0, [r2, 0x36]
- adds r1, r0, 0x1
- strh r1, [r2, 0x36]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- ble _0812C4EA
- movs r0, 0x10
- strh r0, [r2, 0x2E]
- strh r3, [r2, 0x30]
- ldr r1, _0812C4F4
- 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, _0812C4F8
- str r0, [r2, 0x1C]
-_0812C4EA:
- pop {r0}
- bx r0
- .align 2, 0
-_0812C4F0: .4byte 0x0000ffff
-_0812C4F4: .4byte REG_BLDCNT
-_0812C4F8: .4byte sub_812C4FC
- thumb_func_end sub_812C450
-
- thumb_func_start sub_812C4FC
-sub_812C4FC: @ 812C4FC
- push {r4,lr}
- adds r2, r0, 0
- ldr r4, _0812C558
- ldrh r1, [r2, 0x2E]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r4]
- ldrh r0, [r2, 0x30]
- adds r1, r0, 0x1
- strh r1, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0812C526
- ldrh r0, [r2, 0x2E]
- subs r0, 0x1
- movs r1, 0
- strh r0, [r2, 0x2E]
- strh r1, [r2, 0x30]
-_0812C526:
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _0812C53A
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
-_0812C53A:
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bge _0812C550
- ldr r1, _0812C55C
- movs r0, 0
- strh r0, [r1]
- strh r0, [r4]
- adds r0, r2, 0
- bl move_anim_8072740
-_0812C550:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C558: .4byte REG_BLDALPHA
-_0812C55C: .4byte REG_BLDCNT
- thumb_func_end sub_812C4FC
-
- thumb_func_start sub_812C560
-sub_812C560: @ 812C560
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0812C57C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0812C580
- str r0, [r1]
- ldr r1, _0812C584
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0812C57C: .4byte gTasks
-_0812C580: .4byte sub_812C588
-_0812C584: .4byte gUnknown_0202F7B2
- thumb_func_end sub_812C560
-
- thumb_func_start sub_812C588
-sub_812C588: @ 812C588
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80789BC
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r7, _0812C614
- lsls r5, r4, 2
- adds r1, r5, r4
- lsls r1, 3
- adds r1, r7
- ldrh r0, [r1, 0x12]
- adds r0, 0x1
- strh r0, [r1, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _0812C5F8
- ldr r0, _0812C618
- lsls r2, r6, 4
- adds r1, r2, 0
- adds r1, 0xB
- lsls r1, 1
- adds r1, r0
- ldrh r3, [r1]
- mov r8, r3
- movs r3, 0xA
- mov r9, r7
- adds r7, r5, 0
- mov r12, r0
- adds r5, r2, 0
- lsls r0, r6, 5
- add r0, r12
- adds r2, r0, 0
- adds r2, 0x14
-_0812C5D6:
- ldrh r0, [r2]
- strh r0, [r1]
- subs r2, 0x2
- subs r1, 0x2
- subs r3, 0x1
- cmp r3, 0
- bgt _0812C5D6
- adds r0, r5, 0x1
- lsls r0, 1
- add r0, r12
- movs r1, 0
- mov r2, r8
- strh r2, [r0]
- adds r0, r7, r4
- lsls r0, 3
- add r0, r9
- strh r1, [r0, 0x12]
-_0812C5F8:
- ldr r0, _0812C61C
- ldrh r1, [r0, 0xE]
- ldr r0, _0812C620
- cmp r1, r0
- bne _0812C608
- adds r0, r4, 0
- bl DestroyTask
-_0812C608:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C614: .4byte gTasks
-_0812C618: .4byte gPlttBufferFaded
-_0812C61C: .4byte gUnknown_03004B00
-_0812C620: .4byte 0x0000ffff
- thumb_func_end sub_812C588
-
- thumb_func_start sub_812C624
-sub_812C624: @ 812C624
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0812C640
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0812C644
- str r0, [r1]
- ldr r1, _0812C648
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0812C640: .4byte gTasks
-_0812C644: .4byte sub_812C64C
-_0812C648: .4byte gUnknown_0202F7B2
- thumb_func_end sub_812C624
-
- thumb_func_start sub_812C64C
-sub_812C64C: @ 812C64C
- 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
- bl sub_80789BC
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r5, _0812C70C
- mov r0, r8
- lsls r3, r0, 2
- adds r1, r3, r0
- lsls r1, 3
- adds r1, r5
- ldrh r0, [r1, 0x12]
- adds r0, 0x1
- strh r0, [r1, 0x12]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _0812C6EE
- ldr r0, _0812C710
- lsls r2, r7, 4
- adds r1, r2, 0
- adds r1, 0xB
- lsls r1, 1
- adds r1, r0
- ldrh r6, [r1]
- movs r4, 0xA
- mov r10, r3
- mov r9, r0
- adds r5, r2, 0
- ldr r2, _0812C714
- mov r12, r2
- lsls r0, r7, 5
- add r0, r9
- adds r3, r0, 0
- adds r3, 0x14
-_0812C6A0:
- ldrh r0, [r3]
- strh r0, [r1]
- subs r3, 0x2
- subs r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bgt _0812C6A0
- adds r0, r5, 0x1
- lsls r0, 1
- add r0, r9
- strh r6, [r0]
- adds r1, r5, 0
- adds r1, 0xB
- lsls r1, 1
- add r1, r12
- ldrh r6, [r1]
- movs r4, 0xA
- lsls r0, r7, 5
- add r0, r12
- adds r2, r0, 0
- adds r2, 0x14
-_0812C6CA:
- ldrh r0, [r2]
- strh r0, [r1]
- subs r2, 0x2
- subs r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bgt _0812C6CA
- adds r0, r5, 0x1
- lsls r0, 1
- add r0, r12
- movs r1, 0
- strh r6, [r0]
- mov r0, r10
- add r0, r8
- lsls r0, 3
- ldr r2, _0812C70C
- adds r0, r2
- strh r1, [r0, 0x12]
-_0812C6EE:
- ldr r0, _0812C718
- ldrh r1, [r0, 0xE]
- ldr r0, _0812C71C
- cmp r1, r0
- bne _0812C6FE
- mov r0, r8
- bl DestroyTask
-_0812C6FE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C70C: .4byte gTasks
-_0812C710: .4byte gPlttBufferFaded
-_0812C714: .4byte gPlttBufferUnfaded
-_0812C718: .4byte gUnknown_03004B00
-_0812C71C: .4byte 0x0000ffff
- thumb_func_end sub_812C64C
-
- thumb_func_start sub_812C720
-sub_812C720: @ 812C720
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _0812C784
- ldrb r0, [r0]
- mov r5, sp
- adds r5, 0x2
- movs r1, 0
- mov r2, sp
- adds r3, r5, 0
- bl sub_807A3FC
- ldr r0, _0812C788
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812C754
- ldr r1, _0812C78C
- ldrh r0, [r1, 0x4]
- negs r0, r0
- strh r0, [r1, 0x4]
-_0812C754:
- ldr r1, _0812C78C
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x2E]
- mov r2, sp
- ldrh r0, [r1, 0x4]
- ldrh r2, [r2]
- adds r0, r2
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0x6]
- ldrh r5, [r5]
- adds r0, r5
- strh r0, [r4, 0x36]
- ldr r0, _0812C790
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- ldr r0, _0812C794
- str r0, [r4, 0x1C]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C784: .4byte gUnknown_0202F7C9
-_0812C788: .4byte gUnknown_0202F7C8
-_0812C78C: .4byte gUnknown_03004B00
-_0812C790: .4byte 0x0000ffce
-_0812C794: .4byte sub_812C798
- thumb_func_end sub_812C720
-
- thumb_func_start sub_812C798
-sub_812C798: @ 812C798
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _0812C7BA
- movs r1, 0
- movs r0, 0x1E
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x30]
- ldr r0, _0812C7C0
- str r0, [r4, 0x1C]
- ldr r1, _0812C7C4
- adds r0, r4, 0
- bl oamt_set_x3A_32
-_0812C7BA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C7C0: .4byte sub_80782D8
-_0812C7C4: .4byte sub_812C7C8
- thumb_func_end sub_812C798
-
- thumb_func_start sub_812C7C8
-sub_812C7C8: @ 812C7C8
- push {lr}
- adds r3, r0, 0
- ldrh r1, [r3, 0x30]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0812C7F4
- 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]
-_0812C7F4:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- bne _0812C808
- adds r0, r3, 0
- bl move_anim_8072740
-_0812C808:
- pop {r0}
- bx r0
- thumb_func_end sub_812C7C8
-
- thumb_func_start sub_812C80C
-sub_812C80C: @ 812C80C
- push {r4,r5,lr}
- adds r4, r0, 0
- bl sub_8078650
- ldr r5, _0812C83C
- 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, _0812C840
- str r0, [r4, 0x1C]
- ldr r1, _0812C844
- adds r0, r4, 0
- bl oamt_set_x3A_32
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C83C: .4byte gUnknown_03004B00
-_0812C840: .4byte sub_8078600
-_0812C844: .4byte move_anim_8072740
- thumb_func_end sub_812C80C
-
- thumb_func_start sub_812C848
-sub_812C848: @ 812C848
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812C8A8
- adds r0, r4, 0
- bl sub_8078650
- ldr r5, _0812C884
- movs r2, 0
- ldrsh r1, [r5, r2]
- adds r0, r4, 0
- bl sub_807867C
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0812C89C
- ldr r0, _0812C888
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0812C88C
- ldrh r0, [r5, 0x4]
- b _0812C8A2
- .align 2, 0
-_0812C884: .4byte gUnknown_03004B00
-_0812C888: .4byte gUnknown_0202F7C8
-_0812C88C:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- negs r0, r0
- strh r0, [r4, 0x30]
- movs r2, 0x6
- ldrsh r0, [r5, r2]
- negs r0, r0
- b _0812C8A6
-_0812C89C:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- negs r0, r0
-_0812C8A2:
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x6]
-_0812C8A6:
- strh r0, [r4, 0x32]
-_0812C8A8:
- 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 r0, 2
- movs r3, 0xFF
- ldrh r1, [r4, 0x30]
- ldrh r2, [r4, 0x34]
- adds r1, r2
- strh r1, [r4, 0x34]
- ldrh r1, [r4, 0x32]
- ldrh r2, [r4, 0x36]
- adds r1, r2
- strh r1, [r4, 0x36]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- lsrs r2, r1, 31
- adds r1, r2
- asrs r1, 1
- strh r1, [r4, 0x24]
- ands r0, r3
- movs r1, 0x5
- bl Sin
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- lsrs r2, r1, 31
- adds r1, r2
- asrs r1, 1
- adds r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xF0
- bls _0812C900
- adds r0, r4, 0
- bl move_anim_8072740
-_0812C900:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812C848
-
- thumb_func_start sub_812C908
-sub_812C908: @ 812C908
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0812C91E
- adds r0, r2, 0
- bl move_anim_8072740
-_0812C91E:
- pop {r0}
- bx r0
- thumb_func_end sub_812C908
-
- thumb_func_start sub_812C924
-sub_812C924: @ 812C924
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0812C940
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812C948
- ldr r1, _0812C944
- movs r0, 0
- b _0812C94C
- .align 2, 0
-_0812C940: .4byte gUnknown_0202F7C9
-_0812C944: .4byte gUnknown_03004B00
-_0812C948:
- ldr r1, _0812C95C
- movs r0, 0x1
-_0812C94C:
- strh r0, [r1, 0xE]
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C95C: .4byte gUnknown_03004B00
- thumb_func_end sub_812C924
-
- thumb_func_start sub_812C960
-sub_812C960: @ 812C960
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0812C974
- ldr r0, [r0]
- cmp r0, 0
- ble _0812C97C
- ldr r1, _0812C978
- movs r0, 0
- b _0812C980
- .align 2, 0
-_0812C974: .4byte gUnknown_0202F7B8
-_0812C978: .4byte gUnknown_03004B00
-_0812C97C:
- ldr r1, _0812C98C
- movs r0, 0x1
-_0812C980:
- strh r0, [r1, 0xE]
- adds r0, r2, 0
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_0812C98C: .4byte gUnknown_03004B00
- thumb_func_end sub_812C960
-
- thumb_func_start sub_812C990
-sub_812C990: @ 812C990
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _0812C9EC
- ldr r2, _0812C9F0
- 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 r0, _0812C9F4
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0812C9F8
- strh r1, [r0]
- ldr r0, _0812C9FC
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- adds r0, r4, 0
- movs r1, 0
- bl sub_8078764
- ldrb r1, [r4, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812CA00
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812C9EC: .4byte REG_WINOUT
-_0812C9F0: .4byte 0x00001f3f
-_0812C9F4: .4byte gUnknown_030042C4
-_0812C9F8: .4byte gUnknown_03004240
-_0812C9FC: .4byte REG_WIN0H
-_0812CA00: .4byte sub_812CA04
- thumb_func_end sub_812C990
-
- thumb_func_start sub_812CA04
-sub_812CA04: @ 812CA04
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bhi _0812CAC4
- lsls r0, 2
- ldr r1, _0812CA1C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812CA1C: .4byte _0812CA20
- .align 2, 0
-_0812CA20:
- .4byte _0812CA38
- .4byte _0812CA56
- .4byte _0812CA76
- .4byte _0812CA56
- .4byte _0812CA96
- .4byte _0812CAA6
-_0812CA38:
- 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
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0812CAC4
- b _0812CA9E
-_0812CA56:
- ldrh r0, [r4, 0x30]
- adds r0, 0x75
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x15
- bne _0812CAC4
- movs r0, 0
- strh r0, [r4, 0x32]
- b _0812CA9E
-_0812CA76:
- ldrh r0, [r4, 0x30]
- subs r0, 0x75
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x29
- bne _0812CAC4
- movs r0, 0
- strh r0, [r4, 0x32]
- b _0812CA9E
-_0812CA96:
- adds r0, r4, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
-_0812CA9E:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0812CAC4
-_0812CAA6:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0812CAC4
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812CACC
- str r0, [r4, 0x1C]
-_0812CAC4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812CACC: .4byte sub_812CAD0
- thumb_func_end sub_812CA04
-
- thumb_func_start sub_812CAD0
-sub_812CAD0: @ 812CAD0
- push {r4,lr}
- ldr r2, _0812CAF4
- ldr r3, _0812CAF8
- adds r1, r3, 0
- strh r1, [r2]
- movs r3, 0x80
- lsls r3, 19
- ldrh r1, [r3]
- movs r4, 0x80
- lsls r4, 8
- adds r2, r4, 0
- eors r1, r2
- strh r1, [r3]
- bl move_anim_8072740
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812CAF4: .4byte REG_WINOUT
-_0812CAF8: .4byte 0x00003f3f
- thumb_func_end sub_812CAD0
-
- thumb_func_start sub_812CAFC
-sub_812CAFC: @ 812CAFC
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _0812CB70
- movs r1, 0x6
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0812CB28
- ldr r4, _0812CB74
- 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]
-_0812CB28:
- ldrh r0, [r6]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- movs r3, 0
- strh r0, [r5, 0x20]
- ldrh r0, [r6, 0x2]
- ldrh r4, [r5, 0x22]
- adds r0, r4
- strh r0, [r5, 0x22]
- ldrh r2, [r5, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r4, _0812CB78
- adds r0, r4, 0
- ands r1, r0
- ldr r0, _0812CB7C
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x4]
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0812CB84
- ldrb r1, [r5, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r5, 0x3]
- ldr r0, _0812CB80
- strh r0, [r5, 0x24]
- movs r0, 0x2
- b _0812CB8A
- .align 2, 0
-_0812CB70: .4byte gUnknown_03004B00
-_0812CB74: .4byte gUnknown_0202F7C8
-_0812CB78: .4byte 0x000003ff
-_0812CB7C: .4byte 0xfffffc00
-_0812CB80: .4byte 0x0000fff4
-_0812CB84:
- movs r0, 0xC
- strh r0, [r5, 0x24]
- ldr r0, _0812CBA8
-_0812CB8A:
- strh r0, [r5, 0x30]
- ldr r1, _0812CBAC
- ldrh r0, [r1, 0x8]
- strh r0, [r5, 0x2E]
- movs r2, 0x34
- ldrsh r0, [r5, r2]
- cmp r0, 0xFF
- beq _0812CB9E
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x34]
-_0812CB9E:
- ldr r0, _0812CBB0
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812CBA8: .4byte 0x0000fffe
-_0812CBAC: .4byte gUnknown_03004B00
-_0812CBB0: .4byte sub_812CBB4
- thumb_func_end sub_812CAFC
-
- thumb_func_start sub_812CBB4
-sub_812CBB4: @ 812CBB4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x32]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812CBF2
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- lsls r0, 16
- cmp r0, 0
- bne _0812CC12
- adds r0, r2, 0x1
- strh r0, [r4, 0x32]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812CC12
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xDE
- bl PlaySE1WithPanning
- b _0812CC12
-_0812CBF2:
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x30]
- subs r0, r1
- strh r0, [r4, 0x24]
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _0812CC04
- negs r0, r0
-_0812CC04:
- cmp r0, 0xC
- bne _0812CC12
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- subs r0, r2, 0x1
- strh r0, [r4, 0x32]
-_0812CC12:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812CC20
- adds r0, r4, 0
- bl move_anim_8072740
-_0812CC20:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812CBB4
-
- thumb_func_start sub_812CC28
-sub_812CC28: @ 812CC28
- push {lr}
- ldrb r2, [r0, 0x1]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0, 0x1]
- movs r1, 0xFF
- strh r1, [r0, 0x34]
- bl sub_812CAFC
- pop {r0}
- bx r0
- thumb_func_end sub_812CC28
-
- thumb_func_start sub_812CC44
-sub_812CC44: @ 812CC44
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0812CC7A
- ldr r1, _0812CC88
- ldr r2, _0812CC8C
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0812CC90
- ldr r2, _0812CC94
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0812CC98
- movs r0, 0xA0
- strh r0, [r1]
- ldr r1, _0812CC9C
- ldr r0, _0812CCA0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r1, 0x4
- ldr r0, _0812CCA4
- ldrh r0, [r0]
- strh r0, [r1]
-_0812CC7A:
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812CC88: .4byte REG_WININ
-_0812CC8C: .4byte 0x00001f3f
-_0812CC90: .4byte gUnknown_03004200
-_0812CC94: .4byte 0x000098f0
-_0812CC98: .4byte gUnknown_03004244
-_0812CC9C: .4byte REG_WIN1H
-_0812CCA0: .4byte gUnknown_030042C4
-_0812CCA4: .4byte gUnknown_03004240
- thumb_func_end sub_812CC44
-
- thumb_func_start sub_812CCA8
-sub_812CCA8: @ 812CCA8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0812CCCA
- ldr r1, _0812CCD8
- ldr r2, _0812CCDC
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0812CCE0
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0812CCE4
- strh r1, [r0]
-_0812CCCA:
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812CCD8: .4byte REG_WININ
-_0812CCDC: .4byte 0x00003f3f
-_0812CCE0: .4byte gUnknown_03004200
-_0812CCE4: .4byte gUnknown_03004244
- thumb_func_end sub_812CCA8
-
- thumb_func_start sub_812CCE8
-sub_812CCE8: @ 812CCE8
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _0812CCFC
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0812CD04
- ldr r4, _0812CD00
- b _0812CD06
- .align 2, 0
-_0812CCFC: .4byte gUnknown_03004B00
-_0812CD00: .4byte gUnknown_0202F7C8
-_0812CD04:
- ldr r4, _0812CD58
-_0812CD06:
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r6, [r6, 0x2]
- adds r0, r6
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- ldr r2, _0812CD5C
- ldrh r0, [r2, 0x4]
- strh r0, [r5, 0x26]
- movs r3, 0
- lsls r0, 16
- asrs r0, 16
- ldrh r4, [r2, 0x6]
- movs r6, 0x6
- ldrsh r1, [r2, r6]
- cmp r0, r1
- ble _0812CD3E
- movs r3, 0x1
-_0812CD3E:
- strh r3, [r5, 0x2E]
- movs r0, 0
- strh r0, [r5, 0x30]
- ldrh r0, [r2, 0x8]
- strh r0, [r5, 0x32]
- ldrh r0, [r2, 0xA]
- strh r0, [r5, 0x34]
- strh r4, [r5, 0x36]
- ldr r0, _0812CD60
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812CD58: .4byte gUnknown_0202F7C9
-_0812CD5C: .4byte gUnknown_03004B00
-_0812CD60: .4byte sub_812CD64
- thumb_func_end sub_812CCE8
-
- thumb_func_start sub_812CD64
-sub_812CD64: @ 812CD64
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x32]
- ldrh r1, [r2, 0x30]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r2, 0x30]
- ldr r1, _0812CDAC
- movs r3, 0x30
- ldrsh r0, [r2, r3]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 20
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x34]
- ldrh r3, [r2, 0x26]
- adds r1, r0, r3
- strh r1, [r2, 0x26]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _0812CDB0
- lsls r0, r1, 16
- asrs r0, 16
- movs r3, 0x36
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bge _0812CDC2
- adds r0, r2, 0
- bl move_anim_8072740
- b _0812CDC2
- .align 2, 0
-_0812CDAC: .4byte gSineTable
-_0812CDB0:
- lsls r0, r1, 16
- asrs r0, 16
- movs r3, 0x36
- ldrsh r1, [r2, r3]
- cmp r0, r1
- ble _0812CDC2
- adds r0, r2, 0
- bl move_anim_8072740
-_0812CDC2:
- pop {r0}
- bx r0
- thumb_func_end sub_812CD64
-
- thumb_func_start sub_812CDC8
-sub_812CDC8: @ 812CDC8
- push {r4-r7,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0812CDE8
- adds r5, r1, r0
- ldr r0, _0812CDEC
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0812CDF4
- ldr r4, _0812CDF0
- b _0812CDF6
- .align 2, 0
-_0812CDE8: .4byte gTasks
-_0812CDEC: .4byte gUnknown_03004B00
-_0812CDF0: .4byte gUnknown_0202F7C8
-_0812CDF4:
- ldr r4, _0812CE3C
-_0812CDF6:
- ldrb r0, [r4]
- bl sub_8077FC0
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r0, [r4]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r6, 0
- adds r1, r0, 0
- adds r1, 0x24
- movs r2, 0
- strh r1, [r5, 0x8]
- strh r1, [r5, 0xA]
- subs r0, 0x21
- strh r0, [r5, 0xC]
- cmp r0, 0
- bge _0812CE20
- strh r2, [r5, 0xC]
-_0812CE20:
- ldrh r0, [r5, 0x8]
- strh r0, [r5, 0xE]
- movs r0, 0x8
- strh r0, [r5, 0x10]
- ldr r1, _0812CE40
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x12]
- strh r2, [r5, 0x14]
- strh r2, [r5, 0x16]
- cmp r7, 0x1
- bne _0812CE48
- ldr r0, _0812CE44
- b _0812CE4A
- .align 2, 0
-_0812CE3C: .4byte gUnknown_0202F7C9
-_0812CE40: .4byte gUnknown_03004B00
-_0812CE44: .4byte gUnknown_030042C0
-_0812CE48:
- ldr r0, _0812CE68
-_0812CE4A:
- ldrh r2, [r0]
- strh r2, [r5, 0x18]
- adds r3, r2, 0
- adds r3, 0xF0
- strh r3, [r5, 0x1A]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x1C]
- movs r4, 0x4
- ldrsh r0, [r1, r4]
- cmp r0, 0
- bne _0812CE6C
- strh r3, [r5, 0x1E]
- ldrh r3, [r5, 0x18]
- b _0812CE70
- .align 2, 0
-_0812CE68: .4byte gUnknown_03004288
-_0812CE6C:
- strh r2, [r5, 0x1E]
- ldrh r3, [r5, 0x1A]
-_0812CE70:
- movs r0, 0
- strh r0, [r5, 0x26]
- ldrh r1, [r5, 0xC]
- lsls r2, r1, 16
- asrs r1, r2, 16
- movs r6, 0xE
- ldrsh r0, [r5, r6]
- cmp r1, r0
- bgt _0812CEA6
- ldr r4, _0812CEB0
- movs r0, 0xF0
- lsls r0, 3
- adds r0, r4
- mov r12, r0
-_0812CE8C:
- asrs r2, 16
- lsls r1, r2, 1
- adds r0, r1, r4
- strh r3, [r0]
- add r1, r12
- strh r3, [r1]
- adds r2, 0x1
- lsls r2, 16
- asrs r1, r2, 16
- movs r6, 0xE
- ldrsh r0, [r5, r6]
- cmp r1, r0
- ble _0812CE8C
-_0812CEA6:
- cmp r7, 0x1
- bne _0812CEB8
- ldr r0, _0812CEB4
- b _0812CEBA
- .align 2, 0
-_0812CEB0: .4byte gUnknown_03004DE0
-_0812CEB4: .4byte REG_BG1HOFS
-_0812CEB8:
- ldr r0, _0812CEE4
-_0812CEBA:
- str r0, [sp]
- ldr r0, _0812CEE8
- 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, _0812CEEC
- str r0, [r5]
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812CEE4: .4byte REG_BG2HOFS
-_0812CEE8: .4byte 0xa2600001
-_0812CEEC: .4byte sub_812CEF0
- thumb_func_end sub_812CDC8
-
- thumb_func_start sub_812CEF0
-sub_812CEF0: @ 812CEF0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _0812CF40
- adds r4, r0, r1
- ldrh r0, [r4, 0x8]
- ldrh r1, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r4, 0xC]
- movs r3, 0xC
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bge _0812CF18
- strh r2, [r4, 0x8]
-_0812CF18:
- ldrh r1, [r4, 0x10]
- movs r2, 0x10
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0812CF44
- ldrh r0, [r4, 0xA]
- ldrh r1, [r4, 0x12]
- subs r0, r1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- ldrh r2, [r4, 0xC]
- movs r3, 0xC
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bge _0812CF48
- strh r2, [r4, 0xA]
- movs r0, 0x1
- strh r0, [r4, 0x26]
- b _0812CF48
- .align 2, 0
-_0812CF40: .4byte gTasks
-_0812CF44:
- subs r0, r1, 0x1
- strh r0, [r4, 0x10]
-_0812CF48:
- ldrh r0, [r4, 0x14]
- adds r0, 0x1
- strh r0, [r4, 0x14]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0812CF74
- movs r0, 0
- strh r0, [r4, 0x14]
- movs r1, 0
- movs r2, 0x16
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0812CF66
- movs r1, 0x1
-_0812CF66:
- strh r1, [r4, 0x16]
- cmp r1, 0
- beq _0812CF70
- ldrh r0, [r4, 0x18]
- b _0812CF72
-_0812CF70:
- ldrh r0, [r4, 0x1A]
-_0812CF72:
- strh r0, [r4, 0x20]
-_0812CF74:
- ldrh r1, [r4, 0x8]
- lsls r3, r1, 16
- asrs r1, r3, 16
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bge _0812CFA8
- ldr r5, _0812D000
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
-_0812CF8A:
- asrs r3, 16
- lsls r1, r3, 1
- adds r2, r1, r5
- ldrh r0, [r4, 0x20]
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r4, 0x20]
- strh r0, [r1]
- adds r3, 0x1
- lsls r3, 16
- asrs r1, r3, 16
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r1, r0
- blt _0812CF8A
-_0812CFA8:
- ldrh r1, [r4, 0xA]
- lsls r3, r1, 16
- asrs r1, r3, 16
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bgt _0812CFDC
- ldr r5, _0812D000
- movs r0, 0xF0
- lsls r0, 3
- adds r6, r5, r0
-_0812CFBE:
- asrs r3, 16
- lsls r1, r3, 1
- adds r2, r1, r5
- ldrh r0, [r4, 0x1E]
- strh r0, [r2]
- adds r1, r6
- ldrh r0, [r4, 0x1E]
- strh r0, [r1]
- adds r3, 0x1
- lsls r3, 16
- asrs r1, r3, 16
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r1, r0
- ble _0812CFBE
-_0812CFDC:
- movs r3, 0x26
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _0812CFF8
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0812CFF2
- ldr r1, _0812D004
- movs r0, 0x3
- strb r0, [r1, 0x15]
-_0812CFF2:
- adds r0, r7, 0
- bl move_anim_task_del
-_0812CFF8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812D000: .4byte gUnknown_03004DE0
-_0812D004: .4byte gUnknown_03004DC0
- thumb_func_end sub_812CEF0
-
- thumb_func_start sub_812D008
-sub_812D008: @ 812D008
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _0812D05C
- adds r4, r0
- movs r5, 0
- strh r5, [r4, 0x8]
- strh r5, [r4, 0xA]
- ldr r6, _0812D060
- ldrb r0, [r6]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xC]
- ldrb r0, [r6]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xE]
- movs r0, 0x20
- strh r0, [r4, 0x10]
- ldr r0, _0812D064
- strh r0, [r4, 0x12]
- strh r5, [r4, 0x14]
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _0812D068
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812D05C: .4byte gTasks
-_0812D060: .4byte gUnknown_0202F7C8
-_0812D064: .4byte 0x0000ffec
-_0812D068: .4byte sub_812D06C
- thumb_func_end sub_812D008
-
- thumb_func_start sub_812D06C
-sub_812D06C: @ 812D06C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _0812D098
- adds r6, r0, r1
- movs r1, 0x8
- ldrsh r0, [r6, r1]
- cmp r0, 0x5
- bls _0812D08C
- b _0812D246
-_0812D08C:
- lsls r0, 2
- ldr r1, _0812D09C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812D098: .4byte gTasks
-_0812D09C: .4byte _0812D0A0
- .align 2, 0
-_0812D0A0:
- .4byte _0812D0B8
- .4byte _0812D178
- .4byte _0812D1A6
- .4byte _0812D1BA
- .4byte _0812D1D0
- .4byte _0812D238
-_0812D0B8:
- movs r0, 0xC
- ldrsh r2, [r6, r0]
- ldrh r1, [r6, 0xA]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0812D0CE
- movs r1, 0x10
- ldrsh r0, [r6, r1]
- subs r0, r2, r0
- b _0812D0D4
-_0812D0CE:
- movs r1, 0x10
- ldrsh r0, [r6, r1]
- adds r0, r2, r0
-_0812D0D4:
- lsls r0, 16
- lsrs r1, r0, 16
- ldrh r2, [r6, 0x12]
- ldrh r0, [r6, 0xE]
- adds r2, r0
- ldr r0, _0812D168
- lsls r1, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- ldrb r4, [r6, 0xA]
- movs r3, 0x6
- subs r3, r4
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xBA
- bl PlaySE12WithPanning
- cmp r4, 0x40
- beq _0812D138
- ldr r5, _0812D16C
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r3, r1, r5
- ldrh r0, [r6, 0xA]
- movs r2, 0x1
- ands r2, r0
- adds r3, 0x3F
- ldrb r4, [r3]
- movs r0, 0x2
- negs r0, r0
- ands r0, r4
- orrs r0, r2
- strb r0, [r3]
- adds r5, 0x1C
- adds r1, r5
- ldr r0, _0812D170
- str r0, [r1]
-_0812D138:
- ldrh r1, [r6, 0xA]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0812D150
- ldrh r0, [r6, 0x10]
- subs r0, 0x6
- strh r0, [r6, 0x10]
- ldrh r0, [r6, 0x12]
- subs r0, 0x6
- strh r0, [r6, 0x12]
-_0812D150:
- ldrh r1, [r6, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0812D174
- adds r0, r6, 0
- bl sub_80798F4
- ldrh r0, [r6, 0xA]
- adds r0, 0x1
- strh r0, [r6, 0xA]
- strh r4, [r6, 0x8]
- b _0812D246
- .align 2, 0
-_0812D168: .4byte gBattleAnimSpriteTemplate_83D7220
-_0812D16C: .4byte gSprites
-_0812D170: .4byte SpriteCallbackDummy
-_0812D174: .4byte gUnknown_08402400
-_0812D178:
- adds r0, r6, 0
- bl sub_807992C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0812D246
- movs r2, 0xA
- ldrsh r1, [r6, r2]
- cmp r1, 0x6
- bne _0812D198
- movs r0, 0x8
- strh r0, [r6, 0x14]
- movs r0, 0x3
- strh r0, [r6, 0x8]
- b _0812D246
-_0812D198:
- cmp r1, 0x2
- bgt _0812D19E
- movs r0, 0xA
-_0812D19E:
- strh r0, [r6, 0x14]
- movs r0, 0x2
- strh r0, [r6, 0x8]
- b _0812D246
-_0812D1A6:
- ldrh r0, [r6, 0x14]
- movs r2, 0x14
- ldrsh r1, [r6, r2]
- cmp r1, 0
- beq _0812D1B6
- subs r0, 0x1
- strh r0, [r6, 0x14]
- b _0812D246
-_0812D1B6:
- strh r1, [r6, 0x8]
- b _0812D246
-_0812D1BA:
- ldrh r1, [r6, 0x14]
- movs r2, 0x14
- ldrsh r0, [r6, r2]
- cmp r0, 0
- beq _0812D1CA
- subs r0, r1, 0x1
- strh r0, [r6, 0x14]
- b _0812D246
-_0812D1CA:
- movs r0, 0x4
- strh r0, [r6, 0x8]
- b _0812D246
-_0812D1D0:
- movs r5, 0
- movs r7, 0
- ldr r3, _0812D22C
- movs r0, 0x1C
- adds r0, r3
- mov r8, r0
-_0812D1DC:
- lsls r0, r5, 4
- adds r0, r5
- lsls r4, r0, 2
- adds r0, r3, 0
- adds r0, 0x14
- adds r0, r4, r0
- ldr r1, [r0]
- ldr r0, _0812D230
- cmp r1, r0
- bne _0812D218
- adds r0, r4, r3
- strh r2, [r0, 0x2E]
- movs r1, 0x6
- strh r1, [r0, 0x30]
- movs r1, 0x2
- str r2, [sp]
- str r3, [sp, 0x4]
- bl StartSpriteAnim
- mov r0, r8
- adds r1, r4, r0
- ldr r0, _0812D234
- str r0, [r1]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r2, [sp]
- ldr r3, [sp, 0x4]
- cmp r7, 0x6
- beq _0812D222
-_0812D218:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x3F
- bls _0812D1DC
-_0812D222:
- strh r7, [r6, 0x14]
- movs r0, 0x5
- strh r0, [r6, 0x8]
- b _0812D246
- .align 2, 0
-_0812D22C: .4byte gSprites
-_0812D230: .4byte gBattleAnimSpriteTemplate_83D7220
-_0812D234: .4byte sub_812D254
-_0812D238:
- movs r1, 0x14
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _0812D246
- adds r0, r2, 0
- bl move_anim_task_del
-_0812D246:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812D06C
-
- thumb_func_start sub_812D254
-sub_812D254: @ 812D254
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0812D288
- ldr r3, _0812D290
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x2E
- 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
-_0812D288:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812D290: .4byte gTasks
- thumb_func_end sub_812D254
-
- thumb_func_start sub_812D294
-sub_812D294: @ 812D294
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0812D2A8
- adds r0, r5, 0
- movs r1, 0
- bl sub_80787B0
-_0812D2A8:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x27
- bgt _0812D2DA
- ldrh r0, [r5, 0x2E]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0812D2CC
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- b _0812D2D8
-_0812D2CC:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
-_0812D2D8:
- strb r0, [r2]
-_0812D2DA:
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0x1E
- ble _0812D2F0
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0812D2F0:
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x3D
- bne _0812D33C
- ldr r1, _0812D344
- adds r0, r5, 0
- bl oamt_set_x3A_32
- ldrh r0, [r5, 0x24]
- ldrh r2, [r5, 0x20]
- adds r0, r2
- 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, 0x24]
- strh r1, [r5, 0x26]
- movs r0, 0x14
- strh r0, [r5, 0x2E]
- ldr r4, _0812D348
- 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, _0812D34C
- str r0, [r5, 0x1C]
-_0812D33C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812D344: .4byte move_anim_8072740
-_0812D348: .4byte gUnknown_0202F7C9
-_0812D34C: .4byte sub_8078B34
- thumb_func_end sub_812D294
-
- thumb_func_start sub_812D350
-sub_812D350: @ 812D350
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0812D370
- 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 _0812D374
- cmp r0, 0x1
- beq _0812D394
- b _0812D3A6
- .align 2, 0
-_0812D370: .4byte gTasks
-_0812D374:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0812D390
- adds r0, r4, 0
- bl sub_80798F4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812D3A6
- .align 2, 0
-_0812D390: .4byte gUnknown_084024B0
-_0812D394:
- adds r0, r4, 0
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _0812D3A6
- adds r0, r5, 0
- bl move_anim_task_del
-_0812D3A6:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812D350
-
- thumb_func_start sub_812D3AC
-sub_812D3AC: @ 812D3AC
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r6, r0, 24
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _0812D40C
- cmp r0, 0x1
- bgt _0812D3CC
- cmp r0, 0
- beq _0812D3D6
- b _0812D4AE
-_0812D3CC:
- cmp r0, 0x2
- beq _0812D43C
- cmp r0, 0x3
- beq _0812D490
- b _0812D4AE
-_0812D3D6:
- ldr r4, _0812D408
- 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, r6, 0
- movs r1, 0
- bl sub_8078E70
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r5, 0x30]
- strh r0, [r5, 0x32]
- b _0812D484
- .align 2, 0
-_0812D408: .4byte gUnknown_0202F7C8
-_0812D40C:
- ldrh r0, [r5, 0x30]
- adds r0, 0x60
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- subs r0, 0x1A
- strh r0, [r5, 0x32]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- movs r0, 0x32
- ldrsh r2, [r5, r0]
- adds r0, r6, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0812D43C
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
-_0812D43C:
- ldrh r0, [r5, 0x30]
- adds r0, 0x60
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- adds r0, 0x30
- strh r0, [r5, 0x32]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- movs r0, 0x32
- ldrsh r2, [r5, r0]
- adds r0, r6, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bne _0812D4AE
- movs r0, 0
- strh r0, [r5, 0x34]
- ldr r1, _0812D48C
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r6, 0
- bl sub_8078F40
-_0812D484:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _0812D4AE
- .align 2, 0
-_0812D48C: .4byte gSprites
-_0812D490:
- ldrh r0, [r5, 0x26]
- subs r0, 0x6
- strh r0, [r5, 0x26]
- movs r1, 0x22
- ldrsh r0, [r5, r1]
- movs r2, 0x26
- ldrsh r1, [r5, r2]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- bge _0812D4AE
- adds r0, r5, 0
- bl move_anim_8072740
-_0812D4AE:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_812D3AC
-
- thumb_func_start sub_812D4B4
-sub_812D4B4: @ 812D4B4
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0812D4CC
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812D4D4
- ldr r0, _0812D4D0
- b _0812D4D8
- .align 2, 0
-_0812D4CC: .4byte gUnknown_0202F7C8
-_0812D4D0: .4byte 0x0000fff0
-_0812D4D4:
- movs r0, 0x80
- lsls r0, 1
-_0812D4D8:
- strh r0, [r4, 0x20]
- movs r0, 0
- strh r0, [r4, 0x22]
- ldr r0, _0812D4E8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812D4E8: .4byte sub_812D4EC
- thumb_func_end sub_812D4B4
-
- thumb_func_start sub_812D4EC
-sub_812D4EC: @ 812D4EC
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x48
- strh r0, [r4, 0x2E]
- ldr r0, _0812D50C
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812D510
- ldrh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 20
- b _0812D518
- .align 2, 0
-_0812D50C: .4byte gUnknown_0202F7C8
-_0812D510:
- ldrh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 20
- negs r0, r0
-_0812D518:
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x30]
- adds r0, 0x10
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r5, r0, r1
- strh r5, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x3
- bl __modsi3
- lsls r0, 16
- cmp r0, 0
- bne _0812D564
- ldr r0, _0812D584
- ldrh r1, [r4, 0x24]
- ldrh r2, [r4, 0x20]
- adds r1, r2
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r4, 0x22]
- adds r2, r5
- lsls r2, 16
- asrs r2, 16
- adds r3, r4, 0
- adds r3, 0x43
- ldrb r3, [r3]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl CreateSpriteAndAnimate
-_0812D564:
- 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
- bls _0812D57E
- adds r0, r4, 0
- bl move_anim_8072740
-_0812D57E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812D584: .4byte gSpriteTemplate_8402500
- thumb_func_end sub_812D4EC
-
- thumb_func_start sub_812D588
-sub_812D588: @ 812D588
- push {r4,lr}
- adds r4, r0, 0
- bl Random
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0812D5A2
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x4
- b _0812D5AA
-_0812D5A2:
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x5
-_0812D5AA:
- ldr r3, _0812D5DC
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _0812D5E0
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- bl Random
- movs r1, 0x7
- ands r0, r1
- adds r1, r0, 0
- cmp r1, 0x3
- ble _0812D5CC
- negs r0, r1
- lsls r0, 24
- lsrs r0, 24
-_0812D5CC:
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4, 0x26]
- ldr r0, _0812D5E4
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812D5DC: .4byte 0x000003ff
-_0812D5E0: .4byte 0xfffffc00
-_0812D5E4: .4byte sub_812D5E8
- thumb_func_end sub_812D588
-
- thumb_func_start sub_812D5E8
-sub_812D5E8: @ 812D5E8
- 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, 0x1D
- bgt _0812D62A
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _0812D65E
- 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]
- movs r0, 0
- b _0812D65C
-_0812D62A:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0x2
- bne _0812D640
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0812D640:
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- cmp r0, 0x3
- bne _0812D658
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812D670
- strh r0, [r3, 0x30]
-_0812D658:
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
-_0812D65C:
- strh r0, [r3, 0x30]
-_0812D65E:
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0x3C
- ble _0812D66C
- adds r0, r3, 0
- bl DestroySprite
-_0812D66C:
- pop {r0}
- bx r0
- .align 2, 0
-_0812D670: .4byte 0x0000ffff
- thumb_func_end sub_812D5E8
-
- thumb_func_start sub_812D674
-sub_812D674: @ 812D674
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _0812D6AC
- 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 _0812D6B4
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0812D6B0
- adds r0, r4, 0
- bl sub_80798F4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812D6C6
- .align 2, 0
-_0812D6AC: .4byte gTasks
-_0812D6B0: .4byte gUnknown_08402518
-_0812D6B4:
- adds r0, r4, 0
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _0812D6C6
- adds r0, r5, 0
- bl move_anim_task_del
-_0812D6C6:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812D674
-
- thumb_func_start sub_812D6CC
-sub_812D6CC: @ 812D6CC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _0812D704
- 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 _0812D70C
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0812D708
- adds r0, r4, 0
- bl sub_80798F4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812D71E
- .align 2, 0
-_0812D704: .4byte gTasks
-_0812D708: .4byte gUnknown_08402540
-_0812D70C:
- adds r0, r4, 0
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _0812D71E
- adds r0, r5, 0
- bl move_anim_task_del
-_0812D71E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812D6CC
-
- thumb_func_start sub_812D724
-sub_812D724: @ 812D724
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0812D736
- cmp r0, 0x1
- beq _0812D760
- b _0812D788
-_0812D736:
- adds r0, r4, 0
- movs r1, 0
- bl sub_80787B0
- movs r0, 0x90
- lsls r0, 4
- strh r0, [r4, 0x30]
- ldr r0, _0812D75C
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0812D788
- .align 2, 0
-_0812D75C: .4byte gUnknown_0202F7C8
-_0812D760:
- ldrh r2, [r4, 0x30]
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r4, 0x26]
- subs r0, r1
- strh r0, [r4, 0x26]
- subs r2, 0x60
- strh r2, [r4, 0x30]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- cmp r0, r1
- ble _0812D788
- adds r0, r4, 0
- bl move_anim_8072740
-_0812D788:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812D724
-
- thumb_func_start sub_812D790
-sub_812D790: @ 812D790
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _0812D7C8
- 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 _0812D7D0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0812D7CC
- adds r0, r4, 0
- bl sub_80798F4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812D7E2
- .align 2, 0
-_0812D7C8: .4byte gTasks
-_0812D7CC: .4byte gUnknown_08402590
-_0812D7D0:
- adds r0, r4, 0
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _0812D7E2
- adds r0, r5, 0
- bl move_anim_task_del
-_0812D7E2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812D790
-
- thumb_func_start sub_812D7E8
-sub_812D7E8: @ 812D7E8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _0812D818
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r3, r1, 0
- cmp r0, 0x4
- bls _0812D80E
- b _0812DAFA
-_0812D80E:
- lsls r0, 2
- ldr r1, _0812D81C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812D818: .4byte gTasks
-_0812D81C: .4byte _0812D820
- .align 2, 0
-_0812D820:
- .4byte _0812D834
- .4byte _0812D888
- .4byte _0812D8C4
- .4byte _0812DA48
- .4byte _0812DA84
-_0812D834:
- ldr r1, _0812D850
- movs r0, 0
- strh r0, [r1]
- ldr r0, _0812D854
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812D85C
- ldr r0, _0812D858
- b _0812D85E
- .align 2, 0
-_0812D850: .4byte REG_MOSAIC
-_0812D854: .4byte gUnknown_0202F7C8
-_0812D858: .4byte REG_BG1CNT
-_0812D85C:
- ldr r0, _0812D87C
-_0812D85E:
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- ldr r0, _0812D880
- mov r6, r8
- lsls r1, r6, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812D884
- ldrh r0, [r0]
- strh r0, [r1, 0x1C]
- b _0812DA2A
- .align 2, 0
-_0812D87C: .4byte REG_BG2CNT
-_0812D880: .4byte gTasks
-_0812D884: .4byte gUnknown_03004B00
-_0812D888:
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- adds r4, r0, r3
- ldrh r0, [r4, 0xC]
- adds r1, r0, 0x1
- strh r1, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bgt _0812D8A2
- b _0812DAFA
-_0812D8A2:
- movs r0, 0
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- ldrh r2, [r4, 0xA]
- ldr r1, _0812D8C0
- lsls r0, r2, 4
- orrs r0, r2
- strh r0, [r1]
- cmp r2, 0xF
- beq _0812D8BC
- b _0812DAFA
-_0812D8BC:
- b _0812DA78
- .align 2, 0
-_0812D8C0: .4byte REG_MOSAIC
-_0812D8C4:
- ldr r5, _0812D8F4
- ldrb r0, [r5]
- ldr r1, _0812D8F8
- ldrb r1, [r1]
- mov r2, r8
- lsls r4, r2, 2
- adds r2, r4, r2
- lsls r2, 3
- adds r2, r3
- ldrb r2, [r2, 0x1C]
- bl sub_8031FC4
- ldrb r1, [r5]
- mov r0, sp
- bl sub_8078954
- bl sub_8076BE0
- lsls r0, 24
- mov r9, r4
- cmp r0, 0
- beq _0812D8FC
- movs r1, 0
- b _0812D906
- .align 2, 0
-_0812D8F4: .4byte gUnknown_0202F7C8
-_0812D8F8: .4byte gUnknown_0202F7C9
-_0812D8FC:
- ldrb r0, [r5]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r1, r0, 24
-_0812D906:
- ldr r0, _0812D9CC
- lsls r1, 2
- adds r1, r0
- ldr r2, _0812D9D0
- ldr r0, _0812D9D4
- ldrb r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 11
- ldr r1, [r1]
- adds r1, r0
- ldr r2, [sp]
- ldr r0, _0812D9D8
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0812D9DC
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0812DA20
- ldr r5, _0812D9E0
- ldrh r0, [r5]
- bl sub_80AEB1C
- adds r4, r0, 0
- ldrh r0, [r5, 0x2]
- bl sub_80AEB1C
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _0812D9A2
- ldr r6, [sp, 0x4]
- movs r5, 0
- movs r0, 0x7
- mov r12, r0
- movs r7, 0
-_0812D956:
- movs r4, 0
- adds r3, r7, r6
- mov r1, r12
- lsls r0, r1, 1
- adds r2, r0, r6
-_0812D960:
- ldrh r1, [r3]
- ldrh r0, [r2]
- strh r0, [r3]
- strh r1, [r2]
- adds r3, 0x2
- subs r2, 0x2
- adds r4, 0x1
- cmp r4, 0x3
- ble _0812D960
- movs r2, 0x20
- add r12, r2
- adds r7, 0x40
- adds r5, 0x1
- cmp r5, 0x7
- ble _0812D956
- movs r5, 0
- movs r0, 0x80
- lsls r0, 3
- adds r3, r0, 0
-_0812D986:
- adds r2, r5, 0x1
- lsls r0, r5, 6
- adds r1, r0, r6
- movs r4, 0x7
-_0812D98E:
- ldrh r0, [r1]
- eors r0, r3
- strh r0, [r1]
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _0812D98E
- adds r5, r2, 0
- cmp r5, 0x7
- ble _0812D986
-_0812D9A2:
- ldr r0, _0812D9E0
- ldrh r0, [r0, 0x2]
- bl sub_80AEB1C
- lsls r0, 24
- cmp r0, 0
- beq _0812D9F0
- ldr r3, _0812D9E4
- ldr r4, _0812D9E8
- ldr r2, _0812D9D4
- ldrb r0, [r2]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x10
- adds r0, r1
- ldr r1, _0812D9EC
- b _0812DA0A
- .align 2, 0
-_0812D9CC: .4byte gUnknown_081FAF4C
-_0812D9D0: .4byte gUnknown_02024E84
-_0812D9D4: .4byte gUnknown_0202F7C8
-_0812D9D8: .4byte 0x040000d4
-_0812D9DC: .4byte 0x84000200
-_0812D9E0: .4byte 0x02019348
-_0812D9E4: .4byte gSprites
-_0812D9E8: .4byte gUnknown_02024BE0
-_0812D9EC: .4byte gSpriteAffineAnimTable_81E7C18
-_0812D9F0:
- ldr r3, _0812DA34
- ldr r4, _0812DA38
- ldr r2, _0812DA3C
- ldrb r0, [r2]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x10
- adds r0, r1
- ldr r1, _0812DA40
-_0812DA0A:
- str r1, [r0]
- ldrb r0, [r2]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- bl StartSpriteAffineAnim
-_0812DA20:
- ldr r0, _0812DA44
- mov r1, r9
- add r1, r8
- lsls r1, 3
- adds r1, r0
-_0812DA2A:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0812DAFA
- .align 2, 0
-_0812DA34: .4byte gSprites
-_0812DA38: .4byte gUnknown_02024BE0
-_0812DA3C: .4byte gUnknown_0202F7C8
-_0812DA40: .4byte gSpriteAffineAnimTable_81E7BEC
-_0812DA44: .4byte gTasks
-_0812DA48:
- mov r1, r8
- lsls r0, r1, 2
- add r0, r8
- lsls r0, 3
- adds r4, r0, r3
- ldrh r0, [r4, 0xC]
- adds r1, r0, 0x1
- strh r1, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0812DAFA
- movs r0, 0
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- ldrh r2, [r4, 0xA]
- ldr r1, _0812DA80
- lsls r0, r2, 4
- orrs r0, r2
- strh r0, [r1]
- cmp r2, 0
- bne _0812DAFA
-_0812DA78:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812DAFA
- .align 2, 0
-_0812DA80: .4byte REG_MOSAIC
-_0812DA84:
- ldr r1, _0812DAA0
- movs r0, 0
- strh r0, [r1]
- ldr r0, _0812DAA4
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812DAAC
- ldr r2, _0812DAA8
- b _0812DAAE
- .align 2, 0
-_0812DAA0: .4byte REG_MOSAIC
-_0812DAA4: .4byte gUnknown_0202F7C8
-_0812DAA8: .4byte REG_BG1CNT
-_0812DAAC:
- ldr r2, _0812DB08
-_0812DAAE:
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0812DAF4
- ldr r4, _0812DB0C
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812DAF4
- ldr r0, _0812DB10
- mov r2, r8
- lsls r1, r2, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r6, 0x1C
- ldrsh r0, [r1, r6]
- cmp r0, 0
- bne _0812DAF4
- ldrb r0, [r4]
- lsls r1, r0, 2
- ldr r2, _0812DB14
- adds r1, r2
- ldrh r1, [r1, 0x2]
- bl sub_8032984
-_0812DAF4:
- mov r0, r8
- bl move_anim_task_del
-_0812DAFA:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812DB08: .4byte REG_BG2CNT
-_0812DB0C: .4byte gUnknown_0202F7C8
-_0812DB10: .4byte gTasks
-_0812DB14: .4byte 0x02017800
- thumb_func_end sub_812D7E8
-
- thumb_func_start c3_80DFBE4
-c3_80DFBE4: @ 812DB18
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _0812DB48
- ldr r3, _0812DB4C
- ldr r2, _0812DB50
- ldr r1, _0812DB54
- ldrb r1, [r1]
- adds r1, r2
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- adds r1, 0x3E
- ldrb r1, [r1]
- lsls r1, 29
- lsrs r1, 31
- strh r1, [r4, 0xE]
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812DB48: .4byte gUnknown_03004B00
-_0812DB4C: .4byte gSprites
-_0812DB50: .4byte gUnknown_02024BE0
-_0812DB54: .4byte gUnknown_0202F7C8
- thumb_func_end c3_80DFBE4
-
- thumb_func_start sub_812DB58
-sub_812DB58: @ 812DB58
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0812DB7C
- ldrb r0, [r0]
- ldr r1, _0812DB80
- ldrb r1, [r1]
- movs r2, 0x1
- bl sub_8031FC4
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812DB7C: .4byte gUnknown_0202F7C8
-_0812DB80: .4byte gUnknown_0202F7C9
- thumb_func_end sub_812DB58
-
- thumb_func_start sub_812DB84
-sub_812DB84: @ 812DB84
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _0812DBB4
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bls _0812DBA8
- b _0812DE80
-_0812DBA8:
- lsls r0, 2
- ldr r1, _0812DBB8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812DBB4: .4byte gTasks
-_0812DBB8: .4byte _0812DBBC
- .align 2, 0
-_0812DBBC:
- .4byte _0812DBD0
- .4byte _0812DCFC
- .4byte _0812DD4C
- .4byte _0812DDB6
- .4byte _0812DDEA
-_0812DBD0:
- ldr r1, _0812DC70
- ldr r4, _0812DC74
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _0812DC78
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0812DC12
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_0812DC12:
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0xC]
- ldr r2, _0812DC7C
- add r0, sp, 0xC
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _0812DC80
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _0812DC84
- bl LZDecompressVram
- ldr r0, _0812DC88
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _0812DC8C
- 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 _0812DC9C
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
- ldr r1, _0812DC90
- ldr r2, _0812DC94
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0812DC98
- strh r4, [r0]
- b _0812DCCE
- .align 2, 0
-_0812DC70: .4byte REG_BLDCNT
-_0812DC74: .4byte 0x00003f42
-_0812DC78: .4byte REG_BG1CNT
-_0812DC7C: .4byte 0x040000d4
-_0812DC80: .4byte 0x85000400
-_0812DC84: .4byte gUnknown_08D2AA98
-_0812DC88: .4byte gUnknown_08D2A9E0
-_0812DC8C: .4byte gUnknown_08D2AA80
-_0812DC90: .4byte gUnknown_030042C0
-_0812DC94: .4byte 0x0000ffc8
-_0812DC98: .4byte gUnknown_030041B4
-_0812DC9C:
- ldr r0, _0812DCB4
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812DCC0
- ldr r1, _0812DCB8
- ldr r4, _0812DCBC
- adds r0, r4, 0
- b _0812DCC6
- .align 2, 0
-_0812DCB4: .4byte gUnknown_0202F7C8
-_0812DCB8: .4byte gUnknown_030042C0
-_0812DCBC: .4byte 0x0000ff79
-_0812DCC0:
- ldr r1, _0812DCEC
- ldr r2, _0812DCF0
- adds r0, r2, 0
-_0812DCC6:
- strh r0, [r1]
- ldr r1, _0812DCF4
- movs r0, 0
- strh r0, [r1]
-_0812DCCE:
- ldr r0, _0812DCF8
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812DCEC
- ldrh r0, [r0]
- strh r0, [r1, 0x1C]
- ldr r0, _0812DCF4
- ldrh r0, [r0]
- strh r0, [r1, 0x1E]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- b _0812DDD2
- .align 2, 0
-_0812DCEC: .4byte gUnknown_030042C0
-_0812DCF0: .4byte 0x0000fff6
-_0812DCF4: .4byte gUnknown_030041B4
-_0812DCF8: .4byte gTasks
-_0812DCFC:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x10]
- adds r1, r0, 0x1
- strh r1, [r3, 0x10]
- lsls r0, 16
- cmp r0, 0
- bgt _0812DD12
- b _0812DE80
-_0812DD12:
- movs r0, 0
- strh r0, [r3, 0x10]
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _0812DD28
- movs r0, 0xC
- strh r0, [r3, 0xA]
-_0812DD28:
- ldr r2, _0812DD48
- ldrh r1, [r3, 0xA]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- movs r4, 0xA
- ldrsh r0, [r3, r4]
- cmp r0, 0xC
- beq _0812DD40
- b _0812DE80
-_0812DD40:
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _0812DE80
- .align 2, 0
-_0812DD48: .4byte REG_BLDALPHA
-_0812DD4C:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0xA]
- subs r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- cmp r0, 0
- bge _0812DD64
- movs r0, 0
- strh r0, [r3, 0xA]
-_0812DD64:
- ldr r2, _0812DDA4
- ldrh r1, [r3, 0xA]
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _0812DD7C
- b _0812DE80
-_0812DD7C:
- ldr r2, _0812DDA8
- ldr r1, _0812DDAC
- movs r4, 0xC
- ldrsh r0, [r3, r4]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r3, 0x1C]
- adds r0, r1
- strh r0, [r2]
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _0812DDB0
- strh r0, [r3, 0x8]
- b _0812DE80
- .align 2, 0
-_0812DDA4: .4byte REG_BLDALPHA
-_0812DDA8: .4byte gUnknown_030042C0
-_0812DDAC: .4byte gUnknown_084025C0
-_0812DDB0:
- movs r0, 0x3
- strh r0, [r3, 0x8]
- b _0812DE80
-_0812DDB6:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0xE]
- adds r0, 0x1
- strh r0, [r1, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _0812DE80
- movs r0, 0
- strh r0, [r1, 0xE]
- movs r0, 0x1
-_0812DDD2:
- strh r0, [r1, 0x8]
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xE4
- bl PlaySE12WithPanning
- b _0812DE80
-_0812DDEA:
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp]
- movs r3, 0x80
- lsls r3, 6
- add r5, sp, 0xC
- movs r6, 0
- ldr r1, _0812DE90
- movs r4, 0x80
- lsls r4, 5
- mov r8, r5
- ldr r0, _0812DE94
- mov r12, r0
- movs r0, 0x85
- lsls r0, 24
- mov r9, r0
-_0812DE0C:
- str r6, [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 _0812DE0C
- str r6, [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 r4, 0
- str r4, [sp, 0xC]
- ldr r0, _0812DE90
- str r5, [r0]
- str r1, [r0, 0x4]
- ldr r1, _0812DE98
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0812DE5A
- ldr r2, _0812DE9C
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0812DE5A:
- ldr r2, _0812DE9C
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812DEA0
- strh r4, [r0]
- ldr r0, _0812DEA4
- strh r4, [r0]
- ldr r0, _0812DEA8
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, r7, 0
- bl move_anim_task_del
-_0812DE80:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812DE90: .4byte 0x040000d4
-_0812DE94: .4byte 0x85000400
-_0812DE98: .4byte 0x85000200
-_0812DE9C: .4byte REG_BG1CNT
-_0812DEA0: .4byte gUnknown_030042C0
-_0812DEA4: .4byte gUnknown_030041B4
-_0812DEA8: .4byte REG_BLDCNT
- thumb_func_end sub_812DB84
-
- thumb_func_start sub_812DEAC
-sub_812DEAC: @ 812DEAC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r7, r0, 0
- bl Random
- lsls r0, 16
- movs r1, 0xFC
- lsls r1, 14
- ands r1, r0
- lsrs r5, r1, 16
- adds r1, r5, 0
- cmp r1, 0x1F
- ble _0812DED6
- movs r0, 0x20
- subs r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
-_0812DED6:
- ldr r4, _0812DFD0
- ldrb r0, [r4]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, r5
- strh r0, [r7, 0x20]
- ldrb r0, [r4]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x20
- strh r0, [r7, 0x22]
- ldr r1, _0812DFD4
- ldrh r0, [r1]
- strh r0, [r7, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r7, 0x32]
- ldr r4, _0812DFD8
- movs r0, 0x20
- ldrsh r1, [r7, r0]
- movs r0, 0x22
- ldrsh r2, [r7, r0]
- adds r5, r7, 0
- adds r5, 0x43
- ldrb r3, [r5]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- bl CreateSprite
- mov r9, r0
- mov r1, r9
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- movs r0, 0x20
- ldrsh r1, [r7, r0]
- movs r0, 0x22
- ldrsh r2, [r7, r0]
- ldrb r3, [r5]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- bl CreateSprite
- mov r8, r0
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- mov r0, r9
- lsls r2, r0, 4
- add r2, r9
- lsls r2, 2
- ldr r1, _0812DFDC
- mov r10, r1
- adds r5, r2, r1
- adds r0, r5, 0
- movs r1, 0x1
- str r2, [sp]
- bl StartSpriteAnim
- mov r0, r8
- lsls r6, r0, 4
- add r6, r8
- lsls r6, 2
- mov r1, r10
- adds r4, r6, r1
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- ldr r1, _0812DFD4
- ldrh r0, [r1]
- strh r0, [r5, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x32]
- ldrh r0, [r1]
- strh r0, [r4, 0x30]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x32]
- ldr r0, _0812DFE0
- strh r0, [r5, 0x3C]
- movs r0, 0x1
- negs r0, r0
- strh r0, [r4, 0x3C]
- adds r5, 0x3E
- ldrb r0, [r5]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r5]
- adds r4, 0x3E
- ldrb r0, [r4]
- orrs r0, r1
- strb r0, [r4]
- movs r0, 0x1C
- add r10, r0
- ldr r2, [sp]
- add r2, r10
- ldr r0, _0812DFE4
- str r0, [r2]
- add r6, r10
- str r0, [r6]
- mov r1, r9
- strh r1, [r7, 0x3A]
- mov r0, r8
- strh r0, [r7, 0x3C]
- ldr r0, _0812DFE8
- str r0, [r7, 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
-_0812DFD0: .4byte gUnknown_0202F7C8
-_0812DFD4: .4byte gUnknown_03004B00
-_0812DFD8: .4byte gBattleAnimSpriteTemplate_84025EC
-_0812DFDC: .4byte gSprites
-_0812DFE0: .4byte 0x0000ffff
-_0812DFE4: .4byte sub_812E0F8
-_0812DFE8: .4byte sub_812DFEC
- thumb_func_end sub_812DEAC
-
- thumb_func_start sub_812DFEC
-sub_812DFEC: @ 812DFEC
- push {lr}
- adds r3, r0, 0
- ldrh r2, [r3, 0x32]
- ldrh r0, [r3, 0x34]
- adds r2, r0
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r1, [r3, 0x26]
- subs r1, r0
- strh r1, [r3, 0x26]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r3, 0x34]
- movs r2, 0x36
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bne _0812E03A
- lsls r0, r1, 16
- asrs r0, 16
- movs r1, 0x8
- negs r1, r1
- cmp r0, r1
- bge _0812E03A
- ldr r2, _0812E094
- movs r0, 0x3A
- ldrsh r1, [r3, 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, [r3, 0x36]
- adds r0, 0x1
- strh r0, [r3, 0x36]
-_0812E03A:
- movs r1, 0x36
- ldrsh r0, [r3, r1]
- cmp r0, 0x1
- bne _0812E06E
- movs r2, 0x26
- ldrsh r1, [r3, r2]
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- bge _0812E06E
- ldr r2, _0812E094
- movs r0, 0x3C
- ldrsh r1, [r3, 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, [r3, 0x36]
- adds r0, 0x1
- strh r0, [r3, 0x36]
-_0812E06E:
- ldrh r0, [r3, 0x30]
- subs r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0812E090
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812E098
- str r0, [r3, 0x1C]
-_0812E090:
- pop {r0}
- bx r0
- .align 2, 0
-_0812E094: .4byte gSprites
-_0812E098: .4byte sub_812E09C
- thumb_func_end sub_812DFEC
-
- thumb_func_start sub_812E09C
-sub_812E09C: @ 812E09C
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r5, _0812E0F0
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r3, r0, 2
- adds r6, r5, 0
- adds r6, 0x1C
- adds r0, r3, r6
- ldr r2, [r0]
- ldr r0, _0812E0F4
- cmp r2, r0
- bne _0812E0E8
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldr r0, [r1]
- cmp r0, r2
- bne _0812E0E8
- adds r0, r3, r5
- bl DestroySprite
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- adds r0, r4, 0
- bl move_anim_8072740
-_0812E0E8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812E0F0: .4byte gSprites
-_0812E0F4: .4byte SpriteCallbackDummy
- thumb_func_end sub_812E09C
-
- thumb_func_start sub_812E0F8
-sub_812E0F8: @ 812E0F8
- push {lr}
- adds r3, r0, 0
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _0812E144
- ldrh r2, [r3, 0x32]
- ldrh r1, [r3, 0x34]
- adds r2, r1
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r3, 0x26]
- subs r0, r1
- strh r0, [r3, 0x26]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r3, 0x34]
- ldrh r0, [r3, 0x30]
- subs r0, 0x1
- strh r0, [r3, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0812E144
- mov r1, r12
- ldrb r0, [r1]
- movs r1, 0x4
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- ldr r0, _0812E148
- str r0, [r3, 0x1C]
-_0812E144:
- pop {r0}
- bx r0
- .align 2, 0
-_0812E148: .4byte SpriteCallbackDummy
- thumb_func_end sub_812E0F8
-
- thumb_func_start sub_812E14C
-sub_812E14C: @ 812E14C
- push {r4-r6,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0812E174
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0x5
- bls _0812E16A
- b _0812E476
-_0812E16A:
- lsls r0, 2
- ldr r1, _0812E178
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0812E174: .4byte gTasks
-_0812E178: .4byte _0812E17C
- .align 2, 0
-_0812E17C:
- .4byte _0812E194
- .4byte _0812E300
- .4byte _0812E388
- .4byte _0812E3BC
- .4byte _0812E3E8
- .4byte _0812E420
-_0812E194:
- ldr r1, _0812E230
- ldr r3, _0812E234
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0812E238
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _0812E23C
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0812E1D4
- ldrb r0, [r4]
- movs r1, 0xD
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4]
-_0812E1D4:
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0xC]
- ldr r2, _0812E240
- add r0, sp, 0xC
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _0812E244
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _0812E248
- bl LZDecompressVram
- ldr r0, _0812E24C
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _0812E250
- 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 _0812E260
- mov r0, sp
- ldrb r0, [r0, 0x8]
- ldr r1, [sp, 0x4]
- movs r2, 0
- movs r3, 0
- bl sub_80763FC
- ldr r1, _0812E254
- ldr r3, _0812E258
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _0812E25C
- strh r4, [r0]
- b _0812E2D2
- .align 2, 0
-_0812E230: .4byte REG_BLDCNT
-_0812E234: .4byte 0x00003f42
-_0812E238: .4byte 0x00000d03
-_0812E23C: .4byte REG_BG1CNT
-_0812E240: .4byte 0x040000d4
-_0812E244: .4byte 0x85000400
-_0812E248: .4byte gUnknown_08D2AA98
-_0812E24C: .4byte gUnknown_08D2A9E0
-_0812E250: .4byte gUnknown_08D2AA80
-_0812E254: .4byte gUnknown_030042C0
-_0812E258: .4byte 0x0000ffc8
-_0812E25C: .4byte gUnknown_030041B4
-_0812E260:
- ldr r0, _0812E2A0
- ldrb r0, [r0]
- bl battle_get_per_side_status
- lsls r0, 24
- lsrs r4, r0, 24
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812E2B4
- ldr r1, _0812E2A4
- cmp r4, 0x1
- bne _0812E284
- ldr r2, _0812E2A8
- adds r0, r2, 0
- strh r0, [r1]
-_0812E284:
- cmp r4, 0x3
- bne _0812E28E
- ldr r3, _0812E2AC
- adds r0, r3, 0
- strh r0, [r1]
-_0812E28E:
- cmp r4, 0
- bne _0812E296
- movs r0, 0xE
- strh r0, [r1]
-_0812E296:
- cmp r4, 0x2
- bne _0812E2CC
- ldr r1, _0812E2A4
- ldr r2, _0812E2B0
- b _0812E2C8
- .align 2, 0
-_0812E2A0: .4byte gUnknown_0202F7C9
-_0812E2A4: .4byte gUnknown_030042C0
-_0812E2A8: .4byte 0x0000ff65
-_0812E2AC: .4byte 0x0000ff8d
-_0812E2B0: .4byte 0x0000ffec
-_0812E2B4:
- cmp r4, 0x1
- bne _0812E2C0
- ldr r1, _0812E2EC
- ldr r3, _0812E2F0
- adds r0, r3, 0
- strh r0, [r1]
-_0812E2C0:
- cmp r4, 0
- bne _0812E2CC
- ldr r1, _0812E2EC
- ldr r2, _0812E2F4
-_0812E2C8:
- adds r0, r2, 0
- strh r0, [r1]
-_0812E2CC:
- ldr r1, _0812E2F8
- movs r0, 0
- strh r0, [r1]
-_0812E2D2:
- ldr r0, _0812E2FC
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0812E2EC
- ldrh r0, [r0]
- strh r0, [r1, 0x1C]
- ldr r0, _0812E2F8
- ldrh r0, [r0]
- strh r0, [r1, 0x1E]
- b _0812E380
- .align 2, 0
-_0812E2EC: .4byte gUnknown_030042C0
-_0812E2F0: .4byte 0x0000ff79
-_0812E2F4: .4byte 0x0000fff6
-_0812E2F8: .4byte gUnknown_030041B4
-_0812E2FC: .4byte gTasks
-_0812E300:
- ldr r1, _0812E334
- lsls r4, r6, 2
- adds r0, r4, r6
- lsls r0, 3
- adds r5, r0, r1
- movs r0, 0
- strh r0, [r5, 0xE]
- ldr r0, _0812E338
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812E344
- ldr r2, _0812E33C
- ldr r1, _0812E340
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r5, [r5, 0x1C]
- adds r0, r5
- b _0812E356
- .align 2, 0
-_0812E334: .4byte gTasks
-_0812E338: .4byte gUnknown_0202F7C9
-_0812E33C: .4byte gUnknown_030042C0
-_0812E340: .4byte gUnknown_08402604
-_0812E344:
- ldr r2, _0812E374
- ldr r1, _0812E378
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- adds r0, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- ldrh r0, [r5, 0x1C]
- subs r0, r1
-_0812E356:
- strh r0, [r2]
- ldr r0, _0812E37C
- adds r1, r4, r6
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xC]
- adds r0, 0x1
- strh r0, [r1, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _0812E380
- strh r0, [r1, 0x8]
- b _0812E476
- .align 2, 0
-_0812E374: .4byte gUnknown_030042C0
-_0812E378: .4byte gUnknown_08402604
-_0812E37C: .4byte gTasks
-_0812E380:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0812E476
-_0812E388:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r4
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bgt _0812E3A2
- movs r0, 0x5
- strh r0, [r4, 0xA]
-_0812E3A2:
- ldr r2, _0812E3B8
- ldrh r0, [r4, 0xA]
- lsls r0, 8
- movs r1, 0x3
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bne _0812E476
- b _0812E3DC
- .align 2, 0
-_0812E3B8: .4byte REG_BLDALPHA
-_0812E3BC:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r4
- ldrh r1, [r4, 0xE]
- adds r1, 0x1
- strh r1, [r4, 0xE]
- lsls r1, 16
- asrs r1, 16
- ldr r2, _0812E3E4
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- adds r0, r2
- ldrb r0, [r0]
- cmp r1, r0
- ble _0812E476
-_0812E3DC:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812E476
- .align 2, 0
-_0812E3E4: .4byte gUnknown_08402608
-_0812E3E8:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r4
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- ble _0812E402
- movs r0, 0xD
- strh r0, [r4, 0xA]
-_0812E402:
- ldr r2, _0812E41C
- ldrh r0, [r4, 0xA]
- lsls r0, 8
- movs r1, 0x3
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0xD
- bne _0812E476
- movs r0, 0x1
- strh r0, [r4, 0x8]
- b _0812E476
- .align 2, 0
-_0812E41C: .4byte REG_BLDALPHA
-_0812E420:
- mov r0, sp
- bl sub_8078914
- ldr r2, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0xC]
- ldr r1, _0812E480
- add r0, sp, 0xC
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _0812E484
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0812E450
- ldr r2, _0812E488
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0812E450:
- ldr r2, _0812E488
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812E48C
- strh r4, [r0]
- ldr r0, _0812E490
- strh r4, [r0]
- ldr r0, _0812E494
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, r6, 0
- bl move_anim_task_del
-_0812E476:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812E480: .4byte 0x040000d4
-_0812E484: .4byte 0x85000200
-_0812E488: .4byte REG_BG1CNT
-_0812E48C: .4byte gUnknown_030042C0
-_0812E490: .4byte gUnknown_030041B4
-_0812E494: .4byte REG_BLDCNT
- thumb_func_end sub_812E14C
-
- thumb_func_start sub_812E498
-sub_812E498: @ 812E498
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _0812E4D0
- 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 _0812E4D8
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0812E4D4
- adds r0, r4, 0
- bl sub_80798F4
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812E4EA
- .align 2, 0
-_0812E4D0: .4byte gTasks
-_0812E4D4: .4byte gUnknown_08402610
-_0812E4D8:
- adds r0, r4, 0
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _0812E4EA
- adds r0, r5, 0
- bl move_anim_task_del
-_0812E4EA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812E498
-
- thumb_func_start sub_812E4F0
-sub_812E4F0: @ 812E4F0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- cmp r1, 0
- bne _0812E50E
- adds r0, r4, 0
- movs r1, 0
- bl sub_80787B0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0812E562
-_0812E50E:
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- cmp r1, 0x14
- ble _0812E562
- ldrh r0, [r4, 0x30]
- adds r0, 0xA0
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x32]
- adds r0, 0x80
- strh r0, [r4, 0x32]
- ldr r0, _0812E53C
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812E540
- ldrh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
- negs r0, r0
- b _0812E546
- .align 2, 0
-_0812E53C: .4byte gUnknown_0202F7C8
-_0812E540:
- ldrh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 24
-_0812E546:
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x40
- ble _0812E562
- adds r0, r4, 0
- bl move_anim_8072740
-_0812E562:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812E4F0
-
- thumb_func_start sub_812E568
-sub_812E568: @ 812E568
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _0812E58C
- adds r4, r0, r1
- ldr r5, _0812E590
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0812E594
- adds r0, r2, 0
- bl move_anim_task_del
- b _0812E628
- .align 2, 0
-_0812E58C: .4byte gTasks
-_0812E590: .4byte gUnknown_03004B00
-_0812E594:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bge _0812E5A0
- movs r0, 0
- strh r0, [r5, 0x4]
-_0812E5A0:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r0, 0x2
- ble _0812E5AC
- movs r0, 0x2
- strh r0, [r5, 0x4]
-_0812E5AC:
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- movs r0, 0x4
- ldrsh r1, [r5, r0]
- lsls r1, 1
- movs r0, 0x8
- subs r0, r1
- strh r0, [r4, 0xE]
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- lsls r0, 7
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1
- strh r0, [r4, 0x10]
- ldrh r0, [r5, 0x4]
- adds r0, 0x2
- strh r0, [r4, 0x12]
- ldrh r0, [r5, 0x2]
- subs r0, 0x1
- strh r0, [r4, 0x14]
- ldrb r0, [r5]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0812E5F8
- ldr r0, _0812E5F4
- b _0812E5FA
- .align 2, 0
-_0812E5F4: .4byte gUnknown_0202F7C8
-_0812E5F8:
- ldr r0, _0812E630
-_0812E5FA:
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812E618
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x10]
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- negs r0, r0
- strh r0, [r4, 0x12]
-_0812E618:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_8078E70
- ldr r0, _0812E634
- str r0, [r4]
-_0812E628:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812E630: .4byte gUnknown_0202F7C9
-_0812E634: .4byte sub_812E638
- thumb_func_end sub_812E568
-
- thumb_func_start sub_812E638
-sub_812E638: @ 812E638
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0812E65C
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r6, [r4, r0]
- cmp r6, 0x1
- beq _0812E6C0
- cmp r6, 0x1
- bgt _0812E660
- cmp r6, 0
- beq _0812E66C
- b _0812E798
- .align 2, 0
-_0812E65C: .4byte gTasks
-_0812E660:
- cmp r6, 0x2
- beq _0812E718
- cmp r6, 0x3
- bne _0812E66A
- b _0812E788
-_0812E66A:
- b _0812E798
-_0812E66C:
- ldr r2, _0812E6BC
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x12]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- strh r1, [r0, 0x24]
- ldrh r0, [r4, 0xC]
- ldrh r1, [r4, 0x10]
- subs r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0xC]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F9C
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _0812E798
- strh r6, [r4, 0xA]
- b _0812E780
- .align 2, 0
-_0812E6BC: .4byte gSprites
-_0812E6C0:
- ldr r2, _0812E714
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x24]
- ldrh r2, [r4, 0x12]
- subs r1, r2
- strh r1, [r0, 0x24]
- ldrh r0, [r4, 0x10]
- ldrh r1, [r4, 0xC]
- adds r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0xC]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F9C
- ldrh r1, [r4, 0xA]
- adds r1, 0x1
- strh r1, [r4, 0xA]
- lsls r1, 16
- asrs r1, 16
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- lsls r0, 1
- cmp r1, r0
- blt _0812E798
- movs r0, 0
- strh r0, [r4, 0xA]
- b _0812E780
- .align 2, 0
-_0812E714: .4byte gSprites
-_0812E718:
- ldr r2, _0812E77C
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r4, 0x12]
- ldrh r2, [r0, 0x24]
- adds r1, r2
- movs r5, 0
- strh r1, [r0, 0x24]
- ldrh r0, [r4, 0xC]
- ldrh r1, [r4, 0x10]
- subs r0, r1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r4, 0xC]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F9C
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0xE
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _0812E798
- ldrh r1, [r4, 0x14]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0812E780
- subs r0, r1, 0x1
- strh r0, [r4, 0x14]
- strh r5, [r4, 0xA]
- strh r5, [r4, 0x8]
- b _0812E798
- .align 2, 0
-_0812E77C: .4byte gSprites
-_0812E780:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812E798
-_0812E788:
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F40
- adds r0, r5, 0
- bl move_anim_task_del
-_0812E798:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_812E638
-
- thumb_func_start sub_812E7A0
-sub_812E7A0: @ 812E7A0
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0812E7BC
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _0812E7C4
- strh r0, [r4, 0x20]
- ldr r1, _0812E7C0
- ldrh r0, [r1]
- b _0812E7CE
- .align 2, 0
-_0812E7BC: .4byte gUnknown_0202F7C8
-_0812E7C0: .4byte gUnknown_03004B00
-_0812E7C4:
- movs r0, 0xF0
- strh r0, [r4, 0x20]
- ldr r1, _0812E7E8
- ldrh r0, [r1]
- subs r0, 0x1E
-_0812E7CE:
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x32]
- ldrb r1, [r1, 0x2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _0812E7EC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812E7E8: .4byte gUnknown_03004B00
-_0812E7EC: .4byte sub_812E7F0
- thumb_func_end sub_812E7A0
-
- thumb_func_start sub_812E7F0
-sub_812E7F0: @ 812E7F0
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x3
- strh r0, [r4, 0x2E]
- ldr r0, _0812E830
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0812E834
- ldrh r1, [r4, 0x20]
- adds r1, 0x5
- strh r1, [r4, 0x20]
- ldrh r0, [r4, 0x22]
- subs r0, 0x1
- strh r0, [r4, 0x22]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0xF0
- ble _0812E822
- adds r0, r4, 0
- bl move_anim_8072740
-_0812E822:
- ldrh r1, [r4, 0x2E]
- movs r0, 0xFF
- ands r0, r1
- movs r1, 0x10
- bl Sin
- b _0812E858
- .align 2, 0
-_0812E830: .4byte gUnknown_0202F7C8
-_0812E834:
- ldrh r1, [r4, 0x20]
- subs r1, 0x5
- strh r1, [r4, 0x20]
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
- lsls r1, 16
- cmp r1, 0
- bge _0812E84C
- adds r0, r4, 0
- bl move_anim_8072740
-_0812E84C:
- ldrh r1, [r4, 0x2E]
- movs r0, 0xFF
- ands r0, r1
- movs r1, 0x10
- bl Cos
-_0812E858:
- strh r0, [r4, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812E7F0
-
- thumb_func_start sub_812E860
-sub_812E860: @ 812E860
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _0812E8A8
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- strh r0, [r4, 0xE]
- movs r0, 0x20
- strh r0, [r4, 0x20]
- movs r0, 0x40
- strh r0, [r4, 0x22]
- movs r0, 0x80
- lsls r0, 4
- strh r0, [r4, 0x24]
- ldr r0, _0812E8AC
- ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- movs r1, 0
- bl sub_8078E70
- ldr r0, _0812E8B0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812E8A8: .4byte gTasks
-_0812E8AC: .4byte gUnknown_03004B00
-_0812E8B0: .4byte sub_812E8B4
- thumb_func_end sub_812E860
-
- thumb_func_start sub_812E8B4
-sub_812E8B4: @ 812E8B4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0812E8E0
- adds r7, r0, r1
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- mov r8, r0
- cmp r0, 0x1
- beq _0812E950
- cmp r0, 0x1
- bgt _0812E8E4
- cmp r0, 0
- beq _0812E8EC
- b _0812E9CA
- .align 2, 0
-_0812E8E0: .4byte gTasks
-_0812E8E4:
- mov r2, r8
- cmp r2, 0x2
- beq _0812E9B8
- b _0812E9CA
-_0812E8EC:
- movs r3, 0x80
- lsls r3, 2
- adds r0, r3, 0
- ldrh r1, [r7, 0xC]
- adds r2, r0, r1
- strh r2, [r7, 0xC]
- lsls r0, r2, 16
- asrs r0, 16
- ldrh r3, [r7, 0x24]
- mov r8, r3
- movs r3, 0x24
- ldrsh r1, [r7, r3]
- cmp r0, r1
- blt _0812E9CA
- mov r0, r8
- subs r5, r0, r2
- lsls r5, 16
- asrs r5, 16
- adds r6, r1, 0
- lsls r6, 1
- adds r0, r5, 0
- adds r1, r6, 0
- bl __divsi3
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- adds r1, r6, 0
- bl __modsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 16
- asrs r4, 16
- movs r1, 0x1
- ands r4, r1
- cmp r4, 0
- bne _0812E944
- lsls r0, 16
- asrs r0, 16
- mov r2, r8
- subs r0, r2, r0
- b _0812E9A2
-_0812E944:
- lsls r0, 16
- asrs r0, 16
- mov r3, r8
- subs r0, r3
- strh r0, [r7, 0xC]
- b _0812E9CA
-_0812E950:
- ldr r1, _0812E9A8
- adds r0, r1, 0
- ldrh r2, [r7, 0xC]
- adds r1, r0, r2
- strh r1, [r7, 0xC]
- movs r3, 0xC
- ldrsh r0, [r7, r3]
- movs r2, 0x24
- ldrsh r6, [r7, r2]
- cmn r0, r6
- bgt _0812E9CA
- ldrh r3, [r7, 0x24]
- mov r9, r3
- mov r0, r9
- subs r4, r0, r1
- lsls r4, 16
- asrs r4, 16
- lsls r6, 1
- adds r0, r4, 0
- adds r1, r6, 0
- bl __divsi3
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- adds r1, r6, 0
- bl __modsi3
- lsls r0, 16
- lsrs r2, r0, 16
- mov r1, r8
- ands r1, r5
- lsls r0, r1, 16
- asrs r1, r0, 16
- cmp r1, 0
- bne _0812E9AC
- lsls r0, r2, 16
- asrs r0, 16
- mov r2, r9
- subs r0, r2
-_0812E9A2:
- strh r0, [r7, 0xC]
- strh r1, [r7, 0x8]
- b _0812E9CA
- .align 2, 0
-_0812E9A8: .4byte 0xfffffe00
-_0812E9AC:
- lsls r0, r2, 16
- asrs r0, 16
- mov r3, r9
- subs r0, r3, r0
- strh r0, [r7, 0xC]
- b _0812E9CA
-_0812E9B8:
- ldrh r0, [r7, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F40
- adds r0, r4, 0
- bl move_anim_task_del
- b _0812EA40
-_0812E9CA:
- ldrh r0, [r7, 0x26]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x80
- lsls r2, 1
- ldrh r3, [r7, 0xC]
- adds r1, r2, 0
- bl obj_id_set_rotscale
- ldrh r0, [r7, 0x26]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8078F9C
- ldr r2, _0812EA38
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- movs r2, 0xC
- ldrsh r0, [r7, r2]
- cmp r0, 0
- bge _0812E9FE
- adds r0, 0x3F
-_0812E9FE:
- asrs r0, 6
- negs r0, r0
- strh r0, [r1, 0x24]
- ldrh r0, [r7, 0xA]
- adds r0, 0x1
- strh r0, [r7, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _0812EA40
- ldrh r1, [r7, 0x20]
- movs r3, 0x20
- ldrsh r0, [r7, r3]
- cmp r0, 0
- beq _0812EA3C
- subs r0, r1, 0x1
- strh r0, [r7, 0x20]
- ldrh r0, [r7, 0x24]
- ldrh r1, [r7, 0x22]
- subs r0, r1
- strh r0, [r7, 0x24]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bgt _0812EA40
- movs r0, 0x10
- strh r0, [r7, 0x24]
- b _0812EA40
- .align 2, 0
-_0812EA38: .4byte gSprites
-_0812EA3C:
- movs r0, 0x2
- strh r0, [r7, 0x8]
-_0812EA40:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_812E8B4
-
- thumb_func_start sub_812EA4C
-sub_812EA4C: @ 812EA4C
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0812EAAC
- ldr r6, _0812EAA4
- movs r2, 0x4
- ldrsh r0, [r6, r2]
- cmp r0, 0
- bne _0812EA80
- ldr r4, _0812EAA8
- 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]
-_0812EA80:
- ldrh r0, [r6]
- ldrh r1, [r5, 0x20]
- adds r0, r1
- strh r0, [r5, 0x20]
- ldrh r1, [r6, 0x2]
- ldrh r2, [r5, 0x22]
- adds r0, r1, r2
- strh r0, [r5, 0x22]
- movs r0, 0x80
- strh r0, [r5, 0x30]
- movs r0, 0xC0
- lsls r0, 2
- strh r0, [r5, 0x32]
- strh r1, [r5, 0x34]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _0812EB0A
- .align 2, 0
-_0812EAA4: .4byte gUnknown_03004B00
-_0812EAA8: .4byte gUnknown_0202F7C8
-_0812EAAC:
- ldrh r1, [r5, 0x30]
- lsls r0, r1, 16
- asrs r0, 24
- strh r0, [r5, 0x24]
- ldrh r0, [r5, 0x32]
- lsls r0, 16
- asrs r0, 24
- ldrh r2, [r5, 0x26]
- adds r0, r2
- strh r0, [r5, 0x26]
- movs r2, 0x36
- ldrsh r0, [r5, r2]
- adds r4, r1, 0
- cmp r0, 0
- bne _0812EAEA
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- movs r2, 0x34
- ldrsh r0, [r5, r2]
- cmn r1, r0
- ble _0812EAEA
- movs r0, 0x1
- strh r0, [r5, 0x36]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- negs r0, r0
- movs r1, 0x3
- bl __divsi3
- lsls r0, 1
- strh r0, [r5, 0x32]
-_0812EAEA:
- adds r0, r4, 0
- adds r0, 0xC0
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- adds r0, 0x80
- strh r0, [r5, 0x32]
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0812EB0A
- adds r0, r5, 0
- bl move_anim_8072740
-_0812EB0A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_812EA4C
-
- thumb_func_start sub_812EB10
-sub_812EB10: @ 812EB10
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- adds r7, r0, 0
- ldr r1, _0812EB40
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r2, r0, r1
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _0812EC1C
- ldr r0, _0812EB44
- movs r3, 0
- ldrsh r1, [r0, r3]
- mov r8, r0
- cmp r1, 0
- bne _0812EB4C
- ldr r0, _0812EB48
- b _0812EB4E
- .align 2, 0
-_0812EB40: .4byte gTasks
-_0812EB44: .4byte gUnknown_03004B00
-_0812EB48: .4byte gUnknown_0202F7C8
-_0812EB4C:
- ldr r0, _0812EB88
-_0812EB4E:
- ldrb r0, [r0]
- strh r0, [r2, 0x1E]
- mov r1, r8
- ldrb r0, [r1]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0812EB8C
- lsls r4, r7, 2
- adds r0, r4, r7
- lsls r0, 3
- adds r6, r0, r1
- strh r5, [r6, 0x1C]
- adds r0, r5, 0
- movs r1, 0
- bl sub_8078E70
- mov r2, r8
- movs r3, 0x2
- ldrsh r0, [r2, r3]
- cmp r0, 0x1
- beq _0812EBB0
- cmp r0, 0x1
- bgt _0812EB90
- cmp r0, 0
- beq _0812EB98
- lsls r2, r5, 4
- b _0812EBF8
- .align 2, 0
-_0812EB88: .4byte gUnknown_0202F7C9
-_0812EB8C: .4byte gTasks
-_0812EB90:
- cmp r0, 0x2
- beq _0812EBBA
- lsls r2, r5, 4
- b _0812EBF8
-_0812EB98:
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r5, 0
- movs r1, 0xE0
- movs r3, 0
- bl obj_id_set_rotscale
- adds r0, r5, 0
- bl sub_8079A64
- lsls r2, r5, 4
- b _0812EBF8
-_0812EBB0:
- movs r2, 0x98
- lsls r2, 1
- movs r3, 0xF0
- lsls r3, 4
- b _0812EBC2
-_0812EBBA:
- movs r2, 0x98
- lsls r2, 1
- movs r3, 0xF1
- lsls r3, 8
-_0812EBC2:
- adds r0, r5, 0
- movs r1, 0xD0
- bl obj_id_set_rotscale
- adds r0, r5, 0
- bl sub_8079A64
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0812EBE8
- ldrb r0, [r6, 0x1E]
- bl battle_side_get_owner
- lsls r0, 24
- lsls r2, r5, 4
- cmp r0, 0
- bne _0812EBF8
-_0812EBE8:
- ldr r0, _0812EC14
- lsls r2, r5, 4
- adds r1, r2, r5
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x10
- strh r0, [r1, 0x26]
-_0812EBF8:
- ldr r1, _0812EC14
- adds r0, r2, r5
- lsls r0, 2
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x24]
- ldr r0, _0812EC18
- adds r1, r4, r7
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0812EC68
- .align 2, 0
-_0812EC14: .4byte gSprites
-_0812EC18: .4byte gTasks
-_0812EC1C:
- ldrb r5, [r2, 0x1C]
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- movs r4, 0
- strh r0, [r2, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _0812EC40
- strh r4, [r2, 0xC]
- ldr r0, _0812EC74
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x24]
- negs r0, r0
- strh r0, [r1, 0x24]
-_0812EC40:
- ldrh r0, [r2, 0xA]
- adds r0, 0x1
- strh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- bne _0812EC68
- adds r0, r5, 0
- bl sub_8078F40
- ldr r1, _0812EC74
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- strh r4, [r0, 0x24]
- strh r4, [r0, 0x26]
- adds r0, r7, 0
- bl move_anim_task_del
-_0812EC68:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812EC74: .4byte gSprites
- thumb_func_end sub_812EB10
-
- thumb_func_start sub_812EC78
-sub_812EC78: @ 812EC78
- push {r4,r5,lr}
- adds r4, r0, 0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xC
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, r0
- ldr r3, _0812ECC4
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _0812ECC8
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- bl Random
- ldr r5, _0812ECCC
- ands r5, r0
- bl Random
- movs r1, 0xFF
- ands r1, r0
- movs r0, 0x1
- ands r0, r5
- cmp r0, 0
- beq _0812ECD0
- movs r2, 0xBC
- lsls r2, 3
- adds r0, r5, r2
- b _0812ECD8
- .align 2, 0
-_0812ECC4: .4byte 0x000003ff
-_0812ECC8: .4byte 0xfffffc00
-_0812ECCC: .4byte 0x000001ff
-_0812ECD0:
- movs r3, 0xBC
- lsls r3, 3
- adds r0, r3, 0
- subs r0, r5
-_0812ECD8:
- strh r0, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0812ECEA
- movs r2, 0x90
- lsls r2, 3
- adds r0, r1, r2
- b _0812ECF2
-_0812ECEA:
- movs r3, 0x90
- lsls r3, 3
- adds r0, r3, 0
- subs r0, r1
-_0812ECF2:
- strh r0, [r4, 0x30]
- ldr r0, _0812ED04
- ldrh r0, [r0]
- strh r0, [r4, 0x32]
- lsls r0, 16
- cmp r0, 0
- bne _0812ED0C
- ldr r0, _0812ED08
- b _0812ED0E
- .align 2, 0
-_0812ED04: .4byte gUnknown_03004B00
-_0812ED08: .4byte 0x0000fff8
-_0812ED0C:
- movs r0, 0xF8
-_0812ED0E:
- strh r0, [r4, 0x20]
- movs r0, 0x68
- strh r0, [r4, 0x22]
- ldr r0, _0812ED20
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812ED20: .4byte sub_812ED24
- thumb_func_end sub_812EC78
-
- thumb_func_start sub_812ED24
-sub_812ED24: @ 812ED24
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812ED3C
- ldrh r3, [r4, 0x2E]
- lsls r0, r3, 16
- asrs r0, 24
- ldrh r1, [r4, 0x24]
- adds r0, r1
- b _0812ED46
-_0812ED3C:
- ldrh r3, [r4, 0x2E]
- lsls r1, r3, 16
- asrs r1, 24
- ldrh r0, [r4, 0x24]
- subs r0, r1
-_0812ED46:
- 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]
- adds r0, r3, 0
- subs r0, 0x16
- strh r0, [r4, 0x2E]
- adds r1, r2, 0
- subs r1, 0x30
- strh r1, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- bge _0812ED6A
- movs r0, 0
- strh r0, [r4, 0x2E]
-_0812ED6A:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _0812ED7E
- adds r0, r4, 0
- bl move_anim_8072740
-_0812ED7E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_812ED24
-
- thumb_func_start sub_812ED84
-sub_812ED84: @ 812ED84
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _0812EDE4
- ldr r2, _0812EDE8
- 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 r0, _0812EDEC
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0812EDF0
- strh r1, [r0]
- ldr r0, _0812EDF4
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- ldr r0, _0812EDF8
- ldrh r0, [r0, 0x4]
- strh r0, [r4, 0x2E]
- adds r0, r4, 0
- movs r1, 0
- bl sub_8078764
- ldrb r1, [r4, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r4, 0x1]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0812EDFC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812EDE4: .4byte REG_WINOUT
-_0812EDE8: .4byte 0x00001f3f
-_0812EDEC: .4byte gUnknown_030042C4
-_0812EDF0: .4byte gUnknown_03004240
-_0812EDF4: .4byte REG_WIN0H
-_0812EDF8: .4byte gUnknown_03004B00
-_0812EDFC: .4byte sub_812EE00
- thumb_func_end sub_812ED84
-
- thumb_func_start sub_812EE00
-sub_812EE00: @ 812EE00
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0812EE3E
- cmp r0, 0x1
- bgt _0812EE16
- cmp r0, 0
- beq _0812EE20
- b _0812EE94
-_0812EE16:
- cmp r0, 0x2
- beq _0812EE54
- cmp r0, 0x3
- beq _0812EE76
- b _0812EE94
-_0812EE20:
- 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
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0812EE94
- b _0812EE6E
-_0812EE3E:
- ldrh r0, [r4, 0x2E]
- subs r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _0812EE94
- adds r0, r4, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
- b _0812EE6E
-_0812EE54:
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0812EE94
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_0812EE6E:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- b _0812EE94
-_0812EE76:
- ldr r1, _0812EE9C
- ldr r2, _0812EEA0
- 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
- eors r0, r1
- strh r0, [r2]
- adds r0, r4, 0
- bl move_anim_8072740
-_0812EE94:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812EE9C: .4byte REG_WINOUT
-_0812EEA0: .4byte 0x00003f3f
- thumb_func_end sub_812EE00
-
- thumb_func_start sub_812EEA4
-sub_812EEA4: @ 812EEA4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _0812EEE0
- 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, _0812EEE4
- ldrh r0, [r1]
- strh r0, [r4, 0x2E]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x30]
- ldr r1, _0812EEE8
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812EEE0: .4byte gUnknown_0202F7C8
-_0812EEE4: .4byte gUnknown_03004B00
-_0812EEE8: .4byte sub_812EEEC
- thumb_func_end sub_812EEA4
-
- thumb_func_start sub_812EEEC
-sub_812EEEC: @ 812EEEC
- 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 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]
- lsls r1, r0, 16
- cmp r0, 0x3F
- bls _0812EF26
- asrs r0, r1, 16
- cmp r0, 0xC3
- ble _0812EF38
-_0812EF26:
- ldr r0, _0812EF34
- ldrb r0, [r0]
- bl sub_8079E90
- subs r0, 0x1
- b _0812EF42
- .align 2, 0
-_0812EF34: .4byte gUnknown_0202F7C8
-_0812EF38:
- ldr r0, _0812EF84
- ldrb r0, [r0]
- bl sub_8079E90
- adds r0, 0x1
-_0812EF42:
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- movs r3, 0x38
- ldrsh r2, [r4, r3]
- cmp r2, 0
- bne _0812EF88
- movs r1, 0x80
- lsls r1, 3
- adds r0, r1, 0
- ldrh r3, [r4, 0x32]
- adds r0, r3
- strh r0, [r4, 0x32]
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1, 0
- ldrh r3, [r4, 0x34]
- adds r0, r3
- 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 _0812EFB8
- strh r2, [r4, 0x36]
- movs r0, 0x1
- strh r0, [r4, 0x38]
- b _0812EFB8
- .align 2, 0
-_0812EF84: .4byte gUnknown_0202F7C8
-_0812EF88:
- cmp r2, 0x1
- bne _0812EFB8
- ldr r1, _0812EFC0
- adds r0, r1, 0
- ldrh r2, [r4, 0x32]
- adds r0, r2
- strh r0, [r4, 0x32]
- ldr r3, _0812EFC4
- 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 _0812EFB8
- adds r0, r4, 0
- bl move_anim_8072740
-_0812EFB8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812EFC0: .4byte 0xfffffc00
-_0812EFC4: .4byte 0xffffff00
- thumb_func_end sub_812EEEC
-
- thumb_func_start sub_812EFC8
-sub_812EFC8: @ 812EFC8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x10]
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _0812F004
- movs r0, 0x1
- str r0, [sp, 0x14]
- ldr r0, _0812F000
- ldr r1, [r0, 0x10]
- mov r9, r1
- ldr r2, [r0, 0xC]
- mov r8, r2
- ldrh r6, [r0, 0x2]
- movs r3, 0x14
- b _0812F13C
- .align 2, 0
-_0812F000: .4byte 0x02019348
-_0812F004:
- ldr r0, _0812F070
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812F0AC
- movs r0, 0
- str r0, [sp, 0x14]
- ldr r6, _0812F074
- ldr r4, _0812F078
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r7, _0812F07C
- adds r0, r7
- movs r1, 0
- bl GetMonData
- mov r9, r0
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r7
- movs r1, 0x1
- bl GetMonData
- mov r8, r0
- ldrb r2, [r4]
- lsls r1, r2, 2
- ldr r0, _0812F080
- adds r1, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _0812F0A4
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0812F084
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r7
- b _0812F092
- .align 2, 0
-_0812F070: .4byte gUnknown_0202F7C8
-_0812F074: .4byte gUnknown_02024A6A
-_0812F078: .4byte gUnknown_0202F7C9
-_0812F07C: .4byte gPlayerParty
-_0812F080: .4byte 0x02017800
-_0812F084:
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- ldr r1, _0812F0A0
- adds r0, r1
-_0812F092:
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- b _0812F0A6
- .align 2, 0
-_0812F0A0: .4byte gEnemyParty
-_0812F0A4:
- ldrh r6, [r1, 0x2]
-_0812F0A6:
- movs r1, 0x14
- mov r10, r1
- b _0812F13E
-_0812F0AC:
- movs r2, 0x1
- str r2, [sp, 0x14]
- ldr r6, _0812F10C
- ldr r4, _0812F110
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r7, _0812F114
- adds r0, r7
- movs r1, 0
- bl GetMonData
- mov r9, r0
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r7
- movs r1, 0x1
- bl GetMonData
- mov r8, r0
- ldrb r2, [r4]
- lsls r1, r2, 2
- ldr r0, _0812F118
- adds r1, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _0812F138
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0812F120
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- ldr r1, _0812F11C
- adds r0, r1
- b _0812F12C
- .align 2, 0
-_0812F10C: .4byte gUnknown_02024A6A
-_0812F110: .4byte gUnknown_0202F7C9
-_0812F114: .4byte gEnemyParty
-_0812F118: .4byte 0x02017800
-_0812F11C: .4byte gPlayerParty
-_0812F120:
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r7
-_0812F12C:
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- b _0812F13A
-_0812F138:
- ldrh r6, [r1, 0x2]
-_0812F13A:
- ldr r3, _0812F218
-_0812F13C:
- mov r10, r3
-_0812F13E:
- ldr r0, _0812F21C
- ldrb r0, [r0]
- bl sub_8079ED4
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r5, _0812F21C
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- mov r2, r10
- lsls r1, r2, 16
- asrs r1, 16
- adds r4, r1
- lsls r4, 16
- asrs r4, 16
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0x5
- str r0, [sp, 0x4]
- mov r3, r9
- str r3, [sp, 0x8]
- mov r0, r8
- str r0, [sp, 0xC]
- adds r0, r6, 0
- ldr r1, [sp, 0x14]
- movs r2, 0
- adds r3, r4, 0
- bl sub_8079F44
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _0812F220
- lsls r5, r6, 4
- adds r5, r6
- lsls r5, 2
- adds r5, r0
- movs r0, 0x3
- ands r7, r0
- lsls r7, 2
- mov r8, r7
- ldrb r0, [r5, 0x5]
- movs r4, 0xD
- negs r4, r4
- adds r1, r4, 0
- ands r1, r0
- mov r2, r8
- orrs r1, r2
- strb r1, [r5, 0x5]
- ldrb r2, [r5, 0x1]
- adds r0, r4, 0
- ands r0, r2
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r5, 0x1]
- ldr r0, _0812F224
- lsrs r1, 4
- lsls r1, 4
- movs r3, 0x80
- lsls r3, 1
- adds r2, r3, 0
- orrs r1, r2
- movs r2, 0x20
- bl FillPalette
- ldrb r0, [r5, 0x5]
- ands r4, r0
- mov r0, r8
- orrs r4, r0
- strb r4, [r5, 0x5]
- ldr r1, _0812F228
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r3, _0812F22C
- ldr r0, _0812F230
- ldr r2, [sp, 0x10]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xA]
- movs r0, 0x10
- subs r0, r2
- lsls r0, 8
- orrs r0, r2
- strh r0, [r3]
- strh r6, [r1, 0x8]
- ldr r0, _0812F234
- str r0, [r1]
- 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
-_0812F218: .4byte 0x0000ffec
-_0812F21C: .4byte gUnknown_0202F7C8
-_0812F220: .4byte gSprites
-_0812F224: .4byte 0x00007fff
-_0812F228: .4byte REG_BLDCNT
-_0812F22C: .4byte REG_BLDALPHA
-_0812F230: .4byte gTasks
-_0812F234: .4byte sub_812F238
- thumb_func_end sub_812EFC8
-
- thumb_func_start sub_812F238
-sub_812F238: @ 812F238
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0812F284
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r0, [r3, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r3, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0812F280
- movs r0, 0
- strh r0, [r3, 0x1C]
- ldrh r1, [r3, 0xA]
- adds r1, 0x1
- strh r1, [r3, 0xA]
- ldr r2, _0812F288
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- cmp r0, 0xA
- bne _0812F280
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r3, 0x1C]
- strh r0, [r3, 0x1E]
- ldr r0, _0812F28C
- str r0, [r3]
-_0812F280:
- pop {r0}
- bx r0
- .align 2, 0
-_0812F284: .4byte gTasks
-_0812F288: .4byte REG_BLDALPHA
-_0812F28C: .4byte sub_812F290
- thumb_func_end sub_812F238
-
- thumb_func_start sub_812F290
-sub_812F290: @ 812F290
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0812F308
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r5, r1, r2
- ldrb r2, [r5, 0x8]
- ldrh r0, [r5, 0x1C]
- subs r0, 0x10
- movs r4, 0
- strh r0, [r5, 0x1C]
- ldrh r0, [r5, 0x1E]
- adds r0, 0x80
- strh r0, [r5, 0x1E]
- ldr r1, _0812F30C
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r6, r0, r1
- ldrb r2, [r6, 0x1]
- lsls r1, r2, 30
- lsrs r1, 30
- movs r0, 0x2
- orrs r1, r0
- subs r0, 0x6
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x1]
- movs r0, 0x1C
- ldrsh r2, [r5, r0]
- movs r0, 0x1E
- ldrsh r3, [r5, r0]
- str r4, [sp]
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_8078FDC
- ldrh r0, [r5, 0x20]
- adds r0, 0x1
- strh r0, [r5, 0x20]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bne _0812F2FE
- adds r0, r6, 0
- bl sub_8079098
- adds r0, r6, 0
- bl sub_807A0F4
- ldr r0, _0812F310
- str r0, [r5]
-_0812F2FE:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F308: .4byte gTasks
-_0812F30C: .4byte gSprites
-_0812F310: .4byte sub_8078634
- thumb_func_end sub_812F290
-
- thumb_func_start sub_812F314
-sub_812F314: @ 812F314
- push {r4-r7,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0812F334
- adds r4, r1, r0
- ldr r0, _0812F338
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0812F340
- ldr r0, _0812F33C
- b _0812F342
- .align 2, 0
-_0812F334: .4byte gTasks
-_0812F338: .4byte gUnknown_03004B00
-_0812F33C: .4byte gUnknown_0202F7C8
-_0812F340:
- ldr r0, _0812F3C0
-_0812F342:
- ldrb r5, [r0]
- movs r6, 0
- strh r6, [r4, 0x8]
- strh r6, [r4, 0xA]
- strh r6, [r4, 0xC]
- movs r0, 0x10
- strh r0, [r4, 0xE]
- strh r6, [r4, 0x10]
- strh r5, [r4, 0x12]
- movs r0, 0x20
- strh r0, [r4, 0x14]
- strh r6, [r4, 0x16]
- movs r0, 0x18
- strh r0, [r4, 0x18]
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812F374
- movs r2, 0x18
- ldrsh r0, [r4, r2]
- negs r0, r0
- strh r0, [r4, 0x18]
-_0812F374:
- adds r0, r5, 0
- bl sub_8077FC0
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x22
- strh r0, [r4, 0x22]
- cmp r0, 0
- bge _0812F388
- strh r6, [r4, 0x22]
-_0812F388:
- ldrh r0, [r4, 0x22]
- adds r0, 0x42
- strh r0, [r4, 0x24]
- ldr r0, _0812F3C4
- ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x26]
- adds r0, r5, 0
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812F3DC
- ldr r0, _0812F3C8
- str r0, [sp]
- ldr r1, _0812F3CC
- ldr r2, _0812F3D0
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0812F3D4
- ldrh r5, [r0]
- ldr r0, _0812F3D8
- b _0812F3EE
- .align 2, 0
-_0812F3C0: .4byte gUnknown_0202F7C9
-_0812F3C4: .4byte gUnknown_03004B00
-_0812F3C8: .4byte REG_BG1HOFS
-_0812F3CC: .4byte REG_BLDCNT
-_0812F3D0: .4byte 0x00003f42
-_0812F3D4: .4byte gUnknown_030042C0
-_0812F3D8: .4byte gUnknown_030041B4
-_0812F3DC:
- ldr r0, _0812F454
- str r0, [sp]
- ldr r1, _0812F458
- ldr r2, _0812F45C
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0812F460
- ldrh r5, [r0]
- ldr r0, _0812F464
-_0812F3EE:
- ldrh r3, [r0]
- movs r7, 0
- movs r2, 0
- ldr r6, _0812F468
- movs r0, 0xF0
- lsls r0, 3
- adds r0, r6
- mov r12, r0
-_0812F3FE:
- lsls r2, 16
- asrs r2, 16
- lsls r1, r2, 1
- adds r0, r1, r6
- strh r5, [r0]
- add r1, r12
- strh r5, [r1]
- adds r0, r2, 0x1
- lsls r0, 1
- adds r1, r0, r6
- strh r3, [r1]
- add r0, r12
- strh r3, [r0]
- lsls r0, r7, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- adds r2, 0x2
- lsls r2, 16
- lsrs r2, 16
- lsrs r7, r0, 16
- asrs r0, 16
- cmp r0, 0x9F
- ble _0812F3FE
- ldr r0, _0812F46C
- 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, _0812F470
- str r0, [r4]
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F454: .4byte REG_BG2HOFS
-_0812F458: .4byte REG_BLDCNT
-_0812F45C: .4byte 0x00003f44
-_0812F460: .4byte gUnknown_03004288
-_0812F464: .4byte gUnknown_03004280
-_0812F468: .4byte gUnknown_03004DE0
-_0812F46C: .4byte 0xa6600001
-_0812F470: .4byte sub_812F474
- thumb_func_end sub_812F314
-
- thumb_func_start sub_812F474
-sub_812F474: @ 812F474
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0812F4A8
- adds r6, r0, r1
- ldrb r0, [r6, 0x12]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0812F4B4
- ldr r0, _0812F4AC
- ldrh r0, [r0]
- str r0, [sp, 0x4]
- ldr r0, _0812F4B0
- b _0812F4BC
- .align 2, 0
-_0812F4A8: .4byte gTasks
-_0812F4AC: .4byte gUnknown_030042C0
-_0812F4B0: .4byte gUnknown_030041B4
-_0812F4B4:
- ldr r0, _0812F4D4
- ldrh r0, [r0]
- str r0, [sp, 0x4]
- ldr r0, _0812F4D8
-_0812F4BC:
- ldrh r0, [r0]
- str r0, [sp, 0x8]
- movs r1, 0x8
- ldrsh r0, [r6, r1]
- cmp r0, 0x1
- bne _0812F4CA
- b _0812F6A6
-_0812F4CA:
- cmp r0, 0x1
- bgt _0812F4DC
- cmp r0, 0
- beq _0812F4EA
- b _0812F712
- .align 2, 0
-_0812F4D4: .4byte gUnknown_03004288
-_0812F4D8: .4byte gUnknown_03004280
-_0812F4DC:
- cmp r0, 0x2
- bne _0812F4E2
- b _0812F6C4
-_0812F4E2:
- cmp r0, 0x3
- bne _0812F4E8
- b _0812F70C
-_0812F4E8:
- b _0812F712
-_0812F4EA:
- movs r2, 0x24
- ldrsh r0, [r6, r2]
- lsls r0, 17
- lsrs r5, r0, 16
- movs r3, 0
- str r3, [sp]
- mov r9, r3
- movs r4, 0
- ldrh r0, [r6, 0xA]
- adds r0, 0x2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r6, 0xA]
- ldrh r7, [r6, 0xA]
- mov r8, r7
- movs r0, 0x14
- ldrsh r1, [r6, r0]
- movs r0, 0xFC
- lsls r0, 3
- bl __divsi3
- strh r0, [r6, 0x1A]
- movs r1, 0x16
- ldrsh r0, [r6, r1]
- lsls r0, 1
- movs r2, 0x1A
- ldrsh r1, [r6, r2]
- bl __divsi3
- negs r0, r0
- strh r0, [r6, 0x1C]
- ldrh r0, [r6, 0x16]
- strh r0, [r6, 0x1E]
- lsls r0, 16
- asrs r0, 21
- lsls r0, 16
- lsrs r7, r0, 16
- strh r7, [r6, 0x20]
- ldrh r2, [r6, 0x24]
- lsls r3, r2, 16
- mov r12, r3
- asrs r1, r3, 16
- movs r3, 0x22
- ldrsh r0, [r6, r3]
- cmp r1, r0
- ble _0812F60A
- ldr r0, _0812F660
- mov r10, r0
- ldr r1, [sp, 0x4]
- lsls r0, r1, 16
- asrs r0, 16
- str r0, [sp, 0x10]
- ldr r2, [sp, 0x8]
- lsls r0, r2, 16
- asrs r0, 16
- str r0, [sp, 0xC]
-_0812F55A:
- lsls r5, 16
- asrs r5, 16
- adds r2, r5, 0x1
- lsls r2, 1
- mov r3, r10
- ldrb r1, [r3, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r2, r0
- ldr r0, _0812F664
- adds r2, r0
- lsls r4, 16
- asrs r4, 16
- mov r1, r9
- lsls r0, r1, 16
- asrs r0, 16
- subs r0, r4, r0
- ldr r3, [sp, 0xC]
- adds r0, r3, r0
- strh r0, [r2]
- lsls r3, r5, 1
- mov r0, r10
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 7
- adds r3, r0
- ldr r1, _0812F664
- adds r3, r1
- lsls r1, r7, 16
- asrs r1, 16
- ldr r2, [sp, 0x10]
- adds r1, r2, r1
- mov r7, r8
- lsls r2, r7, 16
- asrs r2, 16
- lsls r0, r2, 1
- ldr r7, _0812F668
- adds r0, r7
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 21
- adds r1, r0
- strh r1, [r3]
- adds r2, 0xA
- mov r8, r2
- movs r0, 0xFF
- mov r1, r8
- ands r1, r0
- mov r8, r1
- ldrh r0, [r6, 0x1C]
- ldrh r2, [r6, 0x1E]
- adds r0, r2
- strh r0, [r6, 0x1E]
- lsls r0, 16
- asrs r0, 21
- lsls r0, 16
- lsrs r7, r0, 16
- strh r7, [r6, 0x20]
- adds r4, 0x1
- lsls r4, 16
- lsrs r4, 16
- subs r5, 0x2
- lsls r5, 16
- lsrs r5, 16
- ldr r3, [sp]
- lsls r0, r3, 16
- asrs r0, 16
- ldrh r1, [r6, 0x14]
- adds r0, r1
- lsls r0, 16
- lsrs r2, r0, 16
- str r2, [sp]
- asrs r0, 21
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldr r0, _0812F66C
- add r0, r12
- lsrs r2, r0, 16
- lsls r3, r2, 16
- mov r12, r3
- asrs r1, r3, 16
- movs r3, 0x22
- ldrsh r0, [r6, r3]
- cmp r1, r0
- bgt _0812F55A
-_0812F60A:
- lsls r1, r2, 17
- cmp r1, 0
- blt _0812F636
- ldr r4, _0812F664
- ldr r7, [sp, 0x4]
- lsls r0, r7, 16
- asrs r0, 16
- adds r3, r0, 0
- adds r3, 0xF0
- movs r0, 0xF0
- lsls r0, 3
- adds r5, r4, r0
-_0812F622:
- asrs r2, r1, 16
- lsls r1, r2, 1
- adds r0, r1, r4
- strh r3, [r0]
- adds r1, r5
- strh r3, [r1]
- subs r2, 0x2
- lsls r1, r2, 16
- cmp r1, 0
- bge _0812F622
-_0812F636:
- ldrh r0, [r6, 0x14]
- adds r0, 0x1
- strh r0, [r6, 0x14]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3F
- ble _0812F69C
- movs r0, 0x40
- strh r0, [r6, 0x14]
- ldrh r0, [r6, 0xC]
- adds r0, 0x1
- strh r0, [r6, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0812F670
- ldrh r0, [r6, 0xE]
- subs r0, 0x1
- strh r0, [r6, 0xE]
- b _0812F676
- .align 2, 0
-_0812F660: .4byte gUnknown_03004DC0
-_0812F664: .4byte gUnknown_03004DE0
-_0812F668: .4byte gSineTable
-_0812F66C: .4byte 0xffff0000
-_0812F670:
- ldrh r0, [r6, 0x10]
- adds r0, 0x1
- strh r0, [r6, 0x10]
-_0812F676:
- ldr r0, _0812F698
- ldrh r1, [r6, 0x10]
- lsls r1, 8
- ldrh r2, [r6, 0xE]
- orrs r1, r2
- strh r1, [r0]
- movs r2, 0xE
- ldrsh r1, [r6, r2]
- cmp r1, 0
- bne _0812F712
- movs r3, 0x10
- ldrsh r0, [r6, r3]
- cmp r0, 0x10
- bne _0812F712
- strh r1, [r6, 0xC]
- strh r1, [r6, 0xE]
- b _0812F700
- .align 2, 0
-_0812F698: .4byte REG_BLDALPHA
-_0812F69C:
- ldrh r0, [r6, 0x18]
- ldrh r7, [r6, 0x16]
- adds r0, r7
- strh r0, [r6, 0x16]
- b _0812F712
-_0812F6A6:
- ldrh r0, [r6, 0xC]
- adds r0, 0x1
- strh r0, [r6, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- ble _0812F712
- ldr r1, _0812F6C0
- movs r0, 0x3
- strb r0, [r1, 0x15]
- movs r0, 0
- strh r0, [r6, 0xC]
- b _0812F700
- .align 2, 0
-_0812F6C0: .4byte gUnknown_03004DC0
-_0812F6C4:
- ldrh r0, [r6, 0xC]
- adds r0, 0x1
- strh r0, [r6, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0812F6DA
- ldrh r0, [r6, 0xE]
- adds r0, 0x1
- strh r0, [r6, 0xE]
- b _0812F6E0
-_0812F6DA:
- ldrh r0, [r6, 0x10]
- subs r0, 0x1
- strh r0, [r6, 0x10]
-_0812F6E0:
- ldr r2, _0812F708
- ldrh r0, [r6, 0x10]
- lsls r0, 8
- ldrh r1, [r6, 0xE]
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0xE
- ldrsh r0, [r6, r1]
- cmp r0, 0x10
- bne _0812F712
- movs r2, 0x10
- ldrsh r0, [r6, r2]
- cmp r0, 0
- bne _0812F712
- strh r0, [r6, 0xC]
- strh r0, [r6, 0xE]
-_0812F700:
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- b _0812F712
- .align 2, 0
-_0812F708: .4byte REG_BLDALPHA
-_0812F70C:
- adds r0, r4, 0
- bl move_anim_task_del
-_0812F712:
- 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_812F474
-
- thumb_func_start sub_812F724
-sub_812F724: @ 812F724
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _0812F75C
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r0, _0812F760
- ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r4, 0x26]
- ldr r2, _0812F764
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _0812F768
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F75C: .4byte gTasks
-_0812F760: .4byte gUnknown_03004B00
-_0812F764: .4byte gUnknown_08402750
-_0812F768: .4byte sub_812F76C
- thumb_func_end sub_812F724
-
- thumb_func_start sub_812F76C
-sub_812F76C: @ 812F76C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r2, _0812F7C4
- adds r3, r0, r2
- ldrh r0, [r3, 0x8]
- adds r1, r0, 0x1
- movs r5, 0
- strh r1, [r3, 0x8]
- subs r0, 0x14
- lsls r0, 16
- lsrs r0, 16
- adds r6, r2, 0
- cmp r0, 0x16
- bhi _0812F7D0
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0812F7E0
- strh r5, [r3, 0xA]
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- movs r5, 0x1
- ands r0, r5
- cmp r0, 0
- bne _0812F7D0
- ldr r2, _0812F7C8
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0812F7CC
- strh r1, [r0, 0x24]
- b _0812F7E0
- .align 2, 0
-_0812F7C4: .4byte gTasks
-_0812F7C8: .4byte gSprites
-_0812F7CC: .4byte 0x0000ffff
-_0812F7D0:
- ldr r2, _0812F800
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x24]
-_0812F7E0:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r6
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _0812F7F8
- adds r0, r4, 0
- bl move_anim_task_del
-_0812F7F8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F800: .4byte gSprites
- thumb_func_end sub_812F76C
-
- thumb_func_start sub_812F804
-sub_812F804: @ 812F804
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- mov r8, r0
- adds r5, r2, 0
- adds r0, r3, 0
- ldr r4, [sp, 0x14]
- ldr r6, [sp, 0x18]
- lsls r1, 16
- lsrs r1, 16
- lsls r5, 16
- lsrs r5, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r6, 16
- lsrs r6, 16
- mov r2, r8
- strh r1, [r2, 0x20]
- strh r5, [r2, 0x22]
- lsls r1, 16
- asrs r1, 16
- lsls r2, r1, 4
- mov r3, r8
- strh r2, [r3, 0x36]
- lsls r5, 16
- asrs r5, 16
- lsls r2, r5, 4
- strh r2, [r3, 0x38]
- lsls r0, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 4
- adds r1, r6, 0
- bl __divsi3
- mov r1, r8
- strh r0, [r1, 0x3A]
- lsls r4, 16
- asrs r4, 16
- subs r4, r5
- lsls r4, 4
- adds r0, r4, 0
- adds r1, r6, 0
- bl __divsi3
- mov r2, r8
- strh r0, [r2, 0x3C]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_812F804
-
- thumb_func_start sub_812F86C
-sub_812F86C: @ 812F86C
- ldrh r1, [r0, 0x3A]
- ldrh r2, [r0, 0x36]
- adds r1, r2
- strh r1, [r0, 0x36]
- ldrh r2, [r0, 0x3C]
- ldrh r3, [r0, 0x38]
- adds r2, r3
- strh r2, [r0, 0x38]
- lsls r1, 16
- asrs r1, 20
- strh r1, [r0, 0x20]
- lsls r2, 16
- asrs r2, 20
- strh r2, [r0, 0x22]
- bx lr
- thumb_func_end sub_812F86C
-
- thumb_func_start sub_812F88C
-sub_812F88C: @ 812F88C
- push {r4-r6,lr}
- sub sp, 0x8
- adds r4, r0, 0
- ldrh r6, [r4, 0x20]
- ldrh r5, [r4, 0x22]
- bl sub_8078650
- ldr r0, _0812F8D4
- ldrb r1, [r0]
- adds r0, r4, 0
- bl StartSpriteAffineAnim
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r0, 0x22
- ldrsh r2, [r4, r0]
- lsls r6, 16
- asrs r6, 16
- lsls r5, 16
- asrs r5, 16
- str r5, [sp]
- movs r0, 0x40
- str r0, [sp, 0x4]
- adds r0, r4, 0
- adds r3, r6, 0
- bl sub_812F804
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _0812F8D8
- str r0, [r4, 0x1C]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F8D4: .4byte gUnknown_03004B00
-_0812F8D8: .4byte sub_812F8DC
- thumb_func_end sub_812F88C
-
- thumb_func_start sub_812F8DC
-sub_812F8DC: @ 812F8DC
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- movs r0, 0x2E
- ldrsh r4, [r5, r0]
- lsls r4, 3
- movs r0, 0xFF
- ands r4, r0
- adds r0, r5, 0
- bl sub_812F86C
- adds r0, r4, 0
- movs r1, 0x8
- bl Sin
- strh r0, [r5, 0x26]
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x3A
- ble _0812F942
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0812F942
- movs r0, 0
- strh r0, [r5, 0x30]
- ldrh r1, [r5, 0x32]
- adds r1, 0x1
- strh r1, [r5, 0x32]
- movs r0, 0x1
- ands r1, r0
- adds r3, r5, 0
- adds r3, 0x3E
- lsls r1, 2
- ldrb r2, [r3]
- subs r0, 0x6
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0x3
- ble _0812F942
- adds r0, r5, 0
- bl move_anim_8074EE0
-_0812F942:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812F8DC
-
- thumb_func_start sub_812F948
-sub_812F948: @ 812F948
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _0812F9A0
- ldrh r0, [r6, 0x6]
- strh r0, [r5, 0x2E]
- ldrb r1, [r6]
- adds r0, r5, 0
- bl StartSpriteAffineAnim
- ldr r0, _0812F9A4
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812F96E
- ldrh r0, [r6, 0x2]
- negs r0, r0
- strh r0, [r6, 0x2]
-_0812F96E:
- ldr r4, _0812F9A8
- 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]
- ldr r0, _0812F9AC
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0812F9A0: .4byte gUnknown_03004B00
-_0812F9A4: .4byte gUnknown_0202F7C9
-_0812F9A8: .4byte gUnknown_0202F7C8
-_0812F9AC: .4byte sub_80DA48C
- thumb_func_end sub_812F948
-
- thumb_func_start sub_812F9B0
-sub_812F9B0: @ 812F9B0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r7, 0
- ldr r2, _0812FA00
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x8]
- subs r0, 0x1
- strh r0, [r3, 0x8]
- movs r1, 0x14
- ldrsh r0, [r3, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- mov r8, r2
- cmp r0, 0
- beq _0812FA32
- ldrh r0, [r3, 0xA]
- subs r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0812FA32
- movs r2, 0x1A
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bne _0812FA04
- ldrh r0, [r3, 0x10]
- strh r0, [r3, 0x1A]
- negs r0, r0
- strh r0, [r3, 0x10]
- b _0812FA06
- .align 2, 0
-_0812FA00: .4byte gTasks
-_0812FA04:
- strh r7, [r3, 0x1A]
-_0812FA06:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- mov r2, r8
- adds r1, r0, r2
- movs r2, 0x1C
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0812FA22
- ldrh r0, [r1, 0x12]
- strh r0, [r1, 0x1C]
- negs r0, r0
- strh r0, [r1, 0x12]
- b _0812FA26
-_0812FA22:
- movs r0, 0
- strh r0, [r1, 0x1C]
-_0812FA26:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- add r0, r8
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0xA]
-_0812FA32:
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- mov r1, r8
- adds r4, r0, r1
- ldrh r6, [r4, 0x16]
- ldrh r7, [r4, 0x18]
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- mov r12, r2
- cmp r0, 0
- beq _0812FA70
- ldr r3, _0812FA6C
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- lsrs r2, r6, 8
- ldrh r0, [r4, 0x1A]
- subs r0, r2
- strh r0, [r1, 0x24]
- adds r2, r3, 0
- b _0812FA86
- .align 2, 0
-_0812FA6C: .4byte gSprites
-_0812FA70:
- ldr r2, _0812FAB4
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- lsrs r1, r6, 8
- ldrh r4, [r4, 0x1A]
- adds r1, r4
- strh r1, [r0, 0x24]
-_0812FA86:
- mov r1, r12
- adds r0, r1, r5
- lsls r0, 3
- mov r1, r8
- adds r4, r0, r1
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _0812FAB8
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- lsrs r2, r7, 8
- ldrh r0, [r4, 0x1C]
- subs r0, r2
- b _0812FACA
- .align 2, 0
-_0812FAB4: .4byte gSprites
-_0812FAB8:
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- lsrs r0, r7, 8
- ldrh r4, [r4, 0x1C]
- adds r0, r4
-_0812FACA:
- strh r0, [r1, 0x26]
- mov r2, r12
- adds r0, r2, r5
- lsls r0, 3
- add r0, r8
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bgt _0812FAEA
- adds r0, r5, 0
- bl DestroyTask
- ldr r1, _0812FAF4
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_0812FAEA:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FAF4: .4byte gUnknown_0202F7B2
- thumb_func_end sub_812F9B0
-
- thumb_func_start sub_812FAF8
-sub_812FAF8: @ 812FAF8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r7, 0
- ldr r2, _0812FB4C
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r3, r0, r2
- ldrh r0, [r3, 0x8]
- subs r0, 0x1
- strh r0, [r3, 0x8]
- movs r1, 0x14
- ldrsh r0, [r3, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- mov r8, r2
- cmp r0, 0
- beq _0812FB7E
- ldrh r0, [r3, 0xA]
- subs r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0812FB7E
- movs r2, 0x1A
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bne _0812FB50
- ldrh r0, [r3, 0x10]
- strh r0, [r3, 0x1A]
- negs r0, r0
- strh r0, [r3, 0x10]
- b _0812FB52
- .align 2, 0
-_0812FB4C: .4byte gTasks
-_0812FB50:
- strh r7, [r3, 0x1A]
-_0812FB52:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- mov r2, r8
- adds r1, r0, r2
- movs r2, 0x1C
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0812FB6E
- ldrh r0, [r1, 0x12]
- strh r0, [r1, 0x1C]
- negs r0, r0
- strh r0, [r1, 0x12]
- b _0812FB72
-_0812FB6E:
- movs r0, 0
- strh r0, [r1, 0x1C]
-_0812FB72:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- add r0, r8
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0xA]
-_0812FB7E:
- lsls r3, r6, 2
- adds r0, r3, r6
- lsls r0, 3
- mov r1, r8
- adds r4, r0, r1
- ldrh r2, [r4, 0xC]
- ldr r1, _0812FBD0
- adds r0, r1, 0
- ands r0, r2
- ldrh r2, [r4, 0x16]
- adds r0, r2
- lsls r5, r0, 16
- lsrs r0, r5, 16
- mov r9, r0
- ldrh r0, [r4, 0xE]
- ands r1, r0
- ldrh r2, [r4, 0x18]
- adds r1, r2
- lsls r1, 16
- lsrs r7, r1, 16
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- mov r12, r3
- cmp r0, 0
- beq _0812FBD8
- ldr r3, _0812FBD4
- movs r2, 0x26
- ldrsh r0, [r4, r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- lsrs r2, r5, 24
- ldrh r0, [r4, 0x1A]
- subs r0, r2
- strh r0, [r1, 0x24]
- adds r2, r3, 0
- b _0812FBEE
- .align 2, 0
-_0812FBD0: .4byte 0x00007fff
-_0812FBD4: .4byte gSprites
-_0812FBD8:
- ldr r2, _0812FC1C
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- lsrs r1, r5, 24
- ldrh r4, [r4, 0x1A]
- adds r1, r4
- strh r1, [r0, 0x24]
-_0812FBEE:
- mov r1, r12
- adds r0, r1, r6
- lsls r0, 3
- mov r1, r8
- adds r4, r0, r1
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _0812FC20
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- lsrs r2, r7, 8
- ldrh r0, [r4, 0x1C]
- subs r0, r2
- b _0812FC32
- .align 2, 0
-_0812FC1C: .4byte gSprites
-_0812FC20:
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- lsrs r0, r7, 8
- ldrh r4, [r4, 0x1C]
- adds r0, r4
-_0812FC32:
- strh r0, [r1, 0x26]
- mov r2, r12
- adds r0, r2, r6
- lsls r0, 3
- mov r1, r8
- adds r2, r0, r1
- mov r0, r9
- strh r0, [r2, 0x16]
- strh r7, [r2, 0x18]
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bgt _0812FC58
- movs r0, 0x1E
- strh r0, [r2, 0x8]
- movs r0, 0
- strh r0, [r2, 0x22]
- ldr r0, _0812FC64
- str r0, [r2]
-_0812FC58:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FC64: .4byte sub_812F9B0
- thumb_func_end sub_812FAF8
-
- thumb_func_start sub_812FC68
-sub_812FC68: @ 812FC68
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0812FCC8
- mov r8, r0
- lsls r7, r6, 2
- adds r0, r7, r6
- lsls r0, 3
- mov r1, r8
- adds r4, r0, r1
- ldr r1, _0812FCCC
- ldr r2, _0812FCD0
- ldrb r0, [r2]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r4, 0x26]
- ldr r5, _0812FCD4
- ldrh r0, [r5]
- strh r0, [r4, 0x24]
- ldrh r0, [r5]
- strh r0, [r4, 0x8]
- ldrh r0, [r5, 0xC]
- strh r0, [r4, 0x22]
- movs r3, 0x6
- ldrsh r0, [r5, r3]
- cmp r0, 0
- beq _0812FCAC
- ldrh r0, [r4, 0x14]
- ldr r3, _0812FCD8
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r4, 0x14]
-_0812FCAC:
- ldrb r0, [r2]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0812FCDC
- ldrh r0, [r5, 0x2]
- strh r0, [r4, 0xC]
- ldrh r0, [r5, 0x4]
- strh r0, [r4, 0xE]
- mov r3, r8
- adds r4, r7, 0
- b _0812FD4C
- .align 2, 0
-_0812FCC8: .4byte gTasks
-_0812FCCC: .4byte gUnknown_02024BE0
-_0812FCD0: .4byte gUnknown_0202F7C8
-_0812FCD4: .4byte gUnknown_03004B00
-_0812FCD8: .4byte 0xffff8000
-_0812FCDC:
- movs r7, 0x2
- ldrsh r0, [r5, r7]
- movs r1, 0x80
- lsls r1, 8
- ands r0, r1
- cmp r0, 0
- beq _0812FCF8
- ldrh r1, [r5, 0x2]
- ldr r0, _0812FCF4
- ands r0, r1
- b _0812FD00
- .align 2, 0
-_0812FCF4: .4byte 0x00007fff
-_0812FCF8:
- ldrh r0, [r5, 0x2]
- ldr r2, _0812FD28
- adds r1, r2, 0
- orrs r0, r1
-_0812FD00:
- strh r0, [r4, 0xC]
- ldr r0, _0812FD2C
- movs r3, 0x4
- ldrsh r1, [r0, r3]
- movs r2, 0x80
- lsls r2, 8
- ands r1, r2
- adds r5, r0, 0
- cmp r1, 0
- beq _0812FD38
- ldr r3, _0812FD30
- lsls r4, r6, 2
- adds r1, r4, r6
- lsls r1, 3
- adds r1, r3
- ldrh r2, [r5, 0x4]
- ldr r0, _0812FD34
- ands r0, r2
- b _0812FD4A
- .align 2, 0
-_0812FD28: .4byte 0xffff8000
-_0812FD2C: .4byte gUnknown_03004B00
-_0812FD30: .4byte gTasks
-_0812FD34: .4byte 0x00007fff
-_0812FD38:
- ldr r3, _0812FD70
- lsls r4, r6, 2
- adds r1, r4, r6
- lsls r1, 3
- adds r1, r3
- ldrh r2, [r5, 0x4]
- ldr r7, _0812FD74
- adds r0, r7, 0
- orrs r0, r2
-_0812FD4A:
- strh r0, [r1, 0xE]
-_0812FD4C:
- adds r0, r4, r6
- lsls r0, 3
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x18]
- strh r1, [r0, 0x16]
- ldrh r1, [r5, 0x8]
- strh r1, [r0, 0x10]
- ldrh r1, [r5, 0xA]
- strh r1, [r0, 0x12]
- ldr r1, _0812FD78
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FD70: .4byte gTasks
-_0812FD74: .4byte 0xffff8000
-_0812FD78: .4byte sub_812FAF8
- thumb_func_end sub_812FC68
-
- thumb_func_start sub_812FD7C
-sub_812FD7C: @ 812FD7C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _0812FDB4
- adds r5, r0, r1
- ldr r4, _0812FDB8
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812FD9C
- adds r0, r2, 0
- bl move_anim_task_del
-_0812FD9C:
- movs r0, 0
- strh r0, [r5, 0x8]
- strh r0, [r5, 0xA]
- strh r0, [r5, 0xC]
- ldrh r0, [r4, 0x2]
- strh r0, [r5, 0xE]
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812FDC0
- ldr r0, _0812FDBC
- b _0812FDC2
- .align 2, 0
-_0812FDB4: .4byte gTasks
-_0812FDB8: .4byte gUnknown_03004B00
-_0812FDBC: .4byte gUnknown_0202F7C8
-_0812FDC0:
- ldr r0, _0812FE10
-_0812FDC2:
- ldrb r4, [r0]
- adds r0, r4, 0
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x10]
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x12]
- adds r0, r4, 0
- bl sub_8079E90
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x14]
- ldr r0, _0812FE14
- ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r5, 0x26]
- ldr r2, _0812FE18
- adds r0, r5, 0
- bl sub_80798F4
- ldr r0, _0812FE1C
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FE10: .4byte gUnknown_0202F7C9
-_0812FE14: .4byte gUnknown_03004B00
-_0812FE18: .4byte gUnknown_084028AC
-_0812FE1C: .4byte sub_812FE20
- thumb_func_end sub_812FD7C
-
- thumb_func_start sub_812FE20
-sub_812FE20: @ 812FE20
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0812FE40
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0812FE44
- cmp r0, 0x1
- beq _0812FEA4
- b _0812FEB2
- .align 2, 0
-_0812FE40: .4byte gTasks
-_0812FE44:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _0812FE5A
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_812FEB8
-_0812FE5A:
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x12
- bne _0812FE6A
- adds r0, r5, 0
- movs r1, 0
- bl sub_812FEB8
-_0812FE6A:
- adds r0, r4, 0
- bl sub_807992C
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _0812FEB2
- ldrh r0, [r4, 0xE]
- subs r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _0812FE8C
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0812FEB2
-_0812FE8C:
- strh r1, [r4, 0xA]
- ldrh r1, [r4, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0812FEA0
- adds r0, r4, 0
- bl sub_80798F4
- b _0812FEB2
- .align 2, 0
-_0812FEA0: .4byte gUnknown_084028AC
-_0812FEA4:
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0812FEB2
- adds r0, r5, 0
- bl move_anim_task_del
-_0812FEB2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_812FE20
-
- thumb_func_start sub_812FEB8
-sub_812FEB8: @ 812FEB8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r2, _0812FEDC
- adds r4, r0, r2
- cmp r1, 0
- bne _0812FEE0
- movs r1, 0x12
- movs r3, 0xEC
- b _0812FEE4
- .align 2, 0
-_0812FEDC: .4byte gTasks
-_0812FEE0:
- movs r1, 0x1E
- movs r3, 0x14
-_0812FEE4:
- mov r2, sp
- ldrh r0, [r4, 0x10]
- subs r0, r1
- strh r0, [r2]
- ldrh r0, [r4, 0x10]
- subs r0, r1
- subs r0, 0x4
- strh r0, [r2, 0x2]
- ldrh r0, [r4, 0x10]
- adds r0, r1
- strh r0, [r2, 0x4]
- ldrh r0, [r4, 0x10]
- adds r0, r1
- adds r0, 0x4
- strh r0, [r2, 0x6]
- add r2, sp, 0x8
- lsls r1, r3, 24
- asrs r1, 24
- ldrh r0, [r4, 0x12]
- adds r0, r1
- strh r0, [r2]
- ldrh r0, [r4, 0x12]
- adds r0, r1
- adds r0, 0x6
- strh r0, [r2, 0x2]
- movs r5, 0
- mov r8, r2
- ldr r7, _0812FF88
-_0812FF1C:
- lsls r0, r5, 1
- add r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r0, 0x1
- ands r0, r5
- lsls r0, 1
- add r0, r8
- movs r3, 0
- ldrsh r2, [r0, r3]
- ldrb r3, [r4, 0x14]
- subs r3, 0x5
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _0812FF8C
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _0812FF70
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r7
- movs r0, 0
- strh r0, [r1, 0x2E]
- movs r0, 0x2
- cmp r5, 0x1
- bhi _0812FF5E
- movs r2, 0x2
- negs r2, r2
- adds r0, r2, 0
-_0812FF5E:
- strh r0, [r1, 0x30]
- ldr r0, _0812FF90
- strh r0, [r1, 0x32]
- strh r6, [r1, 0x34]
- movs r0, 0x2
- strh r0, [r1, 0x36]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
-_0812FF70:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _0812FF1C
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FF88: .4byte gSprites
-_0812FF8C: .4byte gSpriteTemplate_84028CC
-_0812FF90: .4byte 0x0000ffff
- thumb_func_end sub_812FEB8
-
- thumb_func_start sub_812FF94
-sub_812FF94: @ 812FF94
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x32]
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- ble _0812FFDA
- ldr r3, _0812FFE0
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- lsls r1, 1
- movs r0, 0x34
- 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
-_0812FFDA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0812FFE0: .4byte gTasks
- thumb_func_end sub_812FF94
-
- thumb_func_start sub_812FFE4
-sub_812FFE4: @ 812FFE4
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0813002C
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r1, _08130030
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0xA]
- ldrb r0, [r1]
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08130034
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- adds r0, r1
- strh r0, [r4, 0xC]
- ldr r0, _08130038
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813002C: .4byte gTasks
-_08130030: .4byte gUnknown_03004B00
-_08130034: .4byte gSprites
-_08130038: .4byte sub_813003C
- thumb_func_end sub_812FFE4
-
- thumb_func_start sub_813003C
-sub_813003C: @ 813003C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08130084
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0813008C
- ldrh r0, [r4, 0xC]
- ldr r2, _08130088
- movs r3, 0x8
- ldrsh r1, [r4, r3]
- lsls r1, 1
- adds r1, r2
- ldrh r3, [r1]
- movs r1, 0x10
- movs r2, 0x8
- bl BlendPalette
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x17
- ble _0813007C
- movs r0, 0
- strh r0, [r4, 0x8]
-_0813007C:
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- b _0813009E
- .align 2, 0
-_08130084: .4byte gTasks
-_08130088: .4byte gUnknown_084028E4
-_0813008C:
- ldrh r0, [r4, 0xC]
- movs r1, 0x10
- movs r2, 0
- movs r3, 0
- bl BlendPalette
- adds r0, r5, 0
- bl move_anim_task_del
-_0813009E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813003C
-
- thumb_func_start sub_81300A4
-sub_81300A4: @ 81300A4
- push {lr}
- sub sp, 0x1C
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0xD0
- lsls r2, 1
- ldr r1, _081300E0
- ldrb r3, [r1]
- ldr r1, _081300E4
- ldrb r1, [r1]
- str r1, [sp]
- movs r1, 0xA
- str r1, [sp, 0x4]
- movs r1, 0x2
- str r1, [sp, 0x8]
- movs r1, 0x1E
- str r1, [sp, 0xC]
- ldr r1, _081300E8
- str r1, [sp, 0x10]
- ldr r1, _081300EC
- str r1, [sp, 0x14]
- ldr r1, _081300F0
- str r1, [sp, 0x18]
- movs r1, 0
- bl sub_80E3C4C
- add sp, 0x1C
- pop {r0}
- bx r0
- .align 2, 0
-_081300E0: .4byte gUnknown_0202F7C8
-_081300E4: .4byte gUnknown_03004B00
-_081300E8: .4byte gUnknown_08D2E014
-_081300EC: .4byte gUnknown_08D2E170
-_081300F0: .4byte gUnknown_08D2E150
- thumb_func_end sub_81300A4
-
- thumb_func_start sub_81300F4
-sub_81300F4: @ 81300F4
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r6, _0813014C
- ldrb r0, [r6]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08130110
- ldr r1, _08130150
- ldrh r0, [r1]
- negs r0, r0
- strh r0, [r1]
-_08130110:
- ldrb r0, [r6]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- ldr r4, _08130150
- 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 r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r5, 0x22]
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08130158
- movs r0, 0xA0
- lsls r0, 2
- strh r0, [r5, 0x2E]
- ldr r0, _08130154
- strh r0, [r5, 0x30]
- b _08130180
- .align 2, 0
-_0813014C: .4byte gUnknown_0202F7C8
-_08130150: .4byte gUnknown_03004B00
-_08130154: .4byte 0x0000fd80
-_08130158:
- cmp r0, 0x1
- bne _08130172
- adds r2, r5, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0xA0
- lsls r0, 2
- strh r0, [r5, 0x2E]
- strh r0, [r5, 0x30]
- b _08130180
-_08130172:
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
- movs r0, 0xA0
- lsls r0, 2
- strh r0, [r5, 0x2E]
-_08130180:
- ldr r0, _081301AC
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _081301A0
- ldrh r0, [r5, 0x2E]
- negs r0, r0
- strh r0, [r5, 0x2E]
- adds r2, r5, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2]
-_081301A0:
- ldr r0, _081301B0
- str r0, [r5, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081301AC: .4byte gUnknown_0202F7C8
-_081301B0: .4byte sub_81301B4
- thumb_func_end sub_81300F4
-
- thumb_func_start sub_81301B4
-sub_81301B4: @ 81301B4
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x2E]
- ldrh r1, [r2, 0x3A]
- adds r0, r1
- strh r0, [r2, 0x3A]
- ldrh r1, [r2, 0x30]
- ldrh r3, [r2, 0x3C]
- adds r1, r3
- strh r1, [r2, 0x3C]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r2, 0x24]
- lsls r1, 16
- asrs r1, 24
- strh r1, [r2, 0x26]
- ldrh r0, [r2, 0x38]
- adds r0, 0x1
- strh r0, [r2, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xE
- bne _081301E8
- adds r0, r2, 0
- bl move_anim_8072740
-_081301E8:
- pop {r0}
- bx r0
- thumb_func_end sub_81301B4
-
- thumb_func_start sub_81301EC
-sub_81301EC: @ 81301EC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08130218
- adds r6, r1, r0
- bl sub_8076BE0
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _0813021C
- movs r0, 0x8
- strh r0, [r6, 0x12]
- movs r0, 0x3
- strh r0, [r6, 0x14]
- movs r0, 0x1
- strh r0, [r6, 0x16]
- b _08130226
- .align 2, 0
-_08130218: .4byte gTasks
-_0813021C:
- movs r0, 0xC
- strh r0, [r6, 0x12]
- movs r0, 0x3
- strh r0, [r6, 0x14]
- strh r1, [r6, 0x16]
-_08130226:
- ldr r5, _0813025C
- ldrb r0, [r5]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08130260
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- ldrb r0, [r5]
- movs r1, 0
- bl sub_807A100
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _08130254
- adds r0, 0x3
-_08130254:
- asrs r0, 2
- adds r0, r4, r0
- b _08130284
- .align 2, 0
-_0813025C: .4byte gUnknown_0202F7C8
-_08130260:
- ldrb r0, [r5]
- movs r1, 0x2
- bl sub_8077ABC
- adds r4, r0, 0
- ldrb r0, [r5]
- movs r1, 0
- bl sub_807A100
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _08130280
- adds r0, 0x3
-_08130280:
- asrs r0, 2
- subs r0, r4, r0
-_08130284:
- strh r0, [r6, 0x1E]
- ldr r5, _081302D8
- ldrb r0, [r5]
- movs r1, 0x3
- bl sub_8077ABC
- adds r4, r0, 0
- ldrb r0, [r5]
- movs r1, 0
- bl sub_807A100
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _081302A8
- adds r0, 0x3
-_081302A8:
- asrs r0, 2
- subs r0, r4, r0
- strh r0, [r6, 0x20]
- ldr r4, _081302DC
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x22]
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x24]
- ldr r0, _081302E0
- str r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081302D8: .4byte gUnknown_0202F7C8
-_081302DC: .4byte gUnknown_0202F7C9
-_081302E0: .4byte sub_81302E4
- thumb_func_end sub_81301EC
-
- thumb_func_start sub_81302E4
-sub_81302E4: @ 81302E4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _0813030C
- adds r5, r0, r1
- movs r0, 0x8
- ldrsh r1, [r5, r0]
- cmp r1, 0
- beq _08130310
- cmp r1, 0x1
- bne _08130308
- b _08130408
-_08130308:
- b _08130416
- .align 2, 0
-_0813030C: .4byte gTasks
-_08130310:
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- ble _08130416
- strh r1, [r5, 0xA]
- movs r1, 0x1E
- ldrsh r0, [r5, r1]
- movs r2, 0x20
- ldrsh r1, [r5, r2]
- movs r3, 0x22
- ldrsh r2, [r5, r3]
- movs r4, 0x24
- ldrsh r3, [r5, r4]
- ldrb r4, [r5, 0x12]
- str r4, [sp]
- ldrb r4, [r5, 0xC]
- str r4, [sp, 0x4]
- add r4, sp, 0x10
- str r4, [sp, 0x8]
- adds r4, 0x2
- str r4, [sp, 0xC]
- bl sub_8130424
- movs r6, 0
- mov r8, r4
- ldr r4, _08130384
-_0813034A:
- add r0, sp, 0x10
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r3, r8
- movs r0, 0
- ldrsh r2, [r3, r0]
- ldr r0, _08130388
- movs r3, 0x23
- bl CreateSprite
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x40
- beq _081303DE
- movs r1, 0x16
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0813039E
- cmp r6, 0
- bne _0813038C
- lsls r2, r3, 4
- adds r1, r2, r3
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r5, 0x14]
- negs r0, r0
- strh r0, [r1, 0x26]
- strh r0, [r1, 0x24]
- b _081303C6
- .align 2, 0
-_08130384: .4byte gSprites
-_08130388: .4byte gSpriteTemplate_840294C
-_0813038C:
- lsls r2, r3, 4
- adds r1, r2, r3
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r5, 0x14]
- strh r0, [r1, 0x26]
- ldrh r0, [r5, 0x14]
- strh r0, [r1, 0x24]
- b _081303C6
-_0813039E:
- cmp r6, 0
- bne _081303B4
- lsls r2, r3, 4
- adds r1, r2, r3
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r5, 0x14]
- negs r0, r0
- strh r0, [r1, 0x24]
- ldrh r0, [r5, 0x14]
- b _081303C4
-_081303B4:
- lsls r2, r3, 4
- adds r1, r2, r3
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r5, 0x14]
- strh r0, [r1, 0x24]
- ldrh r0, [r5, 0x14]
- negs r0, r0
-_081303C4:
- strh r0, [r1, 0x26]
-_081303C6:
- ldr r1, _08130404
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x2E]
- strh r7, [r0, 0x30]
- movs r1, 0xA
- strh r1, [r0, 0x32]
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
-_081303DE:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x1
- bls _0813034A
- ldrh r2, [r5, 0xC]
- movs r3, 0xC
- ldrsh r1, [r5, r3]
- movs r4, 0x12
- ldrsh r0, [r5, r4]
- cmp r1, r0
- bne _081303FC
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
-_081303FC:
- adds r0, r2, 0x1
- strh r0, [r5, 0xC]
- b _08130416
- .align 2, 0
-_08130404: .4byte gSprites
-_08130408:
- movs r1, 0x1C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08130416
- adds r0, r7, 0
- bl move_anim_task_del
-_08130416:
- add sp, 0x14
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81302E4
-
- thumb_func_start sub_8130424
-sub_8130424: @ 8130424
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r4, [sp, 0x28]
- ldr r5, [sp, 0x2C]
- ldr r6, [sp, 0x30]
- mov r9, r6
- ldr r6, [sp, 0x34]
- mov r10, r6
- lsls r0, 16
- lsrs r0, 16
- mov r12, r0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- lsls r2, 16
- lsrs r2, 16
- adds r7, r2, 0
- lsls r3, 16
- lsrs r3, 16
- str r3, [sp, 0x4]
- lsls r4, 24
- lsrs r6, r4, 24
- lsls r5, 24
- lsrs r5, 24
- mov r8, r5
- cmp r5, 0
- bne _0813046C
- mov r2, r9
- strh r0, [r2]
- mov r6, r10
- strh r1, [r6]
- b _081304CA
-_0813046C:
- cmp r5, r6
- bcc _0813047A
- mov r0, r9
- strh r2, [r0]
- mov r1, r10
- strh r3, [r1]
- b _081304CA
-_0813047A:
- subs r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- mov r2, r12
- lsls r1, r2, 16
- asrs r1, 16
- lsls r5, r1, 8
- lsls r0, r7, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 8
- adds r1, r6, 0
- bl __divsi3
- mov r1, r8
- muls r1, r0
- adds r0, r1, 0
- adds r5, r0
- ldr r2, [sp]
- lsls r1, r2, 16
- asrs r1, 16
- lsls r4, r1, 8
- ldr r2, [sp, 0x4]
- lsls r0, r2, 16
- asrs r0, 16
- subs r0, r1
- lsls r0, 8
- adds r1, r6, 0
- bl __divsi3
- mov r6, r8
- muls r6, r0
- adds r0, r6, 0
- adds r4, r0
- asrs r5, 8
- mov r0, r9
- strh r5, [r0]
- asrs r4, 8
- mov r1, r10
- strh r4, [r1]
-_081304CA:
- 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_8130424
-
- thumb_func_start sub_81304DC
-sub_81304DC: @ 81304DC
- 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, 0x24
- ble _08130512
- ldr r3, _08130518
- 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 DestroySprite
-_08130512:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08130518: .4byte gTasks
- thumb_func_end sub_81304DC
-
- thumb_func_start sub_813051C
-sub_813051C: @ 813051C
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _08130548
- ldrh r0, [r1]
- strh r0, [r4, 0x20]
- ldrh r0, [r1, 0x2]
- strh r0, [r4, 0x22]
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x32]
- ldrh r0, [r1, 0x6]
- strh r0, [r4, 0x36]
- ldrh r0, [r1, 0x8]
- strh r0, [r4, 0x2E]
- ldr r1, _0813054C
- adds r0, r4, 0
- bl oamt_set_x3A_32
- ldr r0, _08130550
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08130548: .4byte gUnknown_03004B00
-_0813054C: .4byte move_anim_8072740
-_08130550: .4byte sub_8078CC0
- thumb_func_end sub_813051C
-
- thumb_func_start sub_8130554
-sub_8130554: @ 8130554
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r0, 2
- add r0, r9
- lsls r0, 3
- ldr r1, _08130674
- adds r7, r0, r1
- ldr r0, _08130678
- mov r10, r0
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x1E]
- mov r1, r10
- ldrb r0, [r1]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x20]
- ldr r0, _0813067C
- mov r8, r0
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x22]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x3
- bl sub_8077ABC
- adds r4, r0, 0
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0
- bl sub_807A100
- lsls r4, 24
- lsrs r4, 24
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _081305C6
- adds r0, 0x3
-_081305C6:
- asrs r0, 2
- adds r0, r4, r0
- strh r0, [r7, 0x24]
- ldr r4, _08130680
- movs r0, 0x1E
- ldrsh r5, [r7, r0]
- movs r1, 0x20
- ldrsh r6, [r7, r1]
- mov r1, r8
- ldrb r0, [r1]
- bl sub_8079E90
- adds r3, r0, 0
- subs r3, 0x5
- lsls r3, 24
- lsrs r3, 24
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x26]
- cmp r0, 0x40
- beq _08130690
- ldr r4, _08130684
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x10
- strh r1, [r0, 0x2E]
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r7, 0x22]
- strh r1, [r0, 0x32]
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r1, [r7, 0x24]
- strh r1, [r0, 0x36]
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, _08130688
- strh r1, [r0, 0x38]
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl sub_80786EC
- mov r1, r10
- ldrb r0, [r1]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0813066E
- movs r0, 0x26
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_0813066E:
- ldr r0, _0813068C
- str r0, [r7]
- b _08130696
- .align 2, 0
-_08130674: .4byte gTasks
-_08130678: .4byte gUnknown_0202F7C8
-_0813067C: .4byte gUnknown_0202F7C9
-_08130680: .4byte gSpriteTemplate_84029AC
-_08130684: .4byte gSprites
-_08130688: .4byte 0x0000ffe0
-_0813068C: .4byte sub_81306A4
-_08130690:
- mov r0, r9
- bl move_anim_task_del
-_08130696:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8130554
-
- thumb_func_start sub_81306A4
-sub_81306A4: @ 81306A4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _081306C8
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _0813070C
- cmp r1, 0x1
- bgt _081306CC
- cmp r1, 0
- beq _081306D6
- b _081307AA
- .align 2, 0
-_081306C8: .4byte gTasks
-_081306CC:
- cmp r1, 0x2
- beq _08130730
- cmp r1, 0x3
- beq _081307A4
- b _081307AA
-_081306D6:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _081307AA
- strh r1, [r4, 0xA]
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08130708
- adds r0, r1
- bl sub_8078718
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _081307AA
- b _08130796
- .align 2, 0
-_08130708: .4byte gSprites
-_0813070C:
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0813072C
- adds r0, r1
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _081307AA
- movs r0, 0
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- b _08130796
- .align 2, 0
-_0813072C: .4byte gSprites
-_08130730:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _081307AA
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r2, [r4, 0xC]
- adds r2, 0x1
- strh r2, [r4, 0xC]
- ldr r5, _081307A0
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- movs r0, 0x1
- ands r2, r0
- adds r1, 0x3E
- lsls r2, 2
- ldrb r3, [r1]
- subs r0, 0x6
- ands r0, r3
- orrs r0, r2
- strb r0, [r1]
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _081307AA
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- 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
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
-_08130796:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _081307AA
- .align 2, 0
-_081307A0: .4byte gSprites
-_081307A4:
- adds r0, r2, 0
- bl move_anim_task_del
-_081307AA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81306A4
-
- thumb_func_start sub_81307B0
-sub_81307B0: @ 81307B0
- push {r4-r6,lr}
- adds r4, r0, 0
- ldr r0, _081307C4
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r6, r0, 0
- cmp r1, 0
- bne _081307CC
- ldr r0, _081307C8
- b _081307CE
- .align 2, 0
-_081307C4: .4byte gUnknown_03004B00
-_081307C8: .4byte gUnknown_0202F7C8
-_081307CC:
- ldr r0, _08130834
-_081307CE:
- ldrb r5, [r0]
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r3, _08130838
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _0813083C
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- adds r1, r6, 0
- ldrh r0, [r1, 0x4]
- strh r0, [r4, 0x3A]
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- movs r1, 0x1
- cmp r0, 0
- bne _081307FC
- movs r3, 0x1
- negs r3, r3
- adds r1, r3, 0
-_081307FC:
- strh r1, [r4, 0x3C]
- adds r0, r5, 0
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x22]
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _08130840
- ldrb r2, [r4, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x8
- orrs r1, r0
- lsls r1, 1
- subs r0, 0x47
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r5, 0
- movs r1, 0x4
- bl sub_807A100
- subs r0, 0x8
- b _0813084A
- .align 2, 0
-_08130834: .4byte gUnknown_0202F7C9
-_08130838: .4byte 0x000003ff
-_0813083C: .4byte 0xfffffc00
-_08130840:
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_807A100
- adds r0, 0x8
-_0813084A:
- strh r0, [r4, 0x20]
- ldr r0, _08130858
- str r0, [r4, 0x1C]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08130858: .4byte sub_813085C
- thumb_func_end sub_81307B0
-
- thumb_func_start sub_813085C
-sub_813085C: @ 813085C
- push {lr}
- adds r2, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r2, r0]
- cmp r1, 0x1
- beq _081308A4
- cmp r1, 0x1
- bgt _08130872
- cmp r1, 0
- beq _0813087C
- b _08130914
-_08130872:
- cmp r1, 0x2
- beq _081308B4
- cmp r1, 0x3
- beq _081308DA
- b _08130914
-_0813087C:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08130914
- strh r1, [r2, 0x30]
- ldrh r0, [r2, 0x3C]
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x32]
- adds r0, 0x1
- strh r0, [r2, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC
- bne _08130914
- b _081308D2
-_081308A4:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bne _08130914
- b _081308CE
-_081308B4:
- movs r0, 0x3C
- ldrsh r1, [r2, r0]
- lsls r1, 2
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _08130914
-_081308CE:
- movs r0, 0
- strh r0, [r2, 0x30]
-_081308D2:
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
- b _08130914
-_081308DA:
- movs r0, 0x3C
- ldrsh r1, [r2, r0]
- lsls r0, r1, 1
- adds r0, r1
- ldrh r1, [r2, 0x24]
- adds r0, r1
- strh r0, [r2, 0x24]
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- bne _08130914
- ldrh r0, [r2, 0x3A]
- subs r0, 0x1
- strh r0, [r2, 0x3A]
- lsls r0, 16
- cmp r0, 0
- beq _0813090E
- movs r0, 0
- strh r0, [r2, 0x30]
- ldrh r0, [r2, 0x2E]
- subs r0, 0x1
- strh r0, [r2, 0x2E]
- b _08130914
-_0813090E:
- adds r0, r2, 0
- bl move_anim_8072740
-_08130914:
- pop {r0}
- bx r0
- thumb_func_end sub_813085C
-
- thumb_func_start sub_8130918
-sub_8130918: @ 8130918
- push {r4,lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r2, _08130930
- movs r3, 0
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _08130934
- adds r0, r1, 0
- bl move_anim_task_del
- b _0813095C
- .align 2, 0
-_08130930: .4byte gUnknown_03004B00
-_08130934:
- ldr r0, _08130964
- lsls r4, r1, 2
- adds r4, r1
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r2, 0x2]
- strh r0, [r4, 0x8]
- ldrb r0, [r2]
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r4, 0x26]
- ldr r2, _08130968
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _0813096C
- str r0, [r4]
-_0813095C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08130964: .4byte gTasks
-_08130968: .4byte gUnknown_084029DC
-_0813096C: .4byte sub_8130970
- thumb_func_end sub_8130918
-
- thumb_func_start sub_8130970
-sub_8130970: @ 8130970
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _081309B0
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _081309CA
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0xC]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081309B8
- ldr r2, _081309B4
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- b _081309C8
- .align 2, 0
-_081309B0: .4byte gTasks
-_081309B4: .4byte gSprites
-_081309B8:
- ldr r2, _08130A10
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _08130A14
-_081309C8:
- strh r1, [r0, 0x24]
-_081309CA:
- adds r0, r4, 0
- bl sub_807992C
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08130A26
- ldr r2, _08130A10
- movs r0, 0x26
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x24]
- ldrh r0, [r4, 0x8]
- subs r0, 0x1
- strh r0, [r4, 0x8]
- lsls r0, 16
- cmp r0, 0
- beq _08130A20
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _08130A18
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _08130A1C
- bl sub_80798F4
- strh r5, [r4, 0xA]
- strh r5, [r4, 0xC]
- b _08130A26
- .align 2, 0
-_08130A10: .4byte gSprites
-_08130A14: .4byte 0x0000fffe
-_08130A18: .4byte gTasks
-_08130A1C: .4byte gUnknown_084029DC
-_08130A20:
- adds r0, r6, 0
- bl move_anim_task_del
-_08130A26:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8130970
-
- thumb_func_start sub_8130A2C
-sub_8130A2C: @ 8130A2C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _08130A40
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08130A48
- ldr r4, _08130A44
- b _08130A4A
- .align 2, 0
-_08130A40: .4byte gUnknown_03004B00
-_08130A44: .4byte gUnknown_0202F7C8
-_08130A48:
- ldr r4, _08130A88
-_08130A4A:
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_807A100
- strh r0, [r5, 0x22]
- movs r1, 0x22
- ldrsh r0, [r5, r1]
- cmp r0, 0x7
- bgt _08130A6E
- movs r0, 0x8
- strh r0, [r5, 0x22]
-_08130A6E:
- movs r2, 0
- strh r2, [r5, 0x2E]
- ldr r1, _08130A8C
- ldrh r0, [r1, 0x2]
- strh r0, [r5, 0x30]
- strh r2, [r5, 0x32]
- ldrh r0, [r1, 0x4]
- strh r0, [r5, 0x34]
- ldr r0, _08130A90
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08130A88: .4byte gUnknown_0202F7C9
-_08130A8C: .4byte gUnknown_03004B00
-_08130A90: .4byte sub_8130A94
- thumb_func_end sub_8130A2C
-
- thumb_func_start sub_8130A94
-sub_8130A94: @ 8130A94
- push {lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x30
- ldrsh r1, [r3, r2]
- cmp r0, r1
- blt _08130AE8
- movs r0, 0
- strh r0, [r3, 0x2E]
- ldrh r1, [r3, 0x32]
- adds r1, 0x1
- movs r0, 0x1
- ands r1, r0
- strh r1, [r3, 0x32]
- movs r0, 0x3E
- adds r0, r3
- mov r12, r0
- lsls r1, 2
- ldrb r2, [r0]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- cmp r0, 0
- beq _08130AE8
- ldrh r0, [r3, 0x34]
- subs r0, 0x1
- strh r0, [r3, 0x34]
- lsls r0, 16
- cmp r0, 0
- bne _08130AE8
- adds r0, r3, 0
- bl move_anim_8072740
-_08130AE8:
- pop {r0}
- bx r0
- thumb_func_end sub_8130A94
-
- thumb_func_start sub_8130AEC
-sub_8130AEC: @ 8130AEC
- push {lr}
- adds r3, r0, 0
- ldr r0, _08130B18
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08130B1C
- ldrb r2, [r3, 0x3]
- lsls r1, r2, 26
- lsrs r1, 27
- movs r0, 0x8
- orrs r1, r0
- lsls r1, 1
- subs r0, 0x47
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x3]
- movs r0, 0x64
- strh r0, [r3, 0x20]
- movs r0, 0x1
- b _08130B22
- .align 2, 0
-_08130B18: .4byte gUnknown_03004B00
-_08130B1C:
- movs r0, 0x8C
- strh r0, [r3, 0x20]
- ldr r0, _08130B30
-_08130B22:
- strh r0, [r3, 0x3C]
- movs r0, 0x38
- strh r0, [r3, 0x22]
- ldr r0, _08130B34
- str r0, [r3, 0x1C]
- pop {r0}
- bx r0
- .align 2, 0
-_08130B30: .4byte 0x0000ffff
-_08130B34: .4byte sub_8130B38
- thumb_func_end sub_8130AEC
-
- thumb_func_start sub_8130B38
-sub_8130B38: @ 8130B38
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- bls _08130B46
- b _08130D18
-_08130B46:
- lsls r0, 2
- ldr r1, _08130B50
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08130B50: .4byte _08130B54
- .align 2, 0
-_08130B54:
- .4byte _08130B78
- .4byte _08130BAA
- .4byte _08130BBC
- .4byte _08130BFC
- .4byte _08130C0E
- .4byte _08130C4C
- .4byte _08130CB0
- .4byte _08130CD0
- .4byte _08130CF6
-_08130B78:
- movs r3, 0x3C
- ldrsh r0, [r4, r3]
- lsls r0, 1
- ldrh r1, [r4, 0x22]
- subs r1, r0
- strh r1, [r4, 0x22]
- ldrh r2, [r4, 0x30]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _08130B9A
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r1, 1
- ldrh r0, [r4, 0x20]
- subs r0, r1
- strh r0, [r4, 0x20]
-_08130B9A:
- adds r0, r2, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- beq _08130BA8
- b _08130D18
-_08130BA8:
- b _08130CEA
-_08130BAA:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- beq _08130BBA
- b _08130D18
-_08130BBA:
- b _08130CEA
-_08130BBC:
- ldrh r2, [r4, 0x30]
- adds r2, 0x1
- strh r2, [r4, 0x30]
- movs r3, 0x3C
- ldrsh r1, [r4, r3]
- lsls r0, r1, 1
- adds r0, r1
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r3, _08130BF8
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- ldrh r1, [r4, 0x3C]
- muls r0, r1
- strh r0, [r4, 0x24]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0xC
- beq _08130BF4
- b _08130D18
-_08130BF4:
- b _08130CEA
- .align 2, 0
-_08130BF8: .4byte gSineTable
-_08130BFC:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- beq _08130C0C
- b _08130D18
-_08130C0C:
- b _08130CEA
-_08130C0E:
- ldrh r2, [r4, 0x30]
- adds r2, 0x1
- strh r2, [r4, 0x30]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 1
- adds r1, r0
- ldrh r0, [r4, 0x22]
- subs r0, r1
- strh r0, [r4, 0x22]
- ldr r3, _08130C48
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- ldrh r1, [r4, 0x3C]
- muls r0, r1
- strh r0, [r4, 0x24]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0xC
- bne _08130D18
- b _08130CEE
- .align 2, 0
-_08130C48: .4byte gSineTable
-_08130C4C:
- ldrh r2, [r4, 0x30]
- adds r2, 0x1
- strh r2, [r4, 0x30]
- movs r3, 0x3C
- ldrsh r1, [r4, r3]
- lsls r0, r1, 1
- adds r0, r1
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- ldr r3, _08130CA4
- movs r0, 0x30
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- ldrh r1, [r4, 0x3C]
- muls r0, r1
- strh r0, [r4, 0x24]
- lsls r2, 16
- asrs r2, 16
- cmp r2, 0xF
- bne _08130C98
- ldrh r2, [r4, 0x4]
- lsls r1, r2, 22
- lsrs r1, 22
- adds r1, 0x10
- ldr r3, _08130CA8
- adds r0, r3, 0
- ands r1, r0
- ldr r0, _08130CAC
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
-_08130C98:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x12
- bne _08130D18
- b _08130CEA
- .align 2, 0
-_08130CA4: .4byte gSineTable
-_08130CA8: .4byte 0x000003ff
-_08130CAC: .4byte 0xfffffc00
-_08130CB0:
- movs r3, 0x3C
- ldrsh r0, [r4, r3]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- ldrh r0, [r4, 0x20]
- adds r1, r0
- strh r1, [r4, 0x20]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bne _08130D18
- b _08130CEA
-_08130CD0:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r0, 1
- ldrh r3, [r4, 0x20]
- adds r0, r3
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _08130D18
-_08130CEA:
- movs r0, 0
- strh r0, [r4, 0x30]
-_08130CEE:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _08130D18
-_08130CF6:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 1
- adds r1, r0
- ldrh r0, [r4, 0x20]
- subs r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _08130D18
- adds r0, r4, 0
- bl move_anim_8072740
-_08130D18:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8130B38
-
- thumb_func_start sub_8130D20
-sub_8130D20: @ 8130D20
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08130D7C
- adds r6, r1, r0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x26]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _08130DA8
- bl battle_type_is_double
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x1
- bne _08130D8C
- ldr r5, _08130D80
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r1, [r5]
- movs r0, 0x2
- eors r0, r1
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- ble _08130D84
- strh r7, [r6, 0x24]
- b _08130DAC
- .align 2, 0
-_08130D7C: .4byte gTasks
-_08130D80: .4byte gUnknown_0202F7C8
-_08130D84:
- ldr r0, _08130D88
- b _08130DAA
- .align 2, 0
-_08130D88: .4byte 0x0000ffff
-_08130D8C:
- ldr r0, _08130DA0
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08130DA8
- ldr r0, _08130DA4
- b _08130DAA
- .align 2, 0
-_08130DA0: .4byte gUnknown_0202F7C8
-_08130DA4: .4byte 0x0000ffff
-_08130DA8:
- movs r0, 0x1
-_08130DAA:
- strh r0, [r6, 0x24]
-_08130DAC:
- ldr r0, _08130DB8
- str r0, [r6]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08130DB8: .4byte sub_8130DBC
- thumb_func_end sub_8130D20
-
- thumb_func_start sub_8130DBC
-sub_8130DBC: @ 8130DBC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _08130DE0
- adds r3, r0, r1
- movs r1, 0x8
- ldrsh r0, [r3, r1]
- cmp r0, 0x8
- bls _08130DD6
- b _08130F50
-_08130DD6:
- lsls r0, 2
- ldr r1, _08130DE4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08130DE0: .4byte gTasks
-_08130DE4: .4byte _08130DE8
- .align 2, 0
-_08130DE8:
- .4byte _08130E0C
- .4byte _08130E1E
- .4byte _08130E50
- .4byte _08130E80
- .4byte _08130EA6
- .4byte _08130ED0
- .4byte _08130EE0
- .4byte _08130F00
- .4byte _08130F38
-_08130E0C:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xD
- beq _08130E1C
- b _08130F50
-_08130E1C:
- b _08130F28
-_08130E1E:
- ldr r2, _08130E4C
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r2, 0x24
- ldrsh r0, [r3, r2]
- lsls r2, r0, 1
- adds r2, r0
- ldrh r0, [r1, 0x24]
- subs r0, r2
- strh r0, [r1, 0x24]
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- beq _08130E4A
- b _08130F50
-_08130E4A:
- b _08130F28
- .align 2, 0
-_08130E4C: .4byte gSprites
-_08130E50:
- ldr r2, _08130E7C
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x24
- ldrsh r2, [r3, r0]
- lsls r0, r2, 1
- adds r0, r2
- ldrh r2, [r1, 0x24]
- adds r0, r2
- strh r0, [r1, 0x24]
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _08130F50
- b _08130F28
- .align 2, 0
-_08130E7C: .4byte gSprites
-_08130E80:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _08130F50
- movs r0, 0
- strh r0, [r3, 0xA]
- ldrh r1, [r3, 0xC]
- movs r2, 0xC
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bne _08130F2C
- adds r0, r1, 0x1
- strh r0, [r3, 0xC]
- movs r0, 0x1
- strh r0, [r3, 0x8]
- b _08130F50
-_08130EA6:
- ldr r2, _08130ECC
- 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]
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _08130F50
- b _08130F28
- .align 2, 0
-_08130ECC: .4byte gSprites
-_08130ED0:
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x6
- bne _08130F50
- b _08130F28
-_08130EE0:
- ldr r2, _08130EFC
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r0, 0x24
- ldrsh r2, [r3, r0]
- lsls r2, 2
- ldrh r0, [r1, 0x24]
- subs r0, r2
- b _08130F18
- .align 2, 0
-_08130EFC: .4byte gSprites
-_08130F00:
- ldr r2, _08130F34
- movs r1, 0x26
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r2, 0x24
- ldrsh r0, [r3, r2]
- lsls r0, 2
- ldrh r2, [r1, 0x24]
- adds r0, r2
-_08130F18:
- strh r0, [r1, 0x24]
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x5
- bne _08130F50
-_08130F28:
- movs r0, 0
- strh r0, [r3, 0xA]
-_08130F2C:
- ldrh r0, [r3, 0x8]
- adds r0, 0x1
- strh r0, [r3, 0x8]
- b _08130F50
- .align 2, 0
-_08130F34: .4byte gSprites
-_08130F38:
- ldr r2, _08130F58
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x24]
- adds r0, r4, 0
- bl move_anim_task_del
-_08130F50:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08130F58: .4byte gSprites
- thumb_func_end sub_8130DBC
-
- thumb_func_start sub_8130F5C
-sub_8130F5C: @ 8130F5C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08130F78
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08130F80
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80787B0
- ldr r0, _08130F7C
- b _08130F82
- .align 2, 0
-_08130F78: .4byte gUnknown_03004B00
-_08130F7C: .4byte gUnknown_0202F7C8
-_08130F80:
- ldr r0, _08130FD8
-_08130F82:
- ldrb r0, [r0]
- strh r0, [r4, 0x3C]
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08130FA6
- ldrb r0, [r4, 0x3]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r0
- movs r0, 0x10
- orrs r1, r0
- strb r1, [r4, 0x3]
-_08130FA6:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8079ED4
- movs r2, 0x3
- ands r2, r0
- lsls r2, 2
- ldrb r3, [r4, 0x5]
- movs r1, 0xD
- negs r1, r1
- adds r0, r1, 0
- ands r0, r3
- orrs r0, r2
- strb r0, [r4, 0x5]
- ldrb r0, [r4, 0x1]
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r4, 0x1]
- ldr r0, _08130FDC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08130FD8: .4byte gUnknown_0202F7C9
-_08130FDC: .4byte sub_8130FE0
- thumb_func_end sub_8130F5C
-
- thumb_func_start sub_8130FE0
-sub_8130FE0: @ 8130FE0
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _08130FEE
- b _081311DE
-_08130FEE:
- lsls r0, 2
- ldr r1, _08130FF8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08130FF8: .4byte _08130FFC
- .align 2, 0
-_08130FFC:
- .4byte _08131010
- .4byte _08131110
- .4byte _08131178
- .4byte _0813118C
- .4byte _081311D8
-_08131010:
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0x5
- bhi _08131040
- lsls r0, 2
- ldr r1, _08131024
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08131024: .4byte _08131028
- .align 2, 0
-_08131028:
- .4byte _08131044
- .4byte _08131060
- .4byte _08131082
- .4byte _0813109E
- .4byte _08131044
- .4byte _081310C4
-_08131040:
- movs r0, 0
- strh r0, [r4, 0x3A]
-_08131044:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x5
- bl sub_807A100
- subs r0, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- b _081310B8
-_08131060:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x5
- bl sub_807A100
- subs r0, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl sub_807A100
- adds r0, 0x4
- b _081310BE
-_08131082:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x4
- bl sub_807A100
- adds r0, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- b _081310B8
-_0813109E:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x4
- bl sub_807A100
- adds r0, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
-_081310B8:
- bl sub_807A100
- subs r0, 0x4
-_081310BE:
- lsls r0, 16
- lsrs r1, r0, 16
- b _081310E4
-_081310C4:
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r4, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r1, r0, 24
-_081310E4:
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0x4
- bne _081310F0
- movs r0, 0x18
- b _081310FA
-_081310F0:
- cmp r0, 0x5
- bne _081310F8
- movs r0, 0x6
- b _081310FA
-_081310F8:
- movs r0, 0xC
-_081310FA:
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- strh r5, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- strh r1, [r4, 0x36]
- adds r0, r4, 0
- bl obj_translate_based_on_private_1_2_3_4
- b _081311CA
-_08131110:
- adds r0, r4, 0
- bl sub_8078B5C
- lsls r0, 24
- cmp r0, 0
- beq _081311DE
- movs r1, 0x3A
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- beq _08131148
- cmp r0, 0x5
- beq _08131168
- 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, 0x2E]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- b _08131160
-_08131148:
- 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]
- strh r1, [r4, 0x38]
-_08131160:
- ldrh r0, [r4, 0x3A]
- adds r0, 0x1
- strh r0, [r4, 0x3A]
- b _081311DE
-_08131168:
- movs r0, 0
- strh r0, [r4, 0x2E]
- movs r1, 0x10
- strh r1, [r4, 0x30]
- strh r0, [r4, 0x32]
- movs r0, 0x3
- strh r0, [r4, 0x38]
- b _081311DE
-_08131178:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- bne _081311DE
- movs r0, 0
- strh r0, [r4, 0x38]
- b _081311DE
-_0813118C:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0813119E
- ldrh r0, [r4, 0x30]
- subs r0, 0x1
- strh r0, [r4, 0x30]
- b _081311A4
-_0813119E:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
-_081311A4:
- ldr r2, _081311D4
- ldrh r0, [r4, 0x32]
- lsls r0, 8
- ldrh r1, [r4, 0x30]
- orrs r0, r1
- strh r0, [r2]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- bne _081311DE
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_081311CA:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- b _081311DE
- .align 2, 0
-_081311D4: .4byte REG_BLDALPHA
-_081311D8:
- adds r0, r4, 0
- bl move_anim_8072740
-_081311DE:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8130FE0
-
- thumb_func_start sub_81311E4
-sub_81311E4: @ 81311E4
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- subs r0, r1
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- muls r0, r1
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __divsi3
- adds r5, r0, 0
- strh r5, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- subs r0, r1
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- muls r0, r1
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl __divsi3
- adds r3, r0, 0
- strh r3, [r4, 0x26]
- ldrh r1, [r4, 0x38]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08131242
- ldr r0, _08131260
- ldrh r1, [r4, 0x20]
- adds r1, r5
- lsls r1, 16
- asrs r1, 16
- ldrh r2, [r4, 0x22]
- adds r2, r3
- lsls r2, 16
- asrs r2, 16
- movs r3, 0x5
- bl CreateSprite
-_08131242:
- movs r0, 0x38
- ldrsh r1, [r4, r0]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _08131254
- adds r0, r4, 0
- bl move_anim_8072740
-_08131254:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08131260: .4byte gSpriteTemplate_8402500
- thumb_func_end sub_81311E4
-
- thumb_func_start sub_8131264
-sub_8131264: @ 8131264
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _081312A0
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- ldrb r0, [r4]
- movs r1, 0x3
- bl sub_8077ABC
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _08131290
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _081312A8
-_08131290:
- ldr r2, _081312A4
- ldrh r1, [r5, 0x20]
- ldrh r0, [r2]
- subs r0, r1, r0
- strh r0, [r5, 0x2E]
- ldrh r0, [r2, 0x4]
- subs r1, r0
- b _081312B6
- .align 2, 0
-_081312A0: .4byte gUnknown_0202F7C9
-_081312A4: .4byte gUnknown_03004B00
-_081312A8:
- ldr r2, _081312DC
- ldrh r1, [r5, 0x20]
- ldrh r0, [r2]
- adds r0, r1, r0
- strh r0, [r5, 0x2E]
- ldrh r0, [r2, 0x4]
- adds r1, r0
-_081312B6:
- strh r1, [r5, 0x32]
- adds r3, r2, 0
- ldrh r1, [r5, 0x22]
- ldrh r2, [r3, 0x2]
- adds r2, r1, r2
- strh r2, [r5, 0x30]
- ldrh r0, [r3, 0x6]
- adds r1, r0
- strh r1, [r5, 0x34]
- ldrh r0, [r3, 0x8]
- strh r0, [r5, 0x36]
- ldrh r0, [r5, 0x2E]
- strh r0, [r5, 0x20]
- strh r2, [r5, 0x22]
- ldr r0, _081312E0
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081312DC: .4byte gUnknown_03004B00
-_081312E0: .4byte sub_81311E4
- thumb_func_end sub_8131264
-
- thumb_func_start sub_81312E4
-sub_81312E4: @ 81312E4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r5, r0, 24
- adds r2, r5, 0
- ldr r0, _08131328
- mov r9, r0
- lsls r7, r6, 2
- adds r0, r7, r6
- lsls r0, 3
- mov r8, r0
- mov r4, r8
- add r4, r9
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0813132C
- adds r0, r5, 0
- movs r1, 0
- bl sub_8078E70
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0xA]
- strh r0, [r4, 0xC]
- b _08131378
- .align 2, 0
-_08131328: .4byte gTasks
-_0813132C:
- cmp r0, 0x1
- bne _08131384
- ldrh r0, [r4, 0xA]
- adds r0, 0x60
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- subs r0, 0xD
- strh r0, [r4, 0xC]
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- movs r0, 0xC
- ldrsh r2, [r4, r0]
- adds r0, r5, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r4, 0xE]
- adds r0, 0x1
- strh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x9
- bne _081313E8
- movs r0, 0
- strh r0, [r4, 0xE]
- adds r0, r5, 0
- bl sub_8078F40
- ldr r1, _08131380
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_08131378:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _081313E8
- .align 2, 0
-_08131380: .4byte gSprites
-_08131384:
- ldr r4, _081313F4
- ldrb r0, [r4]
- movs r1, 0
- bl refresh_graphics_maybe
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _081313C6
- ldr r3, _081313F8
- ldr r2, _081313FC
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x10
- adds r0, r1
- ldr r1, _08131400
- str r1, [r0]
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- bl StartSpriteAffineAnim
-_081313C6:
- mov r4, r9
- adds r3, r7, 0
- ldr r5, _08131404
- movs r1, 0xF
- mov r2, r8
- adds r0, r4, r2
- adds r0, 0x26
- movs r2, 0
-_081313D6:
- strh r2, [r0]
- subs r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _081313D6
- adds r0, r3, r6
- lsls r0, 3
- adds r0, r4
- str r5, [r0]
-_081313E8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081313F4: .4byte gUnknown_0202F7C8
-_081313F8: .4byte gSprites
-_081313FC: .4byte gUnknown_02024BE0
-_08131400: .4byte gSpriteAffineAnimTable_81E7C18
-_08131404: .4byte sub_8131408
- thumb_func_end sub_81312E4
-
- thumb_func_start sub_8131408
-sub_8131408: @ 8131408
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _08131434
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0x1
- beq _0813146C
- cmp r5, 0x1
- bgt _08131438
- cmp r5, 0
- beq _08131442
- b _0813155A
- .align 2, 0
-_08131434: .4byte gTasks
-_08131438:
- cmp r5, 0x2
- beq _081314D8
- cmp r5, 0x3
- beq _08131514
- b _0813155A
-_08131442:
- ldr r0, _08131464
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldr r0, _08131468
- strh r0, [r1, 0x26]
- movs r0, 0xC8
- strh r0, [r1, 0x24]
- adds r1, 0x3E
- ldrb r2, [r1]
- subs r0, 0xCD
- ands r0, r2
- strb r0, [r1]
- strh r5, [r4, 0x1C]
- b _08131506
- .align 2, 0
-_08131464: .4byte gSprites
-_08131468: .4byte 0x0000ff38
-_0813146C:
- ldrh r1, [r4, 0x1C]
- adds r1, 0x70
- movs r5, 0
- strh r1, [r4, 0x1C]
- ldr r2, _081314D0
- lsls r0, r3, 4
- adds r0, r3
- lsls r0, 2
- adds r2, r0, r2
- lsls r1, 16
- asrs r1, 24
- ldrh r3, [r2, 0x26]
- adds r1, r3
- strh r1, [r2, 0x26]
- 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
- blt _0813149C
- strh r5, [r2, 0x24]
-_0813149C:
- movs r1, 0x26
- ldrsh r0, [r2, r1]
- cmp r0, 0
- ble _081314A6
- strh r5, [r2, 0x26]
-_081314A6:
- movs r3, 0x26
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bne _0813155A
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x7D
- bl PlaySE12WithPanning
- ldr r1, _081314D4
- adds r0, r1, 0
- ldrh r2, [r4, 0x1C]
- adds r0, r2
- strh r0, [r4, 0x1C]
- b _08131506
- .align 2, 0
-_081314D0: .4byte gSprites
-_081314D4: .4byte 0xfffff800
-_081314D8:
- ldrh r0, [r4, 0x1C]
- subs r0, 0x70
- strh r0, [r4, 0x1C]
- lsls r0, 16
- cmp r0, 0
- bge _081314E8
- movs r0, 0
- strh r0, [r4, 0x1C]
-_081314E8:
- ldr r0, _08131510
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- adds r1, r0
- ldrh r2, [r4, 0x1C]
- lsls r2, 16
- asrs r2, 24
- ldrh r0, [r1, 0x26]
- subs r0, r2
- strh r0, [r1, 0x26]
- movs r3, 0x1C
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _0813155A
-_08131506:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0813155A
- .align 2, 0
-_08131510: .4byte gSprites
-_08131514:
- ldrh r0, [r4, 0x1C]
- adds r0, 0x70
- strh r0, [r4, 0x1C]
- ldr r2, _08131560
- lsls r1, r3, 4
- adds r1, r3
- lsls r1, 2
- adds r1, r2
- lsls r0, 16
- asrs r0, 24
- ldrh r2, [r1, 0x26]
- adds r0, r2
- strh r0, [r1, 0x26]
- lsls r0, 16
- cmp r0, 0
- ble _08131538
- movs r0, 0
- strh r0, [r1, 0x26]
-_08131538:
- movs r3, 0x26
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _0813155A
- movs r0, 0x40
- negs r0, r0
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x7D
- bl PlaySE12WithPanning
- adds r0, r6, 0
- bl move_anim_task_del
-_0813155A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08131560: .4byte gSprites
- thumb_func_end sub_8131408
-
- thumb_func_start sub_8131564
-sub_8131564: @ 8131564
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _08131588
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08131590
- ldrb r0, [r4]
- bl sub_8079E90
- subs r0, 0x2
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- ldr r4, _0813158C
- b _081315A0
- .align 2, 0
-_08131588: .4byte gUnknown_0202F7C9
-_0813158C: .4byte 0x0000ff70
-_08131590:
- ldrb r0, [r4]
- bl sub_8079E90
- adds r0, 0x2
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- ldr r4, _081315BC
-_081315A0:
- ldr r0, _081315C0
- ldrb r0, [r0]
- movs r1, 0x3
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x22]
- strh r4, [r5, 0x26]
- ldr r0, _081315C4
- str r0, [r5, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081315BC: .4byte 0x0000ffa0
-_081315C0: .4byte gUnknown_0202F7C9
-_081315C4: .4byte sub_81315C8
- thumb_func_end sub_8131564
-
- thumb_func_start sub_81315C8
-sub_81315C8: @ 81315C8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bls _081315D6
- b _081316F2
-_081315D6:
- lsls r0, 2
- ldr r1, _081315E0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081315E0: .4byte _081315E4
- .align 2, 0
-_081315E4:
- .4byte _081315F8
- .4byte _0813161C
- .4byte _0813165C
- .4byte _0813168C
- .4byte _081316B8
-_081315F8:
- ldrh r0, [r4, 0x26]
- adds r0, 0xA
- strh r0, [r4, 0x26]
- lsls r0, 16
- cmp r0, 0
- blt _081316F2
- movs r0, 0x3F
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xCD
- bl PlaySE12WithPanning
- movs r0, 0
- strh r0, [r4, 0x26]
- b _081316B0
-_0813161C:
- ldrh r1, [r4, 0x30]
- adds r1, 0x4
- movs r5, 0
- strh r1, [r4, 0x30]
- ldr r2, _08131658
- movs r3, 0x30
- ldrsh r0, [r4, r3]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- negs r0, r0
- strh r0, [r4, 0x26]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- ble _081316F2
- movs r0, 0x3F
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xCD
- bl PlaySE12WithPanning
- strh r5, [r4, 0x30]
- strh r5, [r4, 0x26]
- b _081316B0
- .align 2, 0
-_08131658: .4byte gSineTable
-_0813165C:
- ldrh r1, [r4, 0x30]
- adds r1, 0x6
- movs r3, 0
- strh r1, [r4, 0x30]
- ldr r2, _08131688
- movs r5, 0x30
- ldrsh r0, [r4, r5]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 20
- negs r0, r0
- strh r0, [r4, 0x26]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7F
- ble _081316F2
- strh r3, [r4, 0x30]
- strh r3, [r4, 0x26]
- b _081316B0
- .align 2, 0
-_08131688: .4byte gSineTable
-_0813168C:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _081316F2
- movs r0, 0x3F
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0xC0
- bl PlaySE12WithPanning
- movs r0, 0
- strh r0, [r4, 0x30]
-_081316B0:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _081316F2
-_081316B8:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _081316F2
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x32]
- adds r1, 0x1
- strh r1, [r4, 0x32]
- movs r0, 0x1
- ands r1, r0
- adds r3, r4, 0
- adds r3, 0x3E
- lsls r1, 2
- ldrb r2, [r3]
- subs r0, 0x6
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- bne _081316F2
- adds r0, r4, 0
- bl move_anim_8072740
-_081316F2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81315C8
-
- thumb_func_start sub_81316F8
-sub_81316F8: @ 81316F8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- mov r10, r4
- bl sub_8076BE0
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0813173E
- movs r0, 0x1
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- lsls r0, 16
- asrs r7, r0, 16
- cmp r7, 0
- blt _0813173E
- movs r0, 0x1
- bl duplicate_obj_of_side_rel2move_in_transparent_mode
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _0813174C
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- ldr r1, _08131748
- adds r0, r1
- bl obj_delete_but_dont_free_vram
-_0813173E:
- adds r0, r4, 0
- bl move_anim_task_del
- b _081317EE
- .align 2, 0
-_08131748: .4byte gSprites
-_0813174C:
- ldr r1, _081317FC
- mov r9, r1
- lsls r1, r0, 4
- mov r8, r1
- add r8, r0
- mov r0, r8
- lsls r0, 2
- mov r8, r0
- mov r4, r8
- add r4, r9
- ldrh r0, [r4, 0x24]
- adds r0, 0x18
- strh r0, [r4, 0x24]
- lsls r6, r7, 4
- adds r6, r7
- lsls r6, 2
- mov r1, r9
- adds r2, r6, r1
- ldrh r0, [r2, 0x24]
- subs r0, 0x18
- strh r0, [r2, 0x24]
- strh r5, [r4, 0x2E]
- strh r5, [r2, 0x2E]
- strh r5, [r4, 0x30]
- strh r5, [r2, 0x30]
- strh r5, [r4, 0x32]
- strh r5, [r2, 0x32]
- movs r0, 0x10
- strh r0, [r4, 0x34]
- ldr r0, _08131800
- strh r0, [r2, 0x34]
- strh r5, [r4, 0x36]
- movs r0, 0x80
- strh r0, [r2, 0x36]
- movs r0, 0x18
- strh r0, [r4, 0x38]
- strh r0, [r2, 0x38]
- mov r0, r10
- strh r0, [r4, 0x3A]
- strh r0, [r2, 0x3A]
- strh r5, [r4, 0x3C]
- strh r5, [r2, 0x3C]
- ldr r0, _08131804
- mov r1, r10
- lsls r3, r1, 2
- add r3, r10
- lsls r3, 3
- adds r3, r0
- movs r0, 0x2
- strh r0, [r3, 0x8]
- adds r5, r4, 0
- adds r5, 0x3E
- ldrb r1, [r5]
- subs r0, 0x7
- ands r0, r1
- strb r0, [r5]
- adds r5, r2, 0
- adds r5, 0x3E
- ldrb r0, [r5]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r5]
- ldrb r5, [r4, 0x1]
- movs r1, 0xD
- negs r1, r1
- adds r0, r1, 0
- ands r0, r5
- strb r0, [r4, 0x1]
- ldrb r0, [r2, 0x1]
- ands r1, r0
- strb r1, [r2, 0x1]
- movs r0, 0x1C
- add r9, r0
- add r8, r9
- ldr r0, _08131808
- mov r1, r8
- str r0, [r1]
- add r6, r9
- str r0, [r6]
- ldr r0, _0813180C
- str r0, [r3]
-_081317EE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081317FC: .4byte gSprites
-_08131800: .4byte 0x0000fff0
-_08131804: .4byte gTasks
-_08131808: .4byte sub_8131838
-_0813180C: .4byte sub_8131810
- thumb_func_end sub_81316F8
-
- thumb_func_start sub_8131810
-sub_8131810: @ 8131810
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _08131834
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0813182E
- adds r0, r2, 0
- bl move_anim_task_del
-_0813182E:
- pop {r0}
- bx r0
- .align 2, 0
-_08131834: .4byte gTasks
- thumb_func_end sub_8131810
-
- thumb_func_start sub_8131838
-sub_8131838: @ 8131838
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08131868
- strh r5, [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]
-_08131868:
- ldrh r0, [r4, 0x34]
- ldrh r1, [r4, 0x36]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x36]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08131890
- cmp r0, 0x1
- beq _081318A8
- b _081318E6
-_08131890:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- bne _081318E6
- strh r5, [r4, 0x32]
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _081318E6
-_081318A8:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- lsls r0, 16
- cmp r0, 0
- ble _081318E6
- strh r5, [r4, 0x32]
- ldrh r0, [r4, 0x38]
- subs r0, 0x2
- strh r0, [r4, 0x38]
- lsls r0, 16
- cmp r0, 0
- bge _081318E6
- ldr r3, _081318EC
- 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]
- adds r0, r4, 0
- bl obj_delete_but_dont_free_vram
-_081318E6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081318EC: .4byte gTasks
- thumb_func_end sub_8131838
-
- thumb_func_start sub_81318F0
-sub_81318F0: @ 81318F0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, _0813193C
- movs r2, 0
- strh r2, [r3, 0xE]
- ldr r1, _08131940
- ldrb r0, [r1]
- ldrb r1, [r1]
- adds r0, r1, 0
- subs r0, 0x3D
- lsls r0, 24
- lsrs r0, 24
- adds r2, r1, 0
- cmp r0, 0x1E
- bhi _08131914
- movs r0, 0x1
- strh r0, [r3, 0xE]
-_08131914:
- adds r0, r2, 0
- subs r0, 0x5C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6C
- bhi _08131924
- movs r0, 0x2
- strh r0, [r3, 0xE]
-_08131924:
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, 0xC8
- bls _08131930
- movs r0, 0x3
- strh r0, [r3, 0xE]
-_08131930:
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813193C: .4byte gUnknown_03004B00
-_08131940: .4byte gUnknown_0202F7BE
- thumb_func_end sub_81318F0
-
- thumb_func_start sub_8131944
-sub_8131944: @ 8131944
- 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
- ldr r1, _08131974
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0x4
- bls _0813196A
- b _08131EA0
-_0813196A:
- lsls r0, 2
- ldr r1, _08131978
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08131974: .4byte gTasks
-_08131978: .4byte _0813197C
- .align 2, 0
-_0813197C:
- .4byte _08131990
- .4byte _08131A44
- .4byte _08131C20
- .4byte _08131D40
- .4byte _08131DC4
-_08131990:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _081319DC
- mov r2, r8
- lsls r4, r2, 2
- adds r0, r4, r2
- lsls r0, 3
- adds r6, r0, r1
- movs r3, 0x80
- lsls r3, 4
- adds r0, r3, 0
- ldrh r1, [r6, 0xA]
- adds r0, r1
- strh r0, [r6, 0xA]
- ldr r0, _081319E0
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- mov r9, r4
- cmp r0, 0
- bne _081319E8
- ldr r2, _081319E4
- lsls r3, r7, 4
- adds r1, r3, r7
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r6, 0xA]
- lsls r0, 16
- asrs r0, 24
- ldrh r4, [r1, 0x24]
- adds r0, r4
- strh r0, [r1, 0x24]
- b _08131A02
- .align 2, 0
-_081319DC: .4byte gTasks
-_081319E0: .4byte gUnknown_0202F7C8
-_081319E4: .4byte gSprites
-_081319E8:
- ldr r3, _08131A3C
- lsls r4, r7, 4
- adds r2, r4, r7
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r6, 0xA]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- adds r2, r3, 0
- adds r3, r4, 0
-_08131A02:
- ldr r1, _08131A40
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r4, r0, r1
- ldrb r0, [r4, 0xA]
- strh r0, [r4, 0xA]
- adds r1, r3, r7
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x24]
- ldrh r1, [r1, 0x20]
- adds r0, r1
- lsls r0, 16
- movs r1, 0x80
- lsls r1, 14
- adds r0, r1
- movs r1, 0x98
- lsls r1, 17
- cmp r0, r1
- bhi _08131A2E
- b _08131EA0
-_08131A2E:
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08131EA0
- .align 2, 0
-_08131A3C: .4byte gSprites
-_08131A40: .4byte gTasks
-_08131A44:
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- beq _08131A74
- ldr r0, _08131A6C
- ldr r2, [r0, 0x8]
- mov r10, r2
- ldr r3, [r0, 0xC]
- mov r9, r3
- ldrh r5, [r0]
- ldr r0, _08131A70
- ldrb r0, [r0]
- bl sub_8079E90
- lsls r0, 24
- lsrs r4, r0, 24
- movs r7, 0
- b _08131B92
- .align 2, 0
-_08131A6C: .4byte 0x02019348
-_08131A70: .4byte gUnknown_0202F7C8
-_08131A74:
- ldr r4, _08131AD4
- ldrb r0, [r4]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08131B10
- ldr r7, _08131AD8
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _08131ADC
- adds r0, r5
- movs r1, 0
- bl GetMonData
- mov r10, r0
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0x1
- bl GetMonData
- mov r9, r0
- ldrb r2, [r4]
- lsls r1, r2, 2
- ldr r0, _08131AE0
- adds r1, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _08131AE4
- lsls r0, r2, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- b _08131AE6
- .align 2, 0
-_08131AD4: .4byte gUnknown_0202F7C8
-_08131AD8: .4byte gUnknown_02024A6A
-_08131ADC: .4byte gPlayerParty
-_08131AE0: .4byte 0x02017800
-_08131AE4:
- ldrh r5, [r1, 0x2]
-_08131AE6:
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- ldr r2, _08131B0C
- 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
- lsls r0, 24
- lsrs r4, r0, 24
- movs r7, 0
- movs r6, 0x88
- lsls r6, 1
- b _08131B94
- .align 2, 0
-_08131B0C: .4byte gSprites
-_08131B10:
- ldr r7, _08131B64
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _08131B68
- adds r0, r5
- movs r1, 0
- bl GetMonData
- mov r10, r0
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0x1
- bl GetMonData
- mov r9, r0
- ldrb r2, [r4]
- lsls r1, r2, 2
- ldr r0, _08131B6C
- adds r1, r0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- bne _08131B70
- lsls r0, r2, 1
- adds r0, r7
- ldrh r0, [r0]
- muls r0, r6
- adds r0, r5
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- b _08131B72
- .align 2, 0
-_08131B64: .4byte gUnknown_02024A6A
-_08131B68: .4byte gEnemyParty
-_08131B6C: .4byte 0x02017800
-_08131B70:
- ldrh r5, [r1, 0x2]
-_08131B72:
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- ldr r2, _08131C04
- 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]
- subs r0, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- movs r7, 0x1
-_08131B92:
- ldr r6, _08131C08
-_08131B94:
- ldr r0, _08131C0C
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- lsls r3, r6, 16
- asrs r3, 16
- str r0, [sp]
- str r4, [sp, 0x4]
- mov r4, r10
- str r4, [sp, 0x8]
- mov r0, r9
- str r0, [sp, 0xC]
- adds r0, r5, 0
- adds r1, r7, 0
- movs r2, 0
- bl sub_8079F44
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08131C10
- ldrb r0, [r0]
- lsls r0, 2
- ldr r1, _08131C14
- adds r0, r1
- ldrh r0, [r0, 0x2]
- cmp r0, 0
- beq _08131BF2
- ldr r1, _08131C04
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- orrs r0, r1
- ldr r3, _08131C18
- movs r1, 0x10
- movs r2, 0x6
- bl BlendPalette
-_08131BF2:
- ldr r0, _08131C1C
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- strh r5, [r1, 0x26]
- b _08131DB6
- .align 2, 0
-_08131C04: .4byte gSprites
-_08131C08: .4byte 0x0000ffe0
-_08131C0C: .4byte gUnknown_0202F7C9
-_08131C10: .4byte gUnknown_0202F7C8
-_08131C14: .4byte 0x02017800
-_08131C18: .4byte 0x00007fff
-_08131C1C: .4byte gTasks
-_08131C20:
- ldr r1, _08131C6C
- mov r0, r8
- lsls r4, r0, 2
- adds r0, r4, r0
- lsls r0, 3
- adds r6, r0, r1
- ldrh r0, [r6, 0x26]
- lsls r0, 24
- lsrs r5, r0, 24
- movs r1, 0x80
- lsls r1, 4
- adds r0, r1, 0
- ldrh r2, [r6, 0xA]
- adds r0, r2
- strh r0, [r6, 0xA]
- ldr r0, _08131C70
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- mov r9, r4
- cmp r0, 0
- bne _08131C78
- ldr r3, _08131C74
- lsls r4, r5, 4
- adds r2, r4, r5
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r6, 0xA]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- adds r2, r3, 0
- adds r3, r4, 0
- b _08131C8E
- .align 2, 0
-_08131C6C: .4byte gTasks
-_08131C70: .4byte gUnknown_0202F7C8
-_08131C74: .4byte gSprites
-_08131C78:
- ldr r2, _08131CDC
- lsls r3, r5, 4
- adds r1, r3, r5
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r6, 0xA]
- lsls r0, 16
- asrs r0, 24
- ldrh r4, [r1, 0x24]
- adds r0, r4
- strh r0, [r1, 0x24]
-_08131C8E:
- ldr r1, _08131CE0
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r6, r0, r1
- ldrb r0, [r6, 0xA]
- strh r0, [r6, 0xA]
- adds r1, r3, r5
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x24]
- ldrh r1, [r1, 0x20]
- adds r0, r1
- lsls r0, 16
- lsrs r5, r0, 16
- movs r1, 0x24
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _08131D0E
- ldr r0, _08131CE4
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08131CEC
- lsls r4, r5, 16
- asrs r4, 16
- ldr r0, _08131CE8
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bge _08131D0E
- b _08131D02
- .align 2, 0
-_08131CDC: .4byte gSprites
-_08131CE0: .4byte gTasks
-_08131CE4: .4byte gUnknown_0202F7C8
-_08131CE8: .4byte gUnknown_0202F7C9
-_08131CEC:
- lsls r4, r5, 16
- asrs r4, 16
- ldr r0, _08131D30
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- ble _08131D0E
-_08131D02:
- ldrh r0, [r6, 0x24]
- adds r0, 0x1
- strh r0, [r6, 0x24]
- ldr r1, _08131D34
- ldr r0, _08131D38
- strh r0, [r1, 0xE]
-_08131D0E:
- lsls r0, r5, 16
- movs r2, 0x80
- lsls r2, 14
- adds r0, r2
- movs r1, 0x98
- lsls r1, 17
- cmp r0, r1
- bhi _08131D20
- b _08131EA0
-_08131D20:
- ldr r0, _08131D3C
- mov r1, r9
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0xA]
- b _08131DB6
- .align 2, 0
-_08131D30: .4byte gUnknown_0202F7C9
-_08131D34: .4byte gUnknown_03004B00
-_08131D38: .4byte 0x0000ffff
-_08131D3C: .4byte gTasks
-_08131D40:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08131D8C
- mov r3, r8
- lsls r4, r3, 2
- adds r0, r4, r3
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x26]
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r5, _08131D90
- adds r0, r5
- bl sub_807A0F4
- ldr r0, _08131D94
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- mov r9, r4
- cmp r0, 0
- bne _08131D98
- lsls r1, r7, 4
- adds r1, r7
- lsls r1, 2
- adds r1, r5
- ldrh r0, [r1, 0x20]
- negs r0, r0
- subs r0, 0x20
- strh r0, [r1, 0x24]
- b _08131DAC
- .align 2, 0
-_08131D8C: .4byte gTasks
-_08131D90: .4byte gSprites
-_08131D94: .4byte gUnknown_0202F7C8
-_08131D98:
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- adds r0, r5
- ldrh r2, [r0, 0x20]
- movs r4, 0x88
- lsls r4, 1
- adds r1, r4, 0
- subs r1, r2
- strh r1, [r0, 0x24]
-_08131DAC:
- ldr r0, _08131DC0
- mov r1, r9
- add r1, r8
- lsls r1, 3
- adds r1, r0
-_08131DB6:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _08131EA0
- .align 2, 0
-_08131DC0: .4byte gTasks
-_08131DC4:
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08131E38
- mov r0, r8
- lsls r4, r0, 2
- adds r0, r4, r0
- lsls r0, 3
- adds r2, r0, r1
- movs r1, 0x80
- lsls r1, 4
- adds r0, r1, 0
- ldrh r3, [r2, 0xA]
- adds r0, r3
- strh r0, [r2, 0xA]
- ldr r0, _08131E3C
- mov r10, r0
- ldrb r0, [r0]
- str r2, [sp, 0x10]
- bl battle_side_get_owner
- lsls r0, 24
- mov r9, r4
- ldr r2, [sp, 0x10]
- cmp r0, 0
- bne _08131E44
- ldr r1, _08131E40
- lsls r5, r7, 4
- adds r0, r5, r7
- lsls r0, 2
- adds r6, r0, r1
- ldrh r0, [r2, 0xA]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r6, 0x24]
- adds r0, r1
- strh r0, [r6, 0x24]
- movs r2, 0x24
- ldrsh r4, [r6, r2]
- movs r3, 0x20
- ldrsh r0, [r6, r3]
- adds r4, r0
- mov r1, r10
- ldrb r0, [r1]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r3, r5, 0
- cmp r4, r0
- blt _08131E7C
- movs r2, 0
- strh r2, [r6, 0x24]
- b _08131E7C
- .align 2, 0
-_08131E38: .4byte gTasks
-_08131E3C: .4byte gUnknown_0202F7C8
-_08131E40: .4byte gSprites
-_08131E44:
- ldr r1, _08131EB0
- lsls r5, r7, 4
- adds r0, r5, r7
- lsls r0, 2
- adds r6, r0, r1
- ldrh r1, [r2, 0xA]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r6, 0x24]
- subs r0, r1
- strh r0, [r6, 0x24]
- movs r3, 0x24
- ldrsh r4, [r6, r3]
- movs r1, 0x20
- ldrsh r0, [r6, r1]
- adds r4, r0
- mov r2, r10
- ldrb r0, [r2]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r3, r5, 0
- cmp r4, r0
- bgt _08131E7C
- movs r4, 0
- strh r4, [r6, 0x24]
-_08131E7C:
- ldr r1, _08131EB4
- mov r0, r9
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0xA]
- strh r1, [r0, 0xA]
- ldr r1, _08131EB0
- adds r0, r3, r7
- lsls r0, 2
- adds r0, r1
- movs r1, 0x24
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08131EA0
- mov r0, r8
- bl move_anim_task_del
-_08131EA0:
- 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
-_08131EB0: .4byte gSprites
-_08131EB4: .4byte gTasks
- thumb_func_end sub_8131944
-
- thumb_func_start sub_8131EB8
-sub_8131EB8: @ 8131EB8
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08131ECA
- cmp r0, 0x1
- beq _08131F72
- b _08131FF4
-_08131ECA:
- ldr r0, _08131F50
- movs r2, 0xE
- ldrsh r1, [r0, r2]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _08131F64
- movs r0, 0x3F
- bl sub_8076F98
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x7A
- bl PlaySE12WithPanning
- ldr r0, _08131F54
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- strh r0, [r4, 0x22]
- ldr r0, _08131F58
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08131F5C
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08131FF4
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _08131FF4
- movs r0, 0x1
- bl obj_id_for_side_relative_to_move
- ldr r2, _08131F60
- 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]
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- b _08131FF4
- .align 2, 0
-_08131F50: .4byte gUnknown_03004B00
-_08131F54: .4byte gUnknown_0202F7C9
-_08131F58: .4byte 0x0000ffe0
-_08131F5C: .4byte gUnknown_0202F7C8
-_08131F60: .4byte gSprites
-_08131F64:
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _08131FF4
-_08131F72:
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x2E
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r2, [r4, 0x30]
- adds r0, r2, 0x5
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7F
- ble _08131FA6
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- adds r0, r2, 0
- subs r0, 0x7A
- strh r0, [r4, 0x30]
-_08131FA6:
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldr r0, _08131FD0
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08131FD4
- ldrh r2, [r4, 0x32]
- lsls r1, r2, 16
- asrs r1, 24
- ldrh r0, [r4, 0x24]
- subs r0, r1
- strh r0, [r4, 0x24]
- adds r1, r2, 0
- b _08131FE0
- .align 2, 0
-_08131FD0: .4byte gUnknown_0202F7C8
-_08131FD4:
- ldrh r1, [r4, 0x32]
- lsls r0, r1, 16
- asrs r0, 24
- ldrh r2, [r4, 0x24]
- adds r0, r2
- strh r0, [r4, 0x24]
-_08131FE0:
- movs r0, 0xFF
- ands r0, r1
- strh r0, [r4, 0x32]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x2
- bne _08131FF4
- adds r0, r4, 0
- bl move_anim_8072740
-_08131FF4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8131EB8
-
- thumb_func_start sub_8131FFC
-sub_8131FFC: @ 8131FFC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08132024
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x26
- ldrsh r0, [r0, r2]
- adds r3, r1, 0
- cmp r0, 0x4
- bls _08132018
- b _0813216A
-_08132018:
- lsls r0, 2
- ldr r1, _08132028
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08132024: .4byte gTasks
-_08132028: .4byte _0813202C
- .align 2, 0
-_0813202C:
- .4byte _08132040
- .4byte _08132090
- .4byte _081320EC
- .4byte _08132104
- .4byte _0813216A
-_08132040:
- ldr r0, _08132084
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r0, _08132088
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- ldr r1, _0813208C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- movs r0, 0x6
- strh r0, [r1, 0x8]
- cmp r5, r2
- ble _08132076
- negs r0, r0
- strh r0, [r1, 0x8]
-_08132076:
- strh r5, [r1, 0xA]
- strh r2, [r1, 0xC]
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _08132188
- .align 2, 0
-_08132084: .4byte gUnknown_0202F7C8
-_08132088: .4byte gUnknown_0202F7C9
-_0813208C: .4byte gTasks
-_08132090:
- ldr r1, _081320CC
- ldr r0, _081320D0
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- ldr r1, _081320D4
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r1
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r3
- ldrh r0, [r2, 0x8]
- ldrh r3, [r1, 0x24]
- adds r0, r3
- strh r0, [r1, 0x24]
- movs r3, 0x8
- ldrsh r0, [r2, r3]
- cmp r0, 0
- ble _081320D8
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- movs r3, 0x24
- ldrsh r1, [r1, r3]
- adds r0, r1
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- b _0813215E
- .align 2, 0
-_081320CC: .4byte gUnknown_02024BE0
-_081320D0: .4byte gUnknown_0202F7C8
-_081320D4: .4byte gSprites
-_081320D8:
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- movs r3, 0x24
- ldrsh r1, [r1, r3]
- adds r0, r1
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bgt _08132188
- b _08132162
-_081320EC:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- negs r1, r1
- strh r1, [r0, 0x8]
- ldrh r1, [r0, 0x26]
- adds r1, 0x1
- strh r1, [r0, 0x26]
- b _08132188
-_08132104:
- ldr r1, _08132144
- ldr r0, _08132148
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- ldr r1, _0813214C
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r1
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r3
- ldrh r0, [r2, 0x8]
- ldrh r3, [r1, 0x24]
- adds r0, r3
- strh r0, [r1, 0x24]
- movs r3, 0x8
- ldrsh r0, [r2, r3]
- cmp r0, 0
- bge _08132150
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- movs r3, 0x24
- ldrsh r1, [r1, r3]
- adds r0, r1
- movs r3, 0xA
- ldrsh r1, [r2, r3]
- cmp r0, r1
- bgt _08132188
- b _08132162
- .align 2, 0
-_08132144: .4byte gUnknown_02024BE0
-_08132148: .4byte gUnknown_0202F7C8
-_0813214C: .4byte gSprites
-_08132150:
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- movs r3, 0x24
- ldrsh r1, [r1, r3]
- adds r0, r1
- movs r3, 0xA
- ldrsh r1, [r2, r3]
-_0813215E:
- cmp r0, r1
- blt _08132188
-_08132162:
- ldrh r0, [r2, 0x26]
- adds r0, 0x1
- strh r0, [r2, 0x26]
- b _08132188
-_0813216A:
- ldr r1, _08132190
- ldr r0, _08132194
- ldrb r0, [r0]
- adds r0, r1
- ldrb r2, [r0]
- ldr r1, _08132198
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x24]
- adds r0, r4, 0
- bl move_anim_task_del
-_08132188:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132190: .4byte gUnknown_02024BE0
-_08132194: .4byte gUnknown_0202F7C8
-_08132198: .4byte gSprites
- thumb_func_end sub_8131FFC
-
- thumb_func_start sub_813219C
-sub_813219C: @ 813219C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08132204
- adds r4, r1, r0
- movs r0, 0
- bl obj_id_for_side_relative_to_move
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r4, 0xE]
- ldr r0, _08132208
- 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 _081321D0
- movs r1, 0x1
-_081321D0:
- strh r1, [r4, 0x10]
- ldr r2, _0813220C
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x14]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x20]
- strh r0, [r4, 0x12]
- strh r5, [r4, 0x1A]
- strh r5, [r4, 0x1E]
- movs r0, 0x1
- strh r0, [r4, 0x1C]
- strh r5, [r4, 0x20]
- ldr r0, _08132210
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132204: .4byte gTasks
-_08132208: .4byte gUnknown_0202F7C8
-_0813220C: .4byte gSprites
-_08132210: .4byte sub_8132214
- thumb_func_end sub_813219C
-
- thumb_func_start sub_8132214
-sub_8132214: @ 8132214
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, _08132238
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _081322BC
- cmp r0, 0x1
- bgt _0813223C
- cmp r0, 0
- beq _08132242
- b _08132312
- .align 2, 0
-_08132238: .4byte gTasks
-_0813223C:
- cmp r0, 0x2
- beq _0813230C
- b _08132312
-_08132242:
- ldrh r0, [r4, 0x1E]
- adds r0, 0x8
- movs r2, 0xFF
- ands r0, r2
- strh r0, [r4, 0x1E]
- ldr r5, _081322B4
- movs r6, 0xE
- ldrsh r0, [r4, r6]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldr r3, _081322B8
- movs r6, 0x1E
- ldrsh r0, [r4, r6]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 21
- strh r0, [r1, 0x24]
- ldrh r0, [r4, 0x1A]
- adds r0, 0x2
- ands r0, r2
- strh r0, [r4, 0x1A]
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r5
- movs r6, 0x1A
- ldrsh r0, [r4, r6]
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- ldrh r1, [r4, 0x10]
- muls r0, r1
- ldrh r1, [r4, 0x12]
- adds r0, r1
- strh r0, [r2, 0x20]
- movs r6, 0x1A
- ldrsh r0, [r4, r6]
- cmp r0, 0
- bne _08132312
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r4, 0x12]
- strh r1, [r0, 0x20]
- b _081322FC
- .align 2, 0
-_081322B4: .4byte gSprites
-_081322B8: .4byte gSineTable
-_081322BC:
- ldrh r0, [r4, 0x1E]
- adds r0, 0x8
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x1E]
- ldr r3, _08132304
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldr r2, _08132308
- movs r5, 0x1E
- ldrsh r0, [r4, r5]
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 21
- strh r0, [r1, 0x24]
- movs r6, 0x1E
- ldrsh r2, [r4, r6]
- cmp r2, 0
- bne _08132312
- movs r1, 0xE
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- strh r2, [r1, 0x24]
-_081322FC:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08132312
- .align 2, 0
-_08132304: .4byte gSprites
-_08132308: .4byte gSineTable
-_0813230C:
- adds r0, r2, 0
- bl move_anim_task_del
-_08132312:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8132214
-
- thumb_func_start sub_8132318
-sub_8132318: @ 8132318
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _0813236C
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- ldrh r0, [r4, 0x2E]
- ldrh r1, [r4, 0x30]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x30]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x14
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x14
- bl Sin
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0813235E
- adds r0, r4, 0
- bl move_anim_8072740
-_0813235E:
- ldrh r0, [r4, 0x32]
- adds r0, 0x1
- strh r0, [r4, 0x32]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813236C: .4byte gUnknown_0202F7C9
- thumb_func_end sub_8132318
-
- thumb_func_start sub_8132370
-sub_8132370: @ 8132370
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _081323A8
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _081323B4
- ldr r2, _081323AC
- 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]
- ldr r0, _081323B0
- strh r0, [r4, 0x2E]
- movs r0, 0xC0
- strh r0, [r4, 0x30]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- b _081323CE
- .align 2, 0
-_081323A8: .4byte gUnknown_0202F7C9
-_081323AC: .4byte gUnknown_03004B00
-_081323B0: .4byte 0x0000fff5
-_081323B4:
- movs r0, 0xB
- strh r0, [r4, 0x2E]
- movs r0, 0xC0
- strh r0, [r4, 0x30]
- ldr r1, _081323D8
- 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]
-_081323CE:
- ldr r0, _081323DC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081323D8: .4byte gUnknown_03004B00
-_081323DC: .4byte sub_8132318
- thumb_func_end sub_8132370
-
- thumb_func_start sub_81323E0
-sub_81323E0: @ 81323E0
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _08132424
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x20]
- ldrb r0, [r4]
- movs r1, 0x2
- bl sub_807A100
- strh r0, [r5, 0x22]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bgt _0813240A
- movs r0, 0x10
- strh r0, [r5, 0x22]
-_0813240A:
- movs r0, 0
- strh r0, [r5, 0x3A]
- movs r1, 0x10
- strh r1, [r5, 0x3C]
- ldr r0, _08132428
- str r0, [r5, 0x1C]
- ldr r0, _0813242C
- lsls r1, 8
- strh r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132424: .4byte gUnknown_0202F7C8
-_08132428: .4byte sub_8132430
-_0813242C: .4byte REG_BLDALPHA
- thumb_func_end sub_81323E0
-
- thumb_func_start sub_8132430
-sub_8132430: @ 8132430
- push {r4,lr}
- adds r3, r0, 0
- movs r0, 0x32
- ldrsh r1, [r3, r0]
- cmp r1, 0x1
- beq _081324A8
- cmp r1, 0x1
- bgt _08132446
- cmp r1, 0
- beq _08132450
- b _08132522
-_08132446:
- cmp r1, 0x2
- beq _081324BE
- cmp r1, 0x3
- beq _0813251C
- b _08132522
-_08132450:
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08132522
- strh r1, [r3, 0x2E]
- ldrh r1, [r3, 0x30]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0813247A
- ldrh r2, [r3, 0x3A]
- movs r4, 0x3A
- ldrsh r0, [r3, r4]
- cmp r0, 0xF
- bgt _08132488
- adds r0, r2, 0x1
- strh r0, [r3, 0x3A]
- b _08132488
-_0813247A:
- ldrh r2, [r3, 0x3C]
- movs r4, 0x3C
- ldrsh r0, [r3, r4]
- cmp r0, 0
- beq _08132488
- subs r0, r2, 0x1
- strh r0, [r3, 0x3C]
-_08132488:
- adds r0, r1, 0x1
- strh r0, [r3, 0x30]
- ldr r2, _081324A4
- ldrh r0, [r3, 0x3C]
- lsls r0, 8
- ldrh r1, [r3, 0x3A]
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x3C
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _08132522
- b _08132510
- .align 2, 0
-_081324A4: .4byte REG_BLDALPHA
-_081324A8:
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _08132522
- strh r1, [r3, 0x2E]
- strh r1, [r3, 0x30]
- b _08132510
-_081324BE:
- ldrh r0, [r3, 0x2E]
- adds r0, 0x1
- strh r0, [r3, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _08132522
- movs r0, 0
- strh r0, [r3, 0x2E]
- ldrh r1, [r3, 0x30]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081324EA
- ldrh r2, [r3, 0x3A]
- movs r4, 0x3A
- ldrsh r0, [r3, r4]
- cmp r0, 0
- beq _081324F8
- subs r0, r2, 0x1
- strh r0, [r3, 0x3A]
- b _081324F8
-_081324EA:
- ldrh r2, [r3, 0x3C]
- movs r4, 0x3C
- ldrsh r0, [r3, r4]
- cmp r0, 0xF
- bgt _081324F8
- adds r0, r2, 0x1
- strh r0, [r3, 0x3C]
-_081324F8:
- adds r0, r1, 0x1
- strh r0, [r3, 0x30]
- ldr r2, _08132518
- ldrh r0, [r3, 0x3C]
- lsls r0, 8
- ldrh r1, [r3, 0x3A]
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x3C
- ldrsh r0, [r3, r1]
- cmp r0, 0x10
- bne _08132522
-_08132510:
- ldrh r0, [r3, 0x32]
- adds r0, 0x1
- strh r0, [r3, 0x32]
- b _08132522
- .align 2, 0
-_08132518: .4byte REG_BLDALPHA
-_0813251C:
- adds r0, r3, 0
- bl move_anim_8074EE0
-_08132522:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8132430
-
- thumb_func_start sub_8132528
-sub_8132528: @ 8132528
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, _08132544
- movs r0, 0
- strh r0, [r2, 0xE]
- ldr r0, _08132548
- ldrh r1, [r0]
- movs r0, 0x60
- ands r0, r1
- cmp r0, 0
- beq _0813254C
- movs r0, 0x1
- b _0813256E
- .align 2, 0
-_08132544: .4byte gUnknown_03004B00
-_08132548: .4byte gUnknown_0202F7C0
-_0813254C:
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _08132558
- movs r0, 0x2
- b _0813256E
-_08132558:
- movs r0, 0x18
- ands r0, r1
- cmp r0, 0
- beq _08132564
- movs r0, 0x3
- b _0813256E
-_08132564:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08132570
- movs r0, 0x4
-_0813256E:
- strh r0, [r2, 0xE]
-_08132570:
- adds r0, r3, 0
- bl move_anim_task_del
- pop {r0}
- bx r0
- thumb_func_end sub_8132528
-
- thumb_func_start sub_813257C
-sub_813257C: @ 813257C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r0, _081325B4
- adds r4, r0
- movs r0, 0
- strh r0, [r4, 0x8]
- ldr r0, _081325B8
- ldrb r0, [r0]
- bl obj_id_for_side_relative_to_move
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- strh r1, [r4, 0x26]
- ldr r2, _081325BC
- adds r0, r4, 0
- bl sub_80798F4
- ldr r0, _081325C0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081325B4: .4byte gTasks
-_081325B8: .4byte gUnknown_03004B00
-_081325BC: .4byte gUnknown_08402B28
-_081325C0: .4byte sub_81325C4
- thumb_func_end sub_813257C
-
- thumb_func_start sub_81325C4
-sub_81325C4: @ 81325C4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r2, _0813261C
- adds r3, r0, r2
- ldrh r0, [r3, 0x8]
- adds r1, r0, 0x1
- movs r5, 0
- strh r1, [r3, 0x8]
- subs r0, 0x10
- lsls r0, 16
- lsrs r0, 16
- adds r6, r2, 0
- cmp r0, 0x16
- bhi _08132628
- ldrh r0, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _08132638
- strh r5, [r3, 0xA]
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- movs r5, 0x1
- ands r0, r5
- cmp r0, 0
- bne _08132628
- ldr r2, _08132620
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _08132624
- strh r1, [r0, 0x24]
- b _08132638
- .align 2, 0
-_0813261C: .4byte gTasks
-_08132620: .4byte gSprites
-_08132624: .4byte 0x0000ffff
-_08132628:
- ldr r2, _08132658
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x24]
-_08132638:
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r6
- bl sub_807992C
- lsls r0, 24
- cmp r0, 0
- bne _08132650
- adds r0, r4, 0
- bl move_anim_task_del
-_08132650:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08132658: .4byte gSprites
- thumb_func_end sub_81325C4
-
- thumb_func_start sub_813265C
-sub_813265C: @ 813265C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_813265C
-
- thumb_func_start sub_8132670
-sub_8132670: @ 8132670
- push {lr}
- sub sp, 0x4
- bl ScriptContext2_Enable
- ldr r0, _08132698
- 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
-_08132698: .4byte sub_813269C
- thumb_func_end sub_8132670
-
- thumb_func_start sub_813269C
-sub_813269C: @ 813269C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _081326C8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081326C0
- ldr r0, _081326CC
- bl SetMainCallback2
- ldr r1, _081326D0
- ldr r0, _081326D4
- str r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_081326C0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081326C8: .4byte gPaletteFade
-_081326CC: .4byte sub_81326D8
-_081326D0: .4byte gUnknown_0300485C
-_081326D4: .4byte sub_8080990
- thumb_func_end sub_813269C
-
- thumb_func_start sub_81326D8
-sub_81326D8: @ 81326D8
- push {r4,r5,lr}
- movs r1, 0x80
- lsls r1, 19
- movs r0, 0
- strh r0, [r1]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r4, _08132778
- ldr r0, _0813277C
- str r0, [r4]
- bl sub_81332A0
- ldr r1, [r4]
- ldr r0, _08132780
- ldrh r0, [r0]
- ldr r2, _08132784
- adds r1, r2
- movs r5, 0
- strb r0, [r1]
- bl sub_8133558
- ldr r0, _08132788
- bl SetVBlankCallback
- ldr r4, _0813278C
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- bl MenuZeroFillScreen
- ldr r4, _08132790
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- bl MenuZeroFillScreen
- ldr r0, _08132794
- strh r5, [r0]
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- strh r5, [r0]
- ldr r0, _08132798
- bl LoadSpriteSheet
- ldr r0, _0813279C
- bl LoadSpritePalette
- bl sub_8133358
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- bl FillPalette
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- ldr r0, _081327A0
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132778: .4byte gUnknown_030007B0
-_0813277C: .4byte 0x02017000
-_08132780: .4byte gUnknown_0202E8CC
-_08132784: .4byte 0x000002c5
-_08132788: .4byte sub_813265C
-_0813278C: .4byte gWindowConfig_81E7240
-_08132790: .4byte gWindowConfig_81E6CE4
-_08132794: .4byte REG_BG0VOFS
-_08132798: .4byte gUnknown_08402D80
-_0813279C: .4byte gUnknown_08402D88
-_081327A0: .4byte sub_8132870
- thumb_func_end sub_81326D8
-
- thumb_func_start sub_81327A4
-sub_81327A4: @ 81327A4
- push {r4,r5,lr}
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r4, _08132844
- ldr r0, _08132848
- str r0, [r4]
- bl sub_8133558
- ldr r1, [r4]
- ldr r0, _0813284C
- ldrh r0, [r0]
- ldr r2, _08132850
- adds r1, r2
- movs r5, 0
- strb r0, [r1]
- ldr r0, _08132854
- bl SetVBlankCallback
- ldr r4, _08132858
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- bl MenuZeroFillScreen
- ldr r4, _0813285C
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- bl MenuZeroFillScreen
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x9A
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08132860
- strh r5, [r0]
- subs r0, 0x2
- strh r5, [r0]
- adds r0, 0x4
- strh r5, [r0]
- strh r5, [r0]
- ldr r0, _08132864
- bl LoadSpriteSheet
- ldr r0, _08132868
- bl LoadSpritePalette
- bl sub_8133358
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- bl FillPalette
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- ldr r0, _0813286C
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08132844: .4byte gUnknown_030007B0
-_08132848: .4byte 0x02017000
-_0813284C: .4byte gUnknown_0202E8CE
-_08132850: .4byte 0x000002c6
-_08132854: .4byte sub_813265C
-_08132858: .4byte gWindowConfig_81E7240
-_0813285C: .4byte gWindowConfig_81E6CE4
-_08132860: .4byte REG_BG0VOFS
-_08132864: .4byte gUnknown_08402D80
-_08132868: .4byte gUnknown_08402D88
-_0813286C: .4byte sub_8132870
- thumb_func_end sub_81327A4
-
- thumb_func_start sub_8132870
-sub_8132870: @ 8132870
- push {r4,lr}
- bl sub_8132908
- ldr r4, _081328E0
- ldr r1, [r4]
- ldrb r0, [r1, 0x1D]
- cmp r0, 0
- beq _08132896
- movs r0, 0
- strb r0, [r1, 0x1D]
- ldr r0, [r4]
- ldrb r1, [r0, 0x18]
- lsls r1, 1
- adds r1, 0x1
- lsls r1, 27
- lsrs r1, 24
- movs r0, 0x58
- bl sub_814AD7C
-_08132896:
- ldr r1, [r4]
- ldrb r0, [r1, 0x1E]
- cmp r0, 0
- beq _081328A6
- movs r0, 0
- strb r0, [r1, 0x1E]
- bl sub_8133800
-_081328A6:
- ldr r1, [r4]
- ldr r2, _081328E4
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _081328C8
- adds r2, 0x1
- adds r0, r1, r2
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_8133AEC
- ldr r0, [r4]
- ldr r1, _081328E4
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
-_081328C8:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081328E0: .4byte gUnknown_030007B0
-_081328E4: .4byte 0x000002c3
- thumb_func_end sub_8132870
-
- thumb_func_start sub_81328E8
-sub_81328E8: @ 81328E8
- push {r4,lr}
- adds r1, r0, 0
- ldr r4, _08132904
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrintMessage
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08132904: .4byte gStringVar4
- thumb_func_end sub_81328E8
-
- thumb_func_start sub_8132908
-sub_8132908: @ 8132908
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r1, _0813292C
- ldr r0, [r1]
- ldrb r0, [r0]
- adds r7, r1, 0
- cmp r0, 0x21
- bls _08132920
- b _08132FD6
-_08132920:
- lsls r0, 2
- ldr r1, _08132930
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813292C: .4byte gUnknown_030007B0
-_08132930: .4byte _08132934
- .align 2, 0
-_08132934:
- .4byte _081329BC
- .4byte _08132A0C
- .4byte _08132A24
- .4byte _08132A2C
- .4byte _08132A60
- .4byte _08132A66
- .4byte _08132A98
- .4byte _08132FD6
- .4byte _08132AAA
- .4byte _08132AD0
- .4byte _08132FD6
- .4byte _08132FD6
- .4byte _08132B74
- .4byte _08132B98
- .4byte _08132DD8
- .4byte _08132DF8
- .4byte _08132BF0
- .4byte _08132C08
- .4byte _08132C2C
- .4byte _08132D40
- .4byte _08132D68
- .4byte _08132DB8
- .4byte _08132DC6
- .4byte _08132FD6
- .4byte _08132C74
- .4byte _08132C8C
- .4byte _08132CB0
- .4byte _08132D0C
- .4byte _08132E18
- .4byte _08132E7C
- .4byte _08132F58
- .4byte _08132F84
- .4byte _08132FA4
- .4byte _08132FBC
-_081329BC:
- ldr r1, [r7]
- ldrb r0, [r1]
- adds r0, 0x1
- movs r4, 0
- strb r0, [r1]
- bl sub_8132FEC
- movs r0, 0
- bl sub_8133030
- bl sub_8133800
- ldr r0, _08132A04
- adds r0, 0x64
- movs r1, 0x48
- strh r1, [r0]
- ldr r0, [r7]
- ldr r1, _08132A08
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x9A
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- b _08132FD6
- .align 2, 0
-_08132A04: .4byte gSprites
-_08132A08: .4byte 0x000002c3
-_08132A0C:
- ldr r0, _08132A20
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08132A1A
- b _08132FD6
-_08132A1A:
- ldr r1, [r7]
- movs r0, 0x4
- b _08132FD4
- .align 2, 0
-_08132A20: .4byte gPaletteFade
-_08132A24:
- ldr r1, [r7]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08132FD4
-_08132A2C:
- movs r0, 0
- bl sub_8133030
- bl sub_8133800
- ldr r2, _08132A54
- ldr r0, [r2]
- ldr r1, _08132A58
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, [r2]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, _08132A5C
- adds r0, 0x64
- movs r1, 0x48
- strh r1, [r0]
- b _08132FD6
- .align 2, 0
-_08132A54: .4byte gUnknown_030007B0
-_08132A58: .4byte 0x000002c3
-_08132A5C: .4byte gSprites
-_08132A60:
- bl sub_81330E8
- b _08132A9C
-_08132A66:
- movs r0, 0
- bl sub_8133140
- bl sub_8133800
- ldr r2, _08132A8C
- ldr r0, [r2]
- ldr r1, _08132A90
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _08132A94
- adds r0, 0x64
- movs r1, 0x48
- strh r1, [r0]
- ldr r1, [r2]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08132FD4
- .align 2, 0
-_08132A8C: .4byte gUnknown_030007B0
-_08132A90: .4byte 0x000002c3
-_08132A94: .4byte gSprites
-_08132A98:
- bl sub_8133248
-_08132A9C:
- lsls r0, 24
- cmp r0, 0
- beq _08132AA4
- b _08132FD6
-_08132AA4:
- bl sub_813362C
- b _08132FD6
-_08132AAA:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08132AB6
- b _08132FD6
-_08132AB6:
- movs r0, 0x15
- movs r1, 0x7
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _08132ACC
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08132FD4
- .align 2, 0
-_08132ACC: .4byte gUnknown_030007B0
-_08132AD0:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _08132B3A
- bl sub_8133CA4
- ldr r4, _08132B1C
- ldr r2, [r4]
- ldr r1, _08132B20
- adds r0, r2, r1
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08132B24
- adds r0, r1
- ldrb r1, [r2, 0x1B]
- lsls r1, 1
- adds r2, 0x20
- adds r2, r1
- ldrh r1, [r2]
- bl GiveMoveToMon
- lsls r0, 16
- ldr r1, _08132B28
- cmp r0, r1
- beq _08132B34
- ldr r0, _08132B2C
- bl sub_81328E8
- ldr r1, _08132B30
- movs r0, 0x1
- strh r0, [r1]
- ldr r1, [r4]
- movs r0, 0x1F
- b _08132FD4
- .align 2, 0
-_08132B1C: .4byte gUnknown_030007B0
-_08132B20: .4byte 0x000002c5
-_08132B24: .4byte gPlayerParty
-_08132B28: .4byte 0xffff0000
-_08132B2C: .4byte gOtherText_PokeLearnedMove
-_08132B30: .4byte gUnknown_0202E8CC
-_08132B34:
- ldr r1, [r4]
- movs r0, 0x10
- b _08132FD4
-_08132B3A:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08132B48
- cmp r1, 0x1
- beq _08132B48
- b _08132FD6
-_08132B48:
- bl sub_8133CA4
- ldr r3, _08132B70
- ldr r1, [r3]
- movs r2, 0xB1
- lsls r2, 2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08132B60
- movs r0, 0x3
- strb r0, [r1]
-_08132B60:
- ldr r1, [r3]
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08132B6C
- b _08132FD6
-_08132B6C:
- movs r0, 0x5
- b _08132FD4
- .align 2, 0
-_08132B70: .4byte gUnknown_030007B0
-_08132B74:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08132B80
- b _08132FD6
-_08132B80:
- movs r0, 0x15
- movs r1, 0x7
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _08132B94
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08132FD4
- .align 2, 0
-_08132B94: .4byte gUnknown_030007B0
-_08132B98:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r4, r0, 24
- cmp r4, 0
- bne _08132BB4
- bl sub_8133CA4
- ldr r0, _08132BB0
- strh r4, [r0]
- b _08132FCE
- .align 2, 0
-_08132BB0: .4byte gUnknown_0202E8CC
-_08132BB4:
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _08132BC2
- cmp r4, 0x1
- beq _08132BC2
- b _08132FD6
-_08132BC2:
- bl sub_8133CA4
- ldr r3, _08132BEC
- ldr r1, [r3]
- movs r2, 0xB1
- lsls r2, 2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08132BDA
- movs r0, 0x3
- strb r0, [r1]
-_08132BDA:
- ldr r1, [r3]
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08132BE6
- b _08132FD6
-_08132BE6:
- movs r0, 0x5
- b _08132FD4
- .align 2, 0
-_08132BEC: .4byte gUnknown_030007B0
-_08132BF0:
- ldr r0, _08132C00
- bl sub_81328E8
- ldr r0, _08132C04
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08132FD4
- .align 2, 0
-_08132C00: .4byte gOtherText_DeleteOlderMove
-_08132C04: .4byte gUnknown_030007B0
-_08132C08:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08132C14
- b _08132FD6
-_08132C14:
- movs r0, 0x15
- movs r1, 0x7
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _08132C28
- ldr r1, [r0]
- movs r0, 0x12
- b _08132FD4
- .align 2, 0
-_08132C28: .4byte gUnknown_030007B0
-_08132C2C:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _08132C54
- bl sub_8133CA4
- ldr r0, _08132C4C
- bl sub_81328E8
- ldr r0, _08132C50
- ldr r1, [r0]
- movs r0, 0x13
- b _08132FD4
- .align 2, 0
-_08132C4C: .4byte gOtherText_WhichMoveToForget
-_08132C50: .4byte gUnknown_030007B0
-_08132C54:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08132C62
- cmp r1, 0x1
- beq _08132C62
- b _08132FD6
-_08132C62:
- bl sub_8133CA4
- ldr r0, _08132C70
- ldr r1, [r0]
- movs r0, 0x18
- b _08132FD4
- .align 2, 0
-_08132C70: .4byte gUnknown_030007B0
-_08132C74:
- ldr r0, _08132C84
- bl sub_81328E8
- ldr r0, _08132C88
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08132FD4
- .align 2, 0
-_08132C84: .4byte gOtherText_StopLearningMove
-_08132C88: .4byte gUnknown_030007B0
-_08132C8C:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08132C98
- b _08132FD6
-_08132C98:
- ldr r0, _08132CAC
- ldr r1, [r0]
- movs r0, 0x1A
- strb r0, [r1]
- movs r0, 0x15
- movs r1, 0x7
- movs r2, 0x1
- bl DisplayYesNoMenu
- b _08132FD6
- .align 2, 0
-_08132CAC: .4byte gUnknown_030007B0
-_08132CB0:
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _08132CCC
- bl sub_8133CA4
- ldr r0, _08132CC8
- ldr r1, [r0]
- movs r0, 0x1B
- b _08132FD4
- .align 2, 0
-_08132CC8: .4byte gUnknown_030007B0
-_08132CCC:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08132CDA
- cmp r1, 0x1
- beq _08132CDA
- b _08132FD6
-_08132CDA:
- bl sub_8133CA4
- ldr r1, _08132D08
- ldr r2, [r1]
- movs r3, 0xB1
- lsls r3, 2
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _08132CF2
- movs r0, 0x3
- strb r0, [r2]
-_08132CF2:
- ldr r2, [r1]
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08132D00
- movs r0, 0x5
- strb r0, [r2]
-_08132D00:
- ldr r1, [r1]
- movs r0, 0x10
- b _08132FD4
- .align 2, 0
-_08132D08: .4byte gUnknown_030007B0
-_08132D0C:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08132D18
- b _08132FD6
-_08132D18:
- ldr r3, _08132D3C
- ldr r1, [r3]
- movs r2, 0xB1
- lsls r2, 2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08132D2C
- movs r0, 0x3
- strb r0, [r1]
-_08132D2C:
- ldr r1, [r3]
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08132D38
- b _08132FD6
-_08132D38:
- movs r0, 0x5
- b _08132FD4
- .align 2, 0
-_08132D3C: .4byte gUnknown_030007B0
-_08132D40:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08132D4C
- b _08132FD6
-_08132D4C:
- ldr r0, _08132D64
- ldr r1, [r0]
- movs r2, 0
- movs r0, 0x14
- strb r0, [r1]
- subs r0, 0x15
- str r2, [sp]
- movs r1, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _08132FD6
- .align 2, 0
-_08132D64: .4byte gUnknown_030007B0
-_08132D68:
- ldr r0, _08132DA4
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08132D76
- b _08132FD6
-_08132D76:
- ldr r0, _08132DA8
- ldr r5, [r7]
- ldr r2, _08132DAC
- adds r1, r5, r2
- ldrb r1, [r1]
- ldr r2, _08132DB0
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _08132DB4
- ldrb r4, [r5, 0x1B]
- lsls r4, 1
- adds r5, 0x20
- adds r5, r4
- ldrh r4, [r5]
- str r4, [sp]
- bl sub_809D9F0
- ldr r1, [r7]
- movs r0, 0x1C
- b _08132FD4
- .align 2, 0
-_08132DA4: .4byte gPaletteFade
-_08132DA8: .4byte gPlayerParty
-_08132DAC: .4byte 0x000002c5
-_08132DB0: .4byte gPlayerPartyCount
-_08132DB4: .4byte sub_81327A4
-_08132DB8:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08132DC4
- b _08132FD6
-_08132DC4:
- b _08132FCE
-_08132DC6:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _08132FD6
-_08132DD8:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08132DF4
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- b _08132FD4
- .align 2, 0
-_08132DF4: .4byte gUnknown_030007B0
-_08132DF8:
- ldr r0, _08132E10
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08132E06
- b _08132FD6
-_08132E06:
- ldr r0, _08132E14
- bl SetMainCallback2
- b _08132FD6
- .align 2, 0
-_08132E10: .4byte gPaletteFade
-_08132E14: .4byte c2_exit_to_overworld_2_switch
-_08132E18:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r5, _08132E74
- ldr r1, [r5]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- bl sub_8132FEC
- bl sub_8133800
- ldr r0, [r5]
- movs r4, 0xB1
- lsls r4, 2
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- bne _08132E4E
- movs r0, 0x1
- bl sub_8133030
-_08132E4E:
- ldr r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08132E66
- ldr r0, _08132E78
- adds r0, 0x64
- movs r1, 0x48
- strh r1, [r0]
- movs r0, 0x1
- bl sub_8133140
-_08132E66:
- ldr r0, [r5]
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_8133AEC
- b _08132FD6
- .align 2, 0
-_08132E74: .4byte gUnknown_030007B0
-_08132E78: .4byte gSprites
-_08132E7C:
- ldr r0, _08132E9C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08132E8A
- b _08132FD6
-_08132E8A:
- ldr r1, [r7]
- ldr r0, _08132EA0
- adds r2, r1, r0
- ldrb r0, [r2]
- cmp r0, 0x4
- bne _08132EA4
- movs r0, 0x18
- b _08132FD4
- .align 2, 0
-_08132E9C: .4byte gPaletteFade
-_08132EA0: .4byte 0x000002c6
-_08132EA4:
- ldr r4, _08132F38
- adds r0, r1, r4
- ldrb r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _08132F3C
- adds r0, r5
- ldrb r1, [r2]
- adds r1, 0xD
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08132F40
- movs r1, 0xD
- mov r9, r1
- mov r1, r9
- muls r1, r0
- ldr r0, _08132F44
- mov r8, r0
- add r1, r8
- adds r0, r2, 0
- bl StringCopy
- ldr r1, [r7]
- adds r0, r1, r4
- ldrb r0, [r0]
- muls r0, r6
- adds r0, r5
- ldr r2, _08132F48
- adds r1, r2
- ldrb r1, [r1]
- bl RemoveMonPPBonus
- ldr r3, [r7]
- adds r4, r3, r4
- ldrb r0, [r4]
- muls r0, r6
- adds r0, r5
- ldrb r2, [r3, 0x1B]
- lsls r2, 1
- adds r1, r3, 0
- adds r1, 0x20
- adds r1, r2
- ldrh r1, [r1]
- ldr r2, _08132F48
- adds r3, r2
- ldrb r2, [r3]
- bl SetMonMoveSlot
- ldr r0, _08132F4C
- ldr r1, [r7]
- ldrb r2, [r1, 0x1B]
- lsls r2, 1
- adds r1, 0x20
- adds r1, r2
- ldrh r1, [r1]
- mov r2, r9
- muls r2, r1
- adds r1, r2, 0
- add r1, r8
- bl StringCopy
- ldr r0, _08132F50
- bl sub_81328E8
- ldr r1, [r7]
- movs r0, 0x1E
- strb r0, [r1]
- ldr r1, _08132F54
- movs r0, 0x1
- strh r0, [r1]
- b _08132FD6
- .align 2, 0
-_08132F38: .4byte 0x000002c5
-_08132F3C: .4byte gPlayerParty
-_08132F40: .4byte gStringVar3
-_08132F44: .4byte gMoveNames
-_08132F48: .4byte 0x000002c6
-_08132F4C: .4byte gStringVar2
-_08132F50: .4byte gOtherText_ForgotMove123
-_08132F54: .4byte gUnknown_0202E8CC
-_08132F58:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _08132FD6
- ldr r0, _08132F78
- bl sub_81328E8
- ldr r0, _08132F7C
- ldr r1, [r0]
- movs r0, 0x1F
- strb r0, [r1]
- ldr r0, _08132F80
- bl PlayFanfare
- b _08132FD6
- .align 2, 0
-_08132F78: .4byte gOtherText_ForgotOrDidNotLearnMove
-_08132F7C: .4byte gUnknown_030007B0
-_08132F80: .4byte 0x0000016f
-_08132F84:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _08132FD6
- ldr r0, _08132F9C
- bl PlayFanfare
- ldr r0, _08132FA0
- ldr r1, [r0]
- movs r0, 0x20
- b _08132FD4
- .align 2, 0
-_08132F9C: .4byte 0x0000016f
-_08132FA0: .4byte gUnknown_030007B0
-_08132FA4:
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _08132FD6
- ldr r0, _08132FB8
- ldr r1, [r0]
- movs r0, 0x21
- b _08132FD4
- .align 2, 0
-_08132FB8: .4byte gUnknown_030007B0
-_08132FBC:
- ldr r0, _08132FE4
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08132FD6
- movs r0, 0x5
- bl PlaySE
-_08132FCE:
- ldr r0, _08132FE8
- ldr r1, [r0]
- movs r0, 0xE
-_08132FD4:
- strb r0, [r1]
-_08132FD6:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08132FE4: .4byte gMain
-_08132FE8: .4byte gUnknown_030007B0
- thumb_func_end sub_8132908
-
- thumb_func_start sub_8132FEC
-sub_8132FEC: @ 8132FEC
- push {r4-r6,lr}
- ldr r0, _08133024
- bl BasicInitMenuWindow
- movs r5, 0
- ldr r4, _08133028
- adds r6, r4, 0
-_08132FFA:
- lsls r3, r5, 2
- ldrb r0, [r4]
- adds r1, r6, 0x1
- adds r1, r3, r1
- ldrb r1, [r1]
- adds r2, r6, 0x2
- adds r3, r2
- ldrb r2, [r3]
- ldrb r3, [r4, 0x3]
- bl MenuDrawTextWindow
- adds r4, 0x4
- adds r5, 0x1
- cmp r5, 0x3
- bls _08132FFA
- ldr r0, _0813302C
- bl BasicInitMenuWindow
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08133024: .4byte gWindowConfig_81E7240
-_08133028: .4byte gUnknown_08402CF8
-_0813302C: .4byte gWindowConfig_81E6CE4
- thumb_func_end sub_8132FEC
-
- thumb_func_start sub_8133030
-sub_8133030: @ 8133030
- push {r4-r7,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r4, _081330D4
- ldr r5, _081330D8
- ldr r0, [r5]
- ldrb r0, [r0, 0x3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- ldr r0, [r5]
- ldrb r1, [r0, 0x4]
- 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]
- movs r2, 0
- ldr r6, _081330DC
- movs r3, 0x4
-_08133070:
- ldr r0, [r5]
- adds r0, r2
- ldrb r1, [r0, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r3
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0xF
- ble _08133070
- ldr r0, [r6]
- cmp r0, 0
- beq _081330B4
- ldr r5, _081330E0
- adds r4, r6, 0
-_08133096:
- ldr r1, [r4]
- adds r0, r5, 0
- movs r2, 0x40
- movs r3, 0x2
- bl sub_8072C74
- ldrb r1, [r4, 0x4]
- ldrb r2, [r4, 0x5]
- adds r0, r5, 0
- bl MenuPrint
- adds r4, 0x8
- ldr r0, [r4]
- cmp r0, 0
- bne _08133096
-_081330B4:
- cmp r7, 0
- bne _081330CC
- ldr r0, _081330E4
- movs r1, 0x20
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r1, 0x18
- movs r2, 0x78
- movs r3, 0xC0
- bl sub_8072AB0
-_081330CC:
- add sp, 0x8
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081330D4: .4byte gSprites
-_081330D8: .4byte gUnknown_030007B0
-_081330DC: .4byte gUnknown_08402D08
-_081330E0: .4byte gTileBuffer
-_081330E4: .4byte gOtherText_TeachWhichMove
- thumb_func_end sub_8133030
-
- thumb_func_start sub_81330E8
-sub_81330E8: @ 81330E8
- push {r4,lr}
- ldr r0, _08133134
- ldrh r2, [r0, 0x2E]
- movs r1, 0x30
- ands r1, r2
- negs r0, r1
- orrs r0, r1
- lsrs r4, r0, 31
- ldr r0, _08133138
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _0813310C
- movs r0, 0xC0
- lsls r0, 2
- ands r0, r2
- cmp r0, 0
- beq _0813310C
- adds r4, 0x1
-_0813310C:
- cmp r4, 0
- beq _0813312A
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0813313C
- ldr r1, [r2]
- movs r0, 0x5
- strb r0, [r1]
- ldr r0, [r2]
- movs r1, 0xB1
- lsls r1, 2
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_0813312A:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08133134: .4byte gMain
-_08133138: .4byte gSaveBlock2
-_0813313C: .4byte gUnknown_030007B0
- thumb_func_end sub_81330E8
-
- thumb_func_start sub_8133140
-sub_8133140: @ 8133140
- 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
- str r0, [sp, 0x8]
- ldr r4, _08133234
- ldr r5, _08133238
- ldr r0, [r5]
- ldrb r0, [r0, 0x3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r3, 0x5
- negs r3, r3
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r5]
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r2, [r0]
- adds r1, r3, 0
- ands r1, r2
- strb r1, [r0]
- movs r6, 0
- ldr r7, _0813323C
-_0813318A:
- ldr r0, [r5]
- adds r0, r6
- ldrb r0, [r0, 0x7]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- adds r6, 0x1
- cmp r6, 0xF
- ble _0813318A
- movs r6, 0
- ldr r0, [r7]
- cmp r0, 0
- beq _08133208
- mov r9, r7
- mov r10, r6
- movs r0, 0x24
- add r0, r9
- mov r8, r0
-_081331BA:
- mov r0, r9
- adds r0, 0x20
- add r0, r10
- ldr r1, [r0]
- ldr r0, _08133240
- movs r2, 0x40
- movs r3, 0x2
- bl sub_8072C74
- mov r0, r8
- ldrb r5, [r0]
- ldrb r4, [r0, 0x1]
- ldr r0, _08133240
- adds r1, r5, 0
- adds r2, r4, 0
- bl MenuPrint
- cmp r6, 0
- beq _081331F8
- adds r1, r4, 0x2
- lsls r1, 24
- lsrs r1, 24
- adds r2, r5, 0x7
- lsls r2, 24
- lsrs r2, 24
- adds r3, r4, 0x3
- lsls r3, 24
- lsrs r3, 24
- adds r0, r5, 0
- bl MenuZeroFillWindowRect
-_081331F8:
- movs r0, 0x8
- add r10, r0
- add r8, r0
- adds r7, 0x8
- adds r6, 0x1
- ldr r0, [r7]
- cmp r0, 0
- bne _081331BA
-_08133208:
- ldr r0, [sp, 0x8]
- cmp r0, 0
- bne _08133222
- ldr r0, _08133244
- movs r1, 0x20
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r1, 0x18
- movs r2, 0x78
- movs r3, 0xC0
- bl sub_8072AB0
-_08133222:
- 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
-_08133234: .4byte gSprites
-_08133238: .4byte gUnknown_030007B0
-_0813323C: .4byte gUnknown_08402D08
-_08133240: .4byte gTileBuffer
-_08133244: .4byte gOtherText_TeachWhichMove
- thumb_func_end sub_8133140
-
- thumb_func_start sub_8133248
-sub_8133248: @ 8133248
- push {r4,lr}
- ldr r0, _08133294
- ldrh r2, [r0, 0x2E]
- movs r1, 0x30
- ands r1, r2
- negs r0, r1
- orrs r0, r1
- lsrs r4, r0, 31
- ldr r0, _08133298
- ldrb r0, [r0, 0x13]
- cmp r0, 0x1
- bne _0813326C
- movs r0, 0xC0
- lsls r0, 2
- ands r0, r2
- cmp r0, 0
- beq _0813326C
- adds r4, 0x1
-_0813326C:
- cmp r4, 0
- beq _0813328A
- movs r0, 0x5
- bl PlaySE
- ldr r2, _0813329C
- ldr r1, [r2]
- movs r3, 0
- movs r0, 0x3
- strb r0, [r1]
- ldr r0, [r2]
- movs r1, 0xB1
- lsls r1, 2
- adds r0, r1
- strb r3, [r0]
-_0813328A:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08133294: .4byte gMain
-_08133298: .4byte gSaveBlock2
-_0813329C: .4byte gUnknown_030007B0
- thumb_func_end sub_8133248
-
- thumb_func_start sub_81332A0
-sub_81332A0: @ 81332A0
- push {r4,lr}
- ldr r2, _081332F8
- ldr r0, [r2]
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- strb r1, [r0, 0x2]
- ldr r0, [r2]
- strb r1, [r0, 0x19]
- ldr r0, [r2]
- strb r1, [r0, 0x18]
- ldr r0, [r2]
- strb r1, [r0, 0x1C]
- ldr r0, [r2]
- strb r1, [r0, 0x1A]
- ldr r0, [r2]
- strb r1, [r0, 0x1B]
- ldr r0, [r2]
- strb r1, [r0, 0x1D]
- ldr r0, [r2]
- strb r1, [r0, 0x1E]
- ldr r0, [r2]
- ldr r3, _081332FC
- adds r0, r3
- strb r1, [r0]
- ldr r0, [r2]
- adds r3, 0x1
- adds r0, r3
- strb r1, [r0]
- movs r3, 0
- adds r4, r2, 0
- movs r2, 0
-_081332E0:
- ldr r0, [r4]
- lsls r1, r3, 1
- adds r0, 0x20
- adds r0, r1
- strh r2, [r0]
- adds r3, 0x1
- cmp r3, 0x13
- ble _081332E0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081332F8: .4byte gUnknown_030007B0
-_081332FC: .4byte 0x000002c3
- thumb_func_end sub_81332A0
-
- thumb_func_start sub_8133300
-sub_8133300: @ 8133300
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 1
- movs r0, 0xFF
- ands r1, r0
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0x1
- beq _08133324
- cmp r0, 0x1
- ble _0813334A
- cmp r0, 0x2
- beq _08133338
- b _0813334A
-_08133324:
- adds r0, r1, 0
- movs r1, 0x3
- bl Sin
- ldrh r1, [r4, 0x32]
- adds r2, r0, 0
- muls r2, r1
- adds r0, r2, 0
- strh r0, [r4, 0x24]
- b _0813334A
-_08133338:
- adds r0, r1, 0
- movs r1, 0x1
- bl Sin
- ldrh r1, [r4, 0x32]
- adds r2, r0, 0
- muls r2, r1
- adds r0, r2, 0
- strh r0, [r4, 0x26]
-_0813334A:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8133300
-
- thumb_func_start sub_8133358
-sub_8133358: @ 8133358
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- ldr r6, _0813353C
- adds r0, r6, 0
- movs r1, 0x8
- movs r2, 0x10
- movs r3, 0
- bl CreateSprite
- ldr r4, _08133540
- ldr r1, [r4]
- strb r0, [r1, 0x3]
- ldr r5, _08133544
- ldr r2, [r4]
- ldrb r1, [r2, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- mov r8, r1
- mov r1, r8
- strh r1, [r0, 0x2E]
- ldrb r1, [r2, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08133548
- strh r1, [r0, 0x32]
- adds r0, r6, 0
- movs r1, 0x48
- movs r2, 0x10
- movs r3, 0
- bl CreateSprite
- ldr r1, [r4]
- strb r0, [r1, 0x4]
- ldr r0, [r4]
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r2, [r4]
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x2E]
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- ldr r0, _0813354C
- mov r9, r0
- movs r1, 0xA0
- movs r2, 0x4
- movs r3, 0
- bl CreateSprite
- ldr r1, [r4]
- strb r0, [r1, 0x5]
- ldr r0, [r4]
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r2, [r4]
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r6, 0x2
- strh r6, [r0, 0x2E]
- ldrb r1, [r2, 0x5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x32]
- mov r0, r9
- movs r1, 0xA0
- movs r2, 0x3C
- movs r3, 0
- bl CreateSprite
- ldr r1, [r4]
- strb r0, [r1, 0x6]
- ldr r2, [r4]
- ldrb r1, [r2, 0x6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x2E]
- ldrb r1, [r2, 0x6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- movs r5, 0
- ldr r6, _08133550
-_0813344E:
- adds r2, r5, 0
- cmp r5, 0
- bge _08133456
- adds r2, r5, 0x3
-_08133456:
- asrs r2, 2
- lsls r1, r2, 2
- subs r1, r5, r1
- lsls r1, 19
- movs r0, 0xE0
- lsls r0, 13
- adds r1, r0
- asrs r1, 16
- lsls r2, 19
- movs r0, 0xD0
- lsls r0, 14
- adds r2, r0
- asrs r2, 16
- adds r0, r6, 0
- movs r3, 0
- bl CreateSprite
- ldr r1, [r4]
- adds r2, r5, 0x4
- adds r1, 0x3
- adds r1, r2
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, 0x3
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08133544
- adds r0, r1
- movs r1, 0x2
- bl StartSpriteAnim
- adds r5, 0x1
- cmp r5, 0x7
- ble _0813344E
- movs r5, 0
- ldr r7, _08133550
- ldr r6, _08133540
-_081334A6:
- adds r2, r5, 0
- cmp r5, 0
- bge _081334AE
- adds r2, r5, 0x3
-_081334AE:
- asrs r2, 2
- lsls r1, r2, 2
- subs r1, r5, r1
- lsls r1, 19
- movs r0, 0xE0
- lsls r0, 13
- adds r1, r0
- asrs r1, 16
- lsls r2, 19
- movs r0, 0xB8
- lsls r0, 15
- adds r2, r0
- asrs r2, 16
- adds r0, r7, 0
- movs r3, 0
- bl CreateSprite
- ldr r1, [r6]
- adds r2, r5, 0
- adds r2, 0xC
- adds r1, 0x3
- adds r1, r2
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0x3
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08133544
- adds r0, r4
- movs r1, 0x2
- bl StartSpriteAnim
- adds r5, 0x1
- cmp r5, 0x7
- ble _081334A6
- movs r5, 0
- ldr r3, _08133540
- movs r2, 0x4
-_08133500:
- ldr r0, [r3]
- adds r0, 0x3
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r5, 0x1
- cmp r5, 0x13
- ble _08133500
- ldr r1, _08133548
- ldr r3, _08133554
- movs r0, 0x12
- str r0, [sp]
- movs r0, 0x10
- movs r2, 0xC
- bl sub_814AC58
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813353C: .4byte gSpriteTemplate_8402D90
-_08133540: .4byte gUnknown_030007B0
-_08133544: .4byte gSprites
-_08133548: .4byte 0x0000ffff
-_0813354C: .4byte gSpriteTemplate_8402DC0
-_08133550: .4byte gSpriteTemplate_8402E08
-_08133554: .4byte 0x00002d9f
- thumb_func_end sub_8133358
-
- thumb_func_start sub_8133558
-sub_8133558: @ 8133558
- push {r4-r6,lr}
- sub sp, 0xC
- ldr r5, _081335F4
- ldr r1, [r5]
- ldr r2, _081335F8
- adds r0, r1, r2
- ldrb r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _081335FC
- adds r0, r2
- adds r1, 0x20
- bl sub_80403CC
- ldr r1, [r5]
- strb r0, [r1, 0x1A]
- movs r4, 0
- ldr r0, [r5]
- ldrb r0, [r0, 0x1A]
- cmp r4, r0
- bge _081335AA
- adds r6, r5, 0
- movs r5, 0x52
-_08133586:
- lsls r2, r4, 1
- ldr r1, [r6]
- adds r0, r1, r5
- adds r1, 0x20
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _08133600
- adds r1, r2
- bl StringCopy
- adds r5, 0x19
- adds r4, 0x1
- ldr r0, [r6]
- ldrb r0, [r0, 0x1A]
- cmp r4, r0
- blt _08133586
-_081335AA:
- ldr r4, _081335F4
- ldr r0, [r4]
- ldr r1, _081335F8
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _081335FC
- adds r0, r1
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- ldr r0, _08133604
- mov r1, sp
- bl StringCopy10
- ldr r0, [r4]
- ldrb r2, [r0, 0x1A]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 3
- adds r1, r2
- adds r1, 0x52
- adds r0, r1
- ldr r1, _08133608
- bl StringCopy
- ldr r1, [r4]
- ldrb r0, [r1, 0x1A]
- adds r0, 0x1
- strb r0, [r1, 0x1A]
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081335F4: .4byte gUnknown_030007B0
-_081335F8: .4byte 0x000002c5
-_081335FC: .4byte gPlayerParty
-_08133600: .4byte gMoveNames
-_08133604: .4byte gStringVar1
-_08133608: .4byte gUnknownText_Exit
- thumb_func_end sub_8133558
-
- thumb_func_start sub_813360C
-sub_813360C: @ 813360C
- lsls r0, 24
- ldr r3, _08133628
- ldr r2, [r3]
- ldrb r1, [r2, 0x18]
- strb r1, [r2, 0x1C]
- ldr r1, [r3]
- lsrs r0, 24
- ldrb r2, [r1, 0x18]
- adds r0, r2
- strb r0, [r1, 0x18]
- ldr r1, [r3]
- movs r0, 0x1
- strb r0, [r1, 0x1D]
- bx lr
- .align 2, 0
-_08133628: .4byte gUnknown_030007B0
- thumb_func_end sub_813360C
-
- thumb_func_start sub_813362C
-sub_813362C: @ 813362C
- push {r4,r5,lr}
- ldr r2, _08133670
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08133688
- ldr r4, _08133674
- ldr r0, [r4]
- ldrb r0, [r0, 0x1B]
- cmp r0, 0
- bne _08133646
- b _08133796
-_08133646:
- movs r0, 0x5
- bl PlaySE
- ldr r1, [r4]
- ldrb r0, [r1, 0x1B]
- subs r0, 0x1
- strb r0, [r1, 0x1B]
- ldr r0, [r4]
- ldr r1, _08133678
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, [r4]
- ldrb r0, [r1, 0x18]
- cmp r0, 0
- beq _0813367C
- movs r0, 0x1
- negs r0, r0
- bl sub_813360C
- b _08133796
- .align 2, 0
-_08133670: .4byte gMain
-_08133674: .4byte gUnknown_030007B0
-_08133678: .4byte 0x000002c3
-_0813367C:
- ldrb r0, [r1, 0x19]
- cmp r0, 0
- bne _08133684
- b _08133796
-_08133684:
- subs r0, 0x1
- b _081336DC
-_08133688:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081336E8
- ldr r4, _081336C8
- ldr r0, [r4]
- ldrb r1, [r0, 0x1B]
- ldrb r0, [r0, 0x1A]
- subs r0, 0x1
- cmp r1, r0
- blt _081336A0
- b _08133796
-_081336A0:
- movs r0, 0x5
- bl PlaySE
- ldr r1, [r4]
- ldrb r0, [r1, 0x1B]
- adds r0, 0x1
- strb r0, [r1, 0x1B]
- ldr r0, [r4]
- ldr r3, _081336CC
- adds r0, r3
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, [r4]
- ldrb r0, [r1, 0x18]
- cmp r0, 0x2
- beq _081336D0
- movs r0, 0x1
- bl sub_813360C
- b _08133796
- .align 2, 0
-_081336C8: .4byte gUnknown_030007B0
-_081336CC: .4byte 0x000002c3
-_081336D0:
- ldrb r2, [r1, 0x19]
- ldrb r0, [r1, 0x1A]
- subs r0, 0x3
- cmp r2, r0
- beq _08133796
- adds r0, r2, 0x1
-_081336DC:
- strb r0, [r1, 0x19]
- ldr r1, [r4]
- ldrb r0, [r1, 0x1E]
- adds r0, 0x1
- strb r0, [r1, 0x1E]
- b _08133796
-_081336E8:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813376C
- movs r0, 0x5
- bl PlaySE
- ldr r5, _08133738
- ldr r2, [r5]
- ldrb r1, [r2, 0x1B]
- ldrb r0, [r2, 0x1A]
- subs r0, 0x1
- cmp r1, r0
- beq _08133748
- movs r0, 0x8
- strb r0, [r2]
- ldr r0, _0813373C
- ldr r1, [r5]
- ldrb r3, [r1, 0x1B]
- lsls r2, r3, 1
- adds r2, r3
- lsls r2, 3
- adds r2, r3
- adds r2, 0x52
- adds r1, r2
- bl StringCopy
- ldr r4, _08133740
- ldr r1, _08133744
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrintMessage
- b _08133796
- .align 2, 0
-_08133738: .4byte gUnknown_030007B0
-_0813373C: .4byte gStringVar2
-_08133740: .4byte gStringVar4
-_08133744: .4byte gOtherText_TeachSpecificMove
-_08133748:
- ldr r4, _08133764
- ldr r1, _08133768
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrintMessage
- ldr r1, [r5]
- movs r0, 0xC
- strb r0, [r1]
- b _08133796
- .align 2, 0
-_08133764: .4byte gStringVar4
-_08133768: .4byte gOtherText_GiveUpTeachingMove
-_0813376C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08133796
- movs r0, 0x5
- bl PlaySE
- ldr r0, _081337D4
- ldr r1, [r0]
- movs r0, 0xC
- strb r0, [r1]
- ldr r4, _081337D8
- ldr r1, _081337DC
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrintMessage
-_08133796:
- ldr r0, _081337D4
- ldr r4, [r0]
- ldrb r0, [r4, 0x1A]
- cmp r0, 0x3
- bls _081337F8
- ldr r3, _081337E0
- adds r5, r3, 0
- adds r5, 0xC6
- ldrb r0, [r5]
- movs r1, 0x5
- negs r1, r1
- adds r2, r1, 0
- ands r2, r0
- strb r2, [r5]
- movs r0, 0x85
- lsls r0, 1
- adds r0, r3
- mov r12, r0
- ldrb r0, [r0]
- adds r3, r1, 0
- ands r3, r0
- mov r1, r12
- strb r3, [r1]
- ldrb r0, [r4, 0x19]
- cmp r0, 0
- bne _081337E4
- movs r1, 0x4
- adds r0, r2, 0
- orrs r0, r1
- strb r0, [r5]
- b _081337F8
- .align 2, 0
-_081337D4: .4byte gUnknown_030007B0
-_081337D8: .4byte gStringVar4
-_081337DC: .4byte gOtherText_GiveUpTeachingMove
-_081337E0: .4byte gSprites
-_081337E4:
- ldrb r1, [r4, 0x19]
- ldrb r0, [r4, 0x1A]
- subs r0, 0x3
- cmp r1, r0
- bne _081337F8
- movs r1, 0x4
- adds r0, r3, 0
- orrs r0, r1
- mov r3, r12
- strb r0, [r3]
-_081337F8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813362C
-
- thumb_func_start sub_8133800
-sub_8133800: @ 8133800
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r1, _08133834
- ldr r0, [r1]
- ldrb r6, [r0, 0x19]
- ldr r3, _08133838
- mov r10, r1
- ldr r0, _0813383C
- mov r9, r0
- movs r1, 0x2
- mov r8, r1
-_0813381C:
- mov r4, r10
- ldr r2, [r4]
- ldrb r0, [r2, 0x1A]
- cmp r6, r0
- bcc _08133844
- adds r0, r3, 0
- ldr r1, _08133840
- movs r2, 0x90
- movs r3, 0
- bl sub_8072C74
- b _081338FA
- .align 2, 0
-_08133834: .4byte gUnknown_030007B0
-_08133838: .4byte gTileBuffer
-_0813383C: .4byte gBattleMoves
-_08133840: .4byte gEmptyString_81E72B0
-_08133844:
- ldrb r0, [r2, 0x1A]
- subs r0, 0x1
- cmp r6, r0
- bne _08133860
- adds r0, r3, 0
- ldr r1, _0813385C
- movs r2, 0x90
- movs r3, 0
- bl sub_8072C74
- b _081338FA
- .align 2, 0
-_0813385C: .4byte gUnknownText_Exit
-_08133860:
- lsls r1, r6, 1
- adds r0, r2, 0
- adds r0, 0x20
- adds r0, r1
- ldrh r5, [r0]
- movs r4, 0xB1
- lsls r4, 2
- adds r0, r2, r4
- ldrb r0, [r0]
- adds r7, r1, 0
- cmp r0, 0
- beq _081338A4
- ldr r1, _0813389C
- lsls r0, r5, 3
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 29
- lsrs r0, 27
- ldr r1, _081338A0
- adds r0, r1
- ldr r1, [r0]
- adds r0, r3, 0
- movs r2, 0x27
- movs r3, 0
- bl sub_8072C74
- adds r3, r0, 0
- lsls r4, r5, 1
- b _081338C2
- .align 2, 0
-_0813389C: .4byte gContestMoves
-_081338A0: .4byte gUnknown_083CAF70
-_081338A4:
- lsls r4, r5, 1
- adds r0, r4, r5
- lsls r0, 2
- add r0, r9
- ldrb r0, [r0, 0x2]
- lsls r1, r0, 3
- subs r1, r0
- ldr r0, _08133938
- adds r1, r0
- adds r0, r3, 0
- movs r2, 0x27
- movs r3, 0
- bl sub_8072C74
- adds r3, r0, 0
-_081338C2:
- adds r0, r7, r6
- lsls r0, 3
- adds r0, r6
- adds r0, 0x52
- mov r2, r10
- ldr r1, [r2]
- adds r1, r0
- adds r0, r3, 0
- movs r2, 0x72
- movs r3, 0
- bl sub_8072C74
- adds r3, r0, 0
- movs r0, 0xCA
- strb r0, [r3]
- strb r0, [r3, 0x1]
- movs r0, 0xBA
- strb r0, [r3, 0x2]
- adds r3, 0x3
- adds r0, r4, r5
- lsls r0, 2
- add r0, r9
- ldrb r1, [r0, 0x4]
- adds r0, r3, 0
- movs r2, 0x90
- movs r3, 0
- bl sub_8072C14
-_081338FA:
- adds r3, r0, 0
- movs r0, 0xFE
- strb r0, [r3]
- adds r3, 0x1
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0x1
- negs r4, r4
- add r8, r4
- mov r0, r8
- cmp r0, 0
- blt _08133916
- b _0813381C
-_08133916:
- movs r0, 0xFF
- strb r0, [r3]
- ldr r0, _0813393C
- movs r1, 0xB
- movs r2, 0x1
- bl MenuPrint
- movs r0, 0
- bl sub_813360C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08133938: .4byte gTypeNames
-_0813393C: .4byte gTileBuffer
- thumb_func_end sub_8133800
-
- thumb_func_start sub_8133940
-sub_8133940: @ 8133940
- push {r4-r7,lr}
- sub sp, 0x34
- adds r4, r1, 0
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r1, _08133968
- mov r0, sp
- bl StringCopy
- ldrb r0, [r4, 0x2]
- subs r0, 0x1
- cmp r0, 0x6
- bls _0813395C
- b _08133AE2
-_0813395C:
- lsls r0, 2
- ldr r1, _0813396C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08133968: .4byte gExpandedPlaceholder_Empty
-_0813396C: .4byte _08133970
- .align 2, 0
-_08133970:
- .4byte _08133AE2
- .4byte _0813398C
- .4byte _08133AE2
- .4byte _081339A4
- .4byte _08133AE2
- .4byte _081339E4
- .4byte _08133A64
-_0813398C:
- ldr r0, _081339A0
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0x1
- bls _081339B4
- ldrb r1, [r1, 0x1]
- b _081339CE
- .align 2, 0
-_081339A0: .4byte gBattleMoves
-_081339A4:
- ldr r0, _081339C4
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x3]
- cmp r0, 0
- bne _081339CC
-_081339B4:
- ldr r1, _081339C8
- mov r0, sp
- movs r2, 0x20
- movs r3, 0x2
- bl sub_8072C74
- b _081339D8
- .align 2, 0
-_081339C4: .4byte gBattleMoves
-_081339C8: .4byte gOtherText_ThreeDashes2
-_081339CC:
- ldrb r1, [r1, 0x3]
-_081339CE:
- mov r0, sp
- movs r2, 0x20
- movs r3, 0x2
- bl sub_8072C14
-_081339D8:
- ldrb r1, [r4]
- ldrb r2, [r4, 0x1]
- mov r0, sp
- bl MenuPrint
- b _08133AE2
-_081339E4:
- ldrb r2, [r4]
- ldrb r1, [r4, 0x1]
- adds r3, r1, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r2, 0
- bl MenuZeroFillWindowRect
- ldr r2, _08133A34
- ldr r1, _08133A38
- lsls r0, r5, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xFF
- bne _08133A14
- movs r5, 0
-_08133A14:
- movs r4, 0
- ldr r7, _08133A3C
- ldr r6, _08133A40
-_08133A1A:
- cmp r4, r5
- bcs _08133A44
- ldr r0, [r7]
- adds r0, r4
- ldrb r1, [r0, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x1
- bl StartSpriteAnim
- b _08133A58
- .align 2, 0
-_08133A34: .4byte gContestEffects
-_08133A38: .4byte gContestMoves
-_08133A3C: .4byte gUnknown_030007B0
-_08133A40: .4byte gSprites
-_08133A44:
- ldr r0, [r7]
- adds r0, r4
- ldrb r1, [r0, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0
- bl StartSpriteAnim
-_08133A58:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _08133A1A
- b _08133AE2
-_08133A64:
- ldrb r2, [r4]
- ldrb r1, [r4, 0x1]
- adds r3, r1, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r2, 0
- bl MenuZeroFillWindowRect
- ldr r2, _08133AB4
- ldr r1, _08133AB8
- lsls r0, r5, 3
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xFF
- bne _08133A94
- movs r5, 0
-_08133A94:
- movs r4, 0
- ldr r7, _08133ABC
- ldr r6, _08133AC0
-_08133A9A:
- cmp r4, r5
- bcs _08133AC4
- ldr r0, [r7]
- adds r0, r4
- ldrb r1, [r0, 0xF]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x3
- bl StartSpriteAnim
- b _08133AD8
- .align 2, 0
-_08133AB4: .4byte gContestEffects
-_08133AB8: .4byte gContestMoves
-_08133ABC: .4byte gUnknown_030007B0
-_08133AC0: .4byte gSprites
-_08133AC4:
- ldr r0, [r7]
- adds r0, r4
- ldrb r1, [r0, 0xF]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x2
- bl StartSpriteAnim
-_08133AD8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _08133A9A
-_08133AE2:
- add sp, 0x34
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8133940
-
- thumb_func_start sub_8133AEC
-sub_8133AEC: @ 8133AEC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r6, _08133B88
- ldr r2, [r6]
- ldrb r1, [r2, 0x1B]
- ldrb r0, [r2, 0x1A]
- subs r0, 0x1
- cmp r1, r0
- bne _08133B08
- b _08133C04
-_08133B08:
- lsls r1, 1
- adds r0, r2, 0
- adds r0, 0x20
- adds r0, r1
- ldrh r5, [r0]
- cmp r3, 0
- beq _08133BA0
- movs r4, 0
- lsls r0, r5, 3
- mov r8, r0
- ldr r7, _08133B8C
- adds r3, r6, 0
- movs r6, 0x5
- negs r6, r6
-_08133B24:
- ldr r0, [r3]
- adds r0, r4
- ldrb r0, [r0, 0x7]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xF
- bls _08133B24
- movs r4, 0
-_08133B48:
- ldr r0, _08133B90
- adds r0, r4, r0
- ldrb r0, [r0]
- lsls r1, r0, 1
- adds r1, r0
- ldr r0, _08133B94
- adds r1, r0
- adds r0, r5, 0
- bl sub_8133940
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x2
- bls _08133B48
- ldr r1, _08133B98
- ldr r0, _08133B9C
- add r0, r8
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x20
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r1, 0x58
- movs r2, 0x48
- movs r3, 0x90
- bl sub_8072AB0
- b _08133C92
- .align 2, 0
-_08133B88: .4byte gUnknown_030007B0
-_08133B8C: .4byte gSprites
-_08133B90: .4byte gUnknown_08402E3D
-_08133B94: .4byte gUnknown_08402E24
-_08133B98: .4byte gUnknown_083CADD4
-_08133B9C: .4byte gContestMoves
-_08133BA0:
- movs r4, 0
- subs r6, r5, 0x1
-_08133BA4:
- ldr r0, _08133BF8
- adds r0, r4, r0
- ldrb r0, [r0]
- lsls r1, r0, 1
- adds r1, r0
- ldr r0, _08133BFC
- adds r1, r0
- adds r0, r5, 0
- bl sub_8133940
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x3
- bls _08133BA4
- ldr r1, _08133C00
- lsls r0, r6, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0x58
- movs r2, 0x48
- movs r3, 0x90
- bl sub_8072A18
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08133C92
- lsls r1, r0, 25
- movs r0, 0x90
- lsls r0, 20
- adds r1, r0
- lsrs r1, 24
- movs r0, 0xB
- movs r2, 0x1C
- movs r3, 0xC
- bl MenuFillWindowRectWithBlankTile
- b _08133C92
- .align 2, 0
-_08133BF8: .4byte gUnknown_08402E39
-_08133BFC: .4byte gUnknown_08402E24
-_08133C00: .4byte gMoveDescriptions
-_08133C04:
- cmp r3, 0
- beq _08133C5C
- ldr r4, _08133C54
- ldrb r2, [r4, 0xF]
- ldrb r1, [r4, 0x10]
- adds r3, r1, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r2, 0
- bl MenuZeroFillWindowRect
- ldrb r2, [r4, 0x12]
- ldrb r1, [r4, 0x13]
- adds r3, r1, 0x1
- lsls r3, 24
- lsrs r3, 24
- adds r0, r2, 0
- bl MenuZeroFillWindowRect
- movs r4, 0
- ldr r5, _08133C58
- adds r3, r6, 0
- movs r2, 0x4
-_08133C32:
- ldr r0, [r3]
- adds r0, r4
- ldrb r1, [r0, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xF
- bls _08133C32
- b _08133C86
- .align 2, 0
-_08133C54: .4byte gUnknown_08402E24
-_08133C58: .4byte gSprites
-_08133C5C:
- ldr r4, _08133CA0
- ldrb r0, [r4, 0x3]
- ldrb r1, [r4, 0x4]
- adds r2, r0, 0x3
- lsls r2, 24
- lsrs r2, 24
- adds r3, r1, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl MenuZeroFillWindowRect
- ldrb r0, [r4, 0x9]
- ldrb r1, [r4, 0xA]
- adds r2, r0, 0x3
- lsls r2, 24
- lsrs r2, 24
- adds r3, r1, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl MenuZeroFillWindowRect
-_08133C86:
- movs r0, 0xB
- movs r1, 0x9
- movs r2, 0x1C
- movs r3, 0xC
- bl MenuZeroFillWindowRect
-_08133C92:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08133CA0: .4byte gUnknown_08402E24
- thumb_func_end sub_8133AEC
-
- thumb_func_start sub_8133CA4
-sub_8133CA4: @ 8133CA4
- push {lr}
- movs r0, 0x15
- movs r1, 0x7
- movs r2, 0x1B
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- ldr r0, _08133CC8
- ldr r0, [r0]
- movs r1, 0xB1
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_8133AEC
- pop {r0}
- bx r0
- .align 2, 0
-_08133CC8: .4byte gUnknown_030007B0
- thumb_func_end sub_8133CA4
-
- thumb_func_start sub_8133CCC
-sub_8133CCC: @ 8133CCC
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, _08133D14
- mov r8, r0
- ldrb r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r4, _08133D18
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- mov r1, r8
- ldrb r0, [r1]
- muls r0, r6
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- movs r1, 0x5
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- cmp r4, r0
- bcs _08133D1C
- movs r0, 0
- b _08133D1E
- .align 2, 0
-_08133D14: .4byte gUnknown_03005CE0
-_08133D18: .4byte gPlayerParty
-_08133D1C:
- movs r0, 0x1
-_08133D1E:
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8133CCC
-
- thumb_func_start unref_sub_8133D28
-unref_sub_8133D28: @ 8133D28
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08133D44
- ldr r2, _08133D48
- str r2, [r1, 0xC]
- ldr r2, _08133D4C
- adds r1, r2
- movs r2, 0x3
- strh r2, [r1]
- bl sub_808A004
- pop {r0}
- bx r0
- .align 2, 0
-_08133D44: .4byte 0x02001000
-_08133D48: .4byte sub_8133D50
-_08133D4C: .4byte 0x0001a272
- thumb_func_end unref_sub_8133D28
-
- thumb_func_start sub_8133D50
-sub_8133D50: @ 8133D50
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08133DA0
- mov r9, r0
- ldr r1, _08133DA4
- mov r10, r1
- ldrb r1, [r1, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- mov r2, r10
- ldrb r1, [r2, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- mov r2, r9
- adds r1, r0, r2
- ldrh r0, [r1, 0x2E]
- lsls r0, 24
- lsrs r6, r0, 24
- mov r0, r8
- cmp r0, 0x5
- bhi _08133D96
- cmp r6, 0x5
- bls _08133DA8
-_08133D96:
- adds r0, r7, 0
- bl sub_806CD44
- b _08133E4E
- .align 2, 0
-_08133DA0: .4byte gSprites
-_08133DA4: .4byte 0x02001000
-_08133DA8:
- movs r5, 0xD8
- lsls r5, 9
- add r5, r10
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- movs r1, 0x64
- muls r0, r1
- ldr r2, _08133DE4
- adds r0, r2
- str r0, [r5]
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0
- beq _08133DDA
- cmp r8, r6
- beq _08133DDA
- ldr r0, [r5]
- movs r1, 0x3A
- bl GetMonData
- cmp r0, r4
- bne _08133DE8
-_08133DDA:
- adds r0, r7, 0
- bl sub_8133EB8
- b _08133E4E
- .align 2, 0
-_08133DE4: .4byte gPlayerParty
-_08133DE8:
- movs r0, 0x1
- bl PlaySE
- mov r0, r10
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- ldrh r0, [r0, 0x2E]
- movs r1, 0
- strb r0, [r5, 0x5]
- ldrb r0, [r5, 0x5]
- movs r2, 0x64
- muls r0, r2
- ldr r2, _08133E5C
- adds r0, r2
- str r0, [r5]
- strh r1, [r5, 0x6]
- ldr r1, _08133E60
- str r1, [r5, 0xC]
- ldr r1, _08133E64
- str r1, [r5, 0x10]
- movs r1, 0x3A
- bl GetMonData
- ldr r1, _08133E68
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r1
- strh r0, [r4, 0x1C]
- ldr r0, [r5]
- movs r1, 0x39
- bl GetMonData
- strh r0, [r4, 0x1E]
- movs r1, 0x1C
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- bl __divsi3
- strh r0, [r4, 0x20]
- bl sub_806D5A4
- ldr r0, _08133E6C
- str r0, [r4]
- ldrh r1, [r4, 0x1E]
- ldr r0, _08133E70
- add r0, r10
- strh r1, [r0]
-_08133E4E:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08133E5C: .4byte gPlayerParty
-_08133E60: .4byte 0xffff8000
-_08133E64: .4byte sub_8133EF8
-_08133E68: .4byte gTasks
-_08133E6C: .4byte sub_806FA18
-_08133E70: .4byte 0x0001a282
- thumb_func_end sub_8133D50
-
- thumb_func_start sub_8133E74
-sub_8133E74: @ 8133E74
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08133EAC
- ldrb r0, [r0]
- cmp r0, 0
- bne _08133EA4
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0x3
- movs r1, 0
- bl sub_806D538
- ldr r0, _08133EB0
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08133EB4
- str r0, [r1]
-_08133EA4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08133EAC: .4byte gUnknown_0202E8F6
-_08133EB0: .4byte gTasks
-_08133EB4: .4byte sub_806CB74
- thumb_func_end sub_8133E74
-
- thumb_func_start sub_8133EB8
-sub_8133EB8: @ 8133EB8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _08133EE8
- movs r0, 0
- strb r0, [r1]
- bl sub_806D5A4
- ldr r0, _08133EEC
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _08133EF0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08133EF4
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08133EE8: .4byte gUnknown_0202E8F4
-_08133EEC: .4byte gOtherText_CantUseOnPoke
-_08133EF0: .4byte gTasks
-_08133EF4: .4byte sub_8133E74
- thumb_func_end sub_8133EB8
-
- thumb_func_start sub_8133EF8
-sub_8133EF8: @ 8133EF8
- push {r4,lr}
- bl sub_806CCE4
- ldr r4, _08133F3C
- ldr r0, _08133F40
- adds r1, r4, r0
- movs r0, 0x2
- strb r0, [r1]
- ldr r0, _08133F44
- adds r4, r0
- ldrb r1, [r4, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08133F48
- adds r0, r1
- bl DestroySprite
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0
- bl sub_806D538
- ldrb r0, [r4]
- bl SwitchTaskToFollowupFunc
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08133F3C: .4byte 0x0201b000
-_08133F40: .4byte 0x00000261
-_08133F44: .4byte 0xfffe6000
-_08133F48: .4byte gSprites
- thumb_func_end sub_8133EF8
-
- thumb_func_start sub_8133F4C
-sub_8133F4C: @ 8133F4C
- push {r4,r5,lr}
- lsls r0, 24
- movs r3, 0
- ldr r1, _08133F7C
- lsrs r2, r0, 21
- adds r0, r2, r1
- ldrb r0, [r0, 0x4]
- cmp r3, r0
- bcs _08133F76
- adds r5, r1, 0
- movs r4, 0
-_08133F62:
- adds r0, r2, r5
- ldr r1, [r0]
- adds r1, r3
- strb r4, [r1]
- adds r1, r3, 0x1
- lsls r1, 24
- lsrs r3, r1, 24
- ldrb r0, [r0, 0x4]
- cmp r3, r0
- bcc _08133F62
-_08133F76:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08133F7C: .4byte gUnknown_08402E40
- thumb_func_end sub_8133F4C
-
- thumb_func_start sub_8133F80
-sub_8133F80: @ 8133F80
- push {r4,lr}
- movs r4, 0
-_08133F84:
- adds r0, r4, 0
- bl sub_8133F4C
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _08133F84
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8133F80
-
- thumb_func_start sub_8133F9C
-sub_8133F9C: @ 8133F9C
- push {r4,lr}
- lsls r0, 24
- movs r2, 0
- ldr r1, _08133FC8
- lsrs r0, 21
- adds r0, r1
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- cmp r2, r1
- bge _08133FD8
- adds r4, r0, 0
- adds r3, r1, 0
-_08133FB4:
- lsls r0, r2, 24
- asrs r1, r0, 24
- ldr r0, [r4]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08133FCC
- adds r0, r1, 0
- b _08133FDC
- .align 2, 0
-_08133FC8: .4byte gUnknown_08402E40
-_08133FCC:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- asrs r0, 24
- cmp r0, r3
- blt _08133FB4
-_08133FD8:
- movs r0, 0x1
- negs r0, r0
-_08133FDC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8133F9C
-
- thumb_func_start sub_8133FE4
-sub_8133FE4: @ 8133FE4
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _08134010
- lsls r0, r3, 5
- adds r0, r1
- ldrb r0, [r0, 0x13]
- movs r2, 0
- ldr r1, _08134014
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x4]
- cmp r2, r1
- bcs _08134022
- ldr r4, [r0]
-_08134002:
- adds r0, r4, r2
- ldrb r0, [r0]
- cmp r0, r3
- bne _08134018
- movs r0, 0x1
- b _08134024
- .align 2, 0
-_08134010: .4byte gDecorations
-_08134014: .4byte gUnknown_08402E40
-_08134018:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r1
- bcc _08134002
-_08134022:
- movs r0, 0
-_08134024:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8133FE4
-
- thumb_func_start IsThereStorageSpaceForDecoration
-IsThereStorageSpaceForDecoration: @ 813402C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- cmp r4, 0
- beq _0813406C
- ldr r1, _08134064
- lsls r0, r4, 5
- adds r0, r1
- ldrb r5, [r0, 0x13]
- adds r0, r5, 0
- bl sub_8133F9C
- lsls r0, 24
- asrs r2, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r2, r0
- beq _0813406C
- ldr r0, _08134068
- lsls r1, r5, 3
- adds r1, r0
- ldr r0, [r1]
- adds r0, r2
- strb r4, [r0]
- movs r0, 0x1
- b _0813406E
- .align 2, 0
-_08134064: .4byte gDecorations
-_08134068: .4byte gUnknown_08402E40
-_0813406C:
- movs r0, 0
-_0813406E:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end IsThereStorageSpaceForDecoration
-
- thumb_func_start sub_8134074
-sub_8134074: @ 8134074
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _081340A0
- ldr r1, _0813409C
- lsls r0, 5
- adds r0, r1
- ldrb r0, [r0, 0x13]
- bl sub_8133F9C
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _081340A0
- movs r0, 0x1
- b _081340A2
- .align 2, 0
-_0813409C: .4byte gDecorations
-_081340A0:
- movs r0, 0
-_081340A2:
- pop {r1}
- bx r1
- thumb_func_end sub_8134074
-
- thumb_func_start sub_81340A8
-sub_81340A8: @ 81340A8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0
- cmp r5, 0
- bne _081340C4
- b _081340F2
-_081340B6:
- movs r0, 0
- strb r0, [r1]
- adds r0, r6, 0
- bl sub_8134104
- movs r0, 0x1
- b _081340F4
-_081340C4:
- ldr r2, _081340FC
- ldr r1, _08134100
- lsls r0, r5, 5
- adds r0, r1
- ldrb r4, [r0, 0x13]
- lsls r0, r4, 3
- adds r0, r2
- ldrb r1, [r0, 0x4]
- cmp r3, r1
- bcs _081340F2
- adds r6, r4, 0
- adds r4, r0, 0
- adds r2, r1, 0
-_081340DE:
- ldr r0, [r4]
- adds r1, r0, r3
- ldrb r0, [r1]
- cmp r0, r5
- beq _081340B6
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r2
- bcc _081340DE
-_081340F2:
- movs r0, 0
-_081340F4:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081340FC: .4byte gUnknown_08402E40
-_08134100: .4byte gDecorations
- thumb_func_end sub_81340A8
-
- thumb_func_start sub_8134104
-sub_8134104: @ 8134104
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- movs r6, 0
- ldr r2, _08134190
- lsrs r1, r0, 21
- adds r0, r1, r2
- ldrb r0, [r0, 0x4]
- cmp r6, r0
- bcs _08134180
- adds r7, r1, 0
- mov r8, r0
- str r0, [sp]
-_08134126:
- adds r1, r6, 0x1
- lsls r0, r1, 24
- lsrs r3, r0, 24
- adds r2, r7, 0
- mov r12, r1
- cmp r3, r8
- bcs _08134174
- ldr r1, _08134190
- mov r10, r1
- adds r0, r1, 0
- mov r9, r0
-_0813413C:
- mov r1, r10
- adds r5, r2, r1
- ldr r1, [r5]
- adds r0, r1, r3
- ldrb r4, [r0]
- adds r2, r4, 0
- cmp r2, 0
- beq _08134162
- adds r0, r1, r6
- ldrb r1, [r0]
- cmp r1, 0
- beq _08134158
- cmp r1, r2
- bls _08134162
-_08134158:
- ldrb r1, [r0]
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, r3
- strb r1, [r0]
-_08134162:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r2, r7, 0
- mov r1, r9
- adds r0, r2, r1
- ldrb r0, [r0, 0x4]
- cmp r3, r0
- bcc _0813413C
-_08134174:
- mov r1, r12
- lsls r0, r1, 24
- lsrs r6, r0, 24
- ldr r0, [sp]
- cmp r6, r0
- bcc _08134126
-_08134180:
- 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
-_08134190: .4byte gUnknown_08402E40
- thumb_func_end sub_8134104
-
- thumb_func_start sub_8134194
-sub_8134194: @ 8134194
- push {r4,r5,lr}
- lsls r0, 24
- movs r4, 0
- movs r3, 0
- ldr r2, _081341D0
- lsrs r1, r0, 21
- adds r0, r1, r2
- ldrb r0, [r0, 0x4]
- cmp r4, r0
- bcs _081341C8
- adds r5, r2, 0
-_081341AA:
- adds r2, r1, r5
- ldr r0, [r2]
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _081341BC
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_081341BC:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r2, [r2, 0x4]
- cmp r3, r2
- bcc _081341AA
-_081341C8:
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_081341D0: .4byte gUnknown_08402E40
- thumb_func_end sub_8134194
-
- thumb_func_start sub_81341D4
-sub_81341D4: @ 81341D4
- push {r4,r5,lr}
- movs r5, 0
- movs r4, 0
-_081341DA:
- adds r0, r4, 0
- bl sub_8134194
- adds r0, r5, r0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _081341DA
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81341D4
-
- thumb_func_start sub_81341F8
-sub_81341F8: @ 81341F8
- push {lr}
- ldr r0, _08134208
- movs r1, 0
- movs r2, 0x1C
- bl memset
- pop {r0}
- bx r0
- .align 2, 0
-_08134208: .4byte gSaveBlock1 + 0x3144
- thumb_func_end sub_81341F8
-
- thumb_func_start sub_813420C
-sub_813420C: @ 813420C
- push {r4-r6,lr}
- movs r2, 0
- ldr r6, _08134238
- ldr r4, _0813423C
- movs r3, 0
- adds r5, r4, 0x1
-_08134218:
- lsls r1, r2, 1
- adds r0, r1, r4
- strb r3, [r0]
- adds r1, r5
- strb r3, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _08134218
- movs r0, 0
- strb r0, [r6]
- strb r0, [r6, 0x1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08134238: .4byte gUnknown_02039302
-_0813423C: .4byte gUnknown_020392FC
- thumb_func_end sub_813420C
-
- thumb_func_start sub_8134240
-sub_8134240: @ 8134240
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x10
- ldr r5, _081342FC
- .ifdef SAPPHIRE
- ldr r6, _sub_8134240_Latias
- .else
- movs r6, 0xCC
- lsls r6, 1
- .endif
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x28
- movs r3, 0x20
- bl CreateMon
- ldr r4, _08134300
- movs r0, 0
- mov r8, r0
- strh r6, [r4, 0x8]
- movs r0, 0x28
- strb r0, [r4, 0xC]
- mov r0, r8
- strb r0, [r4, 0xD]
- movs r0, 0x1
- strb r0, [r4, 0x13]
- adds r0, r5, 0
- movs r1, 0x42
- bl GetMonData
- str r0, [r4]
- adds r0, r5, 0
- movs r1, 0
- bl GetMonData
- str r0, [r4, 0x4]
- adds r0, r5, 0
- movs r1, 0x3A
- bl GetMonData
- strh r0, [r4, 0xA]
- adds r0, r5, 0
- movs r1, 0x16
- bl GetMonData
- strb r0, [r4, 0xE]
- adds r0, r5, 0
- movs r1, 0x17
- bl GetMonData
- strb r0, [r4, 0xF]
- adds r0, r5, 0
- movs r1, 0x18
- bl GetMonData
- strb r0, [r4, 0x10]
- adds r0, r5, 0
- movs r1, 0x21
- bl GetMonData
- strb r0, [r4, 0x11]
- adds r0, r5, 0
- movs r1, 0x2F
- bl GetMonData
- strb r0, [r4, 0x12]
- ldr r4, _08134304
- mov r0, r8
- strb r0, [r4]
- bl Random
- ldr r5, _08134308
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x14
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- adds r1, r5
- ldrb r0, [r1]
- strb r0, [r4, 0x1]
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081342FC: .4byte gEnemyParty
- .ifdef SAPPHIRE
-_sub_8134240_Latias: .4byte 407
- .endif
-_08134300: .4byte gSaveBlock1 + 0x3144
-_08134304: .4byte gUnknown_02039302
-_08134308: .4byte gUnknown_08402E80
- thumb_func_end sub_8134240
-
- thumb_func_start sub_813430C
-sub_813430C: @ 813430C
- push {lr}
- bl sub_81341F8
- bl sub_813420C
- bl sub_8134240
- pop {r0}
- bx r0
- thumb_func_end sub_813430C
-
- thumb_func_start mapnumbers_history_shift_sav1_0_2_4_out
-mapnumbers_history_shift_sav1_0_2_4_out: @ 8134320
- ldr r0, _08134340
- ldrb r1, [r0, 0x2]
- strb r1, [r0, 0x4]
- ldrb r1, [r0, 0x3]
- strb r1, [r0, 0x5]
- ldrb r1, [r0]
- strb r1, [r0, 0x2]
- ldrb r1, [r0, 0x1]
- strb r1, [r0, 0x3]
- ldr r2, _08134344
- ldrb r1, [r2, 0x4]
- strb r1, [r0]
- ldrb r1, [r2, 0x5]
- strb r1, [r0, 0x1]
- bx lr
- .align 2, 0
-_08134340: .4byte gUnknown_020392FC
-_08134344: .4byte gSaveBlock1
- thumb_func_end mapnumbers_history_shift_sav1_0_2_4_out
-
- thumb_func_start sub_8134348
-sub_8134348: @ 8134348
- push {r4,r5,lr}
- movs r1, 0
- ldr r0, _08134388
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _08134380
- ldr r0, _0813438C
- strb r1, [r0]
- ldr r5, _08134390
- adds r4, r0, 0
-_0813435C:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x14
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 1
- adds r1, r5
- ldrb r1, [r1]
- ldrb r0, [r4, 0x1]
- cmp r0, r1
- beq _0813435C
- strb r1, [r4, 0x1]
-_08134380:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08134388: .4byte gSaveBlock1 + 0x3144
-_0813438C: .4byte gUnknown_02039302
-_08134390: .4byte gUnknown_08402E80
- thumb_func_end sub_8134348
-
- thumb_func_start sub_8134394
-sub_8134394: @ 8134394
- push {r4-r7,lr}
- movs r4, 0
- bl Random
- lsls r0, 16
- movs r1, 0xF0
- lsls r1, 12
- ands r1, r0
- cmp r1, 0
- bne _081343AE
- bl sub_8134348
- b _08134416
-_081343AE:
- ldr r0, _081343FC
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _08134416
- ldr r7, _08134400
- ldr r3, _08134404
-_081343BA:
- lsls r0, r4, 1
- adds r0, r4
- lsls r2, r0, 1
- adds r1, r2, r3
- ldrb r0, [r7, 0x1]
- ldrb r1, [r1]
- cmp r0, r1
- bne _0813440C
- ldr r6, _08134404
- adds r5, r2, 0x1
- ldr r4, _08134408
-_081343D0:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- adds r0, r5
- adds r0, r6
- ldrb r1, [r0]
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- bne _081343F4
- ldrb r0, [r4, 0x5]
- cmp r0, r1
- beq _081343D0
-_081343F4:
- cmp r1, 0xFF
- beq _081343D0
- strb r1, [r7, 0x1]
- b _08134416
- .align 2, 0
-_081343FC: .4byte gSaveBlock1 + 0x3144
-_08134400: .4byte gUnknown_02039302
-_08134404: .4byte gUnknown_08402E80
-_08134408: .4byte gUnknown_020392FC
-_0813440C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x13
- bls _081343BA
-_08134416:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8134394
-
- thumb_func_start sub_813441C
-sub_813441C: @ 813441C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08134440
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _08134448
- ldr r0, _08134444
- ldrb r3, [r0]
- cmp r2, r3
- bne _08134448
- ldrb r0, [r0, 0x1]
- cmp r1, r0
- bne _08134448
- movs r0, 0x1
- b _0813444A
- .align 2, 0
-_08134440: .4byte gSaveBlock1 + 0x3144
-_08134444: .4byte gUnknown_02039302
-_08134448:
- movs r0, 0
-_0813444A:
- pop {r1}
- bx r1
- thumb_func_end sub_813441C
-
- thumb_func_start sub_8134450
-sub_8134450: @ 8134450
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r4, _081344C4
- ldr r5, _081344C8
- ldrh r1, [r5, 0x8]
- ldrb r2, [r5, 0xC]
- ldr r3, [r5]
- ldr r0, [r5, 0x4]
- str r0, [sp]
- adds r0, r4, 0
- bl CreateMonWithIVsPersonality
- adds r2, r5, 0
- adds r2, 0xD
- adds r0, r4, 0
- movs r1, 0x37
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0xA
- adds r0, r4, 0
- movs r1, 0x39
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0xE
- adds r0, r4, 0
- movs r1, 0x16
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0xF
- adds r0, r4, 0
- movs r1, 0x17
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0x10
- adds r0, r4, 0
- movs r1, 0x18
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0x11
- adds r0, r4, 0
- movs r1, 0x21
- bl SetMonData
- adds r2, r5, 0
- adds r2, 0x12
- adds r0, r4, 0
- movs r1, 0x2F
- bl SetMonData
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081344C4: .4byte gEnemyParty
-_081344C8: .4byte gSaveBlock1 + 0x3144
- thumb_func_end sub_8134450
-
- thumb_func_start sub_81344CC
-sub_81344CC: @ 81344CC
- push {lr}
- ldr r1, _081344F8
- ldrb r0, [r1, 0x4]
- ldrb r1, [r1, 0x5]
- bl sub_813441C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _081344FC
- bl Random
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- cmp r1, 0
- bne _081344FC
- bl sub_8134450
- movs r0, 0x1
- b _081344FE
- .align 2, 0
-_081344F8: .4byte gSaveBlock1
-_081344FC:
- movs r0, 0
-_081344FE:
- pop {r1}
- bx r1
- thumb_func_end sub_81344CC
-
- thumb_func_start sub_8134504
-sub_8134504: @ 8134504
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x39
- bl GetMonData
- ldr r4, _08134528
- strh r0, [r4, 0xA]
- adds r0, r5, 0
- movs r1, 0x37
- bl GetMonData
- strb r0, [r4, 0xD]
- bl sub_8134348
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08134528: .4byte gSaveBlock1 + 0x3144
- thumb_func_end sub_8134504
-
- thumb_func_start sub_813452C
-sub_813452C: @ 813452C
- ldr r1, _08134534
- movs r0, 0
- strb r0, [r1, 0x13]
- bx lr
- .align 2, 0
-_08134534: .4byte gSaveBlock1 + 0x3144
- thumb_func_end sub_813452C
-
- thumb_func_start sub_8134538
-sub_8134538: @ 8134538
- ldr r3, _08134544
- ldrb r2, [r3]
- strb r2, [r0]
- ldrb r0, [r3, 0x1]
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08134544: .4byte gUnknown_02039302
- thumb_func_end sub_8134538
-
- thumb_func_start sub_8134548
-sub_8134548: @ 8134548
- push {r4,r5,lr}
- movs r4, 0
- movs r5, 0
-_0813454E:
- ldr r0, _08134568
- ldr r1, _0813456C
- adds r0, r1
- adds r0, r5, r0
- ldrb r0, [r0]
- cmp r0, 0x6
- bhi _08134590
- lsls r0, 2
- ldr r1, _08134570
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08134568: .4byte gSaveBlock2
-_0813456C: .4byte 0x00000556
-_08134570: .4byte _08134574
- .align 2, 0
-_08134574:
- .4byte _08134590
- .4byte _081345A8
- .4byte _081345C8
- .4byte _081345D8
- .4byte _081345B8
- .4byte _081345C0
- .4byte _081345D8
-_08134590:
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_813461C
- cmp r4, 0
- bne _081345D8
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0x5
- bl VarSet
- b _081345D8
-_081345A8:
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_813461C
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0x1
- b _081345CE
-_081345B8:
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0x2
- b _081345CE
-_081345C0:
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0x3
- b _081345CE
-_081345C8:
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0x4
-_081345CE:
- bl VarSet
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_081345D8:
- adds r5, 0x1
- cmp r5, 0x1
- ble _0813454E
- ldr r1, _08134610
- ldr r2, _08134614
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _081345EE
- cmp r0, 0x6
- bne _08134606
-_081345EE:
- ldr r2, _08134618
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _081345FC
- cmp r0, 0x6
- bne _08134606
-_081345FC:
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0x5
- bl VarSet
-_08134606:
- bl sub_8135C44
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08134610: .4byte gSaveBlock2
-_08134614: .4byte 0x00000556
-_08134618: .4byte 0x00000557
- thumb_func_end sub_8134548
-
- thumb_func_start sub_813461C
-sub_813461C: @ 813461C
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08134644
- ldr r2, _08134648
- adds r1, r3, r2
- adds r1, r0, r1
- movs r2, 0
- strb r2, [r1]
- lsls r0, 1
- movs r2, 0xAB
- lsls r2, 3
- adds r1, r3, r2
- adds r1, r0, r1
- movs r2, 0x1
- strh r2, [r1]
- ldr r1, _0813464C
- adds r3, r1
- adds r0, r3
- strh r2, [r0]
- bx lr
- .align 2, 0
-_08134644: .4byte gSaveBlock2
-_08134648: .4byte 0x00000556
-_0813464C: .4byte 0x0000055c
- thumb_func_end sub_813461C
-
- thumb_func_start sub_8134650
-sub_8134650: @ 8134650
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x2C
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 16
- lsrs r6, r1, 16
- add r4, sp, 0x28
- movs r0, 0
- strb r0, [r4]
- bl sub_813601C
- ldr r0, _08134684
- ldrh r0, [r0]
- adds r7, r4, 0
- cmp r0, 0
- bne _08134680
- ldr r1, _08134688
- ldr r2, _0813468C
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r0, r6
- beq _08134690
-_08134680:
- movs r0, 0
- b _081346E2
- .align 2, 0
-_08134684: .4byte gScriptResult
-_08134688: .4byte gSaveBlock2
-_0813468C: .4byte 0x0000049a
-_08134690:
- movs r6, 0x32
- cmp r5, 0
- beq _08134698
- movs r6, 0x64
-_08134698:
- movs r4, 0
- mov r8, r1
-_0813469C:
- movs r0, 0x2C
- muls r0, r4
- mov r3, r8
- adds r1, r0, r3
- movs r2, 0x9B
- lsls r2, 3
- adds r0, r1, r2
- ldrb r2, [r0]
- cmp r2, r6
- bne _08134680
- ldr r3, _081346F0
- adds r0, r1, r3
- ldrh r0, [r0]
- adds r3, 0x2
- adds r1, r3
- ldrh r1, [r1]
- str r2, [sp]
- add r2, sp, 0x10
- str r2, [sp, 0x4]
- add r2, sp, 0x1C
- str r2, [sp, 0x8]
- str r7, [sp, 0xC]
- movs r2, 0x1
- adds r3, r5, 0
- bl sub_8135200
- adds r4, 0x1
- cmp r4, 0x2
- ble _0813469C
- movs r1, 0
- ldrb r0, [r7]
- cmp r0, 0x3
- bne _081346E0
- movs r1, 0x1
-_081346E0:
- adds r0, r1, 0
-_081346E2:
- add sp, 0x2C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081346F0: .4byte 0x000004cc
- thumb_func_end sub_8134650
-
- thumb_func_start sub_81346F4
-sub_81346F4: @ 81346F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- movs r0, 0
- mov r9, r0
- ldr r4, _08134738
- ldr r1, _0813473C
- adds r0, r4, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r7, r0, 31
- adds r0, r7, 0
- bl sub_8135D3C
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r0, r7, 0
- mov r1, r8
- bl sub_8134650
- lsls r0, 24
- adds r1, r4, 0
- cmp r0, 0
- beq _08134744
- ldr r2, _08134740
- adds r1, r2
- movs r0, 0xC8
- strb r0, [r1]
- b _081347DE
- .align 2, 0
-_08134738: .4byte gSaveBlock2
-_0813473C: .4byte 0x00000554
-_08134740: .4byte 0x00000564
-_08134744:
- movs r5, 0
- movs r3, 0xA4
- mov r12, r3
- mov r10, sp
-_0813474C:
- mov r0, r12
- muls r0, r5
- movs r4, 0
- movs r1, 0
- movs r2, 0
- adds r6, r5, 0x1
- str r6, [sp, 0x14]
- ldr r6, _081347B4
- adds r3, r0, r6
-_0813475E:
- ldm r3!, {r0}
- orrs r4, r0
- adds r1, r0
- adds r2, 0x1
- cmp r2, 0x27
- bls _0813475E
- mov r3, r12
- muls r3, r5
- ldr r0, _081347B8
- adds r2, r3, r0
- movs r6, 0xA7
- lsls r6, 1
- adds r0, r2, r6
- ldrh r0, [r0]
- cmp r0, r8
- bne _081347A4
- subs r6, 0x2
- adds r0, r2, r6
- ldrb r0, [r0]
- cmp r0, r7
- bne _081347A4
- cmp r4, 0
- beq _081347A4
- ldr r2, _081347BC
- adds r0, r3, r2
- ldr r0, [r0]
- cmp r0, r1
- bne _081347A4
- mov r3, r10
- adds r3, 0x4
- mov r10, r3
- subs r3, 0x4
- stm r3!, {r5}
- movs r6, 0x1
- add r9, r6
-_081347A4:
- ldr r5, [sp, 0x14]
- cmp r5, 0x4
- ble _0813474C
- mov r0, r9
- cmp r0, 0
- bne _081347C0
- movs r0, 0
- b _081347E0
- .align 2, 0
-_081347B4: .4byte gSaveBlock2 + 0x14C
-_081347B8: .4byte gSaveBlock2
-_081347BC: .4byte gSaveBlock2 + 0x1EC
-_081347C0:
- bl Random
- ldr r4, _081347F0
- lsls r0, 16
- lsrs r0, 16
- mov r1, r9
- bl __modsi3
- lsls r0, 2
- add r0, sp
- ldr r0, [r0]
- adds r0, 0x64
- ldr r1, _081347F4
- adds r4, r1
- strb r0, [r4]
-_081347DE:
- movs r0, 0x1
-_081347E0:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081347F0: .4byte gSaveBlock2
-_081347F4: .4byte 0x00000564
- thumb_func_end sub_81346F4
-
- thumb_func_start sub_81347F8
-sub_81347F8: @ 81347F8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r5, _08134838
- ldr r1, _0813483C
- adds r0, r5, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r6, r0, 31
- bl sub_81346F4
- lsls r0, 24
- cmp r0, 0
- beq _08134848
- ldr r2, _08134840
- adds r4, r5, r2
- ldrb r0, [r4]
- bl sub_81349FC
- lsls r0, r6, 1
- movs r3, 0xAB
- lsls r3, 3
- adds r1, r5, r3
- adds r0, r1
- ldrh r0, [r0]
- adds r0, r5, r0
- ldr r1, _08134844
- adds r0, r1
- ldrb r1, [r4]
- b _081349DC
- .align 2, 0
-_08134838: .4byte gSaveBlock2
-_0813483C: .4byte 0x00000554
-_08134840: .4byte 0x00000564
-_08134844: .4byte 0x00000569
-_08134848:
- lsls r0, r6, 1
- ldr r2, _081348D8
- adds r1, r5, r2
- adds r1, r0, r1
- ldrh r1, [r1]
- adds r7, r0, 0
- cmp r1, 0x7
- bls _0813485A
- b _0813495C
-_0813485A:
- movs r3, 0xAB
- lsls r3, 3
- adds r0, r5, r3
- adds r1, r7, r0
- ldrh r0, [r1]
- cmp r0, 0x7
- bne _081348E4
- adds r6, r5, 0
- mov r9, r7
- adds r5, r1, 0
- ldr r0, _081348DC
- adds r0, r6
- mov r10, r0
- mov r8, r5
-_08134876:
- bl Random
- movs r1, 0xFF
- ands r1, r0
- lsls r2, r1, 2
- adds r2, r1
- ldr r1, _081348D8
- adds r4, r6, r1
- mov r3, r9
- adds r0, r3, r4
- ldrh r1, [r0]
- subs r1, 0x1
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- adds r0, 0x14
- lsrs r2, 7
- adds r2, r0
- lsls r2, 16
- lsrs r2, 16
- movs r1, 0
- ldrh r0, [r5]
- subs r0, 0x1
- cmp r1, r0
- bge _081348C8
- mov r3, r10
- ldrb r0, [r3]
- cmp r0, r2
- beq _081348C8
- subs r0, r4, 0x4
- adds r0, r7, r0
- ldrh r0, [r0]
- subs r3, r0, 0x1
- adds r4, 0xE
-_081348BA:
- adds r1, 0x1
- cmp r1, r3
- bge _081348C8
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, r2
- bne _081348BA
-_081348C8:
- mov r3, r8
- ldrh r0, [r3]
- subs r0, 0x1
- ldr r4, _081348E0
- cmp r1, r0
- bne _08134876
- b _081349B6
- .align 2, 0
-_081348D8: .4byte 0x0000055c
-_081348DC: .4byte 0x0000056a
-_081348E0: .4byte gSaveBlock2
-_081348E4:
- adds r6, r5, 0
- mov r9, r7
- adds r5, r1, 0
- ldr r2, _08134950
- adds r2, r6
- mov r10, r2
- mov r8, r5
-_081348F2:
- bl Random
- movs r1, 0xFF
- ands r1, r0
- lsls r0, r1, 2
- adds r0, r1
- lsrs r2, r0, 6
- ldr r3, _08134954
- adds r4, r6, r3
- mov r1, r9
- adds r0, r1, r4
- ldrh r1, [r0]
- subs r1, 0x1
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- adds r0, r2, r0
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0
- ldrh r0, [r5]
- subs r0, 0x1
- cmp r1, r0
- bge _08134942
- mov r3, r10
- ldrb r0, [r3]
- cmp r0, r2
- beq _08134942
- subs r0, r4, 0x4
- adds r0, r7, r0
- ldrh r0, [r0]
- subs r3, r0, 0x1
- adds r4, 0xE
-_08134934:
- adds r1, 0x1
- cmp r1, r3
- bge _08134942
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, r2
- bne _08134934
-_08134942:
- mov r3, r8
- ldrh r0, [r3]
- subs r0, 0x1
- ldr r4, _08134958
- cmp r1, r0
- bne _081348F2
- b _081349B6
- .align 2, 0
-_08134950: .4byte 0x0000056a
-_08134954: .4byte 0x0000055c
-_08134958: .4byte gSaveBlock2
-_0813495C:
- movs r2, 0xAB
- lsls r2, 3
- adds r0, r5, r2
- adds r6, r7, r0
- ldr r3, _081349EC
- adds r3, r5
- mov r8, r3
- adds r5, r6, 0
-_0813496C:
- bl Random
- movs r1, 0xFF
- ands r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 1
- asrs r0, 8
- adds r0, 0x46
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0
- ldrh r0, [r6]
- subs r0, 0x1
- cmp r1, r0
- bge _081349AC
- mov r3, r8
- ldrb r0, [r3]
- ldr r4, _081349F0
- cmp r0, r2
- beq _081349AC
- ldrh r0, [r5]
- subs r3, r0, 0x1
- ldr r0, _081349EC
- adds r4, r0
-_0813499E:
- adds r1, 0x1
- cmp r1, r3
- bge _081349AC
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, r2
- bne _0813499E
-_081349AC:
- ldrh r0, [r6]
- subs r0, 0x1
- ldr r4, _081349F0
- cmp r1, r0
- bne _0813496C
-_081349B6:
- ldr r1, _081349F4
- adds r0, r4, r1
- strb r2, [r0]
- ldr r2, _081349F4
- adds r5, r4, r2
- ldrb r0, [r5]
- bl sub_81349FC
- movs r3, 0xAB
- lsls r3, 3
- adds r0, r4, r3
- adds r1, r7, r0
- ldrh r0, [r1]
- cmp r0, 0x6
- bhi _081349DE
- adds r0, r4, r0
- ldr r1, _081349F8
- adds r0, r1
- ldrb r1, [r5]
-_081349DC:
- strb r1, [r0]
-_081349DE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081349EC: .4byte 0x0000056a
-_081349F0: .4byte gSaveBlock2
-_081349F4: .4byte 0x00000564
-_081349F8: .4byte 0x00000569
- thumb_func_end sub_81347F8
-
- thumb_func_start sub_81349FC
-sub_81349FC: @ 81349FC
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r1, r2, 0
- cmp r2, 0x63
- bhi _08134A18
- ldr r1, _08134A14
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- b _08134A38
- .align 2, 0
-_08134A14: .4byte gBattleTowerTrainers
-_08134A18:
- cmp r1, 0xC7
- bhi _08134A34
- ldr r2, _08134A2C
- subs r1, 0x64
- movs r0, 0xA4
- muls r0, r1
- adds r0, r2
- ldr r1, _08134A30
- b _08134A38
- .align 2, 0
-_08134A2C: .4byte gSaveBlock2
-_08134A30: .4byte 0x0000014d
-_08134A34:
- ldr r0, _08134A5C
- ldr r1, _08134A60
-_08134A38:
- adds r0, r1
- ldrb r1, [r0]
- movs r2, 0
- ldr r3, _08134A64
- ldrb r0, [r3]
- cmp r0, r1
- beq _08134A54
-_08134A46:
- adds r2, 0x1
- cmp r2, 0x1D
- bhi _08134A54
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, r1
- bne _08134A46
-_08134A54:
- cmp r2, 0x1E
- beq _08134A6C
- ldr r0, _08134A68
- b _08134A8A
- .align 2, 0
-_08134A5C: .4byte gSaveBlock2
-_08134A60: .4byte 0x00000499
-_08134A64: .4byte gUnknown_08405E60
-_08134A68: .4byte gUnknown_08405E92
-_08134A6C:
- movs r2, 0
- ldr r3, _08134A98
- ldrb r0, [r3]
- cmp r0, r1
- beq _08134A84
-_08134A76:
- adds r2, 0x1
- cmp r2, 0x13
- bhi _08134A84
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, r1
- bne _08134A76
-_08134A84:
- cmp r2, 0x14
- beq _08134AA4
- ldr r0, _08134A9C
-_08134A8A:
- adds r0, r2, r0
- ldrb r1, [r0]
- ldr r0, _08134AA0
- bl VarSet
- b _08134AAC
- .align 2, 0
-_08134A98: .4byte gUnknown_08405E7E
-_08134A9C: .4byte gUnknown_08405EB0
-_08134AA0: .4byte 0x00004010
-_08134AA4:
- ldr r0, _08134AB0
- movs r1, 0x7
- bl VarSet
-_08134AAC:
- pop {r0}
- bx r0
- .align 2, 0
-_08134AB0: .4byte 0x00004010
- thumb_func_end sub_81349FC
-
- thumb_func_start sub_8134AB4
-sub_8134AB4: @ 8134AB4
- push {lr}
- movs r0, 0xC8
- bl sub_81349FC
- pop {r0}
- bx r0
- thumb_func_end sub_8134AB4
-
- thumb_func_start sub_8134AC0
-sub_8134AC0: @ 8134AC0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- movs r7, 0
- mov r8, r0
- movs r5, 0
- ldr r0, _08134B3C
- mov r12, r0
- mov r1, r8
- ldrb r1, [r1, 0xC]
- str r1, [sp, 0x18]
- movs r2, 0xAA
- lsls r2, 1
- add r2, r12
- mov r10, r2
- mov r9, r5
-_08134AE6:
- movs r6, 0
- movs r3, 0
- ldr r0, _08134B40
- add r0, r9
- ldrb r0, [r0]
- ldr r1, [sp, 0x18]
- cmp r0, r1
- bne _08134B14
- movs r0, 0xA4
- muls r0, r5
- ldr r1, _08134B40
- adds r2, r0, r1
- mov r4, r8
- adds r4, 0xC
-_08134B02:
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x3
- bgt _08134B14
- adds r1, r4, r3
- ldrb r0, [r2]
- ldrb r1, [r1]
- cmp r0, r1
- beq _08134B02
-_08134B14:
- cmp r3, 0x4
- bne _08134B54
- movs r6, 0
- mov r2, r10
- ldrb r0, [r2]
- mov r3, r8
- ldrb r3, [r3, 0x8]
- cmp r0, r3
- bne _08134B54
- adds r1, r0, 0
- movs r0, 0xA4
- muls r0, r5
- adds r0, 0x4
- ldr r3, _08134B44
- adds r2, r0, r3
-_08134B32:
- cmp r1, 0xFF
- bne _08134B48
- movs r6, 0x7
- b _08134B54
- .align 2, 0
-_08134B3C: .4byte gSaveBlock2
-_08134B40: .4byte gSaveBlock2 + 0x158
-_08134B44: .4byte gSaveBlock2 + 0x150
-_08134B48:
- adds r6, 0x1
- cmp r6, 0x6
- bgt _08134B54
- ldrb r0, [r2]
- cmp r0, r1
- beq _08134B32
-_08134B54:
- cmp r6, 0x7
- beq _08134B64
- movs r0, 0xA4
- add r10, r0
- add r9, r0
- adds r5, 0x1
- cmp r5, 0x4
- ble _08134AE6
-_08134B64:
- cmp r5, 0x4
- bgt _08134B76
- movs r0, 0xA4
- muls r0, r5
- add r0, r12
- movs r1, 0xA6
- lsls r1, 1
- adds r0, r1
- b _08134B9E
-_08134B76:
- movs r5, 0
- movs r1, 0xA7
- lsls r1, 1
- add r1, r12
- b _08134B88
-_08134B80:
- adds r1, 0xA4
- adds r5, 0x1
- cmp r5, 0x4
- bgt _08134BA8
-_08134B88:
- ldrh r0, [r1]
- cmp r0, 0
- bne _08134B80
- cmp r5, 0x4
- bgt _08134BA8
- movs r0, 0xA4
- muls r0, r5
- add r0, r12
- movs r2, 0xA6
- lsls r2, 1
- adds r0, r2
-_08134B9E:
- mov r1, r8
- movs r2, 0xA4
- bl memcpy
- b _08134C5E
-_08134BA8:
- mov r2, sp
- movs r3, 0xA7
- lsls r3, 1
- mov r1, r12
- adds r0, r1, r3
- ldrh r0, [r0]
- movs r1, 0
- strh r0, [r2]
- add r0, sp, 0xC
- strh r1, [r0]
- adds r7, 0x1
- movs r5, 0x1
- add r2, sp, 0xC
- mov r9, r2
- mov r10, r3
-_08134BC6:
- movs r3, 0
- adds r0, r5, 0x1
- mov r12, r0
- cmp r3, r7
- bge _08134C0A
- movs r1, 0xA4
- adds r0, r5, 0
- muls r0, r1
- ldr r2, _08134BFC
- adds r0, r2
- mov r1, r10
- adds r4, r0, r1
- mov r6, sp
-_08134BE0:
- lsls r0, r3, 1
- add r0, sp
- ldrh r2, [r4]
- adds r1, r2, 0
- ldrh r0, [r0]
- cmp r1, r0
- bcs _08134C00
- movs r3, 0
- movs r7, 0x1
- strh r2, [r6]
- mov r2, r9
- strh r5, [r2]
- b _08134C0A
- .align 2, 0
-_08134BFC: .4byte gSaveBlock2
-_08134C00:
- cmp r1, r0
- bhi _08134C0A
- adds r3, 0x1
- cmp r3, r7
- blt _08134BE0
-_08134C0A:
- cmp r3, r7
- bne _08134C2A
- lsls r1, r7, 1
- mov r3, sp
- adds r2, r3, r1
- movs r3, 0xA4
- adds r0, r5, 0
- muls r0, r3
- ldr r3, _08134C70
- adds r0, r3
- add r0, r10
- ldrh r0, [r0]
- strh r0, [r2]
- add r1, r9
- strh r5, [r1]
- adds r7, 0x1
-_08134C2A:
- mov r5, r12
- cmp r5, 0x4
- ble _08134BC6
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r7, 0
- bl __modsi3
- adds r5, r0, 0
- ldr r2, _08134C70
- lsls r0, r5, 1
- add r0, sp
- adds r0, 0xC
- ldrh r1, [r0]
- movs r0, 0xA4
- muls r0, r1
- adds r0, r2
- movs r1, 0xA6
- lsls r1, 1
- adds r0, r1
- mov r1, r8
- movs r2, 0xA4
- bl memcpy
-_08134C5E:
- 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
-_08134C70: .4byte gSaveBlock2
- thumb_func_end sub_8134AC0
-
- thumb_func_start get_trainer_class_pic_index
-get_trainer_class_pic_index: @ 8134C74
- push {lr}
- ldr r3, _08134C90
- ldr r0, _08134C94
- adds r1, r3, r0
- ldrb r0, [r1]
- cmp r0, 0xC8
- bne _08134CA0
- ldr r1, _08134C98
- ldr r2, _08134C9C
- adds r0, r3, r2
- ldrb r0, [r0]
- adds r0, r1
- b _08134CD2
- .align 2, 0
-_08134C90: .4byte gSaveBlock2
-_08134C94: .4byte 0x00000564
-_08134C98: .4byte gTrainerClassToPicIndex
-_08134C9C: .4byte 0x00000499
-_08134CA0:
- cmp r0, 0x63
- bls _08134CC0
- ldr r2, _08134CBC
- ldrb r0, [r1]
- subs r0, 0x64
- movs r1, 0xA4
- muls r0, r1
- adds r0, r3
- adds r1, 0xA9
- adds r0, r1
- ldrb r0, [r0]
- adds r0, r2
- b _08134CD2
- .align 2, 0
-_08134CBC: .4byte gTrainerClassToPicIndex
-_08134CC0:
- ldr r3, _08134CD8
- ldr r2, _08134CDC
- ldrb r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r3
-_08134CD2:
- ldrb r0, [r0]
- pop {r1}
- bx r1
- .align 2, 0
-_08134CD8: .4byte gTrainerClassToPicIndex
-_08134CDC: .4byte gBattleTowerTrainers
- thumb_func_end get_trainer_class_pic_index
-
- thumb_func_start get_trainer_class_name_index
-get_trainer_class_name_index: @ 8134CE0
- push {lr}
- ldr r3, _08134CFC
- ldr r0, _08134D00
- adds r1, r3, r0
- ldrb r0, [r1]
- cmp r0, 0xC8
- bne _08134D0C
- ldr r1, _08134D04
- ldr r2, _08134D08
- adds r0, r3, r2
- ldrb r0, [r0]
- adds r0, r1
- b _08134D40
- .align 2, 0
-_08134CFC: .4byte gSaveBlock2
-_08134D00: .4byte 0x00000564
-_08134D04: .4byte gTrainerClassToNameIndex
-_08134D08: .4byte 0x00000499
-_08134D0C:
- cmp r0, 0x63
- bhi _08134D2C
- ldr r3, _08134D24
- ldr r2, _08134D28
- ldrb r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r3
- b _08134D40
- .align 2, 0
-_08134D24: .4byte gTrainerClassToNameIndex
-_08134D28: .4byte gBattleTowerTrainers
-_08134D2C:
- ldr r2, _08134D48
- ldrb r0, [r1]
- subs r0, 0x64
- movs r1, 0xA4
- muls r0, r1
- adds r0, r3
- adds r1, 0xA9
- adds r0, r1
- ldrb r0, [r0]
- adds r0, r2
-_08134D40:
- ldrb r0, [r0]
- pop {r1}
- bx r1
- .align 2, 0
-_08134D48: .4byte gTrainerClassToNameIndex
- thumb_func_end get_trainer_class_name_index
-
- thumb_func_start get_trainer_name
-get_trainer_name: @ 8134D4C
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r2, _08134D74
- ldr r0, _08134D78
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0xC8
- bne _08134D80
- movs r3, 0
- ldr r5, _08134D7C
- adds r2, r5
-_08134D62:
- adds r0, r4, r3
- adds r1, r3, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, 0x6
- ble _08134D62
- b _08134DC8
- .align 2, 0
-_08134D74: .4byte gSaveBlock2
-_08134D78: .4byte 0x00000564
-_08134D7C: .4byte 0x0000049c
-_08134D80:
- cmp r0, 0x63
- bhi _08134DA8
- movs r3, 0
- ldr r2, _08134DA4
- ldrb r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r2, 0x1
- adds r2, r0, r2
-_08134D94:
- adds r1, r4, r3
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x6
- ble _08134D94
- b _08134DC8
- .align 2, 0
-_08134DA4: .4byte gBattleTowerTrainers
-_08134DA8:
- movs r3, 0
- ldrb r0, [r1]
- subs r0, 0x64
- movs r1, 0xA4
- muls r1, r0
- movs r5, 0xA8
- lsls r5, 1
- adds r0, r2, r5
- adds r2, r1, r0
-_08134DBA:
- adds r1, r4, r3
- ldrb r0, [r2]
- strb r0, [r1]
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x6
- ble _08134DBA
-_08134DC8:
- adds r1, r4, r3
- movs r0, 0xFF
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end get_trainer_name
-
- thumb_func_start sub_8134DD4
-sub_8134DD4: @ 8134DD4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- movs r0, 0
- str r0, [sp, 0x18]
- movs r1, 0x3C
- str r1, [sp, 0x1C]
- add r4, sp, 0xC
- movs r0, 0xFF
- strb r0, [r4]
- bl ZeroEnemyPartyMons
- ldr r1, _08134E04
- ldr r2, _08134E08
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x13
- bhi _08134E0C
- movs r3, 0x6
- str r3, [sp, 0x14]
- b _08134ED8
- .align 2, 0
-_08134E04: .4byte gSaveBlock2
-_08134E08: .4byte 0x00000564
-_08134E0C:
- cmp r0, 0x1D
- bhi _08134E1A
- movs r0, 0x9
- str r0, [sp, 0x14]
- movs r1, 0x1E
- str r1, [sp, 0x18]
- b _08134ED8
-_08134E1A:
- cmp r0, 0x27
- bhi _08134E28
- movs r2, 0xC
- str r2, [sp, 0x14]
- movs r3, 0x3C
- str r3, [sp, 0x18]
- b _08134ED8
-_08134E28:
- cmp r0, 0x31
- bhi _08134E36
- movs r0, 0xF
- str r0, [sp, 0x14]
- movs r1, 0x5A
- str r1, [sp, 0x18]
- b _08134ED8
-_08134E36:
- cmp r0, 0x3B
- bhi _08134E44
- movs r2, 0x12
- str r2, [sp, 0x14]
- movs r3, 0x78
- str r3, [sp, 0x18]
- b _08134ED8
-_08134E44:
- cmp r0, 0x45
- bhi _08134E52
- movs r0, 0x15
- str r0, [sp, 0x14]
- movs r1, 0x96
- str r1, [sp, 0x18]
- b _08134ED8
-_08134E52:
- cmp r0, 0x4F
- bhi _08134E60
- movs r2, 0x1F
- str r2, [sp, 0x14]
- movs r3, 0xB4
- str r3, [sp, 0x18]
- b _08134ED8
-_08134E60:
- cmp r0, 0x63
- bhi _08134E72
- movs r0, 0x1F
- str r0, [sp, 0x14]
- movs r1, 0xC8
- str r1, [sp, 0x18]
- movs r2, 0x64
- str r2, [sp, 0x1C]
- b _08134ED8
-_08134E72:
- cmp r0, 0xC8
- bne _08134E9C
- movs r6, 0
-_08134E78:
- movs r0, 0x64
- muls r0, r6
- ldr r1, _08134E94
- adds r0, r1
- movs r1, 0x2C
- muls r1, r6
- ldr r2, _08134E98
- adds r1, r2
- bl sub_803ADE8
- adds r6, 0x1
- cmp r6, 0x2
- ble _08134E78
- b _08135082
- .align 2, 0
-_08134E94: .4byte gEnemyParty
-_08134E98: .4byte gSaveBlock2 + 0x4CC
-_08134E9C:
- movs r6, 0
- adds r4, r1, 0
- ldr r3, _08134ECC
- adds r5, r4, r3
-_08134EA4:
- movs r0, 0x64
- muls r0, r6
- ldr r1, _08134ED0
- adds r0, r1
- ldr r2, _08134ED4
- adds r1, r4, r2
- ldrb r2, [r1]
- movs r1, 0xA4
- muls r1, r2
- adds r1, r5
- movs r2, 0x2C
- muls r2, r6
- adds r1, r2
- bl sub_803ADE8
- adds r6, 0x1
- cmp r6, 0x2
- ble _08134EA4
- b _08135082
- .align 2, 0
-_08134ECC: .4byte 0xffffc158
-_08134ED0: .4byte gEnemyParty
-_08134ED4: .4byte 0x00000564
-_08134ED8:
- ldr r2, _08134EF4
- ldr r3, _08134EF8
- adds r0, r2, r3
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- adds r1, r2, 0
- cmp r0, 0
- beq _08134F00
- ldr r0, _08134EFC
- mov r10, r0
- movs r2, 0x64
- str r2, [sp, 0x10]
- b _08134F08
- .align 2, 0
-_08134EF4: .4byte gSaveBlock2
-_08134EF8: .4byte 0x00000554
-_08134EFC: .4byte gBattleTowerLevel100Mons
-_08134F00:
- ldr r3, _08134F54
- mov r10, r3
- movs r0, 0x32
- str r0, [sp, 0x10]
-_08134F08:
- ldr r2, _08134F58
- ldr r3, _08134F5C
- adds r0, r1, r3
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x9]
- str r0, [sp, 0x20]
- movs r6, 0
-_08134F1E:
- bl Random
- movs r1, 0xFF
- ands r1, r0
- ldr r2, [sp, 0x1C]
- adds r0, r1, 0
- muls r0, r2
- asrs r0, 8
- ldr r3, [sp, 0x18]
- adds r7, r0, r3
- ldr r0, [sp, 0x20]
- cmp r0, 0
- beq _08134F48
- lsls r0, r7, 4
- add r0, r10
- ldrb r0, [r0, 0x3]
- ldr r1, [sp, 0x20]
- ands r0, r1
- cmp r0, r1
- beq _08134F48
- b _0813507C
-_08134F48:
- movs r5, 0
- lsls r0, r7, 4
- mov r2, r10
- adds r3, r0, r2
- movs r4, 0
- b _08134F64
- .align 2, 0
-_08134F54: .4byte gBattleTowerLevel50Mons
-_08134F58: .4byte gBattleTowerTrainers
-_08134F5C: .4byte 0x00000564
-_08134F60:
- adds r4, 0x64
- adds r5, 0x1
-_08134F64:
- cmp r5, r6
- bge _08134F7E
- ldr r1, _08135094
- adds r0, r4, r1
- movs r1, 0xB
- movs r2, 0
- str r3, [sp, 0x24]
- bl GetMonData
- ldr r3, [sp, 0x24]
- ldrh r2, [r3]
- cmp r0, r2
- bne _08134F60
-_08134F7E:
- cmp r5, r6
- bne _0813507C
- movs r5, 0
- cmp r5, r6
- bge _08134FCC
- ldr r3, _08135098
- mov r9, r3
- lsls r0, r7, 4
- add r0, r10
- mov r8, r0
- movs r3, 0
-_08134F94:
- ldr r0, _08135094
- adds r4, r3, r0
- adds r0, r4, 0
- movs r1, 0xC
- movs r2, 0
- str r3, [sp, 0x24]
- bl GetMonData
- ldr r3, [sp, 0x24]
- cmp r0, 0
- beq _08134FC4
- adds r0, r4, 0
- movs r1, 0xC
- movs r2, 0
- bl GetMonData
- mov r2, r8
- ldrb r1, [r2, 0x2]
- lsls r1, 1
- add r1, r9
- ldr r3, [sp, 0x24]
- ldrh r1, [r1]
- cmp r0, r1
- beq _08134FCC
-_08134FC4:
- adds r3, 0x64
- adds r5, 0x1
- cmp r5, r6
- blt _08134F94
-_08134FCC:
- cmp r5, r6
- bne _0813507C
- movs r5, 0
- cmp r5, r6
- bge _08134FEE
- add r0, sp, 0x4
- ldrh r0, [r0]
- cmp r0, r7
- beq _08134FEE
- add r1, sp, 0x4
-_08134FE0:
- adds r1, 0x2
- adds r5, 0x1
- cmp r5, r6
- bge _08134FEE
- ldrh r0, [r1]
- cmp r0, r7
- bne _08134FE0
-_08134FEE:
- cmp r5, r6
- bne _0813507C
- lsls r0, r6, 1
- add r0, sp
- adds r0, 0x4
- strh r7, [r0]
- movs r3, 0x64
- adds r0, r6, 0
- muls r0, r3
- ldr r1, _08135094
- adds r0, r1
- lsls r4, r7, 4
- mov r3, r10
- adds r2, r4, r3
- ldrh r1, [r2]
- ldrb r2, [r2, 0xC]
- str r2, [sp]
- ldr r2, [sp, 0x10]
- ldr r3, [sp, 0x14]
- bl CreateMonWithEVSpread
- movs r5, 0
- adds r0, r6, 0x1
- mov r9, r0
- mov r8, r4
- movs r0, 0x64
- adds r7, r6, 0
- muls r7, r0
- mov r0, r10
- adds r0, 0x4
- adds r4, r0
- ldr r3, _08135094
-_0813502E:
- ldrh r1, [r4]
- lsls r2, r5, 24
- lsrs r2, 24
- adds r0, r7, r3
- str r3, [sp, 0x24]
- bl SetMonMoveSlot
- ldrh r0, [r4]
- ldr r3, [sp, 0x24]
- cmp r0, 0xDA
- bne _0813504A
- movs r0, 0
- mov r1, sp
- strb r0, [r1, 0xC]
-_0813504A:
- adds r4, 0x2
- adds r5, 0x1
- cmp r5, 0x3
- ble _0813502E
- movs r2, 0x64
- adds r4, r6, 0
- muls r4, r2
- ldr r3, _08135094
- adds r4, r3
- adds r0, r4, 0
- movs r1, 0x20
- add r2, sp, 0xC
- bl SetMonData
- mov r0, r8
- add r0, r10
- ldrb r2, [r0, 0x2]
- lsls r2, 1
- ldr r0, _08135098
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- mov r6, r9
-_0813507C:
- cmp r6, 0x3
- beq _08135082
- b _08134F1E
-_08135082:
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08135094: .4byte gEnemyParty
-_08135098: .4byte gBattleTowerHeldItems
- thumb_func_end sub_8134DD4
-
- thumb_func_start sub_813509C
-sub_813509C: @ 813509C
- push {r4-r6,lr}
- movs r5, 0
- ldr r2, _081350D8
- ldrh r0, [r2]
- ldr r1, _081350DC
- cmp r0, r1
- beq _081350CE
- adds r6, r1, 0
- adds r4, r2, 0
-_081350AE:
- ldrh r0, [r4]
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _081350C6
- adds r5, 0x1
-_081350C6:
- adds r4, 0x2
- ldrh r0, [r4]
- cmp r0, r6
- bne _081350AE
-_081350CE:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081350D8: .4byte gBattleTowerBanlist
-_081350DC: .4byte 0x0000ffff
- thumb_func_end sub_813509C
-
- thumb_func_start sub_81350E0
-sub_81350E0: @ 81350E0
- push {r4-r6,lr}
- adds r5, r2, 0
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 24
- lsrs r4, r1, 24
- adds r0, r6, 0
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- cmp r0, 0
- beq _081351E6
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- subs r0, r4, 0x1
- cmp r0, 0xA
- bhi _081351B0
- lsls r0, 2
- ldr r1, _08135118
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08135118: .4byte _0813511C
- .align 2, 0
-_0813511C:
- .4byte _08135148
- .4byte _08135178
- .4byte _08135148
- .4byte _081351B0
- .4byte _08135148
- .4byte _081351B0
- .4byte _08135148
- .4byte _081351B0
- .4byte _08135148
- .4byte _081351B0
- .4byte _08135148
-_08135148:
- cmp r5, r4
- bne _08135160
- ldr r0, _08135158
- ldr r1, _0813515C
- bl StringAppend
- b _081351D8
- .align 2, 0
-_08135158: .4byte gStringVar1
-_0813515C: .4byte gUnknown_08400E23
-_08135160:
- cmp r5, r4
- ble _081351D8
- ldr r0, _08135170
- ldr r1, _08135174
- bl StringAppend
- b _081351D8
- .align 2, 0
-_08135170: .4byte gStringVar1
-_08135174: .4byte gUnknown_08400E29
-_08135178:
- cmp r4, r5
- bne _08135190
- ldr r0, _08135188
- ldr r1, _0813518C
- bl StringAppend
- b _08135198
- .align 2, 0
-_08135188: .4byte gStringVar1
-_0813518C: .4byte gUnknown_08400E23
-_08135190:
- ldr r0, _081351A4
- ldr r1, _081351A8
- bl StringAppend
-_08135198:
- ldr r0, _081351A4
- ldr r1, _081351AC
- bl StringAppend
- b _081351D8
- .align 2, 0
-_081351A4: .4byte gStringVar1
-_081351A8: .4byte gUnknown_08400E29
-_081351AC: .4byte gUnknown_08400E30
-_081351B0:
- cmp r4, r5
- bne _081351C8
- ldr r0, _081351C0
- ldr r1, _081351C4
- bl StringAppend
- b _081351D0
- .align 2, 0
-_081351C0: .4byte gStringVar1
-_081351C4: .4byte gUnknown_08400E23
-_081351C8:
- ldr r0, _081351F0
- ldr r1, _081351F4
- bl StringAppend
-_081351D0:
- ldr r0, _081351F0
- ldr r1, _081351F8
- bl StringAppend
-_081351D8:
- ldr r0, _081351F0
- movs r1, 0xB
- muls r1, r6
- ldr r2, _081351FC
- adds r1, r2
- bl StringAppend
-_081351E6:
- adds r0, r4, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081351F0: .4byte gStringVar1
-_081351F4: .4byte gUnknown_08400E29
-_081351F8: .4byte gUnknown_08400E2E
-_081351FC: .4byte gSpeciesNames
- thumb_func_end sub_81350E0
-
- thumb_func_start sub_8135200
-sub_8135200: @ 8135200
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r2, [sp, 0x20]
- ldr r4, [sp, 0x24]
- mov r9, r4
- ldr r4, [sp, 0x28]
- mov r10, r4
- ldr r7, [sp, 0x2C]
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r3, 24
- lsrs r3, 24
- mov r12, r3
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- movs r2, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- beq _081352CE
- cmp r4, 0
- beq _081352CE
- ldr r0, _081352DC
- ldrh r1, [r0]
- ldr r5, _081352E0
- adds r3, r0, 0
- cmp r1, r5
- beq _08135264
- cmp r1, r4
- beq _08135258
- adds r1, r3, 0
-_0813524A:
- adds r1, 0x2
- adds r2, 0x1
- ldrh r0, [r1]
- cmp r0, r5
- beq _08135264
- cmp r0, r4
- bne _0813524A
-_08135258:
- lsls r0, r2, 1
- adds r0, r3
- ldrh r1, [r0]
- ldr r0, _081352E0
- cmp r1, r0
- bne _081352CE
-_08135264:
- mov r0, r12
- cmp r0, 0
- bne _08135270
- mov r1, r8
- cmp r1, 0x32
- bhi _081352CE
-_08135270:
- movs r2, 0
- ldrb r3, [r7]
- cmp r2, r3
- bge _08135290
- mov r1, r9
- ldrh r0, [r1]
- cmp r0, r4
- beq _08135290
- adds r5, r3, 0
-_08135282:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, r5
- bge _08135290
- ldrh r0, [r1]
- cmp r0, r4
- bne _08135282
-_08135290:
- cmp r2, r3
- bne _081352CE
- cmp r6, 0
- beq _081352BA
- movs r2, 0
- cmp r2, r3
- bge _081352B6
- mov r1, r10
- ldrh r0, [r1]
- cmp r0, r6
- beq _081352B6
- adds r5, r3, 0
-_081352A8:
- adds r1, 0x2
- adds r2, 0x1
- cmp r2, r5
- bge _081352B6
- ldrh r0, [r1]
- cmp r0, r6
- bne _081352A8
-_081352B6:
- cmp r2, r3
- bne _081352CE
-_081352BA:
- lsls r0, r3, 1
- add r0, r9
- strh r4, [r0]
- ldrb r0, [r7]
- lsls r0, 1
- add r0, r10
- strh r6, [r0]
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
-_081352CE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081352DC: .4byte gBattleTowerBanlist
-_081352E0: .4byte 0x0000ffff
- thumb_func_end sub_8135200
-
- thumb_func_start sub_81352E4
-sub_81352E4: @ 81352E4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- add r1, sp, 0x28
- movs r0, 0
- strb r0, [r1]
- movs r7, 0
- mov r9, r1
- add r0, sp, 0x1C
- mov r10, r0
-_081352FE:
- movs r0, 0x64
- adds r5, r7, 0
- muls r5, r0
- ldr r0, _081353C4
- adds r5, r0
- adds r0, r5, 0
- movs r1, 0x41
- bl GetMonData
- mov r8, r0
- mov r1, r8
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- adds r0, r5, 0
- movs r1, 0xC
- bl GetMonData
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 16
- adds r0, r5, 0
- movs r1, 0x38
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0x39
- bl GetMonData
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- ldr r5, _081353C8
- ldrb r3, [r5]
- str r4, [sp]
- add r0, sp, 0x10
- str r0, [sp, 0x4]
- mov r1, r10
- str r1, [sp, 0x8]
- mov r0, r9
- str r0, [sp, 0xC]
- mov r0, r8
- adds r1, r6, 0
- bl sub_8135200
- adds r7, 0x1
- cmp r7, 0x5
- ble _081352FE
- mov r1, r9
- ldrb r0, [r1]
- cmp r0, 0x2
- bhi _08135420
- ldr r1, _081353CC
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, _081353D0
- movs r0, 0x1
- strh r0, [r1]
- movs r0, 0
- mov r1, r9
- strb r0, [r1]
- bl sub_813509C
- adds r6, r0, 0
- ldr r2, _081353D4
- ldrh r0, [r2]
- ldr r1, _081353D8
- cmp r0, r1
- beq _081353A8
- mov r5, r9
- adds r7, r1, 0
- adds r4, r2, 0
-_08135394:
- ldrh r0, [r4]
- ldrb r1, [r5]
- adds r2, r6, 0
- bl sub_81350E0
- strb r0, [r5]
- adds r4, 0x2
- ldrh r0, [r4]
- cmp r0, r7
- bne _08135394
-_081353A8:
- mov r0, r9
- ldrb r1, [r0]
- cmp r1, 0
- bne _081353E4
- ldr r4, _081353CC
- ldr r1, _081353DC
- adds r0, r4, 0
- bl StringAppend
- ldr r1, _081353E0
- adds r0, r4, 0
- bl StringAppend
- b _0813543E
- .align 2, 0
-_081353C4: .4byte gPlayerParty
-_081353C8: .4byte gScriptResult
-_081353CC: .4byte gStringVar1
-_081353D0: .4byte gUnknown_0202E8CC
-_081353D4: .4byte gBattleTowerBanlist
-_081353D8: .4byte 0x0000ffff
-_081353DC: .4byte gUnknown_08400E2C
-_081353E0: .4byte gUnknown_08400E32
-_081353E4:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08135400
- ldr r0, _081353F8
- ldr r1, _081353FC
- bl StringAppend
- b _08135408
- .align 2, 0
-_081353F8: .4byte gStringVar1
-_081353FC: .4byte gUnknown_08400E2E
-_08135400:
- ldr r0, _08135414
- ldr r1, _08135418
- bl StringAppend
-_08135408:
- ldr r0, _08135414
- ldr r1, _0813541C
- bl StringAppend
- b _0813543E
- .align 2, 0
-_08135414: .4byte gStringVar1
-_08135418: .4byte gUnknown_08400E2C
-_0813541C: .4byte gUnknown_08400E36
-_08135420:
- ldr r1, _08135450
- movs r0, 0
- strh r0, [r1]
- ldr r2, _08135454
- ldrb r0, [r5]
- ldr r1, _08135458
- adds r2, r1
- movs r1, 0x1
- ands r1, r0
- ldrb r3, [r2]
- movs r0, 0x2
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
-_0813543E:
- 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
-_08135450: .4byte gUnknown_0202E8CC
-_08135454: .4byte gSaveBlock2
-_08135458: .4byte 0x00000554
- thumb_func_end sub_81352E4
-
- thumb_func_start sub_813545C
-sub_813545C: @ 813545C
- push {lr}
- adds r1, r0, 0
- ldr r0, _08135470
- movs r2, 0x2
- movs r3, 0x3
- bl sub_80EB544
- pop {r0}
- bx r0
- .align 2, 0
-_08135470: .4byte gStringVar4
- thumb_func_end sub_813545C
-
- thumb_func_start sub_8135474
-sub_8135474: @ 8135474
- push {lr}
- ldr r2, _08135490
- ldr r0, _08135494
- adds r1, r2, r0
- ldrb r0, [r1]
- cmp r0, 0xC8
- bne _08135498
- movs r1, 0x95
- lsls r1, 3
- adds r0, r2, r1
- bl sub_813545C
- b _081354C4
- .align 2, 0
-_08135490: .4byte gSaveBlock2
-_08135494: .4byte 0x00000564
-_08135498:
- cmp r0, 0x63
- bhi _081354B4
- ldrb r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- ldr r1, _081354B0
- adds r0, r1
- bl sub_813545C
- b _081354C4
- .align 2, 0
-_081354B0: .4byte gBattleTowerTrainers + 0xC
-_081354B4:
- ldrb r1, [r1]
- movs r0, 0xA4
- muls r0, r1
- ldr r3, _081354C8
- adds r1, r2, r3
- adds r0, r1
- bl sub_813545C
-_081354C4:
- pop {r0}
- bx r0
- .align 2, 0
-_081354C8: .4byte 0xffffc14c
- thumb_func_end sub_8135474
-
- thumb_func_start sub_81354CC
-sub_81354CC: @ 81354CC
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _081354E4
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _081354E8
- cmp r0, 0x1
- ble _08135520
- cmp r0, 0x2
- beq _0813551C
- b _08135520
- .align 2, 0
-_081354E4: .4byte gUnknown_0202E8CC
-_081354E8:
- movs r5, 0
-_081354EA:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08135514
- adds r0, r4, r0
- movs r1, 0xC
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- ldr r0, _08135518
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- adds r5, 0x1
- cmp r5, 0x5
- ble _081354EA
- b _08135520
- .align 2, 0
-_08135514: .4byte gSaveBlock1 + 0x238
-_08135518: .4byte gPlayerParty
-_0813551C:
- bl sub_81360D0
-_08135520:
- ldr r0, _08135530
- bl SetMainCallback2
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08135530: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_81354CC
-
- thumb_func_start sub_8135534
-sub_8135534: @ 8135534
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_811AAE8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08135558
- ldr r0, _08135560
- ldr r1, _08135564
- str r1, [r0, 0x8]
- ldr r0, _08135568
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08135558:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08135560: .4byte gMain
-_08135564: .4byte sub_81354CC
-_08135568: .4byte sub_800E7C4
- thumb_func_end sub_8135534
-
- thumb_func_start sub_813556C
-sub_813556C: @ 813556C
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _08135584
- ldrh r2, [r0]
- cmp r2, 0x1
- beq _081355AC
- cmp r2, 0x1
- bgt _08135588
- cmp r2, 0
- beq _0813558E
- b _08135648
- .align 2, 0
-_08135584: .4byte gUnknown_0202E8CC
-_08135588:
- cmp r2, 0x2
- beq _08135600
- b _08135648
-_0813558E:
- ldr r1, _081355A4
- movs r3, 0x84
- lsls r3, 1
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _081355A8
- strh r2, [r0]
- bl sub_8134DD4
- b _081355D6
- .align 2, 0
-_081355A4: .4byte gUnknown_020239F8
-_081355A8: .4byte word_202FF5E
-_081355AC:
- movs r5, 0
-_081355AE:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _081355F4
- adds r0, r4, r0
- movs r1, 0xC
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- ldr r0, _081355F8
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xC
- mov r2, sp
- bl SetMonData
- adds r5, 0x1
- cmp r5, 0x5
- ble _081355AE
-_081355D6:
- ldr r0, _081355FC
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl current_map_music_set__default_for_battle
- bl sub_8082138
- lsls r0, 24
- lsrs r0, 24
- bl sub_811AABC
- b _08135648
- .align 2, 0
-_081355F4: .4byte gPlayerParty
-_081355F8: .4byte gSaveBlock1 + 0x238
-_081355FC: .4byte sub_8135534
-_08135600:
- bl ZeroEnemyPartyMons
- movs r5, 0
-_08135606:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08135650
- adds r0, r1
- movs r1, 0x2C
- muls r1, r5
- ldr r2, _08135654
- adds r1, r2
- bl sub_803ADE8
- adds r5, 0x1
- cmp r5, 0x2
- ble _08135606
- ldr r1, _08135658
- ldr r2, _0813565C
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08135660
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08135664
- movs r1, 0x1
- bl CreateTask
- movs r0, 0
- bl current_map_music_set__default_for_battle
- bl sub_8082138
- lsls r0, 24
- lsrs r0, 24
- bl sub_811AABC
-_08135648:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08135650: .4byte gEnemyParty
-_08135654: .4byte gSaveBlock2 + 0x4CC
-_08135658: .4byte gUnknown_020239F8
-_0813565C: .4byte 0x00000808
-_08135660: .4byte word_202FF5E
-_08135664: .4byte sub_8135534
- thumb_func_end sub_813556C
-
- thumb_func_start sub_8135668
-sub_8135668: @ 8135668
- push {r4,r5,lr}
- ldr r1, _0813568C
- ldr r2, _08135690
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r4, r0, 31
- ldr r0, _08135694
- ldrh r0, [r0]
- adds r5, r1, 0
- cmp r0, 0xE
- bls _08135682
- b _0813589A
-_08135682:
- lsls r0, 2
- ldr r1, _08135698
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813568C: .4byte gSaveBlock2
-_08135690: .4byte 0x00000554
-_08135694: .4byte gUnknown_0202E8CC
-_08135698: .4byte _0813569C
- .align 2, 0
-_0813569C:
- .4byte _081356D8
- .4byte _08135700
- .4byte _0813571C
- .4byte _08135726
- .4byte _08135740
- .4byte _08135754
- .4byte _08135774
- .4byte _081357D0
- .4byte _081357FC
- .4byte _0813589A
- .4byte _08135820
- .4byte _08135834
- .4byte _0813584C
- .4byte _0813586C
- .4byte _08135888
-_081356D8:
- ldr r0, _081356F0
- ldr r3, _081356F4
- adds r1, r5, r3
- adds r1, r4, r1
- ldrb r2, [r1]
- ldr r3, _081356F8
- adds r0, r3
- strb r2, [r0]
- ldr r0, _081356FC
- ldrh r0, [r0]
- b _08135898
- .align 2, 0
-_081356F0: .4byte 0x02000000
-_081356F4: .4byte 0x00000556
-_081356F8: .4byte 0x000160fb
-_081356FC: .4byte gUnknown_0202E8CE
-_08135700:
- ldr r0, _08135714
- ldrb r0, [r0]
- ldr r1, _08135718
- adds r3, r5, r1
- movs r1, 0x1
- ands r1, r0
- ldrb r2, [r3]
- movs r0, 0x2
- negs r0, r0
- b _08135810
- .align 2, 0
-_08135714: .4byte gUnknown_0202E8CE
-_08135718: .4byte 0x00000554
-_0813571C:
- lsls r1, r4, 1
- movs r2, 0xAB
- lsls r2, 3
- adds r0, r5, r2
- b _0813572C
-_08135726:
- lsls r1, r4, 1
- ldr r3, _08135738
- adds r0, r5, r3
-_0813572C:
- adds r1, r0
- ldr r0, _0813573C
- ldrh r0, [r0]
- strh r0, [r1]
- b _0813589A
- .align 2, 0
-_08135738: .4byte 0x0000055c
-_0813573C: .4byte gUnknown_0202E8CE
-_08135740:
- ldr r0, _0813574C
- ldrh r1, [r0]
- ldr r2, _08135750
- adds r0, r5, r2
- strb r1, [r0]
- b _0813589A
- .align 2, 0
-_0813574C: .4byte gUnknown_0202E8CE
-_08135750: .4byte 0x00000564
-_08135754:
- movs r2, 0
- ldr r4, _0813576C
- ldr r3, _08135770
-_0813575A:
- adds r0, r2, r4
- adds r1, r2, r3
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x2
- ble _0813575A
- b _0813589A
- .align 2, 0
-_0813576C: .4byte gSaveBlock2 + 0x565
-_08135770: .4byte gUnknown_02039270
-_08135774:
- ldr r3, _081357C0
- adds r0, r5, r3
- ldrb r0, [r0]
- cmp r0, 0xC8
- bne _08135788
- movs r1, 0x93
- lsls r1, 3
- adds r0, r5, r1
- bl sub_81360AC
-_08135788:
- movs r3, 0xAE
- lsls r3, 3
- adds r2, r5, r3
- ldrh r1, [r2]
- ldr r0, _081357C4
- cmp r1, r0
- bhi _0813579A
- adds r0, r1, 0x1
- strh r0, [r2]
-_0813579A:
- lsls r4, 1
- movs r1, 0xAB
- lsls r1, 3
- adds r0, r5, r1
- adds r4, r0
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- bl sub_8135A3C
- ldr r1, _081357C8
- ldrh r0, [r4]
- strh r0, [r1]
- ldr r1, _081357CC
- adds r0, 0xA1
- strb r0, [r1]
- movs r0, 0xFF
- strb r0, [r1, 0x1]
- b _0813589A
- .align 2, 0
-_081357C0: .4byte 0x00000564
-_081357C4: .4byte 0x0000270e
-_081357C8: .4byte gScriptResult
-_081357CC: .4byte gStringVar1
-_081357D0:
- lsls r0, r4, 1
- ldr r2, _081357F0
- adds r1, r5, r2
- adds r4, r0, r1
- ldrh r1, [r4]
- ldr r0, _081357F4
- cmp r1, r0
- bhi _081357E4
- adds r0, r1, 0x1
- strh r0, [r4]
-_081357E4:
- bl sub_8135A3C
- ldr r1, _081357F8
- ldrh r0, [r4]
- strh r0, [r1]
- b _0813589A
- .align 2, 0
-_081357F0: .4byte 0x0000055c
-_081357F4: .4byte 0x00000595
-_081357F8: .4byte gScriptResult
-_081357FC:
- ldr r0, _08135818
- ldrb r0, [r0]
- ldr r1, _0813581C
- adds r3, r5, r1
- movs r1, 0x1
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r3]
- movs r0, 0x3
- negs r0, r0
-_08135810:
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _0813589A
- .align 2, 0
-_08135818: .4byte gUnknown_0202E8CE
-_0813581C: .4byte 0x00000554
-_08135820:
- ldr r2, _08135830
- adds r0, r5, r2
- ldrh r1, [r0]
- movs r0, 0x20
- bl sav12_xor_set
- b _0813589A
- .align 2, 0
-_08135830: .4byte 0x00000572
-_08135834:
- ldr r3, _08135848
- adds r0, r5, r3
- adds r0, r4, r0
- ldrb r0, [r0]
- cmp r0, 0x3
- beq _0813589A
- adds r0, r4, 0
- bl sub_813461C
- b _0813589A
- .align 2, 0
-_08135848: .4byte 0x00000556
-_0813584C:
- ldr r1, _08135860
- adds r0, r5, r1
- adds r0, r4, r0
- ldr r1, _08135864
- ldr r2, _08135868
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r0]
- b _0813589A
- .align 2, 0
-_08135860: .4byte 0x00000556
-_08135864: .4byte 0x02000000
-_08135868: .4byte 0x000160fb
-_0813586C:
- adds r0, r4, 0
- bl sub_8135D3C
- ldr r1, _08135880
- lsls r2, r4, 1
- ldr r3, _08135884
- adds r1, r3
- adds r2, r1
- strh r0, [r2]
- b _0813589A
- .align 2, 0
-_08135880: .4byte gSaveBlock2
-_08135884: .4byte 0x00000574
-_08135888:
- ldr r1, _081358A0
- adds r0, r5, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r0, 31
- movs r2, 0xAF
- lsls r2, 3
- adds r1, r5, r2
-_08135898:
- strb r0, [r1]
-_0813589A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081358A0: .4byte 0x00000554
- thumb_func_end sub_8135668
-
- thumb_func_start sub_81358A4
-sub_81358A4: @ 81358A4
- push {r4,lr}
- ldr r1, _081358C8
- ldr r2, _081358CC
- adds r0, r1, r2
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r4, r0, 31
- ldr r0, _081358D0
- ldrh r0, [r0]
- adds r3, r1, 0
- cmp r0, 0xE
- bls _081358BE
- b _08135A0A
-_081358BE:
- lsls r0, 2
- ldr r1, _081358D4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081358C8: .4byte gSaveBlock2
-_081358CC: .4byte 0x00000554
-_081358D0: .4byte gUnknown_0202E8CC
-_081358D4: .4byte _081358D8
- .align 2, 0
-_081358D8:
- .4byte _08135914
- .4byte _08135928
- .4byte _0813593C
- .4byte _0813594C
- .4byte _08135964
- .4byte _08135A0A
- .4byte _08135A0A
- .4byte _08135A0A
- .4byte _08135978
- .4byte _08135990
- .4byte _081359A0
- .4byte _081359B4
- .4byte _081359BC
- .4byte _081359DC
- .4byte _081359F8
-_08135914:
- ldr r0, _08135920
- ldr r2, _08135924
- adds r1, r3, r2
- adds r1, r4, r1
- b _0813596A
- .align 2, 0
-_08135920: .4byte gScriptResult
-_08135924: .4byte 0x00000556
-_08135928:
- ldr r1, _08135934
- ldr r4, _08135938
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r0, 31
- b _08135982
- .align 2, 0
-_08135934: .4byte gScriptResult
-_08135938: .4byte 0x00000554
-_0813593C:
- ldr r2, _08135948
- lsls r0, r4, 1
- movs r4, 0xAB
- lsls r4, 3
- b _08135952
- .align 2, 0
-_08135948: .4byte gScriptResult
-_0813594C:
- ldr r2, _0813595C
- lsls r0, r4, 1
- ldr r4, _08135960
-_08135952:
- adds r1, r3, r4
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- b _08135A0A
- .align 2, 0
-_0813595C: .4byte gScriptResult
-_08135960: .4byte 0x0000055c
-_08135964:
- ldr r0, _08135970
- ldr r2, _08135974
- adds r1, r3, r2
-_0813596A:
- ldrb r1, [r1]
- strh r1, [r0]
- b _08135A0A
- .align 2, 0
-_08135970: .4byte gScriptResult
-_08135974: .4byte 0x00000564
-_08135978:
- ldr r1, _08135988
- ldr r4, _0813598C
- adds r0, r3, r4
- ldrb r0, [r0]
- lsls r0, 30
-_08135982:
- lsrs r0, 31
- strh r0, [r1]
- b _08135A0A
- .align 2, 0
-_08135988: .4byte gScriptResult
-_0813598C: .4byte 0x00000554
-_08135990:
- adds r0, r4, 0
- bl sub_8135D3C
- ldr r1, _0813599C
- strh r0, [r1]
- b _08135A0A
- .align 2, 0
-_0813599C: .4byte gScriptResult
-_081359A0:
- ldr r1, _081359B0
- adds r0, r3, r1
- ldrh r1, [r0]
- movs r0, 0x20
- bl sav12_xor_set
- b _08135A0A
- .align 2, 0
-_081359B0: .4byte 0x00000572
-_081359B4:
- adds r0, r4, 0
- bl sub_813461C
- b _08135A0A
-_081359BC:
- ldr r2, _081359D0
- adds r0, r3, r2
- adds r0, r4, r0
- ldr r1, _081359D4
- ldr r3, _081359D8
- adds r1, r3
- ldrb r1, [r1]
- strb r1, [r0]
- b _08135A0A
- .align 2, 0
-_081359D0: .4byte 0x00000556
-_081359D4: .4byte 0x02000000
-_081359D8: .4byte 0x000160fb
-_081359DC:
- adds r0, r4, 0
- bl sub_8135D3C
- ldr r1, _081359F0
- lsls r2, r4, 1
- ldr r4, _081359F4
- adds r1, r4
- adds r2, r1
- strh r0, [r2]
- b _08135A0A
- .align 2, 0
-_081359F0: .4byte gSaveBlock2
-_081359F4: .4byte 0x00000574
-_081359F8:
- ldr r1, _08135A10
- adds r0, r3, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r0, 31
- movs r2, 0xAF
- lsls r2, 3
- adds r1, r3, r2
- strb r0, [r1]
-_08135A0A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08135A10: .4byte 0x00000554
- thumb_func_end sub_81358A4
-
- thumb_func_start sub_8135A14
-sub_8135A14: @ 8135A14
- push {r4,lr}
- movs r2, 0
- ldr r4, _08135A34
- ldr r3, _08135A38
-_08135A1C:
- adds r0, r2, r4
- adds r1, r2, r3
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x2
- ble _08135A1C
- bl sub_80C5604
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08135A34: .4byte gUnknown_02039270
-_08135A38: .4byte gSaveBlock2 + 0x565
- thumb_func_end sub_8135A14
-
- thumb_func_start sub_8135A3C
-sub_8135A3C: @ 8135A3C
- push {r4-r6,lr}
- ldr r6, _08135A84
- ldr r1, _08135A88
- adds r0, r6, r1
- ldrb r4, [r0]
- lsls r4, 31
- lsrs r4, 31
- adds r0, r4, 0
- bl sub_8135D3C
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r4, 1
- movs r3, 0xAC
- lsls r3, 3
- adds r2, r6, r3
- adds r4, r2
- ldrh r0, [r4]
- cmp r0, r5
- bcs _08135A66
- strh r5, [r4]
-_08135A66:
- ldr r0, _08135A8C
- adds r1, r6, r0
- ldrh r0, [r2]
- ldrh r3, [r1]
- cmp r0, r3
- bls _08135A94
- adds r5, r0, 0
- movs r0, 0x20
- adds r1, r5, 0
- bl sav12_xor_set
- ldr r1, _08135A90
- cmp r5, r1
- bhi _08135AA4
- b _08135AB4
- .align 2, 0
-_08135A84: .4byte gSaveBlock2
-_08135A88: .4byte 0x00000554
-_08135A8C: .4byte 0x00000562
-_08135A90: .4byte 0x0000270f
-_08135A94:
- ldrh r5, [r1]
- movs r0, 0x20
- adds r1, r5, 0
- bl sav12_xor_set
- ldr r1, _08135AAC
- cmp r5, r1
- bls _08135AB4
-_08135AA4:
- ldr r2, _08135AB0
- adds r0, r6, r2
- strh r1, [r0]
- b _08135ABA
- .align 2, 0
-_08135AAC: .4byte 0x0000270f
-_08135AB0: .4byte 0x00000572
-_08135AB4:
- ldr r3, _08135AC0
- adds r0, r6, r3
- strh r5, [r0]
-_08135ABA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08135AC0: .4byte 0x00000572
- thumb_func_end sub_8135A3C
-
- thumb_func_start sub_8135AC4
-sub_8135AC4: @ 8135AC4
- push {r4-r6,lr}
- ldr r5, _08135AF0
- adds r2, r5, 0
- subs r2, 0xA8
- ldr r1, _08135AF4
- adds r0, r5, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r6, r0, 31
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _08135AFC
- ldr r4, _08135AF8
- ldrb r0, [r2, 0xA]
- ldrb r1, [r2, 0xB]
- adds r0, r1
- ldrb r1, [r2, 0xC]
- adds r0, r1
- ldrb r1, [r2, 0xD]
- adds r0, r1
- movs r1, 0x14
- b _08135B0E
- .align 2, 0
-_08135AF0: .4byte gSaveBlock2 + 0xA8
-_08135AF4: .4byte 0x000004ac
-_08135AF8: .4byte gUnknown_08405E7E
-_08135AFC:
- ldr r4, _08135B84
- ldrb r0, [r2, 0xA]
- ldrb r1, [r2, 0xB]
- adds r0, r1
- ldrb r1, [r2, 0xC]
- adds r0, r1
- ldrb r1, [r2, 0xD]
- adds r0, r1
- movs r1, 0x1E
-_08135B0E:
- bl __umodsi3
- adds r0, r4
- ldrb r0, [r0]
- strb r6, [r5]
- strb r0, [r5, 0x1]
- adds r0, r5, 0
- adds r0, 0xC
- ldr r4, _08135B88
- adds r1, r4, 0
- bl sub_8052D10
- adds r0, r5, 0x4
- subs r4, 0xA
- adds r1, r4, 0
- bl StringCopy8
- adds r0, r6, 0
- bl sub_8135D3C
- strh r0, [r5, 0x2]
- ldr r0, _08135B8C
- ldr r1, _08135B90
- adds r2, r0, r1
- adds r1, r5, 0
- adds r1, 0x10
- movs r4, 0x5
-_08135B44:
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- adds r1, 0x2
- subs r4, 0x1
- cmp r4, 0
- bge _08135B44
- movs r4, 0
- ldr r6, _08135B94
-_08135B56:
- adds r0, r4, r6
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08135B98
- adds r0, r1
- movs r1, 0x2C
- muls r1, r4
- adds r1, 0x1C
- adds r1, r5, r1
- bl sub_803AF78
- adds r4, 0x1
- cmp r4, 0x2
- ble _08135B56
- ldr r0, _08135B9C
- bl sub_8135CC4
- bl sub_8135A3C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08135B84: .4byte gUnknown_08405E60
-_08135B88: .4byte gSaveBlock2 + 0xA
-_08135B8C: .4byte gSaveBlock1
-_08135B90: .4byte 0x00002b28
-_08135B94: .4byte gSaveBlock2 + 0x565
-_08135B98: .4byte gUnknown_030042FC
-_08135B9C: .4byte gSaveBlock2 + 0xA8
- thumb_func_end sub_8135AC4
-
- thumb_func_start sub_8135BA0
-sub_8135BA0: @ 8135BA0
- push {r4,r5,lr}
- ldr r2, _08135C1C
- ldr r1, _08135C20
- adds r0, r2, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r5, r0, 31
- ldr r0, _08135C24
- ldrh r0, [r0]
- cmp r0, 0x3
- beq _08135BBA
- cmp r0, 0
- bne _08135BD8
-_08135BBA:
- lsls r1, r5, 1
- ldr r3, _08135C28
- adds r0, r2, r3
- adds r0, r1, r0
- ldrh r0, [r0]
- cmp r0, 0x1
- bhi _08135BD4
- subs r3, 0x4
- adds r0, r2, r3
- adds r0, r1, r0
- ldrh r0, [r0]
- cmp r0, 0x1
- bls _08135BD8
-_08135BD4:
- bl sub_8135AC4
-_08135BD8:
- bl sub_8135CFC
- ldr r4, _08135C1C
- ldr r0, _08135C2C
- ldrb r1, [r0]
- ldr r2, _08135C30
- adds r0, r4, r2
- strb r1, [r0]
- ldr r0, _08135C24
- ldrh r1, [r0]
- cmp r1, 0x3
- beq _08135BF8
- ldr r3, _08135C34
- adds r0, r4, r3
- adds r0, r5, r0
- strb r1, [r0]
-_08135BF8:
- movs r0, 0x80
- lsls r0, 7
- movs r1, 0
- bl VarSet
- ldr r0, _08135C20
- adds r2, r4, r0
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x2
- bl sub_8125D44
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08135C1C: .4byte gSaveBlock2
-_08135C20: .4byte 0x00000554
-_08135C24: .4byte gUnknown_0202E8CC
-_08135C28: .4byte 0x0000055c
-_08135C2C: .4byte gUnknown_02024D26
-_08135C30: .4byte 0x00000555
-_08135C34: .4byte 0x00000556
- thumb_func_end sub_8135BA0
-
- thumb_func_start sub_8135C38
-sub_8135C38: @ 8135C38
- push {lr}
- bl DoSoftReset
- pop {r0}
- bx r0
- thumb_func_end sub_8135C38
-
- thumb_func_start sub_8135C44
-sub_8135C44: @ 8135C44
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r3, 0
- movs r1, 0
- ldr r2, _08135CBC
-_08135C50:
- ldm r2!, {r0}
- adds r3, r0
- adds r1, 0x1
- cmp r1, 0x27
- bls _08135C50
- ldr r5, _08135CC0
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r5, r1
- ldr r0, [r0]
- cmp r0, r3
- beq _08135C70
- adds r0, r5, 0
- adds r0, 0xA8
- bl sub_8135CE8
-_08135C70:
- movs r4, 0
- movs r7, 0xA4
- movs r0, 0xA6
- lsls r0, 1
- adds r6, r5, r0
- mov r8, r5
-_08135C7C:
- adds r0, r4, 0
- muls r0, r7
- movs r3, 0
- movs r1, 0
- adds r5, r4, 0x1
- adds r2, r0, r6
-_08135C88:
- ldm r2!, {r0}
- adds r3, r0
- adds r1, 0x1
- cmp r1, 0x27
- bls _08135C88
- adds r1, r4, 0
- muls r1, r7
- movs r0, 0xF6
- lsls r0, 1
- add r0, r8
- adds r0, r1, r0
- ldr r0, [r0]
- cmp r0, r3
- beq _08135CAA
- adds r0, r1, r6
- bl sub_8135CE8
-_08135CAA:
- adds r4, r5, 0
- cmp r4, 0x4
- ble _08135C7C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08135CBC: .4byte gSaveBlock2 + 0xA8
-_08135CC0: .4byte gSaveBlock2
- thumb_func_end sub_8135C44
-
- thumb_func_start sub_8135CC4
-sub_8135CC4: @ 8135CC4
- push {r4,lr}
- adds r2, r0, 0
- adds r2, 0xA0
- movs r1, 0
- str r1, [r2]
- movs r3, 0
- adds r4, r0, 0
-_08135CD2:
- ldr r0, [r2]
- ldm r4!, {r1}
- adds r0, r1
- str r0, [r2]
- adds r3, 0x1
- cmp r3, 0x27
- bls _08135CD2
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8135CC4
-
- thumb_func_start sub_8135CE8
-sub_8135CE8: @ 8135CE8
- push {lr}
- movs r1, 0
- movs r2, 0
-_08135CEE:
- stm r0!, {r2}
- adds r1, 0x1
- cmp r1, 0x28
- bls _08135CEE
- pop {r0}
- bx r0
- thumb_func_end sub_8135CE8
-
- thumb_func_start sub_8135CFC
-sub_8135CFC: @ 8135CFC
- push {r4,lr}
- ldr r4, _08135D34
- adds r0, r4, 0
- bl get_trainer_name
- ldr r2, _08135D38
- adds r0, r2, 0
- adds r0, 0x58
- ldrh r1, [r0]
- subs r0, r4, 0x2
- strh r1, [r0]
- ldrh r1, [r2]
- subs r0, r4, 0x4
- strh r1, [r0]
- movs r3, 0
- adds r4, 0x8
- adds r2, 0x30
-_08135D1E:
- adds r0, r3, r4
- adds r1, r3, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, 0x9
- ble _08135D1E
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08135D34: .4byte gSaveBlock2 + 0x484
-_08135D38: .4byte gBattleMons
- thumb_func_end sub_8135CFC
-
- thumb_func_start sub_8135D3C
-sub_8135D3C: @ 8135D3C
- push {lr}
- lsls r0, 24
- ldr r3, _08135D74
- lsrs r0, 23
- ldr r2, _08135D78
- adds r1, r3, r2
- adds r1, r0, r1
- ldrh r2, [r1]
- subs r2, 0x1
- lsls r1, r2, 3
- subs r1, r2
- movs r2, 0xAB
- lsls r2, 3
- adds r3, r2
- adds r0, r3
- ldr r2, _08135D7C
- adds r1, r2
- ldrh r0, [r0]
- adds r1, r0
- lsls r1, 16
- lsrs r0, r1, 16
- ldr r1, _08135D80
- cmp r0, r1
- bls _08135D6E
- adds r0, r1, 0
-_08135D6E:
- pop {r1}
- bx r1
- .align 2, 0
-_08135D74: .4byte gSaveBlock2
-_08135D78: .4byte 0x0000055c
-_08135D7C: .4byte 0x0000ffff
-_08135D80: .4byte 0x0000270f
- thumb_func_end sub_8135D3C
-
- thumb_func_start sub_8135D84
-sub_8135D84: @ 8135D84
- push {r4,r5,lr}
- ldr r5, _08135DB0
- ldr r1, _08135DB4
- adds r0, r5, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r0, 31
- lsls r0, 1
- ldr r2, _08135DB8
- adds r1, r5, r2
- adds r0, r1
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r0, 0x5
- ble _08135DC0
- bl Random
- ldr r4, _08135DBC
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x9
- b _08135DCC
- .align 2, 0
-_08135DB0: .4byte gSaveBlock2
-_08135DB4: .4byte 0x00000554
-_08135DB8: .4byte 0x0000055c
-_08135DBC: .4byte gUnknown_08405EE6
-_08135DC0:
- bl Random
- ldr r4, _08135DE8
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
-_08135DCC:
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 15
- adds r0, r4
- ldrh r1, [r0]
- movs r2, 0xAD
- lsls r2, 3
- adds r0, r5, r2
- strh r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08135DE8: .4byte gUnknown_08405EDA
- thumb_func_end sub_8135D84
-
- thumb_func_start sub_8135DEC
-sub_8135DEC: @ 8135DEC
- push {r4-r7,lr}
- ldr r5, _08135E20
- ldr r1, _08135E24
- adds r0, r5, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r7, r0, 31
- movs r0, 0xAD
- lsls r0, 3
- adds r6, r5, r0
- ldrh r0, [r6]
- movs r1, 0x1
- bl sub_80A9424
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bne _08135E30
- ldrh r0, [r6]
- ldr r1, _08135E28
- bl itemid_copy_name
- ldr r0, _08135E2C
- strh r4, [r0]
- b _08135E40
- .align 2, 0
-_08135E20: .4byte gSaveBlock2
-_08135E24: .4byte 0x00000554
-_08135E28: .4byte gStringVar1
-_08135E2C: .4byte gScriptResult
-_08135E30:
- ldr r1, _08135E48
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08135E4C
- adds r0, r5, r1
- adds r0, r7, r0
- movs r1, 0x6
- strb r1, [r0]
-_08135E40:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08135E48: .4byte gScriptResult
-_08135E4C: .4byte 0x00000556
- thumb_func_end sub_8135DEC
-
- thumb_func_start sub_8135E50
-sub_8135E50: @ 8135E50
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r6, _08135ED4
- ldr r1, _08135ED8
- adds r0, r6, r1
- ldrb r0, [r0]
- lsls r0, 31
- lsrs r0, 31
- adds r1, r0, 0
- movs r7, 0x44
- cmp r1, 0
- beq _08135E6C
- movs r7, 0x45
-_08135E6C:
- ldr r4, _08135EDC
- movs r0, 0
- strh r0, [r4]
- adds r0, r1, 0
- bl sub_8135D3C
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x37
- bls _08135EBA
- movs r5, 0
- ldr r0, _08135EE0
- adds r0, r6
- mov r8, r0
- adds r6, r4, 0
-_08135E8A:
- mov r1, r8
- adds r0, r5, r1
- ldrb r0, [r0]
- subs r0, 0x1
- movs r1, 0x64
- muls r1, r0
- ldr r0, _08135EE4
- adds r4, r1, r0
- adds r0, r4, 0
- adds r1, r7, 0
- bl GetMonData
- cmp r0, 0
- bne _08135EB4
- movs r0, 0x1
- strh r0, [r6]
- adds r0, r4, 0
- adds r1, r7, 0
- adds r2, r6, 0
- bl SetMonData
-_08135EB4:
- adds r5, 0x1
- cmp r5, 0x2
- ble _08135E8A
-_08135EBA:
- ldr r0, _08135EDC
- ldrh r0, [r0]
- cmp r0, 0
- beq _08135EC8
- movs r0, 0x2A
- bl sav12_xor_increment
-_08135EC8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08135ED4: .4byte gSaveBlock2
-_08135ED8: .4byte 0x00000554
-_08135EDC: .4byte gScriptResult
-_08135EE0: .4byte 0x00000565
-_08135EE4: .4byte gPlayerParty
- thumb_func_end sub_8135E50
-
- thumb_func_start unref_sub_8135EE8
-unref_sub_8135EE8: @ 8135EE8
- push {r4-r7,lr}
- ldr r7, _08135F0C
- ldr r0, _08135F10
- adds r2, r7, r0
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _08135F18
- ldr r4, _08135F14
- ldrb r0, [r2, 0xA]
- ldrb r1, [r2, 0xB]
- adds r0, r1
- ldrb r1, [r2, 0xC]
- adds r0, r1
- ldrb r1, [r2, 0xD]
- adds r0, r1
- movs r1, 0x14
- b _08135F2A
- .align 2, 0
-_08135F0C: .4byte gSaveBlock2 + 0x498
-_08135F10: .4byte 0xfffffb68
-_08135F14: .4byte gUnknown_08405E7E
-_08135F18:
- ldr r4, _08135FA8
- ldrb r0, [r2, 0xA]
- ldrb r1, [r2, 0xB]
- adds r0, r1
- ldrb r1, [r2, 0xC]
- adds r0, r1
- ldrb r1, [r2, 0xD]
- adds r0, r1
- movs r1, 0x1E
-_08135F2A:
- bl __umodsi3
- adds r0, r4
- ldrb r0, [r0]
- strb r0, [r7, 0x1]
- adds r0, r7, 0
- adds r0, 0xC
- ldr r4, _08135FAC
- adds r1, r4, 0
- bl sub_8052D10
- adds r0, r7, 0x4
- subs r4, 0xA
- adds r1, r4, 0
- bl StringCopy8
- movs r0, 0x1
- strh r0, [r7, 0x2]
- movs r5, 0x7
- movs r4, 0
- ldr r0, _08135FB0
- ldr r1, _08135FB4
- adds r6, r0, r1
- adds r3, r7, 0
- adds r3, 0x10
- adds r2, r7, 0
- adds r2, 0x28
- adds r1, r7, 0
- adds r1, 0x1C
-_08135F64:
- ldrh r0, [r6]
- strh r0, [r3]
- strh r5, [r1]
- adds r0, r5, 0x6
- strh r0, [r2]
- adds r5, 0x1
- adds r6, 0x2
- adds r3, 0x2
- adds r2, 0x2
- adds r1, 0x2
- adds r4, 0x1
- cmp r4, 0x5
- ble _08135F64
- movs r4, 0
-_08135F80:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _08135FB8
- adds r0, r1
- movs r1, 0x2C
- muls r1, r4
- adds r1, 0x34
- adds r1, r7, r1
- bl sub_803AF78
- adds r4, 0x1
- cmp r4, 0x2
- ble _08135F80
- adds r0, r7, 0
- bl sub_8136088
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08135FA8: .4byte gUnknown_08405E60
-_08135FAC: .4byte gSaveBlock2 + 0xA
-_08135FB0: .4byte gSaveBlock1
-_08135FB4: .4byte 0x00002b28
-_08135FB8: .4byte gPlayerParty
- thumb_func_end unref_sub_8135EE8
-
- thumb_func_start sub_8135FBC
-sub_8135FBC: @ 8135FBC
- ldr r1, _08135FCC
- ldr r0, _08135FD0
- ldr r2, _08135FD4
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08135FCC: .4byte gTrainerClassToPicIndex
-_08135FD0: .4byte gSaveBlock2
-_08135FD4: .4byte 0x00000499
- thumb_func_end sub_8135FBC
-
- thumb_func_start sub_8135FD8
-sub_8135FD8: @ 8135FD8
- ldr r1, _08135FE8
- ldr r0, _08135FEC
- ldr r2, _08135FF0
- adds r0, r2
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08135FE8: .4byte gTrainerClassToNameIndex
-_08135FEC: .4byte gSaveBlock2
-_08135FF0: .4byte 0x00000499
- thumb_func_end sub_8135FD8
-
- thumb_func_start sub_8135FF4
-sub_8135FF4: @ 8135FF4
- push {r4,lr}
- adds r3, r0, 0
- movs r2, 0
- ldr r4, _08136018
-_08135FFC:
- adds r0, r3, r2
- adds r1, r2, r4
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x6
- ble _08135FFC
- adds r1, r3, r2
- movs r0, 0xFF
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136018: .4byte gSaveBlock2 + 0x49C
- thumb_func_end sub_8135FF4
-
- thumb_func_start sub_813601C
-sub_813601C: @ 813601C
- push {r4,r5,lr}
- ldr r1, _08136044
- movs r0, 0
- strh r0, [r1]
- ldr r5, _08136048
- movs r3, 0
- movs r2, 0
- adds r4, r1, 0
- adds r1, r5, 0
-_0813602E:
- ldm r1!, {r0}
- orrs r3, r0
- adds r2, 0x1
- cmp r2, 0x2D
- bls _0813602E
- cmp r3, 0
- bne _0813604C
- movs r0, 0x1
- strh r0, [r4]
- b _08136078
- .align 2, 0
-_08136044: .4byte gScriptResult
-_08136048: .4byte gSaveBlock2 + 0x498
-_0813604C:
- movs r3, 0
- movs r2, 0
- ldr r4, _08136080
- adds r1, r5, 0
-_08136054:
- ldm r1!, {r0}
- adds r3, r0
- adds r2, 0x1
- cmp r2, 0x2D
- bls _08136054
- movs r1, 0xAA
- lsls r1, 3
- adds r0, r4, r1
- ldr r0, [r0]
- cmp r0, r3
- beq _08136078
- subs r1, 0xB8
- adds r0, r4, r1
- bl sub_81360AC
- ldr r1, _08136084
- movs r0, 0x1
- strh r0, [r1]
-_08136078:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08136080: .4byte gSaveBlock2
-_08136084: .4byte gScriptResult
- thumb_func_end sub_813601C
-
- thumb_func_start sub_8136088
-sub_8136088: @ 8136088
- push {r4,lr}
- adds r2, r0, 0
- adds r2, 0xB8
- movs r1, 0
- str r1, [r2]
- movs r3, 0
- adds r4, r0, 0
-_08136096:
- ldr r0, [r2]
- ldm r4!, {r1}
- adds r0, r1
- str r0, [r2]
- adds r3, 0x1
- cmp r3, 0x2D
- bls _08136096
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8136088
-
- thumb_func_start sub_81360AC
-sub_81360AC: @ 81360AC
- push {lr}
- movs r1, 0
- movs r2, 0
-_081360B2:
- stm r0!, {r2}
- adds r1, 0x1
- cmp r1, 0x2E
- bls _081360B2
- pop {r0}
- bx r0
- thumb_func_end sub_81360AC
-
- thumb_func_start sub_81360C0
-sub_81360C0: @ 81360C0
- push {lr}
- ldr r0, _081360CC
- bl sub_813545C
- pop {r0}
- bx r0
- .align 2, 0
-_081360CC: .4byte gSaveBlock2 + 0x4A8
- thumb_func_end sub_81360C0
-
- thumb_func_start sub_81360D0
-sub_81360D0: @ 81360D0
- push {lr}
- ldr r0, _081360E4
- ldrb r0, [r0]
- cmp r0, 0x3
- bne _081360EC
- ldr r1, _081360E8
- movs r0, 0xFF
- strb r0, [r1]
- b _08136102
- .align 2, 0
-_081360E4: .4byte gUnknown_02024D26
-_081360E8: .4byte gStringVar4
-_081360EC:
- cmp r0, 0x1
- bne _081360FC
- ldr r0, _081360F8
- bl sub_813545C
- b _08136102
- .align 2, 0
-_081360F8: .4byte gSaveBlock2 + 0x4C0
-_081360FC:
- ldr r0, _08136108
- bl sub_813545C
-_08136102:
- pop {r0}
- bx r0
- .align 2, 0
-_08136108: .4byte gSaveBlock2 + 0x4B4
- thumb_func_end sub_81360D0
-
- thumb_func_start sub_813610C
-sub_813610C: @ 813610C
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _0813612C
-_08136112:
- adds r0, r4, r5
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0813611E
- bl sub_80BFD20
-_0813611E:
- adds r4, 0x1
- cmp r4, 0x1
- ble _08136112
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813612C: .4byte gSaveBlock2 + 0x556
- thumb_func_end sub_813610C
-
- thumb_func_start sub_8136130
-sub_8136130: @ 8136130
- push {r4,r5,lr}
- ldr r4, _0813615C
- ldr r2, _08136160
- ldr r3, [r2]
- ldr r5, _08136164
- adds r2, r3, r5
- str r2, [r4]
- str r0, [r2, 0x8]
- str r1, [r2, 0x4]
- ldr r0, _08136168
- adds r3, r0
- movs r0, 0x2
- strb r0, [r3]
- ldr r0, _0813616C
- bl launch_c3_walk_stairs_and_run_once
- ldr r0, _08136170
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813615C: .4byte gUnknown_02039304
-_08136160: .4byte gUnknown_083DFEC4
-_08136164: .4byte 0x0000d164
-_08136168: .4byte 0x0000d162
-_0813616C: .4byte sub_8136294
-_08136170: .4byte sub_8136244
- thumb_func_end sub_8136130
-
- thumb_func_start sub_8136174
-sub_8136174: @ 8136174
- push {r4,r5,lr}
- ldr r5, _081361C4
- ldr r1, [r5]
- ldr r0, _081361C8
- ldr r0, [r0]
- str r0, [r1, 0x8]
- ldr r0, _081361CC
- ldr r0, [r0]
- str r0, [r1, 0x4]
- ldr r4, _081361D0
- ldrb r0, [r4]
- bl sub_81370E4
- strb r0, [r4]
- ldr r5, [r5]
- movs r1, 0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _0813619E
- movs r1, 0x1
-_0813619E:
- adds r0, r5, 0
- adds r0, 0x56
- strb r1, [r0]
- ldr r0, _081361D4
- ldr r0, [r0]
- ldr r1, _081361D8
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- ldr r0, _081361DC
- bl launch_c3_walk_stairs_and_run_once
- ldr r0, _081361E0
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081361C4: .4byte gUnknown_02039304
-_081361C8: .4byte gUnknown_0203930C
-_081361CC: .4byte gUnknown_02039308
-_081361D0: .4byte gUnknown_02039310
-_081361D4: .4byte gUnknown_083DFEC4
-_081361D8: .4byte 0x0000d162
-_081361DC: .4byte sub_8136294
-_081361E0: .4byte sub_81361E4
- thumb_func_end sub_8136174
-
- thumb_func_start sub_81361E4
-sub_81361E4: @ 81361E4
- push {r4,lr}
- ldr r4, _08136220
- ldr r0, [r4]
- ldr r0, [r0]
- bl _call_via_r0
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- ldr r4, [r4]
- ldr r1, [r4]
- ldr r0, _08136224
- cmp r1, r0
- bne _0813621A
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, r4, 0
- adds r0, 0x50
- strb r1, [r0]
- ldr r0, _08136228
- bl SetMainCallback2
-_0813621A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136220: .4byte gUnknown_02039304
-_08136224: .4byte sub_81365C8
-_08136228: .4byte sub_813622C
- thumb_func_end sub_81361E4
-
- thumb_func_start sub_813622C
-sub_813622C: @ 813622C
- push {lr}
- bl sub_81368A4
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_813622C
-
- thumb_func_start sub_8136244
-sub_8136244: @ 8136244
- push {lr}
- ldr r0, _08136260
- ldr r0, [r0]
- ldr r0, [r0]
- bl _call_via_r0
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- .align 2, 0
-_08136260: .4byte gUnknown_02039304
- thumb_func_end sub_8136244
-
- thumb_func_start sub_8136264
-sub_8136264: @ 8136264
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- movs r0, 0x6
- bl sub_80F5CDC
- bl sub_8089668
- pop {r0}
- bx r0
- thumb_func_end sub_8136264
-
- thumb_func_start launch_c3_walk_stairs_and_run_once
-launch_c3_walk_stairs_and_run_once: @ 8136280
- ldr r1, _08136290
- ldr r1, [r1]
- str r0, [r1]
- adds r1, 0x50
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08136290: .4byte gUnknown_02039304
- thumb_func_end launch_c3_walk_stairs_and_run_once
-
- thumb_func_start sub_8136294
-sub_8136294: @ 8136294
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r1, _081362B4
- ldr r0, [r1]
- adds r0, 0x50
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x16
- bls _081362A8
- b _0813657A
-_081362A8:
- lsls r0, 2
- ldr r1, _081362B8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081362B4: .4byte gUnknown_02039304
-_081362B8: .4byte _081362BC
- .align 2, 0
-_081362BC:
- .4byte _08136318
- .4byte _08136354
- .4byte _0813635E
- .4byte _08136366
- .4byte _08136374
- .4byte _08136380
- .4byte _0813638C
- .4byte _081363B8
- .4byte _081363C8
- .4byte _081363DC
- .4byte _081363EE
- .4byte _08136404
- .4byte _08136448
- .4byte _08136464
- .4byte _08136488
- .4byte _08136494
- .4byte _0813649A
- .4byte _081364D8
- .4byte _081364FC
- .4byte _08136508
- .4byte _08136520
- .4byte _08136538
- .4byte _0813656C
-_08136318:
- bl is_c1_link_related_active
- ldr r1, _08136344
- ldr r1, [r1]
- ldr r2, _08136348
- adds r1, r2
- strb r0, [r1]
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _08136330
- b _0813657A
-_08136330:
- ldr r4, _0813634C
- ldr r0, [r4]
- adds r0, 0x55
- strb r1, [r0]
- ldr r0, _08136350
- bl launch_c3_walk_stairs_and_run_once
- ldr r1, [r4]
- b _08136528
- .align 2, 0
-_08136344: .4byte gUnknown_083DFEC4
-_08136348: .4byte 0x00006dac
-_0813634C: .4byte gUnknown_02039304
-_08136350: .4byte sub_81365A0
-_08136354:
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- b _08136524
-_0813635E:
- movs r0, 0
- bl SetVBlankCallback
- b _08136524
-_08136366:
- ldr r0, _08136370
- bl SetUpWindowConfig
- b _08136524
- .align 2, 0
-_08136370: .4byte gWindowConfig_81E7080
-_08136374:
- ldr r0, _0813637C
- bl MultistepInitMenuWindowBegin
- b _08136524
- .align 2, 0
-_0813637C: .4byte gWindowConfig_81E7080
-_08136380:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _0813638A
- b _0813657A
-_0813638A:
- b _08136524
-_0813638C:
- ldr r0, _081363AC
- ldr r1, [r0]
- ldr r4, _081363B0
- adds r0, r1, r4
- movs r2, 0
- strb r2, [r0]
- ldr r4, _081363B4
- adds r0, r1, r4
- str r2, [r0]
- movs r0, 0xC3
- lsls r0, 2
- adds r1, r0
- movs r0, 0x20
- strh r0, [r1]
- ldr r1, [r3]
- b _08136528
- .align 2, 0
-_081363AC: .4byte gUnknown_083DFEC4
-_081363B0: .4byte 0x000076aa
-_081363B4: .4byte 0x000087e0
-_081363B8:
- bl sub_80F2688
- ldr r0, _081363D8
- ldr r1, [r0]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_081363C8:
- bl sub_80F26BC
- lsls r0, 24
- cmp r0, 0
- beq _081363D4
- b _0813657A
-_081363D4:
- b _08136524
- .align 2, 0
-_081363D8: .4byte gUnknown_02039304
-_081363DC:
- movs r0, 0x1
- bl sub_80F2C80
- ldr r0, _08136400
- ldr r1, [r0]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_081363EE:
- movs r0, 0x1
- bl sub_80F2CBC
- lsls r0, 24
- cmp r0, 0
- beq _081363FC
- b _0813657A
-_081363FC:
- b _08136524
- .align 2, 0
-_08136400: .4byte gUnknown_02039304
-_08136404:
- ldr r1, _08136434
- movs r0, 0x14
- strh r0, [r1]
- bl CalculatePlayerPartyCount
- ldr r1, _08136438
- ldr r4, [r1]
- ldr r2, _0813643C
- adds r1, r4, r2
- movs r5, 0
- strb r0, [r1]
- ldr r1, _08136440
- adds r0, r4, r1
- strb r5, [r0]
- subs r2, 0xC0
- adds r0, r4, r2
- str r5, [r0]
- bl sub_80F4BD0
- ldr r0, _08136444
- adds r4, r0
- strh r5, [r4]
- b _08136524
- .align 2, 0
-_08136434: .4byte gKeyRepeatStartDelay
-_08136438: .4byte gUnknown_083DFEC4
-_0813643C: .4byte 0x00008828
-_08136440: .4byte 0x00009344
-_08136444: .4byte 0x0000d160
-_08136448:
- bl sub_80F1778
- lsls r0, 24
- cmp r0, 0
- beq _08136454
- b _0813657A
-_08136454:
- ldr r0, _08136460
- movs r1, 0x6
- strh r1, [r0]
- adds r0, 0x4
- strh r1, [r0]
- b _08136524
- .align 2, 0
-_08136460: .4byte REG_BG2VOFS
-_08136464:
- movs r0, 0
- bl sub_80F2E18
- ldr r0, _0813647C
- ldr r0, [r0]
- ldr r1, _08136480
- adds r0, r1
- ldr r1, [r0]
- ldr r0, _08136484
- strh r0, [r1, 0x26]
- b _08136524
- .align 2, 0
-_0813647C: .4byte gUnknown_083DFEC4
-_08136480: .4byte 0x00008768
-_08136484: .4byte 0x0000ffd8
-_08136488:
- bl sub_80F170C
- lsls r0, 24
- cmp r0, 0
- bne _0813657A
- b _08136524
-_08136494:
- bl sub_80F33A8
- b _08136524
-_0813649A:
- ldr r1, _081364C4
- movs r2, 0
- str r2, [sp]
- ldr r0, _081364C8
- mov r4, sp
- str r4, [r0]
- str r1, [r0, 0x4]
- ldr r1, _081364CC
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r0, _081364D0
- strh r2, [r0]
- subs r0, 0x2
- strh r2, [r0]
- ldr r1, _081364D4
- movs r2, 0xF8
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, [r3]
- b _08136528
- .align 2, 0
-_081364C4: .4byte 0x0600f800
-_081364C8: .4byte 0x040000d4
-_081364CC: .4byte 0x85000200
-_081364D0: .4byte REG_BG1VOFS
-_081364D4: .4byte REG_BG1CNT
-_081364D8:
- ldr r0, _081364F0
- ldr r1, [r0]
- ldr r4, _081364F4
- adds r0, r1, r4
- ldr r2, _081364F8
- adds r1, r2
- bl sub_80F567C
- bl sub_80F5B38
- b _08136524
- .align 2, 0
-_081364F0: .4byte gUnknown_083DFEC4
-_081364F4: .4byte 0x00008ff0
-_081364F8: .4byte 0x00009004
-_081364FC:
- bl sub_80F5B50
- lsls r0, 24
- cmp r0, 0
- bne _0813657A
- b _08136524
-_08136508:
- ldr r0, _08136518
- ldr r0, [r0]
- ldr r4, _0813651C
- adds r0, r4
- bl sub_80F556C
- b _08136524
- .align 2, 0
-_08136518: .4byte gUnknown_083DFEC4
-_0813651C: .4byte 0x00009004
-_08136520:
- bl sub_80F1934
-_08136524:
- ldr r0, _08136534
- ldr r1, [r0]
-_08136528:
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0813657A
- .align 2, 0
-_08136534: .4byte gUnknown_02039304
-_08136538:
- ldr r1, _08136584
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x9B
- strh r0, [r1]
- ldr r0, _08136588
- ldr r2, _0813658C
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r1, _08136590
- ldr r4, _08136594
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1B
- strh r0, [r1]
- subs r1, 0x38
- movs r0, 0x28
- strh r0, [r1]
- subs r1, 0x12
- ldr r2, _08136598
- adds r0, r2, 0
- strh r0, [r1]
-_0813656C:
- ldr r0, [r3]
- adds r0, 0x55
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _0813659C
- bl launch_c3_walk_stairs_and_run_once
-_0813657A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08136584: .4byte REG_WIN0H
-_08136588: .4byte REG_WIN0V
-_0813658C: .4byte 0x00003273
-_08136590: .4byte REG_WININ
-_08136594: .4byte 0x00003f3f
-_08136598: .4byte 0x00007f40
-_0813659C: .4byte sub_81365C8
- thumb_func_end sub_8136294
-
- thumb_func_start sub_81365A0
-sub_81365A0: @ 81365A0
- push {r4,lr}
- ldr r1, _081365C4
- ldr r0, [r1]
- adds r0, 0x55
- ldrb r0, [r0]
- cmp r0, 0
- bne _081365BE
- adds r4, r1, 0
-_081365B0:
- bl sub_8136294
- ldr r0, [r4]
- adds r0, 0x55
- ldrb r0, [r0]
- cmp r0, 0
- beq _081365B0
-_081365BE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081365C4: .4byte gUnknown_02039304
- thumb_func_end sub_81365A0
-
- thumb_func_start sub_81365C8
-sub_81365C8: @ 81365C8
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _081365E0
- ldr r0, [r4]
- adds r0, 0x50
- ldrb r1, [r0]
- cmp r1, 0
- beq _081365E4
- cmp r1, 0x1
- beq _0813660C
- b _08136626
- .align 2, 0
-_081365E0: .4byte gUnknown_02039304
-_081365E4:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _08136608
- bl SetVBlankCallback
- ldr r1, [r4]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08136626
- .align 2, 0
-_08136608: .4byte sub_8136264
-_0813660C:
- ldr r0, _08136630
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08136626
- bl sub_80F3C94
- bl sub_80F3D00
- ldr r0, _08136634
- bl launch_c3_walk_stairs_and_run_once
-_08136626:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136630: .4byte gPaletteFade
-_08136634: .4byte sub_8136638
- thumb_func_end sub_81365C8
-
- thumb_func_start sub_8136638
-sub_8136638: @ 8136638
- push {r4,lr}
- ldr r0, _08136654
- ldr r0, [r0]
- adds r0, 0x50
- ldrb r0, [r0]
- cmp r0, 0x7
- bls _08136648
- b _081367FA
-_08136648:
- lsls r0, 2
- ldr r1, _08136658
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08136654: .4byte gUnknown_02039304
-_08136658: .4byte _0813665C
- .align 2, 0
-_0813665C:
- .4byte _0813667C
- .4byte _08136748
- .4byte _08136754
- .4byte _08136774
- .4byte _081367FA
- .4byte _08136780
- .4byte _08136798
- .4byte _081367E0
-_0813667C:
- ldr r2, _081366A4
- ldrh r1, [r2, 0x2C]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _081366AC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_80F5060
- bl move_anim_execute
- ldr r0, _081366A8
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x1
- b _081367F8
- .align 2, 0
-_081366A4: .4byte gMain
-_081366A8: .4byte gUnknown_02039304
-_081366AC:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081366D4
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl sub_80F5060
- bl move_anim_execute
- ldr r0, _081366D0
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x1
- b _081367F8
- .align 2, 0
-_081366D0: .4byte gUnknown_02039304
-_081366D4:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081366F4
- movs r0, 0x5
- bl PlaySE
- ldr r0, _081366F0
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x3
- b _081367F8
- .align 2, 0
-_081366F0: .4byte gUnknown_02039304
-_081366F4:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081366FE
- b _081367FA
-_081366FE:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08136728
- ldr r0, [r0]
- ldr r2, _0813672C
- adds r1, r0, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- ldr r2, _08136730
- adds r0, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- subs r0, 0x1
- cmp r1, r0
- bne _08136738
- ldr r0, _08136734
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x3
- b _081367F8
- .align 2, 0
-_08136728: .4byte gUnknown_083DFEC4
-_0813672C: .4byte 0x000087dc
-_08136730: .4byte 0x000087da
-_08136734: .4byte gUnknown_02039304
-_08136738:
- ldr r0, _08136744
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x5
- b _081367F8
- .align 2, 0
-_08136744: .4byte gUnknown_02039304
-_08136748:
- bl gpu_sync_bg_show
- lsls r0, 24
- cmp r0, 0
- bne _081367FA
- b _08136784
-_08136754:
- bl sub_8055870
- adds r4, r0, 0
- cmp r4, 0
- bne _081367FA
- bl sub_80F1934
- bl sub_80F3D00
- ldr r0, _08136770
- ldr r0, [r0]
- adds r0, 0x50
- strb r4, [r0]
- b _081367FA
- .align 2, 0
-_08136770: .4byte gUnknown_02039304
-_08136774:
- ldr r0, _0813677C
- bl launch_c3_walk_stairs_and_run_once
- b _081367FA
- .align 2, 0
-_0813677C: .4byte sub_8136B44
-_08136780:
- bl sub_8136BB8
-_08136784:
- ldr r0, _08136794
- ldr r1, [r0]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081367FA
- .align 2, 0
-_08136794: .4byte gUnknown_02039304
-_08136798:
- bl sub_8136C40
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _081367B8
- cmp r1, 0
- bgt _081367B2
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _081367F0
- b _081367FA
-_081367B2:
- cmp r1, 0x1
- bne _081367FA
- b _081367F0
-_081367B8:
- bl sub_8137058
- lsls r0, 24
- cmp r0, 0
- beq _081367D4
- bl sub_8136D60
- ldr r0, _081367D0
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0x7
- b _081367F8
- .align 2, 0
-_081367D0: .4byte gUnknown_02039304
-_081367D4:
- ldr r0, _081367DC
- bl launch_c3_walk_stairs_and_run_once
- b _081367FA
- .align 2, 0
-_081367DC: .4byte sub_8136808
-_081367E0:
- ldr r0, _08136800
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _081367FA
- bl sub_8136D8C
-_081367F0:
- ldr r0, _08136804
- ldr r0, [r0]
- adds r0, 0x50
- movs r1, 0
-_081367F8:
- strb r1, [r0]
-_081367FA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136800: .4byte gMain
-_08136804: .4byte gUnknown_02039304
- thumb_func_end sub_8136638
-
- thumb_func_start sub_8136808
-sub_8136808: @ 8136808
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _08136820
- ldr r0, [r5]
- adds r0, 0x50
- ldrb r4, [r0]
- cmp r4, 0
- beq _08136824
- cmp r4, 0x1
- beq _08136874
- b _0813688C
- .align 2, 0
-_08136820: .4byte gUnknown_02039304
-_08136824:
- ldr r0, _08136860
- ldr r0, [r0]
- ldr r1, _08136864
- adds r0, r1
- ldrb r0, [r0]
- bl sub_81370A4
- ldr r1, _08136868
- strb r0, [r1]
- ldr r1, _0813686C
- ldr r2, [r5]
- ldr r0, [r2, 0x4]
- str r0, [r1]
- ldr r1, _08136870
- ldr r0, [r2, 0x8]
- str r0, [r1]
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, [r5]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0813688C
- .align 2, 0
-_08136860: .4byte gUnknown_083DFEC4
-_08136864: .4byte 0x000087dc
-_08136868: .4byte gUnknown_02039310
-_0813686C: .4byte gUnknown_02039308
-_08136870: .4byte gUnknown_0203930C
-_08136874:
- ldr r0, _08136894
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0813688C
- ldr r0, _08136898
- ldr r1, _0813689C
- str r1, [r0, 0x8]
- ldr r0, _081368A0
- bl SetMainCallback2
-_0813688C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08136894: .4byte gPaletteFade
-_08136898: .4byte gMain
-_0813689C: .4byte sub_8136174
-_081368A0: .4byte sub_8147ADC
- thumb_func_end sub_8136808
-
- thumb_func_start sub_81368A4
-sub_81368A4: @ 81368A4
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _081368C4
- ldr r0, [r1]
- adds r0, 0x50
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x6
- bls _081368B8
- b _081369B8
-_081368B8:
- lsls r0, 2
- ldr r1, _081368C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081368C4: .4byte gUnknown_02039304
-_081368C8: .4byte _081368CC
- .align 2, 0
-_081368CC:
- .4byte _081368E8
- .4byte _08136922
- .4byte _0813692E
- .4byte _0813694C
- .4byte _0813695A
- .4byte _0813696C
- .4byte _08136998
-_081368E8:
- ldr r0, _0813690C
- ldr r0, [r0]
- ldr r1, _08136910
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldr r0, _08136914
- ldrb r0, [r0]
- cmp r1, r0
- beq _08136918
- ldr r0, [r4]
- adds r0, 0x56
- ldrb r0, [r0]
- bl sub_80F5060
- ldr r1, [r4]
- b _08136986
- .align 2, 0
-_0813690C: .4byte gUnknown_083DFEC4
-_08136910: .4byte 0x000087dc
-_08136914: .4byte gUnknown_02039310
-_08136918:
- ldr r0, [r4]
- adds r0, 0x50
- movs r1, 0x3
- strb r1, [r0]
- b _081369B8
-_08136922:
- bl gpu_sync_bg_show
- lsls r0, 24
- cmp r0, 0
- bne _081369B8
- b _08136982
-_0813692E:
- bl sub_8055870
- adds r4, r0, 0
- cmp r4, 0
- bne _081369B8
- bl sub_80F1934
- ldr r0, _08136948
- ldr r0, [r0]
- adds r0, 0x50
- strb r4, [r0]
- b _081369B8
- .align 2, 0
-_08136948: .4byte gUnknown_02039304
-_0813694C:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- b _08136982
-_0813695A:
- movs r1, 0x80
- lsls r1, 19
- ldr r2, _08136968
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, [r4]
- b _08136986
- .align 2, 0
-_08136968: .4byte 0x00007f40
-_0813696C:
- ldr r0, _08136990
- bl SetVBlankCallback
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_08136982:
- ldr r0, _08136994
- ldr r1, [r0]
-_08136986:
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081369B8
- .align 2, 0
-_08136990: .4byte sub_8136264
-_08136994: .4byte gUnknown_02039304
-_08136998:
- ldr r0, _081369C0
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081369B8
- bl sub_80F3C94
- bl sub_80F3D00
- ldr r0, _081369C4
- bl launch_c3_walk_stairs_and_run_once
- ldr r0, _081369C8
- bl SetMainCallback2
-_081369B8:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081369C0: .4byte gPaletteFade
-_081369C4: .4byte sub_81369CC
-_081369C8: .4byte sub_8136244
- thumb_func_end sub_81368A4
-
- thumb_func_start sub_81369CC
-sub_81369CC: @ 81369CC
- push {r4-r6,lr}
- ldr r1, _081369E8
- ldr r0, [r1]
- adds r0, 0x50
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x5
- bls _081369DE
- b _08136B32
-_081369DE:
- lsls r0, 2
- ldr r1, _081369EC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081369E8: .4byte gUnknown_02039304
-_081369EC: .4byte _081369F0
- .align 2, 0
-_081369F0:
- .4byte _08136A08
- .4byte _08136A48
- .4byte _08136A5C
- .4byte _08136AAC
- .4byte _08136AEC
- .4byte _08136B0E
-_08136A08:
- ldr r3, [r4]
- ldr r2, _08136A38
- str r2, [r3, 0xC]
- ldr r0, _08136A3C
- ldr r1, [r0]
- ldr r5, _08136A40
- adds r0, r1, r5
- movs r5, 0
- ldrsh r0, [r0, r5]
- lsls r0, 2
- adds r1, r0
- ldr r0, _08136A44
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 27
- lsrs r0, 27
- movs r1, 0x64
- muls r0, r1
- adds r0, r2
- str r0, [r3, 0xC]
- bl move_anim_execute
- b _08136B02
- .align 2, 0
-_08136A38: .4byte gPlayerParty
-_08136A3C: .4byte gUnknown_083DFEC4
-_08136A40: .4byte 0x000087dc
-_08136A44: .4byte 0x0000893e
-_08136A48:
- ldr r0, _08136A58
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08136B32
- b _08136B02
- .align 2, 0
-_08136A58: .4byte gMain
-_08136A5C:
- bl sub_8136EF0
- ldr r6, _08136A98
- ldr r0, [r6]
- adds r0, 0x5C
- ldr r1, _08136A9C
- ldr r4, [r1]
- ldr r1, _08136AA0
- adds r5, r4, r1
- adds r1, r5, 0
- bl sub_80F567C
- ldr r1, _08136AA4
- adds r0, r4, r1
- movs r1, 0
- ldrsb r1, [r0, r1]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- ldr r1, _08136AA8
- adds r0, r1
- adds r4, r0
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80F5550
- bl sub_8137138
- ldr r1, [r6]
- b _08136B04
- .align 2, 0
-_08136A98: .4byte gUnknown_02039304
-_08136A9C: .4byte gUnknown_083DFEC4
-_08136AA0: .4byte 0x00009040
-_08136AA4: .4byte 0x00008fe9
-_08136AA8: .4byte 0x00009004
-_08136AAC:
- bl sub_80F555C
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08136B32
- ldr r0, _08136AE0
- ldr r0, [r0]
- ldr r5, _08136AE4
- adds r0, r5
- ldrb r0, [r0]
- bl sub_81370A4
- lsls r0, 24
- lsrs r0, 24
- bl sub_80F7224
- bl sub_80F3D00
- ldr r1, _08136AE8
- ldr r0, [r1]
- adds r0, 0x52
- strb r4, [r0]
- ldr r1, [r1]
- b _08136B04
- .align 2, 0
-_08136AE0: .4byte gUnknown_083DFEC4
-_08136AE4: .4byte 0x000087dc
-_08136AE8: .4byte gUnknown_02039304
-_08136AEC:
- ldr r1, [r4]
- adds r1, 0x52
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x10
- bls _08136B32
- bl sub_8136C6C
-_08136B02:
- ldr r1, [r4]
-_08136B04:
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08136B32
-_08136B0E:
- ldr r0, _08136B38
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08136B32
- bl sub_8136D00
- lsls r0, 24
- cmp r0, 0
- bne _08136B32
- ldr r0, _08136B3C
- ldrb r0, [r0]
- bl sub_810CA6C
- ldr r0, _08136B40
- bl launch_c3_walk_stairs_and_run_once
-_08136B32:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08136B38: .4byte gMain
-_08136B3C: .4byte word_203855E
-_08136B40: .4byte sub_8136B44
- thumb_func_end sub_81369CC
-
- thumb_func_start sub_8136B44
-sub_8136B44: @ 8136B44
- push {r4,lr}
- sub sp, 0x4
- ldr r4, _08136B60
- ldr r0, [r4]
- adds r2, r0, 0
- adds r2, 0x50
- ldrb r1, [r2]
- cmp r1, 0x1
- beq _08136B80
- cmp r1, 0x1
- bgt _08136B64
- cmp r1, 0
- beq _08136B6E
- b _08136BAE
- .align 2, 0
-_08136B60: .4byte gUnknown_02039304
-_08136B64:
- cmp r1, 0x2
- beq _08136B98
- cmp r1, 0x3
- beq _08136BA8
- b _08136BAE
-_08136B6E:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _08136B9C
-_08136B80:
- ldr r0, _08136B94
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08136BAE
- movs r0, 0x2
- strb r0, [r2]
- b _08136BAE
- .align 2, 0
-_08136B94: .4byte gPaletteFade
-_08136B98:
- bl sub_80F5BDC
-_08136B9C:
- ldr r1, [r4]
- adds r1, 0x50
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08136BAE
-_08136BA8:
- ldr r0, [r0, 0x4]
- bl SetMainCallback2
-_08136BAE:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8136B44
-
- thumb_func_start sub_8136BB8
-sub_8136BB8: @ 8136BB8
- push {r4,lr}
- ldr r0, _08136C28
- ldr r0, [r0]
- ldr r1, _08136C2C
- adds r0, r1
- ldrb r0, [r0]
- bl sub_81370A4
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _08136C30
- adds r0, r1
- ldr r4, _08136C34
- ldr r2, [r4]
- adds r2, 0x10
- movs r1, 0x2
- bl GetMonData
- ldr r0, [r4]
- adds r0, 0x10
- bl StringGetEnd10
- ldr r0, [r4]
- adds r0, 0x10
- ldr r1, _08136C38
- bl StringAppend
- ldr r0, _08136C3C
- bl BasicInitMenuWindow
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, [r4]
- adds r0, 0x10
- movs r1, 0x1
- movs r2, 0x11
- bl MenuPrint
- movs r0, 0x17
- movs r1, 0xA
- movs r2, 0x1
- bl DisplayYesNoMenu
- movs r0, 0
- bl MoveMenuCursor
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136C28: .4byte gUnknown_083DFEC4
-_08136C2C: .4byte 0x000087dc
-_08136C30: .4byte gPlayerParty
-_08136C34: .4byte gUnknown_02039304
-_08136C38: .4byte gOtherText_GetsAPokeBlock
-_08136C3C: .4byte gWindowConfig_81E709C
- thumb_func_end sub_8136BB8
-
- thumb_func_start sub_8136C40
-sub_8136C40: @ 8136C40
- push {r4,lr}
- bl ProcessMenuInputNoWrap
- lsls r0, 24
- asrs r4, r0, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x2
- bhi _08136C60
- bl MenuZeroFillScreen
- ldr r0, _08136C68
- bl BasicInitMenuWindow
-_08136C60:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08136C68: .4byte gWindowConfig_81E7080
- thumb_func_end sub_8136C40
-
- thumb_func_start sub_8136C6C
-sub_8136C6C: @ 8136C6C
- push {lr}
- ldr r0, _08136C8C
- bl BasicInitMenuWindow
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r3, _08136C90
- ldr r0, [r3]
- adds r0, 0x53
- movs r1, 0
- b _08136C9C
- .align 2, 0
-_08136C8C: .4byte gWindowConfig_81E709C
-_08136C90: .4byte gUnknown_02039304
-_08136C94:
- ldr r0, [r3]
- adds r0, 0x53
- ldrb r1, [r0]
- adds r1, 0x1
-_08136C9C:
- strb r1, [r0]
- ldr r2, [r3]
- adds r1, r2, 0
- adds r1, 0x53
- ldrb r0, [r1]
- cmp r0, 0x4
- bhi _08136CDC
- adds r0, r2, 0
- adds r0, 0x61
- ldrb r1, [r1]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08136C94
- ldr r0, _08136CD8
- ldr r2, [r0]
- adds r1, r2, 0
- adds r1, 0x53
- ldrb r0, [r1]
- cmp r0, 0x4
- bhi _08136CDC
- adds r0, r2, 0
- adds r0, 0x10
- ldrb r1, [r1]
- adds r2, 0x61
- adds r2, r1
- ldrb r2, [r2]
- bl sub_8136DC0
- b _08136CEE
- .align 2, 0
-_08136CD8: .4byte gUnknown_02039304
-_08136CDC:
- ldr r0, _08136CFC
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0x10
- adds r1, 0x53
- ldrb r1, [r1]
- movs r2, 0
- bl sub_8136DC0
-_08136CEE:
- ldr r0, _08136CFC
- ldr r0, [r0]
- adds r0, 0x10
- bl sub_8136DA0
- pop {r0}
- bx r0
- .align 2, 0
-_08136CFC: .4byte gUnknown_02039304
- thumb_func_end sub_8136C6C
-
- thumb_func_start sub_8136D00
-sub_8136D00: @ 8136D00
- push {r4,r5,lr}
- ldr r4, _08136D30
- adds r3, r4, 0
- movs r5, 0x5
-_08136D08:
- ldr r0, [r3]
- adds r0, 0x53
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r2, [r3]
- adds r1, r2, 0
- adds r1, 0x53
- ldrb r0, [r1]
- cmp r0, 0x4
- bhi _08136D34
- adds r0, r2, 0
- adds r0, 0x61
- ldrb r1, [r1]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08136D3A
- b _08136D08
- .align 2, 0
-_08136D30: .4byte gUnknown_02039304
-_08136D34:
- strb r5, [r1]
- movs r0, 0
- b _08136D5A
-_08136D3A:
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0x10
- adds r1, r2, 0
- adds r1, 0x53
- ldrb r1, [r1]
- adds r2, 0x61
- adds r2, r1
- ldrb r2, [r2]
- bl sub_8136DC0
- ldr r0, [r4]
- adds r0, 0x10
- bl sub_8136DA0
- movs r0, 0x1
-_08136D5A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8136D00
-
- thumb_func_start sub_8136D60
-sub_8136D60: @ 8136D60
- push {lr}
- ldr r0, _08136D84
- bl BasicInitMenuWindow
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08136D88
- movs r1, 0x1
- movs r2, 0x11
- bl MenuPrint
- pop {r0}
- bx r0
- .align 2, 0
-_08136D84: .4byte gWindowConfig_81E709C
-_08136D88: .4byte gOtherText_WontEat
- thumb_func_end sub_8136D60
-
- thumb_func_start sub_8136D8C
-sub_8136D8C: @ 8136D8C
- push {lr}
- bl MenuZeroFillScreen
- ldr r0, _08136D9C
- bl BasicInitMenuWindow
- pop {r0}
- bx r0
- .align 2, 0
-_08136D9C: .4byte gWindowConfig_81E7080
- thumb_func_end sub_8136D8C
-
- thumb_func_start sub_8136DA0
-sub_8136DA0: @ 8136DA0
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x11
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8136DA0
-
- thumb_func_start sub_8136DC0
-sub_8136DC0: @ 8136DC0
- push {r4,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r2, 16
- lsrs r0, r2, 16
- asrs r2, 16
- cmp r2, 0
- beq _08136DFC
- cmp r2, 0
- ble _08136DD8
- movs r0, 0
-_08136DD8:
- lsls r0, 16
- ldr r1, _08136DF4
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringCopy
- ldr r1, _08136DF8
- adds r0, r4, 0
- bl StringAppend
- b _08136E04
- .align 2, 0
-_08136DF4: .4byte gUnknown_08406134
-_08136DF8: .4byte gOtherText_WasEnhanced
-_08136DFC:
- ldr r1, _08136E0C
- adds r0, r4, 0
- bl StringCopy
-_08136E04:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08136E0C: .4byte gOtherText_NothingChanged
- thumb_func_end sub_8136DC0
-
- thumb_func_start sub_8136E10
-sub_8136E10: @ 8136E10
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r5, r1, 0
- movs r4, 0
- ldr r7, _08136E3C
-_08136E1A:
- lsls r0, r4, 2
- adds r0, r7
- ldr r1, [r0]
- adds r0, r6, 0
- bl GetMonData
- adds r1, r5, r4
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _08136E1A
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08136E3C: .4byte gUnknown_08406118
- thumb_func_end sub_8136E10
-
- thumb_func_start sub_8136E40
-sub_8136E40: @ 8136E40
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- mov r8, r0
- adds r5, r1, 0
- adds r0, r5, 0
- movs r1, 0x30
- bl GetMonData
- cmp r0, 0xFF
- beq _08136EDC
- mov r0, r8
- adds r1, r5, 0
- bl sub_8136F74
- movs r4, 0
- mov r7, sp
-_08136E64:
- ldr r1, _08136EE8
- lsls r0, r4, 2
- adds r0, r1
- ldr r6, [r0]
- adds r0, r5, 0
- adds r1, r6, 0
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- strb r0, [r7]
- ldr r1, _08136EEC
- ldr r1, [r1]
- lsls r2, r4, 1
- adds r1, 0x66
- adds r1, r2
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r0, 0
- bge _08136E92
- movs r1, 0
-_08136E92:
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _08136E9C
- movs r1, 0xFF
-_08136E9C:
- strb r1, [r7]
- adds r0, r5, 0
- adds r1, r6, 0
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _08136E64
- adds r0, r5, 0
- movs r1, 0x30
- bl GetMonData
- lsls r0, 24
- lsrs r0, 24
- mov r2, r8
- ldrb r2, [r2, 0x6]
- adds r1, r0, r2
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _08136ECE
- movs r1, 0xFF
-_08136ECE:
- mov r0, sp
- strb r1, [r0]
- adds r0, r5, 0
- movs r1, 0x30
- mov r2, sp
- bl SetMonData
-_08136EDC:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08136EE8: .4byte gUnknown_08406118
-_08136EEC: .4byte gUnknown_02039304
- thumb_func_end sub_8136E40
-
- thumb_func_start sub_8136EF0
-sub_8136EF0: @ 8136EF0
- push {r4,r5,lr}
- ldr r5, _08136F60
- ldr r0, _08136F64
- ldr r1, [r0]
- ldr r2, _08136F68
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- lsls r0, 2
- adds r1, r0
- ldr r0, _08136F6C
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 27
- lsrs r0, 27
- movs r1, 0x64
- muls r0, r1
- adds r5, r0, r5
- ldr r4, _08136F70
- ldr r1, [r4]
- adds r1, 0x57
- adds r0, r5, 0
- bl sub_8136E10
- ldr r0, [r4]
- ldr r0, [r0, 0x8]
- adds r1, r5, 0
- bl sub_8136E40
- ldr r1, [r4]
- adds r1, 0x5C
- adds r0, r5, 0
- bl sub_8136E10
- movs r3, 0
-_08136F36:
- ldr r0, [r4]
- adds r2, r0, 0
- adds r2, 0x61
- adds r2, r3
- adds r1, r0, 0
- adds r1, 0x5C
- adds r1, r3
- adds r0, 0x57
- adds r0, r3
- ldrb r1, [r1]
- ldrb r0, [r0]
- subs r1, r0
- strb r1, [r2]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x4
- bls _08136F36
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08136F60: .4byte gPlayerParty
-_08136F64: .4byte gUnknown_083DFEC4
-_08136F68: .4byte 0x000087dc
-_08136F6C: .4byte 0x0000893e
-_08136F70: .4byte gUnknown_02039304
- thumb_func_end sub_8136EF0
-
- thumb_func_start sub_8136F74
-sub_8136F74: @ 8136F74
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r1
- ldr r1, _08136FBC
- ldr r3, [r1]
- ldrb r1, [r0, 0x1]
- adds r2, r3, 0
- adds r2, 0x66
- strh r1, [r2]
- ldrb r2, [r0, 0x5]
- adds r1, r3, 0
- adds r1, 0x68
- strh r2, [r1]
- ldrb r1, [r0, 0x4]
- adds r2, r3, 0
- adds r2, 0x6A
- strh r1, [r2]
- ldrb r2, [r0, 0x3]
- adds r1, r3, 0
- adds r1, 0x6C
- strh r2, [r1]
- ldrb r1, [r0, 0x2]
- adds r0, r3, 0
- adds r0, 0x6E
- strh r1, [r0]
- ldr r0, _08136FC0
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- ble _08136FC4
- movs r0, 0x1
- b _08136FCA
- .align 2, 0
-_08136FBC: .4byte gUnknown_02039304
-_08136FC0: .4byte gUnknown_02039312
-_08136FC4:
- cmp r0, 0
- bge _08137040
- movs r0, 0xFF
-_08136FCA:
- movs r2, 0
- lsls r0, 24
- mov r9, r0
- ldr r0, _08137050
- mov r8, r0
-_08136FD4:
- mov r0, r8
- ldr r1, [r0]
- lsls r0, r2, 24
- asrs r6, r0, 24
- lsls r7, r6, 1
- adds r1, 0x66
- adds r1, r7
- movs r2, 0
- ldrsh r4, [r1, r2]
- adds r0, r4, 0
- movs r1, 0xA
- bl __divsi3
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- movs r1, 0xA
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- ble _0813700C
- lsls r0, r5, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r5, r0, 24
-_0813700C:
- ldr r0, _08137054
- adds r0, r6, r0
- ldrb r1, [r0]
- mov r0, r10
- bl sub_8040A54
- lsls r0, 24
- asrs r2, r0, 24
- cmp r0, r9
- bne _08137034
- mov r1, r8
- ldr r0, [r1]
- adds r0, 0x66
- adds r0, r7
- lsls r1, r5, 24
- asrs r1, 24
- muls r1, r2
- ldrh r2, [r0]
- adds r1, r2
- strh r1, [r0]
-_08137034:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- asrs r0, 24
- cmp r0, 0x4
- ble _08136FD4
-_08137040:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08137050: .4byte gUnknown_02039304
-_08137054: .4byte gUnknown_0840612C
- thumb_func_end sub_8136F74
-
- thumb_func_start sub_8137058
-sub_8137058: @ 8137058
- push {lr}
- ldr r0, _0813708C
- ldr r1, _08137090
- ldr r2, [r1]
- ldr r3, _08137094
- adds r1, r2, r3
- movs r3, 0
- ldrsh r1, [r1, r3]
- lsls r1, 2
- adds r2, r1
- ldr r1, _08137098
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 27
- lsrs r1, 27
- movs r2, 0x64
- muls r1, r2
- adds r0, r1, r0
- movs r1, 0x30
- bl GetMonData
- cmp r0, 0xFF
- beq _0813709C
- movs r0, 0
- b _0813709E
- .align 2, 0
-_0813708C: .4byte gPlayerParty
-_08137090: .4byte gUnknown_083DFEC4
-_08137094: .4byte 0x000087dc
-_08137098: .4byte 0x0000893e
-_0813709C:
- movs r0, 0x1
-_0813709E:
- pop {r1}
- bx r1
- thumb_func_end sub_8137058
-
- thumb_func_start sub_81370A4
-sub_81370A4: @ 81370A4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
-_081370AC:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _081370C8
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _081370D2
- cmp r5, 0
- bne _081370CC
- adds r0, r4, 0
- b _081370DE
- .align 2, 0
-_081370C8: .4byte gPlayerParty
-_081370CC:
- subs r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_081370D2:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _081370AC
- movs r0, 0
-_081370DE:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81370A4
-
- thumb_func_start sub_81370E4
-sub_81370E4: @ 81370E4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- movs r6, 0
- cmp r6, r5
- bcs _08137114
-_081370F2:
- movs r0, 0x64
- muls r0, r4
- ldr r1, _08137120
- adds r0, r1
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- beq _0813710A
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0813710A:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcc _081370F2
-_08137114:
- subs r0, r5, r6
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08137120: .4byte gPlayerParty
- thumb_func_end sub_81370E4
-
- thumb_func_start sub_8137124
-sub_8137124: @ 8137124
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_81370A4
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_8137124
-
- thumb_func_start sub_8137138
-sub_8137138: @ 8137138
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _081371C0
- bl LoadSpriteSheet
- ldr r0, _081371C4
- bl LoadSpritePalette
- ldr r2, _081371C8
- ldr r0, [r2]
- adds r0, 0x54
- movs r1, 0
- strb r1, [r0]
- movs r4, 0
- adds r5, r2, 0
- ldr r6, _081371CC
- adds r0, r6, 0x2
- mov r8, r0
- ldr r7, _081371D0
-_08137160:
- ldr r0, [r5]
- adds r0, 0x61
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _081371AC
- lsls r2, r4, 2
- adds r0, r2, r6
- movs r3, 0
- ldrsh r1, [r0, r3]
- add r2, r8
- movs r0, 0
- ldrsh r2, [r2, r0]
- ldr r0, _081371D4
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _081371AC
- ldr r0, [r5]
- adds r0, 0x61
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _081371A2
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldr r1, _081371D8
- str r1, [r0]
-_081371A2:
- ldr r1, [r5]
- adds r1, 0x54
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_081371AC:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _08137160
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081371C0: .4byte gSpriteSheet_ConditionUpDown
-_081371C4: .4byte gSpritePalette_ConditionUpDown
-_081371C8: .4byte gUnknown_02039304
-_081371CC: .4byte gUnknown_08406158
-_081371D0: .4byte gSprites + 0x1C
-_081371D4: .4byte gSpriteTemplate_840618C
-_081371D8: .4byte sub_81371DC
- thumb_func_end sub_8137138
-
- thumb_func_start sub_81371DC
-sub_81371DC: @ 81371DC
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x5
- bgt _081371EE
- ldrh r0, [r1, 0x26]
- subs r0, 0x2
- b _081371F6
-_081371EE:
- cmp r0, 0xB
- bgt _081371F8
- ldrh r0, [r1, 0x26]
- adds r0, 0x2
-_081371F6:
- strh r0, [r1, 0x26]
-_081371F8:
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3C
- ble _08137218
- adds r0, r1, 0
- bl DestroySprite
- ldr r0, _0813721C
- ldr r1, [r0]
- adds r1, 0x54
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
-_08137218:
- pop {r0}
- bx r0
- .align 2, 0
-_0813721C: .4byte gUnknown_02039304
- thumb_func_end sub_81371DC
-
- thumb_func_start unref_sub_8137220
-unref_sub_8137220: @ 8137220
- bx lr
- thumb_func_end unref_sub_8137220
-
- thumb_func_start sub_8137224
-sub_8137224: @ 8137224
- ldr r1, _08137250
- ldr r0, _08137254
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08137258
- str r1, [r0]
- ldr r1, _0813725C
- ldr r2, _08137260
- adds r0, r1, r2
- movs r2, 0
- strb r2, [r0]
- ldr r3, _08137264
- adds r0, r1, r3
- strb r2, [r0]
- adds r3, 0x1
- adds r0, r1, r3
- strb r2, [r0]
- ldr r0, _08137268
- adds r1, r0
- strb r2, [r1]
- bx lr
- .align 2, 0
-_08137250: .4byte gUnknown_03004330
-_08137254: .4byte gUnknown_02024A60
-_08137258: .4byte sub_813726C
-_0813725C: .4byte 0x02000000
-_08137260: .4byte 0x000160a8
-_08137264: .4byte 0x000160a9
-_08137268: .4byte 0x000160ab
- thumb_func_end sub_8137224
-
- thumb_func_start sub_813726C
-sub_813726C: @ 813726C
- push {lr}
- ldr r2, _081372A0
- ldr r1, _081372A4
- ldr r0, _081372A8
- ldrb r3, [r0]
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, [r2]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _081372B8
- ldr r0, _081372AC
- lsls r1, r3, 9
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0x38
- bhi _081372B4
- ldr r0, _081372B0
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- bl _call_via_r0
- b _081372B8
- .align 2, 0
-_081372A0: .4byte gUnknown_02024A64
-_081372A4: .4byte gBitTable
-_081372A8: .4byte gUnknown_02024A60
-_081372AC: .4byte gUnknown_02023A60
-_081372B0: .4byte gUnknown_084061A4
-_081372B4:
- bl dp01_tbl5_exec_completed
-_081372B8:
- pop {r0}
- bx r0
- thumb_func_end sub_813726C
-
- thumb_func_start sub_81372BC
-sub_81372BC: @ 81372BC
- push {r4-r6,lr}
- ldr r1, _081372D8
- ldr r2, _081372DC
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r5, r1, 0
- cmp r0, 0x5
- bls _081372CE
- b _08137410
-_081372CE:
- lsls r0, 2
- ldr r1, _081372E0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081372D8: .4byte 0x02000000
-_081372DC: .4byte 0x000160a8
-_081372E0: .4byte _081372E4
- .align 2, 0
-_081372E4:
- .4byte _081372FC
- .4byte _0813730E
- .4byte _08137344
- .4byte _08137368
- .4byte _081373AC
- .4byte _081373E8
-_081372FC:
- ldr r0, _0813733C
- adds r1, r5, r0
- movs r0, 0x40
- strb r0, [r1]
- ldr r2, _08137340
- adds r1, r5, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0813730E:
- ldr r0, _0813733C
- adds r6, r5, r0
- ldrb r0, [r6]
- subs r0, 0x1
- strb r0, [r6]
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08137410
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- bl dp01_tbl5_exec_completed
- ldr r2, _08137340
- adds r1, r5, r2
- b _0813738C
- .align 2, 0
-_0813733C: .4byte 0x000160aa
-_08137340: .4byte 0x000160a8
-_08137344:
- ldr r2, _08137364
- adds r6, r5, r2
- ldrb r0, [r6]
- subs r0, 0x1
- strb r0, [r6]
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08137410
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- movs r1, 0
- b _0813737E
- .align 2, 0
-_08137364: .4byte 0x000160aa
-_08137368:
- ldr r2, _081373A0
- adds r6, r5, r2
- ldrb r0, [r6]
- subs r0, 0x1
- strb r0, [r6]
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08137410
- movs r0, 0x1
- movs r1, 0x9
-_0813737E:
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- bl dp01_tbl5_exec_completed
- ldr r0, _081373A4
- adds r1, r5, r0
-_0813738C:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, _081373A8
- adds r0, r5, r1
- strb r4, [r0]
- movs r0, 0x40
- strb r0, [r6]
- b _08137410
- .align 2, 0
-_081373A0: .4byte 0x000160aa
-_081373A4: .4byte 0x000160a8
-_081373A8: .4byte 0x000160a9
-_081373AC:
- ldr r2, _081373E0
- adds r4, r5, r2
- ldrb r0, [r4]
- subs r0, 0x1
- strb r0, [r4]
- lsls r0, 24
- cmp r0, 0
- bne _08137410
- movs r0, 0x5
- bl PlaySE
- movs r0, 0
- bl nullsub_8
- movs r0, 0x1
- movs r1, 0
- bl sub_802E3E4
- movs r0, 0x40
- strb r0, [r4]
- ldr r0, _081373E4
- adds r1, r5, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08137410
- .align 2, 0
-_081373E0: .4byte 0x000160aa
-_081373E4: .4byte 0x000160a8
-_081373E8:
- ldr r2, _08137418
- adds r1, r5, r2
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _08137410
- movs r0, 0x5
- bl PlaySE
- bl sub_814A7FC
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0
- bl dp01_build_cmdbuf_x21_a_bb
- bl dp01_tbl5_exec_completed
-_08137410:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08137418: .4byte 0x000160aa
- thumb_func_end sub_81372BC
-
- thumb_func_start sub_813741C
-sub_813741C: @ 813741C
- push {lr}
- ldr r2, _08137444
- ldr r1, _08137448
- ldr r0, _0813744C
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _08137450
- cmp r1, r0
- bne _08137440
- bl dp01_tbl5_exec_completed
-_08137440:
- pop {r0}
- bx r0
- .align 2, 0
-_08137444: .4byte gSprites
-_08137448: .4byte gUnknown_02024BE0
-_0813744C: .4byte gUnknown_02024A60
-_08137450: .4byte SpriteCallbackDummy
- thumb_func_end sub_813741C
-
- thumb_func_start sub_8137454
-sub_8137454: @ 8137454
- push {lr}
- ldr r0, _08137468
- ldrh r0, [r0, 0x16]
- cmp r0, 0
- bne _08137462
- bl dp01_tbl5_exec_completed
-_08137462:
- pop {r0}
- bx r0
- .align 2, 0
-_08137468: .4byte gUnknown_03004210
- thumb_func_end sub_8137454
-
- thumb_func_start sub_813746C
-sub_813746C: @ 813746C
- push {lr}
- ldr r0, _0813749C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08137496
- ldr r2, _081374A0
- ldr r0, _081374A4
- adds r3, r2, r0
- ldrb r1, [r3]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldr r0, _081374A8
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, [r2, 0x8]
- bl SetMainCallback2
-_08137496:
- pop {r0}
- bx r0
- .align 2, 0
-_0813749C: .4byte gPaletteFade
-_081374A0: .4byte gMain
-_081374A4: .4byte 0x0000043d
-_081374A8: .4byte gUnknown_030042D0
- thumb_func_end sub_813746C
-
- thumb_func_start bx_wait_t5
-bx_wait_t5: @ 81374AC
- push {lr}
- ldr r0, _081374C0
- ldrb r0, [r0]
- cmp r0, 0
- bne _081374BA
- bl dp01_tbl5_exec_completed
-_081374BA:
- pop {r0}
- bx r0
- .align 2, 0
-_081374C0: .4byte gUnknown_02024E6D
- thumb_func_end bx_wait_t5
-
- thumb_func_start sub_81374C4
-sub_81374C4: @ 81374C4
- push {lr}
- ldr r0, _081374EC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081374E8
- ldr r1, _081374F0
- ldr r0, _081374F4
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _081374F8
- str r1, [r0]
- bl nullsub_14
- bl PrepareBagForWallyTutorial
-_081374E8:
- pop {r0}
- bx r0
- .align 2, 0
-_081374EC: .4byte gPaletteFade
-_081374F0: .4byte gUnknown_03004330
-_081374F4: .4byte gUnknown_02024A60
-_081374F8: .4byte sub_81374FC
- thumb_func_end sub_81374C4
-
- thumb_func_start sub_81374FC
-sub_81374FC: @ 81374FC
- push {lr}
- ldr r0, _08137528
- ldr r1, [r0, 0x4]
- ldr r0, _0813752C
- cmp r1, r0
- bne _08137522
- ldr r0, _08137530
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08137522
- ldr r0, _08137534
- ldrh r1, [r0]
- movs r0, 0x1
- bl dp01_build_cmdbuf_x23_aa_0
- bl dp01_tbl5_exec_completed
-_08137522:
- pop {r0}
- bx r0
- .align 2, 0
-_08137528: .4byte gMain
-_0813752C: .4byte sub_800F808
-_08137530: .4byte gPaletteFade
-_08137534: .4byte word_203855E
- thumb_func_end sub_81374FC
-
- thumb_func_start sub_8137538
-sub_8137538: @ 8137538
- push {r4-r7,lr}
- ldr r5, _0813768C
- ldrb r2, [r5]
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- ldr r4, _08137690
- adds r0, r4
- ldrb r1, [r0]
- movs r7, 0x88
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- bne _08137568
- ldr r0, _08137694
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08137698
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_08137568:
- ldrb r0, [r5]
- movs r6, 0x2
- adds r2, r6, 0
- eors r2, r0
- lsls r3, r2, 1
- adds r0, r3, r2
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- bne _08137596
- ldr r0, _08137694
- adds r0, r3, r0
- ldrh r1, [r0]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08137698
- adds r1, r0
- adds r0, r2, 0
- bl sub_8141828
-_08137596:
- ldrb r2, [r5]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- movs r3, 0x8
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _08137684
- adds r1, r6, 0
- eors r1, r2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _08137684
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- beq _08137626
- ldr r0, _0813769C
- ldrh r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08137626
- ldr r1, _081376A0
- ldrb r0, [r5]
- eors r0, r6
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081376A4
- adds r0, r1
- bl DestroySprite
- ldr r4, _081376A8
- ldrb r0, [r5]
- adds r1, r6, 0
- eors r1, r0
- adds r0, r1, r4
- ldrb r0, [r0]
- ldr r2, _08137694
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _08137698
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r5]
- eors r0, r6
- bl sub_804777C
- ldrb r0, [r5]
- eors r0, r6
- adds r0, r4
- ldrb r0, [r0]
- bl sub_8043DFC
-_08137626:
- ldr r1, _081376A0
- ldr r4, _0813768C
- ldrb r0, [r4]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081376A4
- adds r0, r1
- bl DestroySprite
- ldr r5, _081376A8
- ldrb r1, [r4]
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, _08137694
- lsls r1, 1
- adds r1, r2
- ldrh r2, [r1]
- movs r1, 0x64
- muls r1, r2
- ldr r2, _08137698
- adds r1, r2
- movs r2, 0
- bl sub_8045A5C
- ldrb r0, [r4]
- bl sub_804777C
- ldrb r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- bl sub_8043DFC
- ldr r2, _081376AC
- ldrb r1, [r2, 0x9]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _081376B0
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _081376B4
- str r1, [r0]
-_08137684:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813768C: .4byte gUnknown_02024A60
-_08137690: .4byte 0x02017810
-_08137694: .4byte gUnknown_02024A6A
-_08137698: .4byte gPlayerParty
-_0813769C: .4byte gUnknown_020239F8
-_081376A0: .4byte gUnknown_0300434C
-_081376A4: .4byte gSprites
-_081376A8: .4byte gUnknown_03004340
-_081376AC: .4byte 0x02017840
-_081376B0: .4byte gUnknown_03004330
-_081376B4: .4byte sub_81376B8
- thumb_func_end sub_8137538
-
- thumb_func_start sub_81376B8
-sub_81376B8: @ 81376B8
- push {r4-r7,lr}
- movs r4, 0
- ldr r2, _0813778C
- ldr r0, _08137790
- ldr r7, _08137794
- ldrb r3, [r7]
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _08137798
- cmp r1, r0
- bne _081376DC
- movs r4, 0x1
-_081376DC:
- cmp r4, 0
- beq _08137784
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r5, _0813779C
- adds r2, r0, r5
- ldrb r1, [r2, 0x1]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08137784
- movs r6, 0x2
- adds r1, r6, 0
- eors r1, r3
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08137784
- ldrb r1, [r2]
- movs r3, 0x7F
- adds r0, r3, 0
- ands r0, r1
- strb r0, [r2]
- ldrb r0, [r7]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x1]
- subs r4, 0x3
- adds r0, r4, 0
- ands r0, r2
- strb r0, [r1, 0x1]
- ldrb r0, [r7]
- adds r1, r6, 0
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0]
- ands r3, r1
- strb r3, [r0]
- ldrb r0, [r7]
- adds r1, r6, 0
- eors r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x1]
- ands r4, r1
- strb r4, [r0, 0x1]
- ldr r4, _081377A0
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldr r0, _081377A4
- movs r1, 0xA
- bl CreateTask
- ldr r2, _081377A8
- ldrb r1, [r7]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _081377AC
- adds r0, r2
- bl sub_80324F8
- bl dp01_tbl5_exec_completed
-_08137784:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813778C: .4byte gSprites
-_08137790: .4byte gUnknown_03004340
-_08137794: .4byte gUnknown_02024A60
-_08137798: .4byte SpriteCallbackDummy
-_0813779C: .4byte 0x02017810
-_081377A0: .4byte 0x000027f9
-_081377A4: .4byte c3_0802FDF4
-_081377A8: .4byte gUnknown_02024A6A
-_081377AC: .4byte gPlayerParty
- thumb_func_end sub_81376B8
-
- thumb_func_start sub_81377B0
-sub_81377B0: @ 81377B0
- push {r4-r6,lr}
- ldr r5, _081377F0
- ldrb r0, [r5]
- ldr r6, _081377F4
- adds r1, r0, r6
- ldrb r1, [r1]
- movs r2, 0
- movs r3, 0
- bl sub_8045C78
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- bl sub_8043DFC
- lsls r4, 16
- asrs r1, r4, 16
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _081377F8
- ldrb r0, [r5]
- adds r0, r6
- ldrb r0, [r0]
- movs r2, 0
- bl sub_80440EC
- b _08137812
- .align 2, 0
-_081377F0: .4byte gUnknown_02024A60
-_081377F4: .4byte gUnknown_03004340
-_081377F8:
- ldr r2, _08137818
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _0813781C
- adds r0, r2
- bl sub_80324F8
- bl dp01_tbl5_exec_completed
-_08137812:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08137818: .4byte gUnknown_02024A6A
-_0813781C: .4byte gPlayerParty
- thumb_func_end sub_81377B0
-
- thumb_func_start bx_blink_t5
-bx_blink_t5: @ 8137820
- push {r4,lr}
- ldr r1, _0813785C
- ldr r0, _08137860
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- ldr r2, _08137864
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x20
- bne _0813786C
- movs r3, 0
- movs r0, 0
- strh r0, [r4, 0x30]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- subs r0, 0x5
- ands r0, r1
- strb r0, [r2]
- ldr r0, _08137868
- strb r3, [r0]
- bl dp01_tbl5_exec_completed
- b _08137896
- .align 2, 0
-_0813785C: .4byte gUnknown_02024BE0
-_08137860: .4byte gUnknown_02024A60
-_08137864: .4byte gSprites
-_08137868: .4byte gUnknown_02024E6D
-_0813786C:
- ldrh r0, [r4, 0x30]
- movs r1, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08137890
- 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]
-_08137890:
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
-_08137896:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end bx_blink_t5
-
- thumb_func_start sub_813789C
-sub_813789C: @ 813789C
- push {r4-r6,lr}
- ldr r6, _081378F4
- ldrb r2, [r6]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- ldr r1, _081378F8
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _081378EC
- ldr r5, _081378FC
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08137900
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r1, _08137904
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl5_exec_completed
-_081378EC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081378F4: .4byte gUnknown_02024A60
-_081378F8: .4byte 0x02017810
-_081378FC: .4byte gUnknown_02024BE0
-_08137900: .4byte gSprites
-_08137904: .4byte gUnknown_03004340
- thumb_func_end sub_813789C
-
- thumb_func_start sub_8137908
-sub_8137908: @ 8137908
- push {lr}
- ldr r2, _08137930
- ldr r1, _08137934
- ldr r0, _08137938
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _0813793C
- cmp r1, r0
- bne _0813792C
- bl dp01_tbl5_exec_completed
-_0813792C:
- pop {r0}
- bx r0
- .align 2, 0
-_08137930: .4byte gSprites
-_08137934: .4byte gUnknown_02024BE0
-_08137938: .4byte gUnknown_02024A60
-_0813793C: .4byte SpriteCallbackDummy
- thumb_func_end sub_8137908
-
- thumb_func_start sub_8137940
-sub_8137940: @ 8137940
- push {lr}
- ldr r0, _08137964
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08137968
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _0813795E
- bl dp01_tbl5_exec_completed
-_0813795E:
- pop {r0}
- bx r0
- .align 2, 0
-_08137964: .4byte gUnknown_02024A60
-_08137968: .4byte 0x02017810
- thumb_func_end sub_8137940
-
- thumb_func_start dp01_tbl5_exec_completed
-dp01_tbl5_exec_completed: @ 813796C
- push {r4,lr}
- sub sp, 0x4
- ldr r1, _081379AC
- ldr r4, _081379B0
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _081379B4
- str r1, [r0]
- ldr r0, _081379B8
- ldrh r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081379C0
- bl GetMultiplayerId
- mov r1, sp
- strb r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- mov r2, sp
- bl dp01_prepare_buffer_wireless_probably
- ldr r1, _081379BC
- ldrb r0, [r4]
- lsls r0, 9
- adds r0, r1
- movs r1, 0x38
- strb r1, [r0]
- b _081379D2
- .align 2, 0
-_081379AC: .4byte gUnknown_03004330
-_081379B0: .4byte gUnknown_02024A60
-_081379B4: .4byte sub_813726C
-_081379B8: .4byte gUnknown_020239F8
-_081379BC: .4byte gUnknown_02023A60
-_081379C0:
- ldr r2, _081379DC
- ldr r1, _081379E0
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- ldr r0, [r2]
- bics r0, r1
- str r0, [r2]
-_081379D2:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081379DC: .4byte gUnknown_02024A64
-_081379E0: .4byte gBitTable
- thumb_func_end dp01_tbl5_exec_completed
-
- thumb_func_start unref_sub_81379E4
-unref_sub_81379E4: @ 81379E4
- push {lr}
- ldr r0, _08137A08
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08137A0C
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08137A02
- bl dp01_tbl5_exec_completed
-_08137A02:
- pop {r0}
- bx r0
- .align 2, 0
-_08137A08: .4byte gUnknown_02024A60
-_08137A0C: .4byte 0x02017810
- thumb_func_end unref_sub_81379E4
-
- thumb_func_start dp01t_00_5_getattr
-dp01t_00_5_getattr: @ 8137A10
- push {r4-r6,lr}
- sub sp, 0x100
- movs r6, 0
- ldr r1, _08137A3C
- ldr r0, _08137A40
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _08137A48
- ldr r0, _08137A44
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- mov r1, sp
- bl sub_8137A84
- adds r6, r0, 0
- b _08137A6A
- .align 2, 0
-_08137A3C: .4byte gUnknown_02023A60
-_08137A40: .4byte gUnknown_02024A60
-_08137A44: .4byte gUnknown_02024A6A
-_08137A48:
- ldrb r4, [r1]
- movs r5, 0
-_08137A4C:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _08137A62
- lsls r0, r5, 24
- lsrs r0, 24
- mov r2, sp
- adds r1, r2, r6
- bl sub_8137A84
- adds r6, r0
-_08137A62:
- lsrs r4, 1
- adds r5, 0x1
- cmp r5, 0x5
- ble _08137A4C
-_08137A6A:
- lsls r1, r6, 16
- lsrs r1, 16
- movs r0, 0x1
- mov r2, sp
- bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
- bl dp01_tbl5_exec_completed
- add sp, 0x100
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end dp01t_00_5_getattr
-
- thumb_func_start sub_8137A84
-sub_8137A84: @ 8137A84
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x90
- adds r7, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- movs r6, 0
- ldr r2, _08137AB8
- ldr r3, _08137ABC
- ldrb r0, [r3]
- lsls r0, 9
- adds r1, r2, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x3B
- bls _08137AAE
- bl _0813821A
-_08137AAE:
- lsls r0, 2
- ldr r1, _08137AC0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08137AB8: .4byte gUnknown_02023A60
-_08137ABC: .4byte gUnknown_02024A60
-_08137AC0: .4byte _08137AC4
- .align 2, 0
-_08137AC4:
- .4byte _08137BB4
- .4byte _08137DD8
- .4byte _08137DE8
- .4byte _08137DF8
- .4byte _08137E60
- .4byte _08137E60
- .4byte _08137E60
- .4byte _08137E60
- .4byte _08137E7C
- .4byte _08137EB8
- .4byte _08137EB8
- .4byte _08137EB8
- .4byte _08137EB8
- .4byte _0813821A
- .4byte _0813821A
- .4byte _0813821A
- .4byte _0813821A
- .4byte _08137ED4
- .4byte _08137EE4
- .4byte _08137F14
- .4byte _08137F24
- .4byte _08137F34
- .4byte _08137F44
- .4byte _08137F54
- .4byte _08137F64
- .4byte _08137F74
- .4byte _08137F84
- .4byte _08137F94
- .4byte _08137FA4
- .4byte _08137FB4
- .4byte _08137FC4
- .4byte _08137FD4
- .4byte _08138024
- .4byte _08138034
- .4byte _08138044
- .4byte _08138054
- .4byte _08138064
- .4byte _08138074
- .4byte _08138084
- .4byte _08138094
- .4byte _081380A4
- .4byte _081380D8
- .4byte _081380E8
- .4byte _081380F8
- .4byte _08138108
- .4byte _08138118
- .4byte _08138128
- .4byte _08138138
- .4byte _08138148
- .4byte _08138168
- .4byte _08138178
- .4byte _08138188
- .4byte _08138198
- .4byte _081381A8
- .4byte _081381B8
- .4byte _081381C8
- .4byte _081381D8
- .4byte _081381E8
- .4byte _081381F8
- .4byte _08138208
-_08137BB4:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08137DC8
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- mov r1, sp
- strh r0, [r1]
- adds r0, r4, 0
- movs r1, 0xC
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2E]
- movs r6, 0
- add r0, sp, 0x24
- mov r9, r0
- movs r1, 0x3B
- add r1, sp
- mov r10, r1
- mov r2, sp
- adds r2, 0x2B
- str r2, [sp, 0x80]
- mov r0, sp
- adds r0, 0x2A
- str r0, [sp, 0x7C]
- mov r1, sp
- adds r1, 0x68
- str r1, [sp, 0x8C]
- adds r2, 0x5
- str r2, [sp, 0x84]
- adds r0, 0x12
- str r0, [sp, 0x88]
- mov r8, r4
- add r4, sp, 0xC
-_08137C00:
- adds r1, r6, 0
- adds r1, 0xD
- mov r0, r8
- bl GetMonData
- strh r0, [r4]
- adds r1, r6, 0
- adds r1, 0x11
- mov r0, r8
- bl GetMonData
- mov r2, r9
- adds r1, r2, r6
- strb r0, [r1]
- adds r4, 0x2
- adds r6, 0x1
- cmp r6, 0x3
- ble _08137C00
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08137DC8
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl GetMonData
- mov r1, r10
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x20
- bl GetMonData
- ldr r2, [sp, 0x80]
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x19
- bl GetMonData
- str r0, [sp, 0x44]
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- mov r3, sp
- movs r5, 0x1F
- ands r0, r5
- ldrb r2, [r3, 0x14]
- movs r1, 0x20
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- mov r3, sp
- movs r6, 0x1F
- ands r0, r6
- lsls r0, 5
- ldrh r2, [r3, 0x14]
- ldr r1, _08137DCC
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x14]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 2
- ldrb r2, [r3, 0x15]
- movs r1, 0x7D
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x15]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- movs r1, 0x1F
- ands r1, r0
- lsls r1, 15
- ldr r0, [sp, 0x14]
- ldr r2, _08137DD0
- ands r0, r2
- orrs r0, r1
- str r0, [sp, 0x14]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- mov r3, sp
- ands r0, r6
- lsls r0, 4
- ldrh r2, [r3, 0x16]
- ldr r1, _08137DD4
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x16]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- mov r3, sp
- ands r0, r5
- lsls r0, 1
- ldrb r2, [r3, 0x17]
- movs r1, 0x3F
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- str r0, [sp, 0x48]
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- str r0, [sp, 0x4C]
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- ldr r1, [sp, 0x7C]
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x28]
- adds r0, r4, 0
- movs r1, 0x3A
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2C]
- adds r0, r4, 0
- movs r1, 0x3B
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x2]
- adds r0, r4, 0
- movs r1, 0x3C
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x4]
- adds r0, r4, 0
- movs r1, 0x3D
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x6]
- adds r0, r4, 0
- movs r1, 0x3E
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0x8]
- adds r0, r4, 0
- movs r1, 0x3F
- bl GetMonData
- mov r1, sp
- strh r0, [r1, 0xA]
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- mov r3, sp
- movs r1, 0x1
- ands r0, r1
- lsls r0, 6
- ldrb r2, [r3, 0x17]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x2E
- bl GetMonData
- mov r3, sp
- lsls r0, 7
- ldrb r2, [r3, 0x17]
- movs r1, 0x7F
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x17]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- str r0, [sp, 0x54]
- adds r0, r4, 0
- movs r1, 0x2
- ldr r2, [sp, 0x8C]
- bl GetMonData
- ldr r0, [sp, 0x84]
- ldr r1, [sp, 0x8C]
- bl StringCopy10
- adds r0, r4, 0
- movs r1, 0x7
- ldr r2, [sp, 0x88]
- bl GetMonData
- mov r2, sp
- movs r6, 0
-_08137DB8:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0x57
- bls _08137DB8
- b _0813821A
- .align 2, 0
-_08137DC8: .4byte gPlayerParty
-_08137DCC: .4byte 0xfffffc1f
-_08137DD0: .4byte 0xfff07fff
-_08137DD4: .4byte 0xfffffe0f
-_08137DD8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137DE4
- adds r0, r1
- movs r1, 0xB
- b _08138152
- .align 2, 0
-_08137DE4: .4byte gPlayerParty
-_08137DE8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137DF4
- adds r0, r1
- movs r1, 0xC
- b _08138152
- .align 2, 0
-_08137DF4: .4byte gPlayerParty
-_08137DF8:
- movs r6, 0
- add r2, sp, 0x58
- mov r9, r2
- add r0, sp, 0x60
- mov r10, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _08137E5C
- adds r4, r1, r0
- mov r8, r9
-_08137E0E:
- adds r1, r6, 0
- adds r1, 0xD
- adds r0, r4, 0
- bl GetMonData
- mov r1, r8
- strh r0, [r1]
- adds r1, r6, 0
- adds r1, 0x11
- adds r0, r4, 0
- bl GetMonData
- mov r2, r10
- adds r1, r2, r6
- strb r0, [r1]
- movs r0, 0x2
- add r8, r0
- adds r6, 0x1
- cmp r6, 0x3
- ble _08137E0E
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137E5C
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- mov r1, r9
- strb r0, [r1, 0xC]
- mov r2, r9
- movs r6, 0
-_08137E4C:
- adds r0, r7, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0xF
- bls _08137E4C
- b _0813821A
- .align 2, 0
-_08137E5C: .4byte gPlayerParty
-_08137E60:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137E78
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x9
- b _08138152
- .align 2, 0
-_08137E78: .4byte gPlayerParty
-_08137E7C:
- movs r6, 0
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r2, _08137EB4
- mov r8, r2
-_08137E88:
- adds r1, r6, 0
- adds r1, 0x11
- mov r2, r8
- adds r0, r4, r2
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- cmp r6, 0x3
- ble _08137E88
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137EB4
- adds r0, r1
- movs r1, 0x15
- bl GetMonData
- adds r1, r7, r6
- strb r0, [r1]
- adds r6, 0x1
- b _0813821A
- .align 2, 0
-_08137EB4: .4byte gPlayerParty
-_08137EB8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137ED0
- adds r0, r1
- ldrb r1, [r3]
- lsls r1, 9
- adds r2, 0x1
- adds r1, r2
- ldrb r1, [r1]
- adds r1, 0x8
- b _08138212
- .align 2, 0
-_08137ED0: .4byte gPlayerParty
-_08137ED4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137EE0
- adds r0, r1
- movs r1, 0x1
- b _08137EEE
- .align 2, 0
-_08137EE0: .4byte gPlayerParty
-_08137EE4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137F10
- adds r0, r1
- movs r1, 0x19
-_08137EEE:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- movs r6, 0x3
- b _0813821A
- .align 2, 0
-_08137F10: .4byte gPlayerParty
-_08137F14:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137F20
- adds r0, r1
- movs r1, 0x1A
- b _08138212
- .align 2, 0
-_08137F20: .4byte gPlayerParty
-_08137F24:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137F30
- adds r0, r1
- movs r1, 0x1B
- b _08138212
- .align 2, 0
-_08137F30: .4byte gPlayerParty
-_08137F34:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137F40
- adds r0, r1
- movs r1, 0x1C
- b _08138212
- .align 2, 0
-_08137F40: .4byte gPlayerParty
-_08137F44:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137F50
- adds r0, r1
- movs r1, 0x1D
- b _08138212
- .align 2, 0
-_08137F50: .4byte gPlayerParty
-_08137F54:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137F60
- adds r0, r1
- movs r1, 0x1E
- b _08138212
- .align 2, 0
-_08137F60: .4byte gPlayerParty
-_08137F64:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137F70
- adds r0, r1
- movs r1, 0x1F
- b _08138212
- .align 2, 0
-_08137F70: .4byte gPlayerParty
-_08137F74:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137F80
- adds r0, r1
- movs r1, 0x20
- b _08138212
- .align 2, 0
-_08137F80: .4byte gPlayerParty
-_08137F84:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137F90
- adds r0, r1
- movs r1, 0x22
- b _08138212
- .align 2, 0
-_08137F90: .4byte gPlayerParty
-_08137F94:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137FA0
- adds r0, r1
- movs r1, 0x23
- b _08138212
- .align 2, 0
-_08137FA0: .4byte gPlayerParty
-_08137FA4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137FB0
- adds r0, r1
- movs r1, 0x24
- b _08138212
- .align 2, 0
-_08137FB0: .4byte gPlayerParty
-_08137FB4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137FC0
- adds r0, r1
- movs r1, 0x25
- b _08138212
- .align 2, 0
-_08137FC0: .4byte gPlayerParty
-_08137FC4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08137FD0
- adds r0, r1
- movs r1, 0x26
- b _08138212
- .align 2, 0
-_08137FD0: .4byte gPlayerParty
-_08137FD4:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _08138020
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x27
- bl GetMonData
- strb r0, [r7]
- adds r0, r4, 0
- movs r1, 0x28
- bl GetMonData
- strb r0, [r7, 0x1]
- adds r0, r4, 0
- movs r1, 0x29
- bl GetMonData
- strb r0, [r7, 0x2]
- adds r0, r4, 0
- movs r1, 0x2A
- bl GetMonData
- strb r0, [r7, 0x3]
- adds r0, r4, 0
- movs r1, 0x2B
- bl GetMonData
- strb r0, [r7, 0x4]
- adds r0, r4, 0
- movs r1, 0x2C
- bl GetMonData
- strb r0, [r7, 0x5]
- movs r6, 0x6
- b _0813821A
- .align 2, 0
-_08138020: .4byte gPlayerParty
-_08138024:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138030
- adds r0, r1
- movs r1, 0x27
- b _08138212
- .align 2, 0
-_08138030: .4byte gPlayerParty
-_08138034:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138040
- adds r0, r1
- movs r1, 0x28
- b _08138212
- .align 2, 0
-_08138040: .4byte gPlayerParty
-_08138044:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138050
- adds r0, r1
- movs r1, 0x29
- b _08138212
- .align 2, 0
-_08138050: .4byte gPlayerParty
-_08138054:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138060
- adds r0, r1
- movs r1, 0x2A
- b _08138212
- .align 2, 0
-_08138060: .4byte gPlayerParty
-_08138064:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138070
- adds r0, r1
- movs r1, 0x2B
- b _08138212
- .align 2, 0
-_08138070: .4byte gPlayerParty
-_08138074:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138080
- adds r0, r1
- movs r1, 0x2C
- b _08138212
- .align 2, 0
-_08138080: .4byte gPlayerParty
-_08138084:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138090
- adds r0, r1
- movs r1, 0
- b _081380AE
- .align 2, 0
-_08138090: .4byte gPlayerParty
-_08138094:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081380A0
- adds r0, r1
- movs r1, 0x9
- b _08138152
- .align 2, 0
-_081380A0: .4byte gPlayerParty
-_081380A4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081380D4
- adds r0, r1
- movs r1, 0x37
-_081380AE:
- bl GetMonData
- adds r1, r0, 0
- strb r1, [r7]
- movs r0, 0xFF
- lsls r0, 8
- ands r0, r1
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r0, 0xFF
- lsls r0, 16
- ands r0, r1
- lsrs r0, 16
- strb r0, [r7, 0x2]
- lsrs r0, r1, 24
- strb r0, [r7, 0x3]
- movs r6, 0x4
- b _0813821A
- .align 2, 0
-_081380D4: .4byte gPlayerParty
-_081380D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081380E4
- adds r0, r1
- movs r1, 0x38
- b _08138212
- .align 2, 0
-_081380E4: .4byte gPlayerParty
-_081380E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081380F4
- adds r0, r1
- movs r1, 0x39
- b _08138152
- .align 2, 0
-_081380F4: .4byte gPlayerParty
-_081380F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138104
- adds r0, r1
- movs r1, 0x3A
- b _08138152
- .align 2, 0
-_08138104: .4byte gPlayerParty
-_08138108:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138114
- adds r0, r1
- movs r1, 0x3B
- b _08138152
- .align 2, 0
-_08138114: .4byte gPlayerParty
-_08138118:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138124
- adds r0, r1
- movs r1, 0x3C
- b _08138152
- .align 2, 0
-_08138124: .4byte gPlayerParty
-_08138128:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138134
- adds r0, r1
- movs r1, 0x3D
- b _08138152
- .align 2, 0
-_08138134: .4byte gPlayerParty
-_08138138:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138144
- adds r0, r1
- movs r1, 0x3E
- b _08138152
- .align 2, 0
-_08138144: .4byte gPlayerParty
-_08138148:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138164
- adds r0, r1
- movs r1, 0x3F
-_08138152:
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- strb r0, [r7]
- lsrs r0, 8
- strb r0, [r7, 0x1]
- movs r6, 0x2
- b _0813821A
- .align 2, 0
-_08138164: .4byte gPlayerParty
-_08138168:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138174
- adds r0, r1
- movs r1, 0x16
- b _08138212
- .align 2, 0
-_08138174: .4byte gPlayerParty
-_08138178:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138184
- adds r0, r1
- movs r1, 0x17
- b _08138212
- .align 2, 0
-_08138184: .4byte gPlayerParty
-_08138188:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138194
- adds r0, r1
- movs r1, 0x18
- b _08138212
- .align 2, 0
-_08138194: .4byte gPlayerParty
-_08138198:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081381A4
- adds r0, r1
- movs r1, 0x21
- b _08138212
- .align 2, 0
-_081381A4: .4byte gPlayerParty
-_081381A8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081381B4
- adds r0, r1
- movs r1, 0x2F
- b _08138212
- .align 2, 0
-_081381B4: .4byte gPlayerParty
-_081381B8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081381C4
- adds r0, r1
- movs r1, 0x30
- b _08138212
- .align 2, 0
-_081381C4: .4byte gPlayerParty
-_081381C8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081381D4
- adds r0, r1
- movs r1, 0x32
- b _08138212
- .align 2, 0
-_081381D4: .4byte gPlayerParty
-_081381D8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081381E4
- adds r0, r1
- movs r1, 0x33
- b _08138212
- .align 2, 0
-_081381E4: .4byte gPlayerParty
-_081381E8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081381F4
- adds r0, r1
- movs r1, 0x34
- b _08138212
- .align 2, 0
-_081381F4: .4byte gPlayerParty
-_081381F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138204
- adds r0, r1
- movs r1, 0x35
- b _08138212
- .align 2, 0
-_08138204: .4byte gPlayerParty
-_08138208:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813822C
- adds r0, r1
- movs r1, 0x36
-_08138212:
- bl GetMonData
- strb r0, [r7]
- movs r6, 0x1
-_0813821A:
- adds r0, r6, 0
- add sp, 0x90
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0813822C: .4byte gPlayerParty
- thumb_func_end sub_8137A84
-
- thumb_func_start sub_8138230
-sub_8138230: @ 8138230
- push {lr}
- bl sub_802ECF0
- pop {r0}
- bx r0
- thumb_func_end sub_8138230
-
- thumb_func_start sub_813823C
-sub_813823C: @ 813823C
- push {r4,r5,lr}
- ldr r1, _08138260
- ldr r0, _08138264
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x2
- adds r1, r0, r1
- ldrb r0, [r1]
- cmp r0, 0
- bne _0813826C
- ldr r0, _08138268
- lsls r1, r2, 1
- adds r1, r0
- ldrb r0, [r1]
- bl sub_8138294
- b _0813828A
- .align 2, 0
-_08138260: .4byte gUnknown_02023A60
-_08138264: .4byte gUnknown_02024A60
-_08138268: .4byte gUnknown_02024A6A
-_0813826C:
- ldrb r4, [r1]
- movs r5, 0
-_08138270:
- movs r0, 0x1
- ands r0, r4
- cmp r0, 0
- beq _0813827E
- adds r0, r5, 0
- bl sub_8138294
-_0813827E:
- lsrs r4, 1
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08138270
-_0813828A:
- bl dp01_tbl5_exec_completed
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813823C
-
- thumb_func_start sub_8138294
-sub_8138294: @ 8138294
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x34
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _081382CC
- ldrb r0, [r0]
- lsls r0, 9
- ldr r2, _081382D0
- adds r3, r0, r2
- adds r6, r3, 0
- subs r1, r2, 0x2
- adds r0, r1
- ldrb r0, [r0]
- adds r7, r2, 0
- cmp r0, 0x3B
- bls _081382C0
- bl _08138C5A
-_081382C0:
- lsls r0, 2
- ldr r1, _081382D4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081382CC: .4byte gUnknown_02024A60
-_081382D0: .4byte gUnknown_02023A63
-_081382D4: .4byte _081382D8
- .align 2, 0
-_081382D8:
- .4byte _081383C8
- .4byte _08138560
- .4byte _08138580
- .4byte _081385A0
- .4byte _081385F8
- .4byte _081385F8
- .4byte _081385F8
- .4byte _081385F8
- .4byte _08138620
- .4byte _08138684
- .4byte _08138684
- .4byte _08138684
- .4byte _08138684
- .4byte _08138C5A
- .4byte _08138C5A
- .4byte _08138C5A
- .4byte _08138C5A
- .4byte _081386B4
- .4byte _081386D4
- .4byte _081386F4
- .4byte _08138714
- .4byte _08138734
- .4byte _08138754
- .4byte _08138774
- .4byte _08138794
- .4byte _081387B4
- .4byte _081387D4
- .4byte _081387F4
- .4byte _08138814
- .4byte _08138834
- .4byte _08138854
- .4byte _08138874
- .4byte _081388E4
- .4byte _08138904
- .4byte _08138924
- .4byte _08138944
- .4byte _08138964
- .4byte _08138984
- .4byte _081389A4
- .4byte _081389C4
- .4byte _081389E4
- .4byte _08138A04
- .4byte _08138A24
- .4byte _08138A44
- .4byte _08138A64
- .4byte _08138A84
- .4byte _08138AA4
- .4byte _08138AC4
- .4byte _08138AE4
- .4byte _08138B04
- .4byte _08138B24
- .4byte _08138B44
- .4byte _08138B64
- .4byte _08138B84
- .4byte _08138BA4
- .4byte _08138BC4
- .4byte _08138BE4
- .4byte _08138C04
- .4byte _08138C24
- .4byte _08138C44
-_081383C8:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0813855C
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- adds r2, r6, 0
- bl SetMonData
- adds r2, r6, 0
- adds r2, 0x2E
- adds r0, r4, 0
- movs r1, 0xC
- bl SetMonData
- movs r0, 0
- mov r8, r0
- movs r0, 0x3B
- adds r0, r6
- mov r10, r0
- adds r0, r6, 0
- adds r0, 0x2B
- str r0, [sp, 0x20]
- adds r0, 0x19
- str r0, [sp, 0x28]
- adds r0, 0x4
- str r0, [sp, 0x2C]
- adds r0, 0x4
- str r0, [sp, 0x30]
- subs r0, 0x22
- str r0, [sp, 0x1C]
- subs r0, 0x2
- str r0, [sp, 0x18]
- adds r0, 0x4
- str r0, [sp, 0x24]
- adds r0, r6, 0x2
- str r0, [sp, 0x4]
- adds r0, r6, 0x4
- str r0, [sp, 0x8]
- adds r0, r6, 0x6
- str r0, [sp, 0xC]
- adds r0, 0x2
- str r0, [sp, 0x10]
- adds r0, 0x2
- str r0, [sp, 0x14]
- mov r9, r4
- adds r7, r6, 0
- adds r7, 0x24
- adds r4, r6, 0
- adds r4, 0xC
-_0813842E:
- mov r1, r8
- adds r1, 0xD
- mov r0, r9
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- mov r0, r9
- adds r2, r7, 0
- bl SetMonData
- adds r7, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _0813842E
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0813855C
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x15
- mov r2, r10
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x20
- ldr r2, [sp, 0x20]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x19
- ldr r2, [sp, 0x28]
- bl SetMonData
- ldrb r0, [r6, 0x14]
- lsls r0, 27
- lsrs r0, 27
- mov r1, sp
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x27
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r6, 0x14]
- lsls r0, 22
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x28
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r6, 0x15]
- lsls r0, 25
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x29
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldr r0, [r6, 0x14]
- lsls r0, 12
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2A
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrh r0, [r6, 0x16]
- lsls r0, 23
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2B
- mov r2, sp
- bl SetMonData
- mov r1, sp
- ldrb r0, [r6, 0x17]
- lsls r0, 26
- lsrs r0, 27
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2C
- mov r2, sp
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0
- ldr r2, [sp, 0x2C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x37
- ldr r2, [sp, 0x30]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x38
- ldr r2, [sp, 0x1C]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x39
- ldr r2, [sp, 0x18]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3A
- ldr r2, [sp, 0x24]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3B
- ldr r2, [sp, 0x4]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3C
- ldr r2, [sp, 0x8]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3D
- ldr r2, [sp, 0xC]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3E
- ldr r2, [sp, 0x10]
- bl SetMonData
- adds r0, r4, 0
- movs r1, 0x3F
- ldr r2, [sp, 0x14]
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813855C: .4byte gPlayerParty
-_08138560:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138578
- adds r0, r1
- ldr r1, _0813857C
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0xB
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138578: .4byte gPlayerParty
-_0813857C: .4byte gUnknown_02024A60
-_08138580:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138598
- adds r0, r1
- ldr r1, _0813859C
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0xC
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138598: .4byte gPlayerParty
-_0813859C: .4byte gUnknown_02024A60
-_081385A0:
- movs r0, 0
- mov r8, r0
- movs r0, 0xC
- adds r0, r3
- mov r9, r0
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _081385F4
- adds r7, r1, r0
- adds r6, r3, 0
- adds r6, 0x8
- adds r4, r3, 0
-_081385BA:
- mov r1, r8
- adds r1, 0xD
- adds r0, r7, 0
- adds r2, r4, 0
- bl SetMonData
- mov r1, r8
- adds r1, 0x11
- adds r0, r7, 0
- adds r2, r6, 0
- bl SetMonData
- adds r6, 0x1
- adds r4, 0x2
- movs r0, 0x1
- add r8, r0
- mov r0, r8
- cmp r0, 0x3
- ble _081385BA
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081385F4
- adds r0, r1
- movs r1, 0x15
- mov r2, r9
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081385F4: .4byte gPlayerParty
-_081385F8:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138614
- adds r0, r1
- ldr r3, _08138618
- ldr r1, _0813861C
- ldrb r2, [r1]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x9
- b _0813869C
- .align 2, 0
-_08138614: .4byte gPlayerParty
-_08138618: .4byte gUnknown_02023A60
-_0813861C: .4byte gUnknown_02024A60
-_08138620:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _0813867C
- adds r4, r0
- ldr r5, _08138680
- ldrb r2, [r5]
- lsls r2, 9
- adds r2, r7
- adds r0, r4, 0
- movs r1, 0x11
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x12
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x13
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x14
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x15
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813867C: .4byte gPlayerParty
-_08138680: .4byte gUnknown_02024A60
-_08138684:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081386A8
- adds r0, r1
- ldr r3, _081386AC
- ldr r1, _081386B0
- ldrb r2, [r1]
- lsls r2, 9
- adds r1, r3, 0x1
- adds r1, r2, r1
- ldrb r1, [r1]
- adds r1, 0x8
-_0813869C:
- adds r3, 0x3
- adds r2, r3
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081386A8: .4byte gPlayerParty
-_081386AC: .4byte gUnknown_02023A60
-_081386B0: .4byte gUnknown_02024A60
-_081386B4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081386CC
- adds r0, r1
- ldr r1, _081386D0
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081386CC: .4byte gPlayerParty
-_081386D0: .4byte gUnknown_02024A60
-_081386D4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081386EC
- adds r0, r1
- ldr r1, _081386F0
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x19
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081386EC: .4byte gPlayerParty
-_081386F0: .4byte gUnknown_02024A60
-_081386F4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813870C
- adds r0, r1
- ldr r1, _08138710
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1A
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813870C: .4byte gPlayerParty
-_08138710: .4byte gUnknown_02024A60
-_08138714:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813872C
- adds r0, r1
- ldr r1, _08138730
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1B
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813872C: .4byte gPlayerParty
-_08138730: .4byte gUnknown_02024A60
-_08138734:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813874C
- adds r0, r1
- ldr r1, _08138750
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1C
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813874C: .4byte gPlayerParty
-_08138750: .4byte gUnknown_02024A60
-_08138754:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813876C
- adds r0, r1
- ldr r1, _08138770
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1D
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813876C: .4byte gPlayerParty
-_08138770: .4byte gUnknown_02024A60
-_08138774:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813878C
- adds r0, r1
- ldr r1, _08138790
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1E
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813878C: .4byte gPlayerParty
-_08138790: .4byte gUnknown_02024A60
-_08138794:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081387AC
- adds r0, r1
- ldr r1, _081387B0
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x1F
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081387AC: .4byte gPlayerParty
-_081387B0: .4byte gUnknown_02024A60
-_081387B4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081387CC
- adds r0, r1
- ldr r1, _081387D0
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x20
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081387CC: .4byte gPlayerParty
-_081387D0: .4byte gUnknown_02024A60
-_081387D4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081387EC
- adds r0, r1
- ldr r1, _081387F0
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x22
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081387EC: .4byte gPlayerParty
-_081387F0: .4byte gUnknown_02024A60
-_081387F4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813880C
- adds r0, r1
- ldr r1, _08138810
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x23
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813880C: .4byte gPlayerParty
-_08138810: .4byte gUnknown_02024A60
-_08138814:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813882C
- adds r0, r1
- ldr r1, _08138830
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x24
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813882C: .4byte gPlayerParty
-_08138830: .4byte gUnknown_02024A60
-_08138834:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813884C
- adds r0, r1
- ldr r1, _08138850
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x25
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813884C: .4byte gPlayerParty
-_08138850: .4byte gUnknown_02024A60
-_08138854:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813886C
- adds r0, r1
- ldr r1, _08138870
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x26
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813886C: .4byte gPlayerParty
-_08138870: .4byte gUnknown_02024A60
-_08138874:
- movs r0, 0x64
- adds r4, r5, 0
- muls r4, r0
- ldr r0, _081388DC
- adds r4, r0
- ldr r5, _081388E0
- ldrb r2, [r5]
- lsls r2, 9
- adds r2, r7
- adds r0, r4, 0
- movs r1, 0x27
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x1
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x28
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x2
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x29
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x3
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2A
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x4
- adds r2, r0
- adds r0, r4, 0
- movs r1, 0x2B
- bl SetMonData
- ldrb r2, [r5]
- lsls r2, 9
- adds r0, r7, 0x5
- adds r2, r0
- adds r0, r4, 0
- b _08138994
- .align 2, 0
-_081388DC: .4byte gPlayerParty
-_081388E0: .4byte gUnknown_02024A60
-_081388E4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081388FC
- adds r0, r1
- ldr r1, _08138900
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x27
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081388FC: .4byte gPlayerParty
-_08138900: .4byte gUnknown_02024A60
-_08138904:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813891C
- adds r0, r1
- ldr r1, _08138920
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x28
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813891C: .4byte gPlayerParty
-_08138920: .4byte gUnknown_02024A60
-_08138924:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813893C
- adds r0, r1
- ldr r1, _08138940
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x29
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813893C: .4byte gPlayerParty
-_08138940: .4byte gUnknown_02024A60
-_08138944:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813895C
- adds r0, r1
- ldr r1, _08138960
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2A
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813895C: .4byte gPlayerParty
-_08138960: .4byte gUnknown_02024A60
-_08138964:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813897C
- adds r0, r1
- ldr r1, _08138980
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2B
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813897C: .4byte gPlayerParty
-_08138980: .4byte gUnknown_02024A60
-_08138984:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0813899C
- adds r0, r1
- ldr r1, _081389A0
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
-_08138994:
- movs r1, 0x2C
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_0813899C: .4byte gPlayerParty
-_081389A0: .4byte gUnknown_02024A60
-_081389A4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081389BC
- adds r0, r1
- ldr r1, _081389C0
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081389BC: .4byte gPlayerParty
-_081389C0: .4byte gUnknown_02024A60
-_081389C4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081389DC
- adds r0, r1
- ldr r1, _081389E0
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x9
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081389DC: .4byte gPlayerParty
-_081389E0: .4byte gUnknown_02024A60
-_081389E4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _081389FC
- adds r0, r1
- ldr r1, _08138A00
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x37
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_081389FC: .4byte gPlayerParty
-_08138A00: .4byte gUnknown_02024A60
-_08138A04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138A1C
- adds r0, r1
- ldr r1, _08138A20
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x38
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138A1C: .4byte gPlayerParty
-_08138A20: .4byte gUnknown_02024A60
-_08138A24:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138A3C
- adds r0, r1
- ldr r1, _08138A40
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x39
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138A3C: .4byte gPlayerParty
-_08138A40: .4byte gUnknown_02024A60
-_08138A44:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138A5C
- adds r0, r1
- ldr r1, _08138A60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3A
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138A5C: .4byte gPlayerParty
-_08138A60: .4byte gUnknown_02024A60
-_08138A64:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138A7C
- adds r0, r1
- ldr r1, _08138A80
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3B
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138A7C: .4byte gPlayerParty
-_08138A80: .4byte gUnknown_02024A60
-_08138A84:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138A9C
- adds r0, r1
- ldr r1, _08138AA0
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3C
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138A9C: .4byte gPlayerParty
-_08138AA0: .4byte gUnknown_02024A60
-_08138AA4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138ABC
- adds r0, r1
- ldr r1, _08138AC0
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3D
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138ABC: .4byte gPlayerParty
-_08138AC0: .4byte gUnknown_02024A60
-_08138AC4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138ADC
- adds r0, r1
- ldr r1, _08138AE0
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3E
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138ADC: .4byte gPlayerParty
-_08138AE0: .4byte gUnknown_02024A60
-_08138AE4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138AFC
- adds r0, r1
- ldr r1, _08138B00
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x3F
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138AFC: .4byte gPlayerParty
-_08138B00: .4byte gUnknown_02024A60
-_08138B04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138B1C
- adds r0, r1
- ldr r1, _08138B20
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x16
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138B1C: .4byte gPlayerParty
-_08138B20: .4byte gUnknown_02024A60
-_08138B24:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138B3C
- adds r0, r1
- ldr r1, _08138B40
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x17
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138B3C: .4byte gPlayerParty
-_08138B40: .4byte gUnknown_02024A60
-_08138B44:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138B5C
- adds r0, r1
- ldr r1, _08138B60
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x18
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138B5C: .4byte gPlayerParty
-_08138B60: .4byte gUnknown_02024A60
-_08138B64:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138B7C
- adds r0, r1
- ldr r1, _08138B80
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x21
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138B7C: .4byte gPlayerParty
-_08138B80: .4byte gUnknown_02024A60
-_08138B84:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138B9C
- adds r0, r1
- ldr r1, _08138BA0
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x2F
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138B9C: .4byte gPlayerParty
-_08138BA0: .4byte gUnknown_02024A60
-_08138BA4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138BBC
- adds r0, r1
- ldr r1, _08138BC0
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x30
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138BBC: .4byte gPlayerParty
-_08138BC0: .4byte gUnknown_02024A60
-_08138BC4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138BDC
- adds r0, r1
- ldr r1, _08138BE0
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x32
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138BDC: .4byte gPlayerParty
-_08138BE0: .4byte gUnknown_02024A60
-_08138BE4:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138BFC
- adds r0, r1
- ldr r1, _08138C00
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x33
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138BFC: .4byte gPlayerParty
-_08138C00: .4byte gUnknown_02024A60
-_08138C04:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138C1C
- adds r0, r1
- ldr r1, _08138C20
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x34
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138C1C: .4byte gPlayerParty
-_08138C20: .4byte gUnknown_02024A60
-_08138C24:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138C3C
- adds r0, r1
- ldr r1, _08138C40
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x35
- bl SetMonData
- b _08138C5A
- .align 2, 0
-_08138C3C: .4byte gPlayerParty
-_08138C40: .4byte gUnknown_02024A60
-_08138C44:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _08138C84
- adds r0, r1
- ldr r1, _08138C88
- ldrb r2, [r1]
- lsls r2, 9
- adds r2, r7
- movs r1, 0x36
- bl SetMonData
-_08138C5A:
- ldr r2, _08138C8C
- ldr r0, _08138C88
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r2
- ldrh r2, [r0]
- movs r0, 0x64
- muls r0, r2
- ldr r2, _08138C84
- adds r0, r2
- bl sub_80324F8
- add sp, 0x34
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08138C84: .4byte gPlayerParty
-_08138C88: .4byte gUnknown_02024A60
-_08138C8C: .4byte gUnknown_02024A6A
- thumb_func_end sub_8138294
-
- thumb_func_start sub_8138C90
-sub_8138C90: @ 8138C90
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8138C90
-
- thumb_func_start sub_8138C9C
-sub_8138C9C: @ 8138C9C
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8138C9C
-
- thumb_func_start sub_8138CA8
-sub_8138CA8: @ 8138CA8
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8138CA8
-
- thumb_func_start sub_8138CB4
-sub_8138CB4: @ 8138CB4
- push {r4-r6,lr}
- ldr r0, _08138CE0
- ldr r6, _08138CE4
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- cmp r0, 0
- bne _08138CF0
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x1
- bl move_anim_start_t4
- ldr r0, _08138CE8
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _08138CEC
- str r0, [r1]
- b _08138D26
- .align 2, 0
-_08138CE0: .4byte gUnknown_02023A60
-_08138CE4: .4byte gUnknown_02024A60
-_08138CE8: .4byte gUnknown_03004330
-_08138CEC: .4byte sub_813789C
-_08138CF0:
- ldr r5, _08138D2C
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _08138D30
- adds r0, r4
- bl FreeSpriteOamMatrix
- ldrb r0, [r6]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r1, _08138D34
- ldrb r0, [r6]
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8043DB0
- bl dp01_tbl5_exec_completed
-_08138D26:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08138D2C: .4byte gUnknown_02024BE0
-_08138D30: .4byte gSprites
-_08138D34: .4byte gUnknown_03004340
- thumb_func_end sub_8138CB4
-
- thumb_func_start sub_8138D38
-sub_8138D38: @ 8138D38
- push {r4-r6,lr}
- ldr r4, _08138DE0
- ldrb r1, [r4]
- movs r0, 0x2
- bl sub_8031AF4
- ldrb r0, [r4]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x2
- bl GetMonSpriteTemplate_803C5A0
- ldr r0, _08138DE4
- ldr r1, _08138DE8
- ldrb r1, [r1, 0x8]
- movs r2, 0x8
- subs r2, r1
- lsls r2, 18
- movs r1, 0xA0
- lsls r1, 15
- adds r2, r1
- asrs r2, 16
- movs r1, 0x50
- movs r3, 0x1E
- bl CreateSprite
- ldr r6, _08138DEC
- ldrb r1, [r4]
- adds r1, r6
- strb r0, [r1]
- ldr r5, _08138DF0
- ldrb r3, [r4]
- adds r0, r3, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0xF0
- strh r1, [r0, 0x24]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08138DF4
- strh r1, [r0, 0x2E]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r5, 0x1C
- adds r0, r5
- ldr r1, _08138DF8
- str r1, [r0]
- ldr r1, _08138DFC
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08138E00
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08138DE0: .4byte gUnknown_02024A60
-_08138DE4: .4byte gUnknown_02024E8C
-_08138DE8: .4byte gTrainerBackPicCoords
-_08138DEC: .4byte gUnknown_02024BE0
-_08138DF0: .4byte gSprites
-_08138DF4: .4byte 0x0000fffe
-_08138DF8: .4byte sub_80313A0
-_08138DFC: .4byte gUnknown_03004330
-_08138E00: .4byte sub_813741C
- thumb_func_end sub_8138D38
-
- thumb_func_start sub_8138E04
-sub_8138E04: @ 8138E04
- push {r4-r6,lr}
- ldr r4, _08138EAC
- ldrb r1, [r4]
- movs r0, 0x2
- bl sub_8031AF4
- ldrb r0, [r4]
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x2
- bl GetMonSpriteTemplate_803C5A0
- ldr r0, _08138EB0
- ldr r1, _08138EB4
- ldrb r1, [r1, 0x8]
- movs r2, 0x8
- subs r2, r1
- lsls r2, 18
- movs r1, 0xA0
- lsls r1, 15
- adds r2, r1
- asrs r2, 16
- movs r1, 0x50
- movs r3, 0x1E
- bl CreateSprite
- ldr r6, _08138EB8
- ldrb r1, [r4]
- adds r1, r6
- strb r0, [r1]
- ldr r5, _08138EBC
- ldrb r3, [r4]
- adds r0, r3, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08138EC0
- strh r1, [r0, 0x24]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x2
- strh r1, [r0, 0x2E]
- ldrb r0, [r4]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r5, 0x1C
- adds r0, r5
- ldr r1, _08138EC4
- str r1, [r0]
- ldr r1, _08138EC8
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08138ECC
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08138EAC: .4byte gUnknown_02024A60
-_08138EB0: .4byte gUnknown_02024E8C
-_08138EB4: .4byte gTrainerBackPicCoords
-_08138EB8: .4byte gUnknown_02024BE0
-_08138EBC: .4byte gSprites
-_08138EC0: .4byte 0x0000ffa0
-_08138EC4: .4byte sub_80313A0
-_08138EC8: .4byte gUnknown_03004330
-_08138ECC: .4byte sub_8137908
- thumb_func_end sub_8138E04
-
- thumb_func_start sub_8138ED0
-sub_8138ED0: @ 8138ED0
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8138ED0
-
- thumb_func_start sub_8138EDC
-sub_8138EDC: @ 8138EDC
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8138EDC
-
- thumb_func_start sub_8138EE8
-sub_8138EE8: @ 8138EE8
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8138EE8
-
- thumb_func_start sub_8138EF4
-sub_8138EF4: @ 8138EF4
- push {r4,r5,lr}
- ldr r1, _08138F30
- movs r0, 0x4
- strb r0, [r1, 0x8]
- ldr r1, _08138F34
- movs r0, 0x1
- strb r0, [r1]
- ldr r5, _08138F38
- ldrb r4, [r5]
- movs r0, 0x1
- bl battle_get_side_with_given_state
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x4
- bl move_anim_start_t4
- ldr r1, _08138F3C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08138F40
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08138F30: .4byte 0x02017840
-_08138F34: .4byte gUnknown_02024E6D
-_08138F38: .4byte gUnknown_02024A60
-_08138F3C: .4byte gUnknown_03004330
-_08138F40: .4byte bx_wait_t5
- thumb_func_end sub_8138EF4
-
- thumb_func_start sub_8138F44
-sub_8138F44: @ 8138F44
- push {r4,r5,lr}
- ldr r1, _08138F88
- ldr r5, _08138F8C
- ldrb r0, [r5]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r1, [r0]
- ldr r0, _08138F90
- strb r1, [r0, 0x8]
- ldr r1, _08138F94
- movs r0, 0x1
- strb r0, [r1]
- ldrb r4, [r5]
- movs r0, 0x1
- bl battle_get_side_with_given_state
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r4, 0
- movs r3, 0x4
- bl move_anim_start_t4
- ldr r1, _08138F98
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08138F9C
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08138F88: .4byte gUnknown_02023A60
-_08138F8C: .4byte gUnknown_02024A60
-_08138F90: .4byte 0x02017840
-_08138F94: .4byte gUnknown_02024E6D
-_08138F98: .4byte gUnknown_03004330
-_08138F9C: .4byte bx_wait_t5
- thumb_func_end sub_8138F44
-
- thumb_func_start sub_8138FA0
-sub_8138FA0: @ 8138FA0
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8138FA0
-
- thumb_func_start sub_8138FAC
-sub_8138FAC: @ 8138FAC
- push {r4-r6,lr}
- ldr r0, _08139080
- mov r12, r0
- ldr r6, _08139084
- ldrb r2, [r6]
- lsls r2, 9
- adds r0, 0x1
- adds r0, r2, r0
- ldrb r0, [r0]
- mov r1, r12
- adds r1, 0x2
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- ldr r5, _08139088
- mov r1, r12
- adds r1, 0x3
- adds r2, r1
- ldrb r1, [r2]
- strb r1, [r5]
- ldr r4, _0813908C
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x4
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x5
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r4, _08139090
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x6
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0x7
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 8
- orrs r3, r1
- mov r1, r12
- adds r1, 0x8
- adds r1, r2, r1
- ldrb r1, [r1]
- lsls r1, 16
- orrs r3, r1
- mov r1, r12
- adds r1, 0x9
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 24
- orrs r3, r1
- str r3, [r4]
- ldr r3, _08139094
- ldrb r1, [r6]
- lsls r1, 9
- mov r2, r12
- adds r2, 0xA
- adds r1, r2
- ldrb r1, [r1]
- strb r1, [r3]
- ldr r4, _08139098
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0xC
- adds r1, r2, r1
- ldrb r3, [r1]
- mov r1, r12
- adds r1, 0xD
- adds r2, r1
- ldrb r1, [r2]
- lsls r1, 8
- orrs r3, r1
- strh r3, [r4]
- ldr r3, _0813909C
- ldrb r2, [r6]
- lsls r2, 9
- mov r1, r12
- adds r1, 0x10
- adds r2, r1
- str r2, [r3]
- ldr r3, _081390A0
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r3
- ldr r2, [r2]
- str r2, [r1]
- ldrb r1, [r5]
- bl sub_8031720
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _081390A4
- bl dp01_tbl5_exec_completed
- b _081390BE
- .align 2, 0
-_08139080: .4byte gUnknown_02023A60
-_08139084: .4byte gUnknown_02024A60
-_08139088: .4byte gUnknown_0202F7C4
-_0813908C: .4byte gUnknown_0202F7BC
-_08139090: .4byte gUnknown_0202F7B8
-_08139094: .4byte gUnknown_0202F7BE
-_08139098: .4byte gUnknown_0202F7C0
-_0813909C: .4byte gUnknown_0202F7B4
-_081390A0: .4byte gUnknown_02024E70
-_081390A4:
- ldrb r1, [r6]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _081390C4
- adds r0, r1
- strb r2, [r0, 0x4]
- ldr r1, _081390C8
- ldrb r0, [r6]
- lsls r0, 2
- adds r0, r1
- ldr r1, _081390CC
- str r1, [r0]
-_081390BE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081390C4: .4byte 0x02017810
-_081390C8: .4byte gUnknown_03004330
-_081390CC: .4byte sub_81390D0
- thumb_func_end sub_8138FAC
-
- thumb_func_start sub_81390D0
-sub_81390D0: @ 81390D0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r2, _0813910C
- ldr r5, _08139110
- ldrb r3, [r5]
- lsls r1, r3, 9
- adds r0, r2, 0x1
- mov r8, r0
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r7, r2, 0x2
- adds r1, r7
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r6, _08139114
- adds r0, r6
- ldrb r2, [r0, 0x4]
- cmp r2, 0x1
- beq _08139150
- cmp r2, 0x1
- bgt _08139118
- cmp r2, 0
- beq _08139122
- b _081391FC
- .align 2, 0
-_0813910C: .4byte gUnknown_02023A60
-_08139110: .4byte gUnknown_02024A60
-_08139114: .4byte 0x02017810
-_08139118:
- cmp r2, 0x2
- beq _08139176
- cmp r2, 0x3
- beq _081391C4
- b _081391FC
-_08139122:
- lsls r0, r3, 2
- adds r1, r6, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08139140
- adds r0, r3, 0
- adds r1, r3, 0
- adds r2, r3, 0
- movs r3, 0x5
- bl move_anim_start_t4
-_08139140:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x1
- strb r0, [r1, 0x4]
- b _081391FC
-_08139150:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _081391FC
- movs r0, 0
- bl sub_80326EC
- adds r0, r4, 0
- bl move_anim_start_t1
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x2
- strb r0, [r1, 0x4]
- b _081391FC
-_08139176:
- ldr r0, _081391BC
- ldr r0, [r0]
- bl _call_via_r0
- ldr r0, _081391C0
- ldrb r0, [r0]
- cmp r0, 0
- bne _081391FC
- movs r0, 0x1
- bl sub_80326EC
- ldrb r2, [r5]
- lsls r0, r2, 2
- adds r1, r6, 0
- subs r1, 0x10
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _081391AA
- adds r0, r2, 0
- adds r1, r2, 0
- movs r3, 0x6
- bl move_anim_start_t4
-_081391AA:
- ldrb r0, [r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- movs r0, 0x3
- strb r0, [r1, 0x4]
- b _081391FC
- .align 2, 0
-_081391BC: .4byte gUnknown_0202F7AC
-_081391C0: .4byte gUnknown_0202F7B1
-_081391C4:
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _081391FC
- bl sub_8031F24
- ldrb r0, [r5]
- lsls r2, r0, 9
- mov r3, r8
- adds r1, r2, r3
- ldrb r1, [r1]
- adds r2, r7
- ldrb r2, [r2]
- lsls r2, 8
- orrs r1, r2
- bl sub_80324BC
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- strb r4, [r0, 0x4]
- bl dp01_tbl5_exec_completed
-_081391FC:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81390D0
-
- thumb_func_start sub_8139208
-sub_8139208: @ 8139208
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r0, _08139254
- movs r1, 0
- strh r1, [r0]
- ldr r0, _08139258
- strh r1, [r0]
- ldr r5, _0813925C
- ldrb r0, [r5]
- lsls r0, 9
- ldr r1, _08139260
- adds r4, r0, r1
- ldrh r0, [r4]
- cmp r0, 0x2
- bne _0813922A
- bl sub_814A7FC
-_0813922A:
- ldrh r0, [r4]
- bl sub_8120AA8
- ldr r0, _08139264
- ldr r1, _08139268
- movs r2, 0xF
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x2
- bl sub_8002EB0
- ldr r1, _0813926C
- ldrb r0, [r5]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08139270
- str r1, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08139254: .4byte gUnknown_030042A4
-_08139258: .4byte gUnknown_030042A0
-_0813925C: .4byte gUnknown_02024A60
-_08139260: .4byte gUnknown_02023A62
-_08139264: .4byte gUnknown_03004210
-_08139268: .4byte gUnknown_020238CC
-_0813926C: .4byte gUnknown_03004330
-_08139270: .4byte sub_8137454
- thumb_func_end sub_8139208
-
- thumb_func_start dp01t_11_5_message_for_player_only
-dp01t_11_5_message_for_player_only: @ 8139274
- push {lr}
- ldr r0, _0813928C
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08139290
- bl sub_8139208
- b _08139294
- .align 2, 0
-_0813928C: .4byte gUnknown_02024A60
-_08139290:
- bl dp01_tbl5_exec_completed
-_08139294:
- pop {r0}
- bx r0
- thumb_func_end dp01t_11_5_message_for_player_only
-
- thumb_func_start sub_8139298
-sub_8139298: @ 8139298
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r0, _0813934C
- movs r2, 0
- strh r2, [r0]
- ldr r1, _08139350
- movs r0, 0xA0
- strh r0, [r1]
- ldr r4, _08139354
- movs r5, 0
- strb r2, [r4, 0x6]
- movs r0, 0x1B
- str r0, [sp]
- movs r0, 0x12
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0x2
- movs r3, 0xF
- bl FillWindowRect_DefaultPalette
- movs r0, 0x10
- str r0, [sp]
- movs r0, 0x24
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0x2
- movs r3, 0x23
- bl FillWindowRect_DefaultPalette
- ldr r1, _08139358
- ldr r0, _0813935C
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08139360
- str r1, [r0]
- ldr r1, _08139364
- movs r2, 0xC8
- lsls r2, 1
- movs r0, 0x23
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x12
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- ldr r1, _08139368
- ldr r3, _0813936C
- str r5, [sp]
- movs r0, 0
- movs r2, 0xC
- bl sub_814A5C0
- movs r4, 0
-_0813930C:
- lsls r0, r4, 24
- lsrs r0, 24
- bl nullsub_8
- adds r4, 0x1
- cmp r4, 0x3
- ble _0813930C
- movs r0, 0
- movs r1, 0
- bl sub_802E3E4
- ldr r0, _08139370
- bl get_battle_strings_
- ldr r4, _08139354
- ldr r1, _08139374
- movs r2, 0xDC
- lsls r2, 1
- movs r0, 0x23
- str r0, [sp]
- adds r0, r4, 0
- movs r3, 0x2
- bl InitWindow
- adds r0, r4, 0
- bl sub_8002F44
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813934C: .4byte gUnknown_030042A4
-_08139350: .4byte gUnknown_030042A0
-_08139354: .4byte gUnknown_03004210
-_08139358: .4byte gUnknown_03004330
-_0813935C: .4byte gUnknown_02024A60
-_08139360: .4byte sub_81372BC
-_08139364: .4byte gUnknown_08400CF3
-_08139368: .4byte 0x0000ffff
-_0813936C: .4byte 0x00002d9f
-_08139370: .4byte gUnknown_08400CCC
-_08139374: .4byte gUnknown_020238CC
- thumb_func_end sub_8139298
-
- thumb_func_start sub_8139378
-sub_8139378: @ 8139378
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139378
-
- thumb_func_start sub_8139384
-sub_8139384: @ 8139384
- push {r4,r5,lr}
- ldr r5, _08139398
- ldr r0, _0813939C
- adds r4, r5, r0
- ldrb r0, [r4]
- cmp r0, 0
- beq _081393A0
- cmp r0, 0x1
- beq _081393B2
- b _081393DE
- .align 2, 0
-_08139398: .4byte 0x02000000
-_0813939C: .4byte 0x000160a9
-_081393A0:
- bl sub_80304A8
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- ldr r0, _081393E4
- adds r1, r5, r0
- movs r0, 0x50
- strb r0, [r1]
-_081393B2:
- ldr r1, _081393E8
- ldr r0, _081393E4
- adds r1, r0
- ldrb r0, [r1]
- subs r0, 0x1
- strb r0, [r1]
- lsls r0, 24
- cmp r0, 0
- bne _081393DE
- bl sub_814A7FC
- movs r0, 0x5
- bl PlaySE
- movs r2, 0x80
- lsls r2, 1
- movs r0, 0x1
- movs r1, 0xA
- bl dp01_build_cmdbuf_x21_a_bb
- bl dp01_tbl5_exec_completed
-_081393DE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081393E4: .4byte 0x000160ab
-_081393E8: .4byte 0x02000000
- thumb_func_end sub_8139384
-
- thumb_func_start sub_81393EC
-sub_81393EC: @ 81393EC
- 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, _0813941C
- ldr r2, _08139420
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08139424
- str r1, [r0]
- ldr r1, _08139428
- ldrb r0, [r2]
- strb r0, [r1]
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0813941C: .4byte gUnknown_03004330
-_08139420: .4byte gUnknown_02024A60
-_08139424: .4byte sub_81374C4
-_08139428: .4byte gUnknown_02024E6C
- thumb_func_end sub_81393EC
-
- thumb_func_start sub_813942C
-sub_813942C: @ 813942C
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_813942C
-
- thumb_func_start sub_8139438
-sub_8139438: @ 8139438
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139438
-
- thumb_func_start sub_8139444
-sub_8139444: @ 8139444
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r0, 0
- bl load_gfxc_health_bar
- ldr r3, _081394BC
- ldr r0, _081394C0
- mov r9, r0
- ldrb r4, [r0]
- lsls r2, r4, 9
- adds r0, r3, 0x2
- adds r0, r2, r0
- ldrb r1, [r0]
- adds r3, 0x3
- adds r2, r3
- ldrb r0, [r2]
- lsls r0, 8
- orrs r1, r0
- lsls r1, 16
- asrs r7, r1, 16
- ldr r0, _081394C4
- cmp r7, r0
- beq _081394D4
- ldr r6, _081394C8
- lsls r0, r4, 1
- adds r0, r6
- ldrh r0, [r0]
- movs r5, 0x64
- muls r0, r5
- ldr r4, _081394CC
- adds r0, r4
- movs r1, 0x3A
- bl GetMonData
- mov r8, r0
- mov r1, r9
- ldrb r0, [r1]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- muls r0, r5
- adds r0, r4
- movs r1, 0x39
- bl GetMonData
- adds r3, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r1, _081394D0
- adds r1, r0, r1
- ldrb r1, [r1]
- str r7, [sp]
- mov r2, r8
- bl sub_8043D84
- b _0813950E
- .align 2, 0
-_081394BC: .4byte gUnknown_02023A60
-_081394C0: .4byte gUnknown_02024A60
-_081394C4: .4byte 0x00007fff
-_081394C8: .4byte gUnknown_02024A6A
-_081394CC: .4byte gPlayerParty
-_081394D0: .4byte gUnknown_03004340
-_081394D4:
- ldr r1, _0813952C
- lsls r0, r4, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08139530
- adds r0, r1
- movs r1, 0x3A
- bl GetMonData
- adds r2, r0, 0
- mov r1, r9
- ldrb r0, [r1]
- ldr r4, _08139534
- adds r1, r0, r4
- ldrb r1, [r1]
- str r7, [sp]
- movs r3, 0
- bl sub_8043D84
- mov r1, r9
- ldrb r0, [r1]
- adds r0, r4
- ldrb r0, [r0]
- movs r1, 0
- movs r2, 0
- bl sub_80440EC
-_0813950E:
- ldr r1, _08139538
- ldr r0, _0813953C
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08139540
- str r1, [r0]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813952C: .4byte gUnknown_02024A6A
-_08139530: .4byte gPlayerParty
-_08139534: .4byte gUnknown_03004340
-_08139538: .4byte gUnknown_03004330
-_0813953C: .4byte gUnknown_02024A60
-_08139540: .4byte sub_81377B0
- thumb_func_end sub_8139444
-
- thumb_func_start sub_8139544
-sub_8139544: @ 8139544
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139544
-
- thumb_func_start sub_8139550
-sub_8139550: @ 8139550
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139550
-
- thumb_func_start sub_813955C
-sub_813955C: @ 813955C
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_813955C
-
- thumb_func_start sub_8139568
-sub_8139568: @ 8139568
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139568
-
- thumb_func_start sub_8139574
-sub_8139574: @ 8139574
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139574
-
- thumb_func_start sub_8139580
-sub_8139580: @ 8139580
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139580
-
- thumb_func_start sub_813958C
-sub_813958C: @ 813958C
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_813958C
-
- thumb_func_start sub_8139598
-sub_8139598: @ 8139598
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139598
-
- thumb_func_start sub_81395A4
-sub_81395A4: @ 81395A4
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81395A4
-
- thumb_func_start sub_81395B0
-sub_81395B0: @ 81395B0
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81395B0
-
- thumb_func_start sub_81395BC
-sub_81395BC: @ 81395BC
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81395BC
-
- thumb_func_start sub_81395C8
-sub_81395C8: @ 81395C8
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81395C8
-
- thumb_func_start sub_81395D4
-sub_81395D4: @ 81395D4
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81395D4
-
- thumb_func_start sub_81395E0
-sub_81395E0: @ 81395E0
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81395E0
-
- thumb_func_start sub_81395EC
-sub_81395EC: @ 81395EC
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81395EC
-
- thumb_func_start sub_81395F8
-sub_81395F8: @ 81395F8
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_81395F8
-
- thumb_func_start sub_8139604
-sub_8139604: @ 8139604
- push {r4,lr}
- ldr r3, _0813962C
- ldr r2, _08139630
- ldr r4, _08139634
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _08139638
- bl dp01_tbl5_exec_completed
- b _08139662
- .align 2, 0
-_0813962C: .4byte gSprites
-_08139630: .4byte gUnknown_02024BE0
-_08139634: .4byte gUnknown_02024A60
-_08139638:
- ldr r1, _08139668
- movs r0, 0x1
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x30]
- ldrb r0, [r4]
- bl sub_8047858
- ldr r1, _0813966C
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08139670
- str r1, [r0]
-_08139662:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08139668: .4byte gUnknown_02024E6D
-_0813966C: .4byte gUnknown_03004330
-_08139670: .4byte bx_blink_t5
- thumb_func_end sub_8139604
-
- thumb_func_start sub_8139674
-sub_8139674: @ 8139674
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139674
-
- thumb_func_start sub_8139680
-sub_8139680: @ 8139680
- push {lr}
- ldr r2, _081396A8
- ldr r0, _081396AC
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlaySE
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_081396A8: .4byte gUnknown_02023A60
-_081396AC: .4byte gUnknown_02024A60
- thumb_func_end sub_8139680
-
- thumb_func_start sub_81396B0
-sub_81396B0: @ 81396B0
- push {lr}
- ldr r2, _081396D8
- ldr r0, _081396DC
- ldrb r1, [r0]
- lsls r1, 9
- adds r0, r2, 0x1
- adds r0, r1, r0
- ldrb r0, [r0]
- adds r2, 0x2
- adds r1, r2
- ldrb r1, [r1]
- lsls r1, 8
- orrs r0, r1
- bl PlayFanfare
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_081396D8: .4byte gUnknown_02023A60
-_081396DC: .4byte gUnknown_02024A60
- thumb_func_end sub_81396B0
-
- thumb_func_start sub_81396E0
-sub_81396E0: @ 81396E0
- push {lr}
- ldr r1, _08139710
- ldr r0, _08139714
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08139718
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- bl PlayCry1
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08139710: .4byte gUnknown_02024A6A
-_08139714: .4byte gUnknown_02024A60
-_08139718: .4byte gPlayerParty
- thumb_func_end sub_81396E0
-
- thumb_func_start dp01t_2E_5_battle_intro
-dp01t_2E_5_battle_intro: @ 813971C
- push {lr}
- ldr r1, _08139744
- ldr r0, _08139748
- ldrb r0, [r0]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- bl sub_80E43C0
- ldr r2, _0813974C
- ldrh r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- .align 2, 0
-_08139744: .4byte gUnknown_02023A60
-_08139748: .4byte gUnknown_02024A60
-_0813974C: .4byte gUnknown_02024DE8
- thumb_func_end dp01t_2E_5_battle_intro
-
- thumb_func_start sub_8139750
-sub_8139750: @ 8139750
- push {r4-r7,lr}
- ldr r6, _08139880
- ldr r7, _08139884
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _08139888
- adds r0, r5
- bl oamt_add_pos2_onto_pos1
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x32
- strh r1, [r0, 0x2E]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _0813988C
- strh r1, [r0, 0x32]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrh r1, [r0, 0x22]
- strh r1, [r0, 0x36]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08139890
- str r1, [r0]
- ldrb r2, [r7]
- adds r0, r2, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x38]
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08139894
- bl oamt_set_x3A_32
- ldrb r0, [r7]
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, _08139898
- bl AllocSpritePalette
- adds r4, r0, 0
- lsls r4, 24
- ldr r0, _0813989C
- ldr r0, [r0, 0x10]
- lsrs r4, 20
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- movs r2, 0x20
- bl LoadCompressedPalette
- ldrb r0, [r7]
- adds r0, r6
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r4
- strb r0, [r1, 0x5]
- ldr r0, _081398A0
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _081398A4
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- ldrb r0, [r7]
- strh r0, [r1, 0x8]
- ldrb r3, [r7]
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 2
- ldr r2, _081398A8
- adds r0, r2
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08139864
- ldr r0, _081398AC
- adds r0, r3, r0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- ldr r1, _081398B0
- str r1, [r0]
-_08139864:
- adds r2, 0x30
- ldrb r0, [r2, 0x9]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x9]
- ldr r1, _081398B4
- ldrb r0, [r7]
- lsls r0, 2
- adds r0, r1
- ldr r1, _081398B8
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08139880: .4byte gUnknown_02024BE0
-_08139884: .4byte gUnknown_02024A60
-_08139888: .4byte gSprites
-_0813988C: .4byte 0x0000ffd8
-_08139890: .4byte sub_8078B34
-_08139894: .4byte sub_8030E38
-_08139898: .4byte 0x0000d6f8
-_0813989C: .4byte gTrainerBackPicPaletteTable
-_081398A0: .4byte sub_8139A2C
-_081398A4: .4byte gTasks
-_081398A8: .4byte 0x02017810
-_081398AC: .4byte gUnknown_02024E68
-_081398B0: .4byte sub_8044CA0
-_081398B4: .4byte gUnknown_03004330
-_081398B8: .4byte nullsub_91
- thumb_func_end sub_8139750
-
- thumb_func_start sub_81398BC
-sub_81398BC: @ 81398BC
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r0, r6, 2
- ldr r1, _08139A00
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x2]
- ldr r0, _08139A04
- lsls r2, r6, 1
- adds r2, r0
- ldr r0, _08139A08
- lsls r1, r6, 9
- adds r0, 0x1
- adds r1, r0
- ldrb r0, [r1]
- strh r0, [r2]
- ldrh r1, [r2]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08139A0C
- adds r0, r1
- movs r1, 0xB
- bl GetMonData
- mov r8, r0
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- ldr r0, _08139A10
- bl object_new_hidden_with_callback
- ldr r1, _08139A14
- mov r9, r1
- add r9, r6
- mov r1, r9
- strb r0, [r1]
- adds r0, r6, 0
- bl battle_get_per_side_status
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- bl GetMonSpriteTemplate_803C56C
- ldr r0, _08139A18
- mov r10, r0
- adds r0, r6, 0
- movs r1, 0x2
- bl sub_8077ABC
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- bl sub_8077F68
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- bl sub_8079E90
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r10
- adds r1, r5, 0
- adds r2, r4, 0
- bl CreateSprite
- ldr r4, _08139A1C
- adds r4, r6, r4
- strb r0, [r4]
- ldr r5, _08139A20
- mov r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r4]
- strh r1, [r0, 0x30]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x2E]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x32]
- ldrb r0, [r4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- lsls r3, r6, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08139A24
- adds r6, r1
- ldrb r1, [r6]
- bl StartSpriteAnim
- ldrb r1, [r4]
- 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]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08139A28
- str r1, [r0]
- movs r0, 0
- movs r1, 0xFF
- bl sub_8046400
- mov r1, r9
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x2E]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08139A00: .4byte 0x02017800
-_08139A04: .4byte gUnknown_02024A6A
-_08139A08: .4byte gUnknown_02023A60
-_08139A0C: .4byte gPlayerParty
-_08139A10: .4byte sub_80312F0
-_08139A14: .4byte gUnknown_0300434C
-_08139A18: .4byte gUnknown_02024E8C
-_08139A1C: .4byte gUnknown_02024BE0
-_08139A20: .4byte gSprites
-_08139A24: .4byte gUnknown_02024E84
-_08139A28: .4byte SpriteCallbackDummy
- thumb_func_end sub_81398BC
-
- thumb_func_start sub_8139A2C
-sub_8139A2C: @ 8139A2C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08139A4C
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0xA]
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0x1E
- bgt _08139A50
- adds r0, r2, 0x1
- strh r0, [r1, 0xA]
- b _08139A86
- .align 2, 0
-_08139A4C: .4byte gTasks
-_08139A50:
- ldr r4, _08139A8C
- ldrb r5, [r4]
- ldrh r0, [r1, 0x8]
- strb r0, [r4]
- ldr r0, _08139A90
- ldrb r1, [r4]
- lsls r2, r1, 9
- adds r0, 0x1
- adds r2, r0
- ldr r0, _08139A94
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- strb r0, [r2]
- ldrb r0, [r4]
- bl sub_81398BC
- ldr r1, _08139A98
- ldrb r0, [r4]
- lsls r0, 2
- adds r0, r1
- ldr r1, _08139A9C
- str r1, [r0]
- strb r5, [r4]
- adds r0, r6, 0
- bl DestroyTask
-_08139A86:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08139A8C: .4byte gUnknown_02024A60
-_08139A90: .4byte gUnknown_02023A60
-_08139A94: .4byte gUnknown_02024A6A
-_08139A98: .4byte gUnknown_03004330
-_08139A9C: .4byte sub_8137538
- thumb_func_end sub_8139A2C
-
- thumb_func_start sub_8139AA0
-sub_8139AA0: @ 8139AA0
- push {r4,r5,lr}
- ldr r1, _08139AC8
- ldr r0, _08139ACC
- ldrb r2, [r0]
- lsls r0, r2, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08139AD0
- adds r0, r2, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08139AD0
- bl dp01_tbl5_exec_completed
- b _08139B0A
- .align 2, 0
-_08139AC8: .4byte gUnknown_02023A60
-_08139ACC: .4byte gUnknown_02024A60
-_08139AD0:
- ldr r5, _08139B10
- ldrb r1, [r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08139B14
- adds r0, r1
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- ldrb r0, [r5]
- lsls r4, r0, 9
- ldr r3, _08139B18
- adds r1, r4, r3
- subs r2, r3, 0x3
- adds r2, r4, r2
- ldrb r2, [r2]
- subs r3, 0x2
- adds r4, r3
- ldrb r3, [r4]
- bl sub_8044804
- ldr r2, _08139B1C
- ldrb r1, [r5]
- adds r1, r2
- strb r0, [r1]
- bl dp01_tbl5_exec_completed
-_08139B0A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08139B10: .4byte gUnknown_02024A60
-_08139B14: .4byte 0x02017810
-_08139B18: .4byte gUnknown_02023A64
-_08139B1C: .4byte gUnknown_02024E68
- thumb_func_end sub_8139AA0
-
- thumb_func_start sub_8139B20
-sub_8139B20: @ 8139B20
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139B20
-
- thumb_func_start sub_8139B2C
-sub_8139B2C: @ 8139B2C
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139B2C
-
- thumb_func_start sub_8139B38
-sub_8139B38: @ 8139B38
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139B38
-
- thumb_func_start sub_8139B44
-sub_8139B44: @ 8139B44
- push {r4-r6,lr}
- sub sp, 0x4
- ldr r5, _08139B7C
- ldr r6, _08139B80
- ldrb r2, [r6]
- lsls r1, r2, 9
- adds r0, r5, 0x1
- adds r0, r1, r0
- ldrb r3, [r0]
- adds r0, r5, 0x2
- adds r0, r1, r0
- ldrb r4, [r0]
- adds r5, 0x3
- adds r1, r5
- ldrb r0, [r1]
- lsls r0, 8
- orrs r4, r0
- str r4, [sp]
- adds r0, r2, 0
- adds r1, r2, 0
- bl move_anim_start_t3
- lsls r0, 24
- cmp r0, 0
- beq _08139B84
- bl dp01_tbl5_exec_completed
- b _08139B90
- .align 2, 0
-_08139B7C: .4byte gUnknown_02023A60
-_08139B80: .4byte gUnknown_02024A60
-_08139B84:
- ldr r0, _08139B98
- ldrb r1, [r6]
- lsls r1, 2
- adds r1, r0
- ldr r0, _08139B9C
- str r0, [r1]
-_08139B90:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08139B98: .4byte gUnknown_03004330
-_08139B9C: .4byte sub_8137940
- thumb_func_end sub_8139B44
-
- thumb_func_start sub_8139BA0
-sub_8139BA0: @ 8139BA0
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139BA0
-
- thumb_func_start sub_8139BAC
-sub_8139BAC: @ 8139BAC
- push {lr}
- bl dp01_tbl5_exec_completed
- pop {r0}
- bx r0
- thumb_func_end sub_8139BAC
-
- thumb_func_start sub_8139BB8
-sub_8139BB8: @ 8139BB8
- push {r4,lr}
- ldr r2, _08139BFC
- ldr r1, _08139C00
- ldr r4, _08139C04
- ldrb r0, [r4]
- lsls r0, 9
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- movs r0, 0x5
- bl FadeOutMapMusic
- movs r0, 0x3
- bl BeginFastPaletteFade
- bl dp01_tbl5_exec_completed
- ldr r0, _08139C08
- ldrh r1, [r0]
- movs r0, 0x6
- ands r0, r1
- cmp r0, 0x2
- bne _08139BF4
- ldr r0, _08139C0C
- ldrb r1, [r4]
- lsls r1, 2
- adds r1, r0
- ldr r0, _08139C10
- str r0, [r1]
-_08139BF4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08139BFC: .4byte gUnknown_02024D26
-_08139C00: .4byte gUnknown_02023A60
-_08139C04: .4byte gUnknown_02024A60
-_08139C08: .4byte gUnknown_020239F8
-_08139C0C: .4byte gUnknown_03004330
-_08139C10: .4byte sub_813746C
- thumb_func_end sub_8139BB8
-
- thumb_func_start nullsub_80
-nullsub_80: @ 8139C14
- bx lr
- thumb_func_end nullsub_80
-
- thumb_func_start sub_8139C18
-sub_8139C18: @ 8139C18
- push {r4-r6,lr}
- movs r4, 0
- ldr r0, _08139C6C
- movs r1, 0x32
- bl sub_80A9684
- ldr r1, _08139C70
- ldrh r0, [r1]
- cmp r0, 0
- beq _08139C64
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- beq _08139C64
- adds r5, r1, 0
- adds r6, r5, 0x2
-_08139C36:
- lsls r1, r4, 2
- adds r0, r1, r5
- ldrh r0, [r0]
- adds r1, r6
- ldrh r1, [r1]
- bl sub_80A9760
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08139C64
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, r4, 2
- adds r0, r1, r5
- ldrh r0, [r0]
- cmp r0, 0
- beq _08139C64
- adds r0, r1, r6
- ldrh r0, [r0]
- cmp r0, 0
- bne _08139C36
-_08139C64:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08139C6C: .4byte gSaveBlock1 + 0x498
-_08139C70: .4byte gUnknown_084062F0
- thumb_func_end sub_8139C18
-
- thumb_func_start sub_8139C74
-sub_8139C74: @ 8139C74
- push {lr}
- ldr r1, _08139C9C
- ldr r0, _08139CA0
- str r0, [r1]
- ldr r1, _08139CA4
- movs r0, 0x4
- strb r0, [r1]
- ldr r0, _08139CA8
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08139CAC
- ldr r2, _08139CB0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r0}
- bx r0
- .align 2, 0
-_08139C9C: .4byte gUnknown_02039314
-_08139CA0: .4byte gUnknown_084062B8
-_08139CA4: .4byte gUnknown_030007B4
-_08139CA8: .4byte TaskDummy
-_08139CAC: .4byte gOtherText_WhatWillYouDo
-_08139CB0: .4byte sub_8139CF4
- thumb_func_end sub_8139C74
-
- thumb_func_start sub_8139CB4
-sub_8139CB4: @ 8139CB4
- push {lr}
- ldr r1, _08139CDC
- ldr r0, _08139CE0
- str r0, [r1]
- ldr r1, _08139CE4
- movs r0, 0x3
- strb r0, [r1]
- ldr r0, _08139CE8
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08139CEC
- ldr r2, _08139CF0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r0}
- bx r0
- .align 2, 0
-_08139CDC: .4byte gUnknown_02039314
-_08139CE0: .4byte gUnknown_084062BC
-_08139CE4: .4byte gUnknown_030007B4
-_08139CE8: .4byte TaskDummy
-_08139CEC: .4byte gOtherText_WhatWillYouDo
-_08139CF0: .4byte sub_8139CF4
- thumb_func_end sub_8139CB4
-
- thumb_func_start sub_8139CF4
-sub_8139CF4: @ 8139CF4
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08139D50
- ldrb r3, [r5]
- lsls r3, 1
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- bl MenuDrawTextWindow
- ldrb r2, [r5]
- ldr r3, _08139D54
- ldr r0, _08139D58
- ldr r0, [r0]
- str r0, [sp]
- movs r0, 0x1
- movs r1, 0x1
- bl PrintMenuItemsReordered
- ldrb r3, [r5]
- 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 r1, _08139D5C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08139D60
- str r1, [r0]
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08139D50: .4byte gUnknown_030007B4
-_08139D54: .4byte gUnknown_08406298
-_08139D58: .4byte gUnknown_02039314
-_08139D5C: .4byte gTasks
-_08139D60: .4byte sub_8139D64
- thumb_func_end sub_8139CF4
-
- thumb_func_start sub_8139D64
-sub_8139D64: @ 8139D64
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r2, _08139D88
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08139D8C
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _08139E10
- .align 2, 0
-_08139D88: .4byte gMain
-_08139D8C:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08139DA2
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _08139E10
-_08139DA2:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08139DE0
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- ldr r4, _08139DD8
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08139DDC
- ldr r1, [r1]
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 3
- adds r4, 0x4
- adds r0, r4
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- b _08139E10
- .align 2, 0
-_08139DD8: .4byte gUnknown_08406298
-_08139DDC: .4byte gUnknown_02039314
-_08139DE0:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08139E10
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- ldr r2, _08139E18
- ldr r0, _08139E1C
- ldrb r0, [r0]
- ldr r1, _08139E20
- ldr r1, [r1]
- adds r0, r1
- subs r0, 0x1
- ldrb r0, [r0]
- lsls r0, 3
- adds r2, 0x4
- adds r0, r2
- ldr r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
-_08139E10:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08139E18: .4byte gUnknown_08406298
-_08139E1C: .4byte gUnknown_030007B4
-_08139E20: .4byte gUnknown_02039314
- thumb_func_end sub_8139D64
-
- thumb_func_start sub_8139E24
-sub_8139E24: @ 8139E24
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08139E38
- ldr r2, _08139E3C
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r0}
- bx r0
- .align 2, 0
-_08139E38: .4byte gOtherText_WhatWillYouDo
-_08139E3C: .4byte sub_8139CF4
- thumb_func_end sub_8139E24
-
- thumb_func_start sub_8139E40
-sub_8139E40: @ 8139E40
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl sub_8139F58
- ldr r1, _08139E64
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08139E68
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08139E64: .4byte gTasks
-_08139E68: .4byte sub_8139FD4
- thumb_func_end sub_8139E40
-
- thumb_func_start sub_8139E6C
-sub_8139E6C: @ 8139E6C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- bl sub_813AF3C
- ldr r1, _08139E9C
- movs r2, 0
- strb r0, [r1, 0x3]
- lsls r0, 24
- cmp r0, 0
- bne _08139EA8
- ldr r1, _08139EA0
- ldr r2, _08139EA4
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _08139ECA
- .align 2, 0
-_08139E9C: .4byte 0x0201fe00
-_08139EA0: .4byte gOtherText_NoMailHere
-_08139EA4: .4byte sub_8139E24
-_08139EA8:
- strb r2, [r1]
- strb r2, [r1, 0x2]
- bl sub_813AF78
- adds r0, r4, 0
- bl sub_813A240
- adds r0, r4, 0
- bl sub_813B108
- ldr r0, _08139ED0
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08139ED4
- str r0, [r1]
-_08139ECA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08139ED0: .4byte gTasks
-_08139ED4: .4byte sub_813B174
- thumb_func_end sub_8139E6C
-
- thumb_func_start sub_8139ED8
-sub_8139ED8: @ 8139ED8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_80FE28C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8139ED8
-
- thumb_func_start sub_8139EF8
-sub_8139EF8: @ 8139EF8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08139F24
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _08139F3C
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r0, _08139F28
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08139F30
- ldr r0, _08139F2C
- bl ScriptContext1_SetupScript
- b _08139F4C
- .align 2, 0
-_08139F24: .4byte gUnknown_030007B4
-_08139F28: .4byte gSaveBlock2
-_08139F2C: .4byte gUnknown_08152850
-_08139F30:
- ldr r0, _08139F38
- bl ScriptContext1_SetupScript
- b _08139F4C
- .align 2, 0
-_08139F38: .4byte gUnknown_08152C75
-_08139F3C:
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- bl EnableBothScriptContexts
-_08139F4C:
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8139EF8
-
- thumb_func_start sub_8139F58
-sub_8139F58: @ 8139F58
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0
- movs r2, 0xB
- movs r3, 0x9
- bl MenuDrawTextWindow
- ldr r3, _08139FAC
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x4
- bl PrintMenuItems
- str r4, [sp]
- movs r0, 0xA
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x4
- bl InitMenu
- ldr r0, _08139FB0
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- bl sub_8139FB4
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08139FAC: .4byte gUnknown_084062C0
-_08139FB0: .4byte gUnknown_08406288
- thumb_func_end sub_8139F58
-
- thumb_func_start sub_8139FB4
-sub_8139FB4: @ 8139FB4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x2
- movs r1, 0xF
- movs r2, 0x1B
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0xF
- bl MenuPrint
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8139FB4
-
- thumb_func_start sub_8139FD4
-sub_8139FD4: @ 8139FD4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r2, _08139FF4
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08139FF8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _0813A008
- .align 2, 0
-_08139FF4: .4byte gMain
-_08139FF8:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0813A024
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_0813A008:
- bl MoveMenuCursor
- ldr r4, _0813A020
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r0, [r0]
- bl sub_8139FB4
- b _0813A06C
- .align 2, 0
-_0813A020: .4byte gUnknown_08406288
-_0813A024:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813A050
- movs r0, 0x5
- bl PlaySE
- ldr r4, _0813A04C
- 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 _0813A06C
- .align 2, 0
-_0813A04C: .4byte gUnknown_084062C0
-_0813A050:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0813A06C
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0813A074
- ldr r1, [r0, 0x1C]
- adds r0, r4, 0
- bl _call_via_r1
-_0813A06C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A074: .4byte gUnknown_084062C0
- thumb_func_end sub_8139FD4
-
- thumb_func_start sub_813A078
-sub_813A078: @ 813A078
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813A09C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0813A094
- bl sub_80A6A30
- adds r0, r4, 0
- bl DestroyTask
-_0813A094:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A09C: .4byte gPaletteFade
- thumb_func_end sub_813A078
-
- thumb_func_start sub_813A0A0
-sub_813A0A0: @ 813A0A0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0813A0C0
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0813A0C4
- str r0, [r1]
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- pop {r0}
- bx r0
- .align 2, 0
-_0813A0C0: .4byte gTasks
-_0813A0C4: .4byte sub_813A078
- thumb_func_end sub_813A0A0
-
- thumb_func_start sub_813A0C8
-sub_813A0C8: @ 813A0C8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0813A0E8
- ldr r0, _0813A0F0
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813A0F4
- str r0, [r1]
-_0813A0E8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A0F0: .4byte gTasks
-_0813A0F4: .4byte sub_8139FD4
- thumb_func_end sub_813A0C8
-
- thumb_func_start sub_813A0F8
-sub_813A0F8: @ 813A0F8
- push {lr}
- bl MenuDisplayMessageBox
- movs r0, 0x1
- bl sub_8139F58
- ldr r0, _0813A114
- movs r1, 0
- bl CreateTask
- bl pal_fill_black
- pop {r0}
- bx r0
- .align 2, 0
-_0813A114: .4byte sub_813A0C8
- thumb_func_end sub_813A0F8
-
- thumb_func_start sub_813A118
-sub_813A118: @ 813A118
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r7, _0813A174
- adds r4, r6, r7
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xB
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- bl sub_80A96E4
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x4]
- cmp r0, 0
- beq _0813A17C
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- strh r0, [r4, 0xC]
- strh r0, [r4]
- strh r0, [r4, 0x2]
- adds r0, r5, 0
- bl sub_813A240
- adds r0, r5, 0
- movs r1, 0
- bl sub_813AE6C
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0813A178
- str r1, [r0]
- b _0813A188
- .align 2, 0
-_0813A174: .4byte gUnknown_03004B28
-_0813A178: .4byte sub_813A280
-_0813A17C:
- ldr r1, _0813A190
- ldr r2, _0813A194
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_0813A188:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A190: .4byte gOtherText_NoItems
-_0813A194: .4byte sub_8139E40
- thumb_func_end sub_813A118
-
- thumb_func_start sub_813A198
-sub_813A198: @ 813A198
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- ldr r7, _0813A1F8
- adds r4, r6, r7
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xB
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- bl sub_80A96E4
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x4]
- cmp r0, 0
- beq _0813A200
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0x2
- strh r0, [r4, 0xC]
- movs r0, 0
- strh r0, [r4]
- strh r0, [r4, 0x2]
- adds r0, r5, 0
- bl sub_813A240
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_813AE6C
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0813A1FC
- str r1, [r0]
- b _0813A20C
- .align 2, 0
-_0813A1F8: .4byte gUnknown_03004B28
-_0813A1FC: .4byte sub_813A280
-_0813A200:
- ldr r1, _0813A214
- ldr r2, _0813A218
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_0813A20C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A214: .4byte gOtherText_NoItems
-_0813A218: .4byte sub_8139E40
- thumb_func_end sub_813A198
-
- thumb_func_start sub_813A21C
-sub_813A21C: @ 813A21C
- 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, 0x9
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_8139E24
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813A21C
-
- thumb_func_start sub_813A240
-sub_813A240: @ 813A240
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0813A260
- adds r1, r0
- ldrh r2, [r1, 0x4]
- movs r3, 0x4
- ldrsh r0, [r1, r3]
- cmp r0, 0x7
- ble _0813A264
- movs r0, 0x8
- b _0813A266
- .align 2, 0
-_0813A260: .4byte gUnknown_03004B28
-_0813A264:
- adds r0, r2, 0x1
-_0813A266:
- strh r0, [r1, 0x8]
- ldr r1, _0813A274
- ldrb r0, [r1, 0x3]
- cmp r0, 0x7
- bls _0813A278
- movs r0, 0x8
- b _0813A27A
- .align 2, 0
-_0813A274: .4byte 0x0201fe00
-_0813A278:
- adds r0, 0x1
-_0813A27A:
- strb r0, [r1, 0x1]
- pop {r0}
- bx r0
- thumb_func_end sub_813A240
-
- thumb_func_start sub_813A280
-sub_813A280: @ 813A280
- 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, _0813A2DC
- adds r4, r0, r1
- ldr r2, _0813A2E0
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0813A306
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0813A2E4
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldrh r1, [r4, 0x2]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0813A2CC
- b _0813A460
-_0813A2CC:
- lsls r0, r1, 16
- asrs r1, r0, 16
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r1, r0
- beq _0813A34C
- b _0813A358
- .align 2, 0
-_0813A2DC: .4byte gUnknown_03004B28
-_0813A2E0: .4byte gMain
-_0813A2E4:
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0813A2EE
- b _0813A460
-_0813A2EE:
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4, 0x2]
- subs r0, 0x1
- strh r0, [r4, 0x2]
- adds r0, r5, 0
- bl sub_813AE0C
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- b _0813A394
-_0813A306:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0813A3A0
- movs r0, 0
- ldrsh r1, [r4, r0]
- movs r2, 0x8
- ldrsh r0, [r4, r2]
- subs r0, 0x1
- cmp r1, r0
- beq _0813A370
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldrh r1, [r4, 0x2]
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0813A340
- b _0813A460
-_0813A340:
- lsls r0, r1, 16
- asrs r1, r0, 16
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _0813A358
-_0813A34C:
- ldr r0, _0813A354
- bl sub_813AD58
- b _0813A460
- .align 2, 0
-_0813A354: .4byte 0x0000ffff
-_0813A358:
- ldr r0, _0813A36C
- lsls r1, 2
- adds r1, r0
- movs r0, 0x93
- lsls r0, 3
- adds r1, r0
- ldrh r0, [r1]
- bl sub_813AD58
- b _0813A460
- .align 2, 0
-_0813A36C: .4byte gSaveBlock1
-_0813A370:
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- adds r0, r1
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _0813A460
- movs r0, 0x5
- bl PlaySE
- ldrh r0, [r4, 0x2]
- adds r0, 0x1
- strh r0, [r4, 0x2]
- adds r0, r5, 0
- bl sub_813AE0C
- movs r1, 0x12
- ldrsh r0, [r4, r1]
-_0813A394:
- cmp r0, 0
- beq _0813A460
- movs r0, 0
- bl MoveMenuCursor
- b _0813A460
-_0813A3A0:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0813A3F0
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0813A3E8
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _0813A3DC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- strh r0, [r4, 0x12]
- ldrh r0, [r4]
- ldrh r1, [r4, 0x2]
- adds r0, r1
- strh r0, [r4, 0x10]
- ldr r0, _0813A3E4
- bl sub_813AD58
-_0813A3DC:
- adds r0, r5, 0
- bl sub_813ABE8
- b _0813A460
- .align 2, 0
-_0813A3E4: .4byte 0x0000fff7
-_0813A3E8:
- movs r0, 0x5
- bl PlaySE
- b _0813A420
-_0813A3F0:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813A430
- movs r0, 0x5
- bl PlaySE
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0813A420
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _0813A44A
- adds r0, r5, 0
- bl sub_813A4B4
- b _0813A460
-_0813A420:
- adds r0, r5, 0
- movs r1, 0
- bl sub_813AA30
- adds r0, r5, 0
- bl sub_813AE0C
- b _0813A460
-_0813A430:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0813A460
- movs r0, 0x5
- bl PlaySE
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0813A452
- bl sub_8072DEC
-_0813A44A:
- adds r0, r5, 0
- bl sub_813A468
- b _0813A460
-_0813A452:
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_813AA30
- adds r0, r6, 0
- bl sub_813AE0C
-_0813A460:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_813A280
-
- thumb_func_start sub_813A468
-sub_813A468: @ 813A468
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- bl BuyMenuFreeMemory
- movs r0, 0
- bl SetBgTilemapBuffer
- movs r0, 0x1
- bl SetBgTilemapBuffer
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl MenuDisplayMessageBox
- ldr r0, _0813A4AC
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x14]
- bl sub_8139F58
- ldr r0, _0813A4B0
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A4AC: .4byte gTasks
-_0813A4B0: .4byte sub_8139FD4
- thumb_func_end sub_813A468
-
- thumb_func_start sub_813A4B4
-sub_813A4B4: @ 813A4B4
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _0813A500
- adds r4, r0, r1
- ldrb r0, [r4, 0x2]
- ldrb r1, [r4]
- adds r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0
- bl sub_80F996C
- movs r0, 0x1
- bl sub_80F996C
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0813A518
- ldr r1, _0813A504
- lsls r0, r5, 2
- adds r0, r1
- ldr r1, _0813A508
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x1
- bne _0813A50C
- strh r0, [r4, 0x6]
- adds r0, r6, 0
- bl sub_813A6FC
- b _0813A570
- .align 2, 0
-_0813A500: .4byte gUnknown_03004B28
-_0813A504: .4byte gSaveBlock1
-_0813A508: .4byte 0x0000049a
-_0813A50C:
- ldr r0, _0813A514
- bl sub_813AD58
- b _0813A542
- .align 2, 0
-_0813A514: .4byte 0x0000fffe
-_0813A518:
- ldr r1, _0813A534
- lsls r0, r5, 2
- adds r0, r1
- ldr r1, _0813A538
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0x1
- bne _0813A53C
- strh r0, [r4, 0x6]
- adds r0, r6, 0
- bl sub_813A794
- b _0813A570
- .align 2, 0
-_0813A534: .4byte gSaveBlock1
-_0813A538: .4byte 0x0000049a
-_0813A53C:
- ldr r0, _0813A578
- bl sub_813AD58
-_0813A542:
- movs r0, 0x1
- strh r0, [r4, 0x6]
- movs r0, 0x6
- movs r1, 0x8
- movs r2, 0xD
- movs r3, 0xB
- bl MenuDrawTextWindow
- ldrh r0, [r4, 0x6]
- movs r1, 0x3
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0x8
- movs r3, 0x9
- bl sub_80A418C
- ldr r1, _0813A57C
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813A580
- str r1, [r0]
-_0813A570:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A578: .4byte 0x0000fffc
-_0813A57C: .4byte gTasks
-_0813A580: .4byte sub_813A584
- thumb_func_end sub_813A4B4
-
- thumb_func_start sub_813A584
-sub_813A584: @ 813A584
- 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 r7, r0, 3
- ldr r0, _0813A5D0
- mov r8, r0
- adds r4, r7, r0
- ldrb r0, [r4, 0x2]
- ldrb r1, [r4]
- adds r0, r1
- lsls r0, 24
- lsrs r3, r0, 24
- adds r6, r3, 0
- ldr r2, _0813A5D4
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0813A5E4
- movs r0, 0x6
- ldrsh r2, [r4, r0]
- ldr r1, _0813A5D8
- lsls r0, r3, 2
- adds r0, r1
- ldr r1, _0813A5DC
- adds r0, r1
- ldrh r0, [r0]
- cmp r2, r0
- beq _0813A5E0
- ldrh r0, [r4, 0x6]
- adds r0, 0x1
- b _0813A64A
- .align 2, 0
-_0813A5D0: .4byte gUnknown_03004B28
-_0813A5D4: .4byte gMain
-_0813A5D8: .4byte gSaveBlock1
-_0813A5DC: .4byte 0x0000049a
-_0813A5E0:
- movs r0, 0x1
- b _0813A64A
-_0813A5E4:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0813A610
- ldrh r1, [r4, 0x6]
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- cmp r0, 0x1
- beq _0813A5FA
- subs r0, r1, 0x1
- b _0813A64A
-_0813A5FA:
- ldr r0, _0813A608
- lsls r1, r3, 2
- adds r1, r0
- ldr r3, _0813A60C
- adds r1, r3
- ldrh r0, [r1]
- b _0813A64A
- .align 2, 0
-_0813A608: .4byte gSaveBlock1
-_0813A60C: .4byte 0x0000049a
-_0813A610:
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0813A628
- ldrh r0, [r4, 0x6]
- subs r0, 0xA
- strh r0, [r4, 0x6]
- lsls r0, 16
- cmp r0, 0
- bgt _0813A64C
- movs r0, 0x1
- b _0813A64A
-_0813A628:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0813A668
- ldrh r0, [r4, 0x6]
- adds r0, 0xA
- strh r0, [r4, 0x6]
- movs r0, 0x6
- ldrsh r2, [r4, r0]
- ldr r1, _0813A660
- lsls r0, r6, 2
- adds r0, r1
- ldr r1, _0813A664
- adds r0, r1
- ldrh r0, [r0]
- cmp r2, r0
- ble _0813A64C
-_0813A64A:
- strh r0, [r4, 0x6]
-_0813A64C:
- ldrh r0, [r4, 0x6]
- movs r1, 0x3
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0x8
- movs r3, 0x9
- bl sub_80A418C
- b _0813A6E8
- .align 2, 0
-_0813A660: .4byte gSaveBlock1
-_0813A664: .4byte 0x0000049a
-_0813A668:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813A69C
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x6
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _0813A694
- adds r0, r5, 0
- bl sub_813A6FC
- b _0813A6E8
-_0813A694:
- adds r0, r5, 0
- bl sub_813A794
- b _0813A6E8
-_0813A69C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0813A6E8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x6
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- movs r0, 0
- bl sub_80F98DC
- movs r0, 0x1
- bl sub_80F98DC
- ldr r2, _0813A6F4
- movs r3, 0x2
- ldrsh r0, [r4, r3]
- movs r3, 0
- ldrsh r1, [r4, r3]
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x93
- lsls r1, 3
- adds r0, r1
- ldrh r0, [r0]
- bl sub_813AD58
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, _0813A6F8
- str r1, [r0]
-_0813A6E8:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A6F4: .4byte gSaveBlock1
-_0813A6F8: .4byte sub_813A280
- thumb_func_end sub_813A584
-
- thumb_func_start sub_813A6FC
-sub_813A6FC: @ 813A6FC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r6, r1, 3
- ldr r7, _0813A758
- adds r4, r6, r7
- ldrb r0, [r4, 0x2]
- ldrb r1, [r4]
- adds r0, r1
- lsls r0, 24
- ldr r1, _0813A75C
- lsrs r0, 22
- adds r0, r1
- movs r2, 0x93
- lsls r2, 3
- adds r5, r0, r2
- ldrh r0, [r5]
- ldrh r1, [r4, 0x6]
- bl sub_80A9424
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0813A770
- ldrh r0, [r5]
- ldr r1, _0813A760
- bl itemid_copy_name
- ldr r0, _0813A764
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _0813A768
- bl sub_813AD58
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0813A76C
- b _0813A782
- .align 2, 0
-_0813A758: .4byte gUnknown_03004B28
-_0813A75C: .4byte gSaveBlock1
-_0813A760: .4byte gStringVar1
-_0813A764: .4byte gStringVar2
-_0813A768: .4byte 0x0000fffd
-_0813A76C: .4byte sub_813A8F0
-_0813A770:
- movs r0, 0
- strh r0, [r4, 0x6]
- ldr r0, _0813A78C
- bl sub_813AD58
- adds r0, r7, 0
- subs r0, 0x8
- adds r0, r6, r0
- ldr r1, _0813A790
-_0813A782:
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A78C: .4byte 0x0000fffa
-_0813A790: .4byte sub_813A984
- thumb_func_end sub_813A6FC
-
- thumb_func_start sub_813A794
-sub_813A794: @ 813A794
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r7, r0, 3
- ldr r0, _0813A7FC
- mov r8, r0
- adds r4, r7, r0
- ldrb r0, [r4, 0x2]
- ldrb r1, [r4]
- adds r0, r1
- lsls r0, 24
- ldr r1, _0813A800
- lsrs r0, 22
- adds r0, r1
- movs r2, 0x93
- lsls r2, 3
- adds r5, r0, r2
- ldrh r0, [r5]
- bl itemid_is_unique
- lsls r0, 24
- cmp r0, 0
- bne _0813A814
- ldrh r0, [r5]
- ldr r1, _0813A804
- bl itemid_copy_name
- ldr r0, _0813A808
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r0, _0813A80C
- bl sub_813AD58
- movs r0, 0x7
- movs r1, 0x6
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r1, _0813A810
- adds r0, r6, 0
- bl sub_80F914C
- b _0813A828
- .align 2, 0
-_0813A7FC: .4byte gUnknown_03004B28
-_0813A800: .4byte gSaveBlock1
-_0813A804: .4byte gStringVar1
-_0813A808: .4byte gStringVar2
-_0813A80C: .4byte 0x0000fff8
-_0813A810: .4byte gUnknown_084062E0
-_0813A814:
- movs r0, 0
- strh r0, [r4, 0x6]
- ldr r0, _0813A834
- bl sub_813AD58
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, _0813A838
- str r1, [r0]
-_0813A828:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A834: .4byte 0x0000fff9
-_0813A838: .4byte sub_813A8F0
- thumb_func_end sub_813A794
-
- thumb_func_start sub_813A83C
-sub_813A83C: @ 813A83C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x6
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- ldr r0, _0813A86C
- bl sub_813AD58
- ldr r1, _0813A870
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813A874
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A86C: .4byte 0x0000fffb
-_0813A870: .4byte gTasks
-_0813A874: .4byte sub_813A8F0
- thumb_func_end sub_813A83C
-
- thumb_func_start sub_813A878
-sub_813A878: @ 813A878
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- ldr r6, _0813A8E4
- adds r5, r4, r6
- movs r0, 0x6
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- ldrb r3, [r5, 0x8]
- ldrb r0, [r5]
- str r0, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x2
- bl InitMenu
- movs r0, 0
- bl sub_80F98DC
- movs r0, 0x1
- bl sub_80F98DC
- ldr r2, _0813A8E8
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- movs r3, 0
- ldrsh r1, [r5, r3]
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x93
- lsls r1, 3
- adds r0, r1
- ldrh r0, [r0]
- bl sub_813AD58
- subs r6, 0x8
- adds r4, r6
- ldr r0, _0813A8EC
- str r0, [r4]
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A8E4: .4byte gUnknown_03004B28
-_0813A8E8: .4byte gSaveBlock1
-_0813A8EC: .4byte sub_813A280
- thumb_func_end sub_813A878
-
- thumb_func_start sub_813A8F0
-sub_813A8F0: @ 813A8F0
- 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, _0813A97C
- adds r5, r0, r1
- ldr r0, _0813A980
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0813A912
- cmp r1, 0x2
- bne _0813A972
-_0813A912:
- ldrb r0, [r5, 0x2]
- ldrb r1, [r5]
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x6]
- bl sub_80A97F4
- ldrh r4, [r5, 0x4]
- bl sub_80A96E4
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x4]
- lsls r4, 16
- asrs r4, 16
- cmp r4, r0
- beq _0813A952
- movs r2, 0x8
- ldrsh r0, [r5, r2]
- movs r2, 0x2
- ldrsh r1, [r5, r2]
- adds r0, r1
- cmp r4, r0
- bge _0813A952
- ldrh r1, [r5, 0x2]
- movs r2, 0x2
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _0813A952
- subs r0, r1, 0x1
- strh r0, [r5, 0x2]
-_0813A952:
- adds r0, r6, 0
- bl sub_813A240
- adds r0, r6, 0
- bl sub_813A9EC
- ldrb r3, [r5, 0x8]
- ldrb r0, [r5]
- str r0, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x2
- bl InitMenu
-_0813A972:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A97C: .4byte gUnknown_03004B28
-_0813A980: .4byte gMain
- thumb_func_end sub_813A8F0
-
- thumb_func_start sub_813A984
-sub_813A984: @ 813A984
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r4, r1, 3
- ldr r5, _0813A9DC
- adds r3, r4, r5
- ldr r0, _0813A9E0
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0813A9A4
- cmp r1, 0x2
- bne _0813A9D6
-_0813A9A4:
- ldr r2, _0813A9E4
- movs r1, 0x2
- ldrsh r0, [r3, r1]
- movs r6, 0
- ldrsh r1, [r3, r6]
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x93
- lsls r1, 3
- adds r0, r1
- ldrh r0, [r0]
- bl sub_813AD58
- movs r0, 0
- bl sub_80F98DC
- movs r0, 0x1
- bl sub_80F98DC
- adds r0, r5, 0
- subs r0, 0x8
- adds r0, r4, r0
- ldr r1, _0813A9E8
- str r1, [r0]
-_0813A9D6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813A9DC: .4byte gUnknown_03004B28
-_0813A9E0: .4byte gMain
-_0813A9E4: .4byte gSaveBlock1
-_0813A9E8: .4byte sub_813A280
- thumb_func_end sub_813A984
-
- thumb_func_start sub_813A9EC
-sub_813A9EC: @ 813A9EC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x6
- movs r1, 0x6
- movs r2, 0xD
- movs r3, 0xB
- bl MenuZeroFillWindowRect
- movs r0, 0
- bl sub_80F98DC
- movs r0, 0x1
- bl sub_80F98DC
- adds r0, r4, 0
- bl sub_813AE0C
- ldr r1, _0813AA28
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813AA2C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813AA28: .4byte gTasks
-_0813AA2C: .4byte sub_813A280
- thumb_func_end sub_813A9EC
-
- thumb_func_start sub_813AA30
-sub_813AA30: @ 813AA30
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r2, r1, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0813AA80
- adds r4, r1, r0
- ldrb r0, [r4]
- ldrb r1, [r4, 0x2]
- adds r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0
- strh r0, [r4, 0x12]
- ldrb r0, [r4, 0x4]
- cmp r0, r5
- bls _0813AA88
- ldrb r0, [r4, 0x10]
- cmp r0, r5
- beq _0813AA88
- cmp r2, 0
- bne _0813AA88
- ldr r1, _0813AA84
- movs r0, 0x10
- ldrsh r2, [r4, r0]
- lsls r2, 2
- movs r0, 0x93
- lsls r0, 3
- adds r1, r0
- adds r2, r1
- ldr r3, [r2]
- lsls r0, r5, 2
- adds r0, r1
- ldr r1, [r0]
- str r1, [r2]
- str r3, [r0]
- b _0813AAB8
- .align 2, 0
-_0813AA80: .4byte gUnknown_03004B28
-_0813AA84: .4byte gSaveBlock1
-_0813AA88:
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r5, r0
- bne _0813AA9C
- ldr r0, _0813AA98
- bl sub_813AD58
- b _0813AAAE
- .align 2, 0
-_0813AA98: .4byte 0x0000ffff
-_0813AA9C:
- ldr r0, _0813AAC0
- lsls r1, r5, 2
- adds r1, r0
- movs r2, 0x93
- lsls r2, 3
- adds r1, r2
- ldrh r0, [r1]
- bl sub_813AD58
-_0813AAAE:
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- subs r0, r1, r0
-_0813AAB8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813AAC0: .4byte gSaveBlock1
- thumb_func_end sub_813AA30
-
- thumb_func_start sub_813AAC4
-sub_813AAC4: @ 813AAC4
- push {r4-r7,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r6, [sp, 0x14]
- lsls r4, 16
- lsrs r4, 16
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _0813AAF4
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_80A4164
- cmp r6, 0
- beq _0813AAFC
- ldr r0, _0813AAF8
- movs r1, 0x1A
- adds r2, r7, 0
- bl MenuPrint
- b _0813AB06
- .align 2, 0
-_0813AAF4: .4byte gStringVar1
-_0813AAF8: .4byte gUnknown_0840632A
-_0813AAFC:
- ldr r0, _0813AB0C
- movs r1, 0x1A
- adds r2, r7, 0
- bl MenuPrint
-_0813AB06:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813AB0C: .4byte gUnknown_08406327
- thumb_func_end sub_813AAC4
-
- thumb_func_start sub_813AB10
-sub_813AB10: @ 813AB10
- push {lr}
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _0813AB24
- movs r1, 0x19
- bl MenuPrint
- pop {r0}
- bx r0
- .align 2, 0
-_0813AB24: .4byte gUnknown_08406330
- thumb_func_end sub_813AB10
-
- thumb_func_start sub_813AB28
-sub_813AB28: @ 813AB28
- push {r4,r5,lr}
- adds r4, r2, 0
- lsls r1, 24
- lsrs r5, r1, 24
- ldrh r0, [r0]
- ldr r1, _0813AB48
- bl itemid_copy_name
- cmp r4, 0
- beq _0813AB50
- ldr r0, _0813AB4C
- movs r1, 0x10
- adds r2, r5, 0
- bl MenuPrint
- b _0813AB5A
- .align 2, 0
-_0813AB48: .4byte gStringVar1
-_0813AB4C: .4byte gUnknown_0840631E
-_0813AB50:
- ldr r0, _0813AB60
- movs r1, 0x10
- adds r2, r5, 0
- bl MenuPrint
-_0813AB5A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813AB60: .4byte gUnknown_08406318
- thumb_func_end sub_813AB28
-
- thumb_func_start sub_813AB64
-sub_813AB64: @ 813AB64
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r4, 24
- lsrs r4, 24
- adds r1, r4, 0
- bl sub_813AB28
- ldrh r0, [r6, 0x2]
- str r5, [sp]
- movs r1, 0x1
- adds r2, r4, 0
- movs r3, 0x3
- bl sub_813AAC4
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_813AB64
-
- thumb_func_start sub_813AB90
-sub_813AB90: @ 813AB90
- push {r4,lr}
- adds r4, r1, 0
- lsls r4, 24
- lsrs r4, 24
- adds r1, r4, 0
- bl sub_813AB28
- adds r0, r4, 0
- bl sub_813AB10
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813AB90
-
- thumb_func_start sub_813ABAC
-sub_813ABAC: @ 813ABAC
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r6, r2, 0
- lsls r1, 24
- lsrs r5, r1, 24
- adds r1, r5, 0
- bl sub_813AB28
- ldrh r1, [r4]
- movs r0, 0xA9
- lsls r0, 1
- cmp r1, r0
- bhi _0813ABD8
- ldrh r0, [r4, 0x2]
- str r6, [sp]
- movs r1, 0x1
- adds r2, r5, 0
- movs r3, 0x3
- bl sub_813AAC4
- b _0813ABDE
-_0813ABD8:
- adds r0, r5, 0
- bl sub_813AB10
-_0813ABDE:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_813ABAC
-
- thumb_func_start sub_813ABE8
-sub_813ABE8: @ 813ABE8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0813AC0C
- adds r6, r1, r0
- movs r0, 0
- mov r8, r0
- ldrh r5, [r6, 0x2]
- movs r2, 0x2
- ldrsh r1, [r6, r2]
- b _0813ACC4
- .align 2, 0
-_0813AC0C: .4byte gUnknown_03004B28
-_0813AC10:
- subs r0, r5, r1
- lsls r0, 17
- lsrs r0, 16
- mov r8, r0
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r5, r0
- beq _0813AD04
- movs r7, 0
- movs r2, 0x12
- ldrsh r0, [r6, r2]
- cmp r0, 0
- beq _0813AC34
- movs r1, 0x10
- ldrsh r0, [r6, r1]
- cmp r5, r0
- bne _0813AC34
- movs r7, 0x1
-_0813AC34:
- ldr r0, _0813AC5C
- lsls r4, r5, 2
- adds r0, r4, r0
- movs r2, 0x93
- lsls r2, 3
- adds r0, r2
- ldrh r0, [r0]
- bl sub_80A9670
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r0, 0x4
- bhi _0813ACBA
- lsls r0, 2
- ldr r1, _0813AC60
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813AC5C: .4byte gSaveBlock1
-_0813AC60: .4byte _0813AC64
- .align 2, 0
-_0813AC64:
- .4byte _0813AC78
- .4byte _0813AC78
- .4byte _0813ACA8
- .4byte _0813AC78
- .4byte _0813AC90
-_0813AC78:
- ldr r0, _0813AC8C
- adds r0, r4, r0
- mov r1, r8
- adds r1, 0x2
- lsls r1, 24
- lsrs r1, 24
- adds r2, r7, 0
- bl sub_813AB64
- b _0813ACBA
- .align 2, 0
-_0813AC8C: .4byte gSaveBlock1 + 0x498
-_0813AC90:
- ldr r0, _0813ACA4
- adds r0, r4, r0
- mov r1, r8
- adds r1, 0x2
- lsls r1, 24
- lsrs r1, 24
- adds r2, r7, 0
- bl sub_813AB90
- b _0813ACBA
- .align 2, 0
-_0813ACA4: .4byte gSaveBlock1 + 0x498
-_0813ACA8:
- ldr r0, _0813AD00
- adds r0, r4, r0
- mov r1, r8
- adds r1, 0x2
- lsls r1, 24
- lsrs r1, 24
- adds r2, r7, 0
- bl sub_813ABAC
-_0813ACBA:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- movs r0, 0x2
- ldrsh r1, [r6, r0]
-_0813ACC4:
- movs r2, 0x8
- ldrsh r0, [r6, r2]
- adds r0, r1, r0
- cmp r5, r0
- blt _0813AC10
-_0813ACCE:
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- subs r0, r5, r0
- cmp r0, 0x7
- bgt _0813ACEA
- mov r1, r8
- adds r1, 0x4
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x10
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
-_0813ACEA:
- movs r2, 0x2
- ldrsh r0, [r6, r2]
- cmp r0, 0
- beq _0813AD20
- movs r0, 0
- movs r1, 0xB8
- movs r2, 0x8
- bl sub_80F953C
- b _0813AD26
- .align 2, 0
-_0813AD00: .4byte gSaveBlock1 + 0x498
-_0813AD04:
- ldr r0, _0813AD1C
- mov r2, r8
- adds r2, 0x2
- lsls r2, 19
- lsrs r2, 16
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0x80
- movs r3, 0x68
- bl sub_8072A18
- b _0813ACCE
- .align 2, 0
-_0813AD1C: .4byte gOtherText_CancelNoTerminator
-_0813AD20:
- movs r0, 0
- bl SetBgTilemapBuffer
-_0813AD26:
- movs r1, 0x2
- ldrsh r0, [r6, r1]
- movs r2, 0x8
- ldrsh r1, [r6, r2]
- adds r0, r1
- movs r2, 0x4
- ldrsh r1, [r6, r2]
- cmp r0, r1
- bgt _0813AD44
- movs r0, 0x1
- movs r1, 0xB8
- movs r2, 0x98
- bl sub_80F953C
- b _0813AD4A
-_0813AD44:
- movs r0, 0x1
- bl SetBgTilemapBuffer
-_0813AD4A:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_813ABE8
-
- thumb_func_start sub_813AD58
-sub_813AD58: @ 813AD58
- push {lr}
- sub sp, 0x8
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r2, _0813AD74
- adds r0, r1, r2
- cmp r0, 0x8
- bhi _0813ADE8
- lsls r0, 2
- ldr r1, _0813AD78
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813AD74: .4byte 0xffff0009
-_0813AD78: .4byte _0813AD7C
- .align 2, 0
-_0813AD7C:
- .4byte _0813ADE0
- .4byte _0813ADD8
- .4byte _0813ADD0
- .4byte _0813ADC8
- .4byte _0813ADC0
- .4byte _0813ADB8
- .4byte _0813ADB0
- .4byte _0813ADA8
- .4byte _0813ADA0
-_0813ADA0:
- ldr r1, _0813ADA4
- b _0813ADF0
- .align 2, 0
-_0813ADA4: .4byte gMenuText_GoBackToPrev
-_0813ADA8:
- ldr r1, _0813ADAC
- b _0813ADF0
- .align 2, 0
-_0813ADAC: .4byte gOtherText_HowManyToWithdraw
-_0813ADB0:
- ldr r1, _0813ADB4
- b _0813ADF0
- .align 2, 0
-_0813ADB4: .4byte gOtherText_WithdrewThing
-_0813ADB8:
- ldr r1, _0813ADBC
- b _0813ADF0
- .align 2, 0
-_0813ADBC: .4byte gOtherText_HowManyToToss
-_0813ADC0:
- ldr r1, _0813ADC4
- b _0813ADF0
- .align 2, 0
-_0813ADC4: .4byte gOtherText_ThrewAwayItem
-_0813ADC8:
- ldr r1, _0813ADCC
- b _0813ADF0
- .align 2, 0
-_0813ADCC: .4byte gOtherText_NoMoreRoom
-_0813ADD0:
- ldr r1, _0813ADD4
- b _0813ADF0
- .align 2, 0
-_0813ADD4: .4byte gOtherText_TooImportant
-_0813ADD8:
- ldr r1, _0813ADDC
- b _0813ADF0
- .align 2, 0
-_0813ADDC: .4byte gOtherText_OkayToThrowAwayPrompt
-_0813ADE0:
- ldr r1, _0813ADE4
- b _0813ADF0
- .align 2, 0
-_0813ADE4: .4byte gOtherText_SwitchWhichItem
-_0813ADE8:
- adds r0, r1, 0
- bl itemid_get_description
- adds r1, r0, 0
-_0813ADF0:
- movs r0, 0x30
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- adds r0, r1, 0
- movs r1, 0x8
- movs r2, 0x68
- movs r3, 0x68
- bl sub_8072AB0
- add sp, 0x8
- pop {r0}
- bx r0
- thumb_func_end sub_813AD58
-
- thumb_func_start sub_813AE0C
-sub_813AE0C: @ 813AE0C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r2, _0813AE48
- adds r4, r1, r2
- ldrh r1, [r4]
- ldrh r2, [r4, 0x2]
- adds r1, r2
- lsls r1, 16
- lsrs r5, r1, 16
- bl sub_813ABE8
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0813AE62
- lsls r0, r5, 16
- asrs r1, r0, 16
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _0813AE50
- ldr r0, _0813AE4C
- bl sub_813AD58
- b _0813AE62
- .align 2, 0
-_0813AE48: .4byte gUnknown_03004B28
-_0813AE4C: .4byte 0x0000ffff
-_0813AE50:
- ldr r0, _0813AE68
- lsls r1, 2
- adds r1, r0
- movs r0, 0x93
- lsls r0, 3
- adds r1, r0
- ldrh r0, [r1]
- bl sub_813AD58
-_0813AE62:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813AE68: .4byte gSaveBlock1
- thumb_func_end sub_813AE0C
-
- thumb_func_start sub_813AE6C
-sub_813AE6C: @ 813AE6C
- push {r4-r6,lr}
- sub sp, 0x8
- adds r6, r0, 0
- adds r4, r1, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, r6, 2
- adds r5, r6
- lsls r5, 3
- ldr r0, _0813AEF8
- adds r5, r0
- bl sub_80F944C
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- bl sub_813AF04
- movs r0, 0xF
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- movs r0, 0
- movs r1, 0xC
- movs r2, 0xE
- movs r3, 0x13
- bl MenuDrawTextWindow
- movs r0, 0
- movs r1, 0
- movs r2, 0xB
- movs r3, 0x3
- bl MenuDrawTextWindow
- ldr r0, _0813AEFC
- movs r1, 0x93
- lsls r1, 3
- adds r0, r1
- ldrh r0, [r0]
- bl sub_813AD58
- ldr r0, _0813AF00
- lsls r4, 3
- adds r4, r0
- ldr r0, [r4]
- movs r1, 0x1
- movs r2, 0x1
- bl MenuPrint
- adds r0, r6, 0
- bl sub_813ABE8
- ldrb r3, [r5, 0x8]
- ldrb r0, [r5]
- str r0, [sp]
- movs r0, 0xD
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x2
- bl InitMenu
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813AEF8: .4byte gUnknown_03004B28
-_0813AEFC: .4byte gSaveBlock1
-_0813AF00: .4byte gUnknown_084062C0
- thumb_func_end sub_813AE6C
-
- thumb_func_start sub_813AF04
-sub_813AF04: @ 813AF04
- push {lr}
- sub sp, 0x8
- ldr r1, _0813AF38
- 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
-_0813AF38: .4byte gUnknown_08406334
- thumb_func_end sub_813AF04
-
- thumb_func_start sub_813AF3C
-sub_813AF3C: @ 813AF3C
- push {r4,lr}
- movs r2, 0
- movs r1, 0x6
- ldr r4, _0813AF70
- ldr r3, _0813AF74
-_0813AF46:
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813AF5C
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
-_0813AF5C:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xF
- bls _0813AF46
- adds r0, r2, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0813AF70: .4byte gSaveBlock1
-_0813AF74: .4byte 0x00002b6c
- thumb_func_end sub_813AF3C
-
- thumb_func_start sub_813AF78
-sub_813AF78: @ 813AF78
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- movs r2, 0x6
-_0813AF86:
- adds r1, r2, 0x1
- lsls r0, r1, 24
- lsrs r3, r0, 24
- mov r10, r1
- cmp r3, 0xF
- bhi _0813AFF4
- ldr r0, _0813B010
- mov r12, r0
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- add r0, r12
- ldr r1, _0813B014
- adds r1, r0
- mov r8, r1
- ldr r2, _0813B018
- mov r9, r2
- adds r4, r0, r2
-_0813AFAA:
- mov r5, r8
- ldrh r0, [r5]
- cmp r0, 0
- bne _0813AFEA
- mov r1, sp
- adds r0, r4, 0
- ldm r0!, {r2,r6,r7}
- stm r1!, {r2,r6,r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r2,r5,r6}
- stm r1!, {r2,r5,r6}
- lsls r2, r3, 3
- adds r2, r3
- lsls r2, 2
- add r2, r12
- add r2, r9
- adds r1, r4, 0
- adds r0, r2, 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}
- mov r0, sp
- ldm r0!, {r1,r5,r7}
- stm r2!, {r1,r5,r7}
- ldm r0!, {r1,r6,r7}
- stm r2!, {r1,r6,r7}
- ldm r0!, {r5-r7}
- stm r2!, {r5-r7}
-_0813AFEA:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xF
- bls _0813AFAA
-_0813AFF4:
- mov r1, r10
- lsls r0, r1, 24
- lsrs r2, r0, 24
- cmp r2, 0xE
- bls _0813AF86
- 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
-_0813B010: .4byte gSaveBlock1
-_0813B014: .4byte 0x00002b6c
-_0813B018: .4byte 0x00002b4c
- thumb_func_end sub_813AF78
-
- thumb_func_start sub_813B01C
-sub_813B01C: @ 813B01C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r7, 0
- ldr r1, _0813B0B8
- ldrb r4, [r1, 0x2]
- ldrb r0, [r1, 0x1]
- adds r0, r4, r0
- cmp r4, r0
- bge _0813B08A
- adds r6, r1, 0
- ldr r0, _0813B0BC
- mov r8, r0
-_0813B036:
- ldrb r0, [r6, 0x2]
- subs r0, r4, r0
- lsls r0, 17
- lsrs r7, r0, 16
- adds r0, r7, 0x2
- lsls r0, 24
- lsrs r5, r0, 24
- adds r3, r7, 0x3
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x15
- adds r1, r5, 0
- movs r2, 0x1C
- bl MenuFillWindowRectWithBlankTile
- ldrb r0, [r6, 0x3]
- cmp r4, r0
- beq _0813B0C4
- lsls r1, r4, 3
- adds r1, r4
- lsls r1, 2
- ldr r0, _0813B0C0
- adds r1, r0
- mov r0, r8
- bl StringCopy
- mov r0, r8
- bl sub_814A568
- mov r0, r8
- movs r1, 0x15
- adds r2, r5, 0
- bl MenuPrint
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldrb r0, [r6, 0x2]
- ldrb r1, [r6, 0x1]
- adds r0, r1
- cmp r4, r0
- blt _0813B036
-_0813B08A:
- ldr r5, _0813B0B8
- ldrb r0, [r5, 0x2]
- subs r0, r4, r0
- cmp r0, 0x8
- beq _0813B0A4
- adds r1, r7, 0x4
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0x15
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
-_0813B0A4:
- ldrb r0, [r5, 0x2]
- cmp r0, 0
- beq _0813B0D4
- movs r0, 0
- movs r1, 0xC8
- movs r2, 0x8
- bl sub_80F953C
- b _0813B0DA
- .align 2, 0
-_0813B0B8: .4byte 0x0201fe00
-_0813B0BC: .4byte gStringVar1
-_0813B0C0: .4byte gSaveBlock1 + 0x2C36
-_0813B0C4:
- ldr r0, _0813B0D0
- movs r1, 0x15
- adds r2, r5, 0
- bl MenuPrint
- b _0813B08A
- .align 2, 0
-_0813B0D0: .4byte gOtherText_CancelNoTerminator
-_0813B0D4:
- movs r0, 0
- bl SetBgTilemapBuffer
-_0813B0DA:
- ldr r0, _0813B0F4
- ldrb r1, [r0, 0x2]
- ldrb r2, [r0, 0x1]
- adds r1, r2
- ldrb r0, [r0, 0x3]
- cmp r1, r0
- bgt _0813B0F8
- movs r0, 0x1
- movs r1, 0xC8
- movs r2, 0x98
- bl sub_80F953C
- b _0813B0FE
- .align 2, 0
-_0813B0F4: .4byte 0x0201fe00
-_0813B0F8:
- movs r0, 0x1
- bl SetBgTilemapBuffer
-_0813B0FE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_813B01C
-
- thumb_func_start sub_813B108
-sub_813B108: @ 813B108
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_80F944C
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0
- movs r2, 0x8
- movs r3, 0x3
- bl MenuDrawTextWindow
- ldr r0, _0813B16C
- movs r1, 0x1
- movs r2, 0x1
- bl MenuPrint
- movs r0, 0x14
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- adds r0, r4, 0
- bl sub_813B01C
- ldr r0, _0813B170
- ldrb r3, [r0, 0x1]
- ldrb r0, [r0]
- str r0, [sp]
- movs r0, 0x8
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x15
- movs r2, 0x2
- bl InitMenu
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B16C: .4byte gPCText_Mailbox
-_0813B170: .4byte 0x0201fe00
- thumb_func_end sub_813B108
-
- thumb_func_start sub_813B174
-sub_813B174: @ 813B174
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r0, _0813B1AC
- ldrb r1, [r0, 0x7]
- movs r3, 0x80
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0813B274
- ldr r2, _0813B1B0
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0813B1CA
- ldr r4, _0813B1B4
- ldrb r0, [r4]
- cmp r0, 0
- beq _0813B1B8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _0813B1E6
- .align 2, 0
-_0813B1AC: .4byte gPaletteFade
-_0813B1B0: .4byte gMain
-_0813B1B4: .4byte 0x0201fe00
-_0813B1B8:
- ldrb r0, [r4, 0x2]
- cmp r0, 0
- beq _0813B274
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4, 0x2]
- subs r0, 0x1
- b _0813B208
-_0813B1CA:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0813B212
- ldr r4, _0813B1F0
- ldrb r1, [r4]
- ldrb r0, [r4, 0x1]
- subs r0, 0x1
- cmp r1, r0
- beq _0813B1F4
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_0813B1E6:
- bl MoveMenuCursor
- strb r0, [r4]
- b _0813B274
- .align 2, 0
-_0813B1F0: .4byte 0x0201fe00
-_0813B1F4:
- ldrb r0, [r4, 0x2]
- adds r0, r1
- ldrb r1, [r4, 0x3]
- cmp r0, r1
- beq _0813B274
- movs r0, 0x5
- bl PlaySE
- ldrb r0, [r4, 0x2]
- adds r0, 0x1
-_0813B208:
- strb r0, [r4, 0x2]
- adds r0, r5, 0
- bl sub_813B01C
- b _0813B274
-_0813B212:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813B25C
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- ldr r0, _0813B23C
- ldrb r1, [r0, 0x2]
- ldrb r2, [r0]
- adds r1, r2
- ldrb r0, [r0, 0x3]
- cmp r1, r0
- bne _0813B240
- adds r0, r5, 0
- bl sub_813B320
- b _0813B274
- .align 2, 0
-_0813B23C: .4byte 0x0201fe00
-_0813B240:
- bl sub_813B27C
- ldr r0, _0813B254
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813B258
- str r0, [r1]
- b _0813B274
- .align 2, 0
-_0813B254: .4byte gTasks
-_0813B258: .4byte sub_813B294
-_0813B25C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0813B274
- bl sub_8072DEC
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_813B320
-_0813B274:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813B174
-
- thumb_func_start sub_813B27C
-sub_813B27C: @ 813B27C
- push {lr}
- bl BuyMenuFreeMemory
- movs r0, 0
- bl SetBgTilemapBuffer
- movs r0, 0x1
- bl SetBgTilemapBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_813B27C
-
- thumb_func_start sub_813B294
-sub_813B294: @ 813B294
- push {r4,r5,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, _0813B2E8
- ldr r1, _0813B2EC
- ldrb r0, [r1]
- adds r0, 0x6
- ldrb r1, [r1, 0x2]
- adds r0, r1
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _0813B2F0
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- adds r0, r4, 0
- bl sub_814A568
- ldr r4, _0813B2F4
- ldr r1, _0813B2F8
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _0813B2FC
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B2E8: .4byte gStringVar1
-_0813B2EC: .4byte 0x0201fe00
-_0813B2F0: .4byte gSaveBlock1 + 0x2B5E
-_0813B2F4: .4byte gStringVar4
-_0813B2F8: .4byte gOtherText_WhatWillYouDoMail
-_0813B2FC: .4byte sub_813B348
- thumb_func_end sub_813B294
-
- thumb_func_start sub_813B300
-sub_813B300: @ 813B300
- 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_8139E24
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813B300
-
- thumb_func_start sub_813B320
-sub_813B320: @ 813B320
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_813B27C
- ldr r1, _0813B340
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813B344
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B340: .4byte gTasks
-_0813B344: .4byte sub_813B300
- thumb_func_end sub_813B320
-
- thumb_func_start sub_813B348
-sub_813B348: @ 813B348
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- movs r2, 0xC
- movs r3, 0x9
- bl MenuDrawTextWindow
- ldr r3, _0813B394
- movs r0, 0x1
- movs r1, 0x1
- movs r2, 0x4
- bl PrintMenuItems
- movs r0, 0
- str r0, [sp]
- movs r0, 0xB
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x4
- bl InitMenu
- ldr r1, _0813B398
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813B39C
- str r1, [r0]
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B394: .4byte gUnknown_084062F8
-_0813B398: .4byte gTasks
-_0813B39C: .4byte sub_813B3A0
- thumb_func_end sub_813B348
-
- thumb_func_start sub_813B3A0
-sub_813B3A0: @ 813B3A0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r4, r5, 0
- ldr r2, _0813B3C4
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0813B3C8
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _0813B420
- .align 2, 0
-_0813B3C4: .4byte gMain
-_0813B3C8:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0813B3DE
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _0813B420
-_0813B3DE:
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813B40C
- movs r0, 0x5
- bl PlaySE
- ldr r4, _0813B408
- 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 _0813B420
- .align 2, 0
-_0813B408: .4byte gUnknown_084062F8
-_0813B40C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0813B420
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl sub_813B734
-_0813B420:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813B3A0
-
- thumb_func_start sub_813B428
-sub_813B428: @ 813B428
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r1, _0813B44C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813B450
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B44C: .4byte gTasks
-_0813B450: .4byte sub_813B454
- thumb_func_end sub_813B428
-
- thumb_func_start sub_813B454
-sub_813B454: @ 813B454
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813B490
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0813B488
- ldr r0, _0813B494
- ldrb r1, [r0]
- adds r1, 0x6
- ldrb r0, [r0, 0x2]
- adds r1, r0
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0813B498
- adds r0, r1
- ldr r1, _0813B49C
- movs r2, 0x1
- bl sub_80F890C
- adds r0, r4, 0
- bl DestroyTask
-_0813B488:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B490: .4byte gPaletteFade
-_0813B494: .4byte 0x0201fe00
-_0813B498: .4byte gSaveBlock1 + 0x2B4C
-_0813B49C: .4byte sub_813B4F0
- thumb_func_end sub_813B454
-
- thumb_func_start sub_813B4A0
-sub_813B4A0: @ 813B4A0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_807D770
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0813B4C0
- ldr r0, _0813B4C8
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813B4CC
- str r0, [r1]
-_0813B4C0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B4C8: .4byte gTasks
-_0813B4CC: .4byte sub_813B174
- thumb_func_end sub_813B4A0
-
- thumb_func_start sub_813B4D0
-sub_813B4D0: @ 813B4D0
- push {lr}
- ldr r0, _0813B4EC
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl sub_813B108
- bl pal_fill_black
- pop {r0}
- bx r0
- .align 2, 0
-_0813B4EC: .4byte sub_813B4A0
- thumb_func_end sub_813B4D0
-
- thumb_func_start sub_813B4F0
-sub_813B4F0: @ 813B4F0
- push {lr}
- ldr r0, _0813B504
- ldr r1, _0813B508
- str r1, [r0]
- ldr r0, _0813B50C
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0813B504: .4byte gUnknown_0300485C
-_0813B508: .4byte sub_813B4D0
-_0813B50C: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_813B4F0
-
- thumb_func_start sub_813B510
-sub_813B510: @ 813B510
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- ldr r0, _0813B540
- ldr r1, _0813B544
- bl StringCopy
- ldr r0, _0813B548
- movs r1, 0x1
- movs r2, 0x3
- bl MenuPrint
- ldr r1, _0813B54C
- ldr r2, _0813B550
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B540: .4byte gStringVar1
-_0813B544: .4byte gOtherText_MoveToBag
-_0813B548: .4byte gUnknown_0840633A
-_0813B54C: .4byte gOtherText_MessageWillBeLost
-_0813B550: .4byte sub_813B554
- thumb_func_end sub_813B510
-
- thumb_func_start sub_813B554
-sub_813B554: @ 813B554
- 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, _0813B574
- adds r0, r4, 0
- bl sub_80F914C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B574: .4byte gUnknown_084062E8
- thumb_func_end sub_813B554
-
- thumb_func_start sub_813B578
-sub_813B578: @ 813B578
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _0813B5BC
- ldrb r0, [r4]
- adds r0, 0x6
- ldrb r1, [r4, 0x2]
- adds r0, r1
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, _0813B5C0
- adds r6, r1, r0
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1A
- movs r3, 0xD
- bl MenuZeroFillWindowRect
- ldrh r0, [r6, 0x20]
- movs r1, 0x1
- bl sub_80A9424
- lsls r0, 24
- cmp r0, 0
- bne _0813B5CC
- ldr r1, _0813B5C4
- ldr r2, _0813B5C8
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- b _0813B602
- .align 2, 0
-_0813B5BC: .4byte 0x0201fe00
-_0813B5C0: .4byte gSaveBlock1 + 0x2B4C
-_0813B5C4: .4byte gOtherText_BagIsFull
-_0813B5C8: .4byte sub_813B758
-_0813B5CC:
- ldr r1, _0813B608
- ldr r2, _0813B60C
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- adds r0, r6, 0
- bl sub_80A2B40
- bl sub_813AF78
- ldrb r0, [r4, 0x3]
- subs r0, 0x1
- strb r0, [r4, 0x3]
- ldrb r1, [r4, 0x3]
- ldrb r0, [r4, 0x1]
- ldrb r2, [r4, 0x2]
- adds r0, r2
- cmp r1, r0
- bge _0813B5FC
- cmp r2, 0
- beq _0813B5FC
- subs r0, r2, 0x1
- strb r0, [r4, 0x2]
-_0813B5FC:
- adds r0, r5, 0
- bl sub_813A240
-_0813B602:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B608: .4byte gOtherText_MailWasReturned
-_0813B60C: .4byte sub_813B758
- thumb_func_end sub_813B578
-
- thumb_func_start sub_813B610
-sub_813B610: @ 813B610
- 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
- adds r0, r4, 0
- bl sub_813B758
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813B610
-
- thumb_func_start sub_813B630
-sub_813B630: @ 813B630
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl CalculatePlayerPartyCount
- lsls r0, 24
- cmp r0, 0
- bne _0813B648
- adds r0, r4, 0
- bl sub_813B718
- b _0813B65E
-_0813B648:
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- ldr r0, _0813B664
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813B668
- str r0, [r1]
-_0813B65E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B664: .4byte gTasks
-_0813B668: .4byte sub_813B66C
- thumb_func_end sub_813B630
-
- thumb_func_start sub_813B66C
-sub_813B66C: @ 813B66C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813B698
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0813B690
- ldr r0, _0813B69C
- bl SetMainCallback2
- ldr r1, _0813B6A0
- movs r0, 0x3
- strb r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
-_0813B690:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B698: .4byte gPaletteFade
-_0813B69C: .4byte sub_808B020
-_0813B6A0: .4byte gUnknown_02038561
- thumb_func_end sub_813B66C
-
- thumb_func_start sub_813B6A4
-sub_813B6A4: @ 813B6A4
- push {r4-r6,lr}
- ldr r0, _0813B6F0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, _0813B6F4
- ldrb r4, [r5, 0x3]
- bl sub_813AF3C
- strb r0, [r5, 0x3]
- bl sub_813AF78
- ldrb r0, [r5, 0x3]
- cmp r4, r0
- beq _0813B6DA
- ldrb r1, [r5, 0x3]
- ldrb r0, [r5, 0x1]
- ldrb r2, [r5, 0x2]
- adds r0, r2
- cmp r1, r0
- bge _0813B6DA
- cmp r2, 0
- beq _0813B6DA
- subs r0, r2, 0x1
- strb r0, [r5, 0x2]
-_0813B6DA:
- adds r0, r6, 0
- bl sub_813A240
- adds r0, r6, 0
- bl sub_813B108
- bl pal_fill_black
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B6F0: .4byte sub_813B4A0
-_0813B6F4: .4byte 0x0201fe00
- thumb_func_end sub_813B6A4
-
- thumb_func_start sub_813B6F8
-sub_813B6F8: @ 813B6F8
- push {lr}
- ldr r0, _0813B70C
- ldr r1, _0813B710
- str r1, [r0]
- ldr r0, _0813B714
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0813B70C: .4byte gUnknown_0300485C
-_0813B710: .4byte sub_813B6A4
-_0813B714: .4byte c2_exit_to_overworld_2_switch
- thumb_func_end sub_813B6F8
-
- thumb_func_start sub_813B718
-sub_813B718: @ 813B718
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0813B72C
- ldr r2, _0813B730
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r0}
- bx r0
- .align 2, 0
-_0813B72C: .4byte gOtherText_NoPokemon
-_0813B730: .4byte sub_813B758
- thumb_func_end sub_813B718
-
- thumb_func_start sub_813B734
-sub_813B734: @ 813B734
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0xC
- movs r3, 0x9
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl sub_813B758
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813B734
-
- thumb_func_start sub_813B758
-sub_813B758: @ 813B758
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_813B108
- ldr r1, _0813B77C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813B780
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B77C: .4byte gTasks
-_0813B780: .4byte sub_813B174
- thumb_func_end sub_813B758
-
- thumb_func_start sub_813B784
-sub_813B784: @ 813B784
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_813B784
-
- thumb_func_start CB2_813B798
-CB2_813B798: @ 813B798
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- ldr r0, _0813B7C8
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- beq _0813B7D4
- ldr r0, _0813B7CC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0813B7D4
- ldr r0, _0813B7D0
- bl SetMainCallback2
- b _0813B7E4
- .align 2, 0
-_0813B7C8: .4byte gMain
-_0813B7CC: .4byte gPaletteFade
-_0813B7D0: .4byte CB2_813B7EC
-_0813B7D4:
- ldr r2, _0813B7E8
- ldr r1, [r2]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0813B7E4
- adds r0, r1, 0x1
- str r0, [r2]
-_0813B7E4:
- pop {r0}
- bx r0
- .align 2, 0
-_0813B7E8: .4byte gUnknown_03005ED0
- thumb_func_end CB2_813B798
-
- thumb_func_start CB2_813B7EC
-CB2_813B7EC: @ 813B7EC
- push {lr}
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _0813B7FE
- ldr r0, _0813B804
- bl SetMainCallback2
-_0813B7FE:
- pop {r0}
- bx r0
- .align 2, 0
-_0813B804: .4byte CB2_InitTitleScreen
- thumb_func_end CB2_813B7EC
-
- thumb_func_start sub_813B808
-sub_813B808: @ 813B808
- push {r4-r6,lr}
- adds r3, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r3, 16
- lsrs r3, 16
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 16
- lsrs r5, 16
- ldr r0, _0813B848
- movs r6, 0xC0
- lsls r6, 19
- adds r3, r6
- adds r1, r3, 0
- bl LZ77UnCompVram
- ldr r0, _0813B84C
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _0813B850
- adds r4, r6
- movs r2, 0xA0
- lsls r2, 2
- adds r1, r4, 0
- bl CpuSet
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813B848: .4byte gIntroCopyright_Gfx
-_0813B84C: .4byte gIntroCopyright_Pal
-_0813B850: .4byte gIntroCopyright_Tilemap
- thumb_func_end sub_813B808
-
- thumb_func_start SerialCb_CopyrightScreen
-SerialCb_CopyrightScreen: @ 813B854
- push {lr}
- ldr r0, _0813B860
- bl GameCubeMultiBoot_HandleSerialInterrupt
- pop {r0}
- bx r0
- .align 2, 0
-_0813B860: .4byte gUnknown_03005EE0
- thumb_func_end SerialCb_CopyrightScreen
-
- thumb_func_start SetUpCopyrightScreen
-SetUpCopyrightScreen: @ 813B864
- push {r4,r5,lr}
- sub sp, 0xC
- ldr r0, _0813B880
- ldr r1, _0813B884
- adds r5, r0, r1
- ldrb r4, [r5]
- cmp r4, 0x8C
- bne _0813B876
- b _0813B9C4
-_0813B876:
- cmp r4, 0x8C
- bgt _0813B888
- cmp r4, 0
- beq _0813B890
- b _0813B962
- .align 2, 0
-_0813B880: .4byte gMain
-_0813B884: .4byte 0x0000043c
-_0813B888:
- cmp r4, 0x8D
- bne _0813B88E
- b _0813B9F0
-_0813B88E:
- b _0813B962
-_0813B890:
- movs r0, 0
- bl SetVBlankCallback
- ldr r0, _0813B97C
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- movs r1, 0xA0
- lsls r1, 19
- ldr r2, _0813B980
- adds r0, r2, 0
- strh r0, [r1]
- movs r5, 0x80
- lsls r5, 19
- strh r4, [r5]
- ldr r0, _0813B984
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- add r0, sp, 0x4
- strh r4, [r0]
- ldr r1, _0813B988
- str r0, [r1]
- movs r0, 0xC0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _0813B98C
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- str r4, [sp, 0x8]
- add r0, sp, 0x8
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _0813B990
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add r0, sp, 0x4
- strh r4, [r0]
- str r0, [r1]
- ldr r0, _0813B994
- str r0, [r1, 0x4]
- ldr r0, _0813B998
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetPaletteFade
- movs r1, 0xE0
- lsls r1, 6
- movs r0, 0
- movs r2, 0
- bl sub_813B808
- bl remove_some_task
- bl ResetTasks
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- movs r0, 0x1
- negs r0, r0
- ldr r1, _0813B99C
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _0813B9A0
- movs r2, 0xE0
- lsls r2, 3
- adds r0, r2, 0
- strh r0, [r1]
- ldr r3, _0813B9A4
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _0813B9A8
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _0813B9AC
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0813B9B0
- bl SetVBlankCallback
- movs r1, 0xA0
- lsls r1, 1
- adds r0, r1, 0
- strh r0, [r5]
- ldr r0, _0813B9B4
- bl SetSerialCallback
- ldr r0, _0813B9B8
- bl GameCubeMultiBoot_Init
-_0813B962:
- bl UpdatePaletteFade
- ldr r0, _0813B9BC
- ldr r2, _0813B9C0
- adds r0, r2
- ldrb r1, [r0]
- adds r1, 0x1
- strb r1, [r0]
- ldr r0, _0813B9B8
- bl GameCubeMultiBoot_Main
- b _0813BA38
- .align 2, 0
-_0813B97C: .4byte REG_BLDCNT
-_0813B980: .4byte 0x00007fff
-_0813B984: .4byte REG_BG0HOFS
-_0813B988: .4byte 0x040000d4
-_0813B98C: .4byte 0x8100c000
-_0813B990: .4byte 0x85000100
-_0813B994: .4byte 0x05000002
-_0813B998: .4byte 0x810001ff
-_0813B99C: .4byte 0x0000ffff
-_0813B9A0: .4byte REG_BG0CNT
-_0813B9A4: .4byte 0x04000208
-_0813B9A8: .4byte 0x04000200
-_0813B9AC: .4byte REG_DISPSTAT
-_0813B9B0: .4byte sub_813B784
-_0813B9B4: .4byte SerialCb_CopyrightScreen
-_0813B9B8: .4byte gUnknown_03005EE0
-_0813B9BC: .4byte gMain
-_0813B9C0: .4byte 0x0000043c
-_0813B9C4:
- ldr r4, _0813B9EC
- adds r0, r4, 0
- bl GameCubeMultiBoot_Main
- ldrb r0, [r4, 0x2]
- cmp r0, 0x1
- beq _0813BA38
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _0813BA38
- .align 2, 0
-_0813B9EC: .4byte gUnknown_03005EE0
-_0813B9F0:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _0813BA38
- ldr r0, _0813BA18
- movs r1, 0
- bl CreateTask
- ldr r0, _0813BA1C
- bl SetMainCallback2
- ldr r1, _0813BA20
- ldrb r0, [r1, 0x2]
- cmp r0, 0
- beq _0813BA24
- adds r0, r1, 0
- bl GameCubeMultiBoot_ExecuteProgram
- b _0813BA2E
- .align 2, 0
-_0813BA18: .4byte task_intro_1
-_0813BA1C: .4byte CB2_813B798
-_0813BA20: .4byte gUnknown_03005EE0
-_0813BA24:
- bl GameCubeMultiBoot_Quit
- ldr r0, _0813BA34
- bl SetSerialCallback
-_0813BA2E:
- movs r0, 0
- b _0813BA3A
- .align 2, 0
-_0813BA34: .4byte SerialCB
-_0813BA38:
- movs r0, 0x1
-_0813BA3A:
- add sp, 0xC
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end SetUpCopyrightScreen
-
- thumb_func_start c2_copyright_1
-c2_copyright_1: @ 813BA44
- push {lr}
- bl SetUpCopyrightScreen
- lsls r0, 24
- cmp r0, 0
- bne _0813BA7A
- bl sub_8052E4C
- bl sub_81251B8
- movs r0, 0
- bl sub_8125EC8
- ldr r0, _0813BA80
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813BA6A
- cmp r0, 0x2
- bne _0813BA6E
-_0813BA6A:
- bl ClearSav2
-_0813BA6E:
- ldr r0, _0813BA84
- ldrb r0, [r0, 0x15]
- lsls r0, 31
- lsrs r0, 31
- bl SetPokemonCryStereo
-_0813BA7A:
- pop {r0}
- bx r0
- .align 2, 0
-_0813BA80: .4byte gSaveFileStatus
-_0813BA84: .4byte gSaveBlock2
- thumb_func_end c2_copyright_1
-
- thumb_func_start sub_813BA88
-sub_813BA88: @ 813BA88
- push {lr}
- bl SetUpCopyrightScreen
- pop {r0}
- bx r0
- thumb_func_end sub_813BA88
-
- thumb_func_start task_intro_1
-task_intro_1: @ 813BA94
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0xC
- mov r8, r0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r0, 0
- bl SetVBlankCallback
- ldr r4, _0813BC18
- bl Random
- movs r1, 0x1
- ands r1, r0
- strh r1, [r4]
- bl intro_reset_and_hide_bgs
- ldr r0, _0813BC1C
- movs r6, 0
- strh r6, [r0]
- ldr r1, _0813BC20
- movs r0, 0x50
- strh r0, [r1]
- subs r1, 0x4
- movs r0, 0x18
- strh r0, [r1]
- subs r1, 0x4
- movs r0, 0x28
- strh r0, [r1]
- ldr r0, _0813BC24
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _0813BC28
- ldr r1, _0813BC2C
- bl LZ77UnCompVram
- ldr r1, _0813BC30
- add r0, sp, 0x8
- strh r6, [r0]
- ldr r4, _0813BC34
- str r0, [r4]
- str r1, [r4, 0x4]
- ldr r5, _0813BC38
- str r5, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _0813BC3C
- ldr r1, _0813BC40
- bl LZ77UnCompVram
- ldr r1, _0813BC44
- add r0, sp, 0x8
- strh r6, [r0]
- str r0, [r4]
- str r1, [r4, 0x4]
- str r5, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _0813BC48
- ldr r1, _0813BC4C
- bl LZ77UnCompVram
- ldr r1, _0813BC50
- add r0, sp, 0x8
- strh r6, [r0]
- str r0, [r4]
- str r1, [r4, 0x4]
- str r5, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _0813BC54
- ldr r1, _0813BC58
- bl LZ77UnCompVram
- ldr r1, _0813BC5C
- add r0, sp, 0x8
- strh r6, [r0]
- str r0, [r4]
- str r1, [r4, 0x4]
- str r5, [r4, 0x8]
- ldr r0, [r4, 0x8]
- ldr r0, _0813BC60
- movs r5, 0x80
- lsls r5, 2
- movs r1, 0
- adds r2, r5, 0
- bl LoadPalette
- ldr r1, _0813BC64
- ldr r2, _0813BC68
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r3, _0813BC6C
- adds r0, r3, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _0813BC70
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- movs r3, 0x90
- lsls r3, 8
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _0813BC74
- bl LoadCompressedObjectPic
- ldr r0, _0813BC78
- bl LoadCompressedObjectPic
- ldr r0, _0813BC7C
- bl LoadSpritePalettes
- ldr r4, _0813BC80
- movs r0, 0xF0
- lsls r0, 1
- adds r1, r4, r0
- adds r0, r4, 0
- movs r2, 0x10
- bl CpuSet
- movs r2, 0xE1
- lsls r2, 1
- adds r1, r4, r2
- adds r0, r4, 0
- movs r2, 0xF
- bl CpuSet
- movs r3, 0xD2
- lsls r3, 1
- adds r1, r4, r3
- adds r0, r4, 0
- movs r2, 0xE
- bl CpuSet
- movs r0, 0xC3
- lsls r0, 1
- adds r1, r4, r0
- adds r0, r4, 0
- movs r2, 0xD
- bl CpuSet
- movs r2, 0xB4
- lsls r2, 1
- adds r1, r4, r2
- adds r0, r4, 0
- movs r2, 0xC
- bl CpuSet
- movs r3, 0xA5
- lsls r3, 1
- adds r1, r4, r3
- adds r0, r4, 0
- movs r2, 0xB
- bl CpuSet
- movs r0, 0x96
- lsls r0, 1
- adds r1, r4, r0
- adds r0, r4, 0
- movs r2, 0xA
- bl CpuSet
- movs r1, 0xE
- negs r1, r1
- movs r0, 0x78
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- movs r0, 0xEC
- adds r2, r5, 0
- movs r3, 0x1
- bl sub_813D584
- ldr r2, _0813BC84
- mov r3, r8
- lsls r1, r3, 2
- add r1, r8
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x8]
- ldr r0, _0813BC88
- str r0, [r1]
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813BC18: .4byte gUnknown_02039318
-_0813BC1C: .4byte REG_BG3VOFS
-_0813BC20: .4byte REG_BG2VOFS
-_0813BC24: .4byte gUnknown_08407764
-_0813BC28: .4byte gUnknown_08406B74
-_0813BC2C: .4byte 0x06008000
-_0813BC30: .4byte 0x06008800
-_0813BC34: .4byte 0x040000d4
-_0813BC38: .4byte 0x81000400
-_0813BC3C: .4byte gUnknown_08406F28
-_0813BC40: .4byte 0x06009000
-_0813BC44: .4byte 0x06009800
-_0813BC48: .4byte gUnknown_0840725C
-_0813BC4C: .4byte 0x0600a000
-_0813BC50: .4byte 0x0600a800
-_0813BC54: .4byte gUnknown_0840754C
-_0813BC58: .4byte 0x0600b000
-_0813BC5C: .4byte 0x0600b800
-_0813BC60: .4byte gUnknown_08406974
-_0813BC64: .4byte REG_BG3CNT
-_0813BC68: .4byte 0x00009603
-_0813BC6C: .4byte 0x00009402
-_0813BC70: .4byte 0x00009201
-_0813BC74: .4byte gUnknown_0840B008
-_0813BC78: .4byte gUnknown_0840B018
-_0813BC7C: .4byte gUnknown_0840B028
-_0813BC80: .4byte gPlttBufferUnfaded + 0x200
-_0813BC84: .4byte gTasks
-_0813BC88: .4byte task_intro_2
- thumb_func_end task_intro_1
-
- thumb_func_start task_intro_2
-task_intro_2: @ 813BC8C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- negs r0, r0
- movs r5, 0
- str r5, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _0813BCE0
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0813BCE4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813BCE8
- str r1, [r0]
- ldr r0, _0813BCEC
- str r5, [r0]
- movs r0, 0xCF
- lsls r0, 1
- bl m4aSongNumStart
- bl ResetSerial
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813BCE0: .4byte sub_813B784
-_0813BCE4: .4byte gTasks
-_0813BCE8: .4byte sub_813BCF0
-_0813BCEC: .4byte gUnknown_03005ED0
- thumb_func_end task_intro_2
-
- thumb_func_start sub_813BCF0
-sub_813BCF0: @ 813BCF0
- push {r4-r6,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r3, r0, 24
- adds r5, r3, 0
- ldr r4, _0813BDD4
- ldr r0, [r4]
- cmp r0, 0x4C
- bne _0813BD1E
- ldr r2, _0813BDD8
- ldr r1, _0813BDDC
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r6, 0x8
- ldrsh r1, [r0, r6]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0, 0x2E]
-_0813BD1E:
- ldr r0, [r4]
- cmp r0, 0xFB
- bne _0813BD40
- ldr r2, _0813BDD8
- ldr r1, _0813BDDC
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r3, 0x8
- ldrsh r1, [r0, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- strh r1, [r0, 0x2E]
-_0813BD40:
- ldr r1, [r4]
- movs r0, 0xB8
- lsls r0, 1
- cmp r1, r0
- bne _0813BD60
- movs r2, 0x80
- lsls r2, 3
- movs r0, 0x70
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r0, 0x30
- movs r1, 0
- movs r3, 0x5
- bl sub_813D584
-_0813BD60:
- ldr r1, [r4]
- movs r0, 0xC0
- lsls r0, 1
- cmp r1, r0
- bne _0813BD80
- movs r2, 0x80
- lsls r2, 3
- movs r0, 0x80
- str r0, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- movs r0, 0xC8
- movs r1, 0x3C
- movs r3, 0x9
- bl sub_813D584
-_0813BD80:
- ldr r1, [r4]
- movs r0, 0x8C
- lsls r0, 2
- cmp r1, r0
- bne _0813BDA0
- ldr r0, _0813BDE0
- movs r1, 0
- bl CreateTask
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0x78
- movs r1, 0x50
- bl sub_813D954
-_0813BDA0:
- ldr r1, [r4]
- ldr r0, _0813BDE4
- cmp r1, r0
- bls _0813BDCA
- ldr r1, _0813BDDC
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- movs r1, 0x50
- strh r1, [r0, 0xA]
- strh r2, [r0, 0xC]
- movs r1, 0x18
- strh r1, [r0, 0xE]
- strh r2, [r0, 0x10]
- movs r1, 0x28
- strh r1, [r0, 0x12]
- strh r2, [r0, 0x14]
- ldr r1, _0813BDE8
- str r1, [r0]
-_0813BDCA:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813BDD4: .4byte gUnknown_03005ED0
-_0813BDD8: .4byte gSprites
-_0813BDDC: .4byte gTasks
-_0813BDE0: .4byte sub_813CCE8
-_0813BDE4: .4byte 0x000002e3
-_0813BDE8: .4byte task_intro_4
- thumb_func_end sub_813BCF0
-
- thumb_func_start task_intro_4
-task_intro_4: @ 813BDEC
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- adds r4, r2, 0
- ldr r0, _0813BE80
- ldr r3, [r0]
- ldr r0, _0813BE84
- cmp r3, r0
- bhi _0813BEAC
- ldr r0, _0813BE88
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- lsls r0, 16
- ldrh r2, [r1, 0xC]
- adds r0, r2
- ldr r2, _0813BE8C
- adds r0, r2
- asrs r2, r0, 16
- strh r2, [r1, 0xA]
- strh r0, [r1, 0xC]
- ldr r0, _0813BE90
- strh r2, [r0]
- movs r2, 0xE
- ldrsh r0, [r1, r2]
- lsls r0, 16
- ldrh r2, [r1, 0x10]
- adds r0, r2
- ldr r2, _0813BE94
- adds r0, r2
- asrs r2, r0, 16
- strh r2, [r1, 0xE]
- strh r0, [r1, 0x10]
- ldr r0, _0813BE98
- strh r2, [r0]
- movs r2, 0x12
- ldrsh r0, [r1, r2]
- lsls r0, 16
- ldrh r2, [r1, 0x14]
- adds r0, r2
- ldr r2, _0813BE9C
- adds r0, r2
- asrs r2, r0, 16
- strh r2, [r1, 0x12]
- strh r0, [r1, 0x14]
- ldr r0, _0813BEA0
- strh r2, [r0]
- movs r0, 0xDC
- lsls r0, 2
- cmp r3, r0
- bne _0813BED2
- ldr r0, _0813BEA4
- movs r1, 0xC8
- movs r2, 0xA0
- movs r3, 0xA
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0813BEA8
- 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]
- b _0813BED2
- .align 2, 0
-_0813BE80: .4byte gUnknown_03005ED0
-_0813BE84: .4byte 0x00000387
-_0813BE88: .4byte gTasks
-_0813BE8C: .4byte 0xffff4000
-_0813BE90: .4byte REG_BG2VOFS
-_0813BE94: .4byte 0xffff0000
-_0813BE98: .4byte REG_BG1VOFS
-_0813BE9C: .4byte 0xfffe8000
-_0813BEA0: .4byte REG_BG0VOFS
-_0813BEA4: .4byte gSpriteTemplate_840AFF0
-_0813BEA8: .4byte gSprites
-_0813BEAC:
- ldr r0, _0813BEDC
- cmp r3, r0
- bls _0813BED2
- movs r0, 0x1
- negs r0, r0
- ldr r1, _0813BEE0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0813BEE4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813BEE8
- str r1, [r0]
-_0813BED2:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813BEDC: .4byte 0x000003ef
-_0813BEE0: .4byte 0x0000ffff
-_0813BEE4: .4byte gTasks
-_0813BEE8: .4byte sub_813BEEC
- thumb_func_end task_intro_4
-
- thumb_func_start sub_813BEEC
-sub_813BEEC: @ 813BEEC
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0813BF10
- ldr r1, [r0]
- ldr r0, _0813BF14
- cmp r1, r0
- bls _0813BF0A
- ldr r0, _0813BF18
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813BF1C
- str r0, [r1]
-_0813BF0A:
- pop {r0}
- bx r0
- .align 2, 0
-_0813BF10: .4byte gUnknown_03005ED0
-_0813BF14: .4byte 0x00000402
-_0813BF18: .4byte gTasks
-_0813BF1C: .4byte task_intro_6
- thumb_func_end sub_813BEEC
-
- thumb_func_start task_intro_6
-task_intro_6: @ 813BF20
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl intro_reset_and_hide_bgs
- movs r0, 0
- bl SetVBlankCallback
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r0, _0813BF60
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0813BF64
- strh r1, [r0]
- .ifdef SAPPHIRE
- movs r0, 0
- .else
- movs r0, 0x1
- .endif
- bl load_intro_part2_graphics
- ldr r1, _0813BF68
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813BF6C
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813BF60: .4byte gUnknown_02039358
-_0813BF64: .4byte gUnknown_0203935A
-_0813BF68: .4byte gTasks
-_0813BF6C: .4byte sub_813BF70
- thumb_func_end task_intro_6
-
- thumb_func_start sub_813BF70
-sub_813BF70: @ 813BF70
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _0813BF88
- ldrh r0, [r0]
- cmp r0, 0
- bne _0813BF90
- ldr r0, _0813BF8C
- bl LoadCompressedObjectPic
- b _0813BF96
- .align 2, 0
-_0813BF88: .4byte gUnknown_02039318
-_0813BF8C: .4byte gIntro2BrendanSpriteSheet
-_0813BF90:
- ldr r0, _0813BFBC
- bl LoadCompressedObjectPic
-_0813BF96:
- ldr r0, _0813BFC0
- bl LoadCompressedObjectPic
- ldr r0, _0813BFC4
- bl LoadCompressedObjectPic
- ldr r0, _0813BFC8
- bl LoadSpritePalettes
- ldr r0, _0813BFCC
- ldrh r0, [r0]
- cmp r0, 0
- bne _0813BFD0
- movs r0, 0x88
- lsls r0, 1
- movs r1, 0x64
- bl sub_8149310
- b _0813BFDA
- .align 2, 0
-_0813BFBC: .4byte gIntro2MaySpriteSheet
-_0813BFC0: .4byte gIntro2BicycleSpriteSheet
- .ifdef SAPPHIRE
-_0813BFC4: .4byte gIntro2LatiasSpriteSheet
- .else
-_0813BFC4: .4byte gIntro2LatiosSpriteSheet
- .endif
-_0813BFC8: .4byte gIntro2SpritePalettes
-_0813BFCC: .4byte gUnknown_02039318
-_0813BFD0:
- movs r0, 0x88
- lsls r0, 1
- movs r1, 0x64
- bl sub_8149368
-_0813BFDA:
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, _0813C060
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r5, r2, 0
- adds r5, 0x1C
- adds r3, r0, r5
- ldr r1, _0813C064
- str r1, [r3]
- adds r2, 0x8
- adds r0, r2
- ldr r1, _0813C068
- str r1, [r0]
- ldr r0, _0813C06C
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- strh r6, [r4, 0xA]
- movs r0, 0x40
- negs r0, r0
- movs r1, 0x3C
- .ifdef SAPPHIRE
- bl sapphire_sub_81494A0
- .else
- bl sub_8149424
- .endif
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r5
- ldr r1, _0813C070
- str r1, [r0]
- strh r6, [r4, 0xC]
- movs r0, 0x1
- negs r0, r0
- ldr r1, _0813C074
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _0813C078
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 7
- .ifdef SAPPHIRE
- movs r0, 0
- movs r2, 0x40
- .else
- movs r2, 0x80
- lsls r2, 3
- movs r0, 0x1
- .endif
- movs r3, 0x10
- bl sub_8148EC0
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x8]
- .ifdef SAPPHIRE
- movs r0, 0
- .else
- movs r0, 0x1
- .endif
- bl sub_8148C78
- ldr r0, _0813C07C
- str r0, [r4]
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C060: .4byte gSprites
-_0813C064: .4byte sub_813D788
-_0813C068: .4byte gUnknown_0840AE80
-_0813C06C: .4byte gTasks
-_0813C070: .4byte sub_813D880
-_0813C074: .4byte 0x0000ffff
-_0813C078: .4byte sub_813B784
-_0813C07C: .4byte sub_813C080
- thumb_func_end sub_813BF70
-
- thumb_func_start sub_813C080
-sub_813C080: @ 813C080
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- ldr r5, _0813C1BC
- ldr r1, [r5]
- ldr r0, _0813C1C0
- cmp r1, r0
- bls _0813C0B4
- movs r0, 0x1
- negs r0, r0
- ldr r1, _0813C1C4
- str r1, [sp]
- movs r1, 0x10
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0813C1C8
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813C1CC
- str r1, [r0]
-_0813C0B4:
- ldr r1, [r5]
- ldr r0, _0813C1D0
- ldr r3, _0813C1C8
- cmp r1, r0
- bne _0813C0D8
- ldr r2, _0813C1D4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- movs r7, 0xA
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0, 0x2E]
-_0813C0D8:
- ldr r1, [r5]
- ldr r0, _0813C1D8
- cmp r1, r0
- bne _0813C0FA
- ldr r2, _0813C1D4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- movs r7, 0xA
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x2E]
-_0813C0FA:
- ldr r1, [r5]
- ldr r0, _0813C1DC
- cmp r1, r0
- bne _0813C11C
- ldr r2, _0813C1D4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- movs r7, 0xC
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0, 0x2E]
-_0813C11C:
- ldr r1, [r5]
- ldr r0, _0813C1E0
- cmp r1, r0
- bne _0813C13E
- ldr r2, _0813C1D4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- movs r7, 0xA
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- strh r1, [r0, 0x2E]
-_0813C13E:
- ldr r1, [r5]
- ldr r0, _0813C1E4
- cmp r1, r0
- bne _0813C160
- ldr r2, _0813C1D4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- movs r7, 0xA
- ldrsh r1, [r0, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x3
- strh r1, [r0, 0x2E]
-_0813C160:
- ldr r1, [r5]
- ldr r0, _0813C1E8
- cmp r1, r0
- bne _0813C182
- ldr r2, _0813C1D4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- movs r4, 0xA
- ldrsh r1, [r0, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x4
- strh r1, [r0, 0x2E]
-_0813C182:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r3
- ldrh r0, [r4, 0xE]
- lsls r0, 16
- asrs r0, 18
- movs r1, 0x7F
- ands r0, r1
- movs r1, 0x30
- bl Sin
- ldr r1, _0813C1EC
- strh r0, [r1]
- ldrh r2, [r4, 0xE]
- movs r7, 0xE
- ldrsh r1, [r4, r7]
- ldr r0, _0813C1F0
- cmp r1, r0
- bgt _0813C1AE
- adds r0, r2, 0x1
- strh r0, [r4, 0xE]
-_0813C1AE:
- .ifdef SAPPHIRE
- movs r0, 0
- .else
- movs r0, 0x1
- .endif
- bl sub_8149020
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C1BC: .4byte gUnknown_03005ED0
-_0813C1C0: .4byte 0x0000071f
-_0813C1C4: .4byte 0x0000ffff
-_0813C1C8: .4byte gTasks
-_0813C1CC: .4byte sub_813C1F4
-_0813C1D0: .4byte 0x00000455
-_0813C1D4: .4byte gSprites
-_0813C1D8: .4byte 0x000004be
-_0813C1DC: .4byte 0x00000572
-_0813C1E0: .4byte 0x00000576
-_0813C1E4: .4byte 0x00000632
-_0813C1E8: .4byte 0x000006bf
-_0813C1EC: .4byte gUnknown_0203935A
-_0813C1F0: .4byte 0x000001ff
- thumb_func_end sub_813C080
-
- thumb_func_start sub_813C1F4
-sub_813C1F4: @ 813C1F4
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0813C220
- ldr r1, [r0]
- ldr r0, _0813C224
- cmp r1, r0
- bls _0813C218
- ldr r0, _0813C228
- lsls r4, r2, 2
- adds r4, r2
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x8]
- bl DestroyTask
- ldr r0, _0813C22C
- str r0, [r4]
-_0813C218:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C220: .4byte gUnknown_03005ED0
-_0813C224: .4byte 0x00000814
-_0813C228: .4byte gTasks
-_0813C22C: .4byte task_intro_10
- thumb_func_end sub_813C1F4
-
- thumb_func_start task_intro_10
-task_intro_10: @ 813C230
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- bl intro_reset_and_hide_bgs
- ldr r0, _0813C2C0
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _0813C2C4
- ldr r1, _0813C2C8
- bl LZ77UnCompVram
- ldr r0, _0813C2CC
- movs r2, 0x80
- lsls r2, 2
- movs r1, 0
- bl LoadPalette
- ldr r0, _0813C2D0
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- movs r5, 0
- strh r5, [r4, 0x8]
- strh r5, [r4, 0xA]
- strh r5, [r4, 0xC]
- strh r5, [r4, 0xE]
- movs r0, 0x78
- movs r1, 0x50
- movs r2, 0
- movs r3, 0
- bl sub_813CE30
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- movs r0, 0x1
- negs r0, r0
- ldr r1, _0813C2D4
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _0813C2D8
- ldr r2, _0813C2DC
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xC
- ldr r2, _0813C2E0
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0813C2E4
- str r0, [r4]
- ldr r0, _0813C2E8
- str r5, [r0]
- movs r0, 0xDD
- lsls r0, 1
- bl m4aSongNumStart
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C2C0: .4byte gUnknown_08409C04
-_0813C2C4: .4byte gUnknown_08409AD4
-_0813C2C8: .4byte 0x06004000
-_0813C2CC: .4byte gUnknown_084098D4
-_0813C2D0: .4byte gTasks
-_0813C2D4: .4byte 0x0000ffff
-_0813C2D8: .4byte REG_BG2CNT
-_0813C2DC: .4byte 0x00004883
-_0813C2E0: .4byte 0x00001441
-_0813C2E4: .4byte task_intro_11
-_0813C2E8: .4byte gUnknown_03005ED0
- thumb_func_end task_intro_10
-
- thumb_func_start task_intro_11
-task_intro_11: @ 813C2EC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _0813C324
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r2
- movs r1, 0x80
- lsls r1, 3
- adds r0, r1, 0
- ldrh r1, [r3, 0x8]
- adds r0, r1
- strh r0, [r3, 0x8]
- ldrh r4, [r3, 0xA]
- movs r0, 0xA
- ldrsh r1, [r3, r0]
- ldr r0, _0813C328
- cmp r1, r0
- bgt _0813C32C
- ldrh r0, [r3, 0xC]
- adds r1, r4, r0
- strh r1, [r3, 0xA]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- b _0813C330
- .align 2, 0
-_0813C324: .4byte gTasks
-_0813C328: .4byte 0x000006bf
-_0813C32C:
- ldr r0, _0813C378
- str r0, [r3]
-_0813C330:
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r2
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- movs r0, 0x80
- lsls r0, 9
- bl __divsi3
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- ldrh r3, [r4, 0x8]
- movs r0, 0x78
- movs r1, 0x50
- bl sub_813CE30
- ldr r0, _0813C37C
- ldr r0, [r0]
- cmp r0, 0x2C
- bne _0813C36E
- movs r0, 0x1
- negs r0, r0
- ldr r1, _0813C380
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0813C36E:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C378: .4byte sub_813C384
-_0813C37C: .4byte gUnknown_03005ED0
-_0813C380: .4byte 0x0000ffff
- thumb_func_end task_intro_11
-
- thumb_func_start sub_813C384
-sub_813C384: @ 813C384
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0813C3A4
- ldr r0, [r0]
- cmp r0, 0x3B
- bls _0813C3A0
- ldr r0, _0813C3A8
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813C3AC
- str r0, [r1]
-_0813C3A0:
- pop {r0}
- bx r0
- .align 2, 0
-_0813C3A4: .4byte gUnknown_03005ED0
-_0813C3A8: .4byte gTasks
-_0813C3AC: .4byte sub_813C3B0
- thumb_func_end sub_813C384
-
- thumb_func_start sub_813C3B0
-sub_813C3B0: @ 813C3B0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- bl intro_reset_and_hide_bgs
- movs r1, 0
- ldr r2, _0813C4E4
- movs r7, 0
- adds r6, r2, 0
- adds r6, 0x20
- adds r5, r2, 0
- adds r5, 0x40
- mov r12, r2
- movs r4, 0x11
- movs r3, 0x22
-_0813C3D4:
- adds r0, r1, r2
- strb r7, [r0]
- adds r0, r1, r6
- strb r4, [r0]
- adds r0, r1, r5
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x1F
- bls _0813C3D4
- movs r1, 0xC0
- lsls r1, 19
- ldr r0, _0813C4E8
- mov r2, r12
- str r2, [r0]
- str r1, [r0, 0x4]
- ldr r1, _0813C4EC
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- movs r1, 0
- ldr r5, _0813C4F0
- ldr r6, _0813C4F4
- mov r0, r8
- lsls r7, r0, 2
- ldr r4, _0813C4F8
- ldr r2, _0813C4FC
- adds r3, r2, 0
- ldr r2, _0813C500
-_0813C40E:
- lsls r0, r1, 1
- adds r0, r4
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bls _0813C40E
- movs r1, 0
- ldr r3, _0813C504
- ldr r0, _0813C508
- adds r2, r0, 0
-_0813C426:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x7F
- bls _0813C426
- movs r1, 0
- ldr r4, _0813C50C
- movs r2, 0xF0
- lsls r2, 8
- adds r3, r2, 0
- ldr r2, _0813C510
-_0813C442:
- lsls r0, r1, 1
- adds r0, r4
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bls _0813C442
- movs r1, 0
- ldr r3, _0813C514
- ldr r0, _0813C508
- adds r2, r0, 0
-_0813C45A:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x7F
- bls _0813C45A
- movs r0, 0xF0
- lsls r0, 1
- adds r2, r5, r0
- movs r4, 0
- ldr r1, _0813C518
- strh r1, [r2]
- adds r0, r6, r0
- strh r1, [r0]
- movs r0, 0x1
- bl sub_813D084
- movs r0, 0xF2
- lsls r0, 1
- adds r1, r5, r0
- strh r4, [r1]
- adds r0, r6, r0
- strh r4, [r0]
- ldr r0, _0813C51C
- ldr r1, _0813C520
- bl LZ77UnCompVram
- ldr r0, _0813C524
- ldr r1, _0813C528
- bl LZ77UnCompVram
- ldr r0, _0813C52C
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _0813C530
- movs r0, 0x8
- strb r0, [r1]
- ldr r0, _0813C534
- bl LoadCompressedObjectPic
- ldr r0, _0813C538
- bl LoadCompressedObjectPic
- ldr r0, _0813C53C
- bl LoadCompressedObjectPalette
- ldr r0, _0813C540
- bl LoadSpritePalettes
- ldr r1, _0813C544
- mov r2, r8
- adds r0, r7, r2
- lsls r0, 3
- adds r0, r1
- ldr r1, _0813C548
- str r1, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C4E4: .4byte 0x02000000
-_0813C4E8: .4byte 0x040000d4
-_0813C4EC: .4byte 0x80000030
-_0813C4F0: .4byte gPlttBufferUnfaded
-_0813C4F4: .4byte gPlttBufferFaded
-_0813C4F8: .4byte 0x06003000
-_0813C4FC: .4byte 0x0000f001
-_0813C500: .4byte 0x0000027f
-_0813C504: .4byte 0x06003800
-_0813C508: .4byte 0x0000f002
-_0813C50C: .4byte 0x06003900
-_0813C510: .4byte 0x0000017f
-_0813C514: .4byte 0x06003c00
-_0813C518: .4byte 0x00007fff
-_0813C51C: .4byte gUnknown_0840A778
-_0813C520: .4byte 0x06004000
-_0813C524: .4byte gUnknown_0840A7E4
-_0813C528: .4byte 0x06007000
-_0813C52C: .4byte gUnknown_0840A758
-_0813C530: .4byte gReservedSpritePaletteCount
-_0813C534: .4byte gUnknown_0840B20C
-_0813C538: .4byte gUnknown_0840B21C
-_0813C53C: .4byte gUnknown_0840B22C
-_0813C540: .4byte gUnknown_0840B23C
-_0813C544: .4byte gTasks
-_0813C548: .4byte sub_813C54C
- thumb_func_end sub_813C3B0
-
- thumb_func_start sub_813C54C
-sub_813C54C: @ 813C54C
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0813C5BC
- movs r0, 0xF0
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0xA0
- strh r0, [r1]
- adds r1, 0x4
- movs r0, 0x1C
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1D
- strh r0, [r1]
- subs r1, 0x3C
- ldr r2, _0813C5C0
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x6
- adds r2, 0xFD
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x8
- movs r2, 0xE5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0813C5C4
- movs r1, 0
- bl CreateTask
- ldr r5, _0813C5C8
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r5
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0
- strh r0, [r1, 0x26]
- movs r0, 0x26
- ldrsh r2, [r1, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r5
- strh r3, [r0, 0x8]
- strh r3, [r1, 0x8]
- ldr r0, _0813C5CC
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C5BC: .4byte REG_WIN0H
-_0813C5C0: .4byte 0x00000603
-_0813C5C4: .4byte sub_813CAF4
-_0813C5C8: .4byte gTasks
-_0813C5CC: .4byte sub_813C5D0
- thumb_func_end sub_813C54C
-
- thumb_func_start sub_813C5D0
-sub_813C5D0: @ 813C5D0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0813C600
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r3, r1, r2
- ldrh r1, [r3, 0x8]
- movs r2, 0x8
- ldrsh r0, [r3, r2]
- cmp r0, 0x20
- beq _0813C608
- adds r0, r1, 0x4
- strh r0, [r3, 0x8]
- ldr r2, _0813C604
- movs r4, 0x8
- ldrsh r0, [r3, r4]
- lsls r0, 8
- subs r1, 0x9C
- subs r0, r1
- strh r0, [r2]
- b _0813C616
- .align 2, 0
-_0813C600: .4byte gTasks
-_0813C604: .4byte REG_WIN0V
-_0813C608:
- ldr r0, _0813C61C
- movs r2, 0x82
- lsls r2, 6
- adds r1, r2, 0
- strh r1, [r0]
- ldr r0, _0813C620
- str r0, [r3]
-_0813C616:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813C61C: .4byte REG_WIN0V
-_0813C620: .4byte sub_813C624
- thumb_func_end sub_813C5D0
-
- thumb_func_start sub_813C624
-sub_813C624: @ 813C624
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0813C638
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0813C63C
- str r0, [r1]
- bx lr
- .align 2, 0
-_0813C638: .4byte gTasks
-_0813C63C: .4byte sub_813C640
- thumb_func_end sub_813C624
-
- thumb_func_start sub_813C640
-sub_813C640: @ 813C640
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0813C65C
- movs r1, 0
- strh r1, [r2]
- ldr r2, _0813C660
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _0813C664
- str r0, [r1]
- bx lr
- .align 2, 0
-_0813C65C: .4byte gUnknown_0203931A
-_0813C660: .4byte gTasks
-_0813C664: .4byte sub_813C668
- thumb_func_end sub_813C640
-
- thumb_func_start sub_813C668
-sub_813C668: @ 813C668
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _0813CA24
- mov r8, r0
- ldr r0, [r0]
- cmp r0, 0x50
- bne _0813C6AC
- ldr r0, _0813CA28
- movs r4, 0x1
- str r4, [sp]
- movs r1, 0xF0
- movs r2, 0xA0
- movs r3, 0x5
- bl sub_813CE88
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r3, _0813CA2C
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r1, r0, r1
- ldr r2, _0813CA30
- str r2, [r1]
- adds r0, r3
- movs r1, 0
- strh r4, [r0, 0x30]
- strh r1, [r0, 0x32]
-_0813C6AC:
- mov r1, r8
- ldr r0, [r1]
- cmp r0, 0x98
- bne _0813C6E2
- ldr r0, _0813CA34
- movs r4, 0x1
- str r4, [sp]
- movs r1, 0
- movs r2, 0xA0
- movs r3, 0x4
- bl sub_813CE88
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r3, _0813CA2C
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, r3, 0
- adds r1, 0x1C
- adds r1, r0, r1
- ldr r2, _0813CA30
- str r2, [r1]
- adds r0, r3
- movs r1, 0x2
- strh r1, [r0, 0x30]
- strh r4, [r0, 0x32]
-_0813C6E2:
- mov r3, r8
- ldr r0, [r3]
- cmp r0, 0xDB
- bne _0813C720
- movs r0, 0
- bl sub_813D084
- ldr r0, _0813CA38
- ldrh r0, [r0]
- movs r1, 0x88
- lsls r1, 1
- movs r2, 0x60
- movs r3, 0x6
- bl sub_813CFA8
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0813CA2C
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0813CA3C
- str r1, [r0]
- ldr r1, _0813CA40
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0xA]
-_0813C720:
- mov r0, r8
- ldr r1, [r0]
- movs r0, 0x98
- lsls r0, 1
- cmp r1, r0
- bne _0813C758
- ldr r3, _0813CA40
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r3
- movs r0, 0x26
- ldrsh r2, [r1, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r3
- movs r2, 0x4
- strh r2, [r0, 0x8]
- ldr r2, _0813CA2C
- movs r3, 0xA
- ldrsh r1, [r1, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- strh r1, [r0, 0x2E]
-_0813C758:
- mov r0, r8
- ldr r1, [r0]
- movs r0, 0xC0
- lsls r0, 1
- cmp r1, r0
- bne _0813C790
- ldr r3, _0813CA40
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r3
- movs r0, 0x26
- ldrsh r2, [r1, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r3
- movs r2, 0
- strh r2, [r0, 0x8]
- ldr r2, _0813CA2C
- movs r3, 0xA
- ldrsh r1, [r1, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x4
- strh r1, [r0, 0x2E]
-_0813C790:
- mov r0, r8
- ldr r1, [r0]
- movs r0, 0xC8
- lsls r0, 1
- cmp r1, r0
- bne _0813C7AE
- movs r0, 0xFF
- lsls r0, 16
- ldr r1, _0813CA44
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_0813C7AE:
- mov r3, r8
- ldr r1, [r3]
- movs r0, 0xD8
- lsls r0, 1
- cmp r1, r0
- bne _0813C7D6
- ldr r2, _0813CA2C
- ldr r1, _0813CA40
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- movs r3, 0xA
- ldrsh r1, [r0, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x5
- strh r1, [r0, 0x2E]
-_0813C7D6:
- mov r0, r8
- ldr r1, [r0]
- movs r0, 0xE7
- lsls r0, 1
- cmp r1, r0
- bne _0813C80E
- ldr r3, _0813CA2C
- ldr r4, _0813CA40
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r4
- movs r0, 0xA
- ldrsh r2, [r1, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- movs r2, 0x6
- strh r2, [r0, 0x2E]
- movs r3, 0x26
- ldrsh r1, [r1, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x8]
-_0813C80E:
- mov r0, r8
- ldr r1, [r0]
- ldr r0, _0813CA48
- cmp r1, r0
- bne _0813C854
- movs r0, 0x1
- bl sub_813D084
- ldr r0, _0813CA28
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0xD0
- movs r2, 0x8
- movs r3, 0x5
- bl sub_813CE88
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0813CA2C
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0813CA4C
- str r1, [r0]
- ldr r1, _0813CA40
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0xC]
- adds r0, r2, 0
- bl sub_813E7C0
-_0813C854:
- mov r3, r8
- ldr r1, [r3]
- ldr r0, _0813CA50
- cmp r1, r0
- bne _0813C894
- subs r0, 0xB2
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0xF8
- movs r2, 0x10
- movs r3, 0x4
- bl sub_813CE88
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0813CA2C
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0813CA4C
- str r1, [r0]
- ldr r1, _0813CA40
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0xE]
- adds r0, r2, 0
- bl sub_813E930
-_0813C894:
- mov r0, r8
- ldr r1, [r0]
- ldr r0, _0813CA54
- cmp r1, r0
- bne _0813C8D8
- ldr r4, _0813CA2C
- ldr r5, _0813CA40
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r5
- movs r3, 0xC
- ldrsh r2, [r1, r3]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- movs r3, 0x2
- strh r3, [r0, 0x2E]
- movs r0, 0xE
- ldrsh r2, [r1, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- strh r3, [r0, 0x2E]
- movs r3, 0x26
- ldrsh r1, [r1, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r5
- movs r1, 0x3
- strh r1, [r0, 0x8]
-_0813C8D8:
- mov r0, r8
- ldr r1, [r0]
- movs r0, 0x9C
- lsls r0, 2
- cmp r1, r0
- bne _0813C920
- movs r0, 0
- bl sub_813D084
- ldr r0, _0813CA58
- movs r1, 0
- str r1, [sp]
- movs r1, 0x20
- movs r2, 0x98
- movs r3, 0
- bl sub_813CE88
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0813CA2C
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0813CA5C
- str r1, [r0]
- ldr r1, _0813CA40
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x10]
- adds r0, r2, 0
- bl sub_813EDBC
-_0813C920:
- mov r3, r8
- ldr r1, [r3]
- movs r0, 0xAF
- lsls r0, 2
- cmp r1, r0
- bne _0813C966
- movs r0, 0x8C
- lsls r0, 1
- movs r1, 0x8
- negs r1, r1
- movs r2, 0
- str r2, [sp]
- movs r2, 0x90
- movs r3, 0x1
- bl sub_813CE88
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0813CA2C
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0813CA5C
- str r1, [r0]
- ldr r1, _0813CA40
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x12]
- adds r0, r2, 0
- bl sub_813EB4C
-_0813C966:
- mov r0, r8
- ldr r1, [r0]
- movs r0, 0xC2
- lsls r0, 2
- cmp r1, r0
- bne _0813C9B2
- ldr r1, _0813CA60
- movs r0, 0x1
- strh r0, [r1]
- ldr r4, _0813CA2C
- ldr r6, _0813CA40
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r6
- movs r3, 0x10
- ldrsh r2, [r1, r3]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- movs r5, 0
- movs r3, 0x2
- strh r3, [r0, 0x2E]
- movs r0, 0x12
- ldrsh r2, [r1, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- strh r3, [r0, 0x2E]
- movs r3, 0x26
- ldrsh r1, [r1, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- strh r5, [r0, 0x8]
-_0813C9B2:
- mov r0, r8
- ldr r1, [r0]
- ldr r0, _0813CA64
- cmp r1, r0
- bne _0813CA76
- movs r0, 0x2
- bl sub_813D084
- ldr r4, _0813CA2C
- ldr r0, _0813CA40
- lsls r2, r7, 2
- adds r2, r7
- lsls r2, 3
- adds r2, r0
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r3, 0x3
- strh r3, [r0, 0x2E]
- movs r0, 0xE
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r3, [r0, 0x2E]
- movs r0, 0x10
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r3, [r0, 0x2E]
- movs r0, 0x12
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r3, [r0, 0x2E]
- ldr r0, _0813CA68
- movs r1, 0x78
- movs r2, 0x50
- movs r3, 0xF
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- b _0813CA6C
- .align 2, 0
-_0813CA24: .4byte gUnknown_03005ED0
-_0813CA28: .4byte 0x0000014b
-_0813CA2C: .4byte gSprites
-_0813CA30: .4byte sub_813DB9C
-_0813CA34: .4byte 0x00000169
-_0813CA38: .4byte gUnknown_02039318
-_0813CA3C: .4byte sub_813DE70
-_0813CA40: .4byte gTasks
-_0813CA44: .4byte 0x00007eff
-_0813CA48: .4byte 0x000001cf
-_0813CA4C: .4byte sub_813E10C
-_0813CA50: .4byte 0x0000021b
-_0813CA54: .4byte 0x0000026f
-_0813CA58: .4byte 0x0000011b
-_0813CA5C: .4byte sub_813E210
-_0813CA60: .4byte gUnknown_0203931A
-_0813CA64: .4byte 0x0000030d
-_0813CA68: .4byte gSpriteTemplate_840B1F4
-_0813CA6C:
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_0813CA76:
- mov r3, r8
- ldr r1, [r3]
- movs r0, 0xC8
- lsls r0, 2
- cmp r1, r0
- bne _0813CA88
- movs r0, 0x67
- bl PlaySE
-_0813CA88:
- mov r0, r8
- ldr r1, [r0]
- ldr r0, _0813CAC8
- cmp r1, r0
- bne _0813CAA4
- movs r0, 0x1
- negs r0, r0
- ldr r1, _0813CACC
- str r1, [sp]
- movs r1, 0x4
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0813CAA4:
- mov r3, r8
- ldr r1, [r3]
- ldr r0, _0813CAD0
- cmp r1, r0
- bne _0813CABC
- ldr r0, _0813CAD4
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, _0813CAD8
- str r0, [r1]
-_0813CABC:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813CAC8: .4byte 0x00000352
-_0813CACC: .4byte 0x0000ffff
-_0813CAD0: .4byte 0x000003b2
-_0813CAD4: .4byte gTasks
-_0813CAD8: .4byte sub_813CADC
- thumb_func_end sub_813C668
-
- thumb_func_start sub_813CADC
-sub_813CADC: @ 813CADC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- ldr r0, _0813CAF0
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0813CAF0: .4byte CB2_813B7EC
- thumb_func_end sub_813CADC
-
- thumb_func_start sub_813CAF4
-sub_813CAF4: @ 813CAF4
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0813CB2C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- movs r6, 0
- strh r0, [r4, 0x26]
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bne _0813CB18
- b _0813CC28
-_0813CB18:
- cmp r0, 0x4
- bgt _0813CB30
- cmp r0, 0x2
- beq _0813CB60
- cmp r0, 0x2
- bgt _0813CBC4
- cmp r0, 0
- beq _0813CB46
- b _0813CC8E
- .align 2, 0
-_0813CB2C: .4byte gTasks
-_0813CB30:
- cmp r0, 0x1E
- beq _0813CBEE
- cmp r0, 0x1E
- bgt _0813CB3E
- cmp r0, 0x14
- beq _0813CB8A
- b _0813CC8E
-_0813CB3E:
- cmp r0, 0x28
- bne _0813CB44
- b _0813CC56
-_0813CB44:
- b _0813CC8E
-_0813CB46:
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xE5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0813CB5C
- strh r6, [r0]
- movs r0, 0xFF
- strh r0, [r4, 0x8]
- b _0813CC8E
- .align 2, 0
-_0813CB5C: .4byte REG_BG2CNT
-_0813CB60:
- ldr r0, _0813CBB0
- str r0, [sp]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _0813CBB4
- ldr r2, _0813CBB8
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xC
- movs r2, 0xF5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- strh r6, [r4, 0xA]
- strh r6, [r4, 0xC]
- movs r0, 0x14
- strh r0, [r4, 0x8]
-_0813CB8A:
- ldr r2, _0813CBBC
- ldr r0, _0813CBC0
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xA]
- strh r0, [r2]
- subs r2, 0x2
- ldrh r0, [r1, 0xC]
- strh r0, [r2]
- ldrh r0, [r1, 0xA]
- adds r0, 0x6
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xC]
- subs r0, 0x8
- strh r0, [r1, 0xC]
- b _0813CC8E
- .align 2, 0
-_0813CBB0: .4byte 0x0000ffff
-_0813CBB4: .4byte REG_BG2CNT
-_0813CBB8: .4byte 0x00000e07
-_0813CBBC: .4byte REG_BG2VOFS
-_0813CBC0: .4byte gTasks
-_0813CBC4:
- ldr r0, _0813CC14
- str r0, [sp]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _0813CC18
- ldr r2, _0813CC1C
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xC
- movs r2, 0xF5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- strh r6, [r4, 0xA]
- strh r6, [r4, 0xC]
- movs r0, 0x1E
- strh r0, [r4, 0x8]
-_0813CBEE:
- ldr r2, _0813CC20
- ldr r0, _0813CC24
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xA]
- strh r0, [r2]
- subs r2, 0x2
- ldrh r0, [r1, 0xC]
- strh r0, [r2]
- ldrh r0, [r1, 0xA]
- subs r0, 0x6
- strh r0, [r1, 0xA]
- ldrh r0, [r1, 0xC]
- adds r0, 0x8
- strh r0, [r1, 0xC]
- b _0813CC8E
- .align 2, 0
-_0813CC14: .4byte 0x0000ffff
-_0813CC18: .4byte REG_BG2CNT
-_0813CC1C: .4byte 0x00000e07
-_0813CC20: .4byte REG_BG2VOFS
-_0813CC24: .4byte gTasks
-_0813CC28:
- ldr r0, _0813CC98
- str r0, [sp]
- movs r0, 0x1
- movs r1, 0x5
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0813CC9C
- ldr r2, _0813CCA0
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xC
- movs r2, 0xF5
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- strh r6, [r4, 0xA]
- strh r6, [r4, 0xC]
- movs r0, 0x8
- strh r0, [r4, 0xE]
- movs r0, 0x28
- strh r0, [r4, 0x8]
-_0813CC56:
- ldr r2, _0813CCA4
- ldr r1, _0813CCA8
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r1
- ldrh r0, [r3, 0xA]
- strh r0, [r2]
- ldr r1, _0813CCAC
- ldrh r0, [r3, 0xC]
- strh r0, [r1]
- ldrh r0, [r3, 0xA]
- ldrh r2, [r3, 0xE]
- subs r0, r2
- strh r0, [r3, 0xA]
- ldrh r1, [r3, 0xC]
- adds r0, r2, r1
- strh r0, [r3, 0xC]
- ldrh r1, [r3, 0x26]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0813CC8E
- lsls r0, r2, 16
- cmp r0, 0
- beq _0813CC8E
- subs r0, r2, 0x1
- strh r0, [r3, 0xE]
-_0813CC8E:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813CC98: .4byte 0x000037f7
-_0813CC9C: .4byte REG_BG2CNT
-_0813CCA0: .4byte 0x00000e07
-_0813CCA4: .4byte REG_BG2VOFS
-_0813CCA8: .4byte gTasks
-_0813CCAC: .4byte REG_BG2HOFS
- thumb_func_end sub_813CAF4
-
- thumb_func_start intro_reset_and_hide_bgs
-intro_reset_and_hide_bgs: @ 813CCB0
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x1C
- 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]
- adds r0, 0x3E
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bx lr
- thumb_func_end intro_reset_and_hide_bgs
-
- thumb_func_start sub_813CCE8
-sub_813CCE8: @ 813CCE8
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _0813CD0C
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r2, r1, 0
- cmp r0, 0x4
- bhi _0813CD28
- lsls r0, 2
- ldr r1, _0813CD10
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813CD0C: .4byte gTasks
-_0813CD10: .4byte _0813CD14
- .align 2, 0
-_0813CD14:
- .4byte _0813CD28
- .4byte _0813CD5C
- .4byte _0813CD8C
- .4byte _0813CDA8
- .4byte _0813CDFC
-_0813CD28:
- ldr r1, _0813CD54
- ldr r4, _0813CD58
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r4, 0x80
- lsls r4, 5
- adds r0, r4, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0
- strh r0, [r1]
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r2
- movs r1, 0x40
- strh r1, [r0, 0xA]
- movs r1, 0x1
- strh r1, [r0, 0x8]
- b _0813CE26
- .align 2, 0
-_0813CD54: .4byte REG_BLDCNT
-_0813CD58: .4byte 0x00003f50
-_0813CD5C:
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r2, r0, r2
- ldrh r1, [r2, 0xA]
- movs r3, 0xA
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _0813CD78
- subs r0, r1, 0x1
- strh r0, [r2, 0xA]
- movs r4, 0xA
- ldrsh r0, [r2, r4]
- b _0813CDC2
-_0813CD78:
- ldr r1, _0813CD84
- ldr r0, _0813CD88
- ldrh r0, [r0]
- strh r0, [r1]
- movs r0, 0x80
- b _0813CDEA
- .align 2, 0
-_0813CD84: .4byte REG_BLDALPHA
-_0813CD88: .4byte gUnknown_08393E64
-_0813CD8C:
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0xA]
- movs r3, 0xA
- ldrsh r2, [r1, r3]
- cmp r2, 0
- bne _0813CE0E
- strh r2, [r1, 0xA]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0813CE26
-_0813CDA8:
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r2, r0, r2
- ldrh r1, [r2, 0xA]
- movs r4, 0xA
- ldrsh r0, [r2, r4]
- cmp r0, 0x3D
- bgt _0813CDE0
- adds r0, r1, 0x1
- strh r0, [r2, 0xA]
- movs r1, 0xA
- ldrsh r0, [r2, r1]
-_0813CDC2:
- lsrs r1, r0, 31
- adds r0, r1
- movs r2, 0xFF
- lsls r2, 1
- ldr r3, _0813CDD8
- ldr r1, _0813CDDC
- ands r0, r2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r3]
- b _0813CE26
- .align 2, 0
-_0813CDD8: .4byte REG_BLDALPHA
-_0813CDDC: .4byte gUnknown_08393E64
-_0813CDE0:
- ldr r1, _0813CDF4
- ldr r0, _0813CDF8
- ldrh r0, [r0, 0x3E]
- strh r0, [r1]
- movs r0, 0x10
-_0813CDEA:
- strh r0, [r2, 0xA]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _0813CE26
- .align 2, 0
-_0813CDF4: .4byte REG_BLDALPHA
-_0813CDF8: .4byte gUnknown_08393E64
-_0813CDFC:
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r1, r0, r2
- ldrh r0, [r1, 0xA]
- movs r4, 0xA
- ldrsh r2, [r1, r4]
- cmp r2, 0
- beq _0813CE14
-_0813CE0E:
- subs r0, 0x1
- strh r0, [r1, 0xA]
- b _0813CE26
-_0813CE14:
- ldr r0, _0813CE2C
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, r3, 0
- bl DestroyTask
-_0813CE26:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813CE2C: .4byte REG_BLDCNT
- thumb_func_end sub_813CCE8
-
- thumb_func_start sub_813CE30
-sub_813CE30: @ 813CE30
- push {r4,lr}
- sub sp, 0x24
- lsls r2, 16
- lsrs r2, 16
- movs r4, 0x80
- lsls r4, 8
- str r4, [sp]
- str r4, [sp, 0x4]
- mov r4, sp
- strh r0, [r4, 0x8]
- mov r0, sp
- strh r1, [r0, 0xA]
- strh r2, [r0, 0xC]
- strh r2, [r0, 0xE]
- strh r3, [r0, 0x10]
- add r4, sp, 0x14
- adds r1, r4, 0
- movs r2, 0x1
- bl BgAffineSet
- ldr r1, _0813CE84
- ldrh r0, [r4]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x2]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x4]
- strh r0, [r1]
- adds r1, 0x2
- ldrh r0, [r4, 0x6]
- strh r0, [r1]
- adds r1, 0x2
- ldr r0, [r4, 0x8]
- str r0, [r1]
- adds r1, 0x4
- ldr r0, [r4, 0xC]
- str r0, [r1]
- add sp, 0x24
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813CE84: .4byte REG_BG2PA
- thumb_func_end sub_813CE30
-
- thumb_func_start sub_813CE88
-sub_813CE88: @ 813CE88
- 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, 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
- lsls r4, 24
- lsrs r6, r4, 24
- cmp r6, 0
- beq _0813CEF0
- lsls r0, r7, 3
- ldr r1, _0813CEE4
- adds r0, r1
- ldr r1, _0813CEE8
- lsls r2, r7, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r5, _0813CEEC
- mov r6, r8
- lsls r4, r6, 2
- adds r4, r5
- ldr r4, [r4]
- str r4, [sp]
- str r7, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r4, 0x1
- str r4, [sp, 0xC]
- bl sub_800D378
- b _0813CF1C
- .align 2, 0
-_0813CEE4: .4byte gMonFrontPicTable
-_0813CEE8: .4byte gMonFrontPicCoords
-_0813CEEC: .4byte gUnknown_0840B5A0
-_0813CEF0:
- lsls r0, r7, 3
- ldr r1, _0813CF90
- adds r0, r1
- ldr r1, _0813CF94
- lsls r2, r7, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _0813CF98
- mov r12, r4
- mov r5, r8
- lsls r4, r5, 2
- add r4, r12
- ldr r4, [r4]
- str r4, [sp]
- str r7, [sp, 0x4]
- str r6, [sp, 0x8]
- str r6, [sp, 0xC]
- bl sub_800D378
-_0813CF1C:
- ldr r2, _0813CF9C
- adds r0, r7, 0
- movs r1, 0
- bl species_and_otid_get_pal
- mov r6, r8
- lsls r4, r6, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- lsls r1, r6, 24
- lsrs r1, 24
- mov r0, r8
- bl sub_8143648
- ldr r0, _0813CFA0
- mov r3, r9
- lsls r1, r3, 16
- asrs r1, 16
- mov r5, r10
- lsls r2, r5, 16
- asrs r2, 16
- mov r3, r8
- adds r3, 0x1
- lsls r3, 26
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0813CFA4
- 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
- movs r3, 0xD
- negs r3, r3
- ands r1, r3
- movs r3, 0x4
- orrs r1, r3
- 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
-_0813CF90: .4byte gMonBackPicTable
-_0813CF94: .4byte gMonBackPicCoords
-_0813CF98: .4byte gUnknown_0840B5A0
-_0813CF9C: .4byte 0x0000ffff
-_0813CFA0: .4byte gUnknown_02024E8C
-_0813CFA4: .4byte gSprites
- thumb_func_end sub_813CE88
-
- thumb_func_start sub_813CFA8
-sub_813CFA8: @ 813CFA8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- mov r9, r1
- mov r10, r2
- adds r6, r3, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r2, 16
- lsrs r2, 16
- mov r10, r2
- lsls r6, 16
- lsrs r6, 16
- lsls r7, r0, 3
- ldr r1, _0813D068
- mov r8, r1
- add r8, r7
- ldr r1, _0813D06C
- lsls r2, r0, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r5, _0813D070
- lsls r4, r6, 2
- adds r4, r5
- ldr r4, [r4]
- str r4, [sp]
- str r0, [sp, 0x4]
- mov r0, r8
- bl DecompressPicFromTable_2
- ldr r0, _0813D074
- adds r0, r7, r0
- ldr r0, [r0]
- lsls r4, r6, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- lsls r1, r6, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8143680
- ldr r0, _0813D078
- ldr r1, _0813D07C
- str r1, [r0, 0x8]
- mov r1, r9
- lsls r1, 16
- asrs r1, 16
- mov r9, r1
- mov r2, r10
- lsls r2, 16
- asrs r2, 16
- mov r10, r2
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0813D080
- 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
- movs r3, 0xD
- negs r3, r3
- ands r1, r3
- movs r3, 0x4
- orrs r1, r3
- strb r1, [r2, 0x5]
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0813D068: .4byte gTrainerBackPicTable
-_0813D06C: .4byte gTrainerBackPicCoords
-_0813D070: .4byte gUnknown_0840B5A0
-_0813D074: .4byte gTrainerBackPicPaletteTable
-_0813D078: .4byte gUnknown_02024E8C
-_0813D07C: .4byte gUnknown_0840B064
-_0813D080: .4byte gSprites
- thumb_func_end sub_813CFA8
-
- thumb_func_start sub_813D084
-sub_813D084: @ 813D084
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0813D0A0
- cmp r0, 0x1
- ble _0813D096
- cmp r0, 0x2
- beq _0813D0A8
-_0813D096:
- ldr r2, _0813D09C
- b _0813D0AA
- .align 2, 0
-_0813D09C: .4byte 0x00003ff6
-_0813D0A0:
- ldr r2, _0813D0A4
- b _0813D0AA
- .align 2, 0
-_0813D0A4: .4byte 0x000031df
-_0813D0A8:
- ldr r2, _0813D0C0
-_0813D0AA:
- ldr r0, _0813D0C4
- movs r1, 0xF1
- lsls r1, 1
- adds r0, r1
- strh r2, [r0]
- ldr r0, _0813D0C8
- adds r0, r1
- strh r2, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0813D0C0: .4byte 0x0000518c
-_0813D0C4: .4byte gPlttBufferUnfaded
-_0813D0C8: .4byte gPlttBufferFaded
- thumb_func_end sub_813D084
-
- thumb_func_start sub_813D0CC
-sub_813D0CC: @ 813D0CC
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0xBF
- ble _0813D148
- ldrh r1, [r4, 0x34]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0813D0EA
- subs r0, r1, 0x1
- strh r0, [r4, 0x34]
- b _0813D14E
-_0813D0EA:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x32]
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- movs r0, 0x32
- ldrsh r1, [r4, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 5
- subs r0, r1
- movs r1, 0x64
- bl __divsi3
- strh r0, [r4, 0x32]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- adds r0, r1, 0
- subs r0, 0xC0
- cmp r0, 0
- bge _0813D12C
- adds r0, 0x7F
-_0813D12C:
- asrs r0, 7
- adds r0, 0x9
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xF
- bls _0813D13A
- movs r0, 0xF
-_0813D13A:
- lsls r2, r0, 4
- ldrb r1, [r4, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- b _0813D14E
-_0813D148:
- adds r0, r4, 0
- bl DestroySprite
-_0813D14E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813D0CC
-
- thumb_func_start sub_813D158
-sub_813D158: @ 813D158
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, _0813D1CC
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r3, 0x3C
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0813D1D4
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r0, r3
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAnim
- movs r0, 0x80
- lsls r0, 3
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x30]
- movs r0, 0x3
- ands r0, r1
- lsls r0, 3
- strh r0, [r4, 0x34]
- ldr r0, _0813D1D0
- str r0, [r4, 0x1C]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x3
- movs r3, 0x2
- bl CalcCenterToCornerVec
- b _0813D200
- .align 2, 0
-_0813D1CC: .4byte gSprites
-_0813D1D0: .4byte sub_813D0CC
-_0813D1D4:
- ldrh r0, [r1, 0x24]
- strh r0, [r4, 0x24]
- movs r0, 0x3C
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x26]
- strh r0, [r4, 0x26]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x20]
- strh r0, [r4, 0x20]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x22]
-_0813D200:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813D158
-
- thumb_func_start sub_813D208
-sub_813D208: @ 813D208
- push {lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0813D218
- ldr r0, _0813D21C
- str r0, [r1, 0x1C]
-_0813D218:
- pop {r0}
- bx r0
- .align 2, 0
-_0813D21C: .4byte sub_813D220
- thumb_func_end sub_813D208
-
- thumb_func_start sub_813D220
-sub_813D220: @ 813D220
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r7, r0, 0
- ldrh r4, [r7, 0x20]
- movs r1, 0x20
- ldrsh r0, [r7, r1]
- cmp r0, 0x74
- bgt _0813D260
- ldrh r0, [r7, 0x26]
- ldrh r1, [r7, 0x22]
- adds r0, r1
- movs r1, 0
- strh r0, [r7, 0x22]
- strh r1, [r7, 0x26]
- adds r0, r4, 0x4
- strh r0, [r7, 0x20]
- ldr r0, _0813D258
- strh r0, [r7, 0x24]
- movs r0, 0x80
- strh r0, [r7, 0x36]
- ldr r0, _0813D25C
- str r0, [r7, 0x1C]
- b _0813D352
- .align 2, 0
-_0813D258: .4byte 0x0000fffc
-_0813D25C: .4byte sub_813D368
-_0813D260:
- ldrh r1, [r7, 0x36]
- ldr r5, _0813D364
- lsls r0, r1, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r2, [r0]
- adds r0, r1, 0
- adds r0, 0x40
- lsls r0, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r3, [r0]
- adds r1, 0x2
- strh r1, [r7, 0x36]
- lsls r2, 16
- asrs r0, r2, 16
- cmp r0, 0
- bge _0813D286
- adds r0, 0x1F
-_0813D286:
- asrs r0, 5
- strh r0, [r7, 0x26]
- subs r0, r4, 0x1
- strh r0, [r7, 0x20]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813D29C
- ldrh r0, [r7, 0x22]
- adds r0, 0x1
- strh r0, [r7, 0x22]
-_0813D29C:
- lsls r0, r3, 16
- asrs r0, 16
- negs r0, r0
- cmp r0, 0
- bge _0813D2A8
- adds r0, 0xF
-_0813D2A8:
- lsls r1, r0, 12
- lsrs r1, 16
- ldrh r4, [r7, 0x32]
- ldrh r3, [r7, 0x34]
- adds r0, r1, 0
- subs r0, 0x10
- lsls r0, 24
- lsrs r0, 23
- adds r0, r5
- ldrh r2, [r0]
- adds r1, 0x30
- lsls r1, 24
- lsrs r1, 23
- adds r1, r5
- movs r0, 0
- ldrsh r1, [r1, r0]
- adds r0, r1, 0
- muls r0, r4
- cmp r0, 0
- bge _0813D2D2
- adds r0, 0xFF
-_0813D2D2:
- lsls r0, 8
- lsrs r0, 16
- mov r8, r0
- lsls r0, r2, 16
- asrs r2, r0, 16
- negs r0, r2
- muls r0, r3
- cmp r0, 0
- bge _0813D2E6
- adds r0, 0xFF
-_0813D2E6:
- lsls r0, 8
- lsrs r0, 16
- mov r10, r0
- adds r0, r2, 0
- muls r0, r4
- cmp r0, 0
- bge _0813D2F6
- adds r0, 0xFF
-_0813D2F6:
- lsls r0, 8
- lsrs r5, r0, 16
- adds r0, r1, 0
- muls r0, r3
- cmp r0, 0
- bge _0813D304
- adds r0, 0xFF
-_0813D304:
- lsls r6, r0, 8
- lsrs r6, 16
- ldrh r0, [r7, 0x30]
- lsls r0, 24
- lsrs r0, 24
- str r3, [sp]
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- ldrh r0, [r7, 0x30]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r5
- mov r1, r10
- lsls r5, r1, 16
- lsrs r3, r5, 16
- lsls r4, r6, 16
- str r6, [sp]
- mov r1, r8
- mov r2, r9
- bl SetOamMatrix
- ldrh r0, [r7, 0x30]
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- lsls r5, 1
- lsrs r5, 16
- lsls r4, 1
- lsrs r4, 16
- str r4, [sp]
- mov r1, r8
- mov r2, r9
- adds r3, r5, 0
- bl SetOamMatrix
-_0813D352:
- 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
-_0813D364: .4byte gSineTable
- thumb_func_end sub_813D220
-
- thumb_func_start sub_813D368
-sub_813D368: @ 813D368
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x3A]
- adds r1, 0x40
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x3A]
- adds r1, 0x40
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- ldrh r0, [r4, 0x30]
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x3A]
- adds r1, 0x40
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- ldrh r1, [r4, 0x36]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- cmp r0, 0x40
- beq _0813D400
- adds r0, r1, 0
- subs r0, 0x8
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x36]
- adds r1, r0, 0
- ldr r2, _0813D3FC
- adds r0, 0x40
- lsls r0, 24
- lsrs r0, 23
- adds r0, r2
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r0, 0
- bge _0813D3E2
- adds r0, 0x3F
-_0813D3E2:
- asrs r0, 6
- strh r0, [r4, 0x24]
- lsls r0, r1, 24
- lsrs r0, 23
- adds r0, r2
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bge _0813D3F6
- adds r0, 0x3F
-_0813D3F6:
- asrs r0, 6
- strh r0, [r4, 0x26]
- b _0813D408
- .align 2, 0
-_0813D3FC: .4byte gSineTable
-_0813D400:
- movs r0, 0
- strh r0, [r4, 0x36]
- ldr r0, _0813D410
- str r0, [r4, 0x1C]
-_0813D408:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813D410: .4byte sub_813D414
- thumb_func_end sub_813D368
-
- thumb_func_start sub_813D414
-sub_813D414: @ 813D414
- push {r4,lr}
- adds r1, r0, 0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x2
- beq _0813D474
- ldrh r0, [r1, 0x36]
- adds r0, 0x8
- strh r0, [r1, 0x36]
- ldr r3, _0813D470
- lsls r0, 24
- lsrs r0, 23
- adds r0, r3
- movs r4, 0
- ldrsh r0, [r0, r4]
- cmp r0, 0
- bge _0813D438
- adds r0, 0xF
-_0813D438:
- asrs r0, 4
- adds r0, 0x40
- lsls r0, 16
- lsrs r2, r0, 16
- adds r0, r2, 0
- adds r0, 0x40
- lsls r0, 24
- lsrs r0, 23
- adds r0, r3
- movs r4, 0
- ldrsh r0, [r0, r4]
- cmp r0, 0
- bge _0813D454
- adds r0, 0x3F
-_0813D454:
- asrs r0, 6
- strh r0, [r1, 0x24]
- lsls r0, r2, 24
- lsrs r0, 23
- adds r0, r3
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bge _0813D468
- adds r0, 0x3F
-_0813D468:
- asrs r0, 6
- strh r0, [r1, 0x26]
- b _0813D478
- .align 2, 0
-_0813D470: .4byte gSineTable
-_0813D474:
- ldr r0, _0813D480
- str r0, [r1, 0x1C]
-_0813D478:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813D480: .4byte sub_813D484
- thumb_func_end sub_813D414
-
- thumb_func_start sub_813D484
-sub_813D484: @ 813D484
- push {r4,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x22]
- movs r0, 0x22
- ldrsh r1, [r4, r0]
- movs r3, 0x38
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _0813D49C
- adds r0, r2, 0x4
- strh r0, [r4, 0x22]
- b _0813D4F8
-_0813D49C:
- movs r0, 0x1
- strh r0, [r4, 0x3C]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r0, r3
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAnim
- movs r0, 0x80
- lsls r0, 3
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x30]
- movs r0, 0x3
- ands r0, r1
- lsls r0, 3
- strh r0, [r4, 0x34]
- ldr r0, _0813D500
- str r0, [r4, 0x1C]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x3
- movs r3, 0x2
- bl CalcCenterToCornerVec
-_0813D4F8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813D500: .4byte sub_813D0CC
- thumb_func_end sub_813D484
-
- thumb_func_start sub_813D504
-sub_813D504: @ 813D504
- push {r4,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x22]
- movs r0, 0x22
- ldrsh r1, [r4, r0]
- movs r3, 0x38
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bge _0813D51C
- adds r0, r2, 0x4
- strh r0, [r4, 0x22]
- b _0813D578
-_0813D51C:
- movs r0, 0x1
- strh r0, [r4, 0x3C]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x24]
- ldrh r1, [r4, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x26]
- ldrh r3, [r4, 0x22]
- adds r0, r3
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAnim
- movs r0, 0x80
- lsls r0, 3
- strh r0, [r4, 0x32]
- ldrh r1, [r4, 0x30]
- movs r0, 0x3
- ands r0, r1
- lsls r0, 3
- strh r0, [r4, 0x34]
- ldr r0, _0813D580
- str r0, [r4, 0x1C]
- ldrb r1, [r4, 0x1]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- movs r1, 0xC0
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x3
- movs r3, 0x2
- bl CalcCenterToCornerVec
-_0813D578:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813D580: .4byte sub_813D0CC
- thumb_func_end sub_813D504
-
- thumb_func_start sub_813D584
-sub_813D584: @ 813D584
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r6, [sp, 0x34]
- ldr r0, [sp, 0x38]
- mov r8, r0
- lsls r4, 16
- lsls r5, 16
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0x8]
- lsls r3, 16
- lsrs r3, 16
- str r3, [sp, 0xC]
- lsls r6, 16
- lsrs r6, 16
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- ldr r0, _0813D640
- lsrs r2, r4, 16
- mov r10, r2
- asrs r4, 16
- lsrs r1, r5, 16
- str r1, [sp, 0x4]
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _0813D644
- mov r9, r2
- lsls r0, r7, 4
- adds r0, r7
- lsls r5, r0, 2
- adds r4, r5, r2
- movs r0, 0
- strh r0, [r4, 0x2E]
- strh r0, [r4, 0x3C]
- mov r0, sp
- ldrh r0, [r0, 0xC]
- strh r0, [r4, 0x30]
- mov r1, sp
- ldrh r1, [r1, 0x8]
- strh r1, [r4, 0x32]
- mov r2, sp
- ldrh r2, [r2, 0x8]
- strh r2, [r4, 0x34]
- strh r6, [r4, 0x38]
- mov r0, sp
- ldrh r0, [r0, 0x8]
- strh r0, [r4, 0x3A]
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x1F
- ldr r1, [sp, 0xC]
- 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]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x2
- bl CalcCenterToCornerVec
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnim
- mov r1, r8
- cmp r1, 0
- bne _0813D64C
- mov r0, r9
- adds r0, 0x1C
- adds r0, r5, r0
- ldr r1, _0813D648
- b _0813D654
- .align 2, 0
-_0813D640: .4byte gSpriteTemplate_840AE20
-_0813D644: .4byte gSprites
-_0813D648: .4byte sub_813D208
-_0813D64C:
- mov r0, r9
- adds r0, 0x1C
- adds r0, r5, r0
- ldr r1, _0813D774
-_0813D654:
- str r1, [r0]
- str r7, [sp, 0x10]
- mov r2, r10
- lsls r2, 16
- asrs r2, 16
- mov r10, r2
- ldr r0, [sp, 0x4]
- lsls r0, 16
- asrs r0, 16
- mov r8, r0
- ldr r0, _0813D778
- mov r1, r10
- mov r2, r8
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r5, _0813D77C
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- adds r0, r4, r5
- mov r1, sp
- ldrh r1, [r1, 0x10]
- strh r1, [r0, 0x3C]
- ldr r2, [sp, 0xC]
- adds r2, 0x1
- mov r9, r2
- strh r2, [r0, 0x30]
- ldrb r1, [r0, 0x1]
- movs r2, 0x3
- orrs r1, r2
- strb r1, [r0, 0x1]
- mov r2, r9
- movs r1, 0x1F
- ands r2, r1
- lsls r2, 1
- ldrb r3, [r0, 0x3]
- movs r6, 0x3F
- negs r6, r6
- adds r1, r6, 0
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x3]
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x2
- bl CalcCenterToCornerVec
- ldr r2, _0813D780
- adds r4, r2
- ldr r0, _0813D784
- str r0, [r4]
- ldr r0, _0813D778
- mov r1, r10
- mov r2, r8
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r4, r7, 4
- adds r4, r7
- lsls r4, 2
- adds r5, r4, r5
- mov r1, sp
- ldrh r1, [r1, 0x10]
- strh r1, [r5, 0x3C]
- ldr r2, [sp, 0xC]
- adds r2, 0x2
- mov r8, r2
- strh r2, [r5, 0x30]
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldrb r0, [r5, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r5, 0x1]
- mov r0, r8
- movs r2, 0x1F
- ands r0, r2
- lsls r0, 1
- ldrb r1, [r5, 0x3]
- ands r6, r1
- orrs r6, r0
- strb r6, [r5, 0x3]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0x2
- movs r3, 0x2
- bl CalcCenterToCornerVec
- ldr r0, _0813D780
- adds r4, r0
- ldr r1, _0813D784
- str r1, [r4]
- ldr r2, [sp, 0xC]
- lsls r0, r2, 24
- lsrs r0, 24
- ldr r5, [sp, 0x8]
- adds r5, 0x20
- lsls r4, r5, 16
- lsrs r4, 16
- str r4, [sp]
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- str r4, [sp]
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r5, 17
- lsrs r5, 16
- str r5, [sp]
- mov r0, r8
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- ldr r0, [sp, 0x10]
- 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
-_0813D774: .4byte sub_813D504
-_0813D778: .4byte gSpriteTemplate_840AE20
-_0813D77C: .4byte gSprites
-_0813D780: .4byte gSprites + 0x1C
-_0813D784: .4byte sub_813D158
- thumb_func_end sub_813D584
-
- thumb_func_start sub_813D788
-sub_813D788: @ 813D788
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bhi _0813D830
- lsls r0, 2
- ldr r1, _0813D7A0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813D7A0: .4byte _0813D7A4
- .align 2, 0
-_0813D7A4:
- .4byte _0813D7B8
- .4byte _0813D7C6
- .4byte _0813D7E4
- .4byte _0813D80C
- .4byte _0813D816
-_0813D7B8:
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- ldrh r0, [r4, 0x20]
- subs r0, 0x1
- b _0813D82E
-_0813D7C6:
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- ldr r0, _0813D7E0
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0813D87A
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- b _0813D82E
- .align 2, 0
-_0813D7E0: .4byte gUnknown_03005ED0
-_0813D7E4:
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnimIfDifferent
- ldrh r2, [r4, 0x20]
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- cmp r0, 0x78
- ble _0813D802
- ldr r0, _0813D808
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- beq _0813D83C
-_0813D802:
- adds r0, r2, 0x1
- b _0813D82E
- .align 2, 0
-_0813D808: .4byte gUnknown_03005ED0
-_0813D80C:
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAnimIfDifferent
- b _0813D830
-_0813D816:
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- ldrh r2, [r4, 0x20]
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r0, 0x20
- negs r0, r0
- cmp r1, r0
- ble _0813D830
- subs r0, r2, 0x2
-_0813D82E:
- strh r0, [r4, 0x20]
-_0813D830:
- ldr r0, _0813D84C
- ldr r0, [r0]
- movs r1, 0x7
- ands r0, r1
- cmp r0, 0
- bne _0813D87A
-_0813D83C:
- movs r1, 0x26
- ldrsh r5, [r4, r1]
- cmp r5, 0
- beq _0813D850
- movs r0, 0
- strh r0, [r4, 0x26]
- b _0813D87A
- .align 2, 0
-_0813D84C: .4byte gUnknown_03005ED0
-_0813D850:
- bl Random
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0x1
- beq _0813D878
- cmp r1, 0x1
- bgt _0813D866
- cmp r1, 0
- beq _0813D86E
- b _0813D87A
-_0813D866:
- cmp r1, 0x3
- bgt _0813D87A
- strh r5, [r4, 0x26]
- b _0813D87A
-_0813D86E:
- ldr r0, _0813D874
- strh r0, [r4, 0x26]
- b _0813D87A
- .align 2, 0
-_0813D874: .4byte 0x0000ffff
-_0813D878:
- strh r1, [r4, 0x26]
-_0813D87A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_813D788
-
- thumb_func_start sub_813D880
-sub_813D880: @ 813D880
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0813D89A
- cmp r0, 0x1
- ble _0813D8E2
- cmp r0, 0x2
- beq _0813D8BA
- cmp r0, 0x3
- beq _0813D8D4
- b _0813D8E2
-_0813D89A:
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- movs r2, 0x20
- ldrsh r1, [r4, r2]
- adds r0, r1
- ldr r1, _0813D8B0
- cmp r0, r1
- bgt _0813D8B4
- ldrh r0, [r4, 0x24]
- adds r0, 0x8
- b _0813D8E0
- .align 2, 0
-_0813D8B0: .4byte 0x0000012f
-_0813D8B4:
- movs r0, 0x2
- strh r0, [r4, 0x2E]
- b _0813D8E2
-_0813D8BA:
- movs r1, 0x24
- ldrsh r0, [r4, r1]
- movs r2, 0x20
- ldrsh r1, [r4, r2]
- adds r0, r1
- cmp r0, 0x78
- ble _0813D8CE
- ldrh r0, [r4, 0x24]
- subs r0, 0x1
- b _0813D8E0
-_0813D8CE:
- movs r0, 0x3
- strh r0, [r4, 0x2E]
- b _0813D8E2
-_0813D8D4:
- ldrh r1, [r4, 0x24]
- movs r2, 0x24
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _0813D8E2
- subs r0, r1, 0x2
-_0813D8E0:
- strh r0, [r4, 0x24]
-_0813D8E2:
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x8
- bl Sin
- ldr r1, _0813D904
- ldrh r1, [r1]
- subs r0, r1
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x4
- strh r0, [r4, 0x30]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813D904: .4byte gUnknown_0203935A
- thumb_func_end sub_813D880
-
- thumb_func_start sub_813D908
-sub_813D908: @ 813D908
- push {lr}
- adds r3, r0, 0
- ldr r2, _0813D930
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0813D934
- adds r0, r3, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0813D94E
- .align 2, 0
-_0813D930: .4byte gTasks
-_0813D934:
- cmp r0, 0x4
- beq _0813D948
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- b _0813D94E
-_0813D948:
- adds r0, r3, 0
- bl DestroySprite
-_0813D94E:
- pop {r0}
- bx r0
- thumb_func_end sub_813D908
-
- thumb_func_start sub_813D954
-sub_813D954: @ 813D954
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- movs r5, 0
- ldr r7, _0813DA48
- lsls r0, 16
- mov r9, r0
- lsls r0, r6, 16
- str r0, [sp, 0x4]
- mov r1, r9
- asrs r1, 16
- str r1, [sp]
-_0813D97C:
- lsls r4, r5, 2
- adds r0, r7, 0x2
- adds r0, r4, r0
- ldrh r1, [r0]
- ldr r2, [sp]
- adds r1, r2, r1
- lsls r1, 16
- asrs r1, 16
- lsls r2, r6, 16
- asrs r3, r2, 16
- mov r10, r3
- ldr r0, _0813DA4C
- adds r2, r0
- ldr r0, _0813DA50
- asrs r2, 16
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0813DA54
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- mov r1, r8
- strh r1, [r0, 0x2E]
- adds r4, r7
- ldrb r1, [r4]
- bl StartSpriteAnim
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x8
- bls _0813D97C
- movs r5, 0
- ldr r7, _0813DA58
- mov r0, r10
- adds r0, 0xC
- lsls r0, 16
- mov r10, r0
-_0813D9D0:
- lsls r4, r5, 2
- adds r0, r7, 0x2
- adds r0, r4, r0
- mov r2, r9
- asrs r1, r2, 16
- ldrh r0, [r0]
- adds r1, r0
- lsls r1, 16
- asrs r1, 16
- ldr r0, _0813DA5C
- mov r3, r10
- asrs r2, r3, 16
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r6, _0813DA54
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r6
- mov r1, r8
- strh r1, [r0, 0x2E]
- adds r4, r7
- ldrb r1, [r4]
- bl StartSpriteAnim
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x7
- bls _0813D9D0
- ldr r0, _0813DA60
- ldr r3, [sp, 0x4]
- ldr r1, _0813DA4C
- adds r2, r3, r1
- asrs r2, 16
- movs r1, 0x78
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r6
- mov r3, r8
- strh r3, [r0, 0x2E]
- adds r0, r2, 0
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0813DA48: .4byte gUnknown_0840AF50
-_0813DA4C: .4byte 0xfffc0000
-_0813DA50: .4byte gSpriteTemplate_840AF94
-_0813DA54: .4byte gSprites
-_0813DA58: .4byte gUnknown_0840AF74
-_0813DA5C: .4byte gSpriteTemplate_840AFAC
-_0813DA60: .4byte gSpriteTemplate_840AFC4
- thumb_func_end sub_813D954
-
- thumb_func_start sub_813DA64
-sub_813DA64: @ 813DA64
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0813DA7C
- cmp r0, 0x1
- beq _0813DAC0
-_0813DA7C:
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- 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]
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0x3
- movs r3, 0x3
- bl CalcCenterToCornerVec
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0x80
- strh r0, [r4, 0x30]
- ldr r0, _0813DABC
- strh r0, [r4, 0x32]
- movs r0, 0
- b _0813DB92
- .align 2, 0
-_0813DABC: .4byte 0x0000ffe8
-_0813DAC0:
- ldrh r1, [r4, 0x34]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0x4F
- bgt _0813DAF8
- lsls r0, r1, 24
- lsrs r0, 24
- movs r1, 0x78
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x34]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x8C
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x24]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x40
- ble _0813DAF8
- ldrb r0, [r4, 0x5]
- movs r1, 0xC
- orrs r0, r1
- strb r0, [r4, 0x5]
-_0813DAF8:
- ldr r2, _0813DB60
- ldrh r1, [r4, 0x32]
- lsls r0, r1, 24
- lsrs r0, 23
- adds r0, r2
- ldrh r3, [r0]
- adds r1, 0x40
- lsls r1, 24
- lsrs r1, 23
- adds r1, r2
- movs r2, 0
- ldrsh r0, [r1, r2]
- movs r1, 0x30
- ldrsh r2, [r4, r1]
- adds r1, r0, 0
- muls r1, r2
- adds r0, r1, 0
- cmp r1, 0
- bge _0813DB20
- adds r0, 0xFF
-_0813DB20:
- lsls r0, 8
- lsrs r6, r0, 16
- lsls r0, r3, 16
- asrs r3, r0, 16
- negs r0, r3
- muls r0, r2
- cmp r0, 0
- bge _0813DB32
- adds r0, 0xFF
-_0813DB32:
- lsls r0, 8
- lsrs r5, r0, 16
- adds r0, r3, 0
- muls r0, r2
- cmp r0, 0
- bge _0813DB40
- adds r0, 0xFF
-_0813DB40:
- lsls r0, 8
- lsrs r2, r0, 16
- adds r1, r6, 0
- adds r3, r5, 0
- str r1, [sp]
- movs r0, 0x1
- bl SetOamMatrix
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0xFF
- bgt _0813DB64
- adds r0, r1, 0
- adds r0, 0x8
- b _0813DB68
- .align 2, 0
-_0813DB60: .4byte gSineTable
-_0813DB64:
- adds r0, r1, 0
- adds r0, 0x20
-_0813DB68:
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x32]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0x17
- bgt _0813DB78
- adds r0, r1, 0x1
- strh r0, [r4, 0x32]
-_0813DB78:
- ldrh r2, [r4, 0x34]
- movs r1, 0x34
- ldrsh r0, [r4, r1]
- cmp r0, 0x3F
- bgt _0813DB86
- adds r0, r2, 0x2
- b _0813DB92
-_0813DB86:
- ldrh r1, [r4, 0x3C]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0813DB94
- adds r0, r2, 0x1
-_0813DB92:
- strh r0, [r4, 0x34]
-_0813DB94:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_813DA64
-
- thumb_func_start sub_813DB9C
-sub_813DB9C: @ 813DB9C
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bhi _0813DBCC
- lsls r0, 2
- ldr r1, _0813DBB4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813DBB4: .4byte _0813DBB8
- .align 2, 0
-_0813DBB8:
- .4byte _0813DBCC
- .4byte _0813DBF2
- .4byte _0813DC24
- .4byte _0813DC3E
- .4byte _0813DCAA
-_0813DBCC:
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0813DBE0
- adds r2, r4, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x1
- orrs r0, r1
- b _0813DBEC
-_0813DBE0:
- adds r2, r4, 0
- adds r2, 0x3F
- ldrb r1, [r2]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
-_0813DBEC:
- strb r0, [r2]
- movs r0, 0x1
- strh r0, [r4, 0x2E]
-_0813DBF2:
- ldrh r1, [r4, 0x22]
- movs r3, 0x22
- ldrsh r0, [r4, r3]
- cmp r0, 0x60
- ble _0813DC18
- subs r0, r1, 0x4
- strh r0, [r4, 0x22]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0813DC10
- ldrh r0, [r4, 0x20]
- adds r0, 0x2
- strh r0, [r4, 0x20]
- b _0813DD4E
-_0813DC10:
- ldrh r0, [r4, 0x20]
- subs r0, 0x2
- strh r0, [r4, 0x20]
- b _0813DD4E
-_0813DC18:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- movs r0, 0x8
- strh r0, [r4, 0x34]
- b _0813DD4E
-_0813DC24:
- ldrh r0, [r4, 0x34]
- movs r2, 0x34
- ldrsh r1, [r4, r2]
- cmp r1, 0
- beq _0813DC34
- subs r0, 0x1
- strh r0, [r4, 0x34]
- b _0813DD4E
-_0813DC34:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x34]
- b _0813DD4E
-_0813DC3E:
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r3, 0x30
- ldrsh r1, [r4, r3]
- 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]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x3
- bl CalcCenterToCornerVec
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0813DC8A
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xFF
- lsls r1, 8
- movs r2, 0x80
- lsls r2, 1
- str r2, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- b _0813DC9E
-_0813DC8A:
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x80
- lsls r1, 1
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
-_0813DC9E:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x36]
- b _0813DD4E
-_0813DCAA:
- ldrh r0, [r4, 0x36]
- adds r2, r0, 0x1
- strh r2, [r4, 0x36]
- movs r3, 0x22
- ldrsh r0, [r4, r3]
- movs r3, 0x26
- ldrsh r1, [r4, r3]
- adds r0, r1
- movs r1, 0x20
- negs r1, r1
- cmp r0, r1
- ble _0813DD48
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r3, 0x24
- ldrsh r1, [r4, r3]
- adds r0, r1
- movs r1, 0x40
- negs r1, r1
- cmp r0, r1
- ble _0813DD48
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- adds r3, r0, 0
- muls r3, r0
- adds r0, r3, 0
- negs r0, r0
- cmp r0, 0
- bge _0813DCE6
- adds r0, 0x7
-_0813DCE6:
- asrs r0, 3
- strh r0, [r4, 0x26]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- ldrh r3, [r4, 0x32]
- cmp r0, 0
- beq _0813DCFA
- ldrh r0, [r4, 0x24]
- adds r0, r2
- b _0813DCFE
-_0813DCFA:
- ldrh r0, [r4, 0x24]
- subs r0, r2
-_0813DCFE:
- strh r0, [r4, 0x24]
- ldrh r1, [r4, 0x34]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0x7F
- bgt _0813DD10
- adds r0, r1, 0
- adds r0, 0x8
- strh r0, [r4, 0x34]
-_0813DD10:
- ldrh r0, [r4, 0x34]
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- subs r1, r0
- lsls r1, 16
- lsrs r2, r1, 16
- lsls r0, r3, 16
- cmp r0, 0
- beq _0813DD34
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- negs r1, r2
- lsls r1, 16
- lsrs r1, 16
- str r2, [sp]
- b _0813DD3E
-_0813DD34:
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- str r2, [sp]
- adds r1, r2, 0
-_0813DD3E:
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- b _0813DD4E
-_0813DD48:
- adds r0, r4, 0
- bl DestroySprite
-_0813DD4E:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813DB9C
-
- thumb_func_start sub_813DD58
-sub_813DD58: @ 813DD58
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0813DDAE
- cmp r0, 0x1
- ble _0813DD72
- cmp r0, 0x2
- beq _0813DE66
- cmp r0, 0x3
- beq _0813DE26
-_0813DD72:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- 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]
- movs r0, 0x80
- lsls r0, 4
- strh r0, [r4, 0x34]
- movs r0, 0x1
- strh r0, [r4, 0x2E]
-_0813DDAE:
- ldrh r1, [r4, 0x34]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- movs r2, 0x80
- lsls r2, 1
- cmp r0, r2
- ble _0813DDEE
- subs r1, 0x80
- strh r1, [r4, 0x34]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0813DDDA
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- negs r1, r1
- lsls r1, 16
- lsrs r1, 16
- ldrh r2, [r4, 0x34]
- str r2, [sp]
- b _0813DDE4
-_0813DDDA:
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x34]
- str r1, [sp]
-_0813DDE4:
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- b _0813DE66
-_0813DDEE:
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0813DE0C
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0xFF
- lsls r1, 8
- str r2, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- b _0813DE1E
-_0813DE0C:
- ldrh r0, [r4, 0x30]
- lsls r0, 24
- lsrs r0, 24
- str r2, [sp]
- adds r1, r2, 0
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
-_0813DE1E:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _0813DE66
-_0813DE26:
- ldrh r0, [r4, 0x36]
- adds r0, 0x1
- strh r0, [r4, 0x36]
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- adds r1, r0, 0
- muls r1, r0
- adds r0, r1, 0
- cmp r0, 0
- bge _0813DE3C
- adds r0, 0x1F
-_0813DE3C:
- asrs r0, 5
- strh r0, [r4, 0x26]
- movs r2, 0x32
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0813DE56
- movs r1, 0x36
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bge _0813DE52
- adds r0, 0x3
-_0813DE52:
- asrs r0, 2
- b _0813DE64
-_0813DE56:
- movs r2, 0x36
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bge _0813DE60
- adds r0, 0x3
-_0813DE60:
- asrs r0, 2
- negs r0, r0
-_0813DE64:
- strh r0, [r4, 0x24]
-_0813DE66:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813DD58
-
- thumb_func_start sub_813DE70
-sub_813DE70: @ 813DE70
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r7, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r7, r1]
- cmp r0, 0x6
- bhi _0813DEB0
- lsls r0, 2
- ldr r1, _0813DE90
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813DE90: .4byte _0813DE94
- .align 2, 0
-_0813DE94:
- .4byte _0813DEB0
- .4byte _0813E0F8
- .4byte _0813DEF4
- .4byte _0813DF2C
- .4byte _0813DF54
- .4byte _0813E0A8
- .4byte _0813E0D0
-_0813DEB0:
- ldrh r1, [r7, 0x20]
- movs r2, 0x20
- ldrsh r0, [r7, r2]
- cmp r0, 0x28
- ble _0813DEC0
- subs r0, r1, 0x4
- strh r0, [r7, 0x20]
- b _0813E0F8
-_0813DEC0:
- adds r0, r7, 0
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r4, _0813DEF0
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0x68
- movs r3, 0x64
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x3A]
- adds r0, r4, 0
- movs r1, 0xC
- movs r2, 0x6A
- movs r3, 0x65
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r7, 0x3C]
- b _0813DF42
- .align 2, 0
-_0813DEF0: .4byte gSpriteTemplate_840B084
-_0813DEF4:
- adds r0, r7, 0
- movs r1, 0x2
- bl StartSpriteAnim
- ldr r2, _0813DF28
- movs r3, 0x3A
- ldrsh r1, [r7, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0, 0x2E]
- movs r0, 0x3C
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x2
- strh r1, [r0, 0x2E]
- ldrh r0, [r7, 0x2E]
- adds r0, 0x1
- strh r0, [r7, 0x2E]
- b _0813E0F8
- .align 2, 0
-_0813DF28: .4byte gSprites
-_0813DF2C:
- ldrh r1, [r7, 0x22]
- movs r2, 0x22
- ldrsh r0, [r7, r2]
- cmp r0, 0xA0
- ble _0813DF48
- adds r2, r7, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_0813DF42:
- movs r0, 0x1
- strh r0, [r7, 0x2E]
- b _0813E0F8
-_0813DF48:
- adds r0, r1, 0x2
- strh r0, [r7, 0x22]
- ldrh r0, [r7, 0x20]
- subs r0, 0x1
- strh r0, [r7, 0x20]
- b _0813E0F8
-_0813DF54:
- ldr r6, _0813E094
- movs r3, 0x3A
- ldrsh r1, [r7, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r5, [r0, 0x24]
- ldrh r1, [r0, 0x20]
- adds r5, r1
- lsls r5, 16
- lsrs r5, 16
- ldrh r4, [r0, 0x26]
- ldrh r2, [r0, 0x22]
- adds r4, r2
- lsls r4, 16
- lsrs r4, 16
- bl DestroySprite
- movs r0, 0x8C
- lsls r0, 1
- lsls r5, 16
- asrs r1, r5, 16
- lsls r4, 16
- asrs r2, r4, 16
- movs r3, 0x1
- mov r8, r3
- str r3, [sp]
- movs r3, 0x2
- bl sub_813CE88
- strh r0, [r7, 0x3A]
- movs r0, 0x3A
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0813E098
- adds r0, r1
- ldr r2, _0813E09C
- mov r10, r2
- str r2, [r0]
- movs r3, 0x3A
- ldrsh r1, [r7, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- mov r9, r2
- mov r3, r9
- orrs r1, r3
- strb r1, [r0]
- movs r0, 0x3A
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- mov r1, r8
- strh r1, [r0, 0x30]
- movs r2, 0x3A
- ldrsh r1, [r7, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- mov r3, r8
- strh r3, [r0, 0x32]
- lsrs r5, 16
- lsrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_813E580
- movs r0, 0x3C
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r5, [r0, 0x24]
- ldrh r1, [r0, 0x20]
- adds r5, r1
- lsls r5, 16
- lsrs r5, 16
- ldrh r4, [r0, 0x26]
- ldrh r2, [r0, 0x22]
- adds r4, r2
- lsls r4, 16
- lsrs r4, 16
- bl DestroySprite
- ldr r0, _0813E0A0
- lsls r5, 16
- asrs r1, r5, 16
- lsls r4, 16
- asrs r2, r4, 16
- mov r3, r8
- str r3, [sp]
- movs r3, 0x3
- bl sub_813CE88
- strh r0, [r7, 0x3C]
- movs r0, 0x3C
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0813E098
- adds r0, r1
- mov r2, r10
- str r2, [r0]
- movs r3, 0x3C
- ldrsh r1, [r7, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- mov r2, r9
- orrs r1, r2
- strb r1, [r0]
- movs r3, 0x3C
- ldrsh r1, [r7, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x2
- strh r1, [r0, 0x30]
- movs r0, 0x3C
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0
- strh r1, [r0, 0x32]
- lsrs r5, 16
- lsrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_813E580
- movs r0, 0xFF
- lsls r0, 16
- ldr r1, _0813E0A4
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0x10
- bl BeginNormalPaletteFade
- mov r2, r8
- strh r2, [r7, 0x2E]
- b _0813E0F8
- .align 2, 0
-_0813E094: .4byte gSprites
-_0813E098: .4byte gSprites + 0x1C
-_0813E09C: .4byte sub_813DD58
-_0813E0A0: .4byte 0x0000011b
-_0813E0A4: .4byte 0x00007eff
-_0813E0A8:
- ldr r3, _0813E0CC
- movs r0, 0x3A
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r2, 0x3
- strh r2, [r0, 0x2E]
- movs r0, 0x3C
- ldrsh r1, [r7, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- strh r2, [r0, 0x2E]
- b _0813E0F8
- .align 2, 0
-_0813E0CC: .4byte gSprites
-_0813E0D0:
- movs r2, 0x3A
- ldrsh r1, [r7, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, _0813E108
- adds r0, r4
- bl DestroySprite
- movs r3, 0x3C
- ldrsh r1, [r7, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- adds r0, r7, 0
- bl DestroySprite
-_0813E0F8:
- 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
-_0813E108: .4byte gSprites
- thumb_func_end sub_813DE70
-
- thumb_func_start sub_813E10C
-sub_813E10C: @ 813E10C
- push {r4,lr}
- adds r3, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0x4
- bhi _0813E13C
- lsls r0, 2
- ldr r1, _0813E124
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813E124: .4byte _0813E128
- .align 2, 0
-_0813E128:
- .4byte _0813E13C
- .4byte _0813E178
- .4byte _0813E1A6
- .4byte _0813E1C2
- .4byte _0813E1D6
-_0813E13C:
- ldrh r4, [r3, 0x24]
- movs r2, 0x24
- ldrsh r1, [r3, r2]
- movs r0, 0x38
- negs r0, r0
- cmp r1, r0
- ble _0813E158
- adds r0, r4, 0
- subs r0, 0x8
- strh r0, [r3, 0x24]
- ldrh r0, [r3, 0x26]
- adds r0, 0x6
- strh r0, [r3, 0x26]
- b _0813E208
-_0813E158:
- ldrh r0, [r3, 0x20]
- movs r2, 0
- strh r0, [r3, 0x3A]
- ldrh r1, [r3, 0x22]
- strh r1, [r3, 0x3C]
- adds r0, r4
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x26]
- adds r1, r0
- strh r1, [r3, 0x22]
- strh r2, [r3, 0x24]
- strh r2, [r3, 0x26]
- movs r0, 0x1
- strh r0, [r3, 0x2E]
- strh r2, [r3, 0x30]
- b _0813E208
-_0813E178:
- ldrh r1, [r3, 0x30]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0813E1A0
- movs r0, 0x2
- ands r0, r1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- beq _0813E19C
- ldr r0, _0813E198
- strh r0, [r3, 0x24]
- strh r2, [r3, 0x26]
- b _0813E1A0
- .align 2, 0
-_0813E198: .4byte 0x0000ffff
-_0813E19C:
- strh r0, [r3, 0x24]
- strh r0, [r3, 0x26]
-_0813E1A0:
- adds r0, r1, 0x1
- strh r0, [r3, 0x30]
- b _0813E208
-_0813E1A6:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r3, 0x3A]
- movs r1, 0
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x3C]
- strh r0, [r3, 0x22]
- strh r1, [r3, 0x24]
- strh r1, [r3, 0x26]
- b _0813E208
-_0813E1C2:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r2]
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
-_0813E1D6:
- ldrh r2, [r3, 0x24]
- movs r0, 0x24
- ldrsh r1, [r3, r0]
- movs r0, 0x38
- negs r0, r0
- cmp r1, r0
- ble _0813E1F0
- subs r0, r2, 0x4
- strh r0, [r3, 0x24]
- ldrh r0, [r3, 0x26]
- adds r0, 0x3
- strh r0, [r3, 0x26]
- b _0813E208
-_0813E1F0:
- ldrh r1, [r3, 0x20]
- adds r0, r2, r1
- movs r1, 0
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x26]
- ldrh r2, [r3, 0x22]
- adds r0, r2
- strh r0, [r3, 0x22]
- strh r1, [r3, 0x24]
- strh r1, [r3, 0x26]
- movs r0, 0x1
- strh r0, [r3, 0x2E]
-_0813E208:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813E10C
-
- thumb_func_start sub_813E210
-sub_813E210: @ 813E210
- push {r4,lr}
- adds r3, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- cmp r0, 0x4
- bhi _0813E240
- lsls r0, 2
- ldr r1, _0813E228
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813E228: .4byte _0813E22C
- .align 2, 0
-_0813E22C:
- .4byte _0813E240
- .4byte _0813E278
- .4byte _0813E2A6
- .4byte _0813E2C2
- .4byte _0813E2D6
-_0813E240:
- ldrh r4, [r3, 0x24]
- movs r2, 0x24
- ldrsh r0, [r3, r2]
- cmp r0, 0x37
- bgt _0813E258
- adds r0, r4, 0
- adds r0, 0x8
- strh r0, [r3, 0x24]
- ldrh r0, [r3, 0x26]
- subs r0, 0x6
- strh r0, [r3, 0x26]
- b _0813E304
-_0813E258:
- ldrh r0, [r3, 0x20]
- movs r2, 0
- strh r0, [r3, 0x3A]
- ldrh r1, [r3, 0x22]
- strh r1, [r3, 0x3C]
- adds r0, r4
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x26]
- adds r1, r0
- strh r1, [r3, 0x22]
- strh r2, [r3, 0x24]
- strh r2, [r3, 0x26]
- movs r0, 0x1
- strh r0, [r3, 0x2E]
- strh r2, [r3, 0x30]
- b _0813E304
-_0813E278:
- ldrh r1, [r3, 0x30]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _0813E2A0
- movs r0, 0x2
- ands r0, r1
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- beq _0813E29C
- strh r2, [r3, 0x24]
- ldr r0, _0813E298
- b _0813E29E
- .align 2, 0
-_0813E298: .4byte 0x0000ffff
-_0813E29C:
- strh r0, [r3, 0x24]
-_0813E29E:
- strh r0, [r3, 0x26]
-_0813E2A0:
- adds r0, r1, 0x1
- strh r0, [r3, 0x30]
- b _0813E304
-_0813E2A6:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r3, 0x3A]
- movs r1, 0
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x3C]
- strh r0, [r3, 0x22]
- strh r1, [r3, 0x24]
- strh r1, [r3, 0x26]
- b _0813E304
-_0813E2C2:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r2]
- ldrh r0, [r3, 0x30]
- adds r0, 0x1
- strh r0, [r3, 0x30]
-_0813E2D6:
- ldrh r1, [r3, 0x24]
- movs r2, 0x24
- ldrsh r0, [r3, r2]
- cmp r0, 0x37
- bgt _0813E2EC
- adds r0, r1, 0x4
- strh r0, [r3, 0x24]
- ldrh r0, [r3, 0x26]
- subs r0, 0x3
- strh r0, [r3, 0x26]
- b _0813E304
-_0813E2EC:
- ldrh r2, [r3, 0x20]
- adds r0, r1, r2
- movs r1, 0
- strh r0, [r3, 0x20]
- ldrh r0, [r3, 0x26]
- ldrh r2, [r3, 0x22]
- adds r0, r2
- strh r0, [r3, 0x22]
- strh r1, [r3, 0x24]
- strh r1, [r3, 0x26]
- movs r0, 0x1
- strh r0, [r3, 0x2E]
-_0813E304:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_813E210
-
- thumb_func_start sub_813E30C
-sub_813E30C: @ 813E30C
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x14
- bls _0813E322
- b _0813E4AC
-_0813E322:
- lsls r0, 2
- ldr r1, _0813E32C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813E32C: .4byte _0813E330
- .align 2, 0
-_0813E330:
- .4byte _0813E4AC
- .4byte _0813E384
- .4byte _0813E41C
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E3A8
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E4AC
- .4byte _0813E440
-_0813E384:
- 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]
- movs r0, 0xA
- strh r0, [r4, 0x2E]
- movs r0, 0x24
- strh r0, [r4, 0x36]
-_0813E3A8:
- ldrh r1, [r4, 0x20]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x90
- bgt _0813E3D2
- adds r0, r1, 0x4
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x22]
- subs r0, 0x1
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x18
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x4
- strh r0, [r4, 0x32]
-_0813E3D2:
- ldrh r0, [r4, 0x34]
- ldrh r2, [r4, 0x36]
- subs r0, r2
- strh r0, [r4, 0x34]
- ldrh r1, [r4, 0x3C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813E3EE
- lsls r0, r2, 16
- cmp r0, 0
- beq _0813E3EE
- subs r0, r2, 0x1
- strh r0, [r4, 0x36]
-_0813E3EE:
- ldr r2, _0813E418
- ldrh r1, [r4, 0x34]
- lsls r0, r1, 24
- lsrs r0, 23
- adds r0, r2
- ldrh r4, [r0]
- adds r1, 0x40
- lsls r1, 24
- lsrs r1, 23
- adds r1, r2
- ldrh r1, [r1]
- negs r3, r4
- lsls r3, 16
- lsrs r3, 16
- str r1, [sp]
- movs r0, 0x1
- adds r2, r4, 0
- bl SetOamMatrix
- b _0813E4AC
- .align 2, 0
-_0813E418: .4byte gSineTable
-_0813E41C:
- 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]
- movs r0, 0x14
- strh r0, [r4, 0x2E]
- movs r0, 0x24
- strh r0, [r4, 0x36]
-_0813E440:
- ldrh r1, [r4, 0x20]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x60
- bgt _0813E46A
- adds r0, r1, 0x3
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x22]
- subs r0, 0x1
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x18
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x32]
- adds r0, 0x4
- strh r0, [r4, 0x32]
-_0813E46A:
- ldrh r0, [r4, 0x34]
- ldrh r2, [r4, 0x36]
- subs r0, r2
- strh r0, [r4, 0x34]
- ldrh r1, [r4, 0x3C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813E486
- lsls r0, r2, 16
- cmp r0, 0
- beq _0813E486
- subs r0, r2, 0x1
- strh r0, [r4, 0x36]
-_0813E486:
- ldr r2, _0813E4B4
- ldrh r1, [r4, 0x34]
- lsls r0, r1, 24
- lsrs r0, 23
- adds r0, r2
- ldrh r4, [r0]
- adds r1, 0x40
- lsls r1, 24
- lsrs r1, 23
- adds r1, r2
- ldrh r1, [r1]
- negs r3, r4
- lsls r3, 16
- lsrs r3, 16
- str r1, [sp]
- movs r0, 0x2
- adds r2, r4, 0
- bl SetOamMatrix
-_0813E4AC:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813E4B4: .4byte gSineTable
- thumb_func_end sub_813E30C
-
- thumb_func_start sub_813E4B8
-sub_813E4B8: @ 813E4B8
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813E4DA
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- b _0813E4E4
-_0813E4DA:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
-_0813E4E4:
- strb r0, [r2]
- ldrh r1, [r5, 0x32]
- movs r2, 0x32
- ldrsh r0, [r5, r2]
- cmp r0, 0x3F
- ble _0813E4F8
- adds r0, r5, 0
- bl DestroySprite
- b _0813E574
-_0813E4F8:
- adds r0, r1, 0x2
- strh r0, [r5, 0x32]
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x28
- bl Sin
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- lsls r0, 29
- lsrs r0, 24
- lsls r4, 16
- asrs r4, 16
- adds r1, r4, 0
- bl Cos
- strh r0, [r5, 0x24]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- lsls r0, 29
- lsrs r0, 24
- adds r1, r4, 0
- bl Sin
- strh r0, [r5, 0x26]
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0813E574
- ldrh r0, [r5, 0x34]
- ldrh r2, [r5, 0x30]
- subs r0, r2
- strh r0, [r5, 0x34]
- ldrh r1, [r5, 0x3C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813E550
- lsls r0, r2, 16
- cmp r0, 0
- beq _0813E550
- subs r0, r2, 0x1
- strh r0, [r5, 0x30]
-_0813E550:
- ldr r3, _0813E57C
- ldrh r1, [r5, 0x34]
- lsls r0, r1, 24
- lsrs r0, 23
- adds r0, r3
- ldrh r2, [r0]
- adds r1, 0x40
- lsls r1, 24
- lsrs r1, 23
- adds r1, r3
- ldrh r1, [r1]
- negs r3, r2
- lsls r3, 16
- lsrs r3, 16
- str r1, [sp]
- movs r0, 0x10
- bl SetOamMatrix
-_0813E574:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813E57C: .4byte gSineTable
- thumb_func_end sub_813E4B8
-
- thumb_func_start sub_813E580
-sub_813E580: @ 813E580
- push {r4-r7,lr}
- movs r4, 0
- ldr r7, _0813E5D8
- lsls r6, r0, 16
- lsls r5, r1, 16
-_0813E58A:
- ldr r0, _0813E5DC
- asrs r1, r6, 16
- asrs r2, r5, 16
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r7
- ldrb r1, [r2, 0x1]
- movs r3, 0x4
- negs r3, r3
- adds r0, r3, 0
- ands r1, r0
- movs r0, 0x1
- orrs r1, r0
- strb r1, [r2, 0x1]
- ldrb r1, [r2, 0x3]
- subs r3, 0x3B
- adds r0, r3, 0
- ands r1, r0
- movs r0, 0x20
- orrs r1, r0
- strb r1, [r2, 0x3]
- strh r4, [r2, 0x2E]
- movs r0, 0x20
- strh r0, [r2, 0x30]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _0813E58A
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813E5D8: .4byte gSprites
-_0813E5DC: .4byte gSpriteTemplate_840B0B0
- thumb_func_end sub_813E580
-
- thumb_func_start sub_813E5E0
-sub_813E5E0: @ 813E5E0
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _0813E5F4
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813E5F8
- adds r0, r3, 0
- bl DestroySprite
- b _0813E6B2
- .align 2, 0
-_0813E5F4: .4byte gUnknown_0203931A
-_0813E5F8:
- ldr r2, _0813E6B8
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- movs r1, 0x4
- ands r1, r0
- mov r4, r12
- ldrb r2, [r4]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4]
- ldrh r1, [r3, 0x3C]
- movs r2, 0x3C
- ldrsh r0, [r3, r2]
- cmp r0, 0xB
- bgt _0813E630
- adds r0, r1, 0x1
- strh r0, [r3, 0x3C]
-_0813E630:
- ldrh r0, [r3, 0x3A]
- adds r0, 0x4
- strh r0, [r3, 0x3A]
- ldr r4, _0813E6BC
- ldrh r0, [r3, 0x34]
- adds r0, 0x40
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r2, 0x3A
- ldrsh r0, [r3, r2]
- muls r0, r1
- cmp r0, 0
- bge _0813E652
- adds r0, 0xFF
-_0813E652:
- asrs r0, 8
- ldrh r1, [r3, 0x36]
- adds r0, r1
- strh r0, [r3, 0x20]
- movs r2, 0x34
- ldrsh r0, [r3, r2]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r2, 0x3A
- ldrsh r0, [r3, r2]
- muls r0, r1
- cmp r0, 0
- bge _0813E674
- adds r0, 0xFF
-_0813E674:
- asrs r0, 8
- ldrh r1, [r3, 0x38]
- adds r2, r0, r1
- strh r2, [r3, 0x22]
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- movs r4, 0
- ldrsh r1, [r0, r4]
- movs r4, 0x3C
- ldrsh r0, [r3, r4]
- muls r0, r1
- cmp r0, 0
- bge _0813E696
- adds r0, 0xFF
-_0813E696:
- asrs r0, 8
- strh r0, [r3, 0x26]
- ldrh r0, [r3, 0x30]
- adds r0, 0x10
- strh r0, [r3, 0x30]
- lsls r0, r2, 16
- asrs r0, 16
- movs r2, 0x32
- ldrsh r1, [r3, r2]
- cmp r0, r1
- ble _0813E6B2
- adds r0, r3, 0
- bl DestroySprite
-_0813E6B2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813E6B8: .4byte gSprites
-_0813E6BC: .4byte gSineTable
- thumb_func_end sub_813E5E0
-
- thumb_func_start sub_813E6C0
-sub_813E6C0: @ 813E6C0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r0, _0813E6E0
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813E6E4
- adds r0, r4, 0
- bl DestroySprite
- b _0813E7A8
- .align 2, 0
-_0813E6E0: .4byte gUnknown_0203931A
-_0813E6E4:
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r3, _0813E7B8
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r3
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _0813E7A8
- ldrh r1, [r4, 0x3C]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0813E7A8
- ldrh r0, [r2, 0x20]
- ldrh r7, [r4, 0x30]
- adds r0, r7
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- ldrh r0, [r2, 0x22]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- lsls r0, 16
- lsrs r6, r0, 16
- movs r5, 0
- mov r8, r3
- ldr r2, [sp]
- lsls r2, 16
- mov r10, r2
- lsls r7, r6, 16
- mov r9, r7
-_0813E73A:
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- adds r0, 0x43
- ldrb r3, [r0]
- subs r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _0813E7BC
- mov r2, r10
- asrs r1, r2, 16
- mov r7, r9
- asrs r2, r7, 16
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0813E79E
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- add r3, r8
- ldrh r0, [r4, 0x2E]
- strh r0, [r3, 0x2E]
- ldrh r1, [r4, 0x3C]
- lsls r1, 16
- asrs r1, 18
- movs r0, 0x7
- ands r1, r0
- lsls r1, 5
- lsls r0, r5, 2
- adds r0, r5
- lsls r2, r0, 4
- adds r0, r2
- adds r1, r0
- strh r1, [r3, 0x30]
- ldrh r0, [r4, 0x34]
- strh r0, [r3, 0x32]
- movs r0, 0x68
- strh r0, [r3, 0x34]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r3, 0x36]
- strh r6, [r3, 0x38]
- movs r1, 0
- strh r1, [r3, 0x3A]
-_0813E79E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _0813E73A
-_0813E7A8:
- 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
-_0813E7B8: .4byte gSprites
-_0813E7BC: .4byte gSpriteTemplate_840B0DC
- thumb_func_end sub_813E6C0
-
- thumb_func_start sub_813E7C0
-sub_813E7C0: @ 813E7C0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813E7F8
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _0813E7F2
- ldr r1, _0813E7FC
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r2, 0
- strh r4, [r0, 0x2E]
- ldr r1, _0813E800
- strh r1, [r0, 0x30]
- strh r2, [r0, 0x32]
- movs r1, 0x88
- strh r1, [r0, 0x34]
-_0813E7F2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813E7F8: .4byte gSpriteTemplate_840B0F4
-_0813E7FC: .4byte gSprites
-_0813E800: .4byte 0x0000fff4
- thumb_func_end sub_813E7C0
-
- thumb_func_start sub_813E804
-sub_813E804: @ 813E804
- push {r4-r7,lr}
- adds r3, r0, 0
- ldr r0, _0813E818
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813E81C
- adds r0, r3, 0
- bl DestroySprite
- b _0813E928
- .align 2, 0
-_0813E818: .4byte gUnknown_0203931A
-_0813E81C:
- ldr r6, _0813E904
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r0, [r0]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- movs r1, 0x4
- ands r1, r0
- mov r7, r12
- ldrb r2, [r7]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r7]
- ldrh r0, [r3, 0x3C]
- adds r0, 0x1
- strh r0, [r3, 0x3C]
- ldrh r1, [r3, 0x34]
- movs r2, 0x34
- ldrsh r0, [r3, r2]
- cmp r0, 0x27
- bgt _0813E85A
- adds r0, r1, 0x2
- strh r0, [r3, 0x34]
-_0813E85A:
- movs r7, 0x2E
- ldrsh r1, [r3, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r0, 0x24]
- ldrh r0, [r0, 0x20]
- adds r2, r1, r0
- ldr r4, _0813E908
- ldrh r5, [r3, 0x30]
- adds r0, r5, 0
- adds r0, 0x40
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- movs r7, 0
- ldrsh r1, [r0, r7]
- movs r7, 0x34
- ldrsh r0, [r3, r7]
- muls r0, r1
- cmp r0, 0
- bge _0813E88A
- adds r0, 0xFF
-_0813E88A:
- asrs r0, 8
- adds r0, r2, r0
- strh r0, [r3, 0x20]
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r2, r1, r0
- movs r1, 0x30
- ldrsh r0, [r3, r1]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- movs r7, 0
- ldrsh r1, [r0, r7]
- movs r7, 0x34
- ldrsh r0, [r3, r7]
- muls r0, r1
- cmp r0, 0
- bge _0813E8BE
- ldr r1, _0813E90C
- adds r0, r1
-_0813E8BE:
- asrs r0, 9
- adds r0, r2, r0
- strh r0, [r3, 0x22]
- adds r1, r5, 0x2
- strh r1, [r3, 0x30]
- movs r2, 0x32
- ldrsh r0, [r3, r2]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- movs r7, 0
- ldrsh r0, [r0, r7]
- cmp r0, 0
- bge _0813E8DC
- adds r0, 0x1F
-_0813E8DC:
- asrs r0, 5
- strh r0, [r3, 0x26]
- ldrh r0, [r3, 0x32]
- adds r0, 0x8
- strh r0, [r3, 0x32]
- movs r0, 0xFF
- ands r1, r0
- cmp r1, 0x7F
- bgt _0813E910
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
- b _0813E922
- .align 2, 0
-_0813E904: .4byte gSprites
-_0813E908: .4byte gSineTable
-_0813E90C: .4byte 0x000001ff
-_0813E910:
- movs r2, 0x2E
- ldrsh r1, [r3, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x43
- ldrb r0, [r0]
- adds r0, 0x1
-_0813E922:
- adds r1, r3, 0
- adds r1, 0x43
- strb r0, [r1]
-_0813E928:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_813E804
-
- thumb_func_start sub_813E930
-sub_813E930: @ 813E930
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- ldr r7, _0813E978
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r5, r0, r7
-_0813E942:
- movs r0, 0x20
- ldrsh r1, [r5, r0]
- movs r0, 0x22
- ldrsh r2, [r5, r0]
- ldr r0, _0813E97C
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _0813E968
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- strh r6, [r0, 0x2E]
- lsls r1, r4, 5
- strh r1, [r0, 0x30]
-_0813E968:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _0813E942
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813E978: .4byte gSprites
-_0813E97C: .4byte gSpriteTemplate_840B124
- thumb_func_end sub_813E930
-
- thumb_func_start GetCurrentTrainerHillMapId
-GetCurrentTrainerHillMapId: @ 813E980
- push {r4,r5,lr}
- adds r3, r0, 0
- ldr r0, _0813E994
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813E998
- adds r0, r3, 0
- bl DestroySprite
- b _0813EA50
- .align 2, 0
-_0813E994: .4byte gUnknown_0203931A
-_0813E998:
- ldr r2, _0813EA58
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- movs r1, 0x4
- ands r1, r0
- mov r5, r12
- ldrb r2, [r5]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5]
- ldrh r0, [r3, 0x3C]
- adds r0, 0x1
- strh r0, [r3, 0x3C]
- ldrh r0, [r3, 0x3A]
- adds r4, r0, 0
- adds r4, 0x8
- strh r4, [r3, 0x3A]
- ldr r2, _0813EA5C
- ldrh r0, [r3, 0x34]
- adds r0, 0x40
- lsls r0, 24
- lsrs r0, 23
- adds r0, r2
- movs r5, 0
- ldrsh r1, [r0, r5]
- movs r5, 0x3A
- ldrsh r0, [r3, r5]
- muls r0, r1
- cmp r0, 0
- bge _0813E9EC
- adds r0, 0xFF
-_0813E9EC:
- asrs r0, 8
- ldrh r1, [r3, 0x36]
- adds r0, r1
- strh r0, [r3, 0x20]
- movs r5, 0x34
- ldrsh r0, [r3, r5]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r2
- movs r2, 0
- ldrsh r1, [r0, r2]
- movs r5, 0x3A
- ldrsh r0, [r3, r5]
- muls r0, r1
- cmp r0, 0
- bge _0813EA0E
- adds r0, 0xFF
-_0813EA0E:
- asrs r0, 8
- ldrh r1, [r3, 0x38]
- adds r0, r1
- strh r0, [r3, 0x22]
- movs r2, 0x3A
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bge _0813EA20
- adds r0, 0xF
-_0813EA20:
- asrs r0, 4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bls _0813EA2C
- movs r0, 0x9
-_0813EA2C:
- adds r1, r0, 0
- adds r1, 0x12
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r3, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x3]
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, 0xA0
- ble _0813EA50
- adds r0, r3, 0
- bl DestroySprite
-_0813EA50:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EA58: .4byte gSprites
-_0813EA5C: .4byte gSineTable
- thumb_func_end GetCurrentTrainerHillMapId
-
- thumb_func_start sub_813EA60
-sub_813EA60: @ 813EA60
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- ldr r0, _0813EA7C
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813EA80
- adds r0, r5, 0
- bl DestroySprite
- b _0813EB32
- .align 2, 0
-_0813EA7C: .4byte gUnknown_0203931A
-_0813EA80:
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0813EB40
- mov r9, r0
- movs r4, 0x2E
- ldrsh r1, [r5, r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- mov r1, r9
- adds r3, r0, r1
- movs r4, 0x2E
- ldrsh r1, [r3, r4]
- cmp r1, 0x1
- bne _0813EB32
- ldrh r0, [r5, 0x3C]
- ands r1, r0
- lsls r0, r1, 16
- asrs r6, r0, 16
- cmp r6, 0
- bne _0813EB32
- ldrh r1, [r3, 0x20]
- ldrh r0, [r5, 0x30]
- adds r1, r0
- lsls r1, 16
- ldrh r2, [r3, 0x22]
- ldrh r4, [r5, 0x32]
- adds r2, r4
- lsls r2, 16
- ldr r0, _0813EB44
- lsrs r4, r1, 16
- mov r8, r4
- asrs r1, 16
- lsrs r7, r2, 16
- asrs r2, 16
- adds r3, 0x43
- ldrb r3, [r3]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0813EB32
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- add r4, r9
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x24
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x1
- movs r3, 0x3
- bl CalcCenterToCornerVec
- ldrh r0, [r5, 0x2E]
- strh r0, [r4, 0x2E]
- ldr r2, _0813EB48
- ldrh r0, [r5, 0x3C]
- lsls r0, 16
- asrs r0, 17
- movs r1, 0x7
- ands r0, r1
- adds r0, r2
- ldrb r0, [r0]
- strh r0, [r4, 0x34]
- mov r0, r8
- strh r0, [r4, 0x36]
- strh r7, [r4, 0x38]
- strh r6, [r4, 0x3A]
-_0813EB32:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EB40: .4byte gSprites
-_0813EB44: .4byte gSpriteTemplate_840B150
-_0813EB48: .4byte gUnknown_0840B168
- thumb_func_end sub_813EA60
-
- thumb_func_start sub_813EB4C
-sub_813EB4C: @ 813EB4C
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813EBB0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _0813EB80
- ldr r1, _0813EBB4
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- strh r4, [r0, 0x2E]
- strh r1, [r0, 0x30]
- movs r1, 0x8
- strh r1, [r0, 0x32]
- movs r1, 0x18
- strh r1, [r0, 0x34]
-_0813EB80:
- movs r4, 0
- ldr r5, _0813EBB8
-_0813EB84:
- adds r0, r4, 0
- adds r0, 0x12
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r4, 1
- adds r1, r5
- ldrh r1, [r1]
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bls _0813EB84
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EBB0: .4byte gSpriteTemplate_840B170
-_0813EBB4: .4byte gSprites
-_0813EBB8: .4byte gUnknown_0840B188
- thumb_func_end sub_813EB4C
-
- thumb_func_start sub_813EBBC
-sub_813EBBC: @ 813EBBC
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, _0813EBD0
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813EBD4
- adds r0, r3, 0
- bl DestroySprite
- b _0813EC80
- .align 2, 0
-_0813EBD0: .4byte gUnknown_0203931A
-_0813EBD4:
- ldr r2, _0813EC88
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r0, [r0]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- movs r1, 0x4
- ands r1, r0
- mov r4, r12
- ldrb r2, [r4]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4]
- ldrh r0, [r3, 0x3C]
- adds r0, 0x1
- strh r0, [r3, 0x3C]
- ldrh r0, [r3, 0x3A]
- adds r0, 0x8
- strh r0, [r3, 0x3A]
- ldr r2, _0813EC8C
- ldrh r0, [r3, 0x34]
- adds r0, 0x40
- lsls r0, 24
- lsrs r0, 23
- adds r0, r2
- movs r4, 0
- ldrsh r1, [r0, r4]
- movs r4, 0x3A
- ldrsh r0, [r3, r4]
- muls r0, r1
- cmp r0, 0
- bge _0813EC26
- adds r0, 0xFF
-_0813EC26:
- asrs r0, 8
- ldrh r1, [r3, 0x36]
- adds r0, r1
- strh r0, [r3, 0x20]
- movs r4, 0x34
- ldrsh r0, [r3, r4]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r2
- movs r4, 0
- ldrsh r1, [r0, r4]
- movs r4, 0x3A
- ldrsh r0, [r3, r4]
- muls r0, r1
- cmp r0, 0
- bge _0813EC48
- adds r0, 0xFF
-_0813EC48:
- asrs r0, 8
- ldrh r4, [r3, 0x38]
- adds r1, r0, r4
- strh r1, [r3, 0x22]
- movs r4, 0x30
- ldrsh r0, [r3, r4]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bge _0813EC64
- adds r0, 0x3F
-_0813EC64:
- asrs r0, 6
- strh r0, [r3, 0x26]
- ldrh r0, [r3, 0x30]
- adds r0, 0x10
- strh r0, [r3, 0x30]
- lsls r0, r1, 16
- asrs r0, 16
- movs r4, 0x32
- ldrsh r1, [r3, r4]
- cmp r0, r1
- bge _0813EC80
- adds r0, r3, 0
- bl DestroySprite
-_0813EC80:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EC88: .4byte gSprites
-_0813EC8C: .4byte gSineTable
- thumb_func_end sub_813EBBC
-
- thumb_func_start sub_813EC90
-sub_813EC90: @ 813EC90
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, _0813ECAC
- ldrh r0, [r0]
- cmp r0, 0
- beq _0813ECB0
- adds r0, r5, 0
- bl DestroySprite
- b _0813EDA0
- .align 2, 0
-_0813ECAC: .4byte gUnknown_0203931A
-_0813ECB0:
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _0813EDB0
- mov r9, r0
- movs r2, 0x2E
- ldrsh r1, [r5, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- mov r4, r9
- adds r3, r0, r4
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- cmp r1, 0x1
- bne _0813ED74
- ldrh r0, [r5, 0x3C]
- ands r1, r0
- lsls r0, r1, 16
- asrs r6, r0, 16
- cmp r6, 0
- bne _0813ED66
- ldrh r1, [r3, 0x20]
- ldrh r2, [r5, 0x30]
- adds r1, r2
- lsls r1, 16
- ldrh r2, [r3, 0x22]
- ldrh r4, [r5, 0x32]
- adds r2, r4
- lsls r2, 16
- ldr r0, _0813EDB4
- lsrs r4, r1, 16
- mov r8, r4
- asrs r1, 16
- lsrs r7, r2, 16
- asrs r2, 16
- adds r3, 0x43
- ldrb r3, [r3]
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0813ED66
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- add r4, r9
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x22
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x1
- movs r3, 0x3
- bl CalcCenterToCornerVec
- ldrh r0, [r5, 0x2E]
- strh r0, [r4, 0x2E]
- ldrh r0, [r5, 0x3C]
- lsls r0, 16
- asrs r0, 18
- movs r1, 0x7
- ands r0, r1
- lsls r0, 5
- strh r0, [r4, 0x30]
- ldrh r0, [r5, 0x34]
- strh r0, [r4, 0x32]
- movs r0, 0xE8
- strh r0, [r4, 0x34]
- mov r0, r8
- strh r0, [r4, 0x36]
- strh r7, [r4, 0x38]
- strh r6, [r4, 0x3A]
-_0813ED66:
- ldrh r1, [r5, 0x3A]
- movs r2, 0x3A
- ldrsh r0, [r5, r2]
- cmp r0, 0x6F
- bgt _0813ED74
- adds r0, r1, 0x4
- strh r0, [r5, 0x3A]
-_0813ED74:
- ldr r1, _0813EDB8
- ldrh r0, [r5, 0x3A]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- movs r4, 0
- ldrsh r0, [r0, r4]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r0, 0x11
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
-_0813EDA0:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EDB0: .4byte gSprites
-_0813EDB4: .4byte gSpriteTemplate_840B1B0
-_0813EDB8: .4byte gSineTable
- thumb_func_end sub_813EC90
-
- thumb_func_start sub_813EDBC
-sub_813EDBC: @ 813EDBC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0813EDF4
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _0813EDEE
- ldr r1, _0813EDF8
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- strh r4, [r0, 0x2E]
- strh r1, [r0, 0x30]
- movs r1, 0xC
- strh r1, [r0, 0x32]
- movs r1, 0x18
- strh r1, [r0, 0x34]
-_0813EDEE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EDF4: .4byte gSpriteTemplate_840B1C8
-_0813EDF8: .4byte gSprites
- thumb_func_end sub_813EDBC
-
- thumb_func_start sub_813EDFC
-sub_813EDFC: @ 813EDFC
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _0813EE12
- adds r4, r5, 0
- adds r4, 0x3E
- cmp r0, 0x1
- beq _0813EE4A
-_0813EE12:
- adds r4, r5, 0
- adds r4, 0x3E
- ldrb r1, [r4]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
- ldrb r0, [r5, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r5, 0x1]
- ldrb r1, [r5, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x24
- orrs r0, r1
- strb r0, [r5, 0x3]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0x3
- movs r3, 0x3
- bl CalcCenterToCornerVec
- movs r0, 0
- strh r0, [r5, 0x30]
- movs r0, 0x1
- strh r0, [r5, 0x2E]
-_0813EE4A:
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0813EE62
- ldrb r0, [r4]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4]
- b _0813EE7A
-_0813EE62:
- ldrb r0, [r4]
- movs r1, 0x5
- negs r1, r1
- ands r1, r0
- strb r1, [r4]
- ldrh r1, [r5, 0x30]
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- cmp r0, 0x3F
- bgt _0813EE7A
- adds r0, r1, 0x1
- strh r0, [r5, 0x30]
-_0813EE7A:
- ldr r1, _0813EEB0
- ldrh r0, [r5, 0x30]
- lsls r0, 24
- lsrs r0, 23
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r0, 0x12
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EEB0: .4byte gSineTable
- thumb_func_end sub_813EDFC
-
- thumb_func_start sub_813EEB4
-sub_813EEB4: @ 813EEB4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0
- bl SetVBlankCallback
- ldr r2, _0813EED8
- ldr r0, _0813EEDC
- adds r1, r2, r0
- movs r0, 0
- strh r0, [r1]
- str r4, [r2]
- ldr r0, _0813EEE0
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EED8: .4byte 0x02000000
-_0813EEDC: .4byte 0x00000888
-_0813EEE0: .4byte sub_813EEE4
- thumb_func_end sub_813EEB4
-
- thumb_func_start sub_813EEE4
-sub_813EEE4: @ 813EEE4
- push {r4,lr}
- sub sp, 0x4
- 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, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r0, _0813EF98
- movs r1, 0
- bl sub_80FA8EC
- movs r0, 0
- movs r1, 0
- bl sub_80FBCF0
- movs r0, 0x1
- movs r1, 0x1
- bl sub_80FBB3C
- ldr r4, _0813EF9C
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- bl MenuZeroFillScreen
- ldr r1, _0813EFA0
- movs r2, 0xF8
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- movs r0, 0x15
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x3
- bl MenuDrawTextWindow
- ldr r0, _0813EFA4
- movs r1, 0x16
- movs r2, 0x1
- movs r3, 0x38
- bl sub_8072BD8
- movs r0, 0x10
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- bl sub_813F0C8
- ldr r0, _0813EFA8
- bl SetMainCallback2
- ldr r0, _0813EFAC
- bl SetVBlankCallback
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813EF98: .4byte 0x02000008
-_0813EF9C: .4byte gWindowConfig_81E709C
-_0813EFA0: .4byte REG_BG0CNT
-_0813EFA4: .4byte gOtherText_Hoenn
-_0813EFA8: .4byte sub_813EFC4
-_0813EFAC: .4byte sub_813EFB0
- thumb_func_end sub_813EEE4
-
- thumb_func_start sub_813EFB0
-sub_813EFB0: @ 813EFB0
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_813EFB0
-
- thumb_func_start sub_813EFC4
-sub_813EFC4: @ 813EFC4
- push {lr}
- bl sub_813EFDC
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_813EFC4
-
- thumb_func_start sub_813EFDC
-sub_813EFDC: @ 813EFDC
- push {lr}
- sub sp, 0x4
- ldr r1, _0813EFF8
- ldr r2, _0813EFFC
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x4
- bhi _0813F0B8
- lsls r0, 2
- ldr r1, _0813F000
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813EFF8: .4byte 0x02000000
-_0813EFFC: .4byte 0x00000888
-_0813F000: .4byte _0813F004
- .align 2, 0
-_0813F004:
- .4byte _0813F018
- .4byte _0813F030
- .4byte _0813F04C
- .4byte _0813F078
- .4byte _0813F0A0
-_0813F018:
- movs r1, 0x80
- lsls r1, 19
- ldr r3, _0813F028
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, _0813F02C
- adds r1, r2, r0
- b _0813F08E
- .align 2, 0
-_0813F028: .4byte 0x00001541
-_0813F02C: .4byte 0x00000888
-_0813F030:
- ldr r0, _0813F044
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0813F0B8
- ldr r3, _0813F048
- adds r1, r2, r3
- b _0813F08E
- .align 2, 0
-_0813F044: .4byte gPaletteFade
-_0813F048: .4byte 0x00000888
-_0813F04C:
- bl sub_80FAB60
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0813F05E
- bl sub_813F0C8
- b _0813F0B8
-_0813F05E:
- cmp r0, 0x3
- blt _0813F0B8
- cmp r0, 0x5
- bgt _0813F0B8
- ldr r1, _0813F070
- ldr r0, _0813F074
- adds r1, r0
- b _0813F08E
- .align 2, 0
-_0813F070: .4byte 0x02000000
-_0813F074: .4byte 0x00000888
-_0813F078:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0813F098
- ldr r2, _0813F09C
- adds r1, r2
-_0813F08E:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _0813F0B8
- .align 2, 0
-_0813F098: .4byte 0x02000000
-_0813F09C: .4byte 0x00000888
-_0813F0A0:
- ldr r0, _0813F0C0
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0813F0B8
- bl sub_80FAB10
- ldr r0, _0813F0C4
- ldr r0, [r0]
- bl SetMainCallback2
-_0813F0B8:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_0813F0C0: .4byte gPaletteFade
-_0813F0C4: .4byte 0x02000000
- thumb_func_end sub_813EFDC
-
- thumb_func_start sub_813F0C8
-sub_813F0C8: @ 813F0C8
- push {lr}
- movs r0, 0x11
- movs r1, 0x11
- movs r2, 0x1C
- movs r3, 0x12
- bl MenuFillWindowRectWithBlankTile
- ldr r1, _0813F0F0
- ldrb r0, [r1, 0x1E]
- cmp r0, 0
- beq _0813F0EA
- adds r0, r1, 0
- adds r0, 0x8
- movs r1, 0x11
- movs r2, 0x11
- bl MenuPrint
-_0813F0EA:
- pop {r0}
- bx r0
- .align 2, 0
-_0813F0F0: .4byte 0x02000000
- thumb_func_end sub_813F0C8
-
- thumb_func_start unref_sub_813F0F4
-unref_sub_813F0F4: @ 813F0F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x10]
- ldr r0, _0813F2AC
- ldrb r3, [r0]
- ldr r0, _0813F2B0
- movs r1, 0
- strh r1, [r0]
- ldr r0, _0813F2B4
- strh r1, [r0]
- ldr r1, _0813F2B8
- ldr r2, _0813F2BC
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r4, _0813F2C0
- adds r0, r4, 0
- strh r0, [r1]
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r4, 0x80
- lsls r4, 8
- adds r1, r4, 0
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _0813F2C4
- ldr r2, _0813F2C8
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r4, 0x80
- lsls r4, 5
- adds r0, r4, 0
- strh r0, [r1]
- ldr r2, _0813F2CC
- ldrb r1, [r2]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrb r1, [r2, 0x1]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2, 0x1]
- ldrb r0, [r2, 0x1]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- mov r9, r0
- ands r0, r1
- movs r1, 0x4
- mov r8, r1
- mov r4, r8
- orrs r0, r4
- strb r0, [r2]
- ldr r0, _0813F2D0
- adds r3, r0
- ldrb r0, [r3]
- ldr r1, _0813F2D4
- mov r10, r1
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- add r4, r10
- ldrb r7, [r4, 0x6]
- ldrh r6, [r4, 0x38]
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _0813F2D8
- bl object_new_hidden_with_callback
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x14]
- ldr r0, _0813F2D8
- bl object_new_hidden_with_callback
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x18]
- ldrb r1, [r4, 0x5]
- mov r0, r9
- ands r0, r1
- mov r2, r8
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r5, r7, 4
- adds r5, r7
- lsls r5, 2
- add r5, r10
- ldrb r1, [r5, 0x5]
- mov r0, r9
- ands r0, r1
- orrs r0, r2
- strb r0, [r5, 0x5]
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- add r1, r10
- ldrb r2, [r1, 0x5]
- mov r0, r9
- ands r0, r2
- mov r2, r8
- orrs r0, r2
- strb r0, [r1, 0x5]
- ldr r0, [sp, 0x14]
- lsls r6, r0, 4
- adds r6, r0
- lsls r6, 2
- mov r1, r10
- adds r7, r6, r1
- adds r0, r7, 0
- adds r1, r4, 0
- movs r2, 0x44
- bl memcpy
- ldr r2, [sp, 0x18]
- lsls r4, r2, 4
- adds r4, r2
- lsls r4, 2
- adds r0, r4, 0
- add r0, r10
- mov r8, r0
- adds r1, r5, 0
- movs r2, 0x44
- bl memcpy
- ldrb r1, [r7, 0x1]
- mov r0, r9
- ands r0, r1
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r7, 0x1]
- mov r2, r8
- ldrb r0, [r2, 0x1]
- mov r2, r9
- ands r2, r0
- orrs r2, r1
- mov r0, r8
- strb r2, [r0, 0x1]
- movs r1, 0x1C
- add r10, r1
- add r6, r10
- ldr r2, _0813F2D8
- str r2, [r6]
- add r4, r10
- str r2, [r4]
- mov r0, sp
- bl sub_8078914
- ldr r1, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0xC]
- ldr r2, _0813F2DC
- add r0, sp, 0xC
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _0813F2E0
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _0813F2E4
- bl LZDecompressVram
- ldr r0, _0813F2E8
- ldr r1, [sp]
- bl LZDecompressVram
- ldr r0, _0813F2EC
- mov r1, sp
- ldrb r1, [r1, 0x8]
- lsls r1, 4
- movs r2, 0x20
- bl LoadCompressedPalette
- ldr r1, _0813F2F0
- ldrh r0, [r7, 0x20]
- negs r0, r0
- adds r0, 0x20
- strh r0, [r1]
- ldr r1, _0813F2F4
- ldrh r0, [r7, 0x22]
- negs r0, r0
- subs r0, 0x20
- strh r0, [r1]
- ldr r1, _0813F2F8
- ldr r4, [sp, 0x10]
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0xA0
- lsls r1, 2
- strh r1, [r0, 0xA]
- mov r1, sp
- ldrh r1, [r1, 0x14]
- strh r1, [r0, 0x8]
- mov r2, sp
- ldrh r2, [r2, 0x18]
- strh r2, [r0, 0xC]
- ldr r1, _0813F2FC
- 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
-_0813F2AC: .4byte gUnknown_0202F7C8
-_0813F2B0: .4byte gUnknown_030042C4
-_0813F2B4: .4byte gUnknown_03004240
-_0813F2B8: .4byte REG_WININ
-_0813F2BC: .4byte 0x00003f3f
-_0813F2C0: .4byte 0x00003f3d
-_0813F2C4: .4byte REG_BLDCNT
-_0813F2C8: .4byte 0x00003f42
-_0813F2CC: .4byte REG_BG1CNT
-_0813F2D0: .4byte gUnknown_03004340
-_0813F2D4: .4byte gSprites
-_0813F2D8: .4byte SpriteCallbackDummy
-_0813F2DC: .4byte 0x040000d4
-_0813F2E0: .4byte 0x85000400
-_0813F2E4: .4byte gUnknown_08D2EE48
-_0813F2E8: .4byte gUnknown_08D2EDFC
-_0813F2EC: .4byte gUnknown_08D2E150
-_0813F2F0: .4byte gUnknown_030042C0
-_0813F2F4: .4byte gUnknown_030041B4
-_0813F2F8: .4byte gTasks
-_0813F2FC: .4byte sub_813F300
- thumb_func_end unref_sub_813F0F4
-
- thumb_func_start sub_813F300
-sub_813F300: @ 813F300
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _0813F34C
- ldrb r0, [r0]
- mov r9, r0
- ldr r1, _0813F350
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0xA]
- ldrh r0, [r4, 0x22]
- adds r1, r0
- movs r3, 0
- strh r1, [r4, 0x22]
- ldr r2, _0813F354
- lsls r0, r1, 16
- lsrs r0, 24
- ldrh r5, [r2]
- adds r0, r5
- strh r0, [r2]
- movs r0, 0xFF
- ands r1, r0
- strh r1, [r4, 0x22]
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0813F394
- cmp r0, 0x1
- bgt _0813F358
- cmp r0, 0
- beq _0813F35E
- b _0813F4B2
- .align 2, 0
-_0813F34C: .4byte gUnknown_0202F7C8
-_0813F350: .4byte gTasks
-_0813F354: .4byte gUnknown_030041B4
-_0813F358:
- cmp r0, 0x2
- beq _0813F3AC
- b _0813F4B2
-_0813F35E:
- ldrh r0, [r4, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bgt _0813F36E
- b _0813F4B2
-_0813F36E:
- strh r3, [r4, 0x1E]
- ldrh r1, [r4, 0x20]
- adds r1, 0x1
- strh r1, [r4, 0x20]
- ldr r2, _0813F390
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r2]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x8
- beq _0813F38C
- b _0813F4B2
-_0813F38C:
- b _0813F3A4
- .align 2, 0
-_0813F390: .4byte REG_BLDALPHA
-_0813F394:
- ldrh r0, [r4, 0x1C]
- adds r0, 0x1
- strh r0, [r4, 0x1C]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- beq _0813F3A4
- b _0813F4B2
-_0813F3A4:
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
- b _0813F4B2
-_0813F3AC:
- ldrh r0, [r4, 0x1E]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _0813F4B2
- strh r3, [r4, 0x1E]
- ldrh r1, [r4, 0x20]
- subs r1, 0x1
- strh r1, [r4, 0x20]
- ldr r6, _0813F4C0
- movs r0, 0x10
- subs r0, r1
- lsls r0, 8
- orrs r1, r0
- strh r1, [r6]
- movs r3, 0x20
- ldrsh r5, [r4, r3]
- cmp r5, 0
- bne _0813F4B2
- movs r0, 0
- bl sub_8076464
- ldr r0, _0813F4C4
- strh r5, [r0]
- ldr r0, _0813F4C8
- strh r5, [r0]
- ldr r0, _0813F4CC
- ldr r2, _0813F4D0
- adds r1, r2, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl sub_8076BE0
- lsls r0, 24
- cmp r0, 0
- bne _0813F406
- ldr r2, _0813F4D4
- ldrb r1, [r2]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0813F406:
- 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, _0813F4D8
- strh r5, [r0]
- strh r5, [r6]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0813F4DC
- mov r8, r1
- add r0, r8
- bl DestroySprite
- movs r2, 0xC
- 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, _0813F4E0
- add r0, sp, 0xC
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _0813F4E4
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r2, _0813F4D4
- ldrb r1, [r2, 0x1]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x1]
- ldr r0, _0813F4E8
- add r0, r9
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r8
- ldrb r6, [r1, 0x6]
- ldrh r4, [r1, 0x38]
- lsls r4, 24
- lsrs r4, 24
- ldrb r3, [r1, 0x5]
- movs r2, 0xD
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- movs r5, 0x4
- orrs r0, r5
- strb r0, [r1, 0x5]
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- add r1, r8
- ldrb r3, [r1, 0x5]
- adds r0, r2, 0
- ands r0, r3
- orrs r0, r5
- strb r0, [r1, 0x5]
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- add r0, r8
- ldrb r1, [r0, 0x5]
- ands r2, r1
- orrs r2, r5
- strb r2, [r0, 0x5]
- adds r0, r7, 0
- bl move_anim_task_del
-_0813F4B2:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F4C0: .4byte REG_BLDALPHA
-_0813F4C4: .4byte gUnknown_030042C4
-_0813F4C8: .4byte gUnknown_03004240
-_0813F4CC: .4byte REG_WININ
-_0813F4D0: .4byte 0x00003f3f
-_0813F4D4: .4byte REG_BG1CNT
-_0813F4D8: .4byte REG_BLDCNT
-_0813F4DC: .4byte gSprites
-_0813F4E0: .4byte 0x040000d4
-_0813F4E4: .4byte 0x85000200
-_0813F4E8: .4byte gUnknown_03004340
- thumb_func_end sub_813F300
-
- thumb_func_start sub_813F4EC
-sub_813F4EC: @ 813F4EC
- 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
- str r0, [sp]
- ldr r1, _0813F5D0
- ldr r0, _0813F5D4
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- ldr r7, _0813F5D8
- lsls r6, r0, 4
- adds r6, r0
- lsls r6, 2
- adds r6, r7
- ldrb r0, [r6, 0x6]
- str r0, [sp, 0x4]
- ldrh r4, [r6, 0x38]
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0813F5DC
- bl AllocSpritePalette
- mov r8, r0
- mov r1, r8
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- ldr r0, _0813F5E0
- bl AllocSpritePalette
- mov r9, r0
- mov r2, r9
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- ldrb r0, [r6, 0x5]
- lsrs r0, 4
- lsls r0, 4
- movs r1, 0x80
- lsls r1, 1
- adds r3, r1, 0
- orrs r0, r3
- lsls r5, r4, 4
- adds r5, r4
- lsls r5, 2
- adds r5, r7
- ldrb r4, [r5, 0x5]
- lsrs r4, 4
- lsls r4, 4
- orrs r4, r3
- lsls r0, 1
- ldr r2, _0813F5E4
- mov r10, r2
- add r0, r10
- mov r1, r8
- lsls r1, 4
- mov r8, r1
- adds r1, r3, r1
- movs r2, 0x20
- str r3, [sp, 0x8]
- bl LoadPalette
- lsls r4, 1
- add r4, r10
- mov r2, r9
- lsls r2, 4
- mov r9, r2
- ldr r3, [sp, 0x8]
- add r3, r9
- adds r0, r4, 0
- adds r1, r3, 0
- movs r2, 0x20
- bl LoadPalette
- ldrb r1, [r6, 0x5]
- movs r2, 0xF
- adds r0, r2, 0
- ands r0, r1
- mov r3, r8
- orrs r0, r3
- strb r0, [r6, 0x5]
- ldr r0, [sp, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r3, [r1, 0x5]
- adds r0, r2, 0
- ands r0, r3
- mov r3, r8
- orrs r0, r3
- strb r0, [r1, 0x5]
- ldrb r0, [r5, 0x5]
- ands r2, r0
- mov r0, r9
- orrs r2, r0
- strb r2, [r5, 0x5]
- ldr r0, [sp]
- bl move_anim_task_del
- 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
-_0813F5D0: .4byte gUnknown_03004340
-_0813F5D4: .4byte gUnknown_0202F7C8
-_0813F5D8: .4byte gSprites
-_0813F5DC: .4byte 0x0000d709
-_0813F5E0: .4byte 0x0000d70a
-_0813F5E4: .4byte gPlttBufferUnfaded
- thumb_func_end sub_813F4EC
-
- thumb_func_start sub_813F5E8
-sub_813F5E8: @ 813F5E8
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- mov r8, r0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _0813F684
- ldr r0, _0813F688
- ldrb r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- ldr r1, _0813F68C
- mov r9, r1
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- add r5, r9
- ldrb r0, [r5, 0x6]
- mov r10, r0
- ldrh r6, [r5, 0x38]
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _0813F690
- bl FreeSpritePaletteByTag
- ldr r0, _0813F694
- bl FreeSpritePaletteByTag
- ldr r0, _0813F698
- bl IndexOfSpritePaletteTag
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0813F69C
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsls r4, 4
- ldrb r2, [r5, 0x5]
- movs r3, 0xF
- adds r1, r3, 0
- ands r1, r2
- orrs r1, r4
- strb r1, [r5, 0x5]
- mov r1, r10
- lsls r2, r1, 4
- add r2, r10
- lsls r2, 2
- add r2, r9
- ldrb r5, [r2, 0x5]
- adds r1, r3, 0
- ands r1, r5
- orrs r1, r4
- strb r1, [r2, 0x5]
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- add r1, r9
- lsrs r0, 20
- ldrb r2, [r1, 0x5]
- ands r3, r2
- orrs r3, r0
- strb r3, [r1, 0x5]
- mov r0, r8
- bl move_anim_task_del
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F684: .4byte gUnknown_03004340
-_0813F688: .4byte gUnknown_0202F7C8
-_0813F68C: .4byte gSprites
-_0813F690: .4byte 0x0000d709
-_0813F694: .4byte 0x0000d70a
-_0813F698: .4byte 0x0000d6ff
-_0813F69C: .4byte 0x0000d704
- thumb_func_end sub_813F5E8
-
- thumb_func_start sub_813F6A0
-sub_813F6A0: @ 813F6A0
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0813F6C0
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _0813F6C4
- ldrh r0, [r2]
- strh r0, [r1, 0x1C]
- ldrh r0, [r2, 0x2]
- strh r0, [r1, 0x1E]
- ldr r0, _0813F6C8
- str r0, [r1]
- bx lr
- .align 2, 0
-_0813F6C0: .4byte gTasks
-_0813F6C4: .4byte gUnknown_03004B00
-_0813F6C8: .4byte sub_813F6CC
- thumb_func_end sub_813F6A0
-
- thumb_func_start sub_813F6CC
-sub_813F6CC: @ 813F6CC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0813F718
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- movs r6, 0
- adds r1, r0, 0x1
- strh r1, [r4, 0x8]
- lsls r0, 16
- asrs r0, 16
- movs r2, 0x1E
- ldrsh r1, [r4, r2]
- cmp r0, r1
- blt _0813F78C
- strh r6, [r4, 0x8]
- ldr r0, _0813F71C
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r2, r0, 24
- movs r3, 0x1C
- ldrsh r0, [r4, r3]
- movs r1, 0x2
- cmp r0, 0
- bne _0813F70A
- movs r1, 0x6
-_0813F70A:
- movs r3, 0xA
- ldrsh r0, [r4, r3]
- cmp r0, 0
- beq _0813F720
- cmp r0, 0x1
- beq _0813F75C
- b _0813F78C
- .align 2, 0
-_0813F718: .4byte gTasks
-_0813F71C: .4byte 0x0000d709
-_0813F720:
- ldrh r0, [r4, 0xC]
- adds r0, 0x2
- strh r0, [r4, 0xC]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x10
- ble _0813F732
- movs r0, 0x10
- strh r0, [r4, 0xC]
-_0813F732:
- lsls r0, r2, 4
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2
- orrs r0, r1
- ldrb r2, [r4, 0xC]
- ldr r3, _0813F758
- movs r1, 0x1
- bl BlendPalette
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0x10
- bne _0813F78C
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _0813F78C
- .align 2, 0
-_0813F758: .4byte 0x00007f74
-_0813F75C:
- ldrh r0, [r4, 0xC]
- subs r0, 0x2
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bge _0813F76A
- strh r6, [r4, 0xC]
-_0813F76A:
- lsls r0, r2, 4
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2
- orrs r0, r1
- ldrb r2, [r4, 0xC]
- ldr r3, _0813F794
- movs r1, 0x1
- bl BlendPalette
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bne _0813F78C
- adds r0, r5, 0
- bl move_anim_task_del
-_0813F78C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F794: .4byte 0x00007f74
- thumb_func_end sub_813F6CC
-
- thumb_func_start sub_813F798
-sub_813F798: @ 813F798
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0813F7C4
- ldr r0, _0813F7C8
- ldrb r0, [r0]
- adds r0, r1
- ldrb r5, [r0]
- ldr r1, _0813F7CC
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0813F7E6
- cmp r0, 0x1
- bgt _0813F7D0
- cmp r0, 0
- beq _0813F7D6
- b _0813F838
- .align 2, 0
-_0813F7C4: .4byte gUnknown_02024BE0
-_0813F7C8: .4byte gUnknown_0202F7C8
-_0813F7CC: .4byte gTasks
-_0813F7D0:
- cmp r0, 0x2
- beq _0813F818
- b _0813F838
-_0813F7D6:
- adds r0, r5, 0
- movs r1, 0
- bl sub_8078E70
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0x1C]
- b _0813F80A
-_0813F7E6:
- ldrh r0, [r4, 0x1C]
- adds r0, 0x30
- strh r0, [r4, 0x1C]
- movs r0, 0x1C
- ldrsh r2, [r4, r0]
- adds r0, r5, 0
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- adds r0, r5, 0
- bl sub_8079A64
- movs r0, 0x1C
- ldrsh r1, [r4, r0]
- ldr r0, _0813F814
- cmp r1, r0
- ble _0813F838
-_0813F80A:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0813F838
- .align 2, 0
-_0813F814: .4byte 0x000002cf
-_0813F818:
- adds r0, r5, 0
- bl sub_8078F40
- ldr r1, _0813F840
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r0, r6, 0
- bl move_anim_task_del
-_0813F838:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F840: .4byte gSprites
- thumb_func_end sub_813F798
-
- thumb_func_start sub_813F844
-sub_813F844: @ 813F844
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0813F87C
- ldr r4, _0813F880
- ldrb r0, [r4]
- adds r1, r0, r1
- ldrb r1, [r1]
- mov r9, r1
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _0813F88C
- ldr r1, _0813F884
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0813F888
- b _0813F89C
- .align 2, 0
-_0813F87C: .4byte gUnknown_02024BE0
-_0813F880: .4byte gUnknown_0202F7C8
-_0813F884: .4byte gUnknown_02024A6A
-_0813F888: .4byte gPlayerParty
-_0813F88C:
- ldr r1, _0813F8CC
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0813F8D0
-_0813F89C:
- adds r0, r1
- movs r1, 0x26
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl ball_number_to_ball_processing_index
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r2, _0813F8D4
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r6, r0, r2
- movs r0, 0x8
- ldrsh r7, [r6, r0]
- cmp r7, 0
- beq _0813F8D8
- cmp r7, 0x1
- beq _0813F958
- b _0813F982
- .align 2, 0
-_0813F8CC: .4byte gUnknown_02024A6A
-_0813F8D0: .4byte gEnemyParty
-_0813F8D4: .4byte gTasks
-_0813F8D8:
- ldr r5, _0813F950
- ldrb r0, [r5]
- movs r1, 0
- bl sub_8077ABC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r5]
- movs r1, 0x1
- bl sub_8077ABC
- adds r1, r0, 0
- lsls r1, 24
- ldr r2, _0813F954
- mov r3, r9
- lsls r0, r3, 4
- add r0, r9
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0, 0x5]
- lsls r2, 28
- lsrs r2, 30
- adds r0, 0x43
- ldrb r3, [r0]
- movs r0, 0x80
- lsls r0, 22
- adds r1, r0
- lsrs r1, 24
- mov r0, r8
- str r0, [sp]
- adds r0, r4, 0
- bl sub_814086C
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x1C]
- str r7, [sp]
- str r7, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl sub_80791A8
- adds r2, r0, 0
- ldrb r1, [r5]
- movs r0, 0
- mov r3, r8
- bl sub_8141314
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x1E]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- b _0813F982
- .align 2, 0
-_0813F950: .4byte gUnknown_0202F7C8
-_0813F954: .4byte gSprites
-_0813F958:
- movs r1, 0x1C
- ldrsh r0, [r6, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- bne _0813F982
- movs r3, 0x1E
- ldrsh r0, [r6, r3]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- bne _0813F982
- adds r0, r5, 0
- bl move_anim_task_del
-_0813F982:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_813F844
-
- thumb_func_start sub_813F990
-sub_813F990: @ 813F990
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0813F9B4
- ldrh r0, [r0]
- bl ball_number_to_ball_processing_index
- lsls r0, 24
- lsrs r0, 24
- bl sub_80478DC
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F9B4: .4byte gUnknown_02024C04
- thumb_func_end sub_813F990
-
- thumb_func_start sub_813F9B8
-sub_813F9B8: @ 813F9B8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0813F9DC
- ldrh r0, [r0]
- bl ball_number_to_ball_processing_index
- lsls r0, 24
- lsrs r0, 24
- bl sub_804794C
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813F9DC: .4byte gUnknown_02024C04
- thumb_func_end sub_813F9B8
-
- thumb_func_start sub_813F9E0
-sub_813F9E0: @ 813F9E0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0813F9F4
- ldrb r0, [r0, 0x8]
- cmp r0, 0x5
- bne _0813FA00
- ldr r1, _0813F9F8
- ldr r0, _0813F9FC
- b _0813FA04
- .align 2, 0
-_0813F9F4: .4byte 0x02017840
-_0813F9F8: .4byte gUnknown_03004B00
-_0813F9FC: .4byte 0x0000ffff
-_0813FA00:
- ldr r1, _0813FA10
- movs r0, 0
-_0813FA04:
- strh r0, [r1, 0xE]
- adds r0, r2, 0
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_0813FA10: .4byte gUnknown_03004B00
- thumb_func_end sub_813F9E0
-
- thumb_func_start ball_number_to_ball_processing_index
-ball_number_to_ball_processing_index: @ 813FA14
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- subs r0, 0x1
- cmp r0, 0xB
- bhi _0813FA8C
- lsls r0, 2
- ldr r1, _0813FA2C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0813FA2C: .4byte _0813FA30
- .align 2, 0
-_0813FA30:
- .4byte _0813FA60
- .4byte _0813FA64
- .4byte _0813FA68
- .4byte _0813FA8C
- .4byte _0813FA6C
- .4byte _0813FA70
- .4byte _0813FA74
- .4byte _0813FA78
- .4byte _0813FA7C
- .4byte _0813FA80
- .4byte _0813FA84
- .4byte _0813FA88
-_0813FA60:
- movs r0, 0x4
- b _0813FA8E
-_0813FA64:
- movs r0, 0x3
- b _0813FA8E
-_0813FA68:
- movs r0, 0x1
- b _0813FA8E
-_0813FA6C:
- movs r0, 0x2
- b _0813FA8E
-_0813FA70:
- movs r0, 0x5
- b _0813FA8E
-_0813FA74:
- movs r0, 0x6
- b _0813FA8E
-_0813FA78:
- movs r0, 0x7
- b _0813FA8E
-_0813FA7C:
- movs r0, 0x8
- b _0813FA8E
-_0813FA80:
- movs r0, 0x9
- b _0813FA8E
-_0813FA84:
- movs r0, 0xA
- b _0813FA8E
-_0813FA88:
- movs r0, 0xB
- b _0813FA8E
-_0813FA8C:
- movs r0, 0
-_0813FA8E:
- pop {r1}
- bx r1
- thumb_func_end ball_number_to_ball_processing_index
-
- thumb_func_start sub_813FA94
-sub_813FA94: @ 813FA94
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- mov r10, r0
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r0, _0813FB58
- ldrh r0, [r0]
- bl ball_number_to_ball_processing_index
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- ldr r1, _0813FB5C
- adds r0, r1
- movs r1, 0x20
- movs r2, 0x50
- movs r3, 0x1D
- bl CreateSprite
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _0813FB60
- mov r9, r1
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- adds r6, r4, r1
- movs r0, 0x22
- strh r0, [r6, 0x2E]
- ldr r2, _0813FB64
- mov r8, r2
- ldrb r0, [r2]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x30]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x10
- strh r0, [r6, 0x32]
- mov r0, r9
- adds r0, 0x1C
- adds r4, r0
- ldr r0, _0813FB68
- str r0, [r4]
- ldr r3, _0813FB6C
- ldr r1, _0813FB70
- mov r2, r8
- ldrb r0, [r2]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r0, 0x3E
- ldrb r1, [r0]
- lsls r1, 29
- lsrs r1, 31
- lsls r1, 1
- ldrb r2, [r3, 0x9]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x9]
- ldr r1, _0813FB74
- mov r2, r10
- lsls r0, r2, 2
- add r0, r10
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x8]
- ldr r1, _0813FB78
- str r1, [r0]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813FB58: .4byte gUnknown_02024C04
-_0813FB5C: .4byte gSpriteTemplate_820AAB4
-_0813FB60: .4byte gSprites
-_0813FB64: .4byte gUnknown_0202F7C9
-_0813FB68: .4byte sub_813FD90
-_0813FB6C: .4byte 0x02017840
-_0813FB70: .4byte gUnknown_02024BE0
-_0813FB74: .4byte gTasks
-_0813FB78: .4byte sub_813FB7C
- thumb_func_end sub_813FA94
-
- thumb_func_start sub_813FB7C
-sub_813FB7C: @ 813FB7C
- push {lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _0813FBAC
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x8]
- ldr r2, _0813FBB0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x2E]
- ldr r0, _0813FBB4
- cmp r1, r0
- bne _0813FBA6
- adds r0, r3, 0
- bl move_anim_task_del
-_0813FBA6:
- pop {r0}
- bx r0
- .align 2, 0
-_0813FBAC: .4byte gTasks
-_0813FBB0: .4byte gSprites
-_0813FBB4: .4byte 0x0000ffff
- thumb_func_end sub_813FB7C
-
- thumb_func_start sub_813FBB8
-sub_813FBB8: @ 813FBB8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _0813FBD8
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _0813FBDC
- movs r6, 0x20
- movs r5, 0xB
- b _0813FBE0
- .align 2, 0
-_0813FBD8: .4byte gUnknown_020239F8
-_0813FBDC:
- movs r6, 0x17
- movs r5, 0x5
-_0813FBE0:
- ldr r0, _0813FC9C
- ldrh r0, [r0]
- bl ball_number_to_ball_processing_index
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- bl sub_8079E90
- adds r3, r0, 0
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r1, _0813FCA0
- adds r0, r1
- adds r1, r6, 0
- adds r1, 0x20
- movs r2, 0x50
- orrs r5, r2
- adds r2, r5, 0
- bl CreateSprite
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0813FCA4
- mov r9, r0
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- adds r6, r4, r0
- movs r0, 0x22
- strh r0, [r6, 0x2E]
- ldr r1, _0813FCA8
- mov r8, r1
- ldrb r0, [r1]
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6, 0x30]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x10
- strh r0, [r6, 0x32]
- mov r0, r9
- adds r0, 0x1C
- adds r4, r0
- ldr r0, _0813FCAC
- str r0, [r4]
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _0813FCB0
- lsls r0, 24
- lsrs r0, 24
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r1, _0813FCB4
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x8]
- ldr r1, _0813FCB8
- str r1, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0813FC9C: .4byte gUnknown_02024C04
-_0813FCA0: .4byte gSpriteTemplate_820AAB4
-_0813FCA4: .4byte gSprites
-_0813FCA8: .4byte gUnknown_0202F7C9
-_0813FCAC: .4byte SpriteCallbackDummy
-_0813FCB0: .4byte gUnknown_02024BE0
-_0813FCB4: .4byte gTasks
-_0813FCB8: .4byte sub_813FCBC
- thumb_func_end sub_813FBB8
-
- thumb_func_start sub_813FCBC
-sub_813FCBC: @ 813FCBC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _0813FD1C
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _0813FD20
- lsls r0, 24
- lsrs r0, 24
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0813FD16
- movs r0, 0x3D
- movs r1, 0
- bl PlaySE12WithPanning
- ldr r0, _0813FD24
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r6, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _0813FD28
- str r1, [r0]
- ldr r0, _0813FD2C
- movs r1, 0xA
- bl CreateTask
- ldr r0, _0813FD30
- str r0, [r4]
-_0813FD16:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813FD1C: .4byte gSprites
-_0813FD20: .4byte gUnknown_02024BE0
-_0813FD24: .4byte gTasks
-_0813FD28: .4byte sub_813FD90
-_0813FD2C: .4byte sub_813FD34
-_0813FD30: .4byte sub_813FB7C
- thumb_func_end sub_813FCBC
-
- thumb_func_start sub_813FD34
-sub_813FD34: @ 813FD34
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _0813FD88
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r4, _0813FD8C
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 27
- cmp r0, 0
- bge _0813FD80
- movs r0, 0
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0
- bl StartSpriteAnim
- adds r0, r5, 0
- bl DestroyTask
-_0813FD80:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0813FD88: .4byte gSprites
-_0813FD8C: .4byte gUnknown_02024BE0
- thumb_func_end sub_813FD34
-
- thumb_func_start sub_813FD90
-sub_813FD90: @ 813FD90
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- ldrh r2, [r4, 0x32]
- ldrh r0, [r4, 0x20]
- strh r0, [r4, 0x30]
- strh r1, [r4, 0x32]
- ldrh r0, [r4, 0x22]
- strh r0, [r4, 0x34]
- strh r2, [r4, 0x36]
- ldr r0, _0813FDB8
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- ldr r0, _0813FDBC
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813FDB8: .4byte 0x0000ffd8
-_0813FDBC: .4byte sub_813FDC0
- thumb_func_end sub_813FD90
-
- thumb_func_start sub_813FDC0
-sub_813FDC0: @ 813FDC0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _0813FE5A
- ldr r0, _0813FDE0
- ldrb r0, [r0, 0x8]
- cmp r0, 0x5
- bne _0813FDE8
- ldr r0, _0813FDE4
- str r0, [r4, 0x1C]
- b _0813FE5A
- .align 2, 0
-_0813FDE0: .4byte 0x02017840
-_0813FDE4: .4byte sub_81407B8
-_0813FDE8:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnim
- 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, 0x24]
- strh r1, [r4, 0x26]
- adds r1, r4, 0
- adds r1, 0x2E
- movs r2, 0
- adds r0, r4, 0
- adds r0, 0x3C
-_0813FE10:
- strh r2, [r0]
- subs r0, 0x2
- cmp r0, r1
- bge _0813FE10
- movs r0, 0
- strh r0, [r4, 0x38]
- ldr r0, _0813FE64
- str r0, [r4, 0x1C]
- ldr r0, _0813FE68
- ldrh r0, [r0]
- bl ball_number_to_ball_processing_index
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xB
- bgt _0813FE5A
- cmp r5, 0
- blt _0813FE5A
- ldrh r0, [r4, 0x20]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x22]
- subs r1, 0x5
- lsls r1, 24
- lsrs r1, 24
- str r5, [sp]
- movs r2, 0x1
- movs r3, 0x1C
- bl sub_814086C
- ldr r0, _0813FE6C
- ldrb r1, [r0]
- movs r0, 0
- movs r2, 0xE
- adds r3, r5, 0
- bl sub_8141314
-_0813FE5A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0813FE64: .4byte sub_813FE70
-_0813FE68: .4byte gUnknown_02024C04
-_0813FE6C: .4byte gUnknown_0202F7C9
- thumb_func_end sub_813FDC0
-
- thumb_func_start sub_813FE70
-sub_813FE70: @ 813FE70
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _0813FEAC
- ldr r0, _0813FEB4
- movs r1, 0x32
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x38]
- ldr r0, _0813FEB8
- str r0, [r4, 0x1C]
- ldr r2, _0813FEBC
- ldr r1, _0813FEC0
- ldr r0, _0813FEC4
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x30]
-_0813FEAC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0813FEB4: .4byte TaskDummy
-_0813FEB8: .4byte sub_813FEC8
-_0813FEBC: .4byte gSprites
-_0813FEC0: .4byte gUnknown_02024BE0
-_0813FEC4: .4byte gUnknown_0202F7C9
- thumb_func_end sub_813FE70
-
- thumb_func_start sub_813FEC8
-sub_813FEC8: @ 813FEC8
- push {r4-r7,lr}
- adds r7, r0, 0
- ldr r1, _0813FF0C
- ldr r0, _0813FF10
- ldrb r0, [r0]
- adds r0, r1
- ldrb r4, [r0]
- ldrh r0, [r7, 0x38]
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0813FF14
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- strh r0, [r5, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- bne _0813FEFA
- movs r0, 0x3C
- bl PlaySE
-_0813FEFA:
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _0813FF70
- cmp r0, 0x1
- bgt _0813FF18
- cmp r0, 0
- beq _0813FF1E
- b _0813FFDC
- .align 2, 0
-_0813FF0C: .4byte gUnknown_02024BE0
-_0813FF10: .4byte gUnknown_0202F7C9
-_0813FF14: .4byte gTasks
-_0813FF18:
- cmp r0, 0x2
- beq _0813FFB4
- b _0813FFDC
-_0813FF1E:
- adds r0, r4, 0
- movs r1, 0
- bl sub_8078E70
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r5, 0x1C]
- ldr r1, _0813FF60
- movs r0, 0x1C
- str r0, [r1]
- ldr r2, _0813FF64
- ldr r1, _0813FF68
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0, 0x26]
- ldrh r0, [r0, 0x22]
- adds r1, r0
- ldrh r0, [r7, 0x26]
- ldrh r7, [r7, 0x22]
- adds r0, r7
- subs r1, r0
- strh r1, [r2]
- ldr r4, _0813FF6C
- ldrh r0, [r2]
- lsls r0, 8
- movs r1, 0x1C
- bl __udivsi3
- strh r0, [r4]
- strh r0, [r5, 0xC]
- b _0813FFCE
- .align 2, 0
-_0813FF60: .4byte gUnknown_03005F0C
-_0813FF64: .4byte gUnknown_03005F14
-_0813FF68: .4byte gSprites
-_0813FF6C: .4byte gUnknown_03005F10
-_0813FF70:
- ldrh r0, [r5, 0x1C]
- adds r0, 0x20
- strh r0, [r5, 0x1C]
- movs r0, 0x1C
- ldrsh r2, [r5, r0]
- adds r0, r4, 0
- adds r1, r2, 0
- movs r3, 0
- bl obj_id_set_rotscale
- ldrh r0, [r5, 0xC]
- ldrh r1, [r5, 0xE]
- adds r0, r1
- strh r0, [r5, 0xE]
- ldr r0, _0813FFAC
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- negs r0, r0
- asrs r0, 8
- strh r0, [r1, 0x26]
- movs r0, 0x1C
- ldrsh r1, [r5, r0]
- ldr r0, _0813FFB0
- cmp r1, r0
- ble _08140004
- b _0813FFCE
- .align 2, 0
-_0813FFAC: .4byte gSprites
-_0813FFB0: .4byte 0x0000047f
-_0813FFB4:
- adds r0, r4, 0
- bl sub_8078F40
- ldr r1, _0813FFD8
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_0813FFCE:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _08140004
- .align 2, 0
-_0813FFD8: .4byte gSprites
-_0813FFDC:
- ldr r0, _0814000C
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0xA
- ble _08140004
- adds r0, r6, 0
- bl DestroyTask
- adds r0, r7, 0
- movs r1, 0x2
- bl StartSpriteAnim
- movs r0, 0
- strh r0, [r7, 0x38]
- ldr r0, _08140010
- str r0, [r7, 0x1C]
-_08140004:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814000C: .4byte gTasks
-_08140010: .4byte sub_8140014
- thumb_func_end sub_813FEC8
-
- thumb_func_start sub_8140014
-sub_8140014: @ 8140014
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0814004E
- movs r1, 0
- strh r1, [r4, 0x34]
- movs r0, 0x20
- strh r0, [r4, 0x36]
- strh r1, [r4, 0x38]
- movs r0, 0
- movs r1, 0x20
- bl Cos
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- movs r0, 0
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- ldr r0, _08140054
- str r0, [r4, 0x1C]
-_0814004E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08140054: .4byte sub_8140058
- thumb_func_end sub_8140014
-
- thumb_func_start sub_8140058
-sub_8140058: @ 8140058
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r5, 0
- ldrh r0, [r4, 0x34]
- movs r1, 0xFF
- ands r1, r0
- cmp r1, 0
- beq _0814006E
- cmp r1, 0x1
- beq _081400E2
- b _0814010E
-_0814006E:
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r1, [r4, 0x38]
- adds r1, 0x4
- ldrh r2, [r4, 0x34]
- lsls r0, r2, 16
- asrs r0, 24
- adds r1, r0
- strh r1, [r4, 0x38]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x3F
- ble _0814010E
- ldrh r0, [r4, 0x36]
- subs r0, 0xA
- strh r0, [r4, 0x36]
- ldr r1, _081400B8
- adds r0, r2, r1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 24
- cmp r0, 0x4
- bne _081400AA
- movs r5, 0x1
-_081400AA:
- cmp r0, 0x2
- beq _081400CA
- cmp r0, 0x2
- bgt _081400BC
- cmp r0, 0x1
- beq _081400C2
- b _081400DA
- .align 2, 0
-_081400B8: .4byte 0x00000101
-_081400BC:
- cmp r0, 0x3
- beq _081400D2
- b _081400DA
-_081400C2:
- movs r0, 0x38
- bl PlaySE
- b _0814010E
-_081400CA:
- movs r0, 0x39
- bl PlaySE
- b _0814010E
-_081400D2:
- movs r0, 0x3A
- bl PlaySE
- b _0814010E
-_081400DA:
- movs r0, 0x3B
- bl PlaySE
- b _0814010E
-_081400E2:
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- bl Cos
- negs r0, r0
- strh r0, [r4, 0x26]
- ldrh r1, [r4, 0x38]
- subs r1, 0x4
- ldrh r2, [r4, 0x34]
- lsls r0, r2, 16
- asrs r0, 24
- subs r1, r0
- strh r1, [r4, 0x38]
- lsls r1, 16
- cmp r1, 0
- bgt _0814010E
- strh r5, [r4, 0x38]
- ldr r0, _08140138
- ands r0, r2
- strh r0, [r4, 0x34]
-_0814010E:
- cmp r5, 0
- beq _0814014E
- movs r5, 0
- strh r5, [r4, 0x34]
- movs r0, 0x40
- movs r1, 0x20
- bl Cos
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- strh r5, [r4, 0x26]
- ldr r0, _0814013C
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08140144
- strh r5, [r4, 0x38]
- ldr r0, _08140140
- str r0, [r4, 0x1C]
- b _0814014E
- .align 2, 0
-_08140138: .4byte 0xffffff00
-_0814013C: .4byte 0x02017840
-_08140140: .4byte sub_8140410
-_08140144:
- ldr r0, _08140154
- str r0, [r4, 0x1C]
- movs r0, 0x1
- strh r0, [r4, 0x36]
- strh r5, [r4, 0x38]
-_0814014E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08140154: .4byte sub_8140158
- thumb_func_end sub_8140058
-
- thumb_func_start sub_8140158
-sub_8140158: @ 8140158
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- movs r5, 0
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _08140190
- strh r5, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldr r0, _08140198
- strh r5, [r0, 0xC]
- ldr r0, _0814019C
- str r0, [r4, 0x1C]
- movs r0, 0x17
- bl PlaySE
-_08140190:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08140198: .4byte 0x02017840
-_0814019C: .4byte sub_81401A0
- thumb_func_end sub_8140158
-
- thumb_func_start sub_81401A0
-sub_81401A0: @ 81401A0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x34]
- movs r1, 0xFF
- ands r1, r0
- cmp r1, 0x6
- bls _081401B0
- b _081403C4
-_081401B0:
- lsls r0, r1, 2
- ldr r1, _081401BC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081401BC: .4byte _081401C0
- .align 2, 0
-_081401C0:
- .4byte _081401DC
- .4byte _08140226
- .4byte _0814026C
- .4byte _081402C0
- .4byte _08140310
- .4byte _08140368
- .4byte _081403C4
-_081401DC:
- ldr r0, _081401F8
- ldrh r2, [r0, 0xC]
- movs r3, 0xC
- ldrsh r1, [r0, r3]
- adds r5, r0, 0
- cmp r1, 0xFF
- ble _081401FC
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r0, 0xFF
- ands r0, r2
- b _08140200
- .align 2, 0
-_081401F8: .4byte 0x02017840
-_081401FC:
- adds r0, r2, 0
- adds r0, 0xB0
-_08140200:
- strh r0, [r5, 0xC]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r4, 0x38]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x38]
- adds r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xE
- bhi _08140224
- b _0814040A
-_08140224:
- b _081402B4
-_08140226:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- bne _081402CC
- movs r0, 0
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x36]
- negs r0, r0
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- movs r3, 0x36
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bge _08140262
- adds r0, r4, 0
- movs r1, 0x2
- bl ChangeSpriteAffineAnim
- b _0814040A
-_08140262:
- adds r0, r4, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
- b _0814040A
-_0814026C:
- ldr r0, _08140288
- ldrh r2, [r0, 0xC]
- movs r3, 0xC
- ldrsh r1, [r0, r3]
- adds r5, r0, 0
- cmp r1, 0xFF
- ble _0814028C
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r0, 0xFF
- ands r0, r2
- b _08140290
- .align 2, 0
-_08140288: .4byte 0x02017840
-_0814028C:
- adds r0, r2, 0
- adds r0, 0xB0
-_08140290:
- strh r0, [r5, 0xC]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r4, 0x38]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x38]
- adds r0, 0xC
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x18
- bhi _081402B4
- b _0814040A
-_081402B4:
- strh r3, [r5, 0xC]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- strh r3, [r4, 0x38]
- b _0814040A
-_081402C0:
- ldrh r0, [r4, 0x38]
- adds r1, r0, 0x1
- strh r1, [r4, 0x38]
- lsls r0, 16
- cmp r0, 0
- bge _081402DA
-_081402CC:
- adds r0, r4, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- b _0814040A
-_081402DA:
- movs r0, 0
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x36]
- negs r0, r0
- strh r0, [r4, 0x36]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- movs r3, 0x36
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bge _08140308
- adds r0, r4, 0
- movs r1, 0x2
- bl ChangeSpriteAffineAnim
- b _08140310
-_08140308:
- adds r0, r4, 0
- movs r1, 0x1
- bl ChangeSpriteAffineAnim
-_08140310:
- ldr r0, _0814032C
- ldrh r2, [r0, 0xC]
- movs r3, 0xC
- ldrsh r1, [r0, r3]
- adds r5, r0, 0
- cmp r1, 0xFF
- ble _08140330
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x24]
- adds r0, r1
- strh r0, [r4, 0x24]
- movs r0, 0xFF
- ands r0, r2
- b _08140334
- .align 2, 0
-_0814032C: .4byte 0x02017840
-_08140330:
- adds r0, r2, 0
- adds r0, 0xB0
-_08140334:
- strh r0, [r5, 0xC]
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- movs r3, 0
- strh r0, [r4, 0x38]
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x38]
- adds r0, 0x4
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x8
- bls _0814040A
- strh r3, [r5, 0xC]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- strh r3, [r4, 0x38]
- ldrh r0, [r4, 0x36]
- negs r0, r0
- strh r0, [r4, 0x36]
- b _0814040A
-_08140368:
- movs r3, 0x80
- lsls r3, 1
- adds r0, r3, 0
- ldrh r1, [r4, 0x34]
- adds r0, r1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r1, r0, 24
- ldr r0, _08140394
- ldrb r0, [r0, 0x8]
- cmp r1, r0
- bne _0814039C
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _08140398
- str r0, [r4, 0x1C]
- b _0814040A
- .align 2, 0
-_08140394: .4byte 0x02017840
-_08140398: .4byte sub_8140410
-_0814039C:
- cmp r0, 0x4
- bne _081403B0
- cmp r1, 0x3
- bne _081403B0
- ldr r0, _081403AC
- str r0, [r4, 0x1C]
- b _081403B6
- .align 2, 0
-_081403AC: .4byte sub_8140434
-_081403B0:
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
-_081403B6:
- adds r2, r4, 0
- adds r2, 0x2C
- ldrb r0, [r2]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2]
- b _0814040A
-_081403C4:
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _0814040A
- movs r0, 0
- strh r0, [r4, 0x38]
- ldrh r1, [r4, 0x34]
- ldr r0, _081403F8
- ands r0, r1
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAffineAnim
- movs r3, 0x36
- ldrsh r0, [r4, r3]
- cmp r0, 0
- bge _081403FC
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAffineAnim
- b _08140404
- .align 2, 0
-_081403F8: .4byte 0xffffff00
-_081403FC:
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAffineAnim
-_08140404:
- movs r0, 0x17
- bl PlaySE
-_0814040A:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81401A0
-
- thumb_func_start sub_8140410
-sub_8140410: @ 8140410
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x38]
- adds r0, 0x1
- strh r0, [r1, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1F
- bne _0814042A
- movs r0, 0
- strh r0, [r1, 0x38]
- ldr r0, _08140430
- str r0, [r1, 0x1C]
-_0814042A:
- pop {r0}
- bx r0
- .align 2, 0
-_08140430: .4byte sub_81405F4
- thumb_func_end sub_8140410
-
- thumb_func_start sub_8140434
-sub_8140434: @ 8140434
- adds r3, r0, 0
- adds r3, 0x2C
- ldrb r1, [r3]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r3]
- ldr r1, _08140450
- str r1, [r0, 0x1C]
- movs r1, 0
- strh r1, [r0, 0x34]
- strh r1, [r0, 0x36]
- strh r1, [r0, 0x38]
- bx lr
- .align 2, 0
-_08140450: .4byte sub_8140454
- thumb_func_end sub_8140434
-
- thumb_func_start sub_8140454
-sub_8140454: @ 8140454
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r7, _08140484
- ldrh r0, [r6, 0x36]
- adds r0, 0x1
- strh r0, [r6, 0x36]
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0x28
- beq _081404CC
- cmp r1, 0x5F
- bne _08140490
- ldr r0, _08140488
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- bl sub_8043EB4
- bl m4aMPlayAllStop
- ldr r0, _0814048C
- bl PlaySE
- b _081404CC
- .align 2, 0
-_08140484: .4byte gUnknown_0202F7C9
-_08140488: .4byte gUnknown_02024E6D
-_0814048C: .4byte 0x00000173
-_08140490:
- ldr r0, _081404D4
- cmp r1, r0
- bne _081404CC
- ldr r5, _081404D8
- ldr r4, _081404DC
- ldrb r0, [r7]
- adds r0, r4
- ldrb r1, [r0]
- 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 r0, [r7]
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- movs r0, 0
- strh r0, [r6, 0x2E]
- ldr r0, _081404E0
- str r0, [r6, 0x1C]
-_081404CC:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081404D4: .4byte 0x0000013b
-_081404D8: .4byte gSprites
-_081404DC: .4byte gUnknown_02024BE0
-_081404E0: .4byte sub_81404E4
- thumb_func_end sub_8140454
-
- thumb_func_start sub_81404E4
-sub_81404E4: @ 81404E4
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08140550
- cmp r0, 0x1
- bgt _081404FC
- cmp r0, 0
- beq _08140502
- b _08140594
-_081404FC:
- cmp r0, 0x2
- beq _08140580
- b _08140594
-_08140502:
- strh r0, [r4, 0x30]
- strh r0, [r4, 0x32]
- ldrb r1, [r4, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldr r1, _08140548
- movs r2, 0xFD
- lsls r2, 6
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x10
- strh r0, [r1]
- ldr r0, [r4, 0x14]
- ldrh r0, [r0, 0x2]
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r0, 24
- adds r0, 0x10
- movs r1, 0x1
- lsls r1, r0
- ldr r0, _0814054C
- str r0, [sp]
- adds r0, r1, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _0814058C
- .align 2, 0
-_08140548: .4byte REG_BLDCNT
-_0814054C: .4byte 0x00007fff
-_08140550:
- ldrh r0, [r4, 0x30]
- adds r1, r0, 0x1
- strh r1, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- ble _081405B2
- movs r0, 0
- strh r0, [r4, 0x30]
- ldrh r1, [r4, 0x32]
- adds r1, 0x1
- strh r1, [r4, 0x32]
- ldr r3, _0814057C
- lsls r2, r1, 8
- movs r0, 0x10
- subs r0, r1
- orrs r2, r0
- strh r2, [r3]
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _081405B2
- b _0814058C
- .align 2, 0
-_0814057C: .4byte REG_BLDALPHA
-_08140580:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_0814058C:
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- b _081405B2
-_08140594:
- ldr r0, _081405BC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _081405B2
- ldr r0, _081405C0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- strh r1, [r4, 0x2E]
- ldr r0, _081405C4
- str r0, [r4, 0x1C]
-_081405B2:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081405BC: .4byte gPaletteFade
-_081405C0: .4byte REG_BLDCNT
-_081405C4: .4byte sub_81405C8
- thumb_func_end sub_81404E4
-
- thumb_func_start sub_81405C8
-sub_81405C8: @ 81405C8
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bne _081405E0
- ldr r0, _081405DC
- strh r0, [r4, 0x2E]
- b _081405EC
- .align 2, 0
-_081405DC: .4byte 0x0000ffff
-_081405E0:
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_081405EC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81405C8
-
- thumb_func_start sub_81405F4
-sub_81405F4: @ 81405F4
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- movs r1, 0x1
- bl StartSpriteAnim
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- ldr r0, _081406A8
- str r0, [r4, 0x1C]
- ldr r0, _081406AC
- ldrh r0, [r0]
- bl ball_number_to_ball_processing_index
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xB
- bgt _08140646
- cmp r5, 0
- blt _08140646
- ldrh r0, [r4, 0x20]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x22]
- subs r1, 0x5
- lsls r1, 24
- lsrs r1, 24
- str r5, [sp]
- movs r2, 0x1
- movs r3, 0x1C
- bl sub_814086C
- ldr r0, _081406B0
- ldrb r1, [r0]
- movs r0, 0x1
- movs r2, 0xE
- adds r3, r5, 0
- bl sub_8141314
-_08140646:
- ldr r6, _081406B4
- ldr r5, _081406B8
- ldr r4, _081406B0
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x1
- bl StartSpriteAffineAnim
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl AnimateSprite
- ldrb r0, [r4]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x80
- lsls r1, 5
- strh r1, [r0, 0x30]
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081406A8: .4byte sub_81406BC
-_081406AC: .4byte gUnknown_02024C04
-_081406B0: .4byte gUnknown_0202F7C9
-_081406B4: .4byte gSprites
-_081406B8: .4byte gUnknown_02024BE0
- thumb_func_end sub_81405F4
-
- thumb_func_start sub_81406BC
-sub_81406BC: @ 81406BC
- push {r4-r7,lr}
- adds r7, r0, 0
- movs r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081406DA
- adds r2, r7, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_081406DA:
- ldr r4, _08140708
- ldr r3, _0814070C
- ldr r2, _08140710
- ldrb r0, [r2]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r4
- adds r0, r1, 0
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _08140714
- adds r0, r1, 0
- movs r1, 0
- bl StartSpriteAffineAnim
- movs r5, 0x1
- b _08140734
- .align 2, 0
-_08140708: .4byte gSprites
-_0814070C: .4byte gUnknown_02024BE0
-_08140710: .4byte gUnknown_0202F7C9
-_08140714:
- ldr r6, _0814079C
- adds r0, r6, 0
- ldrh r6, [r1, 0x30]
- adds r0, r6
- strh r0, [r1, 0x30]
- ldrb r0, [r2]
- adds r0, r3
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 24
- strh r0, [r1, 0x26]
-_08140734:
- adds r0, r7, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08140796
- cmp r5, 0
- beq _08140796
- ldr r4, _081407A0
- ldr r3, _081407A4
- ldr r2, _081407A8
- ldrb r0, [r2]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r6, 0
- movs r5, 0
- strh r5, [r0, 0x26]
- ldrb r0, [r2]
- adds r0, r3
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r4
- ldr r0, _081407AC
- ldrb r1, [r0, 0x9]
- lsls r1, 30
- adds r2, 0x3E
- lsrs r1, 31
- lsls r1, 2
- ldrb r3, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- strh r5, [r7, 0x2E]
- ldr r0, _081407B0
- str r0, [r7, 0x1C]
- ldr r0, _081407B4
- strb r6, [r0]
- movs r0, 0x1
- bl sub_8043EB4
-_08140796:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814079C: .4byte 0xfffffee0
-_081407A0: .4byte gSprites
-_081407A4: .4byte gUnknown_02024BE0
-_081407A8: .4byte gUnknown_0202F7C9
-_081407AC: .4byte 0x02017840
-_081407B0: .4byte sub_81405C8
-_081407B4: .4byte gUnknown_02024E6D
- thumb_func_end sub_81406BC
-
- thumb_func_start sub_81407B8
-sub_81407B8: @ 81407B8
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x24]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- movs r1, 0
- strh r0, [r2, 0x20]
- ldrh r0, [r2, 0x26]
- ldrh r3, [r2, 0x22]
- adds r0, r3
- strh r0, [r2, 0x22]
- strh r1, [r2, 0x26]
- strh r1, [r2, 0x24]
- ldr r4, _081407F0
- movs r3, 0
- movs r1, 0x5
- adds r0, r2, 0
- adds r0, 0x38
-_081407DC:
- strh r3, [r0]
- subs r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _081407DC
- str r4, [r2, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081407F0: .4byte sub_81407F4
- thumb_func_end sub_81407B8
-
- thumb_func_start sub_81407F4
-sub_81407F4: @ 81407F4
- push {r4,lr}
- adds r4, r0, 0
- movs r0, 0x80
- lsls r0, 4
- adds r2, r0, 0
- ldrh r1, [r4, 0x2E]
- adds r2, r1
- movs r0, 0xD0
- lsls r0, 3
- adds r3, r0, 0
- ldrh r1, [r4, 0x30]
- adds r3, r1
- lsls r1, r3, 16
- asrs r1, 24
- ldrh r0, [r4, 0x24]
- subs r0, r1
- strh r0, [r4, 0x24]
- lsls r0, r2, 16
- asrs r0, 24
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
- movs r0, 0xFF
- ands r2, r0
- strh r2, [r4, 0x2E]
- ands r3, r0
- strh r3, [r4, 0x30]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- movs r2, 0x26
- ldrsh r1, [r4, r2]
- adds r0, r1
- cmp r0, 0xA0
- bgt _0814084A
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r2, 0x24
- ldrsh r1, [r4, r2]
- adds r0, r1
- movs r1, 0x8
- negs r1, r1
- cmp r0, r1
- bge _0814085E
-_0814084A:
- movs r0, 0
- strh r0, [r4, 0x2E]
- ldr r0, _08140864
- str r0, [r4, 0x1C]
- ldr r1, _08140868
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x1
- bl sub_8043EB4
-_0814085E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08140864: .4byte sub_81405C8
-_08140868: .4byte gUnknown_02024E6D
- thumb_func_end sub_81407F4
-
- thumb_func_start sub_814086C
-sub_814086C: @ 814086C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, [sp, 0x20]
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r7, r3, 24
- lsls r4, 24
- lsrs r4, 24
- adds r5, r4, 0
- ldr r0, _08140910
- lsls r6, r5, 3
- adds r4, r6, r0
- ldrh r0, [r4, 0x6]
- bl GetSpriteTileStartByTag
- lsls r0, 16
- ldr r1, _08140914
- cmp r0, r1
- bne _081408B6
- adds r0, r4, 0
- bl LoadCompressedObjectPic
- ldr r0, _08140918
- adds r0, r6, r0
- bl LoadCompressedObjectPalette
-_081408B6:
- ldr r1, _0814091C
- lsls r0, r5, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _08140920
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- mov r1, r10
- strh r1, [r0, 0xA]
- mov r1, r9
- strh r1, [r0, 0xC]
- mov r1, r8
- strh r1, [r0, 0xE]
- strh r7, [r0, 0x10]
- strh r5, [r0, 0x26]
- movs r0, 0xF
- bl PlaySE
- ldr r0, _08140924
- ldr r1, _08140928
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08140900
- ldr r1, _0814092C
- ldrb r0, [r1, 0xA]
- adds r0, 0x1
- strb r0, [r1, 0xA]
-_08140900:
- adds r0, r4, 0
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08140910: .4byte gUnknown_0840B258
-_08140914: .4byte 0xffff0000
-_08140918: .4byte gUnknown_0840B2B8
-_0814091C: .4byte gUnknown_0840B384
-_08140920: .4byte gTasks
-_08140924: .4byte gMain
-_08140928: .4byte 0x0000043d
-_0814092C: .4byte 0x02017840
- thumb_func_end sub_814086C
-
- thumb_func_start sub_8140930
-sub_8140930: @ 8140930
- 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
- ldr r1, _081409D0
- lsls r0, 2
- add r0, r9
- lsls r0, 3
- adds r7, r0, r1
- ldrh r0, [r7, 0x26]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- cmp r0, 0xF
- bgt _081409E4
- ldrb r1, [r7, 0xA]
- ldrb r2, [r7, 0xC]
- ldrb r6, [r7, 0xE]
- ldrb r3, [r7, 0x10]
- mov r4, r8
- lsls r0, r4, 1
- add r0, r8
- lsls r0, 3
- ldr r4, _081409D4
- adds r0, r4
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r5, _081409D8
- adds r2, r4, r5
- ldr r0, _081409DC
- add r0, r8
- ldrb r1, [r0]
- adds r0, r2, 0
- str r2, [sp]
- bl StartSpriteAnim
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _081409E0
- str r0, [r4]
- movs r0, 0x3
- ands r6, r0
- lsls r6, 2
- ldr r2, [sp]
- ldrb r1, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- orrs r0, r6
- strb r0, [r2, 0x5]
- ldrb r0, [r7, 0x8]
- cmp r0, 0x7
- bls _081409B6
- subs r0, 0x8
- lsls r0, 24
- lsrs r0, 24
-_081409B6:
- lsls r0, 5
- strh r0, [r2, 0x2E]
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- cmp r0, 0xF
- bne _081409E4
- movs r0, 0x1
- strh r0, [r2, 0x3C]
- mov r0, r9
- bl DestroyTask
- b _081409F6
- .align 2, 0
-_081409D0: .4byte gTasks
-_081409D4: .4byte gSpriteTemplate_840B3B4
-_081409D8: .4byte gSprites
-_081409DC: .4byte gUnknown_0840B378
-_081409E0: .4byte sub_8140A08
-_081409E4:
- ldr r0, _08140A04
- mov r2, r9
- lsls r1, r2, 2
- add r1, r9
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_081409F6:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08140A04: .4byte gTasks
- thumb_func_end sub_8140930
-
- thumb_func_start sub_8140A08
-sub_8140A08: @ 8140A08
- push {lr}
- adds r1, r0, 0
- ldrh r2, [r1, 0x30]
- movs r3, 0x30
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _08140A20
- ldr r0, _08140A1C
- str r0, [r1, 0x1C]
- b _08140A24
- .align 2, 0
-_08140A1C: .4byte sub_8140A28
-_08140A20:
- subs r0, r2, 0x1
- strh r0, [r1, 0x30]
-_08140A24:
- pop {r0}
- bx r0
- thumb_func_end sub_8140A08
-
- thumb_func_start sub_8140A28
-sub_8140A28: @ 8140A28
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0x2
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x32
- bne _08140A5C
- adds r0, r4, 0
- bl sub_8141294
-_08140A5C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8140A28
-
- thumb_func_start sub_8140A64
-sub_8140A64: @ 8140A64
- 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, _08140B24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xA]
- str r2, [sp]
- ldrb r3, [r0, 0xC]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xE]
- str r2, [sp, 0x8]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0xC]
- movs r6, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- mov r10, r0
- ldr r3, _08140B28
- mov r8, r3
- ldr r0, _08140B2C
- adds r1, r0
- mov r9, r1
-_08140AA8:
- ldr r0, _08140B30
- add r0, r10
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- mov r0, r8
- adds r4, r5, r0
- mov r2, r9
- ldrb r1, [r2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r3, _08140B34
- adds r1, r5, r3
- ldr r0, _08140B38
- str r0, [r1]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r0, r6, 5
- strh r0, [r4, 0x2E]
- movs r0, 0xA
- strh r0, [r4, 0x36]
- movs r0, 0x2
- strh r0, [r4, 0x38]
- movs r2, 0x1
- strh r2, [r4, 0x3A]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x7
- bls _08140AA8
- ldr r0, _08140B28
- adds r0, r5, r0
- strh r2, [r0, 0x3C]
- adds r0, r7, 0
- bl DestroyTask
- 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
-_08140B24: .4byte gTasks
-_08140B28: .4byte gSprites
-_08140B2C: .4byte gUnknown_0840B378
-_08140B30: .4byte gSpriteTemplate_840B3B4
-_08140B34: .4byte gSprites + 0x1C
-_08140B38: .4byte sub_8140ECC
- thumb_func_end sub_8140A64
-
- thumb_func_start sub_8140B3C
-sub_8140B3C: @ 8140B3C
- 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, _08140BFC
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xA]
- str r2, [sp]
- ldrb r3, [r0, 0xC]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xE]
- str r2, [sp, 0x8]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0xC]
- movs r6, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- mov r10, r0
- ldr r3, _08140C00
- mov r8, r3
- ldr r0, _08140C04
- adds r1, r0
- mov r9, r1
-_08140B80:
- ldr r0, _08140C08
- add r0, r10
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- mov r0, r8
- adds r4, r5, r0
- mov r2, r9
- ldrb r1, [r2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r3, _08140C0C
- adds r1, r5, r3
- ldr r0, _08140C10
- str r0, [r1]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r0, r6, 5
- strh r0, [r4, 0x2E]
- movs r0, 0xA
- strh r0, [r4, 0x36]
- movs r1, 0x1
- strh r1, [r4, 0x38]
- movs r0, 0x2
- strh r0, [r4, 0x3A]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x7
- bls _08140B80
- ldr r0, _08140C00
- adds r0, r5, r0
- strh r1, [r0, 0x3C]
- adds r0, r7, 0
- bl DestroyTask
- 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
-_08140BFC: .4byte gTasks
-_08140C00: .4byte gSprites
-_08140C04: .4byte gUnknown_0840B378
-_08140C08: .4byte gSpriteTemplate_840B3B4
-_08140C0C: .4byte gSprites + 0x1C
-_08140C10: .4byte sub_8140ECC
- thumb_func_end sub_8140B3C
-
- thumb_func_start sub_8140C14
-sub_8140C14: @ 8140C14
- 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, _08140CD0
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xA]
- str r2, [sp]
- ldrb r3, [r0, 0xC]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xE]
- str r2, [sp, 0x8]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0xC]
- movs r6, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- mov r10, r0
- ldr r3, _08140CD4
- mov r8, r3
- ldr r0, _08140CD8
- adds r1, r0
- mov r9, r1
-_08140C58:
- ldr r0, _08140CDC
- add r0, r10
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- mov r0, r8
- adds r4, r5, r0
- mov r2, r9
- ldrb r1, [r2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r3, _08140CE0
- adds r1, r5, r3
- ldr r0, _08140CE4
- str r0, [r1]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r0, r6, 5
- strh r0, [r4, 0x2E]
- movs r0, 0x4
- strh r0, [r4, 0x36]
- movs r2, 0x1
- strh r2, [r4, 0x38]
- strh r2, [r4, 0x3A]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x7
- bls _08140C58
- ldr r0, _08140CD4
- adds r0, r5, r0
- strh r2, [r0, 0x3C]
- adds r0, r7, 0
- bl DestroyTask
- 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
-_08140CD0: .4byte gTasks
-_08140CD4: .4byte gSprites
-_08140CD8: .4byte gUnknown_0840B378
-_08140CDC: .4byte gSpriteTemplate_840B3B4
-_08140CE0: .4byte gSprites + 0x1C
-_08140CE4: .4byte sub_8140ECC
- thumb_func_end sub_8140C14
-
- thumb_func_start sub_8140CE8
-sub_8140CE8: @ 8140CE8
- 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, _08140DAC
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xA]
- str r2, [sp]
- ldrb r3, [r0, 0xC]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xE]
- str r2, [sp, 0x8]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0xC]
- movs r6, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- mov r10, r0
- ldr r3, _08140DB0
- mov r8, r3
- ldr r0, _08140DB4
- adds r1, r0
- mov r9, r1
-_08140D2C:
- ldr r0, _08140DB8
- add r0, r10
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- mov r0, r8
- adds r4, r5, r0
- mov r2, r9
- ldrb r1, [r2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r3, _08140DBC
- adds r1, r5, r3
- ldr r0, _08140DC0
- str r0, [r1]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 3
- adds r0, r6
- strh r0, [r4, 0x2E]
- movs r0, 0x5
- strh r0, [r4, 0x36]
- movs r2, 0x1
- strh r2, [r4, 0x38]
- strh r2, [r4, 0x3A]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x9
- bls _08140D2C
- ldr r0, _08140DB0
- adds r0, r5, r0
- strh r2, [r0, 0x3C]
- adds r0, r7, 0
- bl DestroyTask
- 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
-_08140DAC: .4byte gTasks
-_08140DB0: .4byte gSprites
-_08140DB4: .4byte gUnknown_0840B378
-_08140DB8: .4byte gSpriteTemplate_840B3B4
-_08140DBC: .4byte gSprites + 0x1C
-_08140DC0: .4byte sub_8140ECC
- thumb_func_end sub_8140CE8
-
- thumb_func_start sub_8140DC4
-sub_8140DC4: @ 8140DC4
- 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
- ldr r1, _08140DF0
- lsls r2, r7, 2
- adds r0, r2, r7
- lsls r0, 3
- adds r3, r0, r1
- ldrh r1, [r3, 0x16]
- movs r4, 0x16
- ldrsh r0, [r3, r4]
- cmp r0, 0
- beq _08140DF4
- subs r0, r1, 0x1
- strh r0, [r3, 0x16]
- b _08140EA4
- .align 2, 0
-_08140DF0: .4byte gTasks
-_08140DF4:
- ldrh r0, [r3, 0x26]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r3, 0xA]
- str r1, [sp]
- ldrb r4, [r3, 0xC]
- str r4, [sp, 0x4]
- ldrb r1, [r3, 0xE]
- str r1, [sp, 0x8]
- ldrb r3, [r3, 0x10]
- str r3, [sp, 0xC]
- movs r6, 0
- str r2, [sp, 0x10]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- mov r10, r1
- ldr r3, _08140EB4
- mov r8, r3
- ldr r1, _08140EB8
- adds r0, r1
- mov r9, r0
-_08140E20:
- ldr r0, _08140EBC
- add r0, r10
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- mov r0, r8
- adds r4, r5, r0
- mov r3, r9
- ldrb r1, [r3]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, _08140EC0
- adds r1, r5, r0
- ldr r0, _08140EC4
- str r0, [r1]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r0, r6, 5
- strh r0, [r4, 0x2E]
- movs r2, 0x8
- strh r2, [r4, 0x36]
- movs r0, 0x2
- strh r0, [r4, 0x38]
- strh r0, [r4, 0x3A]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x7
- bls _08140E20
- ldr r0, _08140EC8
- ldr r4, [sp, 0x10]
- adds r1, r4, r7
- lsls r1, 3
- adds r1, r0
- strh r2, [r1, 0x16]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bne _08140EA4
- ldr r0, _08140EB4
- adds r0, r5, r0
- movs r1, 0x1
- strh r1, [r0, 0x3C]
- adds r0, r7, 0
- bl DestroyTask
-_08140EA4:
- 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
-_08140EB4: .4byte gSprites
-_08140EB8: .4byte gUnknown_0840B378
-_08140EBC: .4byte gSpriteTemplate_840B3B4
-_08140EC0: .4byte gSprites + 0x1C
-_08140EC4: .4byte sub_8140ECC
-_08140EC8: .4byte gTasks
- thumb_func_end sub_8140DC4
-
- thumb_func_start sub_8140ECC
-sub_8140ECC: @ 8140ECC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r2, 0x30
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x36]
- ldrh r1, [r4, 0x2E]
- adds r0, r1
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r4, 0x2E]
- ldrh r0, [r4, 0x38]
- ldrh r2, [r4, 0x30]
- adds r0, r2
- strh r0, [r4, 0x30]
- ldrh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x32]
- adds r0, r1
- strh r0, [r4, 0x32]
- ldrh r0, [r4, 0x34]
- adds r0, 0x1
- strh r0, [r4, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _08140F1C
- adds r0, r4, 0
- bl sub_8141294
-_08140F1C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8140ECC
-
- thumb_func_start sub_8140F24
-sub_8140F24: @ 8140F24
- 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, _08140FE0
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xA]
- str r2, [sp]
- ldrb r3, [r0, 0xC]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xE]
- str r2, [sp, 0x8]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0xC]
- movs r6, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- mov r10, r0
- ldr r3, _08140FE4
- mov r8, r3
- ldr r0, _08140FE8
- adds r1, r0
- mov r9, r1
-_08140F68:
- ldr r0, _08140FEC
- add r0, r10
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- mov r0, r8
- adds r4, r5, r0
- mov r2, r9
- ldrb r1, [r2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r3, _08140FF0
- adds r1, r5, r3
- ldr r0, _08140FF4
- str r0, [r1]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 2
- adds r0, r6
- strh r0, [r4, 0x2E]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0xB
- bls _08140F68
- ldr r0, _08140FE4
- adds r0, r5, r0
- movs r1, 0x1
- strh r1, [r0, 0x3C]
- adds r0, r7, 0
- bl DestroyTask
- 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
-_08140FE0: .4byte gTasks
-_08140FE4: .4byte gSprites
-_08140FE8: .4byte gUnknown_0840B378
-_08140FEC: .4byte gSpriteTemplate_840B3B4
-_08140FF0: .4byte gSprites + 0x1C
-_08140FF4: .4byte sub_8140FF8
- thumb_func_end sub_8140F24
-
- thumb_func_start sub_8140FF8
-sub_8140FF8: @ 8140FF8
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- bl Sin
- strh r0, [r5, 0x24]
- movs r0, 0x2E
- ldrsh r4, [r5, r0]
- movs r2, 0x32
- ldrsh r1, [r5, r2]
- adds r0, r4, 0
- bl Sin
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl Cos
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x6
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _08141050
- adds r0, r5, 0
- bl sub_8141294
-_08141050:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8140FF8
-
- thumb_func_start sub_8141058
-sub_8141058: @ 8141058
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- ldr r1, _08141104
- lsls r0, 2
- ldr r2, [sp]
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r3, [r0, 0xA]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xC]
- str r2, [sp, 0x8]
- ldrb r3, [r0, 0xE]
- str r3, [sp, 0xC]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0x10]
- movs r0, 0
- mov r8, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- str r0, [sp, 0x14]
- ldr r0, _08141108
- adds r1, r0
- mov r10, r1
-_0814109E:
- movs r7, 0
- movs r1, 0x1
- add r1, r8
- mov r9, r1
-_081410A6:
- ldr r0, _0814110C
- ldr r2, [sp, 0x14]
- adds r0, r2, r0
- ldr r1, [sp, 0x4]
- ldr r2, [sp, 0x8]
- ldr r3, [sp, 0x10]
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r4, r6, 4
- adds r4, r6
- lsls r4, 2
- ldr r3, _08141110
- adds r5, r4, r3
- mov r0, r10
- ldrb r1, [r0]
- adds r0, r5, 0
- bl StartSpriteAnim
- ldr r1, _08141114
- adds r4, r1
- ldr r0, _08141118
- str r0, [r4]
- movs r0, 0x3
- ldr r1, [sp, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r0, [r5, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r2, r3, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x5]
- lsls r0, r7, 5
- strh r0, [r5, 0x2E]
- movs r0, 0x8
- strh r0, [r5, 0x36]
- mov r0, r8
- cmp r0, 0
- bne _0814111C
- movs r0, 0x2
- strh r0, [r5, 0x38]
- movs r0, 0x1
- b _08141122
- .align 2, 0
-_08141104: .4byte gTasks
-_08141108: .4byte gUnknown_0840B378
-_0814110C: .4byte gSpriteTemplate_840B3B4
-_08141110: .4byte gSprites
-_08141114: .4byte gSprites + 0x1C
-_08141118: .4byte sub_8140ECC
-_0814111C:
- movs r0, 0x1
- strh r0, [r5, 0x38]
- movs r0, 0x2
-_08141122:
- strh r0, [r5, 0x3A]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x7
- bls _081410A6
- mov r1, r9
- lsls r0, r1, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x1
- bls _0814109E
- ldr r0, _08141160
- lsls r1, r6, 4
- adds r1, r6
- lsls r1, 2
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x3C]
- ldr r0, [sp]
- bl DestroyTask
- 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
-_08141160: .4byte gSprites
- thumb_func_end sub_8141058
-
- thumb_func_start sub_8141164
-sub_8141164: @ 8141164
- 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, _08141218
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- lsls r1, 24
- lsrs r1, 24
- ldrb r2, [r0, 0xA]
- str r2, [sp]
- ldrb r3, [r0, 0xC]
- str r3, [sp, 0x4]
- ldrb r2, [r0, 0xE]
- str r2, [sp, 0x8]
- ldrb r0, [r0, 0x10]
- str r0, [sp, 0xC]
- movs r6, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- mov r10, r0
- ldr r3, _0814121C
- mov r8, r3
- ldr r0, _08141220
- adds r1, r0
- mov r9, r1
-_081411A8:
- ldr r0, _08141224
- add r0, r10
- ldr r1, [sp]
- ldr r2, [sp, 0x4]
- ldr r3, [sp, 0xC]
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r5, r1, 2
- mov r0, r8
- adds r4, r5, r0
- mov r2, r9
- ldrb r1, [r2]
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r3, _08141228
- adds r1, r5, r3
- ldr r0, _0814122C
- str r0, [r1]
- movs r0, 0x3
- ldr r2, [sp, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r4, 0x5]
- movs r3, 0xD
- negs r3, r3
- adds r1, r3, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x5]
- lsls r0, r6, 5
- strh r0, [r4, 0x2E]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x7
- bls _081411A8
- ldr r0, _0814121C
- adds r0, r5, r0
- movs r1, 0x1
- strh r1, [r0, 0x3C]
- adds r0, r7, 0
- bl DestroyTask
- 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
-_08141218: .4byte gTasks
-_0814121C: .4byte gSprites
-_08141220: .4byte gUnknown_0840B378
-_08141224: .4byte gSpriteTemplate_840B3B4
-_08141228: .4byte gSprites + 0x1C
-_0814122C: .4byte sub_8141230
- thumb_func_end sub_8141164
-
- thumb_func_start sub_8141230
-sub_8141230: @ 8141230
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- bl Sin
- strh r0, [r5, 0x24]
- movs r0, 0x2E
- ldrsh r4, [r5, r0]
- ldrh r1, [r5, 0x2E]
- movs r0, 0x3F
- ands r0, r1
- movs r2, 0x32
- ldrsh r1, [r5, r2]
- bl Sin
- adds r1, r0, 0
- lsls r1, 16
- asrs r1, 16
- adds r0, r4, 0
- bl Cos
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x2E]
- adds r0, 0xA
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r5, 0x2E]
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x34]
- adds r0, 0x1
- strh r0, [r5, 0x34]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x33
- bne _0814128C
- adds r0, r5, 0
- bl sub_8141294
-_0814128C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8141230
-
- thumb_func_start sub_8141294
-sub_8141294: @ 8141294
- push {r4-r7,lr}
- adds r5, r0, 0
- ldr r0, _081412B8
- ldr r1, _081412BC
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _081412C0
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _081412F2
- adds r0, r5, 0
- bl DestroySpriteAndFreeResources
- b _0814130E
- .align 2, 0
-_081412B8: .4byte gMain
-_081412BC: .4byte 0x0000043d
-_081412C0:
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- bne _08141308
- ldr r1, _081412FC
- ldrb r0, [r1, 0xA]
- subs r0, 0x1
- strb r0, [r1, 0xA]
- lsls r0, 24
- cmp r0, 0
- bne _081412F2
- movs r7, 0
- ldr r6, _08141300
- ldr r4, _08141304
-_081412DC:
- ldrh r0, [r6, 0x6]
- bl FreeSpriteTilesByTag
- ldrh r0, [r4, 0x4]
- bl FreeSpritePaletteByTag
- adds r6, 0x8
- adds r4, 0x8
- adds r7, 0x1
- cmp r7, 0xB
- ble _081412DC
-_081412F2:
- adds r0, r5, 0
- bl DestroySprite
- b _0814130E
- .align 2, 0
-_081412FC: .4byte 0x02017840
-_08141300: .4byte gUnknown_0840B258
-_08141304: .4byte gUnknown_0840B2B8
-_08141308:
- adds r0, r5, 0
- bl DestroySprite
-_0814130E:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8141294
-
- thumb_func_start sub_8141314
-sub_8141314: @ 8141314
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r4, r0, 0
- mov r9, r2
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r3, 24
- lsrs r7, r3, 24
- ldr r0, _08141378
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r1, _0814137C
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r5, r0, r1
- strh r7, [r5, 0x26]
- strh r6, [r5, 0xE]
- mov r0, r9
- strh r0, [r5, 0x1C]
- mov r1, r9
- lsrs r0, r1, 16
- strh r0, [r5, 0x1E]
- cmp r4, 0
- bne _08141384
- lsls r0, r6, 20
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r0, 16
- ldr r2, _08141380
- lsls r1, r7, 1
- adds r1, r2
- ldrh r3, [r1]
- movs r1, 0x10
- movs r2, 0
- bl BlendPalette
- movs r0, 0x1
- strh r0, [r5, 0xA]
- b _081413AA
- .align 2, 0
-_08141378: .4byte sub_81413DC
-_0814137C: .4byte gTasks
-_08141380: .4byte gUnknown_0840B4D4
-_08141384:
- lsls r0, r6, 20
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r0, 16
- ldr r2, _081413CC
- lsls r1, r7, 1
- adds r1, r2
- ldrh r3, [r1]
- movs r1, 0x10
- movs r2, 0x10
- bl BlendPalette
- movs r0, 0x10
- strh r0, [r5, 0x8]
- ldr r0, _081413D0
- strh r0, [r5, 0xA]
- ldr r0, _081413D4
- str r0, [r5]
-_081413AA:
- ldr r0, _081413D8
- str r0, [sp]
- mov r0, r9
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- mov r0, r8
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_081413CC: .4byte gUnknown_0840B4D4
-_081413D0: .4byte 0x0000ffff
-_081413D4: .4byte sub_814146C
-_081413D8: .4byte 0x00007fff
- thumb_func_end sub_8141314
-
- thumb_func_start sub_81413DC
-sub_81413DC: @ 81413DC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r1, _0814142C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r1, r0, 24
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0x10
- bgt _08141434
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- lsls r0, 20
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r0, 16
- ldrb r2, [r4, 0x8]
- ldr r3, _08141430
- lsls r1, 1
- adds r1, r3
- ldrh r3, [r1]
- movs r1, 0x10
- bl BlendPalette
- ldrh r0, [r4, 0xA]
- ldrh r1, [r4, 0x8]
- adds r0, r1
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- b _0814145C
- .align 2, 0
-_0814142C: .4byte gTasks
-_08141430: .4byte gUnknown_0840B4D4
-_08141434:
- ldr r0, _08141464
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0814145C
- ldrh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- lsls r1, 16
- orrs r0, r1
- ldr r1, _08141468
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- adds r0, r5, 0
- bl DestroyTask
-_0814145C:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08141464: .4byte gPaletteFade
-_08141468: .4byte 0x00007fff
- thumb_func_end sub_81413DC
-
- thumb_func_start sub_814146C
-sub_814146C: @ 814146C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _081414AC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081414A4
- ldr r0, _081414B0
- lsls r4, r2, 2
- adds r4, r2
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0x1C]
- ldrh r1, [r4, 0x1E]
- lsls r1, 16
- orrs r0, r1
- ldr r1, _081414B4
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _081414B8
- str r0, [r4]
-_081414A4:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081414AC: .4byte gPaletteFade
-_081414B0: .4byte gTasks
-_081414B4: .4byte 0x00007fff
-_081414B8: .4byte sub_81414BC
- thumb_func_end sub_814146C
-
- thumb_func_start sub_81414BC
-sub_81414BC: @ 81414BC
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _08141508
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0x26]
- lsls r0, 24
- lsrs r1, r0, 24
- movs r3, 0xC
- ldrsh r0, [r4, r3]
- cmp r0, 0x10
- bgt _08141510
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- lsls r0, 20
- movs r3, 0x80
- lsls r3, 17
- adds r0, r3
- lsrs r0, 16
- ldrb r2, [r4, 0x8]
- ldr r3, _0814150C
- lsls r1, 1
- adds r1, r3
- ldrh r3, [r1]
- movs r1, 0x10
- bl BlendPalette
- ldrh r0, [r4, 0xA]
- ldrh r1, [r4, 0x8]
- adds r0, r1
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- b _08141516
- .align 2, 0
-_08141508: .4byte gTasks
-_0814150C: .4byte gUnknown_0840B4D4
-_08141510:
- adds r0, r2, 0
- bl DestroyTask
-_08141516:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81414BC
-
- thumb_func_start sub_814151C
-sub_814151C: @ 814151C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0
- mov r8, r0
- ldr r0, _08141550
- ldr r3, _08141554
- ldrb r2, [r3]
- adds r0, r2, r0
- ldrb r6, [r0]
- ldr r1, _08141558
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x1C
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _081415F4
- cmp r0, 0x1
- bgt _0814155C
- cmp r0, 0
- beq _08141562
- b _081416B6
- .align 2, 0
-_08141550: .4byte gUnknown_02024BE0
-_08141554: .4byte gUnknown_0202F7C8
-_08141558: .4byte gTasks
-_0814155C:
- cmp r0, 0x2
- beq _08141606
- b _081416B6
-_08141562:
- ldr r0, _0814159C
- ldrh r0, [r0]
- strh r0, [r5, 0x1E]
- movs r2, 0xA0
- lsls r2, 3
- adds r0, r2, 0
- ldrh r4, [r5, 0x8]
- adds r0, r4
- strh r0, [r5, 0x8]
- ldrb r0, [r3]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _081415A4
- ldr r2, _081415A0
- lsls r3, r6, 4
- adds r1, r3, r6
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 24
- ldrh r4, [r1, 0x24]
- adds r0, r4
- strh r0, [r1, 0x24]
- adds r4, r3, 0
- b _081415BC
- .align 2, 0
-_0814159C: .4byte gUnknown_03004B00
-_081415A0: .4byte gSprites
-_081415A4:
- ldr r3, _081415EC
- lsls r4, r6, 4
- adds r2, r4, r6
- lsls r2, 2
- adds r2, r3
- ldrh r1, [r5, 0x8]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- adds r2, r3, 0
-_081415BC:
- ldr r1, _081415F0
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r3, r0, r1
- ldrb r0, [r3, 0x8]
- strh r0, [r3, 0x8]
- adds r0, r4, r6
- lsls r0, 2
- adds r0, r2
- movs r2, 0x20
- ldrsh r1, [r0, r2]
- movs r4, 0x24
- ldrsh r0, [r0, r4]
- adds r1, r0
- adds r1, 0x20
- movs r0, 0x98
- lsls r0, 1
- cmp r1, r0
- bls _081416B6
- ldrh r0, [r3, 0x1C]
- adds r0, 0x1
- strh r0, [r3, 0x1C]
- b _081416B6
- .align 2, 0
-_081415EC: .4byte gSprites
-_081415F0: .4byte gTasks
-_081415F4:
- ldrb r1, [r5, 0x1E]
- adds r0, r2, 0
- adds r2, r6, 0
- bl refresh_graphics_maybe
- ldrh r0, [r5, 0x1C]
- adds r0, 0x1
- strh r0, [r5, 0x1C]
- b _081416B6
-_08141606:
- movs r1, 0xA0
- lsls r1, 3
- adds r0, r1, 0
- ldrh r2, [r5, 0x8]
- adds r0, r2
- strh r0, [r5, 0x8]
- ldrb r0, [r3]
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- beq _0814163C
- ldr r0, _08141638
- lsls r3, r6, 4
- adds r2, r3, r6
- lsls r2, 2
- adds r2, r0
- ldrh r1, [r5, 0x8]
- lsls r1, 16
- asrs r1, 24
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- adds r4, r3, 0
- b _08141654
- .align 2, 0
-_08141638: .4byte gSprites
-_0814163C:
- ldr r0, _08141688
- lsls r2, r6, 4
- adds r1, r2, r6
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r5, 0x8]
- lsls r0, 16
- asrs r0, 24
- ldrh r3, [r1, 0x24]
- adds r0, r3
- strh r0, [r1, 0x24]
- adds r4, r2, 0
-_08141654:
- ldr r1, _0814168C
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x8]
- strh r1, [r0, 0x8]
- ldr r0, _08141690
- ldrb r0, [r0]
- bl battle_side_get_owner
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _08141694
- ldr r0, _08141688
- adds r1, r4, r6
- lsls r1, 2
- adds r1, r0
- movs r4, 0x24
- ldrsh r0, [r1, r4]
- cmp r0, 0
- bgt _081416AA
- movs r0, 0
- strh r0, [r1, 0x24]
- b _081416B0
- .align 2, 0
-_08141688: .4byte gSprites
-_0814168C: .4byte gTasks
-_08141690: .4byte gUnknown_0202F7C8
-_08141694:
- ldr r0, _081416C0
- adds r1, r4, r6
- lsls r1, 2
- adds r1, r0
- movs r3, 0x24
- ldrsh r0, [r1, r3]
- cmp r0, 0
- blt _081416AA
- strh r2, [r1, 0x24]
- movs r4, 0x1
- mov r8, r4
-_081416AA:
- mov r0, r8
- cmp r0, 0
- beq _081416B6
-_081416B0:
- adds r0, r7, 0
- bl move_anim_task_del
-_081416B6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081416C0: .4byte gSprites
- thumb_func_end sub_814151C
-
- thumb_func_start sub_81416C4
-sub_81416C4: @ 81416C4
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _081416E8
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08141744
- cmp r0, 0x1
- bgt _081416EC
- cmp r0, 0
- beq _081416F2
- b _081417B8
- .align 2, 0
-_081416E8: .4byte gTasks
-_081416EC:
- cmp r0, 0x2
- beq _0814177C
- b _081417B8
-_081416F2:
- ldr r0, _08141708
- ldrb r0, [r0]
- bl battle_get_per_side_status_permutated
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08141714
- ldr r1, _0814170C
- ldr r2, _08141710
- b _08141718
- .align 2, 0
-_08141708: .4byte gUnknown_0202F7C8
-_0814170C: .4byte REG_BLDCNT
-_08141710: .4byte 0x00003f42
-_08141714:
- ldr r1, _08141734
- ldr r2, _08141738
-_08141718:
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _0814173C
- movs r0, 0x10
- strh r0, [r1]
- ldr r1, _08141740
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x26]
- adds r1, 0x1
- strh r1, [r0, 0x26]
- b _081417B8
- .align 2, 0
-_08141734: .4byte REG_BLDCNT
-_08141738: .4byte 0x00003f44
-_0814173C: .4byte REG_BLDALPHA
-_08141740: .4byte gTasks
-_08141744:
- ldrh r0, [r4, 0xA]
- adds r1, r0, 0x1
- strh r1, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _081417B8
- movs r0, 0
- strh r0, [r4, 0xA]
- ldrh r1, [r4, 0x8]
- adds r1, 0x1
- strh r1, [r4, 0x8]
- ldr r3, _08141778
- lsls r2, r1, 8
- movs r0, 0x10
- subs r0, r1
- orrs r2, r0
- strh r2, [r3]
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x10
- bne _081417B8
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
- b _081417B8
- .align 2, 0
-_08141778: .4byte REG_BLDALPHA
-_0814177C:
- ldr r1, _081417C0
- ldr r3, _081417C4
- ldrb r0, [r3]
- adds r0, r1
- ldrb r1, [r0]
- ldr r2, _081417C8
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x4]
- lsls r0, 22
- lsrs r0, 17
- ldr r1, _081417CC
- adds r0, r1
- movs r1, 0
- str r1, [sp]
- ldr r1, _081417D0
- mov r2, sp
- str r2, [r1]
- str r0, [r1, 0x4]
- ldr r0, _081417D4
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldrb r0, [r3]
- bl sub_80324E0
- adds r0, r5, 0
- bl move_anim_task_del
-_081417B8:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081417C0: .4byte gUnknown_02024BE0
-_081417C4: .4byte gUnknown_0202F7C8
-_081417C8: .4byte gSprites
-_081417CC: .4byte 0x06010000
-_081417D0: .4byte 0x040000d4
-_081417D4: .4byte 0x85000200
- thumb_func_end sub_81416C4
-
- thumb_func_start sub_81417D8
-sub_81417D8: @ 81417D8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _081417FC
- ldr r1, _08141800
- ldrb r1, [r1]
- lsls r1, 2
- ldr r2, _08141804
- adds r1, r2
- ldr r1, [r1]
- lsls r1, 29
- lsrs r1, 31
- strh r1, [r3, 0xE]
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_081417FC: .4byte gUnknown_03004B00
-_08141800: .4byte gUnknown_0202F7C8
-_08141804: .4byte 0x02017800
- thumb_func_end sub_81417D8
-
- thumb_func_start sub_8141808
-sub_8141808: @ 8141808
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08141820
- ldr r1, _08141824
- ldrb r1, [r1]
- strb r1, [r2]
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_08141820: .4byte gUnknown_0202F7C9
-_08141824: .4byte gUnknown_02024C0A
- thumb_func_end sub_8141808
-
- thumb_func_start sub_8141828
-sub_8141828: @ 8141828
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- mov r8, r0
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- ldr r1, _081418E0
- adds r0, r1
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- adds r5, r0, 0
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- adds r4, r0, 0
- adds r0, r6, 0
- bl b_side_obj__get_some_boolean
- lsls r0, 24
- cmp r0, 0
- beq _081418FC
- lsrs r0, r5, 16
- ldr r7, _081418E4
- ands r5, r7
- eors r0, r5
- lsrs r1, r4, 16
- eors r0, r1
- ands r4, r7
- eors r0, r4
- cmp r0, 0x7
- bhi _08141882
- movs r0, 0x1
- mov r8, r0
-_08141882:
- mov r0, r8
- cmp r0, 0
- beq _081418FC
- ldr r0, _081418E8
- bl GetSpriteTileStartByTag
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r7
- bne _081418A2
- ldr r0, _081418EC
- bl LoadCompressedObjectPic
- ldr r0, _081418F0
- bl LoadCompressedObjectPalette
-_081418A2:
- ldr r5, _081418F4
- adds r0, r5, 0
- movs r1, 0xA
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _081418F8
- lsls r2, r4, 2
- adds r2, r4
- lsls r2, 3
- adds r2, r3
- movs r4, 0
- strh r6, [r2, 0x8]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- strh r6, [r1, 0x8]
- strh r4, [r2, 0xA]
- movs r0, 0x1
- strh r0, [r1, 0xA]
- b _0814190E
- .align 2, 0
-_081418E0: .4byte 0x02017810
-_081418E4: .4byte 0x0000ffff
-_081418E8: .4byte 0x000027f9
-_081418EC: .4byte gBattleAnimPicTable + (233 * 8)
-_081418F0: .4byte gBattleAnimPaletteTable + (233 * 8)
-_081418F4: .4byte sub_814191C
-_081418F8: .4byte gTasks
-_081418FC:
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 2
- ldr r1, _08141918
- adds r0, r1
- ldrb r1, [r0, 0x1]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x1]
-_0814190E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08141918: .4byte 0x02017810
- thumb_func_end sub_8141828
-
- thumb_func_start sub_814191C
-sub_814191C: @ 814191C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08141944
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r4, r0, r1
- ldrh r1, [r4, 0x22]
- movs r2, 0x22
- ldrsh r0, [r4, r2]
- cmp r0, 0x3B
- bgt _08141948
- adds r0, r1, 0x1
- strh r0, [r4, 0x22]
- b _08141AB8
- .align 2, 0
-_08141944: .4byte gTasks
-_08141948:
- ldr r0, _08141998
- ldrb r0, [r0, 0xA]
- cmp r0, 0
- beq _08141952
- b _08141AB8
-_08141952:
- ldrh r0, [r4, 0x1C]
- adds r1, r0, 0x1
- strh r1, [r4, 0x1C]
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- cmp r1, 0
- beq _08141966
- b _08141AB8
-_08141966:
- ldrb r0, [r4, 0x8]
- mov r8, r0
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, r8
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0x1E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081419A0
- ldr r0, _0814199C
- adds r1, r5, 0
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- b _08141A02
- .align 2, 0
-_08141998: .4byte 0x02017840
-_0814199C: .4byte gBattleAnimSpriteTemplate_84024E8
-_081419A0:
- cmp r0, 0
- blt _081419D4
- cmp r0, 0x3
- bgt _081419D4
- ldr r0, _081419CC
- adds r1, r5, 0
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _081419D0
- lsls r2, r5, 4
- adds r2, r5
- lsls r2, 2
- adds r2, r0
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x4
- b _081419F4
- .align 2, 0
-_081419CC: .4byte gSpriteTemplate_8402500
-_081419D0: .4byte gSprites
-_081419D4:
- ldr r0, _08141A2C
- adds r1, r5, 0
- movs r3, 0x5
- bl CreateSprite
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08141A30
- lsls r2, r5, 4
- adds r2, r5
- lsls r2, 2
- adds r2, r0
- ldrh r3, [r2, 0x4]
- lsls r1, r3, 22
- lsrs r1, 22
- adds r1, 0x5
-_081419F4:
- ldr r4, _08141A34
- adds r0, r4, 0
- ands r1, r0
- ldr r0, _08141A38
- ands r0, r3
- orrs r0, r1
- strh r0, [r2, 0x4]
-_08141A02:
- ldr r2, _08141A3C
- lsls r1, r7, 2
- adds r0, r1, r7
- lsls r0, 3
- adds r6, r0, r2
- movs r2, 0xA
- ldrsh r0, [r6, r2]
- mov r9, r1
- cmp r0, 0
- bne _08141A44
- ldr r1, _08141A30
- lsls r2, r5, 4
- adds r0, r2, r5
- lsls r0, 2
- adds r1, 0x1C
- adds r0, r1
- ldr r1, _08141A40
- str r1, [r0]
- adds r4, r2, 0
- b _08141A8C
- .align 2, 0
-_08141A2C: .4byte gSpriteTemplate_8402500
-_08141A30: .4byte gSprites
-_08141A34: .4byte 0x000003ff
-_08141A38: .4byte 0xfffffc00
-_08141A3C: .4byte gTasks
-_08141A40: .4byte sub_8141B20
-_08141A44:
- ldr r3, _08141AC4
- lsls r4, r5, 4
- adds r1, r4, r5
- lsls r1, 2
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r1, r0
- ldr r2, _08141AC8
- str r2, [r0]
- adds r1, r3
- ldr r0, _08141ACC
- strh r0, [r1, 0x24]
- movs r0, 0x20
- strh r0, [r1, 0x26]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- movs r1, 0x1E
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _08141A8C
- mov r0, r8
- bl battle_side_get_owner
- lsls r0, 24
- movs r1, 0x3F
- cmp r0, 0
- bne _08141A82
- movs r1, 0xC0
-_08141A82:
- lsls r1, 24
- asrs r1, 24
- movs r0, 0x66
- bl PlaySE12WithPanning
-_08141A8C:
- ldr r1, _08141AC4
- adds r0, r4, r5
- lsls r0, 2
- adds r0, r1
- strh r7, [r0, 0x2E]
- ldr r1, _08141AD0
- mov r2, r9
- adds r0, r2, r7
- lsls r0, 3
- adds r2, r0, r1
- ldrh r1, [r2, 0x1E]
- adds r1, 0x1
- strh r1, [r2, 0x1E]
- ldrh r0, [r2, 0x20]
- adds r0, 0x1
- strh r0, [r2, 0x20]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x5
- bne _08141AB8
- ldr r0, _08141AD4
- str r0, [r2]
-_08141AB8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08141AC4: .4byte gSprites
-_08141AC8: .4byte sub_8141B74
-_08141ACC: .4byte 0x0000ffe0
-_08141AD0: .4byte gTasks
-_08141AD4: .4byte sub_8141AD8
- thumb_func_end sub_814191C
-
- thumb_func_start sub_8141AD8
-sub_8141AD8: @ 8141AD8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- adds r3, r0, 0
- ldr r1, _08141B18
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r1, r0, r1
- movs r2, 0x20
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08141B14
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- bne _08141B0E
- ldrb r1, [r1, 0x8]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldr r1, _08141B1C
- adds r0, r1
- ldrb r1, [r0, 0x1]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x1]
-_08141B0E:
- adds r0, r3, 0
- bl DestroyTask
-_08141B14:
- pop {r0}
- bx r0
- .align 2, 0
-_08141B18: .4byte gTasks
-_08141B1C: .4byte 0x02017810
- thumb_func_end sub_8141AD8
-
- thumb_func_start sub_8141B20
-sub_8141B20: @ 8141B20
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x18
- bl Sin
- strh r0, [r4, 0x24]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x18
- bl Cos
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x30]
- adds r0, 0xC
- strh r0, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xFF
- ble _08141B6A
- ldr r2, _08141B70
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x20]
- subs r1, 0x1
- strh r1, [r0, 0x20]
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_08141B6A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08141B70: .4byte gTasks
- thumb_func_end sub_8141B20
-
- thumb_func_start sub_8141B74
-sub_8141B74: @ 8141B74
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0x3
- bgt _08141B88
- adds r0, r1, 0x1
- strh r0, [r4, 0x30]
- b _08141BCA
-_08141B88:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrh r1, [r4, 0x24]
- adds r1, 0x5
- strh r1, [r4, 0x24]
- ldrh r0, [r4, 0x26]
- subs r0, 0x5
- strh r0, [r4, 0x26]
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x20
- ble _08141BCA
- ldr r2, _08141BD0
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r0, 0x20]
- subs r1, 0x1
- strh r1, [r0, 0x20]
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
-_08141BCA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08141BD0: .4byte gTasks
- thumb_func_end sub_8141B74
-
- thumb_func_start sub_8141BD4
-sub_8141BD4: @ 8141BD4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08141BFC
- bl LoadCompressedObjectPic
- ldr r0, _08141C00
- bl LoadCompressedObjectPalette
- ldr r0, _08141C04
- bl IndexOfSpritePaletteTag
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08141BFC: .4byte gBattleAnimPicTable + (269 * 8)
-_08141C00: .4byte gBattleAnimPaletteTable + (269 * 8)
-_08141C04: .4byte 0x0000281d
- thumb_func_end sub_8141BD4
-
- thumb_func_start sub_8141C08
-sub_8141C08: @ 8141C08
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08141C2C
- adds r0, r5, 0
- bl FreeSpriteTilesByTag
- adds r0, r5, 0
- bl FreeSpritePaletteByTag
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08141C2C: .4byte 0x0000281d
- thumb_func_end sub_8141C08
-
- thumb_func_start sub_8141C30
-sub_8141C30: @ 8141C30
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0
- bl sub_80787B0
- movs r0, 0x1E
- strh r0, [r4, 0x2E]
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl sub_8077ABC
- lsls r0, 24
- ldr r5, _08141CA4
- lsrs r0, 24
- ldrh r1, [r5, 0x4]
- adds r0, r1
- strh r0, [r4, 0x32]
- movs r0, 0x1
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- bl sub_8077ABC
- lsls r0, 24
- lsrs r0, 24
- ldrh r5, [r5, 0x6]
- adds r0, r5
- strh r0, [r4, 0x36]
- ldr r0, _08141CA8
- strh r0, [r4, 0x38]
- adds r0, r4, 0
- bl sub_80786EC
- ldr r1, _08141CAC
- ldr r0, _08141CB0
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08141CB4
- adds r0, r1
- movs r1, 0x1
- bl StartSpriteAnim
- ldr r0, _08141CB8
- str r0, [r4, 0x1C]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08141CA4: .4byte gUnknown_03004B00
-_08141CA8: .4byte 0x0000ffe0
-_08141CAC: .4byte gUnknown_02024BE0
-_08141CB0: .4byte gUnknown_0202F7C8
-_08141CB4: .4byte gSprites
-_08141CB8: .4byte sub_8141CBC
- thumb_func_end sub_8141C30
-
- thumb_func_start sub_8141CBC
-sub_8141CBC: @ 8141CBC
- push {lr}
- adds r3, r0, 0
- ldr r2, _08141CE4
- ldr r1, _08141CE8
- ldr r0, _08141CEC
- ldrb r0, [r0]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08141CE0
- ldr r0, _08141CF0
- str r0, [r3, 0x1C]
-_08141CE0:
- pop {r0}
- bx r0
- .align 2, 0
-_08141CE4: .4byte gSprites
-_08141CE8: .4byte gUnknown_02024BE0
-_08141CEC: .4byte gUnknown_0202F7C8
-_08141CF0: .4byte sub_8141CF4
- thumb_func_end sub_8141CBC
-
- thumb_func_start sub_8141CF4
-sub_8141CF4: @ 8141CF4
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8078718
- lsls r0, 24
- cmp r0, 0
- beq _08141D16
- movs r0, 0
- 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, _08141D1C
- str r0, [r4, 0x1C]
-_08141D16:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08141D1C: .4byte sub_8141D20
- thumb_func_end sub_8141CF4
-
- thumb_func_start sub_8141D20
-sub_8141D20: @ 8141D20
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r5, _08141D70
- ldr r3, _08141D74
- ldr r2, _08141D78
- ldrb r0, [r2]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 27
- cmp r0, 0
- bge _08141D68
- ldrh r0, [r4, 0x2E]
- adds r0, 0x1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- ble _08141D68
- ldrb r0, [r2]
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0
- bl StartSpriteAnim
- adds r0, r4, 0
- bl move_anim_8072740
-_08141D68:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08141D70: .4byte gSprites
-_08141D74: .4byte gUnknown_02024BE0
-_08141D78: .4byte gUnknown_0202F7C8
- thumb_func_end sub_8141D20
-
- thumb_func_start sub_8141D7C
-sub_8141D7C: @ 8141D7C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl battle_get_side_with_given_state
- ldr r1, _08141DA4
- strb r0, [r1]
- movs r0, 0x1
- bl battle_get_side_with_given_state
- ldr r1, _08141DA8
- strb r0, [r1]
- adds r0, r4, 0
- bl move_anim_task_del
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08141DA4: .4byte gUnknown_0202F7C8
-_08141DA8: .4byte gUnknown_0202F7C9
- thumb_func_end sub_8141D7C
-
- thumb_func_start sub_8141DAC
-sub_8141DAC: @ 8141DAC
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08141DC0
- ldrh r1, [r0]
- cmp r1, 0x53
- bne _08141DC8
- ldr r1, _08141DC4
- movs r0, 0x1
- b _08141E00
- .align 2, 0
-_08141DC0: .4byte 0x02017840
-_08141DC4: .4byte gUnknown_03004B00
-_08141DC8:
- cmp r1, 0xFA
- bne _08141DD8
- ldr r1, _08141DD4
- movs r0, 0x2
- b _08141E00
- .align 2, 0
-_08141DD4: .4byte gUnknown_03004B00
-_08141DD8:
- cmp r1, 0x80
- bne _08141DE8
- ldr r1, _08141DE4
- movs r0, 0x3
- b _08141E00
- .align 2, 0
-_08141DE4: .4byte gUnknown_03004B00
-_08141DE8:
- movs r0, 0xA4
- lsls r0, 1
- cmp r1, r0
- bne _08141DFC
- ldr r1, _08141DF8
- movs r0, 0x4
- b _08141E00
- .align 2, 0
-_08141DF8: .4byte gUnknown_03004B00
-_08141DFC:
- ldr r1, _08141E0C
- movs r0, 0
-_08141E00:
- strh r0, [r1]
- adds r0, r2, 0
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_08141E0C: .4byte gUnknown_03004B00
- thumb_func_end sub_8141DAC
-
- thumb_func_start sub_8141E10
-sub_8141E10: @ 8141E10
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08141E2C
- ldr r1, _08141E30
- ldrh r1, [r1]
- strb r1, [r2]
- ldr r2, _08141E34
- lsrs r1, 8
- strb r1, [r2]
- bl move_anim_task_del
- pop {r0}
- bx r0
- .align 2, 0
-_08141E2C: .4byte gUnknown_0202F7C8
-_08141E30: .4byte 0x02017840
-_08141E34: .4byte gUnknown_0202F7C9
- thumb_func_end sub_8141E10
-
- thumb_func_start sub_8141E38
-sub_8141E38: @ 8141E38
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8141E38
-
- thumb_func_start sub_8141E4C
-sub_8141E4C: @ 8141E4C
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8141E4C
-
- thumb_func_start sub_8141E64
-sub_8141E64: @ 8141E64
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08141E80
- ldr r1, _08141E84
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x4
- bhi _08141EA0
- lsls r0, 2
- ldr r1, _08141E88
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08141E80: .4byte gMain
-_08141E84: .4byte 0x0000043c
-_08141E88: .4byte _08141E8C
- .align 2, 0
-_08141E8C:
- .4byte _08141EA0
- .4byte _08141EC0
- .4byte _08141EC6
- .4byte _08141F1C
- .4byte _08141F58
-_08141EA0:
- movs r0, 0
- bl SetVBlankCallback
- bl sub_81433E0
- ldr r0, _08141EB8
- ldr r2, _08141EBC
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0]
- b _08141F84
- .align 2, 0
-_08141EB8: .4byte gMain
-_08141EBC: .4byte 0x0000043c
-_08141EC0:
- bl sub_8143570
- b _08141F38
-_08141EC6:
- 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, _08141F04
- bl SetVBlankCallback
- ldr r3, _08141F08
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _08141F0C
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08141F10
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08141F14
- ldr r2, _08141F18
- adds r1, r2
- b _08141F3E
- .align 2, 0
-_08141F04: .4byte sub_8141E38
-_08141F08: .4byte 0x04000208
-_08141F0C: .4byte 0x04000200
-_08141F10: .4byte REG_DISPSTAT
-_08141F14: .4byte gMain
-_08141F18: .4byte 0x0000043c
-_08141F1C:
- ldr r1, _08141F48
- ldr r2, _08141F4C
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r2, 0xE2
- lsls r2, 3
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0
- strh r0, [r1]
- bl sub_81435B8
-_08141F38:
- ldr r1, _08141F50
- ldr r0, _08141F54
- adds r1, r0
-_08141F3E:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08141F84
- .align 2, 0
-_08141F48: .4byte REG_BLDCNT
-_08141F4C: .4byte 0x00003f42
-_08141F50: .4byte gMain
-_08141F54: .4byte 0x0000043c
-_08141F58:
- bl UpdatePaletteFade
- ldr r0, _08141F7C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08141F84
- ldr r0, _08141F80
- bl SetMainCallback2
- movs r0, 0xDA
- lsls r0, 1
- bl PlayBGM
- movs r0, 0
- b _08141F86
- .align 2, 0
-_08141F7C: .4byte gPaletteFade
-_08141F80: .4byte sub_8141E4C
-_08141F84:
- movs r0, 0x1
-_08141F86:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8141E64
-
- thumb_func_start sub_8141F90
-sub_8141F90: @ 8141F90
- push {r4,lr}
- bl sub_8141E64
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08141FB6
- ldr r0, _08141FBC
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08141FC0
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
-_08141FB6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08141FBC: .4byte sub_8141FF8
-_08141FC0: .4byte gTasks
- thumb_func_end sub_8141F90
-
- thumb_func_start sub_8141FC4
-sub_8141FC4: @ 8141FC4
- push {lr}
- bl sub_8141E64
- lsls r0, 24
- cmp r0, 0
- bne _08141FEA
- ldr r0, _08141FF0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08141FF4
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0x1
- strh r0, [r1, 0x8]
-_08141FEA:
- pop {r0}
- bx r0
- .align 2, 0
-_08141FF0: .4byte sub_8141FF8
-_08141FF4: .4byte gTasks
- thumb_func_end sub_8141FC4
-
- thumb_func_start sub_8141FF8
-sub_8141FF8: @ 8141FF8
- 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 r8, r0
- ldr r0, _081420C8
- mov r9, r0
- ldr r1, _081420CC
- mov r2, r8
- lsls r0, r2, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xC]
- movs r7, 0
- ldr r4, _081420D0
- mov r10, r4
-_08142024:
- movs r0, 0x64
- adds r1, r7, 0
- muls r1, r0
- ldr r0, _081420D4
- adds r6, r1, r0
- adds r0, r6, 0
- movs r1, 0xB
- bl GetMonData
- adds r3, r0, 0
- cmp r3, 0
- beq _081420DC
- adds r0, r6, 0
- movs r1, 0x41
- bl GetMonData
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 2
- mov r1, r9
- adds r5, r1, r4
- ldr r2, _081420D8
- adds r1, r2, 0
- ands r0, r1
- ldrh r1, [r5, 0x8]
- mov r2, r10
- ands r1, r2
- orrs r1, r0
- strh r1, [r5, 0x8]
- adds r0, r6, 0
- movs r1, 0x1
- bl GetMonData
- str r0, [r5]
- adds r0, r6, 0
- movs r1, 0
- bl GetMonData
- mov r1, r9
- adds r1, 0x4
- adds r1, r4
- str r0, [r1]
- adds r0, r6, 0
- movs r1, 0x38
- bl GetMonData
- lsls r0, 1
- ldrb r2, [r5, 0x9]
- movs r1, 0x1
- ands r1, r2
- orrs r1, r0
- strb r1, [r5, 0x9]
- adds r0, r6, 0
- movs r1, 0x2
- mov r2, sp
- bl GetMonData
- movs r2, 0
- mov r6, r8
- lsls r5, r6, 2
- mov r3, r9
- adds r3, 0xA
-_081420A0:
- adds r1, r2, r4
- adds r1, r3, r1
- mov r6, sp
- adds r0, r6, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x9
- bls _081420A0
- ldr r0, _081420CC
- mov r2, r8
- adds r1, r5, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xC]
- adds r0, 0x1
- strh r0, [r1, 0xC]
- b _08142108
- .align 2, 0
-_081420C8: .4byte 0x0201c000
-_081420CC: .4byte gTasks
-_081420D0: .4byte 0xfffffe00
-_081420D4: .4byte gPlayerParty
-_081420D8: .4byte 0x000001ff
-_081420DC:
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 2
- mov r4, r9
- adds r2, r4, r1
- ldrh r0, [r2, 0x8]
- mov r6, r10
- ands r0, r6
- strh r0, [r2, 0x8]
- str r3, [r2]
- mov r0, r9
- adds r0, 0x4
- adds r0, r1
- str r3, [r0]
- ldrb r1, [r2, 0x9]
- movs r0, 0x1
- ands r0, r1
- strb r0, [r2, 0x9]
- movs r0, 0xFF
- strb r0, [r2, 0xA]
- mov r0, r8
- lsls r5, r0, 2
-_08142108:
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x5
- bls _08142024
- ldr r0, _08142158
- movs r3, 0
- str r3, [r0]
- ldr r4, _0814215C
- mov r2, r8
- adds r1, r5, r2
- lsls r1, 3
- adds r2, r1, r4
- strh r3, [r2, 0xA]
- movs r0, 0xFF
- strh r0, [r2, 0x10]
- movs r7, 0
- adds r3, r4, 0
- adds r3, 0x8
- movs r2, 0xFF
-_08142130:
- adds r0, r7, 0x5
- lsls r0, 1
- adds r0, r1
- adds r0, r3
- strh r2, [r0]
- adds r0, r7, 0x1
- lsls r0, 16
- lsrs r7, r0, 16
- cmp r7, 0x5
- bls _08142130
- mov r6, r8
- adds r0, r5, r6
- lsls r0, 3
- adds r1, r0, r4
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _08142164
- ldr r0, _08142160
- b _08142166
- .align 2, 0
-_08142158: .4byte gUnknown_0203931C
-_0814215C: .4byte gTasks
-_08142160: .4byte sub_81422E8
-_08142164:
- ldr r0, _08142178
-_08142166:
- str 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
-_08142178: .4byte sub_814217C
- thumb_func_end sub_8141FF8
-
- thumb_func_start sub_814217C
-sub_814217C: @ 814217C
- 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
- ldr r0, _081421C4
- mov r9, r0
- movs r7, 0x80
- lsls r7, 6
- add r7, r9
- ldr r0, _081421C8
- ldrb r0, [r0]
- cmp r0, 0
- bne _081421D4
- movs r4, 0
- mov r0, r8
- lsls r0, 2
- mov r10, r0
- ldr r5, _081421CC
- add r5, r9
- movs r3, 0xF0
- lsls r3, 9
- movs r2, 0
- ldr r1, _081421D0
-_081421B2:
- adds r0, r4, r3
- adds r0, r5
- strb r2, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r1
- bls _081421B2
- b _081421E0
- .align 2, 0
-_081421C4: .4byte 0x0201c000
-_081421C8: .4byte gUnknown_02039324
-_081421CC: .4byte 0xfffe4000
-_081421D0: .4byte 0x00001fff
-_081421D4:
- movs r0, 0x3
- bl sub_8125EC8
- mov r0, r8
- lsls r0, 2
- mov r10, r0
-_081421E0:
- movs r4, 0
- ldrh r1, [r7, 0x8]
- ldr r2, _081421E8
- b _081421FA
- .align 2, 0
-_081421E8: .4byte 0x000001ff
-_081421EC:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r7, 0x78
- cmp r4, 0x31
- bhi _08142206
- ldrh r1, [r7, 0x8]
-_081421FA:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _081421EC
- cmp r4, 0x31
- bls _08142228
-_08142206:
- ldr r5, _08142264
- adds r6, r5, 0
- adds r5, 0x78
- movs r4, 0
- subs r7, 0x78
-_08142210:
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x78
- bl memcpy
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- adds r6, 0x78
- adds r5, 0x78
- cmp r4, 0x30
- bls _08142210
-_08142228:
- adds r0, r7, 0
- mov r1, r9
- movs r2, 0x78
- bl memcpy
- movs r0, 0x2
- movs r1, 0xE
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08142268
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrint
- ldr r1, _0814226C
- mov r0, r10
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldr r1, _08142270
- 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
-_08142264: .4byte 0x0201e000
-_08142268: .4byte gMenuText_HOFSaving
-_0814226C: .4byte gTasks
-_08142270: .4byte sub_8142274
- thumb_func_end sub_814217C
-
- thumb_func_start sub_8142274
-sub_8142274: @ 8142274
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _081422A8
- ldr r0, _081422AC
- str r0, [r1]
- movs r0, 0x3
- bl sub_8125D44
- movs r0, 0x37
- bl PlaySE
- ldr r1, _081422B0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _081422B4
- str r1, [r0]
- movs r1, 0x20
- strh r1, [r0, 0xE]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081422A8: .4byte gUnknown_03005EBC
-_081422AC: .4byte sub_8141FC4
-_081422B0: .4byte gTasks
-_081422B4: .4byte sub_81422B8
- thumb_func_end sub_8142274
-
- thumb_func_start sub_81422B8
-sub_81422B8: @ 81422B8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081422D8
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrh r2, [r1, 0xE]
- movs r3, 0xE
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _081422DC
- subs r0, r2, 0x1
- strh r0, [r1, 0xE]
- b _081422E0
- .align 2, 0
-_081422D8: .4byte gTasks
-_081422DC:
- ldr r0, _081422E4
- str r0, [r1]
-_081422E0:
- pop {r0}
- bx r0
- .align 2, 0
-_081422E4: .4byte sub_81422E8
- thumb_func_end sub_81422B8
-
- thumb_func_start sub_81422E8
-sub_81422E8: @ 81422E8
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08142314
- adds r0, r5, 0
- bl SetUpWindowConfig
- adds r0, r5, 0
- bl InitMenuWindow
- ldr r1, _08142318
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0814231C
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08142314: .4byte gWindowConfig_81E7198
-_08142318: .4byte gTasks
-_0814231C: .4byte sub_8142320
- thumb_func_end sub_81422E8
-
- thumb_func_start sub_8142320
-sub_8142320: @ 8142320
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, _08142350
- ldr r0, _08142354
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldrh r6, [r1, 0xA]
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 2
- adds r4, r0, r2
- movs r2, 0xC
- ldrsh r0, [r1, r2]
- cmp r0, 0x3
- ble _0814235C
- ldr r1, _08142358
- b _0814235E
- .align 2, 0
-_08142350: .4byte 0x0201c000
-_08142354: .4byte gTasks
-_08142358: .4byte gUnknown_0840B534
-_0814235C:
- ldr r1, _081423F0
-_0814235E:
- lsls r2, r6, 3
- adds r0, r2, r1
- ldrh r5, [r0]
- adds r0, r1, 0x2
- adds r0, r2, r0
- ldrh r3, [r0]
- adds r0, r1, 0x4
- adds r0, r2, r0
- ldrh r0, [r0]
- mov r9, r0
- adds r1, 0x6
- adds r2, r1
- ldrh r2, [r2]
- mov r8, r2
- ldrh r0, [r4, 0x8]
- lsls r0, 23
- lsrs r0, 23
- lsls r1, r5, 16
- asrs r1, 16
- lsls r2, r3, 16
- asrs r2, 16
- ldr r3, [r4]
- str r3, [sp]
- ldr r3, [r4, 0x4]
- str r3, [sp, 0x4]
- adds r3, r6, 0
- bl sub_81436BC
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _081423F4
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r2, r1, r3
- movs r4, 0
- mov r5, r9
- strh r5, [r2, 0x30]
- mov r5, r8
- strh r5, [r2, 0x32]
- strh r4, [r2, 0x2E]
- adds r3, 0x1C
- adds r1, r3
- ldr r2, _081423F8
- str r2, [r1]
- ldr r5, _081423FC
- adds r1, r6, 0x5
- lsls r1, 1
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r1, r4
- adds r2, r5, 0
- adds r2, 0x8
- adds r1, r2
- strh r0, [r1]
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- adds r4, r5
- ldr r0, _08142400
- str r0, [r4]
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081423F0: .4byte gUnknown_0840B564
-_081423F4: .4byte gSprites
-_081423F8: .4byte sub_81435DC
-_081423FC: .4byte gTasks
-_08142400: .4byte sub_8142404
- thumb_func_end sub_8142320
-
- thumb_func_start sub_8142404
-sub_8142404: @ 8142404
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08142470
- ldr r3, _08142474
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r5, r2, r3
- ldrh r1, [r5, 0xA]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r6, r0, r4
- ldr r4, _08142478
- adds r1, 0x5
- lsls r1, 1
- adds r1, r2
- adds r3, 0x8
- adds r1, r3
- movs r0, 0
- ldrsh r1, [r1, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x2E
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0814246A
- ldrh r2, [r6, 0x8]
- ldr r0, _0814247C
- ands r0, r2
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08142458
- lsls r0, r2, 23
- lsrs r0, 23
- movs r1, 0
- bl PlayCry1
-_08142458:
- adds r0, r6, 0
- movs r1, 0
- movs r2, 0xE
- bl sub_8143088
- movs r0, 0x78
- strh r0, [r5, 0xE]
- ldr r0, _08142480
- str r0, [r5]
-_0814246A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08142470: .4byte 0x0201c000
-_08142474: .4byte gTasks
-_08142478: .4byte gSprites
-_0814247C: .4byte 0x000001ff
-_08142480: .4byte sub_8142484
- thumb_func_end sub_8142404
-
- thumb_func_start sub_8142484
-sub_8142484: @ 8142484
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, _081424BC
- ldr r1, _081424C0
- lsls r0, r5, 2
- adds r0, r5
- lsls r6, r0, 3
- adds r4, r6, r1
- ldrh r3, [r4, 0xA]
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 2
- adds r0, r2
- mov r9, r0
- ldrh r2, [r4, 0xE]
- movs r7, 0xE
- ldrsh r0, [r4, r7]
- mov r12, r1
- cmp r0, 0
- beq _081424C4
- subs r0, r2, 0x1
- strh r0, [r4, 0xE]
- b _0814255C
- .align 2, 0
-_081424BC: .4byte 0x0201c000
-_081424C0: .4byte gTasks
-_081424C4:
- ldr r2, _0814253C
- ldr r0, _08142540
- mov r8, r0
- adds r0, r3, 0x5
- lsls r0, 1
- adds r0, r6
- mov r1, r12
- adds r1, 0x8
- adds r6, r0, r1
- movs r7, 0
- ldrsh r1, [r6, r7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- movs r1, 0x80
- lsls r1, 9
- lsls r1, r0
- ldr r3, [r2]
- orrs r3, r1
- str r3, [r2]
- ldrh r2, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bgt _08142550
- mov r7, r9
- ldrh r1, [r7, 0x1C]
- ldr r0, _08142544
- ands r0, r1
- cmp r0, 0
- beq _08142550
- adds r0, r2, 0x1
- strh r0, [r4, 0xA]
- ldr r0, _08142548
- str r0, [sp]
- adds r0, r3, 0
- movs r1, 0
- movs r2, 0xC
- movs r3, 0xC
- bl BeginNormalPaletteFade
- movs r0, 0
- ldrsh r1, [r6, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r0, _0814254C
- str r0, [r4]
- b _0814255C
- .align 2, 0
-_0814253C: .4byte gUnknown_0203931C
-_08142540: .4byte gSprites
-_08142544: .4byte 0x000001ff
-_08142548: .4byte 0x0000735f
-_0814254C: .4byte sub_8142320
-_08142550:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- add r0, r12
- ldr r1, _0814256C
- str r1, [r0]
-_0814255C:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814256C: .4byte sub_8142570
- thumb_func_end sub_8142484
-
- thumb_func_start sub_8142570
-sub_8142570: @ 8142570
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08142604
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r3, 0
- lsls r1, r4, 2
- adds r0, r1, r4
- lsls r5, r0, 3
- ldr r0, _08142608
- mov r12, r0
- mov r8, r1
- ldr r6, _0814260C
- movs r7, 0xD
- negs r7, r7
-_0814259E:
- adds r0, r3, 0x5
- lsls r0, 1
- adds r0, r5
- mov r2, r12
- adds r1, r0, r2
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0xFF
- beq _081425C0
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r2, [r1, 0x5]
- adds r0, r7, 0
- ands r0, r2
- strb r0, [r1, 0x5]
-_081425C0:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x5
- bls _0814259E
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- movs r1, 0xF
- bl sub_8143068
- movs r0, 0x69
- bl PlaySE
- ldr r1, _08142610
- mov r2, r8
- adds r0, r2, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0xC8
- lsls r1, 1
- strh r1, [r0, 0xE]
- ldr r1, _08142614
- str r1, [r0]
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142604: .4byte 0xffff0000
-_08142608: .4byte gUnknown_03004B28
-_0814260C: .4byte gSprites
-_08142610: .4byte gTasks
-_08142614: .4byte sub_8142618
- thumb_func_end sub_8142570
-
- thumb_func_start sub_8142618
-sub_8142618: @ 8142618
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r7, _08142658
- lsls r4, r6, 2
- adds r0, r4, r6
- lsls r5, r0, 3
- adds r1, r5, r7
- ldrh r2, [r1, 0xE]
- movs r3, 0xE
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0814265C
- subs r2, 0x1
- strh r2, [r1, 0xE]
- movs r0, 0x3
- ands r0, r2
- cmp r0, 0
- bne _081426D2
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x6E
- ble _081426D2
- bl sub_81438C4
- b _081426D2
- .align 2, 0
-_08142658: .4byte gTasks
-_0814265C:
- movs r3, 0
- mov r9, r4
- ldr r0, _081426E4
- mov r10, r0
- adds r4, r5, 0
- adds r7, 0x8
- mov r8, r7
- ldr r7, _081426E8
- movs r1, 0xD
- negs r1, r1
- mov r12, r1
- movs r5, 0x4
-_08142674:
- adds r0, r3, 0x5
- lsls r0, 1
- adds r0, r4
- mov r2, r8
- adds r1, r0, r2
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0xFF
- beq _08142698
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- ldrb r2, [r1, 0x5]
- mov r0, r12
- ands r0, r2
- orrs r0, r5
- strb r0, [r1, 0x5]
-_08142698:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x5
- bls _08142674
- mov r3, r10
- ldr r0, [r3]
- ldr r1, _081426EC
- str r1, [sp]
- movs r1, 0
- movs r2, 0xC
- movs r3, 0xC
- bl BeginNormalPaletteFade
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _081426F0
- mov r2, r9
- adds r0, r2, r6
- lsls r0, 3
- adds r0, r1
- movs r1, 0x7
- strh r1, [r0, 0xE]
- ldr r1, _081426F4
- str r1, [r0]
-_081426D2:
- 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
-_081426E4: .4byte gUnknown_0203931C
-_081426E8: .4byte gSprites
-_081426EC: .4byte 0x0000735f
-_081426F0: .4byte gTasks
-_081426F4: .4byte sub_81426F8
- thumb_func_end sub_8142618
-
- thumb_func_start sub_81426F8
-sub_81426F8: @ 81426F8
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08142718
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r2, r1, r2
- ldrh r1, [r2, 0xE]
- movs r3, 0xE
- ldrsh r0, [r2, r3]
- cmp r0, 0xF
- ble _08142720
- ldr r0, _0814271C
- str r0, [r2]
- b _0814272E
- .align 2, 0
-_08142718: .4byte gTasks
-_0814271C: .4byte sub_8142738
-_08142720:
- adds r0, r1, 0x1
- strh r0, [r2, 0xE]
- ldr r1, _08142734
- movs r3, 0xE
- ldrsh r0, [r2, r3]
- lsls r0, 8
- strh r0, [r1]
-_0814272E:
- pop {r0}
- bx r0
- .align 2, 0
-_08142734: .4byte REG_BLDALPHA
- thumb_func_end sub_81426F8
-
- thumb_func_start sub_8142738
-sub_8142738: @ 8142738
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xCA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r4, _08142784
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- ldr r0, _08142788
- ldrb r0, [r0, 0x8]
- movs r1, 0x78
- movs r2, 0x48
- movs r3, 0x6
- bl sub_81437A4
- ldr r2, _0814278C
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r2
- strh r0, [r1, 0x10]
- movs r0, 0x78
- strh r0, [r1, 0xE]
- ldr r0, _08142790
- str r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08142784: .4byte gWindowConfig_81E71B4
-_08142788: .4byte gSaveBlock2
-_0814278C: .4byte gTasks
-_08142790: .4byte sub_8142794
- thumb_func_end sub_8142738
-
- thumb_func_start sub_8142794
-sub_8142794: @ 8142794
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081427B4
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081427B8
- subs r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _0814280A
- .align 2, 0
-_081427B4: .4byte gTasks
-_081427B8:
- ldr r2, _081427D8
- movs r3, 0x10
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldrh r2, [r1, 0x20]
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- cmp r0, 0xA0
- beq _081427DC
- adds r0, r2, 0x1
- strh r0, [r1, 0x20]
- b _0814280A
- .align 2, 0
-_081427D8: .4byte gSprites
-_081427DC:
- movs r0, 0x1
- movs r1, 0x2
- movs r2, 0xF
- movs r3, 0x9
- bl MenuDrawTextWindow
- movs r0, 0x1
- movs r1, 0x2
- bl sub_8143300
- movs r0, 0x2
- movs r1, 0xE
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08142810
- movs r1, 0x4
- movs r2, 0xF
- bl MenuPrint
- ldr r0, _08142814
- str r0, [r4]
-_0814280A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08142810: .4byte gMenuText_HOFCongratulations
-_08142814: .4byte sub_8142818
- thumb_func_end sub_8142794
-
- thumb_func_start sub_8142818
-sub_8142818: @ 8142818
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08142844
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0814283E
- movs r0, 0x4
- bl FadeOutBGM
- ldr r0, _08142848
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0814284C
- str r0, [r1]
-_0814283E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08142844: .4byte gMain
-_08142848: .4byte gTasks
-_0814284C: .4byte sub_8142850
- thumb_func_end sub_8142818
-
- thumb_func_start sub_8142850
-sub_8142850: @ 8142850
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08142890
- ldr r1, _08142894
- movs r2, 0x80
- lsls r2, 2
- bl CpuSet
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r1, 0x8
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08142898
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0814289C
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08142890: .4byte gPlttBufferFaded
-_08142894: .4byte gPlttBufferUnfaded
-_08142898: .4byte gTasks
-_0814289C: .4byte sub_81428A0
- thumb_func_end sub_8142850
-
- thumb_func_start sub_81428A0
-sub_81428A0: @ 81428A0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _081428C4
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081428BE
- adds r0, r2, 0
- bl DestroyTask
- ldr r0, _081428C8
- bl SetMainCallback2
-_081428BE:
- pop {r0}
- bx r0
- .align 2, 0
-_081428C4: .4byte gPaletteFade
-_081428C8: .4byte sub_81439D0
- thumb_func_end sub_81428A0
-
- thumb_func_start sub_81428CC
-sub_81428CC: @ 81428CC
- push {r4,r5,lr}
- ldr r0, _081428E4
- ldr r1, _081428E8
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x5
- bhi _08142908
- lsls r0, 2
- ldr r1, _081428EC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081428E4: .4byte gMain
-_081428E8: .4byte 0x0000043c
-_081428EC: .4byte _081428F0
- .align 2, 0
-_081428F0:
- .4byte _08142908
- .4byte _08142928
- .4byte _0814293C
- .4byte _08142980
- .4byte _081429C0
- .4byte _081429EC
-_08142908:
- movs r0, 0
- bl SetVBlankCallback
- bl sub_81433E0
- ldr r0, _08142920
- ldr r2, _08142924
- adds r0, r2
- movs r1, 0x1
- strb r1, [r0]
- b _08142A12
- .align 2, 0
-_08142920: .4byte gMain
-_08142924: .4byte 0x0000043c
-_08142928:
- bl sub_8143570
- ldr r1, _08142934
- ldr r3, _08142938
- adds r1, r3
- b _081429DC
- .align 2, 0
-_08142934: .4byte gMain
-_08142938: .4byte 0x0000043c
-_0814293C:
- ldr r0, _08142968
- bl SetVBlankCallback
- ldr r3, _0814296C
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _08142970
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08142974
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r1, _08142978
- ldr r4, _0814297C
- adds r1, r4
- b _081429DC
- .align 2, 0
-_08142968: .4byte sub_8141E38
-_0814296C: .4byte 0x04000208
-_08142970: .4byte 0x04000200
-_08142974: .4byte REG_DISPSTAT
-_08142978: .4byte gMain
-_0814297C: .4byte 0x0000043c
-_08142980:
- ldr r0, _081429AC
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl sub_81435B8
- ldr r0, _081429B0
- adds r2, r0, 0
- ldr r1, _081429B4
- ldm r1!, {r3-r5}
- stm r2!, {r3-r5}
- ldm r1!, {r3,r5}
- stm r2!, {r3,r5}
- bl sub_80C5CD4
- ldr r1, _081429B8
- ldr r4, _081429BC
- adds r1, r4
- b _081429DC
- .align 2, 0
-_081429AC: .4byte REG_BLDCNT
-_081429B0: .4byte 0x0201c000
-_081429B4: .4byte gUnknown_0840B57C
-_081429B8: .4byte gMain
-_081429BC: .4byte 0x0000043c
-_081429C0:
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- bl sub_80C5DCC
- lsls r0, 24
- cmp r0, 0
- beq _08142A12
- ldr r1, _081429E4
- ldr r5, _081429E8
- adds r1, r5
-_081429DC:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08142A12
- .align 2, 0
-_081429E4: .4byte gMain
-_081429E8: .4byte 0x0000043c
-_081429EC:
- ldr r1, _08142A18
- ldr r2, _08142A1C
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r3, 0xE2
- lsls r3, 3
- adds r0, r3, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08142A20
- movs r1, 0
- bl CreateTask
- ldr r0, _08142A24
- bl SetMainCallback2
-_08142A12:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08142A18: .4byte REG_BLDCNT
-_08142A1C: .4byte 0x00003f42
-_08142A20: .4byte sub_8142A28
-_08142A24: .4byte sub_8141E4C
- thumb_func_end sub_81428CC
-
- thumb_func_start sub_8142A28
-sub_8142A28: @ 8142A28
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0x3
- bl sub_8125EC8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08142A54
- ldr r0, _08142A4C
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _08142A50
- str r0, [r1]
- b _08142AEA
- .align 2, 0
-_08142A4C: .4byte gTasks
-_08142A50: .4byte sub_8142FEC
-_08142A54:
- ldr r2, _08142A8C
- movs r3, 0
- ldrh r1, [r2, 0x8]
- ldr r4, _08142A90
- adds r0, r4, 0
- ands r0, r1
- ldr r7, _08142A94
- lsls r6, r5, 2
- cmp r0, 0
- beq _08142A7E
-_08142A68:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- adds r2, 0x78
- cmp r3, 0x31
- bhi _08142A98
- ldrh r1, [r2, 0x8]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- bne _08142A68
-_08142A7E:
- cmp r3, 0x31
- bhi _08142A98
- adds r0, r6, r5
- lsls r0, 3
- adds r0, r7
- subs r1, r3, 0x1
- b _08142AA0
- .align 2, 0
-_08142A8C: .4byte 0x0201e000
-_08142A90: .4byte 0x000001ff
-_08142A94: .4byte gTasks
-_08142A98:
- adds r0, r6, r5
- lsls r0, 3
- adds r0, r7
- movs r1, 0x31
-_08142AA0:
- strh r1, [r0, 0x8]
- movs r0, 0xA
- bl sub_8053108
- ldr r2, _08142AF0
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r2
- strh r0, [r1, 0xA]
- movs r3, 0
- ldr r7, _08142AF4
- ldr r4, _08142AF8
-_08142AB8:
- lsls r1, r3, 1
- adds r2, r1, r7
- adds r0, r3, 0x3
- strh r0, [r2]
- adds r1, r4
- adds r0, 0x11
- strh r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x10
- bls _08142AB8
- ldr r4, _08142AFC
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- ldr r1, _08142AF0
- adds r0, r6, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _08142B00
- str r1, [r0]
-_08142AEA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142AF0: .4byte gTasks
-_08142AF4: .4byte 0x0600381a
-_08142AF8: .4byte 0x0600385a
-_08142AFC: .4byte gWindowConfig_81E7198
-_08142B00: .4byte sub_8142B04
- thumb_func_end sub_8142A28
-
- thumb_func_start sub_8142B04
-sub_8142B04: @ 8142B04
- 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
- mov r8, r0
- ldr r3, _08142BB8
- movs r5, 0
- ldr r1, _08142BBC
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r6, r1, 0
- ldr r2, _08142BC0
- cmp r5, r0
- bge _08142B3E
- adds r1, r0, 0
-_08142B32:
- adds r3, 0x78
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r1
- blt _08142B32
-_08142B3E:
- adds r4, r3, 0
- movs r0, 0
- str r0, [r2]
- mov r5, r8
- lsls r2, r5, 2
- adds r1, r2, r5
- lsls r1, 3
- adds r1, r6
- strh r0, [r1, 0xC]
- strh r0, [r1, 0x10]
- movs r5, 0
- str r2, [sp, 0xC]
- ldr r6, _08142BC4
- adds r2, r1, 0
-_08142B5A:
- ldrh r1, [r4, 0x8]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _08142B6A
- ldrh r0, [r2, 0x10]
- adds r0, 0x1
- strh r0, [r2, 0x10]
-_08142B6A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- adds r4, 0x14
- cmp r5, 0x5
- bls _08142B5A
- adds r4, r3, 0
- movs r5, 0
- ldr r1, _08142BBC
- ldr r0, [sp, 0xC]
- add r0, r8
- lsls r7, r0, 3
- adds r6, r7, r1
- str r6, [sp, 0x8]
- adds r1, 0x8
- mov r9, r1
- ldr r0, _08142BC8
- mov r10, r0
-_08142B8E:
- ldrh r1, [r4, 0x8]
- ldr r2, _08142BC4
- adds r0, r2, 0
- ands r0, r1
- adds r6, r1, 0
- cmp r0, 0
- beq _08142C30
- ldr r1, [sp, 0x8]
- movs r2, 0x10
- ldrsh r0, [r1, r2]
- cmp r0, 0x3
- ble _08142BD4
- lsls r1, r5, 3
- ldr r0, _08142BCC
- adds r0, 0x4
- adds r0, r1, r0
- ldrh r3, [r0]
- ldr r0, _08142BD0
- adds r1, r0
- b _08142BE2
- .align 2, 0
-_08142BB8: .4byte 0x0201e000
-_08142BBC: .4byte gTasks
-_08142BC0: .4byte gUnknown_0203931C
-_08142BC4: .4byte 0x000001ff
-_08142BC8: .4byte gUnknown_0840B564
-_08142BCC: .4byte gUnknown_0840B534
-_08142BD0: .4byte gUnknown_0840B53A
-_08142BD4:
- lsls r1, r5, 3
- mov r0, r10
- adds r0, 0x4
- adds r0, r1, r0
- ldrh r3, [r0]
- ldr r2, _08142C28
- adds r1, r2
-_08142BE2:
- ldrh r2, [r1]
- lsls r0, r6, 23
- lsrs r0, 23
- lsls r1, r3, 16
- asrs r1, 16
- lsls r2, 16
- asrs r2, 16
- ldr r3, [r4]
- str r3, [sp]
- ldr r3, [r4, 0x4]
- str r3, [sp, 0x4]
- adds r3, r5, 0
- bl sub_81436BC
- lsls r0, 16
- lsrs r0, 16
- ldr r2, _08142C2C
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r3, [r1, 0x5]
- movs r6, 0xD
- negs r6, r6
- adds r2, r6, 0
- ands r3, r2
- movs r2, 0x4
- orrs r3, r2
- strb r3, [r1, 0x5]
- adds r1, r5, 0x5
- lsls r1, 1
- adds r1, r7
- add r1, r9
- strh r0, [r1]
- b _08142C3C
- .align 2, 0
-_08142C28: .4byte gUnknown_0840B56A
-_08142C2C: .4byte gSprites
-_08142C30:
- adds r0, r5, 0x5
- lsls r0, 1
- adds r0, r7
- add r0, r9
- movs r1, 0xFF
- strh r1, [r0]
-_08142C3C:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- adds r4, 0x14
- cmp r5, 0x5
- bls _08142B8E
- ldr r0, _08142CB0
- ldr r2, _08142CB4
- movs r1, 0xC
- bl BlendPalettes
- ldr r3, _08142CB8
- ldr r1, _08142CBC
- adds r0, r3, 0
- bl StringCopy
- adds r3, r0, 0
- movs r5, 0xFC
- strb r5, [r3]
- movs r0, 0x14
- strb r0, [r3, 0x1]
- movs r0, 0x6
- strb r0, [r3, 0x2]
- adds r3, 0x3
- ldr r0, _08142CC0
- ldr r4, [sp, 0xC]
- add r4, r8
- lsls r4, 3
- adds r4, r0
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- adds r0, r3, 0
- bl ConvertIntToDecimalString
- adds r3, r0, 0
- strb r5, [r3]
- movs r0, 0x13
- strb r0, [r3, 0x1]
- movs r0, 0xF0
- strb r0, [r3, 0x2]
- movs r0, 0xFF
- strb r0, [r3, 0x3]
- ldr r0, _08142CB8
- movs r1, 0
- movs r2, 0
- bl MenuPrint
- ldr r0, _08142CC4
- str r0, [r4]
- 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
-_08142CB0: .4byte 0xffff0000
-_08142CB4: .4byte 0x0000735f
-_08142CB8: .4byte gStringVar1
-_08142CBC: .4byte gMenuText_HOFNumber
-_08142CC0: .4byte gTasks
-_08142CC4: .4byte sub_8142CC8
- thumb_func_end sub_8142B04
-
- thumb_func_start sub_8142CC8
-sub_8142CC8: @ 8142CC8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08142DD0
- mov r8, r0
- movs r3, 0
- ldr r1, _08142DD4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- cmp r3, r0
- bge _08142CFE
- adds r1, r0, 0
-_08142CF0:
- movs r0, 0x78
- add r8, r0
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, r1
- blt _08142CF0
-_08142CFE:
- movs r3, 0
- lsls r6, r4, 2
- adds r0, r6, r4
- lsls r5, r0, 3
- ldr r1, _08142DD8
- mov r10, r1
- ldr r2, _08142DDC
- mov r12, r2
- movs r0, 0xD
- negs r0, r0
- mov r9, r0
- movs r7, 0x4
-_08142D16:
- adds r0, r3, 0x5
- lsls r0, 1
- adds r0, r5
- add r0, r10
- ldrh r1, [r0]
- cmp r1, 0xFF
- beq _08142D36
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r2, [r0, 0x5]
- mov r1, r9
- ands r1, r2
- orrs r1, r7
- strb r1, [r0, 0x5]
-_08142D36:
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x5
- bls _08142D16
- adds r1, r6, r4
- lsls r1, 3
- ldr r2, _08142DD4
- adds r5, r1, r2
- movs r2, 0xC
- ldrsh r0, [r5, r2]
- adds r0, 0x5
- lsls r0, 1
- adds r0, r1
- ldr r1, _08142DD4
- adds r1, 0x8
- adds r0, r1
- ldrh r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _08142DDC
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- strb r1, [r0, 0x5]
- lsrs r1, 4
- movs r0, 0x80
- lsls r0, 9
- lsls r0, r1
- ldr r1, _08142DE0
- eors r0, r1
- ldr r2, _08142DE4
- str r0, [r2]
- ldr r2, _08142DE8
- movs r1, 0xC
- bl BlendPalettesUnfaded
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- mov r1, r8
- adds r4, r1, r0
- ldrh r1, [r4, 0x8]
- ldr r0, _08142DEC
- ands r0, r1
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08142DB2
- bl StopCryAndClearCrySongs
- ldrh r0, [r4, 0x8]
- lsls r0, 23
- lsrs r0, 23
- movs r1, 0
- bl PlayCry1
-_08142DB2:
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0xE
- bl sub_8143088
- ldr r0, _08142DF0
- str r0, [r5]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142DD0: .4byte 0x0201e000
-_08142DD4: .4byte gTasks
-_08142DD8: .4byte gUnknown_03004B28
-_08142DDC: .4byte gSprites
-_08142DE0: .4byte 0xffff0000
-_08142DE4: .4byte gUnknown_0203931C
-_08142DE8: .4byte 0x0000735f
-_08142DEC: .4byte 0x000001ff
-_08142DF0: .4byte sub_8142DF4
- thumb_func_end sub_8142CC8
-
- thumb_func_start sub_8142DF4
-sub_8142DF4: @ 8142DF4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08142E88
- ldrh r2, [r1, 0x2E]
- movs r0, 0x1
- ands r0, r2
- adds r3, r1, 0
- cmp r0, 0
- beq _08142EC4
- ldr r7, _08142E8C
- lsls r0, r6, 2
- adds r1, r0, r6
- lsls r3, r1, 3
- adds r4, r3, r7
- ldrh r2, [r4, 0x8]
- movs r5, 0x8
- ldrsh r1, [r4, r5]
- mov r8, r0
- cmp r1, 0
- beq _08142E98
- subs r0, r2, 0x1
- strh r0, [r4, 0x8]
- movs r5, 0
- adds r7, 0x8
- mov r9, r7
- adds r7, r3, 0
-_08142E30:
- adds r0, r5, 0x5
- lsls r0, 1
- adds r0, r7
- add r0, r9
- ldrb r1, [r0]
- cmp r1, 0xFF
- beq _08142E5E
- ldr r0, _08142E90
- lsls r4, r1, 4
- adds r4, r1
- lsls r4, 2
- adds r4, r0
- ldrb r0, [r4, 0x5]
- lsrs r0, 4
- bl GetSpritePaletteTagByPaletteNum
- lsls r0, 16
- lsrs r0, 16
- bl FreeSpritePaletteByTag
- adds r0, r4, 0
- bl DestroySprite
-_08142E5E:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x5
- bls _08142E30
- ldr r0, _08142E8C
- mov r2, r8
- adds r1, r2, r6
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xA]
- movs r3, 0xA
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08142E80
- subs r0, r2, 0x1
- strh r0, [r1, 0xA]
-_08142E80:
- ldr r0, _08142E94
- str r0, [r1]
- b _08142F64
- .align 2, 0
-_08142E88: .4byte gMain
-_08142E8C: .4byte gTasks
-_08142E90: .4byte gSprites
-_08142E94: .4byte sub_8142B04
-_08142E98:
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- beq _08142EB2
- bl StopCryAndClearCrySongs
- ldr r0, _08142EB8
- ldr r1, _08142EBC
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
-_08142EB2:
- ldr r0, _08142EC0
- str r0, [r4]
- b _08142F64
- .align 2, 0
-_08142EB8: .4byte gMPlay_BGM
-_08142EBC: .4byte 0x0000ffff
-_08142EC0: .4byte sub_8142F78
-_08142EC4:
- movs r0, 0x2
- ands r0, r2
- cmp r0, 0
- beq _08142F08
- bl IsCryPlayingOrClearCrySongs
- lsls r0, 24
- cmp r0, 0
- beq _08142EE6
- bl StopCryAndClearCrySongs
- ldr r0, _08142EF8
- ldr r1, _08142EFC
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
-_08142EE6:
- ldr r0, _08142F00
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _08142F04
- str r0, [r1]
- b _08142F64
- .align 2, 0
-_08142EF8: .4byte gMPlay_BGM
-_08142EFC: .4byte 0x0000ffff
-_08142F00: .4byte gTasks
-_08142F04: .4byte sub_8142F78
-_08142F08:
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- beq _08142F38
- ldr r0, _08142F30
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xC]
- movs r4, 0xC
- ldrsh r0, [r1, r4]
- cmp r0, 0
- beq _08142F38
- subs r0, r2, 0x1
- strh r0, [r1, 0xC]
- ldr r0, _08142F34
- str r0, [r1]
- b _08142F64
- .align 2, 0
-_08142F30: .4byte gTasks
-_08142F34: .4byte sub_8142CC8
-_08142F38:
- ldrh r1, [r3, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08142F64
- ldr r1, _08142F70
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r2, r0, r1
- movs r5, 0xC
- ldrsh r1, [r2, r5]
- movs r3, 0x10
- ldrsh r0, [r2, r3]
- subs r0, 0x1
- cmp r1, r0
- bge _08142F64
- ldrh r0, [r2, 0xC]
- adds r0, 0x1
- strh r0, [r2, 0xC]
- ldr r0, _08142F74
- str r0, [r2]
-_08142F64:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08142F70: .4byte gTasks
-_08142F74: .4byte sub_8142CC8
- thumb_func_end sub_8142DF4
-
- thumb_func_start sub_8142F78
-sub_8142F78: @ 8142F78
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08142FB4
- ldr r1, _08142FB8
- movs r2, 0x80
- lsls r2, 2
- bl CpuSet
- ldr r0, _08142FBC
- adds r2, r0, 0
- ldr r1, _08142FC0
- ldm r1!, {r3,r5,r6}
- stm r2!, {r3,r5,r6}
- ldm r1!, {r3,r5}
- stm r2!, {r3,r5}
- bl sub_80C5E38
- ldr r1, _08142FC4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08142FC8
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08142FB4: .4byte gPlttBufferFaded
-_08142FB8: .4byte gPlttBufferUnfaded
-_08142FBC: .4byte 0x0201c000
-_08142FC0: .4byte gUnknown_0840B57C
-_08142FC4: .4byte gTasks
-_08142FC8: .4byte sub_8142FCC
- thumb_func_end sub_8142F78
-
- thumb_func_start sub_8142FCC
-sub_8142FCC: @ 8142FCC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80C5F98
- lsls r0, 24
- cmp r0, 0
- beq _08142FE6
- adds r0, r4, 0
- bl DestroyTask
- bl sub_810D62C
-_08142FE6:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8142FCC
-
- thumb_func_start sub_8142FEC
-sub_8142FEC: @ 8142FEC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- movs r1, 0xE
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _08143020
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrintMessage
- ldr r1, _08143024
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08143028
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143020: .4byte gMenuText_HOFCorrupt
-_08143024: .4byte gTasks
-_08143028: .4byte sub_814302C
- thumb_func_end sub_8142FEC
-
- thumb_func_start sub_814302C
-sub_814302C: @ 814302C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _08143056
- ldr r0, _0814305C
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08143056
- ldr r0, _08143060
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08143064
- str r0, [r1]
-_08143056:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814305C: .4byte gMain
-_08143060: .4byte gTasks
-_08143064: .4byte sub_8142F78
- thumb_func_end sub_814302C
-
- thumb_func_start sub_8143068
-sub_8143068: @ 8143068
- push {lr}
- lsls r2, r1, 24
- ldr r0, _08143084
- movs r1, 0x80
- lsls r1, 17
- adds r2, r1
- lsrs r2, 24
- movs r1, 0
- movs r3, 0xF0
- bl sub_8072BD8
- pop {r0}
- bx r0
- .align 2, 0
-_08143084: .4byte gMenuText_WelcomeToHOFAndDexRating
- thumb_func_end sub_8143068
-
- thumb_func_start sub_8143088
-sub_8143088: @ 8143088
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- ldr r7, _08143188
- movs r0, 0xFC
- strb r0, [r7]
- movs r0, 0x13
- strb r0, [r7, 0x1]
- movs r0, 0x28
- strb r0, [r7, 0x2]
- movs r0, 0xFF
- strb r0, [r7, 0x3]
- mov r0, r9
- ldrh r2, [r0, 0x8]
- ldr r0, _0814318C
- ands r0, r2
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _081430EA
- lsls r0, r2, 23
- lsrs r0, 23
- bl sub_80406D8
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, _08143190
- cmp r6, r0
- beq _081430EA
- ldr r1, _08143194
- adds r0, r7, 0
- bl StringCopy
- adds r7, r0, 0
- adds r1, r6, 0
- movs r2, 0x2
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
-_081430EA:
- ldr r5, _08143188
- mov r1, r8
- adds r1, 0x4
- lsls r1, 24
- lsrs r1, 24
- mov r4, r10
- adds r4, 0x1
- lsls r2, r4, 24
- lsrs r2, 24
- adds r0, r5, 0
- bl MenuPrint
- adds r7, r5, 0
- movs r3, 0
- mov r1, r9
- ldrb r0, [r1, 0xA]
- str r4, [sp]
- mov r2, r8
- adds r2, 0x9
- str r2, [sp, 0xC]
- mov r6, r10
- adds r6, 0x3
- str r6, [sp, 0x8]
- cmp r0, 0xFF
- beq _0814313A
- mov r2, r9
- adds r2, 0xA
-_08143120:
- adds r1, r7, r3
- adds r0, r2, r3
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x9
- bhi _0814313A
- adds r0, r2, r3
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _08143120
-_0814313A:
- adds r7, r3
- movs r2, 0xFF
- strb r2, [r7]
- mov r1, r9
- ldrh r0, [r1, 0x8]
- ldr r1, _0814318C
- ands r1, r0
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bne _08143198
- movs r0, 0xFC
- strb r0, [r7]
- movs r0, 0x13
- strb r0, [r7, 0x1]
- movs r0, 0xA0
- strb r0, [r7, 0x2]
- strb r2, [r7, 0x3]
- ldr r0, _08143188
- ldr r2, [sp, 0xC]
- lsls r1, r2, 24
- lsrs r1, 24
- ldr r3, [sp]
- lsls r2, r3, 24
- lsrs r2, 24
- bl MenuPrint
- ldr r6, [sp, 0x8]
- lsls r1, r6, 24
- lsrs r1, 24
- mov r3, r10
- adds r3, 0x4
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0
- movs r2, 0x1D
- bl MenuZeroFillWindowRect
- b _081432E4
- .align 2, 0
-_08143188: .4byte gStringVar1
-_0814318C: .4byte 0x000001ff
-_08143190: .4byte 0x0000ffff
-_08143194: .4byte gOtherText_Number2
-_08143198:
- movs r0, 0xFC
- strb r0, [r7]
- movs r0, 0x13
- strb r0, [r7, 0x1]
- movs r0, 0x3E
- strb r0, [r7, 0x2]
- adds r7, 0x3
- movs r0, 0xBA
- strb r0, [r7]
- adds r7, 0x1
- movs r3, 0
- ldr r2, _08143238
- mov r1, r9
- ldrh r0, [r1, 0x8]
- lsls r0, 23
- lsrs r0, 23
- movs r1, 0xB
- muls r0, r1
- adds r0, r2
- ldrb r0, [r0]
- mov r6, r8
- adds r6, 0x7
- str r6, [sp, 0x4]
- mov r1, r8
- adds r1, 0xD
- str r1, [sp, 0x10]
- cmp r0, 0xFF
- beq _08143204
- adds r5, r2, 0
- movs r4, 0xB
-_081431D4:
- adds r1, r7, r3
- mov r6, r9
- ldrh r0, [r6, 0x8]
- lsls r0, 23
- lsrs r0, 23
- muls r0, r4
- adds r0, r3, r0
- adds r0, r5
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r3, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- cmp r3, 0x9
- bhi _08143204
- ldrh r0, [r6, 0x8]
- lsls r0, 23
- lsrs r0, 23
- muls r0, r4
- adds r0, r3, r0
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _081431D4
-_08143204:
- adds r7, r3
- movs r0, 0
- strb r0, [r7]
- adds r7, 0x1
- mov r1, r9
- ldrh r0, [r1, 0x8]
- ldr r1, _0814323C
- ands r1, r0
- cmp r1, 0x20
- beq _0814324A
- cmp r1, 0x1D
- beq _0814324A
- lsls r0, 23
- lsrs r0, 23
- mov r2, r9
- ldr r1, [r2, 0x4]
- bl GetGenderFromSpeciesAndPersonality
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08143240
- cmp r0, 0xFE
- beq _08143244
- b _0814324A
- .align 2, 0
-_08143238: .4byte gSpeciesNames
-_0814323C: .4byte 0x000001ff
-_08143240:
- movs r0, 0xB5
- b _08143246
-_08143244:
- movs r0, 0xB6
-_08143246:
- strb r0, [r7]
- adds r7, 0x1
-_0814324A:
- movs r4, 0xFC
- strb r4, [r7]
- movs r3, 0x13
- mov r8, r3
- strb r3, [r7, 0x1]
- movs r0, 0xA0
- strb r0, [r7, 0x2]
- movs r6, 0xFF
- mov r10, r6
- strb r6, [r7, 0x3]
- ldr r5, _081432F4
- ldr r0, [sp, 0xC]
- lsls r1, r0, 24
- lsrs r1, 24
- ldr r3, [sp]
- lsls r2, r3, 24
- lsrs r2, 24
- adds r0, r5, 0
- bl MenuPrint
- mov r6, r9
- ldrb r0, [r6, 0x9]
- lsrs r6, r0, 1
- ldr r1, _081432F8
- adds r0, r5, 0
- bl StringCopy
- adds r7, r0, 0
- strb r4, [r7]
- movs r0, 0x14
- strb r0, [r7, 0x1]
- movs r0, 0x6
- strb r0, [r7, 0x2]
- adds r7, 0x3
- adds r0, r7, 0
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r7, r0, 0
- strb r4, [r7]
- mov r0, r8
- strb r0, [r7, 0x1]
- movs r0, 0x30
- strb r0, [r7, 0x2]
- mov r1, r10
- strb r1, [r7, 0x3]
- ldr r2, [sp, 0x4]
- lsls r1, r2, 24
- lsrs r1, 24
- ldr r3, [sp, 0x8]
- lsls r4, r3, 24
- lsrs r4, 24
- adds r0, r5, 0
- adds r2, r4, 0
- bl MenuPrint
- mov r0, r9
- ldrh r6, [r0]
- ldr r1, _081432FC
- adds r0, r5, 0
- bl StringCopy
- adds r7, r0, 0
- adds r1, r6, 0
- movs r2, 0x2
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- ldr r2, [sp, 0x10]
- lsls r1, r2, 24
- lsrs r1, 24
- adds r0, r5, 0
- adds r2, r4, 0
- bl MenuPrint
-_081432E4:
- 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
-_081432F4: .4byte gStringVar1
-_081432F8: .4byte gOtherText_Level3
-_081432FC: .4byte gOtherText_IDNumber
- thumb_func_end sub_8143088
-
- thumb_func_start sub_8143300
-sub_8143300: @ 8143300
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- adds r5, r0, 0
- adds r4, r1, 0
- lsls r5, 24
- lsls r4, 24
- ldr r0, _081433CC
- lsrs r1, r5, 24
- mov r8, r1
- movs r2, 0x80
- lsls r2, 17
- adds r5, r2
- lsrs r5, 24
- lsrs r6, r4, 24
- adds r4, r2
- lsrs r4, 24
- adds r1, r5, 0
- adds r2, r4, 0
- bl MenuPrint
- ldr r0, _081433D0
- mov r10, r0
- movs r1, 0xE
- add r8, r1
- mov r2, r8
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- mov r1, r8
- adds r2, r4, 0
- bl sub_8072B4C
- ldr r0, _081433D4
- adds r4, r6, 0x3
- lsls r4, 24
- lsrs r4, 24
- adds r1, r5, 0
- adds r2, r4, 0
- bl MenuPrint
- mov r0, r10
- ldrb r1, [r0, 0xA]
- ldrb r0, [r0, 0xB]
- lsls r0, 8
- orrs r1, r0
- ldr r2, _081433D8
- mov r9, r2
- mov r0, r9
- movs r2, 0x2
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- mov r0, r9
- mov r1, r8
- adds r2, r4, 0
- bl sub_8072B4C
- ldr r0, _081433DC
- adds r6, 0x5
- lsls r6, 24
- lsrs r6, 24
- adds r1, r5, 0
- adds r2, r6, 0
- bl MenuPrint
- mov r0, r10
- ldrh r1, [r0, 0xE]
- mov r0, r9
- bl ConvertIntToDecimalString
- adds r2, r0, 0
- movs r1, 0
- strb r1, [r2]
- movs r0, 0xF0
- strb r0, [r2, 0x1]
- strb r1, [r2, 0x2]
- adds r2, 0x3
- mov r0, r10
- ldrb r1, [r0, 0x10]
- adds r0, r2, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r2, r0, 0
- movs r0, 0xFF
- strb r0, [r2]
- mov r0, r9
- mov r1, r8
- adds r2, r6, 0
- bl sub_8072B4C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081433CC: .4byte gOtherText_Name
-_081433D0: .4byte gSaveBlock2
-_081433D4: .4byte gOtherText_IDNumber2
-_081433D8: .4byte gStringVar1
-_081433DC: .4byte gMainMenuString_Time
- thumb_func_end sub_8143300
-
- thumb_func_start sub_81433E0
-sub_81433E0: @ 81433E0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x8
- strh r1, [r0]
- adds r0, 0x8
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0x8
- strh r1, [r0]
- adds r0, 0xA
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0xA
- strh r1, [r0]
- adds r0, 0xC
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- subs r0, 0xC
- strh r1, [r0]
- adds r0, 0xE
- 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
- ldr r1, _0814354C
- mov r9, r1
- mov r2, sp
- movs r6, 0
- ldr r1, _08143550
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _08143554
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_08143444:
- 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 _08143444
- 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, _08143550
- 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]
- movs r1, 0xC0
- lsls r1, 19
- mov r0, r9
- bl LZ77UnCompVram
- movs r1, 0
- ldr r3, _08143558
- movs r2, 0x1
-_081434B2:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3F
- bls _081434B2
- movs r1, 0
- ldr r5, _0814355C
- ldr r3, _08143560
- movs r2, 0x1
-_081434CA:
- lsls r0, r1, 1
- adds r0, r3
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xBF
- bls _081434CA
- movs r1, 0
- ldr r4, _08143564
- movs r3, 0x2
- ldr r2, _08143568
-_081434E2:
- lsls r0, r1, 1
- adds r0, r4
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bls _081434E2
- adds r2, r5, 0
- movs r3, 0x80
- lsls r3, 7
- mov r4, sp
- movs r6, 0
- ldr r1, _08143550
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _08143554
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_0814350A:
- 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 _0814350A
- 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]
- bl ResetPaletteFade
- ldr r0, _0814356C
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814354C: .4byte gHallOfFame_Gfx
-_08143550: .4byte 0x040000d4
-_08143554: .4byte 0x81000800
-_08143558: .4byte 0x06003800
-_0814355C: .4byte 0x02000000
-_08143560: .4byte 0x06003b80
-_08143564: .4byte 0x06003000
-_08143568: .4byte 0x000003ff
-_0814356C: .4byte gHallOfFame_Pal
- thumb_func_end sub_81433E0
-
- thumb_func_start sub_8143570
-sub_8143570: @ 8143570
- push {r4,lr}
- bl remove_some_task
- bl ResetTasks
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _081435A8
- movs r0, 0x8
- strb r0, [r1]
- ldr r0, _081435AC
- bl LoadCompressedObjectPic
- ldr r0, _081435B0
- bl LoadCompressedObjectPalette
- ldr r4, _081435B4
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081435A8: .4byte gReservedSpritePaletteCount
-_081435AC: .4byte gUnknown_0840B514
-_081435B0: .4byte gUnknown_0840B524
-_081435B4: .4byte gWindowConfig_81E71B4
- thumb_func_end sub_8143570
-
- thumb_func_start sub_81435B8
-sub_81435B8: @ 81435B8
- ldr r1, _081435D8
- movs r2, 0xE0
- lsls r2, 3
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x4
- subs r2, 0xFD
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xE
- movs r2, 0xDA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_081435D8: .4byte REG_BG1CNT
- thumb_func_end sub_81435B8
-
- thumb_func_start sub_81435DC
-sub_81435DC: @ 81435DC
- push {r4,lr}
- adds r2, r0, 0
- ldr r1, [r2, 0x20]
- ldr r0, [r2, 0x30]
- cmp r1, r0
- beq _08143632
- ldrh r3, [r2, 0x20]
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- movs r4, 0x30
- ldrsh r1, [r2, r4]
- cmp r0, r1
- bge _081435FC
- adds r0, r3, 0
- adds r0, 0xF
- strh r0, [r2, 0x20]
-_081435FC:
- ldrh r3, [r2, 0x20]
- movs r4, 0x20
- ldrsh r0, [r2, r4]
- cmp r0, r1
- ble _0814360C
- adds r0, r3, 0
- subs r0, 0xF
- strh r0, [r2, 0x20]
-_0814360C:
- ldrh r3, [r2, 0x22]
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- movs r4, 0x32
- ldrsh r1, [r2, r4]
- cmp r0, r1
- bge _08143620
- adds r0, r3, 0
- adds r0, 0xA
- strh r0, [r2, 0x22]
-_08143620:
- ldrh r3, [r2, 0x22]
- movs r4, 0x22
- ldrsh r0, [r2, r4]
- cmp r0, r1
- ble _0814363A
- adds r0, r3, 0
- subs r0, 0xA
- strh r0, [r2, 0x22]
- b _0814363A
-_08143632:
- movs r0, 0x1
- strh r0, [r2, 0x2E]
- ldr r0, _08143640
- str r0, [r2, 0x1C]
-_0814363A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143640: .4byte nullsub_81
- thumb_func_end sub_81435DC
-
- thumb_func_start nullsub_81
-nullsub_81: @ 8143644
- bx lr
- thumb_func_end nullsub_81
-
- thumb_func_start sub_8143648
-sub_8143648: @ 8143648
- push {r4-r7,lr}
- lsls r1, 24
- ldr r4, _08143670
- adds r3, r4, 0
- ldr r2, _08143674
- ldm r2!, {r5-r7}
- stm r3!, {r5-r7}
- ldm r2!, {r5-r7}
- stm r3!, {r5-r7}
- strh r0, [r4, 0x2]
- ldr r0, _08143678
- lsrs r1, 22
- adds r1, r0
- ldr r0, [r1]
- str r0, [r4, 0xC]
- ldr r0, _0814367C
- str r0, [r4, 0x8]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08143670: .4byte gUnknown_02024E8C
-_08143674: .4byte gUnknown_0840B6B8
-_08143678: .4byte gUnknown_0840B69C
-_0814367C: .4byte gSpriteAnimTable_81E7C64
- thumb_func_end sub_8143648
-
- thumb_func_start sub_8143680
-sub_8143680: @ 8143680
- push {r4-r7,lr}
- lsls r1, 24
- ldr r4, _081436AC
- adds r3, r4, 0
- ldr r2, _081436B0
- ldm r2!, {r5-r7}
- stm r3!, {r5-r7}
- ldm r2!, {r5-r7}
- stm r3!, {r5-r7}
- strh r0, [r4, 0x2]
- ldr r0, _081436B4
- lsrs r1, 22
- adds r1, r0
- ldr r0, [r1]
- str r0, [r4, 0xC]
- ldr r0, _081436B8
- ldr r0, [r0]
- str r0, [r4, 0x8]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081436AC: .4byte gUnknown_02024E8C
-_081436B0: .4byte gUnknown_0840B6B8
-_081436B4: .4byte gUnknown_0840B69C
-_081436B8: .4byte gUnknown_081EC2A4
- thumb_func_end sub_8143680
-
- thumb_func_start sub_81436BC
-sub_81436BC: @ 81436BC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r6, r0, 0
- mov r9, r1
- mov r10, r2
- mov r8, r3
- ldr r7, [sp, 0x34]
- lsls r6, 16
- lsrs r6, 16
- mov r0, r9
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- mov r1, r10
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- mov r2, r8
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- lsls r0, r6, 3
- ldr r1, _08143790
- adds r0, r1
- ldr r1, _08143794
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08143798
- mov r12, r4
- mov r5, r8
- lsls r4, r5, 2
- add r4, r12
- ldr r4, [r4]
- str r4, [sp]
- str r6, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r4, 0x1
- str r4, [sp, 0xC]
- bl sub_800D378
- adds r0, r6, 0
- ldr r1, [sp, 0x30]
- adds r2, r7, 0
- bl species_and_otid_get_pal
- lsls r4, r5, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- lsls r1, r5, 24
- lsrs r1, 24
- mov r0, r8
- bl sub_8143648
- ldr r0, _0814379C
- mov r5, r9
- lsls r5, 16
- asrs r5, 16
- mov r9, r5
- mov r1, r10
- lsls r1, 16
- asrs r1, 16
- mov r10, r1
- movs r3, 0xA
- mov r2, r8
- subs r3, r2
- lsls r3, 24
- lsrs r3, 24
- mov r1, r9
- mov r2, r10
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _081437A0
- 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
-_08143790: .4byte gMonFrontPicTable
-_08143794: .4byte gMonFrontPicCoords
-_08143798: .4byte gUnknown_0840B5A0
-_0814379C: .4byte gUnknown_02024E8C
-_081437A0: .4byte gSprites
- thumb_func_end sub_81436BC
-
- thumb_func_start sub_81437A4
-sub_81437A4: @ 81437A4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- mov r9, r1
- mov r10, r2
- adds r6, r3, 0
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r2, 16
- lsrs r2, 16
- mov r10, r2
- lsls r6, 16
- lsrs r6, 16
- lsls r7, r0, 3
- ldr r1, _08143854
- mov r8, r1
- add r8, r7
- ldr r1, _08143858
- lsls r2, r0, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r5, _0814385C
- lsls r4, r6, 2
- adds r4, r5
- ldr r4, [r4]
- str r4, [sp]
- str r0, [sp, 0x4]
- mov r0, r8
- bl DecompressPicFromTable_2
- ldr r0, _08143860
- adds r0, r7, r0
- ldr r0, [r0]
- lsls r4, r6, 4
- movs r2, 0x80
- lsls r2, 1
- adds r1, r4, r2
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- lsls r1, r6, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl sub_8143680
- ldr r0, _08143864
- mov r1, r9
- lsls r1, 16
- asrs r1, 16
- mov r9, r1
- mov r2, r10
- lsls r2, 16
- asrs r2, 16
- mov r10, r2
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08143868
- 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, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08143854: .4byte gTrainerFrontPicTable
-_08143858: .4byte gTrainerFrontPicCoords
-_0814385C: .4byte gUnknown_0840B5A0
-_08143860: .4byte gTrainerFrontPicPaletteTable
-_08143864: .4byte gUnknown_02024E8C
-_08143868: .4byte gSprites
- thumb_func_end sub_81437A4
-
- thumb_func_start sub_814386C
-sub_814386C: @ 814386C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r1, [r5, 0x26]
- movs r2, 0x26
- ldrsh r0, [r5, r2]
- cmp r0, 0x78
- ble _08143882
- adds r0, r5, 0
- bl DestroySprite
- b _081438BA
-_08143882:
- adds r0, r1, 0x1
- ldrh r1, [r5, 0x30]
- adds r0, r1
- strh r0, [r5, 0x26]
- ldrh r4, [r5, 0x2E]
- lsls r4, 24
- lsrs r4, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- ands r0, r1
- adds r0, 0x8
- ldr r1, _081438C0
- lsls r4, 1
- adds r4, r1
- movs r2, 0
- ldrsh r1, [r4, r2]
- muls r0, r1
- cmp r0, 0
- bge _081438B0
- adds r0, 0xFF
-_081438B0:
- asrs r0, 8
- strh r0, [r5, 0x24]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x4
- strh r0, [r5, 0x2E]
-_081438BA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081438C0: .4byte gSineTable
- thumb_func_end sub_814386C
-
- thumb_func_start sub_81438C4
-sub_81438C4: @ 81438C4
- push {r4,lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF0
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl Random
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- movs r0, 0x7
- ands r2, r0
- negs r2, r2
- ldr r0, _08143934
- lsls r4, 16
- asrs r4, 16
- lsls r2, 16
- asrs r2, 16
- adds r1, r4, 0
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08143938
- adds r4, r1, r0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x11
- bl __umodsi3
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- bl Random
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0
- beq _0814393C
- movs r0, 0
- b _0814393E
- .align 2, 0
-_08143934: .4byte gSpriteTemplate_840B7A4
-_08143938: .4byte gSprites
-_0814393C:
- movs r0, 0x1
-_0814393E:
- strh r0, [r4, 0x30]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81438C4
-
- thumb_func_start sub_8143948
-sub_8143948: @ 8143948
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8143948
-
- thumb_func_start sub_814395C
-sub_814395C: @ 814395C
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- ldr r0, _081439B8
- ldrh r1, [r0, 0x2C]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081439B2
- ldr r0, _081439BC
- ldrb r0, [r0]
- cmp r0, 0
- beq _081439B2
- ldr r2, _081439C0
- ldr r0, _081439C4
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, [r0]
- ldr r0, _081439C8
- cmp r1, r0
- bne _081439B2
- bl sub_8143948
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- ldr r1, _081439CC
- movs r0, 0x1
- strb r0, [r1]
-_081439B2:
- pop {r0}
- bx r0
- .align 2, 0
-_081439B8: .4byte gMain
-_081439BC: .4byte gUnknown_02039324
-_081439C0: .4byte gTasks
-_081439C4: .4byte gUnknown_02039322
-_081439C8: .4byte sub_8143B68
-_081439CC: .4byte gUnknown_02039325
- thumb_func_end sub_814395C
-
- thumb_func_start sub_81439D0
-sub_81439D0: @ 81439D0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- bl sub_8144130
- movs r0, 0
- bl SetVBlankCallback
- bl ResetPaletteFade
- bl ResetTasks
- ldr r0, _08143AF0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r1, _08143AF4
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x10]
- strh r1, [r0, 0x16]
- strh r1, [r0, 0x1E]
- movs r1, 0x1
- strh r1, [r0, 0x22]
-_08143A0E:
- movs r0, 0
- adds r1, r7, 0
- bl sub_8144ECC
- lsls r0, 24
- cmp r0, 0
- beq _08143A0E
- ldr r6, _08143AF4
- lsls r5, r7, 2
- adds r5, r7
- lsls r5, 3
- adds r5, r6
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- movs r1, 0
- mov r9, r1
- movs r2, 0
- mov r8, r2
- movs r1, 0x28
- strh r1, [r0, 0x8]
- ldr r4, _08143AF8
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- ldr r0, _08143AFC
- movs r1, 0x80
- movs r2, 0x40
- bl LoadPalette
- ldr r0, _08143B00
- ldr r1, _08143B04
- movs r2, 0x20
- bl CpuSet
- ldr r1, _08143B08
- ldr r2, _08143B0C
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08143B10
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r6
- strh r7, [r1, 0xA]
- strh r0, [r5, 0x26]
- movs r0, 0x1
- negs r0, r0
- mov r1, r8
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r3, _08143B14
- ldrh r2, [r3]
- mov r0, r8
- strh r0, [r3]
- ldr r4, _08143B18
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08143B1C
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _08143B20
- bl SetVBlankCallback
- ldr r0, _08143B24
- bl m4aSongNumStart
- ldr r0, _08143B28
- bl SetMainCallback2
- ldr r0, _08143B2C
- mov r1, r9
- strb r1, [r0]
- ldr r4, _08143B30
- bl sub_81458DC
- adds r0, r4, 0
- adds r0, 0x88
- mov r2, r8
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- adds r0, 0x2
- strh r2, [r0]
- ldr r0, _08143B34
- strh r7, [r0]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08143AF0: .4byte sub_8143B38
-_08143AF4: .4byte gTasks
-_08143AF8: .4byte gWindowConfig_81E7208
-_08143AFC: .4byte gUnknown_0840B7BC
-_08143B00: .4byte gUnknown_0840B7FC
-_08143B04: .4byte 0x0600bee0
-_08143B08: .4byte REG_BG0VOFS
-_08143B0C: .4byte 0x0000fffc
-_08143B10: .4byte sub_81441B8
-_08143B14: .4byte 0x04000208
-_08143B18: .4byte 0x04000200
-_08143B1C: .4byte REG_DISPSTAT
-_08143B20: .4byte sub_8143948
-_08143B24: .4byte 0x000001c7
-_08143B28: .4byte sub_814395C
-_08143B2C: .4byte gUnknown_02039325
-_08143B30: .4byte 0x0201c000
-_08143B34: .4byte gUnknown_02039322
- thumb_func_end sub_81439D0
-
- thumb_func_start sub_8143B38
-sub_8143B38: @ 8143B38
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08143B5C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08143B58
- ldr r0, _08143B60
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _08143B64
- str r0, [r1]
-_08143B58:
- pop {r0}
- bx r0
- .align 2, 0
-_08143B5C: .4byte gPaletteFade
-_08143B60: .4byte gTasks
-_08143B64: .4byte sub_8143B68
- thumb_func_end sub_8143B38
-
- thumb_func_start sub_8143B68
-sub_8143B68: @ 8143B68
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08143B9C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- cmp r1, 0
- beq _08143BA4
- movs r3, 0xA
- ldrsh r1, [r4, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x1E
- strh r1, [r0, 0x8]
- movs r0, 0x80
- lsls r0, 1
- strh r0, [r4, 0x20]
- ldr r0, _08143BA0
- b _08143BEE
- .align 2, 0
-_08143B9C: .4byte gTasks
-_08143BA0: .4byte sub_8143EBC
-_08143BA4:
- ldr r0, _08143BCC
- strh r1, [r0]
- ldrh r2, [r4, 0x1E]
- movs r3, 0x1E
- ldrsh r0, [r4, r3]
- cmp r0, 0x1
- bne _08143BD4
- strh r2, [r4, 0x22]
- strh r1, [r4, 0x1E]
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08143BD0
- b _08143BEE
- .align 2, 0
-_08143BCC: .4byte gUnknown_02039320
-_08143BD0: .4byte sub_8143BFC
-_08143BD4:
- cmp r0, 0x2
- bne _08143BF0
- strh r2, [r4, 0x22]
- strh r1, [r4, 0x1E]
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08143BF8
-_08143BEE:
- str r0, [r4]
-_08143BF0:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143BF8: .4byte sub_8143CC0
- thumb_func_end sub_8143B68
-
- thumb_func_start sub_8143BFC
-sub_8143BFC: @ 8143BFC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08143C34
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08143C2C
- movs r0, 0x80
- lsls r0, 19
- strh r1, [r0]
- adds r0, r4, 0
- bl sub_81450AC
- ldr r1, _08143C38
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08143C3C
- str r1, [r0]
-_08143C2C:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143C34: .4byte gPaletteFade
-_08143C38: .4byte gTasks
-_08143C3C: .4byte c2_080C9BFC
- thumb_func_end sub_8143BFC
-
- thumb_func_start c2_080C9BFC
-c2_080C9BFC: @ 8143C40
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- bl SetVBlankCallback
- ldr r1, _08143CA8
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- ldrb r0, [r5, 0x16]
- adds r1, r4, 0
- bl sub_8144ECC
- lsls r0, 24
- cmp r0, 0
- beq _08143CA0
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r3, _08143CAC
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _08143CB0
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08143CB4
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _08143CB8
- bl SetVBlankCallback
- ldr r0, _08143CBC
- str r0, [r5]
-_08143CA0:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08143CA8: .4byte gTasks
-_08143CAC: .4byte 0x04000208
-_08143CB0: .4byte 0x04000200
-_08143CB4: .4byte REG_DISPSTAT
-_08143CB8: .4byte sub_8143948
-_08143CBC: .4byte sub_8143B38
- thumb_func_end c2_080C9BFC
-
- thumb_func_start sub_8143CC0
-sub_8143CC0: @ 8143CC0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08143CF8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08143CF0
- movs r0, 0x80
- lsls r0, 19
- strh r1, [r0]
- adds r0, r4, 0
- bl sub_81450AC
- ldr r1, _08143CFC
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08143D00
- str r1, [r0]
-_08143CF0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143CF8: .4byte gPaletteFade
-_08143CFC: .4byte gTasks
-_08143D00: .4byte sub_8143D04
- thumb_func_end sub_8143CC0
-
- thumb_func_start sub_8143D04
-sub_8143D04: @ 8143D04
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _08143DC8
- ldr r1, _08143DCC
- adds r1, r0
- mov r8, r1
- ldrb r7, [r1]
- cmp r7, 0
- beq _08143D24
- cmp r7, 0x1
- beq _08143E0C
-_08143D24:
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- ldr r1, _08143DD0
- movs r0, 0x8
- strb r0, [r1]
- ldr r0, _08143DD4
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08143DD8
- ldr r1, _08143DDC
- bl LZ77UnCompVram
- ldr r0, _08143DE0
- movs r1, 0x1
- movs r2, 0x3E
- bl LoadPalette
- movs r1, 0
- ldr r4, _08143DE4
- movs r3, 0x11
- ldr r2, _08143DE8
-_08143D56:
- adds r0, r1, r4
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bls _08143D56
- movs r1, 0
- ldr r2, _08143DEC
- ldr r6, _08143DF0
- ldr r0, _08143DF4
- adds r5, r2, r0
- movs r4, 0x22
- ldr r3, _08143DE8
-_08143D72:
- adds r0, r1, r5
- strb r4, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r3
- bls _08143D72
- movs r1, 0
- ldr r5, _08143DF8
- movs r4, 0x33
- ldr r3, _08143DE8
-_08143D88:
- adds r0, r1, r5
- strb r4, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r3
- bls _08143D88
- movs r0, 0
- strh r0, [r2]
- ldr r1, _08143DFC
- adds r0, r1, 0
- strh r0, [r2, 0x2]
- ldr r1, _08143E00
- adds r0, r1, 0
- strh r0, [r2, 0x4]
- ldr r1, _08143E04
- adds r0, r1, 0
- strh r0, [r2, 0x6]
- adds r0, r6, 0
- bl LoadSpriteSheet
- ldr r0, _08143E08
- bl LoadSpritePalette
- ldr r1, _08143DC8
- ldr r2, _08143DCC
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08143E90
- .align 2, 0
-_08143DC8: .4byte gMain
-_08143DCC: .4byte 0x0000043c
-_08143DD0: .4byte gReservedSpritePaletteCount
-_08143DD4: .4byte gUnknown_083F66F0
-_08143DD8: .4byte gBirchGrassTilemap
-_08143DDC: .4byte 0x06003800
-_08143DE0: .4byte gUnknown_083F62EC + 0x2
-_08143DE4: .4byte 0x0201e000
-_08143DE8: .4byte 0x000007ff
-_08143DEC: .4byte 0x0201f800
-_08143DF0: .4byte gUnknown_0840CAA0
-_08143DF4: .4byte 0xfffff000
-_08143DF8: .4byte 0x0201f000
-_08143DFC: .4byte 0x000053ff
-_08143E00: .4byte 0x0000529f
-_08143E04: .4byte 0x00007e94
-_08143E08: .4byte gUnknown_0840CAB0
-_08143E0C:
- ldr r0, _08143EA0
- movs r1, 0
- bl CreateTask
- ldr r2, _08143EA4
- lsls r4, r6, 2
- adds r4, r6
- lsls r4, 3
- adds r4, r2
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- mov r9, r1
- movs r5, 0
- strh r0, [r4, 0xE]
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- strh r7, [r0, 0x8]
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- strh r6, [r0, 0xA]
- movs r0, 0xE
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrh r1, [r4, 0x16]
- strh r1, [r0, 0xC]
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, _08143EA8
- strh r5, [r0]
- ldr r1, _08143EAC
- movs r0, 0x20
- strh r0, [r1]
- subs r1, 0x10
- ldr r2, _08143EB0
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xE
- movs r2, 0xCA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- mov r1, r9
- mov r0, r8
- strb r1, [r0]
- ldr r0, _08143EB4
- strh r5, [r0]
- ldr r0, _08143EB8
- str r0, [r4]
-_08143E90:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08143EA0: .4byte sub_8144514
-_08143EA4: .4byte gTasks
-_08143EA8: .4byte REG_BG3HOFS
-_08143EAC: .4byte REG_BG3VOFS
-_08143EB0: .4byte 0x00000703
-_08143EB4: .4byte gUnknown_0203935C
-_08143EB8: .4byte sub_8143B38
- thumb_func_end sub_8143D04
-
- thumb_func_start sub_8143EBC
-sub_8143EBC: @ 8143EBC
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08143EE0
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x20]
- movs r2, 0x20
- ldrsh r1, [r4, r2]
- cmp r1, 0
- beq _08143EE4
- subs r0, 0x1
- strh r0, [r4, 0x20]
- b _08143EF8
- .align 2, 0
-_08143EE0: .4byte gTasks
-_08143EE4:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0xC
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08143F00
- str r0, [r4]
-_08143EF8:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143F00: .4byte sub_8143F04
- thumb_func_end sub_8143EBC
-
- thumb_func_start sub_8143F04
-sub_8143F04: @ 8143F04
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08143F30
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08143F2A
- adds r0, r4, 0
- bl sub_81450AC
- ldr r0, _08143F34
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08143F38
- str r0, [r1]
-_08143F2A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08143F30: .4byte gPaletteFade
-_08143F34: .4byte gTasks
-_08143F38: .4byte sub_8143F3C
- thumb_func_end sub_8143F04
-
- thumb_func_start sub_8143F3C
-sub_8143F3C: @ 8143F3C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- bl sub_8144130
- bl ResetPaletteFade
- movs r1, 0xE0
- lsls r1, 6
- movs r0, 0
- movs r2, 0
- bl sub_8145128
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- movs r0, 0x1
- negs r0, r0
- movs r4, 0
- str r4, [sp]
- movs r1, 0x8
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _08143FC4
- movs r2, 0xE0
- lsls r2, 3
- adds r0, r2, 0
- strh r0, [r1]
- ldr r3, _08143FC8
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _08143FCC
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08143FD0
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _08143FD4
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x80
- lsls r1, 1
- strh r1, [r0, 0x8]
- ldr r1, _08143FD8
- str r1, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08143FC4: .4byte REG_BG0CNT
-_08143FC8: .4byte 0x04000208
-_08143FCC: .4byte 0x04000200
-_08143FD0: .4byte REG_DISPSTAT
-_08143FD4: .4byte gTasks
-_08143FD8: .4byte sub_8143FDC
- thumb_func_end sub_8143F3C
-
- thumb_func_start sub_8143FDC
-sub_8143FDC: @ 8143FDC
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08144000
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0x8]
- movs r2, 0x8
- ldrsh r1, [r4, r2]
- cmp r1, 0
- beq _08144004
- subs r0, 0x1
- strh r0, [r4, 0x8]
- b _08144018
- .align 2, 0
-_08144000: .4byte gTasks
-_08144004:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0x6
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08144020
- str r0, [r4]
-_08144018:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08144020: .4byte sub_8144024
- thumb_func_end sub_8143FDC
-
- thumb_func_start sub_8144024
-sub_8144024: @ 8144024
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08144074
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0814406A
- movs r0, 0xE0
- lsls r0, 6
- movs r1, 0
- bl sub_81452D0
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r1, _08144078
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0xE1
- lsls r1, 5
- strh r1, [r0, 0x8]
- ldr r1, _0814407C
- str r1, [r0]
-_0814406A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08144074: .4byte gPaletteFade
-_08144078: .4byte gTasks
-_0814407C: .4byte sub_8144080
- thumb_func_end sub_8144024
-
- thumb_func_start sub_8144080
-sub_8144080: @ 8144080
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _081440CC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08144104
- ldr r1, _081440D0
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0
- beq _081440AE
- ldr r0, _081440D4
- ldrh r0, [r0, 0x2E]
- cmp r0, 0
- beq _081440E0
-_081440AE:
- movs r0, 0x4
- bl FadeOutBGM
- movs r0, 0x1
- negs r0, r0
- ldr r1, _081440D8
- str r1, [sp]
- movs r1, 0x8
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _081440DC
- str r0, [r4]
- b _08144104
- .align 2, 0
-_081440CC: .4byte gPaletteFade
-_081440D0: .4byte gTasks
-_081440D4: .4byte gMain
-_081440D8: .4byte 0x0000ffff
-_081440DC: .4byte sub_8144114
-_081440E0:
- ldr r0, _0814410C
- cmp r1, r0
- bne _081440EC
- movs r0, 0x8
- bl FadeOutBGM
-_081440EC:
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- ldr r0, _08144110
- cmp r1, r0
- bne _081440FE
- movs r0, 0xE4
- lsls r0, 1
- bl m4aSongNumStart
-_081440FE:
- ldrh r0, [r4, 0x8]
- subs r0, 0x1
- strh r0, [r4, 0x8]
-_08144104:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814410C: .4byte 0x00001be8
-_08144110: .4byte 0x00001ab8
- thumb_func_end sub_8144080
-
- thumb_func_start sub_8144114
-sub_8144114: @ 8144114
- push {lr}
- ldr r0, _0814412C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08144128
- movs r0, 0xFF
- bl SoftReset
-_08144128:
- pop {r0}
- bx r0
- .align 2, 0
-_0814412C: .4byte gPaletteFade
- thumb_func_end sub_8144114
-
- thumb_func_start sub_8144130
-sub_8144130: @ 8144130
- sub sp, 0x8
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x1C
- 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]
- adds r0, 0x3E
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- mov r0, sp
- strh r1, [r0]
- ldr r1, _081441A4
- str r0, [r1]
- movs r0, 0xC0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _081441A8
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r2, 0
- str r2, [sp, 0x4]
- add r0, sp, 0x4
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _081441AC
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- mov r0, sp
- strh r2, [r0]
- str r0, [r1]
- ldr r0, _081441B0
- str r0, [r1, 0x4]
- ldr r0, _081441B4
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add sp, 0x8
- bx lr
- .align 2, 0
-_081441A4: .4byte 0x040000d4
-_081441A8: .4byte 0x8100c000
-_081441AC: .4byte 0x85000100
-_081441B0: .4byte 0x05000002
-_081441B4: .4byte 0x810001ff
- thumb_func_end sub_8144130
-
- thumb_func_start sub_81441B8
-sub_81441B8: @ 81441B8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _081441E4
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r6, r1, 0
- cmp r0, 0xA
- bhi _08144218
- lsls r0, 2
- ldr r1, _081441E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081441E4: .4byte gTasks
-_081441E8: .4byte _081441EC
- .align 2, 0
-_081441EC:
- .4byte _08144218
- .4byte _08144258
- .4byte _08144278
- .4byte _08144358
- .4byte _0814438C
- .4byte _081443F8
- .4byte _08144218
- .4byte _08144218
- .4byte _08144218
- .4byte _08144218
- .4byte _08144428
-_08144218:
- ldr r0, _08144250
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _0814422A
- b _08144446
-_0814422A:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
- movs r1, 0x1
- strh r1, [r0, 0x8]
- movs r1, 0x58
- strh r1, [r0, 0xE]
- movs r3, 0xA
- ldrsh r1, [r0, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- strh r2, [r0, 0x24]
- ldr r0, _08144254
- strh r2, [r0]
- b _08144446
- .align 2, 0
-_08144250: .4byte gPaletteFade
-_08144254: .4byte gUnknown_02039320
-_08144258:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r6
- ldrh r2, [r1, 0xE]
- movs r3, 0xE
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08144270
- subs r0, r2, 0x1
- strh r0, [r1, 0xE]
- b _08144446
-_08144270:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _08144446
-_08144278:
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _08144320
- ands r0, r1
- strh r0, [r2]
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- adds r3, r0, r6
- movs r0, 0xA
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r4, r0, r6
- ldr r1, [r4]
- ldr r0, _08144324
- mov r8, r2
- cmp r1, r0
- bne _08144352
- movs r1, 0xC
- ldrsh r0, [r3, r1]
- cmp r0, 0x33
- bgt _0814434C
- movs r4, 0
- ldr r7, _08144328
- adds r6, r3, 0
-_081442B0:
- movs r2, 0xC
- ldrsh r1, [r6, r2]
- lsls r0, r1, 2
- adds r0, r1
- adds r0, r4
- lsls r0, 2
- adds r0, r7
- ldr r0, [r0]
- ldr r0, [r0, 0x4]
- lsls r2, r4, 25
- movs r3, 0x90
- lsls r3, 20
- adds r2, r3
- lsrs r2, 24
- movs r1, 0
- movs r3, 0xF0
- bl sub_8072BD8
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x4
- bls _081442B0
- ldr r3, _0814432C
- mov r0, r8
- adds r1, r0, r5
- lsls r1, 3
- adds r1, r3
- ldrh r0, [r1, 0xC]
- adds r0, 0x1
- strh r0, [r1, 0xC]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- movs r0, 0xA
- ldrsh r2, [r1, r0]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r3
- movs r2, 0x1
- strh r2, [r0, 0x24]
- movs r2, 0xA
- ldrsh r1, [r1, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- movs r3, 0x22
- ldrsh r0, [r0, r3]
- cmp r0, 0x1
- bne _08144334
- movs r0, 0xC0
- lsls r0, 2
- ldr r1, _08144330
- b _0814433A
- .align 2, 0
-_08144320: .4byte 0x0000feff
-_08144324: .4byte sub_8143B68
-_08144328: .4byte gCreditsEntryPointerTable
-_0814432C: .4byte gTasks
-_08144330: .4byte 0x0000328d
-_08144334:
- movs r0, 0xC0
- lsls r0, 2
- ldr r1, _08144348
-_0814433A:
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _08144446
- .align 2, 0
-_08144348: .4byte 0x00001967
-_0814434C:
- movs r0, 0xA
- strh r0, [r3, 0x8]
- b _08144446
-_08144352:
- movs r0, 0
- strh r0, [r4, 0x24]
- b _08144446
-_08144358:
- movs r2, 0x80
- lsls r2, 19
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 1
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _08144388
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08144446
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
- movs r1, 0x82
- strh r1, [r0, 0xE]
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _08144446
- .align 2, 0
-_08144388: .4byte gPaletteFade
-_0814438C:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r6
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081443A4
- subs r0, r1, 0x1
- strh r0, [r4, 0xE]
- b _08144446
-_081443A4:
- ldrb r0, [r4, 0xC]
- ldrb r1, [r4, 0xA]
- bl sub_8144454
- lsls r0, 24
- cmp r0, 0
- beq _081443BA
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _08144446
-_081443BA:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- movs r3, 0xA
- ldrsh r1, [r4, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- movs r1, 0x22
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _081443E0
- movs r0, 0xC0
- lsls r0, 2
- ldr r1, _081443DC
- b _081443E6
- .align 2, 0
-_081443DC: .4byte 0x0000328d
-_081443E0:
- movs r0, 0xC0
- lsls r0, 2
- ldr r1, _081443F4
-_081443E6:
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _08144446
- .align 2, 0
-_081443F4: .4byte 0x00001967
-_081443F8:
- ldr r0, _08144420
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08144446
- movs r0, 0
- movs r1, 0x9
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r0, _08144424
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- movs r0, 0x2
- strh r0, [r1, 0x8]
- b _08144446
- .align 2, 0
-_08144420: .4byte gPaletteFade
-_08144424: .4byte gTasks
-_08144428:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
- movs r2, 0xA
- ldrsh r1, [r0, r2]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- movs r1, 0x1
- strh r1, [r0, 0x10]
- adds r0, r5, 0
- bl DestroyTask
-_08144446:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81441B8
-
- thumb_func_start sub_8144454
-sub_8144454: @ 8144454
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r6, r3, 0
- lsls r1, 24
- lsrs r2, r1, 24
- adds r5, r2, 0
- ldr r4, _08144508
- cmp r3, 0x6
- bne _08144474
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x1E]
-_08144474:
- cmp r3, 0xC
- bne _08144486
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x1
- strh r1, [r0, 0x16]
- strh r1, [r0, 0x1E]
-_08144486:
- cmp r3, 0x12
- bne _08144496
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x1E]
-_08144496:
- cmp r3, 0x18
- bne _081444AA
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x16]
- movs r1, 0x1
- strh r1, [r0, 0x1E]
-_081444AA:
- cmp r3, 0x1E
- bne _081444BA
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x1E]
-_081444BA:
- cmp r3, 0x23
- bne _081444CE
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x3
- strh r1, [r0, 0x16]
- movs r1, 0x1
- strh r1, [r0, 0x1E]
-_081444CE:
- cmp r3, 0x28
- bne _081444DE
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x1E]
-_081444DE:
- cmp r6, 0x2E
- bne _081444F2
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r4
- movs r1, 0x4
- strh r1, [r0, 0x16]
- movs r1, 0x1
- strh r1, [r0, 0x1E]
-_081444F2:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r4
- movs r1, 0x1E
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0814450C
- movs r0, 0
- b _0814450E
- .align 2, 0
-_08144508: .4byte gTasks
-_0814450C:
- movs r0, 0x1
-_0814450E:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8144454
-
- thumb_func_start sub_8144514
-sub_8144514: @ 8144514
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r6, _08144548
- ldr r3, _0814454C
- lsls r0, 2
- add r0, r8
- lsls r0, 3
- adds r2, r0, r3
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- beq _08144550
- cmp r0, 0x1
- bgt _0814453C
- b _08144658
-_0814453C:
- cmp r0, 0x2
- beq _08144584
- cmp r0, 0x3
- bne _08144546
- b _08144644
-_08144546:
- b _08144658
- .align 2, 0
-_08144548: .4byte 0x0201c000
-_0814454C: .4byte gTasks
-_08144550:
- adds r0, r6, 0
- adds r0, 0x8A
- ldrh r0, [r0]
- cmp r0, 0
- bne _0814456E
- movs r4, 0xA
- ldrsh r0, [r2, r4]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- movs r4, 0x24
- ldrsh r0, [r1, r4]
- cmp r0, 0
- beq _08144658
-_0814456E:
- movs r0, 0xA
- ldrsh r1, [r2, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x24]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- b _08144656
-_08144584:
- adds r0, r6, 0
- adds r0, 0x88
- ldrh r1, [r0]
- mov r9, r0
- cmp r1, 0x44
- beq _08144658
- movs r4, 0xA
- ldrsh r1, [r2, r4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- ldr r1, [r0]
- ldr r0, _081445EC
- cmp r1, r0
- bne _08144658
- adds r7, r6, 0
- adds r7, 0x8C
- ldrh r0, [r7]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- ldr r4, _081445F0
- adds r5, r6, 0
- adds r5, 0x8A
- ldrh r3, [r5]
- lsls r2, r3, 1
- adds r1, r2, r4
- ldrb r1, [r1]
- adds r4, 0x1
- adds r2, r4
- ldrb r2, [r2]
- bl sub_81456B4
- lsls r0, 24
- lsrs r2, r0, 24
- ldrh r1, [r7]
- adds r0, r6, 0
- adds r0, 0x8E
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r1, r0
- bge _081445F8
- adds r0, r1, 0x1
- strh r0, [r7]
- ldr r1, _081445F4
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0x32
- b _0814460A
- .align 2, 0
-_081445EC: .4byte sub_8143B68
-_081445F0: .4byte gUnknown_0840CA00
-_081445F4: .4byte gSprites
-_081445F8:
- movs r0, 0
- strh r0, [r7]
- ldr r1, _08144620
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0x80
- lsls r1, 2
-_0814460A:
- strh r1, [r0, 0x34]
- mov r1, r9
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- ldrh r0, [r5]
- cmp r0, 0x2
- bne _08144624
- movs r0, 0
- b _08144626
- .align 2, 0
-_08144620: .4byte gSprites
-_08144624:
- adds r0, 0x1
-_08144626:
- strh r0, [r5]
- ldr r0, _08144640
- mov r2, r8
- lsls r1, r2, 2
- add r1, r8
- lsls r1, 3
- adds r1, r0
- movs r0, 0x32
- strh r0, [r1, 0xE]
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _08144658
- .align 2, 0
-_08144640: .4byte gTasks
-_08144644:
- ldrh r1, [r2, 0xE]
- movs r3, 0xE
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _08144654
- subs r0, r1, 0x1
- strh r0, [r2, 0xE]
- b _08144658
-_08144654:
- movs r0, 0x1
-_08144656:
- strh r0, [r2, 0x8]
-_08144658:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8144514
-
- thumb_func_start sub_8144664
-sub_8144664: @ 8144664
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0814468C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r6, r1, 0
- cmp r0, 0x32
- bls _08144680
- b _0814492C
-_08144680:
- lsls r0, 2
- ldr r1, _08144690
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0814468C: .4byte gTasks
-_08144690: .4byte _08144694
- .align 2, 0
-_08144694:
- .4byte _08144760
- .4byte _08144784
- .4byte _081447D8
- .4byte _081447F0
- .4byte _0814482C
- .4byte _08144850
- .4byte _0814489C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _081448A8
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _081448C8
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _081448EC
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _0814492C
- .4byte _08144920
-_08144760:
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r6
- ldrh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 17
- movs r1, 0x7F
- ands r0, r1
- movs r1, 0xC
- bl Sin
- ldr r1, _08144780
- strh r0, [r1]
- b _081447A8
- .align 2, 0
-_08144780: .4byte gUnknown_0203935A
-_08144784:
- ldr r7, _081447B0
- movs r3, 0
- ldrsh r4, [r7, r3]
- cmp r4, 0
- beq _081447B4
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r6
- ldrh r0, [r4, 0x12]
- lsls r0, 16
- asrs r0, 17
- movs r1, 0x7F
- ands r0, r1
- movs r1, 0xC
- bl Sin
- strh r0, [r7]
-_081447A8:
- ldrh r0, [r4, 0x12]
- adds r0, 0x1
- strh r0, [r4, 0x12]
- b _0814492C
- .align 2, 0
-_081447B0: .4byte gUnknown_0203935A
-_081447B4:
- ldr r3, _081447D4
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r6
- movs r0, 0xC
- ldrsh r2, [r1, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- movs r2, 0x2
- strh r2, [r0, 0x2E]
- strh r4, [r1, 0x12]
- b _08144848
- .align 2, 0
-_081447D4: .4byte gSprites
-_081447D8:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r6
- ldrh r2, [r1, 0x12]
- movs r3, 0x12
- ldrsh r0, [r1, r3]
- cmp r0, 0x3F
- bgt _08144848
- adds r0, r2, 0x1
- strh r0, [r1, 0x12]
- b _08144866
-_081447F0:
- ldr r3, _08144828
- lsls r2, r5, 2
- adds r2, r5
- lsls r2, 3
- adds r2, r6
- movs r0, 0xC
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x3
- strh r1, [r0, 0x2E]
- movs r0, 0xE
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x1
- strh r1, [r0, 0x2E]
- movs r0, 0x78
- strh r0, [r2, 0x10]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _0814492C
- .align 2, 0
-_08144828: .4byte gSprites
-_0814482C:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r1, r0, r6
- ldrh r2, [r1, 0x10]
- movs r3, 0x10
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _08144844
- subs r0, r2, 0x1
- strh r0, [r1, 0x10]
- b _0814492C
-_08144844:
- movs r0, 0x40
- strh r0, [r1, 0x12]
-_08144848:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0814492C
-_08144850:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r6
- ldrh r1, [r4, 0x12]
- movs r2, 0x12
- ldrsh r0, [r4, r2]
- cmp r0, 0
- ble _0814487C
- subs r0, r1, 0x1
- strh r0, [r4, 0x12]
-_08144866:
- movs r1, 0x7F
- ands r0, r1
- movs r1, 0x14
- bl Sin
- ldr r1, _08144878
- strh r0, [r1]
- b _0814492C
- .align 2, 0
-_08144878: .4byte gUnknown_0203935A
-_0814487C:
- ldr r2, _08144898
- movs r3, 0xC
- ldrsh r1, [r4, r3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0, 0x2E]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0814492C
- .align 2, 0
-_08144898: .4byte gSprites
-_0814489C:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
- movs r1, 0x32
- b _0814492A
-_081448A8:
- ldr r3, _081448C4
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r6
- movs r0, 0xE
- ldrsh r2, [r1, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- movs r2, 0x2
- b _081448E0
- .align 2, 0
-_081448C4: .4byte gSprites
-_081448C8:
- ldr r3, _081448E8
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r6
- movs r0, 0xC
- ldrsh r2, [r1, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r3
- movs r2, 0x4
-_081448E0:
- strh r2, [r0, 0x2E]
- movs r0, 0x32
- strh r0, [r1, 0x8]
- b _0814492C
- .align 2, 0
-_081448E8: .4byte gSprites
-_081448EC:
- ldr r3, _0814491C
- lsls r2, r5, 2
- adds r2, r5
- lsls r2, 3
- adds r2, r6
- movs r0, 0xC
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x5
- strh r1, [r0, 0x2E]
- movs r0, 0xE
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- movs r1, 0x3
- strh r1, [r0, 0x2E]
- movs r0, 0x32
- strh r0, [r2, 0x8]
- b _0814492C
- .align 2, 0
-_0814491C: .4byte gSprites
-_08144920:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
- movs r1, 0
-_0814492A:
- strh r1, [r0, 0x8]
-_0814492C:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8144664
-
- thumb_func_start sub_8144934
-sub_8144934: @ 8144934
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _08144958
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r3, 0x8
- ldrsh r0, [r0, r3]
- adds r4, r1, 0
- cmp r0, 0x4
- bhi _08144974
- lsls r0, 2
- ldr r1, _0814495C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08144958: .4byte gTasks
-_0814495C: .4byte _08144960
- .align 2, 0
-_08144960:
- .4byte _08144974
- .4byte _081449B8
- .4byte _081449C4
- .4byte _08144A0C
- .4byte _08144A5C
-_08144974:
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r2, r0, r4
- movs r1, 0xA
- ldrsh r0, [r2, r1]
- ldr r5, _081449C0
- cmp r0, r5
- beq _081449B8
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r3, r0, r4
- movs r0, 0x26
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0x2
- bne _081449B8
- movs r1, 0xA
- ldrsh r0, [r3, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r4
- movs r0, 0x14
- strh r0, [r1, 0x8]
- strh r5, [r2, 0xA]
-_081449B8:
- movs r0, 0
- bl sub_8149020
- b _08144A62
- .align 2, 0
-_081449C0: .4byte 0x00007fff
-_081449C4:
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r2, r0, r4
- movs r3, 0xA
- ldrsh r0, [r2, r3]
- ldr r5, _08144A08
- cmp r0, r5
- beq _08144A54
- movs r0, 0xC
- ldrsh r1, [r2, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r3, 0xA
- ldrsh r1, [r0, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r3, r0, r4
- ldrh r1, [r3, 0x12]
- movs r0, 0x80
- negs r0, r0
- ands r0, r1
- movs r1, 0xA0
- lsls r1, 2
- cmp r0, r1
- bne _08144A54
- movs r0, 0x1
- strh r0, [r3, 0x8]
- strh r5, [r2, 0xA]
- b _08144A54
- .align 2, 0
-_08144A08: .4byte 0x00007fff
-_08144A0C:
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r2, r0, r4
- ldrh r3, [r2, 0xA]
- movs r0, 0xA
- ldrsh r1, [r2, r0]
- ldr r5, _08144A48
- cmp r1, r5
- beq _08144A54
- ldr r0, _08144A4C
- cmp r1, r0
- bne _08144A50
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r3, 0xA
- ldrsh r1, [r0, r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r1, 0xA
- strh r1, [r0, 0x8]
- strh r5, [r2, 0xA]
- b _08144A54
- .align 2, 0
-_08144A48: .4byte 0x00007fff
-_08144A4C: .4byte 0x000001f3
-_08144A50:
- adds r0, r3, 0x1
- strh r0, [r2, 0xA]
-_08144A54:
- movs r0, 0x1
- bl sub_8149020
- b _08144A62
-_08144A5C:
- movs r0, 0x2
- bl sub_8149020
-_08144A62:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8144934
-
- thumb_func_start sub_8144A68
-sub_8144A68: @ 8144A68
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r7, r1, 24
- cmp r0, 0x4
- bls _08144A7E
- b _08144DFC
-_08144A7E:
- lsls r0, 2
- ldr r1, _08144A88
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08144A88: .4byte _08144A8C
- .align 2, 0
-_08144A8C:
- .4byte _08144AA0
- .4byte _08144B48
- .4byte _08144BF4
- .4byte _08144CA0
- .4byte _08144D50
-_08144AA0:
- ldr r5, _08144B40
- ldr r0, _08144B44
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r3, 0
- movs r2, 0x88
- lsls r2, 1
- strh r2, [r0, 0x20]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x20]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r2, 0x2E
- strh r2, [r0, 0x22]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x22]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- movs r2, 0x20
- b _08144DF0
- .align 2, 0
-_08144B40: .4byte gSprites
-_08144B44: .4byte gTasks
-_08144B48:
- ldr r5, _08144BEC
- ldr r0, _08144BF0
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r3, 0
- movs r1, 0x78
- strh r1, [r0, 0x20]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x88
- lsls r1, 1
- strh r1, [r0, 0x20]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r2, 0x2E
- strh r2, [r0, 0x22]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x22]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- movs r2, 0x20
- b _08144DF0
- .align 2, 0
-_08144BEC: .4byte gSprites
-_08144BF0: .4byte gTasks
-_08144BF4:
- ldr r5, _08144C98
- ldr r0, _08144C9C
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r3, 0
- movs r1, 0x78
- strh r1, [r0, 0x20]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x88
- lsls r1, 1
- strh r1, [r0, 0x20]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r2, 0x2E
- strh r2, [r0, 0x22]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x22]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r1, 0x80
- lsls r1, 6
- movs r2, 0x80
- lsls r2, 2
- movs r0, 0x1
- b _08144DF0
- .align 2, 0
-_08144C98: .4byte gSprites
-_08144C9C: .4byte gTasks
-_08144CA0:
- ldr r5, _08144D44
- ldr r0, _08144D48
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r3, 0
- movs r1, 0x78
- strh r1, [r0, 0x20]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, _08144D4C
- strh r1, [r0, 0x20]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r2, 0x2E
- strh r2, [r0, 0x22]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x22]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r1, 0x80
- lsls r1, 6
- movs r2, 0x80
- lsls r2, 2
- movs r0, 0x1
- b _08144DF0
- .align 2, 0
-_08144D44: .4byte gSprites
-_08144D48: .4byte gTasks
-_08144D4C: .4byte 0x0000ffe0
-_08144D50:
- ldr r5, _08144EBC
- ldr r0, _08144EC0
- lsls r4, r7, 2
- adds r4, r7
- lsls r4, 3
- adds r4, r0
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r3, 0
- movs r1, 0x58
- strh r1, [r0, 0x20]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r1, 0x98
- strh r1, [r0, 0x20]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- movs r2, 0x2E
- strh r2, [r0, 0x22]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r2, [r0, 0x22]
- movs r0, 0x12
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r0, 0x14
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r3, [r0, 0x2E]
- movs r1, 0x80
- lsls r1, 6
- movs r2, 0x80
- lsls r2, 2
- movs r0, 0x2
-_08144DF0:
- movs r3, 0x8
- bl sub_8148EC0
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x8]
-_08144DFC:
- ldr r0, _08144EC4
- movs r1, 0
- bl CreateTask
- ldr r6, _08144EC0
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r5, r1, r6
- lsls r0, 24
- lsrs r0, 24
- movs r4, 0
- strh r0, [r5, 0xC]
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- mov r1, r8
- strh r1, [r0, 0x8]
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- strh r4, [r0, 0xA]
- movs r0, 0xC
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- strh r7, [r0, 0xC]
- ldr r0, _08144EC8
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xA]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- strh r4, [r0, 0x8]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- strh r7, [r0, 0xA]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- ldrh r1, [r5, 0x12]
- strh r1, [r0, 0xC]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- ldrh r1, [r5, 0x14]
- strh r1, [r0, 0xE]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r6
- strh r4, [r0, 0x10]
- mov r1, r8
- cmp r1, 0x2
- bne _08144EB0
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r6
- movs r0, 0x45
- strh r0, [r1, 0x12]
-_08144EB0:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08144EBC: .4byte gSprites
-_08144EC0: .4byte gTasks
-_08144EC4: .4byte sub_8144934
-_08144EC8: .4byte sub_8144664
- thumb_func_end sub_8144A68
-
- thumb_func_start sub_8144ECC
-sub_8144ECC: @ 8144ECC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, _08144F28
- ldr r1, _08144F2C
- adds r6, r0, r1
- ldrb r0, [r6]
- cmp r0, 0x1
- beq _08144F38
- cmp r0, 0x1
- ble _08144EF0
- cmp r0, 0x2
- beq _08144F5C
- cmp r0, 0x3
- bne _08144EF0
- b _0814508C
-_08144EF0:
- movs r0, 0x80
- lsls r0, 19
- movs r1, 0
- strh r1, [r0]
- ldr r2, _08144F30
- movs r0, 0x8
- strh r0, [r2]
- ldr r0, _08144F34
- 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]
- adds r0, 0x3A
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- movs r0, 0x1
- strb r0, [r6]
- b _081450A2
- .align 2, 0
-_08144F28: .4byte gMain
-_08144F2C: .4byte 0x0000043c
-_08144F30: .4byte REG_BG3HOFS
-_08144F34: .4byte REG_BG3VOFS
-_08144F38:
- ldr r1, _08144F54
- movs r0, 0x22
- strh r0, [r1]
- ldr r1, _08144F58
- movs r0, 0
- strh r0, [r1]
- adds r0, r4, 0
- bl sub_8148CB0
- ldrb r0, [r6]
- adds r0, 0x1
- strb r0, [r6]
- b _081450A2
- .align 2, 0
-_08144F54: .4byte gUnknown_02039358
-_08144F58: .4byte gUnknown_0203935A
-_08144F5C:
- ldr r0, _08144FBC
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _08144FE0
- ldr r0, _08144FC0
- bl LoadCompressedObjectPic
- ldr r0, _08144FC4
- bl LoadCompressedObjectPic
- ldr r0, _08144FC8
- bl LoadCompressedObjectPic
- ldr r0, _08144FCC
- bl LoadSpritePalettes
- movs r0, 0x78
- movs r1, 0x2E
- bl sub_8149310
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08144FD0
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- strh r2, [r4, 0x12]
- ldr r6, _08144FD4
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r5, r6, 0
- adds r5, 0x1C
- adds r2, r0, r5
- ldr r1, _08144FD8
- str r1, [r2]
- adds r6, 0x8
- adds r0, r6
- ldr r1, _08144FDC
- str r1, [r0]
- movs r0, 0x88
- lsls r0, 1
- movs r1, 0x2E
- bl sub_8149368
- b _08145034
- .align 2, 0
-_08144FBC: .4byte gSaveBlock2
-_08144FC0: .4byte gIntro2BrendanSpriteSheet
-_08144FC4: .4byte gUnknown_08416E34
-_08144FC8: .4byte gIntro2BicycleSpriteSheet
-_08144FCC: .4byte gIntro2SpritePalettes
-_08144FD0: .4byte gTasks
-_08144FD4: .4byte gSprites
-_08144FD8: .4byte sub_8145378
-_08144FDC: .4byte gUnknown_0840CA54
-_08144FE0:
- ldr r0, _0814505C
- bl LoadCompressedObjectPic
- ldr r0, _08145060
- bl LoadCompressedObjectPic
- ldr r0, _08145064
- bl LoadCompressedObjectPic
- ldr r0, _08145068
- bl LoadSpritePalettes
- movs r0, 0x78
- movs r1, 0x2E
- bl sub_8149368
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _0814506C
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- strh r2, [r4, 0x12]
- ldr r6, _08145070
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r5, r6, 0
- adds r5, 0x1C
- adds r2, r0, r5
- ldr r1, _08145074
- str r1, [r2]
- adds r6, 0x8
- adds r0, r6
- ldr r1, _08145078
- str r1, [r0]
- movs r0, 0x88
- lsls r0, 1
- movs r1, 0x2E
- bl sub_8149310
-_08145034:
- lsls r0, 24
- lsrs r2, r0, 24
- strh r2, [r4, 0x14]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r5, r0, r5
- ldr r1, _0814507C
- str r1, [r5]
- adds r0, r6
- ldr r1, _08145080
- str r1, [r0]
- ldr r1, _08145084
- ldr r0, _08145088
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _081450A2
- .align 2, 0
-_0814505C: .4byte gIntro2MaySpriteSheet
-_08145060: .4byte gUnknown_08416E24
-_08145064: .4byte gIntro2BicycleSpriteSheet
-_08145068: .4byte gIntro2SpritePalettes
-_0814506C: .4byte gTasks
-_08145070: .4byte gSprites
-_08145074: .4byte sub_8145378
-_08145078: .4byte gUnknown_0840CA54
-_0814507C: .4byte sub_8145420
-_08145080: .4byte gUnknown_0840CA94
-_08145084: .4byte gMain
-_08145088: .4byte 0x0000043c
-_0814508C:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8144A68
- adds r0, r4, 0
- bl sub_8148E90
- movs r0, 0
- strb r0, [r6]
- movs r0, 0x1
- b _081450A4
-_081450A2:
- movs r0, 0
-_081450A4:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8144ECC
-
- thumb_func_start sub_81450AC
-sub_81450AC: @ 81450AC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08145120
- 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, 0
- beq _081450D2
- lsls r0, r1, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- strh r0, [r4, 0x8]
-_081450D2:
- ldrh r1, [r4, 0xA]
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081450E8
- lsls r0, r1, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- strh r0, [r4, 0xA]
-_081450E8:
- ldrh r1, [r4, 0xC]
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _081450FE
- lsls r0, r1, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- strh r0, [r4, 0xC]
-_081450FE:
- ldrh r1, [r4, 0xE]
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _08145114
- lsls r0, r1, 24
- lsrs r0, 24
- bl DestroyTask
- movs r0, 0
- strh r0, [r4, 0xE]
-_08145114:
- ldr r1, _08145124
- movs r0, 0x1
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08145120: .4byte gTasks
-_08145124: .4byte gUnknown_0203935C
- thumb_func_end sub_81450AC
-
- thumb_func_start sub_8145128
-sub_8145128: @ 8145128
- push {r4-r7,lr}
- adds r3, r0, 0
- adds r4, r2, 0
- lsls r3, 16
- lsrs r3, 16
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r4, 16
- lsrs r5, r4, 16
- ldr r0, _081451EC
- movs r6, 0xC0
- lsls r6, 19
- adds r3, r6
- adds r1, r3, 0
- bl LZ77UnCompVram
- ldr r0, _081451F0
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadPalette
- lsrs r4, 20
- lsls r4, 28
- lsrs r4, 16
- movs r2, 0
- adds r1, r4, 0x1
- ldr r3, _081451F4
-_0814515E:
- lsls r0, r2, 1
- adds r0, r7
- adds r0, r6
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r3
- bls _0814515E
- movs r2, 0
- adds r0, r4, 0x2
- adds r6, r4, 0
- adds r6, 0x17
- movs r1, 0x2B
- adds r1, r4
- mov r12, r1
- adds r4, 0x42
- ldr r5, _081451F8
- adds r3, r0, 0
-_08145184:
- lsls r0, r2, 1
- adds r0, r7
- adds r0, r5
- adds r1, r2, r3
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x14
- bls _08145184
- movs r2, 0
- ldr r5, _081451FC
- adds r3, r6, 0
-_0814519E:
- lsls r0, r2, 1
- adds r0, r7
- adds r0, r5
- adds r1, r2, r3
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x13
- bls _0814519E
- movs r2, 0
- ldr r5, _08145200
- mov r3, r12
-_081451B8:
- lsls r0, r2, 1
- adds r0, r7
- adds r0, r5
- adds r1, r2, r3
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x16
- bls _081451B8
- movs r2, 0
- ldr r3, _08145204
-_081451D0:
- lsls r0, r2, 1
- adds r0, r7
- adds r0, r3
- adds r1, r2, r4
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0xB
- bls _081451D0
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081451EC: .4byte gCreditsCopyrightEnd_Gfx
-_081451F0: .4byte gIntroCopyright_Pal
-_081451F4: .4byte 0x000003ff
-_081451F8: .4byte 0x060001c8
-_081451FC: .4byte 0x06000248
-_08145200: .4byte 0x060002c8
-_08145204: .4byte 0x06000348
- thumb_func_end sub_8145128
-
- thumb_func_start sub_8145208
-sub_8145208: @ 8145208
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r3, r2, 0
- movs r0, 0x3F
- ands r0, r2
- adds r1, r0, 0
- adds r1, 0x50
- cmp r2, 0xFF
- bne _08145220
- movs r0, 0x1
- b _08145246
-_08145220:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _08145230
- movs r2, 0x80
- lsls r2, 4
- adds r0, r2, 0
- orrs r1, r0
-_08145230:
- movs r0, 0x40
- ands r3, r0
- cmp r3, 0
- beq _08145244
- movs r2, 0x80
- lsls r2, 3
- adds r0, r2, 0
- orrs r1, r0
- lsls r0, r1, 16
- lsrs r1, r0, 16
-_08145244:
- adds r0, r1, 0
-_08145246:
- pop {r1}
- bx r1
- thumb_func_end sub_8145208
-
- thumb_func_start sub_814524C
-sub_814524C: @ 814524C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- str r0, [sp]
- ldr r0, [sp, 0x2C]
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x4]
- lsls r3, 16
- lsrs r3, 16
- str r3, [sp, 0x8]
- lsls r0, 16
- lsrs r0, 20
- lsls r0, 28
- lsrs r0, 16
- mov r9, r0
- movs r5, 0
-_0814527A:
- movs r4, 0
- lsls r7, r5, 1
- ldr r1, [sp, 0x4]
- adds r0, r1, r5
- adds r2, r5, 0x1
- mov r8, r2
- lsls r0, 6
- ldr r1, [sp, 0x8]
- adds r6, r0, r1
-_0814528C:
- adds r0, r7, r5
- adds r0, r4
- ldr r2, [sp]
- adds r0, r2, r0
- ldrb r0, [r0]
- bl sub_8145208
- mov r2, r10
- adds r1, r2, r4
- lsls r1, 1
- adds r1, r6
- movs r2, 0xC0
- lsls r2, 19
- adds r1, r2
- add r0, r9
- strh r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0814528C
- mov r1, r8
- lsls r0, r1, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _0814527A
- 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_814524C
-
- thumb_func_start sub_81452D0
-sub_81452D0: @ 81452D0
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 16
- lsrs r5, r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- lsrs r1, 20
- lsls r1, 28
- lsrs r1, 16
- movs r2, 0
- ldr r7, _08145360
- movs r4, 0xC0
- lsls r4, 19
- adds r1, 0x1
- ldr r3, _08145364
-_081452EE:
- lsls r0, r2, 1
- adds r0, r5
- adds r0, r4
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, r3
- bls _081452EE
- str r6, [sp]
- adds r0, r7, 0
- movs r1, 0x3
- movs r2, 0x7
- adds r3, r5, 0
- bl sub_814524C
- ldr r0, _08145368
- str r6, [sp]
- movs r1, 0x7
- movs r2, 0x7
- adds r3, r5, 0
- bl sub_814524C
- ldr r4, _0814536C
- str r6, [sp]
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0x7
- adds r3, r5, 0
- bl sub_814524C
- str r6, [sp]
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0x7
- adds r3, r5, 0
- bl sub_814524C
- ldr r0, _08145370
- str r6, [sp]
- movs r1, 0x14
- movs r2, 0x7
- adds r3, r5, 0
- bl sub_814524C
- ldr r0, _08145374
- str r6, [sp]
- movs r1, 0x18
- movs r2, 0x7
- adds r3, r5, 0
- bl sub_814524C
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08145360: .4byte gUnknown_0840B83C
-_08145364: .4byte 0x000003ff
-_08145368: .4byte gUnknown_0840B84B
-_0814536C: .4byte gUnknown_0840B85A
-_08145370: .4byte gUnknown_0840B869
-_08145374: .4byte gUnknown_0840B878
- thumb_func_end sub_81452D0
-
- thumb_func_start sub_8145378
-sub_8145378: @ 8145378
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08145390
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08145394
- adds r0, r4, 0
- bl DestroySprite
- b _08145418
- .align 2, 0
-_08145390: .4byte gUnknown_0203935C
-_08145394:
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r0, 0x5
- bhi _08145418
- lsls r0, 2
- ldr r1, _081453A8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081453A8: .4byte _081453AC
- .align 2, 0
-_081453AC:
- .4byte _081453C4
- .4byte _081453CE
- .4byte _081453D4
- .4byte _081453DE
- .4byte _081453E8
- .4byte _081453FE
-_081453C4:
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- b _08145418
-_081453CE:
- adds r0, r4, 0
- movs r1, 0x1
- b _08145402
-_081453D4:
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnimIfDifferent
- b _08145418
-_081453DE:
- adds r0, r4, 0
- movs r1, 0x3
- bl StartSpriteAnimIfDifferent
- b _08145418
-_081453E8:
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- ldrh r1, [r4, 0x20]
- movs r2, 0x20
- ldrsh r0, [r4, r2]
- cmp r0, 0x78
- ble _08145418
- subs r0, r1, 0x1
- b _08145416
-_081453FE:
- adds r0, r4, 0
- movs r1, 0
-_08145402:
- bl StartSpriteAnimIfDifferent
- ldrh r2, [r4, 0x20]
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r0, 0x20
- negs r0, r0
- cmp r1, r0
- ble _08145418
- subs r0, r2, 0x1
-_08145416:
- strh r0, [r4, 0x20]
-_08145418:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8145378
-
- thumb_func_start sub_8145420
-sub_8145420: @ 8145420
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, _08145438
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0814543C
- adds r0, r4, 0
- bl DestroySprite
- b _081454D8
- .align 2, 0
-_08145438: .4byte gUnknown_0203935C
-_0814543C:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _08145464
- cmp r0, 0x1
- bgt _0814544E
- cmp r0, 0
- beq _08145458
- b _081454D8
-_0814544E:
- cmp r0, 0x2
- beq _081454A0
- cmp r0, 0x3
- beq _081454BE
- b _081454D8
-_08145458:
- strh r0, [r4, 0x26]
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- b _081454D8
-_08145464:
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- cmp r0, 0xC8
- ble _08145476
- adds r0, r4, 0
- movs r1, 0x1
- bl StartSpriteAnimIfDifferent
- b _0814547E
-_08145476:
- adds r0, r4, 0
- movs r1, 0x2
- bl StartSpriteAnimIfDifferent
-_0814547E:
- ldrh r2, [r4, 0x20]
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r0, 0x20
- negs r0, r0
- cmp r1, r0
- ble _08145490
- subs r0, r2, 0x2
- strh r0, [r4, 0x20]
-_08145490:
- ldr r0, _0814549C
- ldrh r0, [r0]
- negs r0, r0
- strh r0, [r4, 0x26]
- b _081454D8
- .align 2, 0
-_0814549C: .4byte gUnknown_0203935A
-_081454A0:
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- ldrh r1, [r4, 0x3C]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _081454D8
- ldrh r0, [r4, 0x20]
- adds r0, 0x1
- b _081454D6
-_081454BE:
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
- ldrh r2, [r4, 0x20]
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r0, 0x20
- negs r0, r0
- cmp r1, r0
- ble _081454D8
- subs r0, r2, 0x1
-_081454D6:
- strh r0, [r4, 0x20]
-_081454D8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8145420
-
- thumb_func_start sub_81454E0
-sub_81454E0: @ 81454E0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, _081454F8
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _081454FC
- adds r0, r5, 0
- bl DestroySprite
- b _081456A6
- .align 2, 0
-_081454F8: .4byte gUnknown_0203935C
-_081454FC:
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0xA
- bhi _08145544
- lsls r0, 2
- ldr r1, _08145514
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08145514: .4byte _08145518
- .align 2, 0
-_08145518:
- .4byte _08145544
- .4byte _0814559E
- .4byte _08145620
- .4byte _08145660
- .4byte _08145544
- .4byte _08145544
- .4byte _08145544
- .4byte _08145544
- .4byte _08145544
- .4byte _08145544
- .4byte _08145696
-_08145544:
- ldrb r1, [r5, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r5, 0x1]
- movs r0, 0x30
- ldrsh r1, [r5, r0]
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r5, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r5, 0x3]
- movs r0, 0x10
- strh r0, [r5, 0x32]
- ldrh r4, [r5, 0x30]
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x80
- lsls r0, 9
- movs r1, 0x10
- bl __divsi3
- adds r1, r0, 0
- str r1, [sp]
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x1
- strh r0, [r5, 0x2E]
- b _081456A6
-_0814559E:
- ldrh r1, [r5, 0x32]
- movs r2, 0x32
- ldrsh r0, [r5, r2]
- cmp r0, 0xFF
- bgt _081455D4
- adds r0, r1, 0
- adds r0, 0x8
- strh r0, [r5, 0x32]
- ldrh r4, [r5, 0x30]
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x32
- ldrsh r1, [r5, r0]
- movs r0, 0x80
- lsls r0, 9
- bl __divsi3
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- b _081455DA
-_081455D4:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
-_081455DA:
- movs r2, 0x30
- ldrsh r1, [r5, r2]
- cmp r1, 0x2
- beq _081456A6
- cmp r1, 0x2
- bgt _081455EC
- cmp r1, 0x1
- beq _081455F2
- b _081456A6
-_081455EC:
- cmp r1, 0x3
- beq _0814560A
- b _081456A6
-_081455F2:
- ldrh r1, [r5, 0x3C]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08145602
- ldrh r0, [r5, 0x22]
- adds r0, 0x1
- strh r0, [r5, 0x22]
-_08145602:
- ldrh r0, [r5, 0x20]
- subs r0, 0x2
- strh r0, [r5, 0x20]
- b _081456A6
-_0814560A:
- ldrh r0, [r5, 0x3C]
- ands r1, r0
- cmp r1, 0
- bne _08145618
- ldrh r0, [r5, 0x22]
- adds r0, 0x1
- strh r0, [r5, 0x22]
-_08145618:
- ldrh r0, [r5, 0x20]
- adds r0, 0x2
- strh r0, [r5, 0x20]
- b _081456A6
-_08145620:
- ldrh r1, [r5, 0x34]
- movs r2, 0x34
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _08145630
- subs r0, r1, 0x1
- strh r0, [r5, 0x34]
- b _081456A6
-_08145630:
- ldr r1, _0814565C
- movs r2, 0xF4
- lsls r2, 4
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x10
- strh r0, [r1]
- ldrb r1, [r5, 0x1]
- movs r0, 0xD
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r5, 0x1]
- movs r0, 0x10
- strh r0, [r5, 0x34]
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- b _081456A6
- .align 2, 0
-_0814565C: .4byte REG_BLDCNT
-_08145660:
- ldrh r1, [r5, 0x34]
- movs r2, 0x34
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _08145684
- subs r1, 0x1
- strh r1, [r5, 0x34]
- ldr r3, _08145680
- movs r0, 0x34
- ldrsh r2, [r5, r0]
- movs r0, 0x10
- subs r0, r2
- lsls r0, 8
- adds r1, r0
- strh r1, [r3]
- b _081456A6
- .align 2, 0
-_08145680: .4byte REG_BLDALPHA
-_08145684:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0xA
- strh r0, [r5, 0x2E]
- b _081456A6
-_08145696:
- ldr r0, _081456B0
- movs r1, 0
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, r5, 0
- bl DestroySprite
-_081456A6:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081456B0: .4byte REG_BLDCNT
- thumb_func_end sub_81454E0
-
- thumb_func_start sub_81456B4
-sub_81456B4: @ 81456B4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- lsls r2, 16
- lsrs r2, 16
- str r2, [sp, 0x10]
- lsls r3, 16
- lsrs r3, 16
- mov r9, r3
- adds r0, r6, 0
- bl NationalPokedexNumToSpecies
- adds r6, r0, 0
- cmp r6, 0xC9
- beq _081456F8
- movs r0, 0x9A
- lsls r0, 1
- cmp r6, r0
- beq _081456EE
- movs r7, 0
- b _081456FC
-_081456EE:
- ldr r0, _081456F4
- ldr r7, [r0, 0x20]
- b _081456FC
- .align 2, 0
-_081456F4: .4byte gSaveBlock2
-_081456F8:
- ldr r0, _081457E8
- ldr r7, [r0, 0x1C]
-_081456FC:
- lsls r0, r6, 3
- ldr r1, _081457EC
- adds r0, r1
- ldr r1, _081457F0
- lsls r2, r6, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _081457F4
- mov r8, r4
- mov r5, r9
- lsls r4, r5, 2
- add r4, r8
- ldr r4, [r4]
- str r4, [sp]
- str r6, [sp, 0x4]
- str r7, [sp, 0x8]
- movs r4, 0x1
- str r4, [sp, 0xC]
- bl sub_800D378
- ldr r2, _081457F8
- adds r0, r6, 0
- movs r1, 0
- bl species_and_otid_get_pal
- lsls r5, 4
- mov r8, r5
- movs r1, 0x80
- lsls r1, 1
- add r1, r8
- lsls r1, 16
- lsrs r1, 16
- movs r2, 0x20
- bl LoadCompressedPalette
- mov r7, r9
- lsls r6, r7, 24
- lsrs r6, 24
- mov r0, r9
- adds r1, r6, 0
- bl sub_8143648
- ldr r0, _081457FC
- mov r2, r10
- lsls r1, r2, 16
- asrs r1, 16
- ldr r3, [sp, 0x10]
- lsls r2, r3, 16
- asrs r2, 16
- movs r3, 0
- bl CreateSprite
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _08145800
- lsls r2, r4, 4
- adds r2, r4
- lsls r2, 2
- adds r3, r2, r5
- ldrb r1, [r3, 0x5]
- movs r0, 0xF
- ands r0, r1
- mov r7, r8
- orrs r0, r7
- movs r1, 0xD
- negs r1, r1
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3, 0x5]
- mov r0, r9
- adds r0, 0x1
- strh r0, [r3, 0x30]
- movs r0, 0x3E
- adds r0, r3
- mov r8, r0
- ldrb r0, [r0]
- orrs r0, r1
- mov r1, r8
- strb r0, [r1]
- adds r0, r5, 0
- adds r0, 0x1C
- adds r2, r0
- ldr r0, _08145804
- str r0, [r2]
- ldr r0, _08145808
- movs r2, 0x20
- ldrsh r1, [r3, r2]
- movs r7, 0x22
- ldrsh r2, [r3, r7]
- movs r3, 0x1
- bl CreateSprite
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r4, [r0, 0x2E]
- adds r1, r6, 0
- bl StartSpriteAnimIfDifferent
- adds r0, r4, 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
-_081457E8: .4byte gSaveBlock2
-_081457EC: .4byte gMonFrontPicTable
-_081457F0: .4byte gMonFrontPicCoords
-_081457F4: .4byte gUnknown_0840B5A0
-_081457F8: .4byte 0x0000ffff
-_081457FC: .4byte gUnknown_02024E8C
-_08145800: .4byte gSprites
-_08145804: .4byte sub_81454E0
-_08145808: .4byte gSpriteTemplate_840CAEC
- thumb_func_end sub_81456B4
-
- thumb_func_start sub_814580C
-sub_814580C: @ 814580C
- push {r4,lr}
- adds r3, r0, 0
- ldr r4, _08145838
- movs r1, 0x2E
- ldrsh r0, [r3, r1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0xA
- beq _08145830
- ldr r0, _0814583C
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- beq _08145840
-_08145830:
- adds r0, r3, 0
- bl DestroySprite
- b _081458D4
- .align 2, 0
-_08145838: .4byte gSprites
-_0814583C: .4byte gUnknown_0203935C
-_08145840:
- adds r0, r1, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- movs r1, 0x4
- ands r1, r0
- mov r0, r12
- ldrb r2, [r0]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- movs r2, 0x2E
- ldrsh r1, [r3, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x1]
- movs r0, 0xC
- ands r0, r1
- ldrb r2, [r3, 0x1]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x1]
- movs r0, 0x2E
- ldrsh r2, [r3, r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x1]
- lsls r0, 30
- lsrs r0, 30
- movs r2, 0x4
- negs r2, r2
- ands r1, r2
- orrs r1, r0
- strb r1, [r3, 0x1]
- movs r2, 0x2E
- ldrsh r1, [r3, r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x3]
- movs r1, 0x3E
- ands r1, r0
- ldrb r2, [r3, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x3]
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x20]
- strh r0, [r3, 0x20]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x22]
- strh r0, [r3, 0x22]
-_081458D4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_814580C
-
- thumb_func_start sub_81458DC
-sub_81458DC: @ 81458DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r7, _0814597C
- ldr r0, _08145980
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl sub_8109E50
- lsls r0, 16
- lsrs r0, 16
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- mov r10, r0
- movs r4, 0x1
- movs r5, 0
- ldr r0, _08145984
- mov r8, r0
-_0814590E:
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8090D90
- lsls r0, 24
- adds r6, r7, 0
- adds r6, 0x90
- cmp r0, 0
- beq _0814592C
- lsls r0, r5, 1
- adds r0, r6, r0
- strh r4, [r0]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_0814592C:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r8
- bls _0814590E
- adds r4, r5, 0
- ldr r0, _08145984
- lsls r1, r4, 16
- mov r9, r1
- movs r2, 0x8E
- adds r2, r7
- mov r8, r2
- adds r1, r7, 0
- adds r1, 0x86
- str r1, [sp]
- cmp r4, r0
- bhi _08145964
- adds r1, r6, 0
- movs r3, 0
- adds r2, r0, 0
-_08145954:
- lsls r0, r4, 1
- adds r0, r1, r0
- strh r3, [r0]
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r2
- bls _08145954
-_08145964:
- movs r2, 0xE5
- lsls r2, 2
- adds r0, r7, r2
- strh r5, [r0]
- mov r1, r9
- lsrs r0, r1, 16
- cmp r0, 0x43
- bhi _08145988
- mov r2, r8
- strh r5, [r2]
- b _0814598E
- .align 2, 0
-_0814597C: .4byte 0x0201c000
-_08145980: .4byte 0x00004023
-_08145984: .4byte 0x00000181
-_08145988:
- movs r0, 0x44
- mov r1, r8
- strh r0, [r1]
-_0814598E:
- movs r5, 0
- movs r2, 0xE5
- lsls r2, 2
- adds r4, r7, r2
- mov r9, r5
- b _0814599E
-_0814599A:
- cmp r5, 0x43
- bhi _081459EE
-_0814599E:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r4]
- bl __umodsi3
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r1, r5, 1
- adds r1, r7, r1
- lsls r0, r2, 1
- adds r3, r6, r0
- ldrh r0, [r3]
- strh r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- mov r0, r9
- strh r0, [r3]
- ldrh r0, [r4]
- subs r0, 0x1
- strh r0, [r4]
- lsls r0, 16
- lsrs r0, 16
- cmp r2, r0
- beq _081459E8
- ldrh r0, [r4]
- lsls r0, 1
- adds r0, r6, r0
- ldrh r0, [r0]
- strh r0, [r3]
- ldrh r0, [r4]
- lsls r0, 1
- adds r0, r6, r0
- mov r1, r9
- strh r1, [r0]
-_081459E8:
- ldrh r0, [r4]
- cmp r0, 0
- bne _0814599A
-_081459EE:
- mov r2, r8
- ldrh r0, [r2]
- cmp r0, 0x43
- bhi _08145A26
- adds r5, r0, 0
- movs r2, 0
- cmp r5, 0x43
- bhi _08145A5C
- mov r3, r8
-_08145A00:
- lsls r1, r5, 1
- adds r1, r7, r1
- lsls r0, r2, 1
- adds r0, r7, r0
- ldrh r0, [r0]
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- ldrh r0, [r3]
- cmp r2, r0
- bne _08145A1A
- movs r2, 0
-_08145A1A:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x43
- bls _08145A00
- b _08145A5C
-_08145A26:
- movs r4, 0
- ldrh r0, [r7]
- cmp r0, r10
- beq _08145A42
-_08145A2E:
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r4, 1
- adds r0, r7, r0
- ldrh r0, [r0]
- cmp r0, r10
- beq _08145A42
- cmp r4, 0x43
- bls _08145A2E
-_08145A42:
- mov r1, r8
- ldrh r0, [r1]
- subs r0, 0x1
- cmp r4, r0
- bge _08145A5C
- lsls r0, r4, 1
- adds r0, r7, r0
- ldr r2, [sp]
- ldrh r1, [r2]
- strh r1, [r0]
- mov r0, r10
- strh r0, [r2]
- b _08145A62
-_08145A5C:
- mov r2, r10
- ldr r1, [sp]
- strh r2, [r1]
-_08145A62:
- movs r0, 0x44
- mov r1, r8
- strh r0, [r1]
- 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_81458DC
-
- thumb_func_start sub_8145A78
-sub_8145A78: @ 8145A78
- push {r4,lr}
- bl Random
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl Random
- lsls r0, 16
- orrs r0, r4
- bl sub_8145D14
- ldr r0, _08145AA0
- movs r1, 0
- bl VarSet
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08145AA0: .4byte 0x00004045
- thumb_func_end sub_8145A78
-
- thumb_func_start sub_8145AA4
-sub_8145AA4: @ 8145AA4
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl Random
- lsls r0, 16
- lsrs r1, r0, 16
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _08145AE0
- cmp r4, r0
- beq _08145AD4
- ldr r5, _08145AE4
- ldr r3, _08145AE8
- adds r2, r0, 0
-_08145AC4:
- adds r0, r1, 0
- muls r0, r5
- adds r1, r0, r3
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r2
- bne _08145AC4
-_08145AD4:
- adds r0, r1, 0
- bl sub_8145D14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08145AE0: .4byte 0x0000ffff
-_08145AE4: .4byte 0x41c64e6d
-_08145AE8: .4byte 0x00003039
- thumb_func_end sub_8145AA4
-
- thumb_func_start sub_8145AEC
-sub_8145AEC: @ 8145AEC
- push {lr}
- bl sub_8145D3C
- ldr r1, _08145AFC
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08145AFC: .4byte gScriptResult
- thumb_func_end sub_8145AEC
-
- thumb_func_start sub_8145B00
-sub_8145B00: @ 8145B00
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r1, _08145C24
- movs r0, 0
- strh r0, [r1]
- movs r0, 0
- mov r10, r0
- mov r9, r0
- movs r6, 0
-_08145B18:
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- ldr r0, _08145C28
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _08145B74
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetMonData
- cmp r0, 0
- bne _08145B6A
- adds r0, r4, 0
- movs r1, 0x1
- bl GetMonData
- adds r1, r0, 0
- ldr r0, _08145C2C
- ldrh r0, [r0]
- lsls r1, 16
- lsrs r1, 16
- bl sub_8145C8C
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08145C24
- ldrh r2, [r1]
- cmp r0, r2
- bls _08145B6A
- cmp r0, 0x1
- bls _08145B6A
- subs r0, 0x1
- strh r0, [r1]
- movs r0, 0xE
- mov r9, r0
- mov r10, r6
-_08145B6A:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x5
- bls _08145B18
-_08145B74:
- movs r6, 0
-_08145B76:
- movs r5, 0
- adds r1, r6, 0x1
- mov r8, r1
- lsls r0, r6, 2
- adds r7, r0, r6
-_08145B80:
- lsls r2, r7, 4
- subs r2, r7
- lsls r2, 5
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 4
- ldr r1, _08145C30
- adds r0, r1
- adds r4, r2, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetBoxMonData
- cmp r0, 0
- beq _08145BD8
- adds r0, r4, 0
- movs r1, 0x2D
- bl GetBoxMonData
- cmp r0, 0
- bne _08145BD8
- adds r0, r4, 0
- movs r1, 0x1
- bl GetBoxMonData
- adds r1, r0, 0
- ldr r0, _08145C2C
- ldrh r0, [r0]
- lsls r1, 16
- lsrs r1, 16
- bl sub_8145C8C
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08145C24
- ldrh r2, [r1]
- cmp r0, r2
- bls _08145BD8
- cmp r0, 0x1
- bls _08145BD8
- subs r0, 0x1
- strh r0, [r1]
- mov r9, r6
- mov r10, r5
-_08145BD8:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x1D
- bls _08145B80
- mov r1, r8
- lsls r0, r1, 16
- lsrs r6, r0, 16
- cmp r6, 0xD
- bls _08145B76
- ldr r3, _08145C24
- ldrh r0, [r3]
- cmp r0, 0
- beq _08145C72
- ldr r2, _08145C34
- ldr r1, _08145C38
- subs r0, 0x1
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- mov r2, r9
- cmp r2, 0xE
- bne _08145C44
- ldr r1, _08145C3C
- movs r0, 0
- strh r0, [r1]
- movs r0, 0x64
- mov r1, r10
- muls r1, r0
- adds r0, r1, 0
- ldr r1, _08145C28
- adds r0, r1
- ldr r2, _08145C40
- movs r1, 0x2
- bl GetMonData
- b _08145C6C
- .align 2, 0
-_08145C24: .4byte gUnknown_0202E8CC
-_08145C28: .4byte gPlayerParty
-_08145C2C: .4byte gScriptResult
-_08145C30: .4byte gUnknown_020300A4
-_08145C34: .4byte gUnknown_0202E8CE
-_08145C38: .4byte gUnknown_0840CB04
-_08145C3C: .4byte gUnknown_0202E8D0
-_08145C40: .4byte gStringVar1
-_08145C44:
- ldr r1, _08145C80
- movs r0, 0x1
- strh r0, [r1]
- mov r2, r9
- lsls r1, r2, 2
- add r1, r9
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- mov r2, r10
- lsls r1, r2, 2
- add r1, r10
- lsls r1, 4
- ldr r2, _08145C84
- adds r1, r2
- adds r0, r1
- ldr r2, _08145C88
- movs r1, 0x2
- bl GetBoxMonData
-_08145C6C:
- ldr r0, _08145C88
- bl StringGetEnd10
-_08145C72:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08145C80: .4byte gUnknown_0202E8D0
-_08145C84: .4byte gUnknown_020300A4
-_08145C88: .4byte gStringVar1
- thumb_func_end sub_8145B00
-
- thumb_func_start sub_8145C8C
-sub_8145C8C: @ 8145C8C
- 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 r5, r1, 16
- movs r0, 0
- mov r8, r0
- movs r7, 0
- ldr r1, _08145D0C
- mov r10, r1
- ldr r0, _08145D10
- mov r9, r0
-_08145CAC:
- adds r0, r6, 0
- movs r1, 0xA
- bl __umodsi3
- adds r4, r0, 0
- mov r1, r10
- strh r4, [r1]
- adds r0, r5, 0
- movs r1, 0xA
- bl __umodsi3
- mov r1, r9
- strh r0, [r1]
- lsls r4, 16
- lsls r0, 16
- cmp r4, r0
- bne _08145CFA
- adds r0, r6, 0
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r5, 0
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 16
- lsrs r5, r0, 16
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x4
- bls _08145CAC
-_08145CFA:
- mov r0, r8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08145D0C: .4byte gUnknown_02039328
-_08145D10: .4byte gUnknown_0203932A
- thumb_func_end sub_8145C8C
-
- thumb_func_start sub_8145D14
-sub_8145D14: @ 8145D14
- push {r4,lr}
- adds r1, r0, 0
- lsrs r4, r1, 16
- lsls r1, 16
- lsrs r1, 16
- ldr r0, _08145D34
- bl VarSet
- ldr r0, _08145D38
- adds r1, r4, 0
- bl VarSet
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08145D34: .4byte 0x0000404b
-_08145D38: .4byte 0x0000404c
- thumb_func_end sub_8145D14
-
- thumb_func_start sub_8145D3C
-sub_8145D3C: @ 8145D3C
- push {r4,lr}
- ldr r0, _08145D5C
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08145D60
- bl VarGet
- lsls r0, 16
- orrs r0, r4
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08145D5C: .4byte 0x0000404b
-_08145D60: .4byte 0x0000404c
- thumb_func_end sub_8145D3C
-
- thumb_func_start unref_sub_8145D64
-unref_sub_8145D64: @ 8145D64
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- bl sub_8145D14
- pop {r0}
- bx r0
- thumb_func_end unref_sub_8145D64
-
- thumb_func_start sub_8145D74
-sub_8145D74: @ 8145D74
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8145D74
-
- thumb_func_start sub_8145D88
-sub_8145D88: @ 8145D88
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0xC
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0x80
- lsls r0, 19
- mov r8, r0
- movs r1, 0
- strh r1, [r0]
- ldr r6, _08145EB0
- strh r1, [r6]
- adds r0, 0xC
- 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]
- add r0, sp, 0x4
- strh r1, [r0]
- ldr r2, _08145EB4
- str r0, [r2]
- movs r1, 0xC0
- lsls r1, 19
- str r1, [r2, 0x4]
- ldr r0, _08145EB8
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r5, 0
- str r5, [sp, 0x8]
- add r0, sp, 0x8
- str r0, [r2]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r2, 0x4]
- ldr r0, _08145EBC
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- add r0, sp, 0x4
- strh r5, [r0]
- str r0, [r2]
- movs r0, 0xA0
- lsls r0, 19
- str r0, [r2, 0x4]
- ldr r0, _08145EC0
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _08145EC4
- bl LZ77UnCompVram
- ldr r0, _08145EC8
- ldr r1, _08145ECC
- bl LZ77UnCompVram
- bl remove_some_task
- bl ResetTasks
- bl ResetSpriteData
- bl ResetPaletteFade
- bl FreeAllSpritePalettes
- ldr r0, _08145ED0
- movs r1, 0
- movs r2, 0x40
- bl LoadPalette
- ldr r0, _08145ED4
- bl SetUpWindowConfig
- ldr r0, _08145ED8
- bl InitMenuWindow
- bl pokedex_diploma_something
- movs r0, 0x1
- negs r0, r0
- str r5, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r3, _08145EDC
- ldrh r2, [r3]
- strh r5, [r3]
- ldr r4, _08145EE0
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08145EE4
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _08145EE8
- bl SetVBlankCallback
- ldr r0, _08145EEC
- bl SetMainCallback2
- ldr r0, _08145EF0
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- adds r0, 0x2
- strh r5, [r0]
- ldr r1, _08145EF4
- adds r0, r1, 0
- strh r0, [r6]
- movs r1, 0xCA
- lsls r1, 5
- adds r0, r1, 0
- mov r1, r8
- strh r0, [r1]
- ldr r0, _08145EF8
- movs r1, 0
- bl CreateTask
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08145EB0: .4byte REG_BG3CNT
-_08145EB4: .4byte 0x040000d4
-_08145EB8: .4byte 0x8100c000
-_08145EBC: .4byte 0x85000100
-_08145EC0: .4byte 0x81000200
-_08145EC4: .4byte gUnknown_0840D288
-_08145EC8: .4byte gUnknown_0840CB4C
-_08145ECC: .4byte 0x06003000
-_08145ED0: .4byte gUnknown_0840CB0C
-_08145ED4: .4byte gWindowConfig_81E6C3C
-_08145ED8: .4byte gWindowConfig_81E6CE4
-_08145EDC: .4byte 0x04000208
-_08145EE0: .4byte 0x04000200
-_08145EE4: .4byte REG_DISPSTAT
-_08145EE8: .4byte sub_8145D74
-_08145EEC: .4byte sub_8145EFC
-_08145EF0: .4byte REG_BLDCNT
-_08145EF4: .4byte 0x00004603
-_08145EF8: .4byte sub_8145F14
- thumb_func_end sub_8145D88
-
- thumb_func_start sub_8145EFC
-sub_8145EFC: @ 8145EFC
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8145EFC
-
- thumb_func_start sub_8145F14
-sub_8145F14: @ 8145F14
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08145F38
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08145F34
- ldr r0, _08145F3C
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldr r0, _08145F40
- str r0, [r1]
-_08145F34:
- pop {r0}
- bx r0
- .align 2, 0
-_08145F38: .4byte gPaletteFade
-_08145F3C: .4byte gTasks
-_08145F40: .4byte sub_8145F44
- thumb_func_end sub_8145F14
-
- thumb_func_start sub_8145F44
-sub_8145F44: @ 8145F44
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08145F80
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08145F76
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _08145F84
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08145F88
- str r1, [r0]
-_08145F76:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08145F80: .4byte gMain
-_08145F84: .4byte gTasks
-_08145F88: .4byte sub_8145F8C
- thumb_func_end sub_8145F44
-
- thumb_func_start sub_8145F8C
-sub_8145F8C: @ 8145F8C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08145FB0
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08145FAA
- adds r0, r2, 0
- bl DestroyTask
- ldr r0, _08145FB4
- bl SetMainCallback2
-_08145FAA:
- pop {r0}
- bx r0
- .align 2, 0
-_08145FB0: .4byte gPaletteFade
-_08145FB4: .4byte sub_80546F0
- thumb_func_end sub_8145F8C
-
- thumb_func_start pokedex_diploma_something
-pokedex_diploma_something: @ 8145FB8
- push {lr}
- bl sub_8090FF4
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _08145FE8
- ldr r1, _08145FDC
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08145FE0
- ldr r1, _08145FE4
- bl StringCopy
- b _08145FF4
- .align 2, 0
-_08145FDC: .4byte REG_BG3HOFS
-_08145FE0: .4byte gStringVar1
-_08145FE4: .4byte gOtherText_NationalDex
-_08145FE8:
- ldr r0, _08146004
- strh r1, [r0]
- ldr r0, _08146008
- ldr r1, _0814600C
- bl StringCopy
-_08145FF4:
- ldr r0, _08146010
- movs r1, 0x6
- movs r2, 0x2
- bl MenuPrint
- pop {r0}
- bx r0
- .align 2, 0
-_08146004: .4byte REG_BG3HOFS
-_08146008: .4byte gStringVar1
-_0814600C: .4byte gOtherText_HoennDex
-_08146010: .4byte gOtherText_DiplomaCertificationGameFreak
- thumb_func_end pokedex_diploma_something
-
- thumb_func_start sub_8146014
-sub_8146014: @ 8146014
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTasks
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8146014
-
- thumb_func_start sub_814602C
-sub_814602C: @ 814602C
- push {lr}
- ldr r2, _0814604C
- ldr r0, _08146050
- ldrh r1, [r0]
- strh r1, [r2]
- ldr r0, _08146054
- strh r1, [r0]
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- .align 2, 0
-_0814604C: .4byte REG_BG0VOFS
-_08146050: .4byte gUnknown_030041B4
-_08146054: .4byte REG_BG1VOFS
- thumb_func_end sub_814602C
-
- thumb_func_start sub_8146058
-sub_8146058: @ 8146058
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08146074
- ldr r1, _08146078
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xC
- bls _0814606A
- b _08146250
-_0814606A:
- lsls r0, 2
- ldr r1, _0814607C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08146074: .4byte gMain
-_08146078: .4byte 0x0000043c
-_0814607C: .4byte _08146080
- .align 2, 0
-_08146080:
- .4byte _081460B4
- .4byte _081460CC
- .4byte _081460F0
- .4byte _081460F6
- .4byte _08146110
- .4byte _0814611C
- .4byte _0814613C
- .4byte _0814615C
- .4byte _08146170
- .4byte _08146190
- .4byte _081461B4
- .4byte _08146204
- .4byte _08146224
-_081460B4:
- bl sub_80F9438
- bl sub_80F9368
- bl sub_8146288
- ldr r1, _081460C8
- movs r0, 0
- strh r0, [r1]
- b _0814620C
- .align 2, 0
-_081460C8: .4byte REG_BLDCNT
-_081460CC:
- bl ResetPaletteFade
- ldr r2, _081460E4
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r1, _081460E8
- ldr r0, _081460EC
- adds r1, r0
- b _08146212
- .align 2, 0
-_081460E4: .4byte gPaletteFade
-_081460E8: .4byte gMain
-_081460EC: .4byte 0x0000043c
-_081460F0:
- bl ResetSpriteData
- b _0814620C
-_081460F6:
- ldr r0, _08146104
- bl SetUpWindowConfig
- ldr r1, _08146108
- ldr r0, _0814610C
- adds r1, r0
- b _08146212
- .align 2, 0
-_08146104: .4byte gWindowConfig_81E6E18
-_08146108: .4byte gMain
-_0814610C: .4byte 0x0000043c
-_08146110:
- ldr r0, _08146118
- bl MultistepInitMenuWindowBegin
- b _0814620C
- .align 2, 0
-_08146118: .4byte gWindowConfig_81E6E18
-_0814611C:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _08146126
- b _08146250
-_08146126:
- ldr r0, _08146134
- ldr r1, _08146138
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- b _0814620C
- .align 2, 0
-_08146134: .4byte 0x02000000
-_08146138: .4byte 0x0001ffff
-_0814613C:
- bl sub_81462B8
- lsls r0, 24
- cmp r0, 0
- bne _08146148
- b _08146250
-_08146148:
- ldr r0, _08146154
- ldr r1, _08146158
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- b _0814620C
- .align 2, 0
-_08146154: .4byte 0x02000000
-_08146158: .4byte 0x0001ffff
-_0814615C:
- bl sub_81464E4
- ldr r1, _08146168
- ldr r0, _0814616C
- adds r1, r0
- b _08146212
- .align 2, 0
-_08146168: .4byte gMain
-_0814616C: .4byte 0x0000043c
-_08146170:
- ldr r0, _08146188
- ldrb r0, [r0]
- adds r0, 0x7B
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x38
- movs r2, 0x40
- bl sub_80A7D8C
- ldr r1, _0814618C
- strb r0, [r1]
- b _0814620C
- .align 2, 0
-_08146188: .4byte word_203855E
-_0814618C: .4byte gUnknown_0203932C
-_08146190:
- ldr r0, _081461A8
- ldrb r0, [r0]
- adds r0, 0x7B
- lsls r0, 24
- lsrs r0, 24
- bl sub_8146600
- ldr r1, _081461AC
- ldr r0, _081461B0
- adds r1, r0
- b _08146212
- .align 2, 0
-_081461A8: .4byte word_203855E
-_081461AC: .4byte gMain
-_081461B0: .4byte 0x0000043c
-_081461B4:
- ldr r3, _081461EC
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _081461F0
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _081461F4
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _081461F8
- bl SetVBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _081461FC
- ldr r0, _08146200
- adds r1, r0
- b _08146212
- .align 2, 0
-_081461EC: .4byte 0x04000208
-_081461F0: .4byte 0x04000200
-_081461F4: .4byte REG_DISPSTAT
-_081461F8: .4byte sub_814602C
-_081461FC: .4byte gMain
-_08146200: .4byte 0x0000043c
-_08146204:
- bl sub_8055870
- cmp r0, 0x1
- beq _08146250
-_0814620C:
- ldr r1, _0814621C
- ldr r2, _08146220
- adds r1, r2
-_08146212:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08146250
- .align 2, 0
-_0814621C: .4byte gMain
-_08146220: .4byte 0x0000043c
-_08146224:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, _08146248
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _0814624C
- bl SetMainCallback2
- movs r0, 0x1
- b _08146252
- .align 2, 0
-_08146248: .4byte gPaletteFade
-_0814624C: .4byte sub_8146014
-_08146250:
- movs r0, 0
-_08146252:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8146058
-
- thumb_func_start sub_814625C
-sub_814625C: @ 814625C
- push {lr}
-_0814625E:
- bl sub_8146058
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08146278
- ldr r0, _08146274
- movs r1, 0
- bl CreateTask
- b _08146284
- .align 2, 0
-_08146274: .4byte sub_8146480
-_08146278:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0814625E
-_08146284:
- pop {r0}
- bx r0
- thumb_func_end sub_814625C
-
- thumb_func_start sub_8146288
-sub_8146288: @ 8146288
- ldr r1, _081462A8
- ldr r2, _081462AC
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- adds r2, 0xFE
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _081462B0
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, _081462B4
- movs r0, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_081462A8: .4byte REG_BG1CNT
-_081462AC: .4byte 0x00000502
-_081462B0: .4byte 0x00000703
-_081462B4: .4byte gUnknown_030041B4
- thumb_func_end sub_8146288
-
- thumb_func_start sub_81462B8
-sub_81462B8: @ 81462B8
- push {r4-r7,lr}
- ldr r1, _081462D4
- ldr r2, _081462D8
- adds r0, r1, r2
- ldrb r0, [r0]
- mov r12, r1
- cmp r0, 0x6
- bls _081462CA
- b _08146404
-_081462CA:
- lsls r0, 2
- ldr r1, _081462DC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081462D4: .4byte 0x02000000
-_081462D8: .4byte 0x0001ffff
-_081462DC: .4byte _081462E0
- .align 2, 0
-_081462E0:
- .4byte _081462FC
- .4byte _0814630C
- .4byte _0814632C
- .4byte _08146340
- .4byte _081463A4
- .4byte _081463C4
- .4byte _081463E4
-_081462FC:
- ldr r0, _08146308
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
- b _081463CA
- .align 2, 0
-_08146308: .4byte gBerryCheck_Gfx
-_0814630C:
- ldr r0, _0814631C
- ldr r1, _08146320
- bl LZDecompressVram
- ldr r1, _08146324
- ldr r2, _08146328
- adds r1, r2
- b _081463D0
- .align 2, 0
-_0814631C: .4byte gUnknown_08E788E4
-_08146320: .4byte 0x06002800
-_08146324: .4byte 0x02000000
-_08146328: .4byte 0x0001ffff
-_0814632C:
- ldr r0, _08146338
- ldr r1, _0814633C
- bl LZDecompressVram
- b _081463CA
- .align 2, 0
-_08146338: .4byte gUnknown_08E78A84
-_0814633C: .4byte 0x06003000
-_08146340:
- movs r1, 0
- ldr r7, _0814635C
- adds r2, r7, 0
- ldr r6, _08146360
- ldr r5, _08146364
- ldr r4, _08146368
- ldr r3, _0814636C
-_0814634E:
- ldrb r0, [r5, 0x8]
- cmp r0, 0
- bne _08146370
- lsls r0, r1, 1
- adds r0, r2
- strh r6, [r0]
- b _08146376
- .align 2, 0
-_0814635C: .4byte gBG2TilemapBuffer
-_08146360: .4byte 0x00004042
-_08146364: .4byte gSaveBlock2
-_08146368: .4byte 0x00005042
-_0814636C: .4byte 0x000003ff
-_08146370:
- lsls r0, r1, 1
- adds r0, r2
- strh r4, [r0]
-_08146376:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r3
- bls _0814634E
- ldr r1, _08146394
- ldr r0, _08146398
- str r7, [r0]
- str r1, [r0, 0x4]
- ldr r1, _0814639C
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- ldr r1, _081463A0
- add r1, r12
- b _081463D0
- .align 2, 0
-_08146394: .4byte 0x06003800
-_08146398: .4byte 0x040000d4
-_0814639C: .4byte 0x80000400
-_081463A0: .4byte 0x0001ffff
-_081463A4:
- ldr r0, _081463B8
- movs r1, 0
- movs r2, 0xC0
- bl LoadCompressedPalette
- ldr r1, _081463BC
- ldr r2, _081463C0
- adds r1, r2
- b _081463D0
- .align 2, 0
-_081463B8: .4byte gBerryCheck_Pal
-_081463BC: .4byte 0x02000000
-_081463C0: .4byte 0x0001ffff
-_081463C4:
- ldr r0, _081463D8
- bl LoadCompressedObjectPic
-_081463CA:
- ldr r1, _081463DC
- ldr r0, _081463E0
- adds r1, r0
-_081463D0:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08146404
- .align 2, 0
-_081463D8: .4byte gUnknown_083C1F74
-_081463DC: .4byte 0x02000000
-_081463E0: .4byte 0x0001ffff
-_081463E4:
- ldr r0, _081463F8
- bl LoadCompressedObjectPalette
- ldr r0, _081463FC
- ldr r1, _08146400
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- b _08146406
- .align 2, 0
-_081463F8: .4byte gUnknown_083C1F7C
-_081463FC: .4byte 0x02000000
-_08146400: .4byte 0x0001ffff
-_08146404:
- movs r0, 0
-_08146406:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81462B8
-
- thumb_func_start sub_814640C
-sub_814640C: @ 814640C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08146438
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08146432
- ldr r0, _0814643C
- bl SetMainCallback2
- bl sub_80A7DD4
- bl gpu_pal_allocator_reset__manage_upper_four
- adds r0, r4, 0
- bl DestroyTask
-_08146432:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08146438: .4byte gPaletteFade
-_0814643C: .4byte sub_80A5B40
- thumb_func_end sub_814640C
-
- thumb_func_start sub_8146440
-sub_8146440: @ 8146440
- 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, _08146478
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0814647C
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08146478: .4byte gTasks
-_0814647C: .4byte sub_814640C
- thumb_func_end sub_8146440
-
- thumb_func_start sub_8146480
-sub_8146480: @ 8146480
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- ldr r0, _081464DC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _081464D6
- ldr r5, _081464E0
- ldrh r1, [r5, 0x30]
- movs r6, 0xF0
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0x40
- bne _081464AC
- movs r1, 0x1
- negs r1, r1
- adds r0, r4, 0
- bl sub_81466E8
-_081464AC:
- ldrh r1, [r5, 0x30]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0x80
- bne _081464BE
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81466E8
-_081464BE:
- ldrh r1, [r5, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081464D0
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081464D6
-_081464D0:
- adds r0, r7, 0
- bl sub_8146440
-_081464D6:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081464DC: .4byte gPaletteFade
-_081464E0: .4byte gMain
- thumb_func_end sub_8146480
-
- thumb_func_start sub_81464E4
-sub_81464E4: @ 81464E4
- push {r4-r7,lr}
- ldr r4, _0814659C
- ldrb r0, [r4]
- adds r0, 0x7C
- lsls r0, 24
- lsrs r0, 24
- bl GetBerryInfo
- adds r5, r0, 0
- ldr r7, _081465A0
- ldrh r1, [r4]
- subs r1, 0x84
- adds r0, r7, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r0, r7, 0
- movs r1, 0xC
- movs r2, 0x4
- bl MenuPrint
- adds r0, r5, 0
- movs r1, 0xE
- movs r2, 0x4
- bl MenuPrint
- ldr r0, [r5, 0xC]
- movs r1, 0x4
- movs r2, 0xE
- bl MenuPrint
- ldr r0, [r5, 0x10]
- movs r1, 0x4
- movs r2, 0x10
- bl MenuPrint
- ldrh r1, [r5, 0x8]
- lsls r0, r1, 5
- subs r0, r1
- lsls r0, 2
- adds r0, r1
- lsls r0, 3
- movs r1, 0xFE
- bl __divsi3
- adds r4, r0, 0
- movs r1, 0xA
- bl __umodsi3
- cmp r0, 0x4
- bls _0814654E
- adds r4, 0xA
-_0814654E:
- adds r0, r4, 0
- movs r1, 0x64
- bl __umodsi3
- movs r1, 0xA
- bl __udivsi3
- adds r6, r0, 0
- adds r0, r4, 0
- movs r1, 0x64
- bl __udivsi3
- adds r4, r0, 0
- ldr r0, _081465A4
- movs r1, 0xB
- movs r2, 0x7
- bl MenuPrint
- ldrh r0, [r5, 0x8]
- cmp r0, 0
- beq _081465B0
- adds r0, r7, 0
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, _081465A8
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, _081465AC
- movs r1, 0x10
- movs r2, 0x7
- bl MenuPrint
- b _081465BA
- .align 2, 0
-_0814659C: .4byte word_203855E
-_081465A0: .4byte gStringVar1
-_081465A4: .4byte gOtherText_Size
-_081465A8: .4byte gStringVar2
-_081465AC: .4byte gContestStatsText_Unknown1
-_081465B0:
- ldr r0, _081465E0
- movs r1, 0x10
- movs r2, 0x7
- bl MenuPrint
-_081465BA:
- ldr r0, _081465E4
- movs r1, 0xB
- movs r2, 0x9
- bl MenuPrint
- ldrb r0, [r5, 0x7]
- cmp r0, 0
- beq _081465EC
- ldr r0, _081465E8
- ldrb r1, [r5, 0x7]
- subs r1, 0x1
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- movs r1, 0x10
- movs r2, 0x9
- bl MenuPrint
- b _081465F6
- .align 2, 0
-_081465E0: .4byte gOtherText_ThreeQuestions2
-_081465E4: .4byte gOtherText_Firm
-_081465E8: .4byte gUnknown_0841192C
-_081465EC:
- ldr r0, _081465FC
- movs r1, 0x10
- movs r2, 0x9
- bl MenuPrint
-_081465F6:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081465FC: .4byte gOtherText_ThreeQuestions2
- thumb_func_end sub_81464E4
-
- thumb_func_start sub_8146600
-sub_8146600: @ 8146600
- push {r4,r5,lr}
- lsls r0, 24
- movs r1, 0x80
- lsls r1, 17
- adds r0, r1
- lsrs r0, 24
- bl GetBerryInfo
- adds r4, r0, 0
- movs r2, 0
- ldr r5, _08146698
- ldr r0, _0814669C
- adds r3, r0, 0
-_0814661A:
- lsls r0, r2, 1
- adds r0, r5
- ldrh r1, [r0]
- orrs r1, r3
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0x4
- bls _0814661A
- ldrb r0, [r4, 0x15]
- cmp r0, 0
- beq _08146642
- movs r0, 0x30
- bl sub_80A7E5C
- ldr r1, _08146698
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1]
-_08146642:
- ldrb r0, [r4, 0x16]
- cmp r0, 0
- beq _08146656
- movs r0, 0x58
- bl sub_80A7E5C
- ldr r1, _08146698
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x2]
-_08146656:
- ldrb r0, [r4, 0x17]
- cmp r0, 0
- beq _0814666A
- movs r0, 0x80
- bl sub_80A7E5C
- ldr r1, _08146698
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x4]
-_0814666A:
- ldrb r0, [r4, 0x18]
- cmp r0, 0
- beq _0814667E
- movs r0, 0xA8
- bl sub_80A7E5C
- ldr r1, _08146698
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x6]
-_0814667E:
- ldrb r0, [r4, 0x19]
- cmp r0, 0
- beq _08146692
- movs r0, 0xD0
- bl sub_80A7E5C
- ldr r1, _08146698
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x8]
-_08146692:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08146698: .4byte gUnknown_0203932E
-_0814669C: .4byte 0x0000ffff
- thumb_func_end sub_8146600
-
- thumb_func_start sub_81466A0
-sub_81466A0: @ 81466A0
- push {r4-r7,lr}
- movs r5, 0
- movs r7, 0x1
- negs r7, r7
- ldr r6, _081466DC
-_081466AA:
- lsls r0, r5, 1
- adds r4, r0, r6
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, r7
- beq _081466CA
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081466E0
- adds r0, r1
- bl DestroySprite
- ldr r0, _081466E4
- strh r0, [r4]
-_081466CA:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0x4
- bls _081466AA
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081466DC: .4byte gUnknown_0203932E
-_081466E0: .4byte gSprites
-_081466E4: .4byte 0x0000ffff
- thumb_func_end sub_81466A0
-
- thumb_func_start sub_81466E8
-sub_81466E8: @ 81466E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r2, r1, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, _08146748
- adds r6, r0, r1
- ldr r4, _0814674C
- movs r0, 0xC
- adds r0, r4
- mov r8, r0
- ldrb r1, [r0, 0x1]
- ldrb r0, [r4, 0xC]
- adds r1, r0
- cmp r1, 0
- bne _08146718
- lsls r0, r2, 24
- cmp r0, 0
- blt _0814678C
-_08146718:
- adds r0, r1, 0x1
- lsls r5, r2, 24
- mov r1, r8
- ldrb r1, [r1, 0x2]
- cmp r0, r1
- bne _08146728
- cmp r5, 0
- bgt _0814678C
-_08146728:
- movs r0, 0x5
- bl PlaySE
- mov r2, r8
- ldrb r3, [r2, 0x1]
- ldrb r4, [r4, 0xC]
- mov r12, r4
- adds r0, r3, r4
- asrs r2, r5, 24
- adds r1, r0, r2
- cmp r1, 0
- bge _08146750
- negs r0, r0
- strh r0, [r6, 0x2]
- b _08146766
- .align 2, 0
-_08146748: .4byte gUnknown_03004B28
-_0814674C: .4byte gUnknown_03005D10
-_08146750:
- mov r4, r8
- ldrb r0, [r4, 0x2]
- cmp r1, r0
- blt _08146764
- subs r0, r3
- mov r1, r12
- subs r0, r1
- subs r0, 0x1
- strh r0, [r6, 0x2]
- b _08146766
-_08146764:
- strh r2, [r6, 0x2]
-_08146766:
- ldr r0, _08146780
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, _08146784
- str r0, [r1]
- cmp r5, 0
- bge _08146788
- movs r2, 0x10
- negs r2, r2
- adds r0, r2, 0
- b _0814678A
- .align 2, 0
-_08146780: .4byte gTasks
-_08146784: .4byte sub_8146798
-_08146788:
- movs r0, 0x10
-_0814678A:
- strh r0, [r6]
-_0814678C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81466E8
-
- thumb_func_start sub_8146798
-sub_8146798: @ 8146798
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _08146800
- adds r0, r1
- ldr r2, _08146804
- ldrh r1, [r0]
- ldrh r5, [r2]
- adds r3, r1, r5
- movs r1, 0xFF
- ands r3, r1
- strh r3, [r2]
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- ble _081467C2
- cmp r3, 0x90
- beq _081467CA
-_081467C2:
- cmp r0, 0
- bge _081467E0
- cmp r3, 0x70
- bne _081467E0
-_081467CA:
- ldr r0, _08146808
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0xA
- ldrsb r0, [r1, r0]
- bl sub_8146810
- bl sub_81468BC
-_081467E0:
- ldr r0, _08146804
- ldrh r2, [r0]
- cmp r2, 0
- bne _081467FA
- ldr r0, _08146808
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- strh r2, [r1, 0x8]
- strh r2, [r1, 0xA]
- ldr r0, _0814680C
- str r0, [r1]
-_081467FA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08146800: .4byte gUnknown_03004B28
-_08146804: .4byte gUnknown_030041B4
-_08146808: .4byte gTasks
-_0814680C: .4byte sub_8146480
- thumb_func_end sub_8146798
-
- thumb_func_start sub_8146810
-sub_8146810: @ 8146810
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, r3, 0
- lsls r0, r3, 24
- asrs r1, r0, 24
- cmp r1, 0
- ble _08146848
- ldr r0, _08146840
- adds r4, r0, 0
- adds r4, 0xC
- ldrb r2, [r0, 0xC]
- adds r1, r2, r1
- adds r6, r0, 0
- cmp r1, 0x7
- ble _08146844
- adds r0, r3, 0
- adds r0, 0xF9
- adds r0, r2, r0
- ldrb r1, [r4, 0x1]
- adds r0, r1
- strb r0, [r4, 0x1]
- movs r0, 0x7
- b _0814686E
- .align 2, 0
-_08146840: .4byte gUnknown_03005D10
-_08146844:
- adds r0, r2, r3
- b _0814686E
-_08146848:
- ldr r0, _08146868
- adds r5, r0, 0
- adds r5, 0xC
- ldrb r2, [r0, 0xC]
- adds r1, r2, r1
- adds r6, r0, 0
- cmp r1, 0
- bge _0814686C
- adds r0, r2, r3
- ldrb r1, [r5, 0x1]
- adds r0, r1
- movs r1, 0
- strb r0, [r5, 0x1]
- strb r1, [r6, 0xC]
- b _08146870
- .align 2, 0
-_08146868: .4byte gUnknown_03005D10
-_0814686C:
- adds r0, r2, r4
-_0814686E:
- strb r0, [r6, 0xC]
-_08146870:
- ldr r2, _081468AC
- movs r0, 0x3
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r0, 0x1]
- ldrb r0, [r0]
- adds r1, r0
- ldr r0, _081468B0
- ldr r0, [r0]
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1]
- strh r0, [r2]
- ldr r0, _081468B4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _081468B8
- adds r0, r1
- bl DestroySprite
- bl sub_81466A0
- bl sub_80A7DD4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081468AC: .4byte word_203855E
-_081468B0: .4byte gUnknown_03005D24
-_081468B4: .4byte gUnknown_0203932C
-_081468B8: .4byte gSprites
- thumb_func_end sub_8146810
-
- thumb_func_start sub_81468BC
-sub_81468BC: @ 81468BC
- push {r4,lr}
- movs r0, 0
- movs r1, 0x4
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- bl sub_81464E4
- ldr r4, _081468F8
- ldrb r0, [r4]
- adds r0, 0x7B
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x38
- movs r2, 0x40
- bl sub_80A7D8C
- ldr r1, _081468FC
- strb r0, [r1]
- ldrb r0, [r4]
- adds r0, 0x7B
- lsls r0, 24
- lsrs r0, 24
- bl sub_8146600
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081468F8: .4byte word_203855E
-_081468FC: .4byte gUnknown_0203932C
- thumb_func_end sub_81468BC
-
- thumb_func_start sub_8146900
-sub_8146900: @ 8146900
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8146900
-
- thumb_func_start sub_8146914
-sub_8146914: @ 8146914
- push {lr}
- movs r2, 0
- ldr r1, _0814692C
- ldrh r0, [r1, 0x1A]
- ldrh r1, [r1, 0x36]
- cmp r0, r1
- bne _08146924
- movs r2, 0x1
-_08146924:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0814692C: .4byte gLinkPlayers
- thumb_func_end sub_8146914
-
- thumb_func_start CB2_InitMysteryEventMenu
-CB2_InitMysteryEventMenu: @ 8146930
- push {r4,lr}
- bl ResetSpriteData
- bl FreeAllSpritePalettes
- bl ResetTasks
- ldr r0, _0814699C
- bl SetVBlankCallback
- ldr r4, _081469A0
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl InitMenuWindow
- bl MenuZeroFillScreen
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xA0
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x50
- movs r0, 0
- strh r0, [r1]
- ldr r0, _081469A4
- movs r1, 0
- bl CreateTask
- bl StopMapMusic
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- movs r0, 0
- movs r1, 0
- movs r2, 0x2
- bl FillPalette
- ldr r0, _081469A8
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814699C: .4byte sub_8146900
-_081469A0: .4byte gWindowConfig_81E6CE4
-_081469A4: .4byte Task_DestroySelf
-_081469A8: .4byte sub_81469E4
- thumb_func_end CB2_InitMysteryEventMenu
-
- thumb_func_start sub_81469AC
-sub_81469AC: @ 81469AC
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r4, r1, 0
- movs r5, 0x1
- cmp r4, 0
- bne _081469C0
- ldr r1, _081469DC
- bl StringCopy
- movs r5, 0
-_081469C0:
- cmp r4, 0x2
- bne _081469C6
- movs r5, 0
-_081469C6:
- cmp r4, 0x1
- bne _081469D2
- ldr r1, _081469E0
- adds r0, r6, 0
- bl StringCopy
-_081469D2:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081469DC: .4byte gSystemText_EventLoadSuccess
-_081469E0: .4byte gSystemText_LoadingError
- thumb_func_end sub_81469AC
-
- thumb_func_start sub_81469E4
-sub_81469E4: @ 81469E4
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r1, _08146A04
- ldr r2, _08146A08
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r4, r1, 0
- cmp r0, 0x10
- bls _081469F8
- b _08146DA4
-_081469F8:
- lsls r0, 2
- ldr r1, _08146A0C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08146A04: .4byte gMain
-_08146A08: .4byte 0x0000043c
-_08146A0C: .4byte _08146A10
- .align 2, 0
-_08146A10:
- .4byte _08146A54
- .4byte _08146A6E
- .4byte _08146A9C
- .4byte _08146AD4
- .4byte _08146B18
- .4byte _08146B26
- .4byte _08146B90
- .4byte _08146C64
- .4byte _08146C72
- .4byte _08146C94
- .4byte _08146CA0
- .4byte _08146CB4
- .4byte _08146CFC
- .4byte _08146D18
- .4byte _08146D50
- .4byte _08146D6C
- .4byte _08146D94
-_08146A54:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- b _08146D78
-_08146A6E:
- ldr r0, _08146A8C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08146A7C
- b _08146DA4
-_08146A7C:
- ldr r0, _08146A90
- bl sub_8072044
- ldr r1, _08146A94
- ldr r2, _08146A98
- adds r1, r2
- b _08146D82
- .align 2, 0
-_08146A8C: .4byte gPaletteFade
-_08146A90: .4byte gSystemText_LinkStandby
-_08146A94: .4byte gMain
-_08146A98: .4byte 0x0000043c
-_08146A9C:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08146AA8
- b _08146DA4
-_08146AA8:
- ldr r1, _08146AC4
- ldr r0, _08146AC8
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r1, _08146ACC
- ldr r2, _08146AD0
- adds r0, r2, 0
- strh r0, [r1]
- bl OpenLink
- b _08146DA4
- .align 2, 0
-_08146AC4: .4byte gMain
-_08146AC8: .4byte 0x0000043c
-_08146ACC: .4byte gLinkType
-_08146AD0: .4byte 0x00005501
-_08146AD4:
- ldr r0, _08146B08
- ldr r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _08146AE2
- b _08146C38
-_08146AE2:
- movs r0, 0x1C
- ands r1, r0
- cmp r1, 0x4
- bhi _08146AEC
- b _08146C38
-_08146AEC:
- movs r0, 0x15
- bl PlaySE
- ldr r0, _08146B0C
- bl sub_8072044
- ldr r1, _08146B10
- ldr r0, _08146B14
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08146C38
- .align 2, 0
-_08146B08: .4byte gLinkStatus
-_08146B0C: .4byte gSystemText_LoadEventPressA
-_08146B10: .4byte gMain
-_08146B14: .4byte 0x0000043c
-_08146B18:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08146B24
- b _08146DA4
-_08146B24:
- b _08146D7C
-_08146B26:
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bne _08146C10
- ldr r4, _08146B64
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08146B70
- movs r0, 0x5
- bl PlaySE
- bl sub_8007F4C
- movs r0, 0x6
- movs r1, 0x5
- movs r2, 0x17
- movs r3, 0x8
- bl MenuDrawTextWindow
- ldr r0, _08146B68
- movs r1, 0x7
- movs r2, 0x6
- bl MenuPrint
- ldr r2, _08146B6C
- adds r1, r4, r2
- b _08146D82
- .align 2, 0
-_08146B64: .4byte gMain
-_08146B68: .4byte gSystemText_LoadingEvent
-_08146B6C: .4byte 0x0000043c
-_08146B70:
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08146B7A
- b _08146DA4
-_08146B7A:
- movs r0, 0x5
- bl PlaySE
- bl CloseLink
- ldr r0, _08146B8C
- adds r1, r4, r0
- b _08146C54
- .align 2, 0
-_08146B8C: .4byte 0x0000043c
-_08146B90:
- bl IsLinkConnectionEstablished
- lsls r0, 24
- cmp r0, 0
- beq _08146C38
- ldr r0, _08146BD8
- ldrb r0, [r0]
- cmp r0, 0
- bne _08146BA4
- b _08146DA4
-_08146BA4:
- bl GetLinkPlayerDataExchangeStatusTimed
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _08146BE8
- bl sub_800832C
- movs r0, 0x6
- movs r1, 0x5
- movs r2, 0x17
- movs r3, 0x8
- bl MenuZeroFillWindowRect
- ldr r4, _08146BDC
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81469AC
- adds r0, r4, 0
- bl sub_8072044
- ldr r0, _08146BE0
- ldr r2, _08146BE4
- adds r0, r2
- b _08146C26
- .align 2, 0
-_08146BD8: .4byte gReceivedRemoteLinkPlayers
-_08146BDC: .4byte gStringVar4
-_08146BE0: .4byte gMain
-_08146BE4: .4byte 0x0000043c
-_08146BE8:
- bl sub_8146914
- lsls r0, 24
- cmp r0, 0
- beq _08146C00
- ldr r0, _08146BFC
- bl sub_8072044
- b _08146D7C
- .align 2, 0
-_08146BFC: .4byte gSystemText_DontCutLink
-_08146C00:
- bl CloseLink
- movs r0, 0x6
- movs r1, 0x5
- movs r2, 0x17
- movs r3, 0x8
- bl MenuZeroFillWindowRect
-_08146C10:
- ldr r4, _08146C2C
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81469AC
- adds r0, r4, 0
- bl sub_8072044
- ldr r0, _08146C30
- ldr r1, _08146C34
- adds r0, r1
-_08146C26:
- movs r1, 0xD
- strb r1, [r0]
- b _08146DA4
- .align 2, 0
-_08146C2C: .4byte gStringVar4
-_08146C30: .4byte gMain
-_08146C34: .4byte 0x0000043c
-_08146C38:
- ldr r4, _08146C5C
- ldrh r1, [r4, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08146C46
- b _08146DA4
-_08146C46:
- movs r0, 0x5
- bl PlaySE
- bl CloseLink
- ldr r2, _08146C60
- adds r1, r4, r2
-_08146C54:
- movs r0, 0xF
- strb r0, [r1]
- b _08146DA4
- .align 2, 0
-_08146C5C: .4byte gMain
-_08146C60: .4byte 0x0000043c
-_08146C64:
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- bne _08146C70
- b _08146DA4
-_08146C70:
- b _08146D7C
-_08146C72:
- bl GetBlockRecievedStatus
- lsls r0, 24
- cmp r0, 0
- bne _08146C7E
- b _08146DA4
-_08146C7E:
- bl ResetBlockReceivedFlags
- ldr r1, _08146C8C
- ldr r2, _08146C90
- adds r1, r2
- b _08146D82
- .align 2, 0
-_08146C8C: .4byte gMain
-_08146C90: .4byte 0x0000043c
-_08146C94:
- ldr r0, _08146C9C
- adds r1, r4, r0
- b _08146D82
- .align 2, 0
-_08146C9C: .4byte 0x0000043c
-_08146CA0:
- bl sub_800832C
- ldr r1, _08146CAC
- ldr r2, _08146CB0
- adds r1, r2
- b _08146D82
- .align 2, 0
-_08146CAC: .4byte gMain
-_08146CB0: .4byte 0x0000043c
-_08146CB4:
- ldr r0, _08146CEC
- ldrb r6, [r0]
- cmp r6, 0
- bne _08146DA4
- ldr r5, _08146CF0
- adds r0, r5, 0
- bl sub_812613C
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- str r6, [sp, 0x4]
- ldr r2, _08146CF4
- add r0, sp, 0x4
- adds r1, r5, 0
- bl CpuSet
- ldr r0, _08146CF8
- adds r1, r4, 0
- bl sub_81469AC
- lsls r0, 24
- cmp r0, 0
- bne _08146D7C
- movs r0, 0
- bl sub_8125D44
- b _08146D7C
- .align 2, 0
-_08146CEC: .4byte gReceivedRemoteLinkPlayers
-_08146CF0: .4byte 0x02000000
-_08146CF4: .4byte 0x050001f5
-_08146CF8: .4byte gStringVar4
-_08146CFC:
- ldr r0, _08146D0C
- bl sub_8072044
- ldr r1, _08146D10
- ldr r2, _08146D14
- adds r1, r2
- b _08146D82
- .align 2, 0
-_08146D0C: .4byte gStringVar4
-_08146D10: .4byte gMain
-_08146D14: .4byte 0x0000043c
-_08146D18:
- movs r0, 0x6
- movs r1, 0x5
- movs r2, 0x17
- movs r3, 0x8
- bl MenuZeroFillWindowRect
- bl MenuUpdateWindowText
- lsls r0, 24
- cmp r0, 0
- beq _08146DA4
- ldr r1, _08146D44
- ldr r0, _08146D48
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- movs r2, 0
- strb r0, [r1]
- ldr r0, _08146D4C
- strb r2, [r0]
- b _08146DA4
- .align 2, 0
-_08146D44: .4byte gMain
-_08146D48: .4byte 0x0000043c
-_08146D4C: .4byte gUnknown_02039338
-_08146D50:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08146DA4
- movs r0, 0x5
- bl PlaySE
- ldr r2, _08146D68
- adds r1, r4, r2
- b _08146D82
- .align 2, 0
-_08146D68: .4byte 0x0000043c
-_08146D6C:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
-_08146D78:
- bl BeginNormalPaletteFade
-_08146D7C:
- ldr r1, _08146D8C
- ldr r0, _08146D90
- adds r1, r0
-_08146D82:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08146DA4
- .align 2, 0
-_08146D8C: .4byte gMain
-_08146D90: .4byte 0x0000043c
-_08146D94:
- ldr r0, _08146DFC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08146DA4
- bl DoSoftReset
-_08146DA4:
- ldr r0, _08146E00
- ldr r0, [r0]
- movs r1, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08146DE4
- bl IsLinkMaster
- lsls r0, 24
- cmp r0, 0
- bne _08146DE4
- bl CloseLink
- movs r0, 0x6
- movs r1, 0x5
- movs r2, 0x17
- movs r3, 0x8
- bl MenuZeroFillWindowRect
- ldr r4, _08146E04
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_81469AC
- adds r0, r4, 0
- bl sub_8072044
- ldr r0, _08146E08
- ldr r1, _08146E0C
- adds r0, r1
- movs r1, 0xD
- strb r1, [r0]
-_08146DE4:
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08146DFC: .4byte gPaletteFade
-_08146E00: .4byte gLinkStatus
-_08146E04: .4byte gStringVar4
-_08146E08: .4byte gMain
-_08146E0C: .4byte 0x0000043c
- thumb_func_end sub_81469E4
-
- thumb_func_start fullscreen_save_activate
-fullscreen_save_activate: @ 8146E10
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08146E30
- bl SetMainCallback2
- ldr r0, _08146E34
- strh r4, [r0]
- ldr r1, _08146E38
- movs r0, 0
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08146E30: .4byte sub_8146E50
-_08146E34: .4byte gUnknown_0203933C
-_08146E38: .4byte gUnknown_0203933E
- thumb_func_end fullscreen_save_activate
-
- thumb_func_start sub_8146E3C
-sub_8146E3C: @ 8146E3C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8146E3C
-
- thumb_func_start sub_8146E50
-sub_8146E50: @ 8146E50
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- ldr r0, _08146FB0
- ldr r1, _08146FB4
- adds r7, r0, r1
- ldrb r0, [r7]
- cmp r0, 0
- beq _08146E6C
- cmp r0, 0x1
- bne _08146E6C
- b _0814701C
-_08146E6C:
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0x80
- lsls r0, 19
- mov r9, r0
- movs r1, 0
- strh r1, [r0]
- ldr r6, _08146FB8
- strh r1, [r6]
- adds r0, 0xC
- mov r8, r0
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- ldr r5, _08146FBC
- strh r1, [r5]
- adds r0, 0x12
- 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]
- add r0, sp, 0x4
- strh r1, [r0]
- ldr r2, _08146FC0
- str r0, [r2]
- movs r1, 0xC0
- lsls r1, 19
- str r1, [r2, 0x4]
- ldr r0, _08146FC4
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r4, 0
- str r4, [sp, 0x8]
- add r0, sp, 0x8
- str r0, [r2]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r2, 0x4]
- ldr r0, _08146FC8
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- add r0, sp, 0x4
- strh r4, [r0]
- str r0, [r2]
- movs r0, 0xA0
- lsls r0, 19
- str r0, [r2, 0x4]
- ldr r0, _08146FCC
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r0, _08146FD0
- bl LZ77UnCompVram
- ldr r0, _08146FD4
- ldr r1, _08146FD8
- bl LZ77UnCompVram
- ldr r0, _08146FDC
- ldr r1, _08146FE0
- bl LZ77UnCompVram
- ldr r0, _08146FE4
- ldr r1, _08146FE8
- bl LZ77UnCompVram
- bl ResetSpriteData
- bl ResetTasks
- bl ResetPaletteFade
- ldr r0, _08146FEC
- movs r1, 0
- movs r2, 0x40
- bl LoadPalette
- ldr r0, _08146FF0
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08146FF4
- bl SetUpWindowConfig
- ldr r0, _08146FF8
- bl InitMenuWindow
- .if REVISION >= 1
- movs r0, 0xD
- movs r1, 0x6
- movs r2, 0x10
- movs r3, 0x9
- .else
- movs r0, 0xD
- movs r1, 0x8
- movs r2, 0x10
- movs r3, 0xB
- .endif
- bl MenuDrawTextWindow
- .if REVISION >= 1
- movs r0, 0x1
- movs r1, 0xA
- movs r2, 0x1C
- movs r3, 0x13
- .else
- movs r0, 0x1
- movs r1, 0xC
- movs r2, 0x1C
- movs r3, 0x13
- .endif
- bl MenuDrawTextWindow
- ldr r0, _08146FFC
- .if REVISION >= 1
- movs r1, 0x2
- movs r2, 0xB
- .else
- movs r1, 0x2
- movs r2, 0xD
- .endif
- bl MenuPrint
- movs r0, 0x1
- negs r0, r0
- str r4, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r3, _08147000
- ldrh r2, [r3]
- strh r4, [r3]
- ldr r4, _08147004
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08147008
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _0814700C
- bl SetVBlankCallback
- ldr r1, _08147010
- adds r0, r1, 0
- strh r0, [r6]
- ldr r1, _08147014
- adds r0, r1, 0
- mov r1, r8
- strh r0, [r1]
- ldr r1, _08147018
- adds r0, r1, 0
- strh r0, [r5]
- movs r1, 0xEA
- lsls r1, 5
- adds r0, r1, 0
- mov r1, r9
- strh r0, [r1]
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- b _08147032
- .align 2, 0
-_08146FB0: .4byte gMain
-_08146FB4: .4byte 0x0000043c
-_08146FB8: .4byte REG_BG3CNT
-_08146FBC: .4byte REG_BG0CNT
-_08146FC0: .4byte 0x040000d4
-_08146FC4: .4byte 0x8100c000
-_08146FC8: .4byte 0x85000100
-_08146FCC: .4byte 0x81000200
-_08146FD0: .4byte gUnknown_083F66F0
-_08146FD4: .4byte gBirchBagTilemap
-_08146FD8: .4byte 0x06003000
-_08146FDC: .4byte gBirchGrassTilemap
-_08146FE0: .4byte 0x06003800
-_08146FE4: .4byte gUnknown_08411980
-_08146FE8: .4byte 0x06010020
-_08146FEC: .4byte gUnknown_083F62EC
-_08146FF0: .4byte gUnknown_08411960
-_08146FF4: .4byte gWindowConfig_81E6C3C
-_08146FF8: .4byte gWindowConfig_81E6CE4
-_08146FFC: .4byte gSystemText_SaveFailedBackupCheck
-_08147000: .4byte 0x04000208
-_08147004: .4byte 0x04000200
-_08147008: .4byte REG_DISPSTAT
-_0814700C: .4byte sub_8146E3C
-_08147010: .4byte 0x00000703
-_08147014: .4byte 0x00000602
-_08147018: .4byte 0x00001f08
-_0814701C:
- bl UpdatePaletteFade
- lsls r0, 24
- cmp r0, 0
- bne _08147032
- ldr r0, _08147040
- bl SetMainCallback2
- ldr r0, _08147044
- bl SetVBlankCallback
-_08147032:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08147040: .4byte sub_8147048
-_08147044: .4byte sub_8147218
- thumb_func_end sub_8146E50
-
- thumb_func_start sub_8147048
-sub_8147048: @ 8147048
- push {r4,r5,lr}
- movs r4, 0
- ldr r0, _081470C8
- movs r1, 0x1
- strh r1, [r0]
- ldr r1, _081470CC
- ldr r0, [r1]
- cmp r0, 0
- beq _081470A6
- adds r5, r1, 0
-_0814705C:
- ldr r0, [r5]
- bl sub_814737C
- lsls r0, 24
- cmp r0, 0
- bne _0814710C
- .if REVISION >= 1
- movs r0, 0x1
- movs r1, 0xA
- movs r2, 0x1C
- movs r3, 0x13
- .else
- movs r0, 0x1
- movs r1, 0xC
- movs r2, 0x1C
- movs r3, 0x13
- .endif
- bl MenuDrawTextWindow
- ldr r0, _081470D0
- .if REVISION >= 1
- movs r1, 0x2
- movs r2, 0xB
- .else
- movs r1, 0x2
- movs r2, 0xD
- .endif
- bl MenuPrint
- ldr r0, _081470D4
- ldrb r0, [r0]
- bl sub_8125C3C
- ldr r0, [r5]
- cmp r0, 0
- beq _08147096
- ldr r0, _081470D8
- .if REVISION >= 1
- movs r1, 0x2
- movs r2, 0xB
- .else
- movs r1, 0x2
- movs r2, 0xD
- .endif
- bl MenuPrint
-_08147096:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, [r5]
- cmp r0, 0
- beq _081470A6
- cmp r4, 0x2
- bls _0814705C
-_081470A6:
- cmp r4, 0x3
- bne _081470E4
- .if REVISION >= 1
- movs r0, 0x1
- movs r1, 0xA
- movs r2, 0x1C
- movs r3, 0x13
- .else
- movs r0, 0x1
- movs r1, 0xC
- movs r2, 0x1C
- movs r3, 0x13
- .endif
- bl MenuDrawTextWindow
- ldr r0, _081470DC
- .if REVISION >= 1
- movs r1, 0x2
- movs r2, 0xB
- .else
- movs r1, 0x2
- movs r2, 0xD
- .endif
- bl MenuPrint
- ldr r0, _081470E0
- bl SetMainCallback2
- b _0814713E
- .align 2, 0
-_081470C8: .4byte gUnknown_0203933E
-_081470CC: .4byte gUnknown_03005EA8
-_081470D0: .4byte gSystemText_CheckCompleteSaveAttempt
-_081470D4: .4byte gUnknown_0203933C
-_081470D8: .4byte gSystemText_SaveFailedBackupCheck
-_081470DC: .4byte gSystemText_BackupDamagedGameContinue
-_081470E0: .4byte sub_81471A4
-_081470E4:
- .if REVISION >= 1
- movs r0, 0x1
- movs r1, 0xA
- movs r2, 0x1C
- movs r3, 0x13
- .else
- movs r0, 0x1
- movs r1, 0xC
- movs r2, 0x1C
- movs r3, 0x13
- .endif
- bl MenuDrawTextWindow
- ldr r0, _08147104
- ldr r0, [r0]
- cmp r0, 0
- bne _08147134
- ldr r0, _08147108
- .if REVISION >= 1
- movs r1, 0x2
- movs r2, 0xB
- .else
- movs r1, 0x2
- movs r2, 0xD
- .endif
- bl MenuPrint
- b _0814713E
- .align 2, 0
-_08147104: .4byte gUnknown_03005EBC
-_08147108: .4byte gSystemText_SaveCompletedGameEnd
-_0814710C:
- .if REVISION >= 1
- movs r0, 0x1
- movs r1, 0xA
- movs r2, 0x1C
- movs r3, 0x13
- .else
- movs r0, 0x1
- movs r1, 0xC
- movs r2, 0x1C
- movs r3, 0x13
- .endif
- bl MenuDrawTextWindow
- ldr r0, _0814712C
- .if REVISION >= 1
- movs r1, 0x2
- movs r2, 0xB
- .else
- movs r1, 0x2
- movs r2, 0xD
- .endif
- bl MenuPrint
- ldr r0, _08147130
- bl SetMainCallback2
- b _08147144
- .align 2, 0
-_0814712C: .4byte gSystemText_BackupDamagedGameContinue
-_08147130: .4byte sub_8147154
-_08147134:
- ldr r0, _0814714C
- .if REVISION >= 1
- movs r1, 0x2
- movs r2, 0xB
- .else
- movs r1, 0x2
- movs r2, 0xD
- .endif
- bl MenuPrint
-_0814713E:
- ldr r0, _08147150
- bl SetMainCallback2
-_08147144:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0814714C: .4byte gSystemText_SaveCompletedPressA
-_08147150: .4byte sub_81471A4
- thumb_func_end sub_8147048
-
- thumb_func_start sub_8147154
-sub_8147154: @ 8147154
- push {lr}
- ldr r1, _08147190
- movs r0, 0
- strh r0, [r1]
- ldr r0, _08147194
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0814718A
- .if REVISION >= 1
- movs r0, 0x1
- movs r1, 0xA
- movs r2, 0x1C
- movs r3, 0x13
- .else
- movs r0, 0x1
- movs r1, 0xC
- movs r2, 0x1C
- movs r3, 0x13
- .endif
- bl MenuDrawTextWindow
- ldr r0, _08147198
- .if REVISION >= 1
- movs r1, 0x2
- movs r2, 0xB
- .else
- movs r1, 0x2
- movs r2, 0xD
- .endif
- bl MenuPrint
- ldr r0, _0814719C
- bl SetVBlankCallback
- ldr r0, _081471A0
- bl SetMainCallback2
-_0814718A:
- pop {r0}
- bx r0
- .align 2, 0
-_08147190: .4byte gUnknown_0203933E
-_08147194: .4byte gMain
-_08147198: .4byte gSystemText_GameplayEnded
-_0814719C: .4byte sub_8146E3C
-_081471A0: .4byte sub_81471A4
- thumb_func_end sub_8147154
-
- thumb_func_start sub_81471A4
-sub_81471A4: @ 81471A4
- push {lr}
- sub sp, 0x4
- ldr r0, _081471DC
- movs r2, 0
- strh r2, [r0]
- ldr r0, _081471E0
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081471D4
- movs r0, 0x1
- negs r0, r0
- str r2, [sp]
- movs r1, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _081471E4
- bl SetVBlankCallback
- ldr r0, _081471E8
- bl SetMainCallback2
-_081471D4:
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_081471DC: .4byte gUnknown_0203933E
-_081471E0: .4byte gMain
-_081471E4: .4byte sub_8146E3C
-_081471E8: .4byte sub_81471EC
- thumb_func_end sub_81471A4
-
- thumb_func_start sub_81471EC
-sub_81471EC: @ 81471EC
- push {r4,r5,lr}
- bl UpdatePaletteFade
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08147212
- ldr r5, _08147208
- ldr r0, [r5]
- cmp r0, 0
- bne _0814720C
- bl DoSoftReset
- b _08147212
- .align 2, 0
-_08147208: .4byte gUnknown_03005EBC
-_0814720C:
- bl SetMainCallback2
- str r4, [r5]
-_08147212:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81471EC
-
- thumb_func_start sub_8147218
-sub_8147218: @ 8147218
- push {r4,r5,lr}
- ldr r0, _08147290
- mov r12, r0
- ldr r0, [r0, 0x24]
- lsrs r4, r0, 3
- movs r0, 0x7
- ands r4, r0
- ldr r0, _08147294
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- mov r2, r12
- str r0, [r2, 0x3C]
- str r1, [r2, 0x40]
- ldrh r1, [r2, 0x3E]
- ldr r0, _08147298
- ands r0, r1
- movs r1, 0x70
- orrs r0, r1
- strh r0, [r2, 0x3E]
- mov r1, r12
- adds r1, 0x3C
- .if REVISION >= 1
- movs r0, 0x38
- .else
- movs r0, 0x48
- .endif
- strb r0, [r1]
- ldr r0, _0814729C
- ldrh r0, [r0]
- cmp r0, 0
- beq _081472A8
- ldr r3, _081472A0
- lsls r2, r4, 1
- adds r2, r4
- adds r0, r2, r3
- mov r4, r12
- adds r4, 0x40
- ldrb r5, [r0]
- ldrh r1, [r4]
- ldr r0, _081472A4
- ands r0, r1
- orrs r0, r5
- strh r0, [r4]
- adds r0, r3, 0x2
- adds r0, r2, r0
- ldrb r1, [r0]
- lsls r1, 4
- adds r3, 0x1
- adds r2, r3
- ldrb r0, [r2]
- lsls r0, 3
- orrs r1, r0
- mov r3, r12
- adds r3, 0x3F
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 1
- ldrb r2, [r3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _081472B8
- .align 2, 0
-_08147290: .4byte gMain
-_08147294: .4byte gUnknown_08411940
-_08147298: .4byte 0xfffffe00
-_0814729C: .4byte gUnknown_0203933E
-_081472A0: .4byte gUnknown_08411948
-_081472A4: .4byte 0xfffffc00
-_081472A8:
- mov r2, r12
- adds r2, 0x40
- ldrh r1, [r2]
- ldr r0, _081472D8
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
-_081472B8:
- ldr r0, _081472DC
- movs r1, 0xE0
- lsls r1, 19
- movs r2, 0x1
- bl CpuFastSet
- ldr r1, _081472E0
- ldrh r0, [r1, 0x2]
- cmp r0, 0
- beq _081472D0
- subs r0, 0x1
- strh r0, [r1, 0x2]
-_081472D0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081472D8: .4byte 0xfffffc00
-_081472DC: .4byte gMain + 0x3C
-_081472E0: .4byte gUnknown_0203933E
- thumb_func_end sub_8147218
-
- thumb_func_start sub_81472E4
-sub_81472E4: @ 81472E4
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _08147308
- movs r3, 0x80
- lsls r3, 5
- movs r1, 0
- adds r2, r4, 0
- bl ReadFlash
- movs r1, 0
- ldr r2, _0814730C
-_081472FC:
- ldr r0, [r4]
- cmp r0, 0
- beq _08147310
- movs r0, 0x1
- b _0814731E
- .align 2, 0
-_08147308: .4byte 0x02000000
-_0814730C: .4byte 0x000003ff
-_08147310:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- adds r4, 0x4
- cmp r1, r2
- bls _081472FC
- movs r0, 0
-_0814731E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81472E4
-
- thumb_func_start sub_8147324
-sub_8147324: @ 8147324
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r6, r0, 16
- movs r0, 0
- ldr r1, _08147374
- mov r8, r1
- ldr r7, _08147378
-_08147336:
- movs r4, 0
- adds r5, r0, 0x1
-_0814733A:
- ldr r3, [r7]
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0
- bl _call_via_r3
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, r8
- bls _0814733A
- adds r0, r6, 0
- bl sub_81472E4
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r5, 16
- lsrs r0, 16
- cmp r1, 0
- beq _08147366
- cmp r0, 0x81
- bls _08147336
-_08147366:
- adds r0, r1, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08147374: .4byte 0x00000fff
-_08147378: .4byte ProgramFlashByte
- thumb_func_end sub_8147324
-
- thumb_func_start sub_814737C
-sub_814737C: @ 814737C
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r6, 0
-_08147382:
- movs r4, 0x1
- lsls r4, r6
- adds r0, r5, 0
- ands r0, r4
- cmp r0, 0
- beq _0814739C
- adds r0, r6, 0
- bl sub_8147324
- lsls r0, 24
- cmp r0, 0
- bne _0814739C
- bics r5, r4
-_0814739C:
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- cmp r6, 0x1F
- bls _08147382
- cmp r5, 0
- beq _081473AE
- movs r0, 0x1
- b _081473B0
-_081473AE:
- movs r0, 0
-_081473B0:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_814737C
-
- thumb_func_start sub_81473B8
-sub_81473B8: @ 81473B8
- push {lr}
- ldr r0, _081473E8
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _08147400
- ldr r2, _081473EC
- ldrh r1, [r2, 0x4]
- ldr r0, _081473F0
- cmp r1, r0
- bne _08147400
- ldr r1, [r2]
- ldr r0, _081473F4
- cmp r1, r0
- beq _081473E4
- ldr r0, _081473F8
- cmp r1, r0
- beq _081473E4
- ldr r0, _081473FC
- cmp r1, r0
- bne _08147400
-_081473E4:
- movs r0, 0x1
- b _08147402
- .align 2, 0
-_081473E8: .4byte 0x0000084f
-_081473EC: .4byte gSaveBlock1
-_081473F0: .4byte 0x00004718
-_081473F4: .4byte 0x0003000a
-_081473F8: .4byte 0x00030009
-_081473FC: .4byte 0x0003000b
-_08147400:
- movs r0, 0
-_08147402:
- pop {r1}
- bx r1
- thumb_func_end sub_81473B8
-
- thumb_func_start sub_8147408
-sub_8147408: @ 8147408
- push {lr}
- ldr r2, _08147460
- movs r0, 0x10
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _08147464
- movs r0, 0x11
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- movs r2, 0x8B
- lsls r2, 2
- movs r0, 0x12
- movs r1, 0x8
- bl MapGridSetMetatileIdAt
- ldr r2, _08147468
- movs r0, 0x10
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- ldr r2, _0814746C
- movs r0, 0x11
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- ldr r2, _08147470
- movs r0, 0x12
- movs r1, 0x9
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- movs r0, 0x14
- bl PlaySE
- ldr r0, _08147474
- bl FlagSet
- bl ScriptContext2_Disable
- pop {r0}
- bx r0
- .align 2, 0
-_08147460: .4byte 0x0000022a
-_08147464: .4byte 0x0000022b
-_08147468: .4byte 0x00000e32
-_0814746C: .4byte 0x00000233
-_08147470: .4byte 0x00000e34
-_08147474: .4byte 0x0000084f
- thumb_func_end sub_8147408
-
- thumb_func_start sub_8147478
-sub_8147478: @ 8147478
- push {r4,lr}
- ldr r4, _081474B4
- adds r0, r4, 0
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- ldr r1, _081474B8
- cmp r0, r1
- bne _081474C0
- bl CalculatePlayerPartyCount
- ldr r0, _081474BC
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- adds r1, r4, 0
- subs r1, 0x64
- adds r0, r1
- movs r1, 0x41
- movs r2, 0
- bl GetMonData
- movs r1, 0x9D
- lsls r1, 1
- cmp r0, r1
- bne _081474C0
- movs r0, 0x1
- b _081474C2
- .align 2, 0
-_081474B4: .4byte gPlayerParty
-_081474B8: .4byte 0x0000017d
-_081474BC: .4byte gPlayerPartyCount
-_081474C0:
- movs r0, 0
-_081474C2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8147478
-
- thumb_func_start sub_81474C8
-sub_81474C8: @ 81474C8
- push {lr}
- movs r0, 0x85
- lsls r0, 4
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _0814750C
- ldr r2, _081474FC
- ldrh r1, [r2, 0x4]
- movs r0, 0xC3
- lsls r0, 3
- cmp r1, r0
- bne _0814750C
- ldr r1, [r2]
- ldr r0, _08147500
- cmp r1, r0
- beq _081474F8
- ldr r0, _08147504
- cmp r1, r0
- beq _081474F8
- ldr r0, _08147508
- cmp r1, r0
- bne _0814750C
-_081474F8:
- movs r0, 0x1
- b _0814750E
- .align 2, 0
-_081474FC: .4byte gSaveBlock1
-_08147500: .4byte 0x0017000a
-_08147504: .4byte 0x00170009
-_08147508: .4byte 0x0017000b
-_0814750C:
- movs r0, 0
-_0814750E:
- pop {r1}
- bx r1
- thumb_func_end sub_81474C8
-
- thumb_func_start sub_8147514
-sub_8147514: @ 8147514
- push {lr}
- movs r0, 0x28
- bl FieldEffectActiveListRemove
- ldr r2, _08147574
- movs r0, 0xE
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- ldr r2, _08147578
- movs r0, 0xF
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- movs r2, 0x8B
- lsls r2, 2
- movs r0, 0x10
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- ldr r2, _0814757C
- movs r0, 0xE
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- ldr r2, _08147580
- movs r0, 0xF
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- ldr r2, _08147584
- movs r0, 0x10
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- movs r0, 0x14
- bl PlaySE
- movs r0, 0x85
- lsls r0, 4
- bl FlagSet
- bl ScriptContext2_Disable
- pop {r0}
- bx r0
- .align 2, 0
-_08147574: .4byte 0x0000022a
-_08147578: .4byte 0x0000022b
-_0814757C: .4byte 0x00000e32
-_08147580: .4byte 0x00000233
-_08147584: .4byte 0x00000e34
- thumb_func_end sub_8147514
-
- thumb_func_start sub_8147588
-sub_8147588: @ 8147588
- push {lr}
- ldr r0, _081475AC
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _081475BC
- ldr r2, _081475B0
- ldrh r1, [r2, 0x4]
- ldr r0, _081475B4
- cmp r1, r0
- bne _081475BC
- ldr r1, [r2]
- ldr r0, _081475B8
- cmp r1, r0
- bne _081475BC
- movs r0, 0x1
- b _081475BE
- .align 2, 0
-_081475AC: .4byte 0x00000852
-_081475B0: .4byte gSaveBlock1
-_081475B4: .4byte 0x00004418
-_081475B8: .4byte 0x00190008
-_081475BC:
- movs r0, 0
-_081475BE:
- pop {r1}
- bx r1
- thumb_func_end sub_8147588
-
- thumb_func_start sub_81475C4
-sub_81475C4: @ 81475C4
- push {lr}
- ldr r0, _081475D8
- ldr r1, _081475DC
- ldrb r1, [r1]
- str r1, [r0]
- movs r0, 0x3C
- bl FieldEffectStart
- pop {r0}
- bx r0
- .align 2, 0
-_081475D8: .4byte gUnknown_0202FF84
-_081475DC: .4byte gUnknown_03005CE0
- thumb_func_end sub_81475C4
-
- thumb_func_start sub_81475E0
-sub_81475E0: @ 81475E0
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08147604
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _08147608
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08147604: .4byte gTasks
-_08147608: .4byte sub_814760C
- thumb_func_end sub_81475E0
-
- thumb_func_start sub_814760C
-sub_814760C: @ 814760C
- push {lr}
- movs r0, 0x3C
- bl FieldEffectActiveListRemove
- bl sub_814761C
- pop {r0}
- bx r0
- thumb_func_end sub_814760C
-
- thumb_func_start sub_814761C
-sub_814761C: @ 814761C
- push {lr}
- ldr r2, _08147674
- movs r0, 0xE
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- ldr r2, _08147678
- movs r0, 0xF
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- movs r2, 0x8B
- lsls r2, 2
- movs r0, 0x10
- movs r1, 0x1A
- bl MapGridSetMetatileIdAt
- ldr r2, _0814767C
- movs r0, 0xE
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- ldr r2, _08147680
- movs r0, 0xF
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- ldr r2, _08147684
- movs r0, 0x10
- movs r1, 0x1B
- bl MapGridSetMetatileIdAt
- bl DrawWholeMapView
- movs r0, 0x14
- bl PlaySE
- ldr r0, _08147688
- bl FlagSet
- bl ScriptContext2_Disable
- pop {r0}
- bx r0
- .align 2, 0
-_08147674: .4byte 0x0000022a
-_08147678: .4byte 0x0000022b
-_0814767C: .4byte 0x00000e32
-_08147680: .4byte 0x00000233
-_08147684: .4byte 0x00000e34
-_08147688: .4byte 0x00000852
- thumb_func_end sub_814761C
-
- thumb_func_start sub_814768C
-sub_814768C: @ 814768C
- push {lr}
- ldr r0, _081476A8
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _081476A2
- ldr r0, _081476AC
- movs r1, 0x50
- bl CreateTask
-_081476A2:
- pop {r0}
- bx r0
- .align 2, 0
-_081476A8: .4byte 0x00000851
-_081476AC: .4byte sub_81476B0
- thumb_func_end sub_814768C
-
- thumb_func_start sub_81476B0
-sub_81476B0: @ 81476B0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _081476D4
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bhi _0814776A
- lsls r0, 2
- ldr r1, _081476D8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081476D4: .4byte gUnknown_03004B28
-_081476D8: .4byte _081476DC
- .align 2, 0
-_081476DC:
- .4byte _081476F0
- .4byte _081476FE
- .4byte _08147730
- .4byte _08147748
- .4byte _0814775A
-_081476F0:
- movs r1, 0xE1
- lsls r1, 5
- adds r0, r1, 0
- strh r0, [r4, 0x2]
- movs r0, 0x1
- strh r0, [r4]
- b _0814776A
-_081476FE:
- bl sub_8147774
- cmp r0, 0
- beq _08147716
- bl MenuZeroFillScreen
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x2
- strh r0, [r4]
- b _0814776A
-_08147716:
- ldrh r0, [r4, 0x2]
- subs r0, 0x1
- strh r0, [r4, 0x2]
- lsls r0, 16
- cmp r0, 0
- bne _0814776A
- bl MenuZeroFillScreen
- movs r0, 0x3
- strh r0, [r4]
- movs r0, 0x1E
- strh r0, [r4, 0x2]
- b _0814776A
-_08147730:
- bl sub_8147774
- cmp r0, 0
- beq _08147748
- bl sub_8064E2C
- adds r0, r5, 0
- bl DestroyTask
- bl ScriptContext2_Disable
- b _0814776A
-_08147748:
- ldrh r0, [r4, 0x2]
- subs r0, 0x1
- strh r0, [r4, 0x2]
- lsls r0, 16
- cmp r0, 0
- bne _0814776A
- movs r0, 0x4
- strh r0, [r4]
- b _0814776A
-_0814775A:
- bl sub_8064E2C
- ldr r0, _08147770
- bl ScriptContext1_SetupScript
- adds r0, r5, 0
- bl DestroyTask
-_0814776A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08147770: .4byte gUnknown_0815EF19
- thumb_func_end sub_81476B0
-
- thumb_func_start sub_8147774
-sub_8147774: @ 8147774
- push {lr}
- movs r1, 0xFF
- ldr r0, _081477A4
- ldrb r2, [r0, 0x13]
- cmp r2, 0x1
- bne _08147788
- movs r3, 0xC0
- lsls r3, 2
- adds r0, r3, 0
- orrs r1, r0
-_08147788:
- cmp r2, 0x2
- bne _08147794
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- orrs r1, r0
-_08147794:
- ldr r0, _081477A8
- ldrh r0, [r0, 0x2E]
- ands r1, r0
- cmp r1, 0
- bne _081477AC
- movs r0, 0
- b _081477AE
- .align 2, 0
-_081477A4: .4byte gSaveBlock2
-_081477A8: .4byte gMain
-_081477AC:
- movs r0, 0x1
-_081477AE:
- pop {r1}
- bx r1
- thumb_func_end sub_8147774
-
- thumb_func_start sub_81477B4
-sub_81477B4: @ 81477B4
- push {lr}
- ldr r0, _081477E8
- movs r1, 0x9
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081477EC
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0xA]
- strh r0, [r1, 0xC]
- movs r0, 0x2
- strh r0, [r1, 0x10]
- movs r0, 0x5
- strh r0, [r1, 0x12]
- movs r0, 0x32
- strh r0, [r1, 0x14]
- movs r0, 0
- bl SetCameraPanningCallback
- pop {r0}
- bx r0
- .align 2, 0
-_081477E8: .4byte sub_814782C
-_081477EC: .4byte gTasks
- thumb_func_end sub_81477B4
-
- thumb_func_start sub_81477F0
-sub_81477F0: @ 81477F0
- push {lr}
- ldr r0, _08147824
- movs r1, 0x9
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08147828
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0xA]
- strh r0, [r1, 0xC]
- movs r0, 0x3
- strh r0, [r1, 0x10]
- movs r0, 0x5
- strh r0, [r1, 0x12]
- movs r0, 0x2
- strh r0, [r1, 0x14]
- movs r0, 0
- bl SetCameraPanningCallback
- pop {r0}
- bx r0
- .align 2, 0
-_08147824: .4byte sub_814782C
-_08147828: .4byte gTasks
- thumb_func_end sub_81477F0
-
- thumb_func_start sub_814782C
-sub_814782C: @ 814782C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0814788C
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- movs r2, 0x12
- ldrsh r1, [r4, r2]
- bl __modsi3
- cmp r0, 0
- bne _08147884
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- strh r0, [r4, 0xC]
- ldrh r0, [r4, 0x10]
- negs r0, r0
- strh r0, [r4, 0x10]
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- movs r0, 0
- bl SetCameraPanning
- movs r2, 0xC
- ldrsh r1, [r4, r2]
- movs r2, 0x14
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _08147884
- adds r0, r5, 0
- bl DestroyTask
- bl EnableBothScriptContexts
- bl InstallCameraPanAheadCallback
-_08147884:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0814788C: .4byte gTasks
- thumb_func_end sub_814782C
-
- thumb_func_start sub_8147890
-sub_8147890: @ 8147890
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTasks
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8147890
-
- thumb_func_start sub_81478A8
-sub_81478A8: @ 81478A8
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_81478A8
-
- thumb_func_start sub_81478BC
-sub_81478BC: @ 81478BC
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _081478D8
- ldr r1, _081478DC
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xD
- bls _081478CE
- b _08147AD0
-_081478CE:
- lsls r0, 2
- ldr r1, _081478E0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_081478D8: .4byte gMain
-_081478DC: .4byte 0x0000043c
-_081478E0: .4byte _081478E4
- .align 2, 0
-_081478E4:
- .4byte _0814791C
- .4byte _08147938
- .4byte _0814794C
- .4byte _08147960
- .4byte _08147966
- .4byte _08147980
- .4byte _0814798C
- .4byte _081479B8
- .4byte _081479DC
- .4byte _081479F4
- .4byte _08147A20
- .4byte _08147A3C
- .4byte _08147A5C
- .4byte _08147A8C
-_0814791C:
- bl sub_80F9438
- bl sub_80F9368
- bl sub_8147B04
- ldr r1, _08147930
- ldr r2, _08147934
- adds r1, r2
- b _08147A4A
- .align 2, 0
-_08147930: .4byte gMain
-_08147934: .4byte 0x0000043c
-_08147938:
- bl ResetPaletteFade
- ldr r2, _08147948
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- b _08147A44
- .align 2, 0
-_08147948: .4byte gPaletteFade
-_0814794C:
- bl ResetSpriteData
- ldr r1, _08147958
- ldr r2, _0814795C
- adds r1, r2
- b _08147A4A
- .align 2, 0
-_08147958: .4byte gMain
-_0814795C: .4byte 0x0000043c
-_08147960:
- bl FreeAllSpritePalettes
- b _08147A44
-_08147966:
- ldr r0, _08147974
- bl SetUpWindowConfig
- ldr r1, _08147978
- ldr r2, _0814797C
- adds r1, r2
- b _08147A4A
- .align 2, 0
-_08147974: .4byte gWindowConfig_81E6E50
-_08147978: .4byte gMain
-_0814797C: .4byte 0x0000043c
-_08147980:
- ldr r0, _08147988
- bl MultistepInitMenuWindowBegin
- b _08147A44
- .align 2, 0
-_08147988: .4byte gWindowConfig_81E6E50
-_0814798C:
- bl MultistepInitMenuWindowContinue
- cmp r0, 0
- bne _08147996
- b _08147AD0
-_08147996:
- ldr r0, _081479A8
- ldr r1, _081479AC
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r1, _081479B0
- ldr r2, _081479B4
- adds r1, r2
- b _08147A4A
- .align 2, 0
-_081479A8: .4byte 0x02000000
-_081479AC: .4byte 0x0001ffff
-_081479B0: .4byte gMain
-_081479B4: .4byte 0x0000043c
-_081479B8:
- ldr r0, _081479D4
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _081479D8
- adds r0, r1
- bl sub_8147B20
- lsls r0, 24
- cmp r0, 0
- bne _081479D0
- b _08147AD0
-_081479D0:
- b _08147A44
- .align 2, 0
-_081479D4: .4byte gUnknown_02039310
-_081479D8: .4byte gPlayerParty
-_081479DC:
- bl sub_81480B4
- ldr r1, _081479EC
- ldr r2, _081479F0
- adds r1, r2
- strb r0, [r1]
- b _08147A44
- .align 2, 0
-_081479EC: .4byte 0x02000000
-_081479F0: .4byte 0x0001fffd
-_081479F4:
- ldr r0, _08147A10
- ldrb r1, [r0]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08147A14
- adds r0, r1
- bl sub_8147F84
- ldr r1, _08147A18
- ldr r2, _08147A1C
- adds r1, r2
- strb r0, [r1]
- b _08147A44
- .align 2, 0
-_08147A10: .4byte gUnknown_02039310
-_08147A14: .4byte gPlayerParty
-_08147A18: .4byte 0x02000000
-_08147A1C: .4byte 0x0001fffe
-_08147A20:
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r1, _08147A34
- ldr r2, _08147A38
- adds r1, r2
- b _08147A4A
- .align 2, 0
-_08147A34: .4byte gMain
-_08147A38: .4byte 0x0000043c
-_08147A3C:
- bl sub_8055870
- cmp r0, 0x1
- beq _08147AD0
-_08147A44:
- ldr r1, _08147A54
- ldr r0, _08147A58
- adds r1, r0
-_08147A4A:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08147AD0
- .align 2, 0
-_08147A54: .4byte gMain
-_08147A58: .4byte 0x0000043c
-_08147A5C:
- ldr r3, _08147AB0
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _08147AB4
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- ldr r2, _08147AB8
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _08147ABC
- bl SetVBlankCallback
- ldr r1, _08147AC0
- ldr r2, _08147AC4
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08147A8C:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, _08147AC8
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
- ldr r0, _08147ACC
- bl SetMainCallback2
- movs r0, 0x1
- b _08147AD2
- .align 2, 0
-_08147AB0: .4byte 0x04000208
-_08147AB4: .4byte 0x04000200
-_08147AB8: .4byte REG_DISPSTAT
-_08147ABC: .4byte sub_81478A8
-_08147AC0: .4byte gMain
-_08147AC4: .4byte 0x0000043c
-_08147AC8: .4byte gPaletteFade
-_08147ACC: .4byte sub_8147890
-_08147AD0:
- movs r0, 0
-_08147AD2:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81478BC
-
- thumb_func_start sub_8147ADC
-sub_8147ADC: @ 8147ADC
- push {lr}
-_08147ADE:
- bl sub_81478BC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08147AF2
- movs r0, 0x1
- bl sub_8147DDC
- b _08147AFE
-_08147AF2:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08147ADE
-_08147AFE:
- pop {r0}
- bx r0
- thumb_func_end sub_8147ADC
-
- thumb_func_start sub_8147B04
-sub_8147B04: @ 8147B04
- ldr r1, _08147B18
- ldr r2, _08147B1C
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xA
- movs r2, 0x9A
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_08147B18: .4byte REG_BG1CNT
-_08147B1C: .4byte 0x00001d02
- thumb_func_end sub_8147B04
-
- thumb_func_start sub_8147B20
-sub_8147B20: @ 8147B20
- push {r4-r6,lr}
- sub sp, 0xC
- adds r4, r0, 0
- ldr r0, _08147B40
- ldr r1, _08147B44
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x8
- bls _08147B34
- b _08147C84
-_08147B34:
- lsls r0, 2
- ldr r1, _08147B48
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08147B40: .4byte 0x02000000
-_08147B44: .4byte 0x0001ffff
-_08147B48: .4byte _08147B4C
- .align 2, 0
-_08147B4C:
- .4byte _08147B70
- .4byte _08147BB8
- .4byte _08147BF0
- .4byte _08147BFC
- .4byte _08147C08
- .4byte _08147C14
- .4byte _08147C2C
- .4byte _08147C38
- .4byte _08147C60
-_08147B70:
- 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, _08147BAC
- adds r0, r1
- ldr r1, _08147BB0
- lsls r2, r5, 2
- adds r2, r1
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- movs r3, 0x80
- lsls r3, 18
- ldr r4, _08147BB4
- ldr r4, [r4, 0x4]
- str r4, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- bl sub_800D334
- b _08147C40
- .align 2, 0
-_08147BAC: .4byte gMonFrontPicTable
-_08147BB0: .4byte gMonFrontPicCoords
-_08147BB4: .4byte gUnknown_081FAF4C
-_08147BB8:
- 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
- b _08147C40
-_08147BF0:
- ldr r0, _08147BF8
- bl LoadCompressedObjectPic
- b _08147C40
- .align 2, 0
-_08147BF8: .4byte gUnknown_083F7F74
-_08147BFC:
- ldr r0, _08147C04
- bl LoadCompressedObjectPalette
- b _08147C40
- .align 2, 0
-_08147C04: .4byte gUnknown_083F7F7C
-_08147C08:
- ldr r0, _08147C10
- bl LoadCompressedObjectPic
- b _08147C40
- .align 2, 0
-_08147C10: .4byte gUnknown_084121DC
-_08147C14:
- ldr r0, _08147C24
- ldrb r0, [r0]
- bl sub_8147C90
- ldr r0, _08147C28
- bl LoadCompressedObjectPalette
- b _08147C40
- .align 2, 0
-_08147C24: .4byte word_203855E
-_08147C28: .4byte gUnknown_02039350
-_08147C2C:
- ldr r0, _08147C34
- movs r1, 0xC0
- lsls r1, 19
- b _08147C3C
- .align 2, 0
-_08147C34: .4byte gBattleTerrainTiles_Building
-_08147C38:
- ldr r0, _08147C50
- ldr r1, _08147C54
-_08147C3C:
- bl LZDecompressVram
-_08147C40:
- ldr r1, _08147C58
- ldr r0, _08147C5C
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _08147C84
- .align 2, 0
-_08147C50: .4byte gUnknown_08E782FC
-_08147C54: .4byte 0x0600e800
-_08147C58: .4byte 0x02000000
-_08147C5C: .4byte 0x0001ffff
-_08147C60:
- ldr r0, _08147C78
- movs r1, 0x20
- movs r2, 0x60
- bl LoadCompressedPalette
- ldr r0, _08147C7C
- ldr r1, _08147C80
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x1
- b _08147C86
- .align 2, 0
-_08147C78: .4byte gBattleTerrainPalette_BattleTower
-_08147C7C: .4byte 0x02000000
-_08147C80: .4byte 0x0001ffff
-_08147C84:
- movs r0, 0
-_08147C86:
- add sp, 0xC
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8147B20
-
- thumb_func_start sub_8147C90
-sub_8147C90: @ 8147C90
- push {lr}
- lsls r0, 24
- lsrs r0, 21
- ldr r1, _08147CB8
- adds r0, r1
- movs r1, 0
- bl sub_810CA9C
- lsls r0, 24
- ldr r2, _08147CBC
- ldr r1, _08147CC0
- lsrs r0, 22
- subs r0, 0x4
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- ldr r0, _08147CC4
- strh r0, [r2, 0x4]
- pop {r0}
- bx r0
- .align 2, 0
-_08147CB8: .4byte gSaveBlock1 + 0x7F8
-_08147CBC: .4byte gUnknown_02039350
-_08147CC0: .4byte gUnknown_084120A4
-_08147CC4: .4byte 0x000039e2
- thumb_func_end sub_8147C90
-
- thumb_func_start sub_8147CC8
-sub_8147CC8: @ 8147CC8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08147D00
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08147CDC
- b _08147DCE
-_08147CDC:
- ldr r0, _08147D04
- lsls r2, r4, 2
- adds r1, r2, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x8
- ldrsh r3, [r1, r0]
- ldr r0, _08147D08
- adds r5, r2, 0
- cmp r3, r0
- beq _08147D50
- cmp r3, r0
- bgt _08147D0C
- cmp r3, 0
- beq _08147D20
- cmp r3, 0xFF
- beq _08147D38
- b _08147D8C
- .align 2, 0
-_08147D00: .4byte gPaletteFade
-_08147D04: .4byte gTasks
-_08147D08: .4byte 0x0000010d
-_08147D0C:
- ldr r0, _08147D1C
- cmp r3, r0
- beq _08147D68
- adds r0, 0x10
- cmp r3, r0
- beq _08147D80
- b _08147D8C
- .align 2, 0
-_08147D1C: .4byte 0x00000119
-_08147D20:
- ldr r0, _08147D30
- strb r3, [r0]
- ldr r0, _08147D34
- strh r3, [r0]
- bl sub_81481DC
- b _08147D8C
- .align 2, 0
-_08147D30: .4byte gUnknown_03005F3C
-_08147D34: .4byte gUnknown_03005F94
-_08147D38:
- ldr r0, _08147D48
- ldr r2, _08147D4C
- adds r0, r2
- ldrb r0, [r0]
- ldrb r1, [r1, 0xA]
- bl sub_8148108
- b _08147D8C
- .align 2, 0
-_08147D48: .4byte 0x02000000
-_08147D4C: .4byte 0x0001fffd
-_08147D50:
- bl sub_814817C
- ldr r1, _08147D60
- ldr r2, _08147D64
- adds r1, r2
- strb r0, [r1]
- b _08147D8C
- .align 2, 0
-_08147D60: .4byte 0x02000000
-_08147D64: .4byte 0x0001fffc
-_08147D68:
- ldr r0, _08147D78
- ldr r1, _08147D7C
- adds r0, r1
- ldrb r0, [r0]
- bl sub_8148044
- b _08147D8C
- .align 2, 0
-_08147D78: .4byte 0x02000000
-_08147D7C: .4byte 0x0001fffe
-_08147D80:
- ldr r0, _08147D88
- str r0, [r1]
- b _08147DCE
- .align 2, 0
-_08147D88: .4byte sub_8147E40
-_08147D8C:
- ldr r0, _08147DA0
- ldr r1, _08147DA4
- ldrh r2, [r0]
- ldrh r0, [r1]
- cmp r2, r0
- bcs _08147DA8
- bl sub_814825C
- b _08147DB8
- .align 2, 0
-_08147DA0: .4byte gUnknown_03005F94
-_08147DA4: .4byte gUnknown_03005F34
-_08147DA8:
- cmp r2, r0
- bne _08147DB8
- ldr r0, _08147DD4
- adds r1, r5, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0xFE
- strh r0, [r1, 0x8]
-_08147DB8:
- ldr r1, _08147DD8
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- ldr r0, _08147DD4
- adds r1, r5, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
-_08147DCE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08147DD4: .4byte gTasks
-_08147DD8: .4byte gUnknown_03005F94
- thumb_func_end sub_8147CC8
-
- thumb_func_start sub_8147DDC
-sub_8147DDC: @ 8147DDC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _08147E08
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08147E0C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x8]
- strh r4, [r1, 0xA]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08147E08: .4byte sub_8147CC8
-_08147E0C: .4byte gTasks
- thumb_func_end sub_8147DDC
-
- thumb_func_start sub_8147E10
-sub_8147E10: @ 8147E10
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl MenuUpdateWindowText
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08147E30
- ldr r0, _08147E38
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08147E3C
- str r0, [r1]
-_08147E30:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08147E38: .4byte gTasks
-_08147E3C: .4byte sub_8147F4C
- thumb_func_end sub_8147E10
-
- thumb_func_start sub_8147E40
-sub_8147E40: @ 8147E40
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r0, _08147E94
- ldrb r1, [r0]
- movs r0, 0x64
- adds r5, r1, 0
- muls r5, r0
- ldr r0, _08147E98
- adds r5, r0
- ldr r0, _08147E9C
- ldrh r4, [r0]
- lsls r4, 3
- ldr r0, _08147EA0
- adds r4, r0
- adds r0, r5, 0
- bl GetNature
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- bl sub_810CAE4
- ldr r6, _08147EA4
- strh r0, [r6]
- ldr r1, _08147EA8
- adds r0, r5, 0
- bl GetMonNickname
- ldr r1, _08147EAC
- adds r0, r4, 0
- bl sub_810CB44
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bne _08147EB8
- ldr r0, _08147EB0
- ldr r1, _08147EB4
- bl StringExpandPlaceholders
- b _08147ED8
- .align 2, 0
-_08147E94: .4byte gUnknown_02039310
-_08147E98: .4byte gPlayerParty
-_08147E9C: .4byte word_203855E
-_08147EA0: .4byte gSaveBlock1 + 0x7F8
-_08147EA4: .4byte gUnknown_02039312
-_08147EA8: .4byte gStringVar1
-_08147EAC: .4byte gStringVar2
-_08147EB0: .4byte gStringVar4
-_08147EB4: .4byte gContestStatsText_NormallyAte
-_08147EB8:
- cmp r0, 0
- ble _08147ED0
- ldr r0, _08147EC8
- ldr r1, _08147ECC
- bl StringExpandPlaceholders
- b _08147ED8
- .align 2, 0
-_08147EC8: .4byte gStringVar4
-_08147ECC: .4byte gContestStatsText_HappilyAte
-_08147ED0:
- ldr r0, _08147EF8
- ldr r1, _08147EFC
- bl StringExpandPlaceholders
-_08147ED8:
- ldr r0, _08147EF8
- movs r1, 0x1
- movs r2, 0xF
- bl MenuPrintMessage
- ldr r1, _08147F00
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, _08147F04
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08147EF8: .4byte gStringVar4
-_08147EFC: .4byte gContestStatsText_DisdainfullyAte
-_08147F00: .4byte gTasks
-_08147F04: .4byte sub_8147E10
- thumb_func_end sub_8147E40
-
- thumb_func_start sub_8147F08
-sub_8147F08: @ 8147F08
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08147F3C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08147F34
- ldr r0, _08147F40
- ldr r1, _08147F44
- movs r2, 0x80
- lsls r2, 1
- bl m4aMPlayVolumeControl
- ldr r0, _08147F48
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08147F34:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08147F3C: .4byte gPaletteFade
-_08147F40: .4byte gMPlay_BGM
-_08147F44: .4byte 0x0000ffff
-_08147F48: .4byte gMain
- thumb_func_end sub_8147F08
-
- thumb_func_start sub_8147F4C
-sub_8147F4C: @ 8147F4C
- 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, _08147F7C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08147F80
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08147F7C: .4byte gTasks
-_08147F80: .4byte sub_8147F08
- thumb_func_end sub_8147F4C
-
- thumb_func_start sub_8147F84
-sub_8147F84: @ 8147F84
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r5, r0, 0
- movs r1, 0x41
- bl GetMonData
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08148024
- movs r1, 0x30
- movs r2, 0x50
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _08148028
- strh r4, [r0]
- ldr r0, _0814802C
- mov r1, r8
- strb r1, [r0]
- adds r0, r5, 0
- bl GetNature
- ldr r1, _08148030
- strb r0, [r1]
- ldr r7, _08148034
- mov r1, r8
- lsls r0, r1, 4
- add r0, r8
- lsls r5, r0, 2
- adds r6, r5, r7
- strh r4, [r6, 0x32]
- adds r0, r7, 0
- adds r0, 0x1C
- adds r0, r5, r0
- ldr r1, _08148038
- str r1, [r0]
- ldr r0, _0814803C
- mov r9, r0
- movs r0, 0x1
- mov r1, r9
- strb r0, [r1]
- adds r0, r4, 0
- bl sub_8040A3C
- lsls r0, 24
- cmp r0, 0
- bne _08148016
- adds r0, r7, 0
- adds r0, 0x10
- adds r0, r5, r0
- ldr r1, _08148040
- str r1, [r0]
- ldrb r3, [r6, 0x1]
- movs r0, 0x3
- orrs r3, r0
- strb r3, [r6, 0x1]
- lsrs r1, r3, 6
- ldrb r2, [r6, 0x3]
- lsrs r2, 6
- lsls r3, 30
- lsrs r3, 30
- adds r0, r6, 0
- bl CalcCenterToCornerVec
- movs r0, 0
- mov r1, r9
- strb r0, [r1]
-_08148016:
- mov r0, r8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08148024: .4byte gUnknown_02024E8C
-_08148028: .4byte gUnknown_03005F24
-_0814802C: .4byte gUnknown_03005F2C
-_08148030: .4byte gUnknown_03005F30
-_08148034: .4byte gSprites
-_08148038: .4byte SpriteCallbackDummy
-_0814803C: .4byte gUnknown_03005F28
-_08148040: .4byte gSpriteAffineAnimTable_84120EC
- thumb_func_end sub_8147F84
-
- thumb_func_start sub_8148044
-sub_8148044: @ 8148044
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0814806C
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r2, r1, r3
- movs r0, 0x30
- strh r0, [r2, 0x20]
- movs r0, 0x50
- strh r0, [r2, 0x22]
- ldr r0, _08148070
- strh r0, [r2, 0x2E]
- movs r0, 0x1
- strh r0, [r2, 0x30]
- adds r3, 0x1C
- adds r1, r3
- ldr r0, _08148074
- str r0, [r1]
- bx lr
- .align 2, 0
-_0814806C: .4byte gSprites
-_08148070: .4byte 0x0000fff8
-_08148074: .4byte sub_8148078
- thumb_func_end sub_8148044
-
- thumb_func_start sub_8148078
-sub_8148078: @ 8148078
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x20]
- adds r0, 0x4
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x2E]
- ldrh r2, [r4, 0x22]
- adds r1, r0, r2
- strh r1, [r4, 0x22]
- ldrh r1, [r4, 0x30]
- adds r0, r1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- cmp r0, 0
- bne _0814809E
- ldrh r0, [r4, 0x32]
- movs r1, 0
- bl PlayCry1
-_0814809E:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x9
- bne _081480AA
- ldr r0, _081480B0
- str r0, [r4, 0x1C]
-_081480AA:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081480B0: .4byte SpriteCallbackDummy
- thumb_func_end sub_8148078
-
- thumb_func_start sub_81480B4
-sub_81480B4: @ 81480B4
- push {r4,r5,lr}
- movs r0, 0xBC
- movs r1, 0x64
- movs r2, 0x2
- bl sub_810BA50
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _081480FC
- lsls r3, r4, 4
- adds r3, r4
- lsls r3, 2
- adds r0, r3, r5
- ldrb r2, [r0, 0x1]
- movs r1, 0x4
- negs r1, r1
- ands r1, r2
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0, 0x1]
- adds r1, r5, 0
- adds r1, 0x10
- adds r1, r3, r1
- ldr r2, _08148100
- str r2, [r1]
- adds r5, 0x1C
- adds r3, r5
- ldr r1, _08148104
- str r1, [r3]
- bl InitSpriteAffineAnim
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_081480FC: .4byte gSprites
-_08148100: .4byte gSpriteAffineAnimTable_84121A0
-_08148104: .4byte SpriteCallbackDummy
- thumb_func_end sub_81480B4
-
- thumb_func_start sub_8148108
-sub_8148108: @ 8148108
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _08148148
- mov r8, r0
- lsls r0, r7, 4
- adds r0, r7
- lsls r6, r0, 2
- mov r0, r8
- adds r4, r6, r0
- ldrb r0, [r4, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldrb r0, [r4, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r4, 0x1]
- cmp r5, 0
- bne _08148150
- mov r0, r8
- adds r0, 0x10
- adds r0, r6, r0
- ldr r1, _0814814C
- b _08148158
- .align 2, 0
-_08148148: .4byte gSprites
-_0814814C: .4byte gSpriteAffineAnimTable_84121A4
-_08148150:
- mov r0, r8
- adds r0, 0x10
- adds r0, r6, r0
- ldr r1, _08148174
-_08148158:
- str r1, [r0]
- lsls r0, r7, 4
- adds r0, r7
- lsls r0, 2
- ldr r1, _08148178
- adds r0, r1
- bl InitSpriteAffineAnim
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08148174: .4byte gSpriteAffineAnimTable_84121A8
-_08148178: .4byte gSprites
- thumb_func_end sub_8148108
-
- thumb_func_start sub_814817C
-sub_814817C: @ 814817C
- push {lr}
- ldr r0, _081481A4
- movs r1, 0xAE
- movs r2, 0x54
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081481A8
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldr r2, _081481AC
- strh r2, [r1, 0x2E]
- movs r2, 0x1
- strh r2, [r1, 0x30]
- pop {r1}
- bx r1
- .align 2, 0
-_081481A4: .4byte gSpriteTemplate_84121E4
-_081481A8: .4byte gSprites
-_081481AC: .4byte 0x0000fff4
- thumb_func_end sub_814817C
-
- thumb_func_start sub_81481B0
-sub_81481B0: @ 81481B0
- push {lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x20]
- subs r0, 0x4
- strh r0, [r2, 0x20]
- ldrh r0, [r2, 0x2E]
- ldrh r3, [r2, 0x22]
- adds r1, r0, r3
- strh r1, [r2, 0x22]
- ldrh r1, [r2, 0x30]
- adds r0, r1
- strh r0, [r2, 0x2E]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _081481D6
- adds r0, r2, 0
- bl DestroySprite
-_081481D6:
- pop {r0}
- bx r0
- thumb_func_end sub_81481B0
-
- thumb_func_start sub_81481DC
-sub_81481DC: @ 81481DC
- push {r4-r7,lr}
- ldr r6, _0814824C
- movs r0, 0x1
- strh r0, [r6]
- ldr r1, _08148250
- ldr r0, _08148254
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrb r3, [r0]
- movs r4, 0
- ldr r2, _08148258
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
- adds r7, r2, 0
- adds r7, 0x8
- adds r0, r1, r7
- ldrh r0, [r0]
- adds r0, 0x1
- strh r0, [r6]
- adds r5, r2, 0
- adds r5, 0x12
- adds r1, r5
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- beq _08148244
- adds r2, r6, 0
- adds r6, r5, 0
- adds r5, r7, 0
-_0814821A:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r4, 0x7
- bhi _08148244
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 2
- adds r0, r1, r5
- ldrh r0, [r0]
- ldrh r7, [r2]
- adds r0, r7
- strh r0, [r2]
- adds r1, r6
- movs r7, 0
- ldrsh r0, [r1, r7]
- cmp r0, 0x1
- bne _0814821A
-_08148244:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814824C: .4byte gUnknown_03005F34
-_08148250: .4byte gNatureToMonPokeblockAnim
-_08148254: .4byte gUnknown_03005F30
-_08148258: .4byte gMonPokeblockAnims
- thumb_func_end sub_81481DC
-
- thumb_func_start sub_814825C
-sub_814825C: @ 814825C
- push {lr}
- ldr r0, _08148274
- ldrb r0, [r0]
- cmp r0, 0x5A
- bls _08148268
- b _08148532
-_08148268:
- lsls r0, 2
- ldr r1, _08148278
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08148274: .4byte gUnknown_03005F3C
-_08148278: .4byte _0814827C
- .align 2, 0
-_0814827C:
- .4byte _081483E8
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _0814843C
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _0814847A
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _081484CC
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148524
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
- .4byte _08148532
-_081483E8:
- ldr r2, _0814841C
- ldr r1, _08148420
- ldr r0, _08148424
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrb r0, [r0]
- strb r0, [r2]
- ldr r2, _08148428
- ldr r0, _0814842C
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _08148430
- adds r1, r0
- str r1, [r2]
- ldr r0, _08148434
- movs r2, 0x44
- bl memcpy
- ldr r1, _08148438
- movs r0, 0xA
- strb r0, [r1]
- b _08148532
- .align 2, 0
-_0814841C: .4byte gUnknown_03005F40
-_08148420: .4byte gNatureToMonPokeblockAnim
-_08148424: .4byte gUnknown_03005F30
-_08148428: .4byte gUnknown_03005F20
-_0814842C: .4byte gUnknown_03005F2C
-_08148430: .4byte gSprites
-_08148434: .4byte gUnknown_03005F50
-_08148438: .4byte gUnknown_03005F3C
-_0814843C:
- bl sub_8148540
- ldr r1, _081484A4
- ldr r0, _081484A8
- ldrb r0, [r0]
- lsls r0, 1
- adds r1, 0x1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08148474
- ldr r3, _081484AC
- ldr r2, [r3]
- ldrb r0, [r2, 0x1]
- movs r1, 0x3
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldr r2, [r3]
- ldrb r1, [r2, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x3]
- ldr r0, [r3]
- ldr r1, _081484B0
- str r1, [r0, 0x10]
- bl InitSpriteAffineAnim
-_08148474:
- ldr r1, _081484B4
- movs r0, 0x32
- strb r0, [r1]
-_0814847A:
- ldr r1, _081484A4
- ldr r0, _081484A8
- ldrb r0, [r0]
- lsls r0, 1
- adds r1, 0x1
- adds r2, r0, r1
- ldrb r1, [r2]
- cmp r1, 0
- beq _081484EE
- ldr r0, _081484B8
- ldrb r0, [r0]
- cmp r0, 0
- bne _081484BC
- ldr r0, _081484AC
- ldr r0, [r0]
- adds r1, 0xA
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAffineAnim
- b _081484EE
- .align 2, 0
-_081484A4: .4byte gNatureToMonPokeblockAnim
-_081484A8: .4byte gUnknown_03005F30
-_081484AC: .4byte gUnknown_03005F20
-_081484B0: .4byte gSpriteAffineAnimTable_8412050
-_081484B4: .4byte gUnknown_03005F3C
-_081484B8: .4byte gUnknown_03005F28
-_081484BC:
- ldr r0, _081484C8
- ldr r0, [r0]
- ldrb r1, [r2]
- bl StartSpriteAffineAnim
- b _081484EE
- .align 2, 0
-_081484C8: .4byte gUnknown_03005F20
-_081484CC:
- bl sub_81485CC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08148532
- ldr r0, _081484F8
- movs r1, 0x12
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _08148504
- ldr r1, _081484FC
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- bl sub_8148540
-_081484EE:
- ldr r1, _08148500
- movs r0, 0x3C
- strb r0, [r1]
- b _08148532
- .align 2, 0
-_081484F8: .4byte gUnknown_03005FA0
-_081484FC: .4byte gUnknown_03005F40
-_08148500: .4byte gUnknown_03005F3C
-_08148504:
- ldr r0, _0814851C
- ldr r0, [r0]
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldr r1, _08148520
- movs r0, 0x46
- strb r0, [r1]
- b _08148532
- .align 2, 0
-_0814851C: .4byte gUnknown_03005F20
-_08148520: .4byte gUnknown_03005F3C
-_08148524:
- bl sub_8148618
- ldr r0, _08148538
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0814853C
- strb r1, [r0]
-_08148532:
- pop {r0}
- bx r0
- .align 2, 0
-_08148538: .4byte gUnknown_03005F40
-_0814853C: .4byte gUnknown_03005F3C
- thumb_func_end sub_814825C
-
- thumb_func_start sub_8148540
-sub_8148540: @ 8148540
- push {r4-r7,lr}
- movs r4, 0
- ldr r5, _081485B4
- mov r12, r5
- ldr r7, _081485B8
- ldr r6, _081485BC
-_0814854C:
- lsls r2, r4, 1
- mov r0, r12
- adds r3, r2, r0
- ldrb r1, [r6]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, r0
- adds r2, r7
- ldrh r0, [r2]
- strh r0, [r3]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x9
- bls _0814854C
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _081485C4
- movs r2, 0
- ldrsh r0, [r5, r2]
- movs r2, 0x4
- ldrsh r1, [r5, r2]
- bl Sin
- strh r0, [r5, 0x14]
- movs r1, 0
- ldrsh r0, [r5, r1]
- movs r2, 0x6
- ldrsh r1, [r5, r2]
- bl Cos
- strh r0, [r5, 0x16]
- ldrh r0, [r5, 0x8]
- strh r0, [r5, 0x18]
- ldr r0, _081485C0
- ldr r1, [r0]
- ldrh r0, [r1, 0x24]
- strh r0, [r5, 0x1A]
- ldrh r0, [r1, 0x26]
- strh r0, [r5, 0x1C]
- bl sub_8148710
- ldrh r0, [r5, 0x18]
- strh r0, [r5, 0x8]
- bl sub_814862C
- ldrh r0, [r5, 0x18]
- strh r0, [r5, 0x8]
- movs r0, 0
- b _081485C6
- .align 2, 0
-_081485B4: .4byte gUnknown_03005FA0
-_081485B8: .4byte gMonPokeblockAnims
-_081485BC: .4byte gUnknown_03005F40
-_081485C0: .4byte gUnknown_03005F20
-_081485C4:
- movs r0, 0x1
-_081485C6:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8148540
-
- thumb_func_start sub_81485CC
-sub_81485CC: @ 81485CC
- push {r4,lr}
- ldr r3, _08148604
- ldrh r0, [r3, 0x18]
- ldrh r1, [r3, 0x8]
- subs r0, r1
- lsls r0, 16
- ldr r1, _08148608
- ldr r4, [r1]
- lsrs r0, 15
- ldr r1, _0814860C
- adds r2, r0, r1
- ldrh r2, [r2]
- strh r2, [r4, 0x24]
- movs r2, 0x80
- lsls r2, 3
- adds r1, r2
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r4, 0x26]
- ldrh r0, [r3, 0x8]
- subs r0, 0x1
- strh r0, [r3, 0x8]
- lsls r0, 16
- cmp r0, 0
- beq _08148610
- movs r0, 0
- b _08148612
- .align 2, 0
-_08148604: .4byte gUnknown_03005FA0
-_08148608: .4byte gUnknown_03005F20
-_0814860C: .4byte 0x0201d000
-_08148610:
- movs r0, 0x1
-_08148612:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81485CC
-
- thumb_func_start sub_8148618
-sub_8148618: @ 8148618
- push {lr}
- ldr r0, _08148628
- ldr r0, [r0]
- bl FreeSpriteOamMatrix
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08148628: .4byte gUnknown_03005F20
- thumb_func_end sub_8148618
-
- thumb_func_start sub_814862C
-sub_814862C: @ 814862C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r1, _08148700
- ldrh r0, [r1, 0x10]
- mov r8, r0
- ldrh r0, [r1, 0x18]
- mov r2, r8
- subs r0, r2
- lsls r0, 16
- lsrs r7, r0, 16
- ldrh r0, [r1, 0xC]
- ldrh r3, [r1, 0x1A]
- adds r0, r3
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp]
- ldrh r0, [r1, 0xE]
- ldrh r1, [r1, 0x1C]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- movs r6, 0
- subs r0, r7, 0x1
- ldr r4, _08148704
- mov r10, r4
- cmp r6, r0
- bge _081486D4
- ldr r1, [sp]
- lsls r0, r1, 16
- asrs r0, 16
- str r0, [sp, 0x4]
-_08148674:
- mov r2, r8
- adds r5, r2, r6
- lsls r5, 1
- ldr r4, _08148708
- adds r3, r5, r4
- ldrh r2, [r3]
- ldr r0, [sp, 0x4]
- subs r1, r2, r0
- ldr r4, _0814870C
- adds r5, r4
- ldrh r0, [r5]
- mov r12, r0
- mov r4, r9
- lsls r0, r4, 16
- asrs r0, 16
- mov r4, r12
- subs r0, r4, r0
- lsls r4, r0, 16
- lsrs r4, 16
- lsls r1, 16
- asrs r1, 16
- adds r6, 0x1
- adds r0, r1, 0
- muls r0, r6
- adds r1, r7, 0
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- bl __divsi3
- ldr r2, [sp, 0x8]
- subs r2, r0
- ldr r3, [sp, 0xC]
- strh r2, [r3]
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- muls r0, r6
- adds r1, r7, 0
- bl __divsi3
- ldrh r1, [r5]
- subs r1, r0
- strh r1, [r5]
- lsls r6, 16
- lsrs r6, 16
- subs r0, r7, 0x1
- cmp r6, r0
- blt _08148674
-_081486D4:
- mov r1, r8
- adds r0, r1, r7
- lsls r0, 1
- mov r2, r10
- adds r1, r0, r2
- mov r3, sp
- ldrh r3, [r3]
- strh r3, [r1]
- movs r1, 0x80
- lsls r1, 3
- add r1, r10
- adds r0, r1
- mov r4, r9
- strh r4, [r0]
- 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
-_08148700: .4byte gUnknown_03005FA0
-_08148704: .4byte 0x0201cffe
-_08148708: .4byte 0x0201d000
-_0814870C: .4byte 0x0201d400
- thumb_func_end sub_814862C
-
- thumb_func_start sub_8148710
-sub_8148710: @ 8148710
- 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 r1, _081487A4
- ldrh r2, [r1, 0x1A]
- ldrh r0, [r1, 0x14]
- subs r2, r0
- ldrh r3, [r1, 0x1C]
- ldrh r0, [r1, 0x16]
- subs r3, r0
- adds r6, r1, 0
- ldr r1, _081487A8
- mov r9, r1
- lsls r2, 16
- asrs r2, 16
- mov r8, r2
- movs r2, 0x80
- lsls r2, 3
- add r2, r9
- mov r10, r2
- lsls r3, 16
- asrs r7, r3, 16
-_08148746:
- movs r1, 0xA
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bge _08148750
- negs r0, r0
-_08148750:
- lsls r0, 16
- lsrs r0, 16
- ldrh r2, [r6, 0x6]
- adds r0, r2
- lsls r5, r0, 16
- strh r0, [r6, 0x6]
- ldrh r2, [r6, 0x4]
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r0, 0
- bge _0814876A
- movs r0, 0x1
- str r0, [sp]
-_0814876A:
- ldrh r0, [r6, 0x18]
- ldrh r1, [r6, 0x8]
- subs r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r1, 0
- beq _081487F0
- ldr r1, [sp]
- cmp r1, 0
- bne _081487AC
- movs r1, 0
- ldrsh r0, [r6, r1]
- lsrs r5, 24
- adds r1, r2, r5
- lsls r1, 16
- asrs r1, 16
- bl Sin
- lsls r4, 1
- mov r2, r9
- adds r1, r4, r2
- add r0, r8
- strh r0, [r1]
- movs r1, 0
- ldrsh r0, [r6, r1]
- ldrh r1, [r6, 0x6]
- adds r1, r5
- b _081487CE
- .align 2, 0
-_081487A4: .4byte gUnknown_03005FA0
-_081487A8: .4byte 0x0201d000
-_081487AC:
- movs r1, 0
- ldrsh r0, [r6, r1]
- lsrs r5, 24
- subs r1, r2, r5
- lsls r1, 16
- asrs r1, 16
- bl Sin
- lsls r4, 1
- mov r2, r9
- adds r1, r4, r2
- add r0, r8
- strh r0, [r1]
- movs r1, 0
- ldrsh r0, [r6, r1]
- ldrh r1, [r6, 0x6]
- subs r1, r5
-_081487CE:
- lsls r1, 16
- asrs r1, 16
- bl Cos
- add r4, r10
- adds r0, r7, r0
- strh r0, [r4]
- ldrh r0, [r6, 0x2]
- ldrh r2, [r6]
- adds r0, r2
- movs r1, 0xFF
- ands r0, r1
- strh r0, [r6]
- ldrh r0, [r6, 0x8]
- subs r0, 0x1
- strh r0, [r6, 0x8]
- b _08148746
-_081487F0:
- 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_8148710
-
- thumb_func_start c2_clear_save_data_screen_2
-c2_clear_save_data_screen_2: @ 8148800
- push {lr}
- bl sub_8148970
- lsls r0, 24
- cmp r0, 0
- beq _08148814
- ldr r0, _08148818
- movs r1, 0
- bl CreateTask
-_08148814:
- pop {r0}
- bx r0
- .align 2, 0
-_08148818: .4byte sub_8148830
- thumb_func_end c2_clear_save_data_screen_2
-
- thumb_func_start sub_814881C
-sub_814881C: @ 814881C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_814881C
-
- thumb_func_start sub_8148830
-sub_8148830: @ 8148830
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ResetSpriteData
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xCA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _081488A8
- bl SetVBlankCallback
- movs r0, 0x2
- movs r1, 0xE
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _081488AC
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrint
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x8
- movs r3, 0x6
- bl MenuDrawTextWindow
- ldr r3, _081488B0
- movs r0, 0x3
- movs r1, 0x2
- movs r2, 0x2
- bl PrintMenuItems
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0x5
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x3
- movs r2, 0x2
- movs r3, 0x2
- bl InitMenu
- ldr r1, _081488B4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _081488B8
- str r1, [r0]
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081488A8: .4byte sub_814881C
-_081488AC: .4byte gSystemText_ClearAllSaveDataPrompt
-_081488B0: .4byte gUnknown_08376D74
-_081488B4: .4byte gTasks
-_081488B8: .4byte sub_81488BC
- thumb_func_end sub_8148830
-
- thumb_func_start sub_81488BC
-sub_81488BC: @ 81488BC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl ProcessMenuInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _081488E2
- cmp r1, 0
- bgt _081488DC
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0814890C
- b _0814891E
-_081488DC:
- cmp r1, 0x1
- beq _0814890C
- b _0814891E
-_081488E2:
- movs r0, 0x5
- bl PlaySE
- ldr r0, _08148900
- bl sub_8071F40
- ldr r1, _08148904
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08148908
- str r1, [r0]
- b _0814891E
- .align 2, 0
-_08148900: .4byte gSystemText_ClearingData
-_08148904: .4byte gTasks
-_08148908: .4byte sub_8148930
-_0814890C:
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl DestroyTask
- ldr r0, _0814892C
- bl SetMainCallback2
-_0814891E:
- bl AnimateSprites
- bl BuildOamBuffer
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814892C: .4byte sub_8148B34
- thumb_func_end sub_81488BC
-
- thumb_func_start sub_8148930
-sub_8148930: @ 8148930
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl calls_flash_erase_block
- adds r0, r4, 0
- bl DestroyTask
- ldr r0, _08148950
- bl SetMainCallback2
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08148950: .4byte sub_8148B34
- thumb_func_end sub_8148930
-
- thumb_func_start sub_8148954
-sub_8148954: @ 8148954
- push {lr}
- bl RunTasks
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8148954
-
- thumb_func_start sub_8148964
-sub_8148964: @ 8148964
- push {lr}
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_8148964
-
- thumb_func_start sub_8148970
-sub_8148970: @ 8148970
- push {r4,lr}
- sub sp, 0xC
- ldr r0, _08148AA4
- ldr r1, _08148AA8
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08148986
- cmp r0, 0x1
- bne _08148986
- b _08148B04
-_08148986:
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0x80
- lsls r0, 19
- movs r4, 0
- strh r4, [r0]
- adds r0, 0x10
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0xA
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x22
- strh r4, [r0]
- adds r0, 0x4
- strh r4, [r0]
- adds r0, 0x4
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x6
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- add r0, sp, 0x4
- strh r4, [r0]
- ldr r1, _08148AAC
- str r0, [r1]
- movs r0, 0xC0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _08148AB0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r2, 0
- str r2, [sp, 0x8]
- add r0, sp, 0x8
- str r0, [r1]
- movs r0, 0xE0
- lsls r0, 19
- str r0, [r1, 0x4]
- ldr r0, _08148AB4
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- add r0, sp, 0x4
- strh r2, [r0]
- str r0, [r1]
- ldr r0, _08148AB8
- str r0, [r1, 0x4]
- ldr r0, _08148ABC
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- bl ResetPaletteFade
- ldr r2, _08148AC0
- ldr r0, _08148AC4
- strh r0, [r2]
- ldr r1, _08148AC8
- strh r0, [r1]
- ldr r0, _08148ACC
- strh r0, [r2, 0x2]
- strh r0, [r1, 0x2]
- movs r1, 0
- ldr r3, _08148AD0
- ldr r0, _08148AD4
- adds r2, r0, 0
-_08148A14:
- 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 _08148A14
- movs r1, 0
- ldr r4, _08148AD8
- movs r3, 0x1
- ldr r2, _08148ADC
-_08148A2C:
- lsls r0, r1, 1
- adds r0, r4
- strh r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, r2
- bls _08148A2C
- bl ResetTasks
- bl ResetSpriteData
- ldr r0, _08148AE0
- bl SetUpWindowConfig
- ldr r0, _08148AE4
- bl InitMenuWindow
- movs r0, 0x1
- negs r0, r0
- ldr r1, _08148AE8
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, _08148AEC
- ldrh r1, [r2]
- movs r0, 0
- strh r0, [r2]
- ldr r3, _08148AF0
- ldrh r0, [r3]
- movs r4, 0x1
- orrs r0, r4
- strh r0, [r3]
- strh r1, [r2]
- ldr r2, _08148AF4
- ldrh r0, [r2]
- movs r1, 0x8
- orrs r0, r1
- strh r0, [r2]
- ldr r0, _08148AF8
- bl SetVBlankCallback
- ldr r1, _08148AFC
- ldr r2, _08148B00
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xE
- movs r2, 0x90
- lsls r2, 4
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _08148AA4
- ldr r1, _08148AA8
- adds r0, r1
- strb r4, [r0]
- b _08148B28
- .align 2, 0
-_08148AA4: .4byte gMain
-_08148AA8: .4byte 0x0000043c
-_08148AAC: .4byte 0x040000d4
-_08148AB0: .4byte 0x8100c000
-_08148AB4: .4byte 0x85000100
-_08148AB8: .4byte 0x05000002
-_08148ABC: .4byte 0x810001ff
-_08148AC0: .4byte gPlttBufferUnfaded
-_08148AC4: .4byte 0x00007fff
-_08148AC8: .4byte gPlttBufferFaded
-_08148ACC: .4byte 0x00003945
-_08148AD0: .4byte 0x06000020
-_08148AD4: .4byte 0x00001111
-_08148AD8: .4byte 0x06003800
-_08148ADC: .4byte 0x000004ff
-_08148AE0: .4byte gWindowConfig_81E6C3C
-_08148AE4: .4byte gWindowConfig_81E6CE4
-_08148AE8: .4byte 0x0000ffff
-_08148AEC: .4byte 0x04000208
-_08148AF0: .4byte 0x04000200
-_08148AF4: .4byte REG_DISPSTAT
-_08148AF8: .4byte sub_8148964
-_08148AFC: .4byte REG_BG3CNT
-_08148B00: .4byte 0x00000703
-_08148B04:
- bl UpdatePaletteFade
- ldr r0, _08148B20
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08148B28
- ldr r0, _08148B24
- bl SetMainCallback2
- movs r0, 0x1
- b _08148B2A
- .align 2, 0
-_08148B20: .4byte gPaletteFade
-_08148B24: .4byte sub_8148954
-_08148B28:
- movs r0, 0
-_08148B2A:
- add sp, 0xC
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8148970
-
- thumb_func_start sub_8148B34
-sub_8148B34: @ 8148B34
- push {r4,lr}
- sub sp, 0x4
- ldr r0, _08148B60
- ldr r1, _08148B64
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0
- beq _08148B48
- cmp r0, 0x1
- beq _08148B6C
-_08148B48:
- movs r0, 0x1
- negs r0, r0
- ldr r1, _08148B68
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r0, 0x1
- strb r0, [r4]
- b _08148B80
- .align 2, 0
-_08148B60: .4byte gMain
-_08148B64: .4byte 0x0000043c
-_08148B68: .4byte 0x0000ffff
-_08148B6C:
- bl UpdatePaletteFade
- ldr r0, _08148B88
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08148B80
- bl DoSoftReset
-_08148B80:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08148B88: .4byte gPaletteFade
- thumb_func_end sub_8148B34
-
- thumb_func_start load_intro_part2_graphics
-load_intro_part2_graphics: @ 8148B8C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08148BE8
- ldr r1, _08148BEC
- bl LZ77UnCompVram
- ldr r0, _08148BF0
- ldr r1, _08148BF4
- bl LZ77UnCompVram
- ldr r0, _08148BF8
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- cmp r4, 0
- beq _08148BB4
- cmp r4, 0x1
- beq _08148C14
-_08148BB4:
- ldr r0, _08148BFC
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148C00
- ldr r1, _08148C04
- bl LZ77UnCompVram
- ldr r0, _08148C08
- movs r1, 0
- movs r2, 0x60
- bl LoadPalette
- ldr r0, _08148C0C
- bl LoadCompressedObjectPic
- ldr r0, _08148C10
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149248
- b _08148C46
- .align 2, 0
-_08148BE8: .4byte gUnknown_0841225C
-_08148BEC: .4byte 0x06004000
-_08148BF0: .4byte gUnknown_084126DC
-_08148BF4: .4byte 0x06007800
-_08148BF8: .4byte gUnknown_084121FC
-_08148BFC: .4byte gUnknown_084128D8
-_08148C00: .4byte gUnknown_08412EB4
-_08148C04: .4byte 0x06003000
-_08148C08: .4byte gUnknown_08412818
-_08148C0C: .4byte gUnknown_08416B54
-_08148C10: .4byte gUnknown_08413184
-_08148C14:
- ldr r0, _08148C58
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148C5C
- ldr r1, _08148C60
- bl LZ77UnCompVram
- ldr r0, _08148C64
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148C68
- bl LoadCompressedObjectPic
- ldr r0, _08148C6C
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149264
-_08148C46:
- ldr r1, _08148C70
- movs r0, 0
- strh r0, [r1]
- ldr r1, _08148C74
- movs r0, 0x8
- strb r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08148C58: .4byte gUnknown_08413340
-_08148C5C: .4byte gUnknown_084139C8
-_08148C60: .4byte 0x06003000
-_08148C64: .4byte gUnknown_08413300
-_08148C68: .4byte gUnknown_08416BDC
-_08148C6C: .4byte gUnknown_08413CCC
-_08148C70: .4byte gUnknown_0203935C
-_08148C74: .4byte gReservedSpritePaletteCount
- thumb_func_end load_intro_part2_graphics
-
- thumb_func_start sub_8148C78
-sub_8148C78: @ 8148C78
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08148CA4
- ldr r2, _08148CA8
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- adds r2, 0xFF
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _08148CAC
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xA
- movs r2, 0xF2
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08148CA4: .4byte REG_BG3CNT
-_08148CA8: .4byte 0x00000603
-_08148CAC: .4byte 0x00000f05
- thumb_func_end sub_8148C78
-
- thumb_func_start sub_8148CB0
-sub_8148CB0: @ 8148CB0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08148CD4
- ldr r1, _08148CD8
- bl LZ77UnCompVram
- ldr r0, _08148CDC
- ldr r1, _08148CE0
- bl LZ77UnCompVram
- cmp r4, 0x4
- bhi _08148CFC
- lsls r0, r4, 2
- ldr r1, _08148CE4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08148CD4: .4byte gUnknown_0841225C
-_08148CD8: .4byte 0x06004000
-_08148CDC: .4byte gUnknown_084126DC
-_08148CE0: .4byte 0x06007800
-_08148CE4: .4byte _08148CE8
- .align 2, 0
-_08148CE8:
- .4byte _08148CFC
- .4byte _08148D58
- .4byte _08148DC4
- .4byte _08148DC4
- .4byte _08148E1C
-_08148CFC:
- ldr r0, _08148D34
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148D38
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148D3C
- ldr r1, _08148D40
- bl LZ77UnCompVram
- ldr r0, _08148D44
- movs r1, 0
- movs r2, 0x60
- bl LoadPalette
- ldr r0, _08148D48
- bl LoadCompressedObjectPic
- ldr r0, _08148D4C
- ldr r1, _08148D50
- bl LZ77UnCompVram
- ldr r0, _08148D54
- b _08148D8E
- .align 2, 0
-_08148D34: .4byte gUnknown_084121FC
-_08148D38: .4byte gUnknown_084128D8
-_08148D3C: .4byte gUnknown_08412EB4
-_08148D40: .4byte 0x06003000
-_08148D44: .4byte gUnknown_08412818
-_08148D48: .4byte gUnknown_08416B54
-_08148D4C: .4byte gUnknown_084131C4
-_08148D50: .4byte 0x06010000
-_08148D54: .4byte gUnknown_08413184
-_08148D58:
- ldr r0, _08148DA0
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148DA4
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148DA8
- ldr r1, _08148DAC
- bl LZ77UnCompVram
- ldr r0, _08148DB0
- movs r1, 0
- movs r2, 0x60
- bl LoadPalette
- ldr r0, _08148DB4
- bl LoadCompressedObjectPic
- ldr r0, _08148DB8
- ldr r1, _08148DBC
- bl LZ77UnCompVram
- ldr r0, _08148DC0
-_08148D8E:
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149248
- b _08148E58
- .align 2, 0
-_08148DA0: .4byte gUnknown_0841221C
-_08148DA4: .4byte gUnknown_084128D8
-_08148DA8: .4byte gUnknown_08412EB4
-_08148DAC: .4byte 0x06003000
-_08148DB0: .4byte gUnknown_08412878
-_08148DB4: .4byte gUnknown_08416B54
-_08148DB8: .4byte gUnknown_084131C4
-_08148DBC: .4byte 0x06010000
-_08148DC0: .4byte gUnknown_084131A4
-_08148DC4:
- ldr r0, _08148E04
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148E08
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148E0C
- ldr r1, _08148E10
- bl LZ77UnCompVram
- ldr r4, _08148E14
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148E18
- bl LoadCompressedObjectPic
- movs r1, 0x80
- lsls r1, 1
- adds r0, r4, 0
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149264
- b _08148E58
- .align 2, 0
-_08148E04: .4byte gUnknown_0841221C
-_08148E08: .4byte gUnknown_08413340
-_08148E0C: .4byte gUnknown_084139C8
-_08148E10: .4byte 0x06003000
-_08148E14: .4byte gUnknown_08413320
-_08148E18: .4byte gUnknown_08416BDC
-_08148E1C:
- ldr r0, _08148E6C
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, _08148E70
- movs r1, 0xC0
- lsls r1, 19
- bl LZ77UnCompVram
- ldr r0, _08148E74
- ldr r1, _08148E78
- bl LZ77UnCompVram
- ldr r0, _08148E7C
- movs r1, 0
- movs r2, 0x40
- bl LoadPalette
- ldr r0, _08148E80
- bl LoadCompressedObjectPic
- ldr r0, _08148E84
- movs r1, 0x80
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- bl sub_8149280
-_08148E58:
- ldr r1, _08148E88
- movs r0, 0x8
- strb r0, [r1]
- ldr r1, _08148E8C
- movs r0, 0
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08148E6C: .4byte gUnknown_0841223C
-_08148E70: .4byte gUnknown_08413E78
-_08148E74: .4byte gUnknown_08414084
-_08148E78: .4byte 0x06003000
-_08148E7C: .4byte gUnknown_08413E38
-_08148E80: .4byte gUnknown_08416C70
-_08148E84: .4byte gUnknown_08414064
-_08148E88: .4byte gReservedSpritePaletteCount
-_08148E8C: .4byte gUnknown_0203935C
- thumb_func_end sub_8148CB0
-
- thumb_func_start sub_8148E90
-sub_8148E90: @ 8148E90
- ldr r1, _08148EB4
- ldr r2, _08148EB8
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- adds r2, 0xFF
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0x2
- ldr r2, _08148EBC
- adds r0, r2, 0
- strh r0, [r1]
- subs r1, 0xA
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- bx lr
- .align 2, 0
-_08148EB4: .4byte REG_BG3CNT
-_08148EB8: .4byte 0x00000603
-_08148EBC: .4byte 0x00000f05
- thumb_func_end sub_8148E90
-
- thumb_func_start sub_8148EC0
-sub_8148EC0: @ 8148EC0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- adds r6, r1, 0
- mov r8, r2
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 16
- lsrs r6, 16
- mov r0, r8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r3, 16
- lsrs r3, 16
- ldr r1, _08148F34
- mov r9, r1
- mov r0, r9
- movs r1, 0
- str r3, [sp]
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _08148F38
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- strh r5, [r0, 0x8]
- strh r6, [r0, 0xA]
- strh r2, [r0, 0xC]
- strh r2, [r0, 0xE]
- mov r1, r8
- strh r1, [r0, 0x10]
- strh r2, [r0, 0x12]
- strh r2, [r0, 0x14]
- ldr r3, [sp]
- strh r3, [r0, 0x16]
- movs r1, 0x8
- strh r1, [r0, 0x18]
- strh r2, [r0, 0x1A]
- adds r0, r4, 0
- bl _call_via_r9
- adds r0, r4, 0
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08148F34: .4byte sub_8148F3C
-_08148F38: .4byte gTasks
- thumb_func_end sub_8148EC0
-
- thumb_func_start sub_8148F3C
-sub_8148F3C: @ 8148F3C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08148FB4
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r1
- ldrh r0, [r3, 0xA]
- lsls r4, r0, 16
- adds r6, r1, 0
- cmp r4, 0
- beq _08148F7C
- movs r1, 0xC
- ldrsh r0, [r3, r1]
- lsls r0, 16
- ldrh r1, [r3, 0xE]
- adds r2, r0, r1
- lsrs r0, r4, 12
- subs r2, r0
- asrs r1, r2, 16
- strh r1, [r3, 0xC]
- strh r2, [r3, 0xE]
- ldr r0, _08148FB8
- strh r1, [r0]
- ldr r2, _08148FBC
- ldr r1, _08148FC0
- ldr r0, _08148FC4
- ldrh r0, [r0]
- ldrh r1, [r1]
- adds r0, r1
- strh r0, [r2]
-_08148F7C:
- ldrh r0, [r3, 0x10]
- lsls r4, r0, 16
- cmp r4, 0
- beq _08148FD8
- movs r1, 0x12
- ldrsh r0, [r3, r1]
- lsls r0, 16
- ldrh r1, [r3, 0x14]
- adds r2, r0, r1
- lsrs r0, r4, 12
- subs r2, r0
- asrs r1, r2, 16
- strh r1, [r3, 0x12]
- strh r2, [r3, 0x14]
- ldr r0, _08148FC8
- strh r1, [r0]
- movs r1, 0x8
- ldrsh r0, [r3, r1]
- cmp r0, 0
- beq _08148FD0
- ldr r2, _08148FCC
- ldr r1, _08148FC0
- ldr r0, _08148FC4
- ldrh r0, [r0]
- ldrh r1, [r1]
- adds r0, r1
- strh r0, [r2]
- b _08148FD8
- .align 2, 0
-_08148FB4: .4byte gTasks
-_08148FB8: .4byte REG_BG1HOFS
-_08148FBC: .4byte REG_BG1VOFS
-_08148FC0: .4byte gUnknown_02039358
-_08148FC4: .4byte gUnknown_0203935A
-_08148FC8: .4byte REG_BG2HOFS
-_08148FCC: .4byte REG_BG2VOFS
-_08148FD0:
- ldr r0, _08149010
- ldr r1, _08149014
- ldrh r1, [r1]
- strh r1, [r0]
-_08148FD8:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r3, r0, r6
- ldrh r0, [r3, 0x16]
- lsls r4, r0, 16
- cmp r4, 0
- beq _08149008
- movs r1, 0x18
- ldrsh r0, [r3, r1]
- lsls r0, 16
- ldrh r1, [r3, 0x1A]
- adds r2, r0, r1
- lsrs r0, r4, 12
- subs r2, r0
- asrs r1, r2, 16
- strh r1, [r3, 0x18]
- strh r2, [r3, 0x1A]
- ldr r0, _08149018
- strh r1, [r0]
- ldr r1, _0814901C
- ldr r0, _08149014
- ldrh r0, [r0]
- strh r0, [r1]
-_08149008:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08149010: .4byte REG_BG2VOFS
-_08149014: .4byte gUnknown_02039358
-_08149018: .4byte REG_BG3HOFS
-_0814901C: .4byte REG_BG3VOFS
- thumb_func_end sub_8148F3C
-
- thumb_func_start sub_8149020
-sub_8149020: @ 8149020
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08149100
- cmp r0, 0x1
- ble _08149034
- cmp r0, 0x2
- beq _08149098
-_08149034:
- ldr r0, _08149060
- ldr r2, [r0, 0x20]
- movs r0, 0x3
- ands r0, r2
- cmp r0, 0
- bne _08149100
- ldr r0, _08149064
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08149100
- movs r0, 0x4
- ands r2, r0
- cmp r2, 0
- beq _0814906C
- ldr r2, _08149068
- ldrh r1, [r2, 0x12]
- mov r0, sp
- strh r1, [r0]
- ldrh r1, [r2, 0x14]
- b _08149076
- .align 2, 0
-_08149060: .4byte gMain
-_08149064: .4byte gPaletteFade
-_08149068: .4byte gPlttBufferUnfaded
-_0814906C:
- ldr r2, _08149094
- ldrh r1, [r2, 0x14]
- mov r0, sp
- strh r1, [r0]
- ldrh r1, [r2, 0x12]
-_08149076:
- adds r0, 0x2
- strh r1, [r0]
- adds r4, r0, 0
- mov r0, sp
- movs r1, 0x9
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xA
- movs r2, 0x2
- bl LoadPalette
- b _08149100
- .align 2, 0
-_08149094: .4byte gPlttBufferUnfaded
-_08149098:
- ldr r0, _081490C8
- ldr r2, [r0, 0x20]
- movs r0, 0x3
- ands r0, r2
- cmp r0, 0
- bne _08149100
- ldr r0, _081490CC
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08149100
- movs r0, 0x4
- ands r2, r0
- cmp r2, 0
- beq _081490D8
- mov r1, sp
- ldr r2, _081490D0
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _081490D4
- b _081490E6
- .align 2, 0
-_081490C8: .4byte gMain
-_081490CC: .4byte gPaletteFade
-_081490D0: .4byte 0x00003d27
-_081490D4: .4byte 0x00000295
-_081490D8:
- mov r1, sp
- movs r2, 0xC7
- lsls r2, 2
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _08149108
-_081490E6:
- adds r0, r2, 0
- strh r0, [r1]
- adds r4, r1, 0
- mov r0, sp
- movs r1, 0xC
- movs r2, 0x2
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xD
- movs r2, 0x2
- bl LoadPalette
-_08149100:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08149108: .4byte 0x00003d27
- thumb_func_end sub_8149020
-
- thumb_func_start sub_814910C
-sub_814910C: @ 814910C
- push {lr}
- adds r2, r0, 0
- ldr r0, _08149124
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08149128
- adds r0, r2, 0
- bl DestroySprite
- b _0814916C
- .align 2, 0
-_08149124: .4byte gUnknown_0203935C
-_08149128:
- movs r1, 0x20
- ldrsh r0, [r2, r1]
- lsls r0, 16
- ldrh r1, [r2, 0x32]
- orrs r0, r1
- ldrh r1, [r2, 0x30]
- adds r0, r1
- asrs r1, r0, 16
- strh r1, [r2, 0x20]
- strh r0, [r2, 0x32]
- cmp r1, 0xFF
- ble _08149144
- ldr r0, _08149158
- strh r0, [r2, 0x20]
-_08149144:
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _08149164
- ldr r1, _0814915C
- ldr r0, _08149160
- ldrh r0, [r0]
- ldrh r1, [r1]
- adds r0, r1
- b _08149168
- .align 2, 0
-_08149158: .4byte 0x0000ffe0
-_0814915C: .4byte gUnknown_02039358
-_08149160: .4byte gUnknown_0203935A
-_08149164:
- ldr r0, _08149170
- ldrh r0, [r0]
-_08149168:
- negs r0, r0
- strh r0, [r2, 0x26]
-_0814916C:
- pop {r0}
- bx r0
- .align 2, 0
-_08149170: .4byte gUnknown_02039358
- thumb_func_end sub_814910C
-
- thumb_func_start sub_8149174
-sub_8149174: @ 8149174
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- movs r7, 0
- cmp r7, r8
- bcs _0814922A
- ldr r0, _0814923C
- mov r10, r0
- movs r2, 0x3F
- mov r9, r2
-_0814919E:
- lsls r6, r7, 3
- ldr r0, [sp, 0x4]
- adds r6, r0
- ldrb r1, [r6, 0x1]
- ldrb r2, [r6, 0x2]
- ldrb r3, [r6, 0x3]
- ldr r0, _08149240
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- mov r2, r10
- adds r4, r5, r2
- ldrb r2, [r6]
- lsls r1, r2, 26
- lsrs r1, 30
- lsrs r2, 6
- adds r0, r4, 0
- movs r3, 0
- bl CalcCenterToCornerVec
- ldrb r3, [r4, 0x5]
- movs r0, 0xC
- orrs r3, r0
- strb r3, [r4, 0x5]
- ldrb r1, [r6]
- lsls r1, 26
- lsrs r1, 30
- lsls r1, 6
- ldrb r2, [r4, 0x1]
- mov r0, r9
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r1, [r6]
- lsrs r1, 6
- lsls r1, 6
- ldrb r2, [r4, 0x3]
- mov r0, r9
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x3]
- movs r0, 0xF
- ands r3, r0
- strb r3, [r4, 0x5]
- ldr r0, _08149244
- adds r5, r0
- ldr r2, [sp, 0x8]
- str r2, [r5]
- ldrb r1, [r6]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r4, 0
- bl StartSpriteAnim
- movs r1, 0
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x2E]
- ldrh r0, [r6, 0x4]
- strh r0, [r4, 0x30]
- strh r1, [r4, 0x32]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, r8
- bcc _0814919E
-_0814922A:
- 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
-_0814923C: .4byte gSprites
-_08149240: .4byte gSpriteTemplate_8416B3C
-_08149244: .4byte gSprites + 0x8
- thumb_func_end sub_8149174
-
- thumb_func_start sub_8149248
-sub_8149248: @ 8149248
- push {lr}
- ldr r1, _0814925C
- ldr r2, _08149260
- movs r0, 0
- movs r3, 0x9
- bl sub_8149174
- pop {r0}
- bx r0
- .align 2, 0
-_0814925C: .4byte gUnknown_08416B94
-_08149260: .4byte gSpriteAnimTable_8416B84
- thumb_func_end sub_8149248
-
- thumb_func_start sub_8149264
-sub_8149264: @ 8149264
- push {lr}
- ldr r1, _08149278
- ldr r2, _0814927C
- movs r0, 0x1
- movs r3, 0xC
- bl sub_8149174
- pop {r0}
- bx r0
- .align 2, 0
-_08149278: .4byte gUnknown_08416C10
-_0814927C: .4byte gSpriteAnimTable_8416C04
- thumb_func_end sub_8149264
-
- thumb_func_start sub_8149280
-sub_8149280: @ 8149280
- push {lr}
- ldr r1, _08149294
- ldr r2, _08149298
- movs r0, 0x1
- movs r3, 0x6
- bl sub_8149174
- pop {r0}
- bx r0
- .align 2, 0
-_08149294: .4byte gUnknown_08416C8C
-_08149298: .4byte gSpriteAnimTable_8416C88
- thumb_func_end sub_8149280
-
- thumb_func_start nullsub_82
-nullsub_82: @ 814929C
- bx lr
- thumb_func_end nullsub_82
-
- thumb_func_start sub_81492A0
-sub_81492A0: @ 81492A0
- push {r4,lr}
- ldr r4, _0814930C
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r1, [r1]
- movs r2, 0x3E
- adds r2, r0
- mov r12, r2
- movs r2, 0x4
- ands r2, r1
- mov r1, r12
- ldrb r3, [r1]
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x20]
- strh r1, [r0, 0x20]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x22]
- adds r1, 0x8
- strh r1, [r0, 0x22]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x24]
- strh r1, [r0, 0x24]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x26]
- strh r1, [r0, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814930C: .4byte gSprites
- thumb_func_end sub_81492A0
-
- thumb_func_start sub_8149310
-sub_8149310: @ 8149310
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r0, _0814935C
- lsls r5, 16
- asrs r5, 16
- lsls r4, 16
- asrs r4, 16
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _08149360
- adds r4, 0x8
- lsls r4, 16
- asrs r4, 16
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08149364
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- strh r6, [r1, 0x2E]
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0814935C: .4byte gSpriteTemplate_8416CDC
-_08149360: .4byte gSpriteTemplate_8416D2C
-_08149364: .4byte gSprites
- thumb_func_end sub_8149310
-
- thumb_func_start sub_8149368
-sub_8149368: @ 8149368
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r0, _081493B4
- lsls r5, 16
- asrs r5, 16
- lsls r4, 16
- asrs r4, 16
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _081493B8
- adds r4, 0x8
- lsls r4, 16
- asrs r4, 16
- adds r1, r5, 0
- adds r2, r4, 0
- movs r3, 0x1
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _081493BC
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- strh r6, [r1, 0x2E]
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_081493B4: .4byte gSpriteTemplate_8416CF4
-_081493B8: .4byte gSpriteTemplate_8416D44
-_081493BC: .4byte gSprites
- thumb_func_end sub_8149368
-
- thumb_func_start nullsub_83
-nullsub_83: @ 81493C0
- bx lr
- thumb_func_end nullsub_83
-
- thumb_func_start sub_81493C4
-sub_81493C4: @ 81493C4
- push {r4,lr}
- ldr r4, _08149420
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r1, [r1]
- movs r2, 0x3E
- adds r2, r0
- mov r12, r2
- movs r2, 0x4
- ands r2, r1
- mov r1, r12
- ldrb r3, [r1]
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- movs r1, 0x2E
- ldrsh r2, [r0, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x22]
- strh r1, [r0, 0x22]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x24]
- strh r1, [r0, 0x24]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x26]
- strh r1, [r0, 0x26]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08149420: .4byte gSprites
- thumb_func_end sub_81493C4
-
- thumb_func_start sub_8149424
-sub_8149424: @ 8149424
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r2, r0, 0
- adds r5, r1, 0
- ldr r0, _08149490
- mov r8, r0
- lsls r2, 16
- asrs r4, r2, 16
- ldr r0, _08149494
- adds r2, r0
- asrs r2, 16
- lsls r5, 16
- asrs r5, 16
- mov r0, r8
- adds r1, r2, 0
- adds r2, r5, 0
- movs r3, 0x2
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- adds r4, 0x20
- lsls r4, 16
- asrs r4, 16
- mov r0, r8
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08149498
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r0, r4, r5
- strh r6, [r0, 0x2E]
- movs r1, 0x1
- bl StartSpriteAnim
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _0814949C
- str r0, [r4]
- adds r0, r6, 0
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08149490: .4byte gSpriteTemplate_8416D7C
-_08149494: .4byte 0xffe00000
-_08149498: .4byte gSprites
-_0814949C: .4byte sub_81493C4
- thumb_func_end sub_8149424
-
- thumb_func_start sapphire_sub_81494A0
-sapphire_sub_81494A0: @ 81494A0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r2, r0, 0
- adds r5, r1, 0
- ldr r0, _0814950C
- mov r8, r0
- lsls r2, 16
- asrs r4, r2, 16
- ldr r0, _08149510
- adds r2, r0
- asrs r2, 16
- lsls r5, 16
- asrs r5, 16
- mov r0, r8
- adds r1, r2, 0
- adds r2, r5, 0
- movs r3, 0x2
- bl CreateSprite
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- adds r4, 0x20
- lsls r4, 16
- asrs r4, 16
- mov r0, r8
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0x2
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r5, _08149514
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- adds r0, r4, r5
- strh r6, [r0, 0x2E]
- movs r1, 0x1
- bl StartSpriteAnim
- adds r5, 0x1C
- adds r4, r5
- ldr r0, _08149518
- str r0, [r4]
- adds r0, r6, 0
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0814950C: .4byte gSpriteTemplate_8416D94
-_08149510: .4byte 0xffe00000
-_08149514: .4byte gSprites
-_08149518: .4byte sub_81493C4
- thumb_func_end sapphire_sub_81494A0
-
- thumb_func_start nullsub_84
-nullsub_84: @ 814951C
- bx lr
- thumb_func_end nullsub_84
-
- thumb_func_start sub_8149520
-sub_8149520: @ 8149520
- push {r4,r5,lr}
- sub sp, 0x4
- movs r4, 0
- ldr r5, _08149554
-_08149528:
- adds r0, r4, 0
- adds r0, 0x14
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r4, 1
- adds r1, r5
- ldrh r1, [r1]
- str r1, [sp]
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- adds r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0xB
- bls _08149528
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08149554: .4byte gUnknown_08416ED0
- thumb_func_end sub_8149520
-
- thumb_func_start sub_8149558
-sub_8149558: @ 8149558
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- ble _08149606
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- adds r1, r0, 0
- muls r1, r0
- adds r0, r1, 0
- movs r1, 0x50
- bl __divsi3
- movs r1, 0x58
- subs r1, r0
- strh r1, [r4, 0x22]
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _08149592
- adds r0, 0x3
-_08149592:
- asrs r0, 2
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x3A]
- adds r0, 0x4
- strh r0, [r4, 0x3A]
- ldrh r1, [r4, 0x3C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081495BC
- ldrh r0, [r4, 0x38]
- subs r0, 0x1
- strh r0, [r4, 0x38]
-_081495BC:
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- movs r1, 0x26
- ldrsh r0, [r4, r1]
- cmp r0, 0
- ble _081495D2
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1
- b _081495D8
-_081495D2:
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x14
-_081495D8:
- strb r0, [r1]
- movs r2, 0x38
- ldrsh r0, [r4, r2]
- cmp r0, 0
- bge _081495E4
- adds r0, 0x3
-_081495E4:
- asrs r0, 2
- adds r0, 0x14
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x1F
- bls _081495F2
- movs r2, 0x1F
-_081495F2:
- movs r0, 0x1F
- ands r2, r0
- lsls r2, 1
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x3]
- b _0814960C
-_08149606:
- adds r0, r4, 0
- bl DestroySprite
-_0814960C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8149558
-
- thumb_func_start sub_8149614
-sub_8149614: @ 8149614
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08149664
- movs r1, 0x78
- movs r2, 0x58
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0814965E
- ldr r4, _08149668
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r2, r3, r4
- movs r1, 0
- movs r0, 0x30
- strh r0, [r2, 0x38]
- strh r5, [r2, 0x3A]
- strh r1, [r2, 0x3C]
- ldrb r1, [r2, 0x1]
- subs r0, 0x34
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r0, [r2, 0x3]
- movs r1, 0x3E
- orrs r0, r1
- strb r0, [r2, 0x3]
- adds r4, 0x1C
- adds r3, r4
- ldr r0, _0814966C
- str r0, [r3]
-_0814965E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08149664: .4byte gSpriteTemplate_8416EB8
-_08149668: .4byte gSprites
-_0814966C: .4byte sub_8149558
- thumb_func_end sub_8149614
-
- thumb_func_start sub_8149670
-sub_8149670: @ 8149670
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x22
- ldrsh r0, [r4, r1]
- cmp r0, 0x57
- bgt _081496D6
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- adds r1, r0, 0
- muls r1, r0
- adds r0, r1, 0
- movs r1, 0x5
- bl __divsi3
- adds r0, 0x8
- strh r0, [r4, 0x22]
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- bge _081496A8
- adds r0, 0x3
-_081496A8:
- asrs r0, 2
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- lsls r0, 26
- lsrs r0, 24
- movs r1, 0x28
- bl Sin
- adds r0, 0x8
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- b _081496DC
-_081496D6:
- adds r0, r4, 0
- bl DestroySprite
-_081496DC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8149670
-
- thumb_func_start sub_81496E4
-sub_81496E4: @ 81496E4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08149740
- movs r1, 0x78
- movs r2, 0x8
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0814973A
- ldr r4, _08149744
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r2, r3, r4
- movs r1, 0
- movs r0, 0x8
- strh r0, [r2, 0x38]
- strh r5, [r2, 0x3A]
- strh r1, [r2, 0x3C]
- ldrb r1, [r2, 0x1]
- subs r0, 0xC
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r1, [r2, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x32
- orrs r0, r1
- strb r0, [r2, 0x3]
- adds r2, 0x43
- movs r0, 0x1
- strb r0, [r2]
- adds r4, 0x1C
- adds r3, r4
- ldr r0, _08149748
- str r0, [r3]
-_0814973A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08149740: .4byte gSpriteTemplate_8416EB8
-_08149744: .4byte gSprites
-_08149748: .4byte sub_8149670
- thumb_func_end sub_81496E4
-
- thumb_func_start sub_814974C
-sub_814974C: @ 814974C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0x38
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- ble _08149788
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Sin
- strh r0, [r4, 0x26]
- ldrh r0, [r4, 0x3A]
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0x38
- ldrsh r1, [r4, r2]
- bl Cos
- strh r0, [r4, 0x24]
- ldrh r0, [r4, 0x38]
- ldrh r1, [r4, 0x34]
- subs r0, r1
- strh r0, [r4, 0x38]
- ldrh r0, [r4, 0x3A]
- adds r0, 0x4
- strh r0, [r4, 0x3A]
- b _0814978E
-_08149788:
- adds r0, r4, 0
- bl DestroySprite
-_0814978E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_814974C
-
- thumb_func_start sub_8149794
-sub_8149794: @ 8149794
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r0, _081497F0
- movs r1, 0x78
- movs r2, 0x38
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _081497EA
- ldr r4, _081497F4
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r2, r3, r4
- movs r1, 0
- strh r5, [r2, 0x34]
- movs r0, 0x78
- strh r0, [r2, 0x38]
- strh r6, [r2, 0x3A]
- strh r1, [r2, 0x3C]
- ldrb r1, [r2, 0x1]
- subs r0, 0x7C
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r0, [r2, 0x3]
- movs r1, 0x3E
- orrs r0, r1
- strb r0, [r2, 0x3]
- adds r2, 0x43
- movs r0, 0x1
- strb r0, [r2]
- adds r4, 0x1C
- adds r3, r4
- ldr r0, _081497F8
- str r0, [r3]
-_081497EA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_081497F0: .4byte gSpriteTemplate_8416EB8
-_081497F4: .4byte gSprites
-_081497F8: .4byte sub_814974C
- thumb_func_end sub_8149794
-
- thumb_func_start sub_81497FC
-sub_81497FC: @ 81497FC
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x3C]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08149810
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
-_08149810:
- ldrh r1, [r4, 0x3A]
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- cmp r0, 0x7F
- bgt _081498C0
- lsls r0, r1, 24
- lsrs r0, 24
- movs r5, 0x38
- ldrsh r1, [r4, r5]
- bl Sin
- negs r0, r0
- strh r0, [r4, 0x26]
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- movs r2, 0x3C
- ldrsh r0, [r4, r2]
- muls r0, r1
- movs r1, 0x3
- bl __divsi3
- adds r0, 0x78
- strh r0, [r4, 0x20]
- ldrh r0, [r4, 0x3A]
- adds r3, r0, 0x1
- strh r3, [r4, 0x3A]
- movs r5, 0x3A
- ldrsh r1, [r4, r5]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- cmp r0, 0
- bge _08149854
- adds r0, 0x7F
-_08149854:
- asrs r0, 7
- movs r1, 0x1F
- subs r1, r0
- lsls r1, 24
- lsrs r2, r1, 24
- lsls r0, r3, 16
- asrs r0, 16
- cmp r0, 0x40
- ble _08149870
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x1
- strb r0, [r1]
- b _081498A0
-_08149870:
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- adds r1, r4, 0
- adds r1, 0x43
- movs r0, 0x14
- strb r0, [r1]
- ldrh r1, [r4, 0x3A]
- movs r5, 0x3A
- ldrsh r0, [r4, r5]
- cmp r0, 0x70
- ble _081498A0
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081498A0
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
-_081498A0:
- cmp r2, 0x13
- bhi _081498A6
- movs r2, 0x14
-_081498A6:
- movs r0, 0x1F
- ands r2, r0
- lsls r2, 1
- ldrb r1, [r4, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- orrs r0, r2
- strb r0, [r4, 0x3]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- b _081498C6
-_081498C0:
- adds r0, r4, 0
- bl DestroySprite
-_081498C6:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81497FC
-
- thumb_func_start sub_81498CC
-sub_81498CC: @ 81498CC
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, _08149948
- movs r1, 0x78
- movs r2, 0x38
- movs r3, 0
- bl CreateSprite
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x40
- beq _0814993C
- bl Random
- ldr r6, _0814994C
- lsls r5, r4, 4
- adds r5, r4
- lsls r5, 2
- adds r4, r5, r6
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x7
- bl __umodsi3
- movs r1, 0x3
- subs r1, r0
- movs r0, 0
- mov r8, r0
- strh r1, [r4, 0x34]
- bl Random
- movs r1, 0x3F
- ands r1, r0
- adds r1, 0x30
- strh r1, [r4, 0x38]
- mov r0, r8
- strh r0, [r4, 0x3C]
- ldrb r1, [r4, 0x1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r4, 0x3]
- movs r1, 0x3E
- orrs r0, r1
- strb r0, [r4, 0x3]
- adds r4, 0x43
- movs r0, 0x14
- strb r0, [r4]
- adds r6, 0x1C
- adds r5, r6
- ldr r0, _08149950
- str r0, [r5]
-_0814993C:
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08149948: .4byte gSpriteTemplate_8416EB8
-_0814994C: .4byte gSprites
-_08149950: .4byte sub_81497FC
- thumb_func_end sub_81498CC
-
- thumb_func_start sub_8149954
-sub_8149954: @ 8149954
- push {lr}
- ldr r0, _08149968
- bl LoadCompressedObjectPic
- ldr r0, _0814996C
- bl LoadSpritePalettes
- pop {r0}
- bx r0
- .align 2, 0
-_08149968: .4byte gUnknown_08416E84
-_0814996C: .4byte gUnknown_08416E94
- thumb_func_end sub_8149954
-
- thumb_func_start sub_8149970
-sub_8149970: @ 8149970
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08149998
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0814999C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xA]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08149998: .4byte sub_81499A0
-_0814999C: .4byte gTasks
- thumb_func_end sub_8149970
-
- thumb_func_start sub_81499A0
-sub_81499A0: @ 81499A0
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8149520
- ldr r0, _081499E4
- lsls r5, r4, 2
- adds r5, r4
- lsls r5, 3
- adds r5, r0
- movs r0, 0
- strh r0, [r5, 0x26]
- movs r0, 0xA
- ldrsh r1, [r5, r0]
- movs r0, 0x3
- lsls r0, r1
- ldr r1, _081499E8
- str r1, [sp]
- movs r1, 0xA
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _081499EC
- str r0, [r5]
- movs r0, 0x8C
- bl PlaySE
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081499E4: .4byte gTasks
-_081499E8: .4byte 0x00007fff
-_081499EC: .4byte sub_81499F0
- thumb_func_end sub_81499A0
-
- thumb_func_start sub_81499F0
-sub_81499F0: @ 81499F0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08149A48
- lsls r3, r5, 2
- adds r0, r3, r5
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0x26]
- movs r4, 0x26
- ldrsh r0, [r1, r4]
- cmp r0, 0x3F
- bgt _08149A4C
- movs r0, 0x7
- ands r0, r2
- adds r7, r3, 0
- cmp r0, 0
- bne _08149A36
- movs r4, 0
- adds r6, r1, 0
-_08149A18:
- ldrh r1, [r6, 0x26]
- movs r0, 0x78
- ands r0, r1
- lsls r0, 1
- lsls r1, r4, 6
- adds r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl sub_8149614
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _08149A18
-_08149A36:
- ldr r0, _08149A48
- adds r1, r7, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _08149A54
- .align 2, 0
-_08149A48: .4byte gTasks
-_08149A4C:
- movs r0, 0x60
- strh r0, [r1, 0x26]
- ldr r0, _08149A5C
- str r0, [r1]
-_08149A54:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08149A5C: .4byte sub_8149A60
- thumb_func_end sub_81499F0
-
- thumb_func_start sub_8149A60
-sub_8149A60: @ 8149A60
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _08149A80
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r1
- ldrh r3, [r1, 0x26]
- movs r4, 0x26
- ldrsh r0, [r1, r4]
- cmp r0, 0
- beq _08149A84
- subs r0, r3, 0x1
- strh r0, [r1, 0x26]
- b _08149A8A
- .align 2, 0
-_08149A80: .4byte gTasks
-_08149A84:
- adds r0, r2, 0
- bl DestroyTask
-_08149A8A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8149A60
-
- thumb_func_start sub_8149A90
-sub_8149A90: @ 8149A90
- push {lr}
- ldr r0, _08149AA4
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08149AA4: .4byte sub_8149AA8
- thumb_func_end sub_8149A90
-
- thumb_func_start sub_8149AA8
-sub_8149AA8: @ 8149AA8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8149520
- ldr r1, _08149AD4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x26]
- ldr r1, _08149AD8
- str r1, [r0]
- movs r0, 0xB7
- bl PlaySE
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08149AD4: .4byte gTasks
-_08149AD8: .4byte sub_8149ADC
- thumb_func_end sub_8149AA8
-
- thumb_func_start sub_8149ADC
-sub_8149ADC: @ 8149ADC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08149B20
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- adds r1, r0, r1
- movs r3, 0x26
- ldrsh r0, [r1, r3]
- cmp r0, 0x5F
- bgt _08149B24
- adds r6, r2, 0
- cmp r0, 0x5
- bgt _08149B0E
- movs r4, 0
-_08149AFC:
- lsls r0, r4, 28
- lsrs r0, 24
- bl sub_81496E4
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x8
- bls _08149AFC
-_08149B0E:
- ldr r0, _08149B20
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _08149B28
- .align 2, 0
-_08149B20: .4byte gTasks
-_08149B24:
- ldr r0, _08149B30
- str r0, [r1]
-_08149B28:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08149B30: .4byte sub_8149B34
- thumb_func_end sub_8149ADC
-
- thumb_func_start sub_8149B34
-sub_8149B34: @ 8149B34
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- pop {r0}
- bx r0
- thumb_func_end sub_8149B34
-
- thumb_func_start sub_8149B44
-sub_8149B44: @ 8149B44
- push {lr}
- ldr r0, _08149B58
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08149B58: .4byte sub_8149B5C
- thumb_func_end sub_8149B44
-
- thumb_func_start sub_8149B5C
-sub_8149B5C: @ 8149B5C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8149520
- ldr r1, _08149B88
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x26]
- ldr r1, _08149B8C
- str r1, [r0]
- movs r0, 0x66
- bl PlaySE
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08149B88: .4byte gTasks
-_08149B8C: .4byte sub_8149B90
- thumb_func_end sub_8149B5C
-
- thumb_func_start sub_8149B90
-sub_8149B90: @ 8149B90
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _08149BFC
- lsls r2, r5, 2
- adds r0, r2, r5
- lsls r0, 3
- adds r1, r0, r1
- movs r3, 0x26
- ldrsh r0, [r1, r3]
- cmp r0, 0x2F
- bgt _08149C00
- adds r6, r2, 0
- cmp r0, 0
- bne _08149BC4
- movs r4, 0
-_08149BB0:
- lsls r0, r4, 28
- lsrs r0, 24
- movs r1, 0x4
- bl sub_8149794
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _08149BB0
-_08149BC4:
- ldr r0, _08149BFC
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- movs r2, 0x26
- ldrsh r0, [r1, r2]
- cmp r0, 0x20
- bne _08149BEA
- movs r4, 0
-_08149BD6:
- lsls r0, r4, 28
- lsrs r0, 24
- movs r1, 0x8
- bl sub_8149794
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _08149BD6
-_08149BEA:
- ldr r0, _08149BFC
- adds r1, r6, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _08149C04
- .align 2, 0
-_08149BFC: .4byte gTasks
-_08149C00:
- ldr r0, _08149C0C
- str r0, [r1]
-_08149C04:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08149C0C: .4byte sub_8149C10
- thumb_func_end sub_8149B90
-
- thumb_func_start sub_8149C10
-sub_8149C10: @ 8149C10
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl DestroyTask
- pop {r0}
- bx r0
- thumb_func_end sub_8149C10
-
- thumb_func_start sub_8149C20
-sub_8149C20: @ 8149C20
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08149C48
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08149C4C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xC]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08149C48: .4byte sub_8149C50
-_08149C4C: .4byte gTasks
- thumb_func_end sub_8149C20
-
- thumb_func_start sub_8149C50
-sub_8149C50: @ 8149C50
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8149520
- ldr r0, _08149C98
- lsls r5, r4, 2
- adds r5, r4
- lsls r5, 3
- adds r5, r0
- movs r0, 0
- strh r0, [r5, 0x26]
- ldr r0, _08149C9C
- ldr r1, _08149CA0
- movs r2, 0x30
- bl CpuSet
- ldr r0, _08149CA4
- ldr r1, _08149CA8
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08149CAC
- str r0, [r5]
- movs r0, 0xCA
- bl PlaySE
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08149C98: .4byte gTasks
-_08149C9C: .4byte gPlttBufferFaded + 0x40
-_08149CA0: .4byte gPlttBufferUnfaded + 0x40
-_08149CA4: .4byte 0xfff9001c
-_08149CA8: .4byte 0x00007fff
-_08149CAC: .4byte sub_8149CB0
- thumb_func_end sub_8149C50
-
- thumb_func_start sub_8149CB0
-sub_8149CB0: @ 8149CB0
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08149CE8
- lsls r5, r6, 2
- adds r0, r5, r6
- lsls r0, 3
- adds r1, r0, r1
- movs r0, 0x26
- ldrsh r2, [r1, r0]
- cmp r2, 0x7F
- bgt _08149D2C
- adds r0, r2, 0
- cmp r0, 0
- beq _08149CEC
- cmp r0, 0x20
- beq _08149D00
- cmp r2, 0x31
- bgt _08149D10
- bl Random
- movs r1, 0x7
- ands r0, r1
- bl sub_81498CC
- b _08149D10
- .align 2, 0
-_08149CE8: .4byte gTasks
-_08149CEC:
- movs r4, 0
-_08149CEE:
- adds r0, r4, 0
- bl sub_81498CC
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _08149CEE
- b _08149D10
-_08149D00:
- ldr r0, _08149D20
- ldr r1, _08149D24
- str r1, [sp]
- movs r1, 0x10
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_08149D10:
- ldr r0, _08149D28
- adds r1, r5, r6
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _08149D30
- .align 2, 0
-_08149D20: .4byte 0xffff001c
-_08149D24: .4byte 0x00007fff
-_08149D28: .4byte gTasks
-_08149D2C:
- ldr r0, _08149D38
- str r0, [r1]
-_08149D30:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08149D38: .4byte sub_8149D3C
- thumb_func_end sub_8149CB0
-
- thumb_func_start sub_8149D3C
-sub_8149D3C: @ 8149D3C
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _08149D58
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08149D54
- adds r0, r2, 0
- bl DestroyTask
-_08149D54:
- pop {r0}
- bx r0
- .align 2, 0
-_08149D58: .4byte gPaletteFade
- thumb_func_end sub_8149D3C
-
- thumb_func_start sub_8149D5C
-sub_8149D5C: @ 8149D5C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08149D84
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08149D88
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0xC]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08149D84: .4byte sub_8149D8C
-_08149D88: .4byte gTasks
- thumb_func_end sub_8149D5C
-
- thumb_func_start sub_8149D8C
-sub_8149D8C: @ 8149D8C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8149520
- ldr r0, _08149DD4
- lsls r5, r4, 2
- adds r5, r4
- lsls r5, 3
- adds r5, r0
- movs r0, 0
- strh r0, [r5, 0x26]
- ldr r0, _08149DD8
- ldr r1, _08149DDC
- movs r2, 0x30
- bl CpuSet
- ldr r0, _08149DE0
- ldr r1, _08149DE4
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r0, _08149DE8
- str r0, [r5]
- movs r0, 0xCA
- bl PlaySE
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08149DD4: .4byte gTasks
-_08149DD8: .4byte gPlttBufferFaded + 0x40
-_08149DDC: .4byte gPlttBufferUnfaded + 0x40
-_08149DE0: .4byte 0xfff90001
-_08149DE4: .4byte 0x00007fff
-_08149DE8: .4byte sub_8149DEC
- thumb_func_end sub_8149D8C
-
- thumb_func_start sub_8149DEC
-sub_8149DEC: @ 8149DEC
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _08149E24
- lsls r5, r6, 2
- adds r0, r5, r6
- lsls r0, 3
- adds r1, r0, r1
- movs r0, 0x26
- ldrsh r2, [r1, r0]
- cmp r2, 0x7F
- bgt _08149E68
- adds r0, r2, 0
- cmp r0, 0
- beq _08149E28
- cmp r0, 0x20
- beq _08149E3C
- cmp r2, 0x31
- bgt _08149E4C
- bl Random
- movs r1, 0x7
- ands r0, r1
- bl sub_81498CC
- b _08149E4C
- .align 2, 0
-_08149E24: .4byte gTasks
-_08149E28:
- movs r4, 0
-_08149E2A:
- adds r0, r4, 0
- bl sub_81498CC
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _08149E2A
- b _08149E4C
-_08149E3C:
- ldr r0, _08149E5C
- ldr r1, _08149E60
- str r1, [sp]
- movs r1, 0x10
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
-_08149E4C:
- ldr r0, _08149E64
- adds r1, r5, r6
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- b _08149E6C
- .align 2, 0
-_08149E5C: .4byte 0xffff0001
-_08149E60: .4byte 0x00007fff
-_08149E64: .4byte gTasks
-_08149E68:
- ldr r0, _08149E74
- str r0, [r1]
-_08149E6C:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08149E74: .4byte sub_8149D3C
- thumb_func_end sub_8149DEC
-
- thumb_func_start nullsub_85
-nullsub_85: @ 8149E78
- bx lr
- thumb_func_end nullsub_85
-
- thumb_func_start sub_8149E7C
-sub_8149E7C: @ 8149E7C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r7, r1, 24
- movs r1, 0
- ldr r3, _08149FB0
- ldr r2, _08149FB4
-_08149E96:
- lsls r0, r1, 1
- add r0, sp
- adds r0, 0x4
- strh r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xF
- bls _08149E96
- adds r0, r3, 0
- movs r1, 0
- bl CreateTask
- mov r8, r0
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r0, _08149FB8
- mov r1, r8
- lsls r6, r1, 2
- add r6, r8
- lsls r6, 3
- adds r6, r0
- strh r5, [r6, 0xA]
- strh r7, [r6, 0xC]
- movs r1, 0x80
- lsls r1, 1
- strh r1, [r6, 0xE]
- movs r0, 0x10
- strh r0, [r6, 0x10]
- movs r4, 0x80
- lsls r4, 9
- str r1, [sp]
- movs r0, 0x1E
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- movs r0, 0x10
- ldrsh r1, [r6, r0]
- adds r0, r4, 0
- bl __divsi3
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r0, 0x1F
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- ldr r1, _08149FBC
- mov r9, r1
- lsls r2, r5, 4
- adds r2, r5
- lsls r2, 2
- mov r3, r9
- adds r3, 0x1C
- adds r0, r2, r3
- ldr r1, _08149FC0
- str r1, [r0]
- add r2, r9
- ldrb r1, [r2, 0x1]
- movs r4, 0x4
- negs r4, r4
- adds r0, r4, 0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x1]
- ldrb r1, [r2, 0x3]
- movs r0, 0x3F
- negs r0, r0
- ands r0, r1
- movs r1, 0x3C
- orrs r0, r1
- strb r0, [r2, 0x3]
- movs r0, 0x3E
- adds r0, r2
- mov r10, r0
- ldrb r1, [r0]
- movs r5, 0x5
- negs r5, r5
- adds r0, r5, 0
- ands r0, r1
- mov r1, r10
- strb r0, [r1]
- ldrb r1, [r2, 0x5]
- lsrs r1, 4
- lsls r1, 5
- ldr r0, _08149FC4
- mov r10, r0
- add r1, r10
- add r0, sp, 0x4
- movs r2, 0x10
- str r3, [sp, 0x24]
- bl CpuSet
- lsls r1, r7, 4
- adds r1, r7
- lsls r1, 2
- ldr r3, [sp, 0x24]
- adds r3, r1, r3
- ldr r0, _08149FC0
- str r0, [r3]
- add r1, r9
- ldrb r0, [r1, 0x1]
- ands r4, r0
- movs r0, 0x1
- orrs r4, r0
- strb r4, [r1, 0x1]
- ldrb r0, [r1, 0x3]
- movs r2, 0x3E
- orrs r0, r2
- strb r0, [r1, 0x3]
- adds r2, r1, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- ands r5, r0
- strb r5, [r2]
- ldrb r1, [r1, 0x5]
- lsrs r1, 4
- lsls r1, 5
- add r1, r10
- add r0, sp, 0x4
- movs r2, 0x10
- bl CpuSet
- movs r1, 0
- strh r1, [r6, 0x18]
- mov r0, r8
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08149FB0: .4byte sub_8149FC8
-_08149FB4: .4byte 0x00007fff
-_08149FB8: .4byte gTasks
-_08149FBC: .4byte gSprites
-_08149FC0: .4byte nullsub_85
-_08149FC4: .4byte gPlttBufferFaded + 0x200
- thumb_func_end sub_8149E7C
-
- thumb_func_start sub_8149FC8
-sub_8149FC8: @ 8149FC8
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08149FE4
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r0, [r1, 0x12]
- movs r0, 0x8
- strh r0, [r1, 0x14]
- ldr r0, _08149FE8
- str r0, [r1]
- bx lr
- .align 2, 0
-_08149FE4: .4byte gTasks
-_08149FE8: .4byte sub_8149FEC
- thumb_func_end sub_8149FC8
-
- thumb_func_start sub_8149FEC
-sub_8149FEC: @ 8149FEC
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, _0814A00C
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r2, r0, r1
- movs r1, 0x18
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _0814A010
- adds r0, r3, 0
- bl sub_814A208
- b _0814A032
- .align 2, 0
-_0814A00C: .4byte gTasks
-_0814A010:
- ldrh r1, [r2, 0x14]
- movs r4, 0x14
- ldrsh r0, [r2, r4]
- cmp r0, 0x80
- bne _0814A022
- adds r0, r3, 0
- bl sub_814A158
- b _0814A032
-_0814A022:
- adds r0, r1, 0x2
- strh r0, [r2, 0x14]
- ldrh r0, [r2, 0x12]
- movs r1, 0x1
- eors r0, r1
- strh r0, [r2, 0x12]
- ldr r0, _0814A038
- str r0, [r2]
-_0814A032:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814A038: .4byte sub_814A03C
- thumb_func_end sub_8149FEC
-
- thumb_func_start sub_814A03C
-sub_814A03C: @ 814A03C
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0814A060
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- movs r3, 0x18
- ldrsh r0, [r2, r3]
- adds r5, r1, 0
- cmp r0, 0
- beq _0814A068
- ldr r0, _0814A064
- str r0, [r2]
- b _0814A14C
- .align 2, 0
-_0814A060: .4byte gTasks
-_0814A064: .4byte sub_814A208
-_0814A068:
- movs r6, 0
- movs r7, 0x12
- ldrsh r0, [r2, r7]
- cmp r0, 0
- bne _0814A0B8
- movs r0, 0xE
- ldrsh r1, [r2, r0]
- movs r3, 0x14
- ldrsh r0, [r2, r3]
- movs r3, 0x80
- lsls r3, 1
- subs r0, r3, r0
- cmp r1, r0
- bge _0814A08E
- ldrh r0, [r2, 0x14]
- ldrh r7, [r2, 0xE]
- adds r0, r7
- strh r0, [r2, 0xE]
- b _0814A092
-_0814A08E:
- strh r3, [r2, 0xE]
- movs r6, 0x1
-_0814A092:
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r3, r0, r5
- movs r0, 0x10
- ldrsh r1, [r3, r0]
- movs r7, 0x14
- ldrsh r0, [r3, r7]
- adds r0, 0x10
- cmp r1, r0
- ble _0814A0B2
- ldrh r0, [r3, 0x10]
- ldrh r1, [r3, 0x14]
- subs r0, r1
- strh r0, [r3, 0x10]
- b _0814A102
-_0814A0B2:
- movs r0, 0x10
- strh r0, [r3, 0x10]
- b _0814A0FC
-_0814A0B8:
- movs r0, 0x10
- ldrsh r1, [r2, r0]
- movs r3, 0x14
- ldrsh r0, [r2, r3]
- movs r3, 0x80
- lsls r3, 1
- subs r0, r3, r0
- cmp r1, r0
- bge _0814A0D4
- ldrh r0, [r2, 0x14]
- ldrh r7, [r2, 0x10]
- adds r0, r7
- strh r0, [r2, 0x10]
- b _0814A0D8
-_0814A0D4:
- strh r3, [r2, 0x10]
- movs r6, 0x1
-_0814A0D8:
- lsls r2, r4, 2
- adds r0, r2, r4
- lsls r0, 3
- adds r3, r0, r5
- movs r0, 0xE
- ldrsh r1, [r3, r0]
- movs r7, 0x14
- ldrsh r0, [r3, r7]
- adds r0, 0x10
- cmp r1, r0
- ble _0814A0F8
- ldrh r0, [r3, 0xE]
- ldrh r1, [r3, 0x14]
- subs r0, r1
- strh r0, [r3, 0xE]
- b _0814A102
-_0814A0F8:
- movs r0, 0x10
- strh r0, [r3, 0xE]
-_0814A0FC:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0814A102:
- adds r0, r2, r4
- lsls r0, 3
- adds r5, r0, r5
- movs r0, 0xE
- ldrsh r1, [r5, r0]
- movs r4, 0x80
- lsls r4, 9
- adds r0, r4, 0
- bl __divsi3
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r0, 0x1E
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- movs r3, 0x10
- ldrsh r1, [r5, r3]
- adds r0, r4, 0
- bl __divsi3
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- str r1, [sp]
- movs r0, 0x1F
- movs r2, 0
- movs r3, 0
- bl SetOamMatrix
- cmp r6, 0x2
- bne _0814A14C
- ldr r0, _0814A154
- str r0, [r5]
-_0814A14C:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814A154: .4byte sub_8149FEC
- thumb_func_end sub_814A03C
-
- thumb_func_start sub_814A158
-sub_814A158: @ 814A158
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0814A200
- mov r8, r1
- ldr r1, _0814A204
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- add r2, r8
- ldrb r3, [r2, 0x1]
- movs r6, 0x4
- negs r6, r6
- adds r1, r6, 0
- ands r1, r3
- strb r1, [r2, 0x1]
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- add r2, r8
- ldrb r3, [r2, 0x3]
- movs r5, 0x3F
- negs r5, r5
- adds r1, r5, 0
- ands r1, r3
- strb r1, [r2, 0x3]
- movs r1, 0xA
- ldrsh r2, [r4, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r8
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r3, 0x4
- orrs r2, r3
- strb r2, [r1]
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r8
- ldrb r2, [r1, 0x1]
- ands r6, r2
- strb r6, [r1, 0x1]
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r8
- ldrb r2, [r1, 0x3]
- ands r5, r2
- strb r5, [r1, 0x3]
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r8
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- ands r2, r3
- strb r2, [r1]
- bl DestroyTask
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0814A200: .4byte gSprites
-_0814A204: .4byte gTasks
- thumb_func_end sub_814A158
-
- thumb_func_start sub_814A208
-sub_814A208: @ 814A208
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0814A2B0
- mov r8, r1
- ldr r1, _0814A2B4
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- add r2, r8
- ldrb r3, [r2, 0x1]
- movs r6, 0x4
- negs r6, r6
- adds r1, r6, 0
- ands r1, r3
- strb r1, [r2, 0x1]
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- add r2, r8
- ldrb r3, [r2, 0x3]
- movs r5, 0x3F
- negs r5, r5
- adds r1, r5, 0
- ands r1, r3
- strb r1, [r2, 0x3]
- movs r1, 0xA
- ldrsh r2, [r4, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r8
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- ands r2, r3
- strb r2, [r1]
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r8
- ldrb r2, [r1, 0x1]
- ands r6, r2
- strb r6, [r1, 0x1]
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r8
- ldrb r2, [r1, 0x3]
- ands r5, r2
- strb r5, [r1, 0x3]
- movs r1, 0xC
- ldrsh r2, [r4, r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- add r1, r8
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r3, 0x4
- orrs r2, r3
- strb r2, [r1]
- bl DestroyTask
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0814A2B0: .4byte gSprites
-_0814A2B4: .4byte gTasks
- thumb_func_end sub_814A208
-
- thumb_func_start sub_814A2B8
-sub_814A2B8: @ 814A2B8
- ldr r2, _0814A2CC
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- lsls r1, 1
- adds r1, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- bx lr
- .align 2, 0
-_0814A2CC: .4byte gUnknown_08417068
- thumb_func_end sub_814A2B8
-
- thumb_func_start sub_814A2D0
-sub_814A2D0: @ 814A2D0
- lsls r0, 16
- lsls r1, 16
- lsrs r1, 16
- ldr r2, _0814A2E8
- lsrs r0, 14
- adds r0, r2
- ldr r0, [r0]
- lsls r2, r1, 1
- adds r2, r1
- lsls r2, 4
- adds r0, r2
- bx lr
- .align 2, 0
-_0814A2E8: .4byte gBardMusicTable
- thumb_func_end sub_814A2D0
-
- thumb_func_start sub_814A2EC
-sub_814A2EC: @ 814A2EC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- lsls r2, 16
- lsrs r2, 16
- mov r9, r2
- ldr r4, _0814A370
- adds r2, r1, 0
- adds r3, r6, 0
- adds r3, 0x18
- movs r7, 0x5
-_0814A306:
- ldrb r0, [r2]
- strh r0, [r3]
- ldrb r0, [r2]
- cmp r0, 0xFF
- beq _0814A328
- movs r1, 0x1
- ldrsb r1, [r2, r1]
- lsls r0, 2
- adds r0, r4
- ldr r0, [r0]
- adds r1, r0
- strh r1, [r3, 0x2]
- ldrh r0, [r2, 0x4]
- strh r0, [r3, 0x6]
- ldrh r0, [r6, 0x4]
- adds r0, r1
- strh r0, [r6, 0x4]
-_0814A328:
- adds r2, 0x8
- adds r3, 0x8
- subs r7, 0x1
- cmp r7, 0
- bge _0814A306
- movs r7, 0x6
- movs r5, 0
- movs r0, 0x1E
- mov r8, r0
- adds r4, r6, 0
-_0814A33C:
- mov r0, r8
- add r0, r9
- adds r1, r5, 0
- bl sub_814A2B8
- adds r1, r0, 0
- strh r1, [r4, 0x1C]
- adds r4, 0x8
- adds r5, 0x1
- cmp r5, r7
- blt _0814A33C
- ldrb r1, [r6]
- adds r1, 0x1
- movs r2, 0
- strb r1, [r6]
- strb r2, [r6, 0x1]
- strb r2, [r6, 0x2]
- strb r2, [r6, 0x3]
- strh r2, [r6, 0xA]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0814A370: .4byte gUnknown_084170F4
- thumb_func_end sub_814A2EC
-
- thumb_func_start sub_814A374
-sub_814A374: @ 814A374
- push {lr}
- ldr r0, _0814A38C
- ldrb r0, [r0, 0x17]
- bl is_light_level_1_2_3_or_6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0814A390
- movs r0, 0
- b _0814A39E
- .align 2, 0
-_0814A38C: .4byte gMapHeader
-_0814A390:
- ldr r1, _0814A3A4
- ldr r0, _0814A3A8
- str r0, [r1]
- ldr r1, _0814A3AC
- ldr r0, _0814A3B0
- str r0, [r1]
- movs r0, 0x1
-_0814A39E:
- pop {r1}
- bx r1
- .align 2, 0
-_0814A3A4: .4byte gUnknown_0300485C
-_0814A3A8: .4byte sub_808AB90
-_0814A3AC: .4byte gUnknown_03005CE4
-_0814A3B0: .4byte hm_teleport_run_dp02scr
- thumb_func_end sub_814A374
-
- thumb_func_start hm_teleport_run_dp02scr
-hm_teleport_run_dp02scr: @ 814A3B4
- push {lr}
- bl new_game
- movs r0, 0x3F
- bl FieldEffectStart
- ldr r0, _0814A3CC
- ldr r1, _0814A3D0
- ldrb r1, [r1]
- str r1, [r0]
- pop {r0}
- bx r0
- .align 2, 0
-_0814A3CC: .4byte gUnknown_0202FF84
-_0814A3D0: .4byte gUnknown_03005CE0
- thumb_func_end hm_teleport_run_dp02scr
-
- thumb_func_start sub_814A3D4
-sub_814A3D4: @ 814A3D4
- push {lr}
- bl oei_task_add
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0814A3FC
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, _0814A400
- lsrs r0, r2, 16
- strh r0, [r1, 0x18]
- strh r2, [r1, 0x1A]
- movs r0, 0x1
- bl SetPlayerAvatarTransitionFlags
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0814A3FC: .4byte gTasks
-_0814A400: .4byte sub_814A404
- thumb_func_end sub_814A3D4
-
- thumb_func_start sub_814A404
-sub_814A404: @ 814A404
- push {lr}
- movs r0, 0x3F
- bl FieldEffectActiveListRemove
- bl sub_8087BA8
- pop {r0}
- bx r0
- thumb_func_end sub_814A404
-
- thumb_func_start unref_sub_814A414
-unref_sub_814A414: @ 814A414
- push {lr}
- sub sp, 0x8
- bl MenuZeroFillScreen
- movs r0, 0
- movs r1, 0
- movs r2, 0x10
- movs r3, 0x12
- bl MenuDrawTextWindow
- ldr r3, _0814A458
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x8
- bl PrintMenuItems
- movs r0, 0
- str r0, [sp]
- movs r0, 0xF
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x1
- movs r3, 0x8
- bl InitMenu
- ldr r1, _0814A45C
- ldr r0, _0814A460
- str r0, [r1]
- movs r0, 0
- add sp, 0x8
- pop {r1}
- bx r1
- .align 2, 0
-_0814A458: .4byte gUnknown_0842C29C
-_0814A45C: .4byte gUnknown_03004AE8
-_0814A460: .4byte sub_814A464
- thumb_func_end unref_sub_814A414
-
- thumb_func_start sub_814A464
-sub_814A464: @ 814A464
- push {lr}
- bl ProcessMenuInput
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- lsls r0, r2, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- bne _0814A480
- movs r0, 0
- b _0814A4B2
-_0814A480:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0814A4AC
- ldr r0, _0814A4A0
- strb r2, [r0]
- ldr r2, _0814A4A4
- ldr r0, _0814A4A8
- lsls r1, 3
- adds r0, 0x4
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2]
- movs r0, 0
- b _0814A4B2
- .align 2, 0
-_0814A4A0: .4byte gUnknown_02024D1E
-_0814A4A4: .4byte gUnknown_03004AE8
-_0814A4A8: .4byte gUnknown_0842C29C
-_0814A4AC:
- bl sub_8071C20
- movs r0, 0x1
-_0814A4B2:
- pop {r1}
- bx r1
- thumb_func_end sub_814A464
-
- thumb_func_start sub_814A4B8
-sub_814A4B8: @ 814A4B8
- push {r4,lr}
- ldr r2, _0814A4FC
- ldr r1, _0814A500
- adds r0, r2, r1
- movs r1, 0x3
- strb r1, [r0]
- ldr r3, _0814A504
- adds r0, r2, r3
- strb r1, [r0]
- ldr r3, _0814A508
- ldrb r0, [r3]
- adds r0, 0x1
- ldr r4, _0814A50C
- adds r1, r2, r4
- strh r0, [r1]
- ldrb r0, [r3]
- adds r0, 0x1
- ldr r3, _0814A510
- adds r1, r2, r3
- strh r0, [r1]
- subs r4, 0x4
- adds r0, r2, r4
- movs r1, 0x1
- strh r1, [r0]
- ldr r0, _0814A514
- adds r2, r0
- strh r1, [r2]
- bl sub_8071C20
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0814A4FC: .4byte gSaveBlock2
-_0814A500: .4byte 0x00000556
-_0814A504: .4byte 0x00000557
-_0814A508: .4byte gUnknown_02024D1E
-_0814A50C: .4byte 0x0000055c
-_0814A510: .4byte 0x0000055e
-_0814A514: .4byte 0x0000055a
- thumb_func_end sub_814A4B8
-
- thumb_func_start sub_814A518
-sub_814A518: @ 814A518
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- bl SkipExtCtrlCodes
- adds r0, r4, 0
- bl StringLength
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r5, 0xFC
- bne _0814A556
- cmp r1, 0x5
- bhi _0814A55A
- movs r3, 0xFC
- movs r2, 0x7
-_0814A53A:
- adds r0, r4, r1
- strb r3, [r0]
- strb r2, [r0, 0x1]
- adds r0, r1, 0x2
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x5
- bls _0814A53A
- b _0814A55A
-_0814A54C:
- adds r0, r4, r1
- strb r5, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
-_0814A556:
- cmp r1, 0x5
- bls _0814A54C
-_0814A55A:
- adds r1, r4, r1
- movs r0, 0xFF
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_814A518
-
- thumb_func_start sub_814A568
-sub_814A568: @ 814A568
- push {r4,lr}
- adds r4, r0, 0
- bl StringLength
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x5
- bhi _0814A582
- adds r0, r4, 0
- movs r1, 0x1
- bl ConvertInternationalString
- b _0814A588
-_0814A582:
- adds r0, r4, 0
- bl SkipExtCtrlCodes
-_0814A588:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_814A568
-
- thumb_func_start sub_814A590
-sub_814A590: @ 814A590
- ldr r0, _0814A5AC
- movs r1, 0x40
- strb r1, [r0]
- ldr r0, _0814A5B0
- strb r1, [r0]
- ldr r0, _0814A5B4
- strb r1, [r0]
- ldr r0, _0814A5B8
- movs r1, 0
- strb r1, [r0]
- ldr r0, _0814A5BC
- strb r1, [r0]
- bx lr
- .align 2, 0
-_0814A5AC: .4byte gUnknown_0203A3D0
-_0814A5B0: .4byte gUnknown_0203A3D1
-_0814A5B4: .4byte gUnknown_0203A3D2
-_0814A5B8: .4byte gUnknown_0203A3D3
-_0814A5BC: .4byte gUnknown_0203A3D4
- thumb_func_end sub_814A590
-
- thumb_func_start sub_814A5C0
-sub_814A5C0: @ 814A5C0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r4, [sp, 0x1C]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 16
- lsrs r7, r3, 16
- lsls r4, 24
- lsrs r4, 24
- mov r9, r4
- ldr r0, _0814A678
- ldrb r0, [r0]
- cmp r0, 0x40
- bne _0814A5F2
- ldr r0, _0814A67C
- ldrb r0, [r0]
- cmp r0, 0x40
- beq _0814A5F6
-_0814A5F2:
- bl sub_814A7FC
-_0814A5F6:
- movs r4, 0x1
- ldr r0, _0814A680
- cmp r6, r0
- bne _0814A61C
- ldr r1, _0814A684
- movs r0, 0xF
- ands r0, r5
- lsls r0, 1
- adds r0, r1
- strh r7, [r0]
- ldr r0, _0814A688
- bl LoadSpritePalette
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0814A61C
- ldr r6, _0814A68C
- movs r4, 0
-_0814A61C:
- movs r7, 0xF
- adds r0, r5, 0
- ands r0, r7
- lsls r0, 3
- ldr r1, _0814A690
- adds r0, r1
- bl LoadSpriteSheetDeferred
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r4, _0814A694
- adds r0, r4
- movs r1, 0
- movs r2, 0xA0
- mov r3, r8
- bl CreateSprite
- ldr r5, _0814A678
- strb r0, [r5]
- adds r4, 0x30
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0xA0
- mov r3, r8
- bl CreateSprite
- ldr r1, _0814A67C
- strb r0, [r1]
- ldrb r0, [r5]
- cmp r0, 0x40
- beq _0814A6AE
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814A698
- adds r4, r0, r1
- ldr r0, _0814A680
- cmp r6, r0
- bne _0814A69C
- ldrb r1, [r4, 0x5]
- adds r0, r7, 0
- ands r0, r1
- strb r0, [r4, 0x5]
- b _0814A6AE
- .align 2, 0
-_0814A678: .4byte gUnknown_0203A3D0
-_0814A67C: .4byte gUnknown_0203A3D1
-_0814A680: .4byte 0x0000ffff
-_0814A684: .4byte gUnknown_0203A360
-_0814A688: .4byte gUnknown_0842F240
-_0814A68C: .4byte 0x0000fff0
-_0814A690: .4byte gUnknown_0842F140
-_0814A694: .4byte gSpriteTemplate_842F250
-_0814A698: .4byte gSprites
-_0814A69C:
- adds r0, r6, 0
- bl IndexOfSpritePaletteTag
- lsls r0, 4
- ldrb r2, [r4, 0x5]
- adds r1, r7, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
-_0814A6AE:
- ldr r1, _0814A6D4
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814A72C
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814A6D8
- adds r4, r0, r1
- ldr r0, _0814A6DC
- cmp r6, r0
- bne _0814A6E0
- ldrb r1, [r4, 0x5]
- movs r0, 0xF
- ands r0, r1
- strb r0, [r4, 0x5]
- b _0814A6F2
- .align 2, 0
-_0814A6D4: .4byte gUnknown_0203A3D1
-_0814A6D8: .4byte gSprites
-_0814A6DC: .4byte 0x0000ffff
-_0814A6E0:
- adds r0, r6, 0
- bl IndexOfSpritePaletteTag
- lsls r0, 4
- ldrb r2, [r4, 0x5]
- movs r1, 0xF
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
-_0814A6F2:
- movs r3, 0x80
- lsls r3, 19
- ldrh r1, [r3]
- movs r0, 0xC0
- lsls r0, 7
- ands r0, r1
- cmp r0, 0
- bne _0814A70C
- ldr r0, _0814A744
- ldrb r1, [r0]
- movs r2, 0x1F
- orrs r1, r2
- strb r1, [r0]
-_0814A70C:
- ldr r1, _0814A748
- ldrh r0, [r3]
- lsrs r0, 15
- strb r0, [r1]
- ldr r1, _0814A74C
- ldr r2, _0814A750
- ldrb r0, [r2]
- strb r0, [r1]
- ldrh r0, [r3]
- movs r4, 0x80
- lsls r4, 8
- adds r1, r4, 0
- orrs r0, r1
- strh r0, [r3]
- movs r0, 0x10
- strb r0, [r2]
-_0814A72C:
- mov r0, r9
- bl sub_814A958
- ldr r0, _0814A754
- ldrb r0, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0814A744: .4byte REG_WINOUT
-_0814A748: .4byte gUnknown_0203A3D3
-_0814A74C: .4byte gUnknown_0203A3D4
-_0814A750: .4byte 0x0400004b
-_0814A754: .4byte gUnknown_0203A3D0
- thumb_func_end sub_814A5C0
-
- thumb_func_start sub_814A758
-sub_814A758: @ 814A758
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp]
- movs r1, 0
- movs r3, 0
- bl sub_814A5C0
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- cmp r4, 0x40
- beq _0814A79A
- ldr r0, _0814A7A4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0814A7A8
- adds r1, r0
- lsls r3, r5, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
-_0814A79A:
- adds r0, r4, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0814A7A4: .4byte gUnknown_0203A3D0
-_0814A7A8: .4byte gSprites
- thumb_func_end sub_814A758
-
- thumb_func_start unref_sub_814A7AC
-unref_sub_814A7AC: @ 814A7AC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r1, 16
- lsrs r4, r1, 16
- lsls r2, 24
- lsrs r7, r2, 24
- movs r3, 0
- movs r2, 0xF
- movs r1, 0
- ldr r6, _0814A7F8
- movs r5, 0xF
-_0814A7C6:
- lsls r0, r1, 1
- adds r0, r6
- ldrh r0, [r0]
- cmp r0, r4
- bne _0814A7DA
- lsrs r0, r1, 4
- lsls r0, 24
- lsrs r3, r0, 24
- adds r2, r1, 0
- ands r2, r5
-_0814A7DA:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xFF
- bls _0814A7C6
- mov r0, r12
- adds r1, r3, 0
- adds r3, r7, 0
- bl sub_814A758
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0814A7F8: .4byte gPlttBufferUnfaded
- thumb_func_end unref_sub_814A7AC
-
- thumb_func_start sub_814A7FC
-sub_814A7FC: @ 814A7FC
- push {r4,lr}
- ldr r4, _0814A860
- ldrb r0, [r4]
- cmp r0, 0x40
- beq _0814A820
- ldr r0, _0814A864
- bl LoadTilesForSpriteSheet
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814A868
- adds r0, r1
- bl DestroySpriteAndFreeResources
- movs r0, 0x40
- strb r0, [r4]
-_0814A820:
- ldr r4, _0814A86C
- ldrb r0, [r4]
- cmp r0, 0x40
- beq _0814A858
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814A868
- adds r0, r1
- bl DestroySpriteAndFreeResources
- movs r0, 0x40
- strb r0, [r4]
- ldr r0, _0814A870
- ldrb r0, [r0]
- cmp r0, 0
- bne _0814A850
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _0814A874
- ands r0, r1
- strh r0, [r2]
-_0814A850:
- ldr r0, _0814A878
- ldr r1, _0814A87C
- ldrb r1, [r1]
- strb r1, [r0]
-_0814A858:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814A860: .4byte gUnknown_0203A3D0
-_0814A864: .4byte gUnknown_0842F140
-_0814A868: .4byte gSprites
-_0814A86C: .4byte gUnknown_0203A3D1
-_0814A870: .4byte gUnknown_0203A3D3
-_0814A874: .4byte 0x00007fff
-_0814A878: .4byte 0x0400004b
-_0814A87C: .4byte gUnknown_0203A3D4
- thumb_func_end sub_814A7FC
-
- thumb_func_start sub_814A880
-sub_814A880: @ 814A880
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r7, r5, 0
- lsls r1, 24
- lsrs r4, r1, 24
- adds r6, r4, 0
- ldr r1, _0814A8F8
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814A8C0
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814A8FC
- 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]
- adds r0, r2, 0
- adds r0, 0x28
- movs r1, 0
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- strh r5, [r2, 0x20]
- strh r4, [r2, 0x22]
-_0814A8C0:
- ldr r1, _0814A900
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814A8F2
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814A8FC
- 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]
- adds r0, r2, 0
- adds r0, 0x28
- movs r1, 0
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- strh r7, [r2, 0x20]
- strh r6, [r2, 0x22]
-_0814A8F2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814A8F8: .4byte gUnknown_0203A3D0
-_0814A8FC: .4byte gSprites
-_0814A900: .4byte gUnknown_0203A3D1
- thumb_func_end sub_814A880
-
- thumb_func_start sub_814A904
-sub_814A904: @ 814A904
- push {lr}
- ldr r1, _0814A94C
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814A926
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814A950
- adds r0, r1
- adds r2, r0, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_0814A926:
- ldr r1, _0814A954
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814A946
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814A950
- adds r0, r1
- adds r2, r0, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
-_0814A946:
- pop {r0}
- bx r0
- .align 2, 0
-_0814A94C: .4byte gUnknown_0203A3D0
-_0814A950: .4byte gSprites
-_0814A954: .4byte gUnknown_0203A3D1
- thumb_func_end sub_814A904
-
- thumb_func_start sub_814A958
-sub_814A958: @ 814A958
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- ldr r4, _0814A9C4
- ldr r2, _0814A9C8
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0
- movs r1, 0
- movs r1, 0x2
- str r0, [r4]
- str r1, [r4, 0x4]
- strh r2, [r4]
- adds r4, 0x8
- movs r7, 0x1
- movs r2, 0x1
- ldr r1, [sp]
- subs r0, r1, 0x1
- lsls r0, 16
- lsrs r3, r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _0814AA3A
- ldr r0, _0814A9CC
- mov r12, r0
- mov r8, r1
- movs r1, 0x8
- negs r1, r1
- mov r10, r1
- ldr r5, _0814A9D0
- mov r9, r5
-_0814A99E:
- lsls r0, r3, 16
- asrs r3, r0, 16
- cmp r3, 0x1F
- ble _0814A9D4
- mov r6, r12
- ldr r0, [r6]
- ldr r1, [r6, 0x4]
- str r0, [r4]
- str r1, [r4, 0x4]
- strh r2, [r4]
- lsls r0, r2, 16
- movs r1, 0x80
- lsls r1, 14
- adds r0, r1
- lsrs r2, r0, 16
- ldr r3, [sp]
- lsls r5, r3, 16
- b _0814AA20
- .align 2, 0
-_0814A9C4: .4byte gSubspriteTable_203A380
-_0814A9C8: .4byte 0x0000ffff
-_0814A9CC: .4byte gUnknown_0842F780
-_0814A9D0: .4byte gUnknown_0842F788
-_0814A9D4:
- ldr r6, [sp]
- lsls r5, r6, 16
- mov r0, r8
- cmp r0, 0x27
- ble _0814AA0A
- cmp r3, 0x8
- ble _0814AA0A
- mov r6, r12
- ldr r0, [r6]
- ldr r1, [r6, 0x4]
- str r0, [r4]
- str r1, [r4, 0x4]
- lsls r1, r2, 16
- asrs r1, 16
- adds r2, r1, 0
- subs r2, 0x20
- adds r0, r3, 0
- mov r6, r10
- ands r0, r6
- adds r2, r0
- strh r2, [r4]
- movs r0, 0x18
- ands r0, r3
- adds r1, r0
- lsls r1, 16
- lsrs r2, r1, 16
- b _0814AA20
-_0814AA0A:
- mov r3, r9
- ldr r0, [r3]
- ldr r1, [r3, 0x4]
- str r0, [r4]
- str r1, [r4, 0x4]
- strh r2, [r4]
- lsls r0, r2, 16
- movs r6, 0x80
- lsls r6, 12
- adds r0, r6
- lsrs r2, r0, 16
-_0814AA20:
- adds r4, 0x8
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- asrs r1, r5, 16
- lsls r0, r2, 16
- asrs r0, 16
- subs r1, r0
- lsls r1, 16
- lsrs r3, r1, 16
- asrs r1, 16
- cmp r1, 0x7
- bgt _0814A99E
-_0814AA3A:
- ldr r5, _0814AAA8
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- str r0, [r4]
- str r1, [r4, 0x4]
- lsls r1, r2, 16
- asrs r1, 16
- subs r1, 0x7
- lsls r0, r3, 16
- asrs r0, 16
- adds r0, r1
- strh r0, [r4]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r6, _0814AAAC
- ldrb r0, [r6]
- cmp r0, 0x40
- beq _0814AA78
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814AAB0
- adds r2, r0, r1
- lsls r1, r7, 3
- ldr r0, _0814AAB4
- adds r1, r0
- adds r0, r2, 0
- bl SetSubspriteTables
-_0814AA78:
- ldr r1, _0814AAB8
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814AA98
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814AAB0
- adds r2, r0, r1
- lsls r1, r7, 3
- ldr r0, _0814AAB4
- adds r1, r0
- adds r0, r2, 0
- bl SetSubspriteTables
-_0814AA98:
- 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
-_0814AAA8: .4byte gUnknown_0842F790
-_0814AAAC: .4byte gUnknown_0203A3D0
-_0814AAB0: .4byte gSprites
-_0814AAB4: .4byte gSubspriteTables_842F5C0
-_0814AAB8: .4byte gUnknown_0203A3D1
- thumb_func_end sub_814A958
-
- thumb_func_start sub_814AABC
-sub_814AABC: @ 814AABC
- push {lr}
- adds r2, r0, 0
- ldr r1, _0814AAEC
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814AAD4
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0814AAF0
- adds r1, r0
- str r2, [r1, 0x1C]
-_0814AAD4:
- ldr r1, _0814AAF4
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814AAE8
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, _0814AAF0
- adds r1, r0
- str r2, [r1, 0x1C]
-_0814AAE8:
- pop {r0}
- bx r0
- .align 2, 0
-_0814AAEC: .4byte gUnknown_0203A3D0
-_0814AAF0: .4byte gSprites
-_0814AAF4: .4byte gUnknown_0203A3D1
- thumb_func_end sub_814AABC
-
- thumb_func_start sub_814AAF8
-sub_814AAF8: @ 814AAF8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r0, 16
- mov r12, r0
- ldr r1, _0814AB70
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814AB66
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814AB74
- adds r4, r0, r1
- ldr r0, [r4, 0x14]
- ldrh r1, [r0, 0x2]
- ldr r0, _0814AB78
- cmp r1, r0
- bne _0814AB66
- movs r2, 0
- movs r3, 0xF
- movs r1, 0
- ldrb r5, [r4, 0x5]
- ldr r0, _0814AB7C
- mov r8, r0
- ldr r7, _0814AB80
- movs r6, 0xF
-_0814AB32:
- lsls r0, r1, 1
- adds r0, r7
- ldrh r0, [r0]
- cmp r0, r12
- bne _0814AB46
- lsrs r0, r1, 4
- lsls r0, 24
- lsrs r2, r0, 24
- adds r3, r1, 0
- ands r3, r6
-_0814AB46:
- adds r0, r1, 0x1
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0xFF
- bls _0814AB32
- lsls r2, 4
- movs r1, 0xF
- adds r0, r1, 0
- ands r0, r5
- orrs r0, r2
- strb r0, [r4, 0x5]
- ands r3, r1
- lsls r0, r3, 3
- add r0, r8
- bl RequestSpriteSheetCopy
-_0814AB66:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0814AB70: .4byte gUnknown_0203A3D0
-_0814AB74: .4byte gSprites
-_0814AB78: .4byte 0x0000ffff
-_0814AB7C: .4byte gUnknown_0842F140
-_0814AB80: .4byte gPlttBufferUnfaded
- thumb_func_end sub_814AAF8
-
- thumb_func_start sub_814AB84
-sub_814AB84: @ 814AB84
- push {r4,r5,lr}
- ldr r5, _0814ABCC
- ldrb r0, [r5]
- cmp r0, 0x40
- beq _0814ABC4
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- ldr r0, _0814ABD0
- adds r4, r0
- adds r0, r4, 0
- bl FreeSpriteOamMatrix
- adds r0, r4, 0
- bl DestroySprite
- movs r0, 0x40
- strb r0, [r5]
- ldr r0, _0814ABD4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0814ABBC
- movs r2, 0x80
- lsls r2, 19
- ldrh r1, [r2]
- ldr r0, _0814ABD8
- ands r0, r1
- strh r0, [r2]
-_0814ABBC:
- ldr r0, _0814ABDC
- ldr r1, _0814ABE0
- ldrb r1, [r1]
- strb r1, [r0]
-_0814ABC4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0814ABCC: .4byte gUnknown_0203A3D1
-_0814ABD0: .4byte gSprites
-_0814ABD4: .4byte gUnknown_0203A3D3
-_0814ABD8: .4byte 0x00007fff
-_0814ABDC: .4byte 0x0400004b
-_0814ABE0: .4byte gUnknown_0203A3D4
- thumb_func_end sub_814AB84
-
- thumb_func_start unref_sub_814ABE4
-unref_sub_814ABE4: @ 814ABE4
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, _0814AC40
- lsls r0, r4, 2
- adds r0, r1
- ldr r0, [r0]
- ldr r1, _0814AC44
- movs r2, 0x28
- bl CpuSet
- ldr r1, _0814AC48
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814AC18
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814AC4C
- adds r2, r0, r1
- lsls r1, r4, 3
- ldr r0, _0814AC50
- adds r1, r0
- adds r0, r2, 0
- bl SetSubspriteTables
-_0814AC18:
- ldr r1, _0814AC54
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814AC38
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814AC4C
- adds r2, r0, r1
- lsls r1, r4, 3
- ldr r0, _0814AC50
- adds r1, r0
- adds r0, r2, 0
- bl SetSubspriteTables
-_0814AC38:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814AC40: .4byte gUnknown_0842F5BC
-_0814AC44: .4byte gSubspriteTable_203A380
-_0814AC48: .4byte gUnknown_0203A3D0
-_0814AC4C: .4byte gSprites
-_0814AC50: .4byte gUnknown_0842F758
-_0814AC54: .4byte gUnknown_0203A3D1
- thumb_func_end unref_sub_814ABE4
-
- thumb_func_start sub_814AC58
-sub_814AC58: @ 814AC58
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r4, [sp, 0x1C]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 16
- lsrs r5, r1, 16
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 16
- lsrs r6, r3, 16
- lsls r4, 24
- lsrs r4, 24
- mov r9, r4
- ldr r0, _0814ACF8
- ldrb r0, [r0]
- cmp r0, 0x40
- beq _0814AC86
- bl sub_814AD44
-_0814AC86:
- movs r4, 0x1
- ldr r0, _0814ACFC
- cmp r5, r0
- bne _0814ACAC
- ldr r1, _0814AD00
- movs r0, 0xF
- ands r0, r7
- lsls r0, 1
- adds r0, r1
- strh r6, [r0]
- ldr r0, _0814AD04
- bl LoadSpritePalette
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0814ACAC
- ldr r5, _0814AD08
- movs r4, 0
-_0814ACAC:
- movs r6, 0xF
- adds r0, r7, 0
- ands r0, r6
- lsls r0, 3
- ldr r1, _0814AD0C
- adds r0, r1
- bl LoadSpriteSheetDeferred
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 3
- ldr r1, _0814AD10
- adds r0, r1
- movs r1, 0
- movs r2, 0xA0
- mov r3, r8
- bl CreateSprite
- ldr r1, _0814ACF8
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0814AD2A
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814AD14
- adds r4, r0, r1
- ldr r0, _0814ACFC
- cmp r5, r0
- bne _0814AD18
- ldrb r1, [r4, 0x5]
- adds r0, r6, 0
- ands r0, r1
- strb r0, [r4, 0x5]
- b _0814AD2A
- .align 2, 0
-_0814ACF8: .4byte gUnknown_0203A3D2
-_0814ACFC: .4byte 0x0000ffff
-_0814AD00: .4byte gUnknown_0203A360
-_0814AD04: .4byte gUnknown_0842F248
-_0814AD08: .4byte 0x0000fff1
-_0814AD0C: .4byte gUnknown_0842F1C0
-_0814AD10: .4byte gSpriteTemplate_842F298
-_0814AD14: .4byte gSprites
-_0814AD18:
- adds r0, r5, 0
- bl IndexOfSpritePaletteTag
- lsls r0, 4
- ldrb r2, [r4, 0x5]
- adds r1, r6, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x5]
-_0814AD2A:
- mov r0, r9
- bl sub_814ADF4
- ldr r0, _0814AD40
- ldrb r0, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0814AD40: .4byte gUnknown_0203A3D2
- thumb_func_end sub_814AC58
-
- thumb_func_start sub_814AD44
-sub_814AD44: @ 814AD44
- push {r4,lr}
- ldr r4, _0814AD70
- ldrb r0, [r4]
- cmp r0, 0x40
- beq _0814AD68
- ldr r0, _0814AD74
- bl LoadTilesForSpriteSheet
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814AD78
- adds r0, r1
- bl DestroySpriteAndFreeResources
- movs r0, 0x40
- strb r0, [r4]
-_0814AD68:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0814AD70: .4byte gUnknown_0203A3D2
-_0814AD74: .4byte gUnknown_0842F1C0
-_0814AD78: .4byte gSprites
- thumb_func_end sub_814AD44
-
- thumb_func_start sub_814AD7C
-sub_814AD7C: @ 814AD7C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r1, _0814ADC0
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814ADB8
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814ADC4
- 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]
- adds r0, r2, 0
- adds r0, 0x28
- movs r1, 0
- strb r1, [r0]
- adds r0, 0x1
- strb r1, [r0]
- strh r5, [r2, 0x20]
- strh r4, [r2, 0x22]
-_0814ADB8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0814ADC0: .4byte gUnknown_0203A3D2
-_0814ADC4: .4byte gSprites
- thumb_func_end sub_814AD7C
-
- thumb_func_start sub_814ADC8
-sub_814ADC8: @ 814ADC8
- push {lr}
- ldr r1, _0814ADEC
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814ADE8
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814ADF0
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
-_0814ADE8:
- pop {r0}
- bx r0
- .align 2, 0
-_0814ADEC: .4byte gUnknown_0203A3D2
-_0814ADF0: .4byte gSprites
- thumb_func_end sub_814ADC8
-
- thumb_func_start sub_814ADF4
-sub_814ADF4: @ 814ADF4
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x12
- bls _0814AE00
- movs r2, 0
-_0814AE00:
- ldr r1, _0814AE24
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _0814AE1E
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0814AE28
- adds r0, r1
- lsls r1, r2, 3
- ldr r2, _0814AE2C
- adds r1, r2
- bl SetSubspriteTables
-_0814AE1E:
- pop {r0}
- bx r0
- .align 2, 0
-_0814AE24: .4byte gUnknown_0203A3D2
-_0814AE28: .4byte gSprites
-_0814AE2C: .4byte gUnknown_0842F6C0
- thumb_func_end sub_814ADF4
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom6.s b/asm/rom6.s
new file mode 100644
index 000000000..165c8b229
--- /dev/null
+++ b/asm/rom6.s
@@ -0,0 +1,129510 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start npc_before_player_of_type
+npc_before_player_of_type: @ 810B2D4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, _0810B314
+ adds r1, r4, 0x2
+ adds r0, r4, 0
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ bl PlayerGetZCoord
+ strb r0, [r4, 0x4]
+ ldrh r0, [r4]
+ ldrh r1, [r4, 0x2]
+ ldrb r2, [r4, 0x4]
+ bl GetFieldObjectIdByXYZ
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810B318
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ adds r2, r1, r2
+ ldrb r0, [r2, 0x5]
+ cmp r0, r5
+ bne _0810B320
+ ldr r1, _0810B31C
+ ldrb r0, [r2, 0x8]
+ strh r0, [r1]
+ movs r0, 0x1
+ b _0810B322
+ .align 2, 0
+_0810B314: .4byte gUnknown_0203923C
+_0810B318: .4byte gMapObjects
+_0810B31C: .4byte gUnknown_0202E8DE
+_0810B320:
+ movs r0, 0
+_0810B322:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end npc_before_player_of_type
+
+ thumb_func_start oei_task_add
+oei_task_add: @ 810B328
+ push {lr}
+ ldr r0, _0810B344
+ adds r1, r0, 0x2
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ ldr r0, _0810B348
+ movs r1, 0x8
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810B344: .4byte gUnknown_0203923C
+_0810B348: .4byte task08_080C9820
+ thumb_func_end oei_task_add
+
+ thumb_func_start task08_080C9820
+task08_080C9820: @ 810B34C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ bl ScriptContext2_Enable
+ ldr r1, _0810B3A0
+ movs r0, 0x1
+ strb r0, [r1, 0x6]
+ ldrb r1, [r1, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0810B3A4
+ adds r4, r0, r1
+ adds r0, r4, 0
+ bl FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810B382
+ adds r0, r4, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810B3CE
+_0810B382:
+ ldr r0, _0810B3A8
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x5
+ bne _0810B3B4
+ movs r0, 0x3B
+ bl FieldEffectStart
+ ldr r0, _0810B3AC
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0810B3B0
+ b _0810B3CC
+ .align 2, 0
+_0810B3A0: .4byte gPlayerAvatar
+_0810B3A4: .4byte gMapObjects
+_0810B3A8: .4byte gMapHeader
+_0810B3AC: .4byte gTasks
+_0810B3B0: .4byte sub_810B428
+_0810B3B4:
+ bl sub_8059BF4
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl FieldObjectSetSpecialAnim
+ ldr r0, _0810B3D4
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0810B3D8
+_0810B3CC:
+ str r0, [r1]
+_0810B3CE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810B3D4: .4byte gTasks
+_0810B3D8: .4byte sub_810B3DC
+ thumb_func_end task08_080C9820
+
+ thumb_func_start sub_810B3DC
+sub_810B3DC: @ 810B3DC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0810B418
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0810B41C
+ adds r0, r1
+ bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0810B410
+ movs r0, 0x3B
+ bl FieldEffectStart
+ ldr r0, _0810B420
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0810B424
+ str r0, [r1]
+_0810B410:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810B418: .4byte gPlayerAvatar
+_0810B41C: .4byte gMapObjects
+_0810B420: .4byte gTasks
+_0810B424: .4byte sub_810B428
+ thumb_func_end sub_810B3DC
+
+ thumb_func_start sub_810B428
+sub_810B428: @ 810B428
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0x6
+ bl FieldEffectActiveListContains
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _0810B4AC
+ bl player_get_direction_lower_nybble
+ ldr r6, _0810B4B4
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r6, 0x4]
+ cmp r0, 0x1
+ bne _0810B44E
+ str r4, [r6, 0x8]
+_0810B44E:
+ ldr r1, [r6, 0x4]
+ cmp r1, 0x2
+ bne _0810B458
+ movs r0, 0x1
+ str r0, [r6, 0x8]
+_0810B458:
+ cmp r1, 0x3
+ bne _0810B460
+ movs r0, 0x2
+ str r0, [r6, 0x8]
+_0810B460:
+ cmp r1, 0x4
+ bne _0810B468
+ movs r0, 0x3
+ str r0, [r6, 0x8]
+_0810B468:
+ ldr r5, _0810B4B8
+ ldrb r0, [r5, 0x5]
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _0810B4BC
+ adds r4, r0
+ bl GetPlayerAvatarGraphicsIdByCurrentState
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_805B980
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0810B4C0
+ adds r0, r1
+ ldrb r1, [r6, 0x8]
+ bl StartSpriteAnim
+ movs r0, 0x6
+ bl FieldEffectActiveListRemove
+ ldr r1, _0810B4C4
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810B4C8
+ str r1, [r0]
+_0810B4AC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810B4B4: .4byte gUnknown_0202FF84
+_0810B4B8: .4byte gPlayerAvatar
+_0810B4BC: .4byte gMapObjects
+_0810B4C0: .4byte gSprites
+_0810B4C4: .4byte gTasks
+_0810B4C8: .4byte sub_810B4CC
+ thumb_func_end sub_810B428
+
+ thumb_func_start sub_810B4CC
+sub_810B4CC: @ 810B4CC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0810B4FC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x18]
+ lsls r1, 16
+ ldrh r0, [r0, 0x1A]
+ orrs r1, r0
+ bl _call_via_r1
+ ldr r1, _0810B500
+ movs r0, 0
+ strb r0, [r1, 0x6]
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810B4FC: .4byte gTasks
+_0810B500: .4byte gPlayerAvatar
+ thumb_func_end sub_810B4CC
+
+ thumb_func_start hm_prepare_rocksmash
+hm_prepare_rocksmash: @ 810B504
+ push {lr}
+ movs r0, 0x56
+ bl npc_before_player_of_type
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0810B518
+ movs r0, 0
+ b _0810B526
+_0810B518:
+ ldr r1, _0810B52C
+ ldr r0, _0810B530
+ str r0, [r1]
+ ldr r1, _0810B534
+ ldr r0, _0810B538
+ str r0, [r1]
+ movs r0, 0x1
+_0810B526:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810B52C: .4byte gUnknown_0300485C
+_0810B530: .4byte sub_808AB90
+_0810B534: .4byte gUnknown_03005CE4
+_0810B538: .4byte sub_810B53C
+ thumb_func_end hm_prepare_rocksmash
+
+ thumb_func_start sub_810B53C
+sub_810B53C: @ 810B53C
+ push {lr}
+ ldr r1, _0810B550
+ ldr r0, _0810B554
+ ldrb r0, [r0]
+ str r0, [r1]
+ ldr r0, _0810B558
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810B550: .4byte gUnknown_0202FF84
+_0810B554: .4byte gUnknown_03005CE0
+_0810B558: .4byte UseRockSmashScript
+ thumb_func_end sub_810B53C
+
+ thumb_func_start oei_rocksmash
+oei_rocksmash: @ 810B55C
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810B584
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _0810B588
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0x13
+ bl sav12_xor_increment
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810B584: .4byte gTasks
+_0810B588: .4byte sub_810B58C
+ thumb_func_end oei_rocksmash
+
+ thumb_func_start sub_810B58C
+sub_810B58C: @ 810B58C
+ push {lr}
+ movs r0, 0x83
+ bl PlaySE
+ movs r0, 0x25
+ bl FieldEffectActiveListRemove
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810B58C
+
+ thumb_func_start sub_810B5A4
+sub_810B5A4: @ 810B5A4
+ push {lr}
+ bl sub_80CA1C8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0810B5B6
+ movs r0, 0
+ b _0810B5C4
+_0810B5B6:
+ ldr r1, _0810B5C8
+ ldr r0, _0810B5CC
+ str r0, [r1]
+ ldr r1, _0810B5D0
+ ldr r0, _0810B5D4
+ str r0, [r1]
+ movs r0, 0x1
+_0810B5C4:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810B5C8: .4byte gUnknown_0300485C
+_0810B5CC: .4byte sub_808AB90
+_0810B5D0: .4byte gUnknown_03005CE4
+_0810B5D4: .4byte sub_810B5D8
+ thumb_func_end sub_810B5A4
+
+ thumb_func_start sub_810B5D8
+sub_810B5D8: @ 810B5D8
+ push {lr}
+ bl sub_8053014
+ movs r0, 0x26
+ bl FieldEffectStart
+ ldr r0, _0810B5F0
+ ldr r1, _0810B5F4
+ ldrb r1, [r1]
+ str r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810B5F0: .4byte gUnknown_0202FF84
+_0810B5F4: .4byte gUnknown_03005CE0
+ thumb_func_end sub_810B5D8
+
+ thumb_func_start sub_810B5F8
+sub_810B5F8: @ 810B5F8
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810B62C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _0810B630
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ bl sub_81473B8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810B624
+ movs r0, 0x1
+ bl SetPlayerAvatarTransitionFlags
+_0810B624:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810B62C: .4byte gTasks
+_0810B630: .4byte sub_810B634
+ thumb_func_end sub_810B5F8
+
+ thumb_func_start sub_810B634
+sub_810B634: @ 810B634
+ push {r4,lr}
+ movs r0, 0x26
+ bl FieldEffectActiveListRemove
+ bl sub_81473B8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _0810B64E
+ bl sub_8147408
+ b _0810B666
+_0810B64E:
+ ldr r0, _0810B66C
+ movs r1, 0x8
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810B670
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+_0810B666:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810B66C: .4byte task08_080A1C44
+_0810B670: .4byte gTasks
+ thumb_func_end sub_810B634
+
+ thumb_func_start sub_810B674
+sub_810B674: @ 810B674
+ push {lr}
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl RunTasks
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810B674
+
+ thumb_func_start sub_810B68C
+sub_810B68C: @ 810B68C
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ ldr r1, _0810B6B0
+ ldr r2, _0810B6B4
+ ldr r0, _0810B6B8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _0810B6BC
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810B6B0: .4byte gBG2TilemapBuffer
+_0810B6B4: .4byte 0x06007800
+_0810B6B8: .4byte 0x040000d4
+_0810B6BC: .4byte 0x80000400
+ thumb_func_end sub_810B68C
+
+ thumb_func_start sub_810B6C0
+sub_810B6C0: @ 810B6C0
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _0810B6DC
+ ldr r1, _0810B6E0
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x12
+ bls _0810B6D2
+ b _0810B960
+_0810B6D2:
+ lsls r0, 2
+ ldr r1, _0810B6E4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0810B6DC: .4byte gMain
+_0810B6E0: .4byte 0x0000043c
+_0810B6E4: .4byte _0810B6E8
+ .align 2, 0
+_0810B6E8:
+ .4byte _0810B734
+ .4byte _0810B764
+ .4byte _0810B76A
+ .4byte _0810B78C
+ .4byte _0810B792
+ .4byte _0810B7B4
+ .4byte _0810B7C0
+ .4byte _0810B7DC
+ .4byte _0810B7E8
+ .4byte _0810B804
+ .4byte _0810B810
+ .4byte _0810B830
+ .4byte _0810B84C
+ .4byte _0810B86A
+ .4byte _0810B894
+ .4byte _0810B89E
+ .4byte _0810B8C4
+ .4byte _0810B914
+ .4byte _0810B934
+_0810B734:
+ bl sub_80F9438
+ bl sub_80F9368
+ ldr r1, _0810B754
+ ldr r2, _0810B758
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x44
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _0810B75C
+ ldr r0, _0810B760
+ adds r1, r0
+ b _0810B922
+ .align 2, 0
+_0810B754: .4byte REG_BG2CNT
+_0810B758: .4byte 0x00000f0a
+_0810B75C: .4byte gMain
+_0810B760: .4byte 0x0000043c
+_0810B764:
+ bl remove_some_task
+ b _0810B91C
+_0810B76A:
+ bl ResetPaletteFade
+ ldr r2, _0810B780
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r1, _0810B784
+ ldr r0, _0810B788
+ adds r1, r0
+ b _0810B922
+ .align 2, 0
+_0810B780: .4byte gPaletteFade
+_0810B784: .4byte gMain
+_0810B788: .4byte 0x0000043c
+_0810B78C:
+ bl ResetSpriteData
+ b _0810B91C
+_0810B792:
+ ldr r0, _0810B7A8
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _0810B79E
+ bl ResetTasks
+_0810B79E:
+ ldr r1, _0810B7AC
+ ldr r0, _0810B7B0
+ adds r1, r0
+ b _0810B922
+ .align 2, 0
+_0810B7A8: .4byte gUnknown_02039244
+_0810B7AC: .4byte gMain
+_0810B7B0: .4byte 0x0000043c
+_0810B7B4:
+ ldr r0, _0810B7BC
+ bl SetUpWindowConfig
+ b _0810B91C
+ .align 2, 0
+_0810B7BC: .4byte gWindowConfig_81E6E34
+_0810B7C0:
+ ldr r0, _0810B7D0
+ bl SetUpWindowConfig
+ ldr r1, _0810B7D4
+ ldr r0, _0810B7D8
+ adds r1, r0
+ b _0810B922
+ .align 2, 0
+_0810B7D0: .4byte gWindowConfig_81E6E50
+_0810B7D4: .4byte gMain
+_0810B7D8: .4byte 0x0000043c
+_0810B7DC:
+ ldr r0, _0810B7E4
+ bl MultistepInitMenuWindowBegin
+ b _0810B91C
+ .align 2, 0
+_0810B7E4: .4byte gWindowConfig_81E6E34
+_0810B7E8:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ bne _0810B7F2
+ b _0810B960
+_0810B7F2:
+ ldr r1, _0810B7FC
+ ldr r0, _0810B800
+ adds r1, r0
+ b _0810B922
+ .align 2, 0
+_0810B7FC: .4byte gMain
+_0810B800: .4byte 0x0000043c
+_0810B804:
+ ldr r0, _0810B80C
+ bl MultistepInitMenuWindowBegin
+ b _0810B91C
+ .align 2, 0
+_0810B80C: .4byte gWindowConfig_81E6E50
+_0810B810:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ bne _0810B81A
+ b _0810B960
+_0810B81A:
+ ldr r0, _0810B828
+ ldr r1, _0810B82C
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ b _0810B91C
+ .align 2, 0
+_0810B828: .4byte 0x02000000
+_0810B82C: .4byte 0x0001ffff
+_0810B830:
+ bl sub_810B998
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810B83C
+ b _0810B960
+_0810B83C:
+ ldr r1, _0810B844
+ ldr r0, _0810B848
+ adds r1, r0
+ b _0810B922
+ .align 2, 0
+_0810B844: .4byte gMain
+_0810B848: .4byte 0x0000043c
+_0810B84C:
+ bl sub_80F944C
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ movs r0, 0
+ movs r1, 0xB0
+ movs r2, 0x8
+ bl sub_80F953C
+ movs r0, 0x1
+ movs r1, 0xB0
+ movs r2, 0x98
+ bl sub_80F953C
+ b _0810B91C
+_0810B86A:
+ movs r0, 0x38
+ movs r1, 0x40
+ movs r2, 0
+ bl sub_810BA50
+ ldr r1, _0810B884
+ ldr r2, _0810B888
+ adds r1, r2
+ strb r0, [r1]
+ ldr r1, _0810B88C
+ ldr r0, _0810B890
+ adds r1, r0
+ b _0810B922
+ .align 2, 0
+_0810B884: .4byte 0x02000000
+_0810B888: .4byte 0x0001fffe
+_0810B88C: .4byte gMain
+_0810B890: .4byte 0x0000043c
+_0810B894:
+ bl sub_810BC98
+ bl sub_810BD08
+ b _0810B91C
+_0810B89E:
+ bl sub_810BB0C
+ bl sub_810BB30
+ ldr r0, _0810B8B8
+ ldrb r0, [r0, 0x1]
+ bl sub_810BC84
+ ldr r1, _0810B8BC
+ ldr r0, _0810B8C0
+ adds r1, r0
+ b _0810B922
+ .align 2, 0
+_0810B8B8: .4byte gUnknown_02039248
+_0810B8BC: .4byte gMain
+_0810B8C0: .4byte 0x0000043c
+_0810B8C4:
+ ldr r3, _0810B8FC
+ ldrh r2, [r3]
+ movs r0, 0
+ strh r0, [r3]
+ ldr r4, _0810B900
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _0810B904
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _0810B908
+ bl SetVBlankCallback
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xBA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _0810B90C
+ ldr r0, _0810B910
+ adds r1, r0
+ b _0810B922
+ .align 2, 0
+_0810B8FC: .4byte 0x04000208
+_0810B900: .4byte 0x04000200
+_0810B904: .4byte REG_DISPSTAT
+_0810B908: .4byte sub_810B68C
+_0810B90C: .4byte gMain
+_0810B910: .4byte 0x0000043c
+_0810B914:
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _0810B960
+_0810B91C:
+ ldr r1, _0810B92C
+ ldr r2, _0810B930
+ adds r1, r2
+_0810B922:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0810B960
+ .align 2, 0
+_0810B92C: .4byte gMain
+_0810B930: .4byte 0x0000043c
+_0810B934:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r2, _0810B958
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+ ldr r0, _0810B95C
+ bl SetMainCallback2
+ movs r0, 0x1
+ b _0810B962
+ .align 2, 0
+_0810B958: .4byte gPaletteFade
+_0810B95C: .4byte sub_810B674
+_0810B960:
+ movs r0, 0
+_0810B962:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810B6C0
+
+ thumb_func_start sub_810B96C
+sub_810B96C: @ 810B96C
+ push {lr}
+_0810B96E:
+ bl sub_810B6C0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0810B988
+ ldr r0, _0810B984
+ movs r1, 0
+ bl CreateTask
+ b _0810B994
+ .align 2, 0
+_0810B984: .4byte sub_810BF7C
+_0810B988:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0810B96E
+_0810B994:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810B96C
+
+ thumb_func_start sub_810B998
+sub_810B998: @ 810B998
+ push {lr}
+ ldr r0, _0810B9B0
+ ldr r1, _0810B9B4
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bhi _0810BA48
+ lsls r0, 2
+ ldr r1, _0810B9B8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0810B9B0: .4byte 0x02000000
+_0810B9B4: .4byte 0x0001ffff
+_0810B9B8: .4byte _0810B9BC
+ .align 2, 0
+_0810B9BC:
+ .4byte _0810B9D0
+ .4byte _0810B9E4
+ .4byte _0810B9F8
+ .4byte _0810BA08
+ .4byte _0810BA28
+_0810B9D0:
+ ldr r0, _0810B9DC
+ ldr r1, _0810B9E0
+ bl LZDecompressVram
+ b _0810BA0E
+ .align 2, 0
+_0810B9DC: .4byte gMenuPokeblock_Gfx
+_0810B9E0: .4byte 0x06008000
+_0810B9E4:
+ ldr r0, _0810B9F0
+ ldr r1, _0810B9F4
+ bl sub_800D238
+ b _0810BA0E
+ .align 2, 0
+_0810B9F0: .4byte gMenuPokeblock_Tilemap
+_0810B9F4: .4byte gBG2TilemapBuffer
+_0810B9F8:
+ ldr r0, _0810BA04
+ movs r1, 0
+ movs r2, 0xC0
+ bl LoadCompressedPalette
+ b _0810BA0E
+ .align 2, 0
+_0810BA04: .4byte gMenuPokeblock_Pal
+_0810BA08:
+ ldr r0, _0810BA1C
+ bl LoadCompressedObjectPic
+_0810BA0E:
+ ldr r1, _0810BA20
+ ldr r0, _0810BA24
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0810BA48
+ .align 2, 0
+_0810BA1C: .4byte gUnknown_083F7F74
+_0810BA20: .4byte 0x02000000
+_0810BA24: .4byte 0x0001ffff
+_0810BA28:
+ ldr r0, _0810BA3C
+ bl LoadCompressedObjectPalette
+ ldr r0, _0810BA40
+ ldr r1, _0810BA44
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x1
+ b _0810BA4A
+ .align 2, 0
+_0810BA3C: .4byte gUnknown_083F7F7C
+_0810BA40: .4byte 0x02000000
+_0810BA44: .4byte 0x0001ffff
+_0810BA48:
+ movs r0, 0
+_0810BA4A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810B998
+
+ thumb_func_start sub_810BA50
+sub_810BA50: @ 810BA50
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r3, r2, 0
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, _0810BA78
+ lsls r4, 16
+ asrs r4, 16
+ lsls r5, 16
+ asrs r5, 16
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810BA78: .4byte gSpriteTemplate_83F7F84
+ thumb_func_end sub_810BA50
+
+ thumb_func_start sub_810BA7C
+sub_810BA7C: @ 810BA7C
+ push {lr}
+ ldr r1, _0810BA98
+ strb r0, [r1]
+ ldrb r2, [r1]
+ cmp r2, 0x2
+ beq _0810BAA8
+ cmp r2, 0x3
+ beq _0810BAC0
+ ldr r1, _0810BA9C
+ ldr r0, _0810BAA0
+ str r0, [r1]
+ ldr r1, _0810BAA4
+ movs r0, 0x3
+ b _0810BACA
+ .align 2, 0
+_0810BA98: .4byte gUnknown_02039244
+_0810BA9C: .4byte gUnknown_03000758
+_0810BAA0: .4byte gUnknown_083F7F1C
+_0810BAA4: .4byte gUnknown_0203924C
+_0810BAA8:
+ ldr r0, _0810BAB4
+ ldr r1, _0810BAB8
+ str r1, [r0]
+ ldr r0, _0810BABC
+ strb r2, [r0]
+ b _0810BACC
+ .align 2, 0
+_0810BAB4: .4byte gUnknown_03000758
+_0810BAB8: .4byte gUnknown_083F7F1F
+_0810BABC: .4byte gUnknown_0203924C
+_0810BAC0:
+ ldr r1, _0810BAD0
+ ldr r0, _0810BAD4
+ str r0, [r1]
+ ldr r1, _0810BAD8
+ movs r0, 0x2
+_0810BACA:
+ strb r0, [r1]
+_0810BACC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BAD0: .4byte gUnknown_03000758
+_0810BAD4: .4byte gUnknown_083F7F21
+_0810BAD8: .4byte gUnknown_0203924C
+ thumb_func_end sub_810BA7C
+
+ thumb_func_start sub_810BADC
+sub_810BADC: @ 810BADC
+ push {lr}
+ movs r0, 0x2
+ bl sub_810BA7C
+ ldr r0, _0810BAF0
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BAF0: .4byte sub_810B96C
+ thumb_func_end sub_810BADC
+
+ thumb_func_start sub_810BAF4
+sub_810BAF4: @ 810BAF4
+ push {lr}
+ movs r0, 0x3
+ bl sub_810BA7C
+ ldr r0, _0810BB08
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BB08: .4byte sub_810B96C
+ thumb_func_end sub_810BAF4
+
+ thumb_func_start sub_810BB0C
+sub_810BB0C: @ 810BB0C
+ push {lr}
+ ldr r0, _0810BB28
+ bl BasicInitMenuWindow
+ ldr r0, _0810BB2C
+ bl itemid_get_item
+ movs r1, 0x2
+ movs r2, 0x1
+ movs r3, 0x48
+ bl sub_8072BD8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BB28: .4byte gWindowConfig_81E6E34
+_0810BB2C: .4byte 0x00000111
+ thumb_func_end sub_810BB0C
+
+ thumb_func_start sub_810BB30
+sub_810BB30: @ 810BB30
+ push {lr}
+ ldr r0, _0810BB70
+ bl BasicInitMenuWindow
+ ldr r0, _0810BB74
+ movs r1, 0x2
+ movs r2, 0xD
+ bl MenuPrint
+ ldr r0, _0810BB78
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r0, _0810BB7C
+ movs r1, 0x2
+ movs r2, 0x11
+ bl MenuPrint
+ ldr r0, _0810BB80
+ movs r1, 0x8
+ movs r2, 0xD
+ bl MenuPrint
+ ldr r0, _0810BB84
+ movs r1, 0x8
+ movs r2, 0xF
+ bl MenuPrint
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BB70: .4byte gWindowConfig_81E6E34
+_0810BB74: .4byte gContestStatsText_Spicy
+_0810BB78: .4byte gContestStatsText_Dry
+_0810BB7C: .4byte gContestStatsText_Sweet
+_0810BB80: .4byte gContestStatsText_Bitter
+_0810BB84: .4byte gContestStatsText_Sour
+ thumb_func_end sub_810BB30
+
+ thumb_func_start sub_810BB88
+sub_810BB88: @ 810BB88
+ 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
+ ldr r0, _0810BBF4
+ bl BasicInitMenuWindow
+ mov r6, r8
+ adds r0, r6, 0
+ adds r0, 0x8
+ cmp r6, r0
+ bgt _0810BC6C
+ ldr r0, _0810BBF8
+ mov r9, r0
+ ldr r1, _0810BBFC
+ mov r10, r1
+_0810BBB0:
+ mov r1, r8
+ subs r0, r6, r1
+ lsls r0, 25
+ lsrs r7, r0, 24
+ ldr r0, _0810BC00
+ ldrb r0, [r0, 0x2]
+ cmp r6, r0
+ bne _0810BC08
+ mov r0, r9
+ ldr r1, _0810BC04
+ movs r2, 0x78
+ movs r3, 0
+ bl sub_8072C74
+ movs r2, 0x1
+ orrs r2, r7
+ mov r0, r9
+ movs r1, 0xF
+ bl MenuPrint
+ mov r0, r8
+ adds r0, 0x8
+ cmp r6, r0
+ beq _0810BC6C
+ adds r1, r7, 0x3
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0xF
+ movs r2, 0x1D
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+ b _0810BC6C
+ .align 2, 0
+_0810BBF4: .4byte gWindowConfig_81E6E34
+_0810BBF8: .4byte gStringVar1
+_0810BBFC: .4byte gSaveBlock1
+_0810BC00: .4byte gUnknown_02039248
+_0810BC04: .4byte gContestStatsText_StowCase
+_0810BC08:
+ lsls r5, r6, 3
+ mov r1, r10
+ adds r0, r5, r1
+ movs r1, 0xFF
+ lsls r1, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ ldr r1, _0810BC7C
+ adds r0, r1
+ ldr r1, [r0]
+ mov r0, r9
+ movs r2, 0x5E
+ movs r3, 0
+ bl sub_8072C74
+ adds r4, r0, 0
+ movs r0, 0xFC
+ strb r0, [r4]
+ movs r0, 0x14
+ strb r0, [r4, 0x1]
+ movs r0, 0x6
+ strb r0, [r4, 0x2]
+ adds r4, 0x3
+ ldr r0, _0810BC80
+ adds r5, r0
+ adds r0, r5, 0
+ bl sub_810C9B0
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ movs r2, 0x1
+ orrs r2, r7
+ mov r0, r9
+ movs r1, 0xF
+ bl MenuPrint
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r0, r8
+ adds r0, 0x8
+ cmp r6, r0
+ ble _0810BBB0
+_0810BC6C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BC7C: .4byte gUnknown_083F7EB8
+_0810BC80: .4byte gSaveBlock1 + 0x7F8
+ thumb_func_end sub_810BB88
+
+ thumb_func_start sub_810BC84
+sub_810BC84: @ 810BC84
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_810BB88
+ movs r0, 0
+ bl sub_810BDAC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810BC84
+
+ thumb_func_start sub_810BC98
+sub_810BC98: @ 810BC98
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r2, 0
+ ldr r0, _0810BD00
+ mov r9, r0
+_0810BCA6:
+ adds r1, r2, 0x1
+ lsls r0, r1, 16
+ lsrs r5, r0, 16
+ mov r8, r1
+ cmp r5, 0x27
+ bhi _0810BCE8
+ lsls r1, r2, 3
+ mov r2, r9
+ adds r0, r1, r2
+ movs r2, 0xFF
+ lsls r2, 3
+ adds r7, r0, r2
+ ldr r0, _0810BD04
+ mov r12, r0
+ adds r6, r1, r0
+_0810BCC4:
+ ldrb r0, [r7]
+ cmp r0, 0
+ bne _0810BCDE
+ ldr r3, [r6]
+ ldr r4, [r6, 0x4]
+ lsls r2, r5, 3
+ add r2, r12
+ ldr r0, [r2]
+ ldr r1, [r2, 0x4]
+ str r0, [r6]
+ str r1, [r6, 0x4]
+ str r3, [r2]
+ str r4, [r2, 0x4]
+_0810BCDE:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x27
+ bls _0810BCC4
+_0810BCE8:
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x26
+ bls _0810BCA6
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BD00: .4byte gSaveBlock1
+_0810BD04: .4byte gSaveBlock1 + 0x7F8
+ thumb_func_end sub_810BC98
+
+ thumb_func_start sub_810BD08
+sub_810BD08: @ 810BD08
+ push {r4,r5,lr}
+ ldr r1, _0810BD5C
+ movs r0, 0
+ strb r0, [r1, 0x2]
+ movs r2, 0
+ ldr r5, _0810BD60
+ movs r4, 0xFF
+ lsls r4, 3
+ adds r3, r1, 0
+_0810BD1A:
+ lsls r0, r2, 3
+ adds r0, r5
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0810BD2C
+ ldrb r0, [r3, 0x2]
+ adds r0, 0x1
+ strb r0, [r3, 0x2]
+_0810BD2C:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x27
+ bls _0810BD1A
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0x7
+ bls _0810BD3E
+ movs r0, 0x8
+_0810BD3E:
+ strb r0, [r1, 0x3]
+ ldrb r2, [r1, 0x1]
+ adds r0, r2, 0
+ adds r0, 0x8
+ ldrb r3, [r1, 0x2]
+ cmp r0, r3
+ ble _0810BD54
+ cmp r2, 0
+ beq _0810BD54
+ subs r0, r2, 0x1
+ strb r0, [r1, 0x1]
+_0810BD54:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BD5C: .4byte gUnknown_02039248
+_0810BD60: .4byte gSaveBlock1
+ thumb_func_end sub_810BD08
+
+ thumb_func_start sub_810BD64
+sub_810BD64: @ 810BD64
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ ldr r5, _0810BDA4
+ ldr r4, _0810BDA8
+_0810BD70:
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, 0x1
+ lsls r0, 5
+ adds r1, r2, 0
+ adds r1, 0xF
+ adds r0, r1
+ lsls r0, 1
+ adds r0, r4
+ strh r3, [r0]
+ ldrb r0, [r5]
+ lsls r0, 6
+ adds r0, 0x40
+ adds r0, r1
+ lsls r0, 1
+ adds r0, r4
+ strh r3, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xD
+ bls _0810BD70
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BDA4: .4byte gUnknown_02039248
+_0810BDA8: .4byte gBG2TilemapBuffer
+ thumb_func_end sub_810BD64
+
+ thumb_func_start sub_810BDAC
+sub_810BDAC: @ 810BDAC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810BDCC
+ ldr r0, _0810BDC4
+ ldr r1, _0810BDC8
+ bl sub_810BD64
+ b _0810BDD4
+ .align 2, 0
+_0810BDC4: .4byte 0x00001005
+_0810BDC8: .4byte 0x00001014
+_0810BDCC:
+ ldr r0, _0810BDE8
+ ldr r1, _0810BDEC
+ bl sub_810BD64
+_0810BDD4:
+ ldr r0, _0810BDF0
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0
+ beq _0810BDF4
+ movs r0, 0
+ movs r1, 0
+ bl sub_80F979C
+ b _0810BDFC
+ .align 2, 0
+_0810BDE8: .4byte 0x00002005
+_0810BDEC: .4byte 0x00002014
+_0810BDF0: .4byte gUnknown_02039248
+_0810BDF4:
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_80F979C
+_0810BDFC:
+ ldr r2, _0810BE1C
+ ldrb r0, [r2, 0x2]
+ ldrb r1, [r2, 0x3]
+ cmp r0, r1
+ bls _0810BE20
+ ldrb r0, [r2, 0x1]
+ ldrb r1, [r2, 0x3]
+ adds r0, r1
+ ldrb r2, [r2, 0x2]
+ cmp r0, r2
+ beq _0810BE20
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_80F979C
+ b _0810BE28
+ .align 2, 0
+_0810BE1C: .4byte gUnknown_02039248
+_0810BE20:
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_80F979C
+_0810BE28:
+ movs r6, 0
+ ldr r7, _0810BE94
+ movs r0, 0xF
+ mov r8, r0
+_0810BE30:
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl __umodsi3
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 18
+ ldr r1, _0810BE98
+ adds r4, r1
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ adds r5, r4, r1
+ ldr r1, _0810BE9C
+ ldrb r2, [r1]
+ ldrb r0, [r1, 0x1]
+ adds r0, r2, r0
+ ldrb r1, [r1, 0x2]
+ cmp r0, r1
+ beq _0810BEB8
+ lsls r0, 3
+ ldr r1, _0810BEA0
+ adds r0, r1
+ adds r4, r6, 0x1
+ lsls r1, r4, 24
+ lsrs r1, 24
+ bl sub_810CA9C
+ lsls r0, 16
+ cmp r0, 0
+ ble _0810BEA4
+ lsls r1, r5, 1
+ adds r1, r7
+ lsls r2, r6, 12
+ adds r0, r2, 0
+ adds r0, 0x17
+ strh r0, [r1]
+ adds r0, r5, 0
+ adds r0, 0x20
+ lsls r0, 1
+ adds r0, r7
+ adds r2, 0x18
+ strh r2, [r0]
+ b _0810BECC
+ .align 2, 0
+_0810BE94: .4byte gBG2TilemapBuffer
+_0810BE98: .4byte 0x000001a1
+_0810BE9C: .4byte gUnknown_02039248
+_0810BEA0: .4byte gSaveBlock1 + 0x7F8
+_0810BEA4:
+ lsls r0, r5, 1
+ adds r0, r7
+ mov r1, r8
+ strh r1, [r0]
+ adds r0, r5, 0
+ adds r0, 0x20
+ lsls r0, 1
+ adds r0, r7
+ strh r1, [r0]
+ b _0810BECC
+_0810BEB8:
+ lsls r0, r5, 1
+ adds r0, r7
+ mov r1, r8
+ strh r1, [r0]
+ adds r0, r5, 0
+ adds r0, 0x20
+ lsls r0, 1
+ adds r0, r7
+ strh r1, [r0]
+ adds r4, r6, 0x1
+_0810BECC:
+ lsls r0, r4, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x4
+ bls _0810BE30
+ ldr r0, _0810BF10
+ bl BasicInitMenuWindow
+ ldr r0, _0810BF14
+ ldrb r2, [r0]
+ ldrb r1, [r0, 0x1]
+ adds r2, r1
+ ldrb r0, [r0, 0x2]
+ cmp r2, r0
+ beq _0810BF20
+ ldr r4, _0810BF18
+ lsls r0, r2, 3
+ ldr r1, _0810BF1C
+ adds r0, r1
+ bl sub_810C9E8
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ movs r2, 0x10
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0x11
+ bl MenuPrint
+ b _0810BF2C
+ .align 2, 0
+_0810BF10: .4byte gWindowConfig_81E6E34
+_0810BF14: .4byte gUnknown_02039248
+_0810BF18: .4byte gStringVar1
+_0810BF1C: .4byte gSaveBlock1 + 0x7F8
+_0810BF20:
+ movs r0, 0xB
+ movs r1, 0x11
+ movs r2, 0xC
+ movs r3, 0x12
+ bl MenuZeroFillWindowRect
+_0810BF2C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810BDAC
+
+ thumb_func_start sub_810BF38
+sub_810BF38: @ 810BF38
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _0810BF6C
+ ldr r0, _0810BF70
+ ldr r1, _0810BF74
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _0810BF78
+ str r1, [r0]
+ adds r0, r4, 0
+ bl sub_810BDAC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810BF6C: .4byte gSprites
+_0810BF70: .4byte 0x02000000
+_0810BF74: .4byte 0x0001fffe
+_0810BF78: .4byte sub_810C8D4
+ thumb_func_end sub_810BF38
+
+ thumb_func_start sub_810BF7C
+sub_810BF7C: @ 810BF7C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, r5, 0
+ ldr r0, _0810BFB8
+ ldrb r1, [r0, 0x7]
+ movs r3, 0x80
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0810BF94
+ b _0810C0B8
+_0810BF94:
+ ldr r2, _0810BFBC
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0810BFCE
+ ldr r4, _0810BFC0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0810BFC4
+ movs r0, 0x5
+ movs r1, 0x14
+ bl sub_810BD64
+ ldrb r0, [r4]
+ subs r0, 0x1
+ strb r0, [r4]
+ b _0810C00A
+ .align 2, 0
+_0810BFB8: .4byte gPaletteFade
+_0810BFBC: .4byte gMain
+_0810BFC0: .4byte gUnknown_02039248
+_0810BFC4:
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _0810C0B8
+ subs r0, 0x1
+ b _0810C002
+_0810BFCE:
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C012
+ ldr r4, _0810BFF0
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x3]
+ cmp r0, r1
+ beq _0810BFF4
+ movs r0, 0x5
+ movs r1, 0x14
+ bl sub_810BD64
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _0810C00A
+ .align 2, 0
+_0810BFF0: .4byte gUnknown_02039248
+_0810BFF4:
+ ldrb r1, [r4, 0x1]
+ ldrb r0, [r4]
+ adds r0, r1, r0
+ ldrb r2, [r4, 0x2]
+ cmp r0, r2
+ beq _0810C0B8
+ adds r0, r1, 0x1
+_0810C002:
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x1]
+ bl sub_810BB88
+_0810C00A:
+ movs r0, 0
+ bl sub_810BF38
+ b _0810C0B8
+_0810C012:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C05C
+ ldr r4, _0810C050
+ ldrb r0, [r4, 0x1]
+ ldrb r1, [r4]
+ adds r0, r1
+ ldrb r1, [r4, 0x2]
+ cmp r0, r1
+ beq _0810C0B8
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl sub_810BDAC
+ ldr r1, _0810C054
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r4, 0x1]
+ ldrb r2, [r4]
+ adds r1, r2
+ strh r1, [r0, 0x8]
+ ldr r1, _0810C058
+ str r1, [r0]
+ b _0810C0B8
+ .align 2, 0
+_0810C050: .4byte gUnknown_02039248
+_0810C054: .4byte gTasks
+_0810C058: .4byte sub_810C0C8
+_0810C05C:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C09C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0810C088
+ ldrb r1, [r0, 0x1]
+ ldrb r2, [r0]
+ adds r1, r2
+ ldrb r0, [r0, 0x2]
+ cmp r1, r0
+ bne _0810C094
+ ldr r1, _0810C08C
+ ldr r2, _0810C090
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r0, r5, 0
+ bl sub_810C31C
+ b _0810C0B8
+ .align 2, 0
+_0810C088: .4byte gUnknown_02039248
+_0810C08C: .4byte gScriptResult
+_0810C090: .4byte 0x0000ffff
+_0810C094:
+ adds r0, r5, 0
+ bl sub_810C368
+ b _0810C0B8
+_0810C09C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C0B8
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _0810C0C0
+ ldr r2, _0810C0C4
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl sub_810C31C
+_0810C0B8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C0C0: .4byte gScriptResult
+_0810C0C4: .4byte 0x0000ffff
+ thumb_func_end sub_810BF7C
+
+ thumb_func_start sub_810C0C8
+sub_810C0C8: @ 810C0C8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, _0810C0F4
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C110
+ ldr r4, _0810C0F8
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0810C0FC
+ movs r0, 0x5
+ movs r1, 0x14
+ bl sub_810BD64
+ ldrb r0, [r4]
+ subs r0, 0x1
+ strb r0, [r4]
+ b _0810C158
+ .align 2, 0
+_0810C0F4: .4byte gMain
+_0810C0F8: .4byte gUnknown_02039248
+_0810C0FC:
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _0810C1BA
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_810C1C8
+ ldrb r0, [r4, 0x1]
+ subs r0, 0x1
+ b _0810C150
+_0810C110:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C168
+ ldr r4, _0810C134
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x3]
+ cmp r0, r1
+ beq _0810C138
+ movs r0, 0x5
+ movs r1, 0x14
+ bl sub_810BD64
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _0810C158
+ .align 2, 0
+_0810C134: .4byte gUnknown_02039248
+_0810C138:
+ ldrb r0, [r4, 0x1]
+ ldrb r1, [r4]
+ adds r0, r1
+ ldrb r1, [r4, 0x2]
+ cmp r0, r1
+ beq _0810C1BA
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_810C1C8
+ ldrb r0, [r4, 0x1]
+ adds r0, 0x1
+_0810C150:
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x1]
+ bl sub_810BB88
+_0810C158:
+ movs r0, 0x1
+ bl sub_810BF38
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_810C1C8
+ b _0810C1BA
+_0810C168:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0810C17A
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C190
+_0810C17A:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_810C1C8
+ adds r0, r5, 0
+ bl sub_810C23C
+ b _0810C1AC
+_0810C190:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C1BA
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_810C1C8
+ movs r0, 0
+ bl sub_810BDAC
+_0810C1AC:
+ ldr r0, _0810C1C0
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0810C1C4
+ str r0, [r1]
+_0810C1BA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C1C0: .4byte gTasks
+_0810C1C4: .4byte sub_810BF7C
+ thumb_func_end sub_810C0C8
+
+ thumb_func_start sub_810C1C8
+sub_810C1C8: @ 810C1C8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ ldr r6, _0810C22C
+ cmp r1, 0
+ bne _0810C1D8
+ movs r6, 0x5
+_0810C1D8:
+ ldr r1, _0810C230
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ ldr r2, _0810C234
+ ldrb r1, [r2, 0x1]
+ ldrh r0, [r0, 0x8]
+ subs r0, r1
+ lsls r1, r0, 16
+ lsrs r0, r1, 16
+ cmp r0, 0x8
+ bhi _0810C226
+ asrs r0, r1, 16
+ ldrb r2, [r2]
+ cmp r0, r2
+ beq _0810C226
+ movs r2, 0
+ lsls r0, 1
+ adds r1, r0, 0x1
+ lsls r5, r1, 5
+ ldr r3, _0810C238
+ adds r0, 0x2
+ lsls r4, r0, 5
+_0810C208:
+ adds r0, r2, 0
+ adds r0, 0xF
+ adds r1, r5, r0
+ lsls r1, 1
+ adds r1, r3
+ strh r6, [r1]
+ adds r0, r4, r0
+ lsls r0, 1
+ adds r0, r3
+ strh r6, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xD
+ bls _0810C208
+_0810C226:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C22C: .4byte 0x00001005
+_0810C230: .4byte gTasks
+_0810C234: .4byte gUnknown_02039248
+_0810C238: .4byte gBG2TilemapBuffer
+ thumb_func_end sub_810C1C8
+
+ thumb_func_start sub_810C23C
+sub_810C23C: @ 810C23C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r7, _0810C25C
+ ldrb r0, [r7]
+ ldrb r2, [r7, 0x1]
+ adds r0, r2
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r2, [r7, 0x2]
+ cmp r0, r2
+ bne _0810C260
+ movs r0, 0
+ bl sub_810BDAC
+ b _0810C2A2
+ .align 2, 0
+_0810C25C: .4byte gUnknown_02039248
+_0810C260:
+ ldr r4, _0810C2A8
+ lsls r3, r0, 3
+ movs r0, 0xFF
+ lsls r0, 3
+ adds r4, r0
+ adds r3, r4
+ ldr r5, [r3]
+ ldr r6, [r3, 0x4]
+ ldr r0, _0810C2AC
+ lsls r2, r1, 2
+ adds r2, r1
+ lsls r2, 3
+ adds r2, r0
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ lsls r0, 3
+ adds r0, r4
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [r3]
+ str r1, [r3, 0x4]
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ lsls r0, 3
+ adds r0, r4
+ str r5, [r0]
+ str r6, [r0, 0x4]
+ ldrb r0, [r7, 0x1]
+ bl sub_810BB88
+ movs r0, 0
+ bl sub_810BDAC
+_0810C2A2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C2A8: .4byte gSaveBlock1
+_0810C2AC: .4byte gTasks
+ thumb_func_end sub_810C23C
+
+ thumb_func_start sub_810C2B0
+sub_810C2B0: @ 810C2B0
+ push {lr}
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ bl BuyMenuFreeMemory
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810C2B0
+
+ thumb_func_start sub_810C2C8
+sub_810C2C8: @ 810C2C8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0810C308
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0810C300
+ ldr r4, _0810C30C
+ ldrb r0, [r4]
+ cmp r0, 0x3
+ bne _0810C2E8
+ ldr r1, _0810C310
+ ldr r0, _0810C314
+ str r0, [r1]
+_0810C2E8:
+ bl sub_810C2B0
+ ldr r0, _0810C318
+ ldrb r1, [r4]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl SetMainCallback2
+ adds r0, r5, 0
+ bl DestroyTask
+_0810C300:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C308: .4byte gPaletteFade
+_0810C30C: .4byte gUnknown_02039244
+_0810C310: .4byte gUnknown_0300485C
+_0810C314: .4byte sub_8080990
+_0810C318: .4byte gUnknown_083F7EA8
+ thumb_func_end sub_810C2C8
+
+ thumb_func_start sub_810C31C
+sub_810C31C: @ 810C31C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ movs r5, 0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _0810C358
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bls _0810C342
+ ldr r0, _0810C35C
+ strh r5, [r0]
+_0810C342:
+ ldr r0, _0810C360
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0810C364
+ str r0, [r1]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C358: .4byte gUnknown_02039244
+_0810C35C: .4byte word_203855E
+_0810C360: .4byte gTasks
+_0810C364: .4byte sub_810C2C8
+ thumb_func_end sub_810C31C
+
+ thumb_func_start sub_810C368
+sub_810C368: @ 810C368
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ ldr r0, _0810C3E8
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bls _0810C37C
+ movs r4, 0x2
+_0810C37C:
+ movs r0, 0
+ bl sub_80F98A4
+ movs r0, 0x1
+ bl sub_80F98A4
+ ldr r0, _0810C3EC
+ bl BasicInitMenuWindow
+ adds r1, r4, 0x4
+ movs r0, 0x7
+ movs r2, 0xD
+ movs r3, 0xB
+ bl MenuDrawTextWindow
+ adds r4, 0x5
+ ldr r5, _0810C3F0
+ ldrb r2, [r5]
+ ldr r3, _0810C3F4
+ ldr r0, _0810C3F8
+ ldr r0, [r0]
+ str r0, [sp]
+ movs r0, 0x8
+ adds r1, r4, 0
+ bl PrintMenuItemsReordered
+ ldrb r3, [r5]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x5
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x8
+ adds r2, r4, 0
+ bl InitMenu
+ ldr r2, _0810C3FC
+ ldr r1, _0810C400
+ ldrb r0, [r1]
+ ldrb r1, [r1, 0x1]
+ adds r0, r1
+ strh r0, [r2]
+ ldr r1, _0810C404
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810C408
+ str r1, [r0]
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C3E8: .4byte gUnknown_02039244
+_0810C3EC: .4byte gWindowConfig_81E6E50
+_0810C3F0: .4byte gUnknown_0203924C
+_0810C3F4: .4byte gUnknown_083F7EF4
+_0810C3F8: .4byte gUnknown_03000758
+_0810C3FC: .4byte word_203855E
+_0810C400: .4byte gUnknown_02039248
+_0810C404: .4byte gTasks
+_0810C408: .4byte sub_810C40C
+ thumb_func_end sub_810C368
+
+ thumb_func_start sub_810C40C
+sub_810C40C: @ 810C40C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, r5, 0
+ ldr r2, _0810C43C
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C440
+ bl GetMenuCursorPos
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810C4BC
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _0810C4BC
+ .align 2, 0
+_0810C43C: .4byte gMain
+_0810C440:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C46C
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0810C468
+ ldrb r1, [r1]
+ subs r1, 0x1
+ cmp r0, r1
+ beq _0810C4BC
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _0810C4BC
+ .align 2, 0
+_0810C468: .4byte gUnknown_0203924C
+_0810C46C:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C4A8
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _0810C4A0
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0810C4A4
+ ldr r1, [r1]
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 3
+ adds r4, 0x4
+ adds r0, r4
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl _call_via_r1
+ b _0810C4BC
+ .align 2, 0
+_0810C4A0: .4byte gUnknown_083F7EF4
+_0810C4A4: .4byte gUnknown_03000758
+_0810C4A8:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C4BC
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_810C748
+_0810C4BC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810C40C
+
+ thumb_func_start sub_810C4C4
+sub_810C4C4: @ 810C4C4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0810C4F8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0810C4F0
+ bl sub_810C2B0
+ ldr r0, _0810C4FC
+ ldrh r0, [r0]
+ lsls r0, 3
+ ldr r1, _0810C500
+ adds r0, r1
+ ldr r1, _0810C504
+ bl sub_8136130
+ adds r0, r4, 0
+ bl DestroyTask
+_0810C4F0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C4F8: .4byte gPaletteFade
+_0810C4FC: .4byte word_203855E
+_0810C500: .4byte gSaveBlock1 + 0x7F8
+_0810C504: .4byte sub_810B96C
+ thumb_func_end sub_810C4C4
+
+ thumb_func_start sub_810C508
+sub_810C508: @ 810C508
+ 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, _0810C538
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810C53C
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C538: .4byte gTasks
+_0810C53C: .4byte sub_810C4C4
+ thumb_func_end sub_810C508
+
+ thumb_func_start sub_810C540
+sub_810C540: @ 810C540
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _0810C5A0
+ bl BasicInitMenuWindow
+ bl sub_8072DEC
+ movs r0, 0x7
+ movs r1, 0x4
+ movs r2, 0xD
+ movs r3, 0xB
+ bl MenuZeroFillWindowRect
+ ldr r0, _0810C5A4
+ ldr r4, _0810C5A8
+ ldr r3, _0810C5AC
+ ldr r2, _0810C5B0
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r3
+ movs r2, 0xFF
+ lsls r2, 3
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r4
+ ldr r1, [r1]
+ bl StringCopy
+ ldr r4, _0810C5B4
+ ldr r1, _0810C5B8
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _0810C5BC
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C5A0: .4byte gWindowConfig_81E6E50
+_0810C5A4: .4byte gStringVar1
+_0810C5A8: .4byte gUnknown_083F7EB8
+_0810C5AC: .4byte gSaveBlock1
+_0810C5B0: .4byte gUnknown_02039248
+_0810C5B4: .4byte gStringVar4
+_0810C5B8: .4byte gContestStatsText_ThrowAwayPrompt
+_0810C5BC: .4byte sub_810C5EC
+ thumb_func_end sub_810C540
+
+ thumb_func_start sub_810C5C0
+sub_810C5C0: @ 810C5C0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_80F979C
+ ldr r1, _0810C5E4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810C5E8
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C5E4: .4byte gTasks
+_0810C5E8: .4byte sub_810C540
+ thumb_func_end sub_810C5C0
+
+ thumb_func_start sub_810C5EC
+sub_810C5EC: @ 810C5EC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x7
+ movs r1, 0x6
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r1, _0810C60C
+ adds r0, r4, 0
+ bl sub_80F914C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C60C: .4byte gUnknown_083F7F24
+ thumb_func_end sub_810C5EC
+
+ thumb_func_start sub_810C610
+sub_810C610: @ 810C610
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x7
+ movs r1, 0x6
+ movs r2, 0xD
+ movs r3, 0xB
+ bl MenuZeroFillWindowRect
+ ldr r1, _0810C658
+ ldrb r0, [r1, 0x1]
+ ldrb r1, [r1]
+ adds r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_810CA6C
+ ldr r5, _0810C65C
+ ldr r1, _0810C660
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ ldr r2, _0810C664
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ bl sub_810BC98
+ bl sub_810BD08
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C658: .4byte gUnknown_02039248
+_0810C65C: .4byte gStringVar4
+_0810C660: .4byte gContestStatsText_WasThrownAway
+_0810C664: .4byte sub_810C704
+ thumb_func_end sub_810C610
+
+ thumb_func_start sub_810C668
+sub_810C668: @ 810C668
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ bl sub_80F98DC
+ movs r0, 0x1
+ bl sub_80F98DC
+ ldr r2, _0810C6CC
+ ldrb r0, [r2, 0x2]
+ ldrb r1, [r2, 0x3]
+ cmp r0, r1
+ bls _0810C698
+ ldrb r0, [r2, 0x1]
+ ldrb r1, [r2, 0x3]
+ adds r0, r1
+ ldrb r2, [r2, 0x2]
+ cmp r0, r2
+ beq _0810C698
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_80F979C
+_0810C698:
+ ldr r0, _0810C6D0
+ bl BasicInitMenuWindow
+ movs r0, 0x7
+ movs r1, 0x6
+ movs r2, 0xD
+ movs r3, 0xB
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _0810C6D4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810C6D8
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C6CC: .4byte gUnknown_02039248
+_0810C6D0: .4byte gWindowConfig_81E6E50
+_0810C6D4: .4byte gTasks
+_0810C6D8: .4byte sub_810BF7C
+ thumb_func_end sub_810C668
+
+ thumb_func_start sub_810C6DC
+sub_810C6DC: @ 810C6DC
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0810C700
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0810C6F6
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0810C6FC
+_0810C6F6:
+ adds r0, r2, 0
+ bl sub_810C668
+_0810C6FC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C700: .4byte gMain
+ thumb_func_end sub_810C6DC
+
+ thumb_func_start sub_810C704
+sub_810C704: @ 810C704
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0810C738
+ bl BasicInitMenuWindow
+ ldr r0, _0810C73C
+ ldrb r0, [r0, 0x1]
+ bl sub_810BC84
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_80F979C
+ ldr r1, _0810C740
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810C744
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C738: .4byte gWindowConfig_81E6E34
+_0810C73C: .4byte gUnknown_02039248
+_0810C740: .4byte gTasks
+_0810C744: .4byte sub_810C6DC
+ thumb_func_end sub_810C704
+
+ thumb_func_start sub_810C748
+sub_810C748: @ 810C748
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ bl sub_80F98DC
+ movs r0, 0x1
+ bl sub_80F98DC
+ bl sub_8072DEC
+ movs r0, 0x7
+ movs r1, 0x4
+ movs r2, 0xD
+ movs r3, 0xB
+ bl MenuZeroFillWindowRect
+ ldr r1, _0810C780
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810C784
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C780: .4byte gTasks
+_0810C784: .4byte sub_810BF7C
+ thumb_func_end sub_810C748
+
+ thumb_func_start sub_810C788
+sub_810C788: @ 810C788
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _0810C834
+ bl GetNature
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r7, _0810C838
+ ldrh r1, [r7]
+ lsls r1, 3
+ ldr r5, _0810C83C
+ adds r1, r5
+ bl sub_810CAE4
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _0810C840
+ ldr r2, _0810C844
+ ldr r1, _0810C848
+ adds r5, r1
+ ldrh r1, [r7]
+ lsls r1, 3
+ adds r1, r5
+ movs r6, 0xFF
+ lsls r6, 3
+ adds r1, r6
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ ldrb r0, [r7]
+ bl sub_810CA6C
+ ldrh r0, [r7]
+ lsls r0, 3
+ adds r0, r5
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r0, 8
+ strh r0, [r7]
+ lsls r4, 16
+ asrs r4, 16
+ cmp r4, 0
+ bne _0810C7F4
+ adds r0, 0x1
+ strh r0, [r7]
+_0810C7F4:
+ cmp r4, 0
+ ble _0810C7FE
+ ldrh r0, [r7]
+ adds r0, 0x2
+ strh r0, [r7]
+_0810C7FE:
+ cmp r4, 0
+ bge _0810C808
+ ldrh r0, [r7]
+ adds r0, 0x3
+ strh r0, [r7]
+_0810C808:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0810C84C
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810C850
+ str r1, [r0]
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C834: .4byte gEnemyParty
+_0810C838: .4byte word_203855E
+_0810C83C: .4byte gSaveBlock1 + 0x7F8
+_0810C840: .4byte gUnknown_030041C0
+_0810C844: .4byte gUnknown_083F7EB8
+_0810C848: .4byte 0xfffff808
+_0810C84C: .4byte gTasks
+_0810C850: .4byte sub_810C2C8
+ thumb_func_end sub_810C788
+
+ thumb_func_start sub_810C854
+sub_810C854: @ 810C854
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, _0810C8B8
+ ldrb r0, [r4]
+ bl sub_80C8478
+ ldr r0, _0810C8BC
+ ldr r3, _0810C8C0
+ ldr r2, _0810C8C4
+ ldrh r1, [r4]
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0xFF
+ lsls r2, 3
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r3
+ ldr r1, [r1]
+ bl StringCopy
+ ldr r1, _0810C8C8
+ ldrh r0, [r4]
+ strh r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_810CA6C
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0810C8CC
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810C8D0
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C8B8: .4byte word_203855E
+_0810C8BC: .4byte gStringVar1
+_0810C8C0: .4byte gUnknown_083F7EB8
+_0810C8C4: .4byte gSaveBlock1
+_0810C8C8: .4byte gScriptResult
+_0810C8CC: .4byte gTasks
+_0810C8D0: .4byte sub_810C2C8
+ thumb_func_end sub_810C854
+
+ thumb_func_start sub_810C8D4
+sub_810C8D4: @ 810C8D4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ ble _0810C8E4
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+_0810C8E4:
+ movs r0, 0x2E
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ beq _0810C8F2
+ cmp r5, 0x1
+ beq _0810C918
+ b _0810C944
+_0810C8F2:
+ 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, _0810C914
+ str r0, [r4, 0x10]
+ adds r0, r4, 0
+ bl InitSpriteAffineAnim
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ strh r5, [r4, 0x30]
+ b _0810C944
+ .align 2, 0
+_0810C914: .4byte gUnknown_083F7F70
+_0810C918:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ movs r2, 0
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ ble _0810C944
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ strh r2, [r4, 0x2E]
+ strh r2, [r4, 0x30]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldr r0, _0810C94C
+ str r0, [r4, 0x1C]
+_0810C944:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810C94C: .4byte SpriteCallbackDummy
+ thumb_func_end sub_810C8D4
+
+ thumb_func_start sub_810C950
+sub_810C950: @ 810C950
+ lsls r0, 24
+ ldr r1, _0810C988
+ lsrs r0, 21
+ adds r0, r1
+ movs r2, 0xFF
+ lsls r2, 3
+ adds r1, r0, r2
+ movs r2, 0
+ strb r2, [r1]
+ ldr r3, _0810C98C
+ adds r1, r0, r3
+ strb r2, [r1]
+ adds r3, 0x1
+ adds r1, r0, r3
+ strb r2, [r1]
+ adds r3, 0x1
+ adds r1, r0, r3
+ strb r2, [r1]
+ adds r3, 0x1
+ adds r1, r0, r3
+ strb r2, [r1]
+ adds r3, 0x1
+ adds r1, r0, r3
+ strb r2, [r1]
+ ldr r1, _0810C990
+ adds r0, r1
+ strb r2, [r0]
+ bx lr
+ .align 2, 0
+_0810C988: .4byte gSaveBlock1
+_0810C98C: .4byte 0x000007f9
+_0810C990: .4byte 0x000007fe
+ thumb_func_end sub_810C950
+
+ thumb_func_start sub_810C994
+sub_810C994: @ 810C994
+ push {r4,lr}
+ movs r4, 0
+_0810C998:
+ adds r0, r4, 0
+ bl sub_810C950
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x27
+ bls _0810C998
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810C994
+
+ thumb_func_start sub_810C9B0
+sub_810C9B0: @ 810C9B0
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x1
+ bl sub_810CA9C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r1, 0x1
+_0810C9C0:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_810CA9C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r5, r0
+ bcs _0810C9D8
+ adds r5, r0, 0
+_0810C9D8:
+ adds r1, r4, 0
+ cmp r1, 0x4
+ bls _0810C9C0
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810C9B0
+
+ thumb_func_start sub_810C9E8
+sub_810C9E8: @ 810C9E8
+ push {lr}
+ movs r1, 0x6
+ bl sub_810CA9C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x63
+ bls _0810C9FA
+ movs r0, 0x63
+_0810C9FA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810C9E8
+
+ thumb_func_start sub_810CA00
+sub_810CA00: @ 810CA00
+ push {lr}
+ movs r1, 0
+ ldr r3, _0810CA1C
+ movs r2, 0xFF
+ lsls r2, 3
+_0810CA0A:
+ lsls r0, r1, 3
+ adds r0, r3
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0810CA20
+ lsls r0, r1, 24
+ asrs r0, 24
+ b _0810CA2E
+ .align 2, 0
+_0810CA1C: .4byte gSaveBlock1
+_0810CA20:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x27
+ bls _0810CA0A
+ movs r0, 0x1
+ negs r0, r0
+_0810CA2E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810CA00
+
+ thumb_func_start sub_810CA34
+sub_810CA34: @ 810CA34
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_810CA00
+ lsls r0, 24
+ asrs r2, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, r0
+ beq _0810CA64
+ ldr r0, _0810CA60
+ lsls r2, 3
+ movs r1, 0xFF
+ lsls r1, 3
+ adds r0, r1
+ adds r2, r0
+ ldr r0, [r4]
+ ldr r1, [r4, 0x4]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ movs r0, 0x1
+ b _0810CA66
+ .align 2, 0
+_0810CA60: .4byte gSaveBlock1
+_0810CA64:
+ movs r0, 0
+_0810CA66:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810CA34
+
+ thumb_func_start sub_810CA6C
+sub_810CA6C: @ 810CA6C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _0810CA90
+ lsls r0, r2, 3
+ adds r0, r1
+ movs r1, 0xFF
+ lsls r1, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0810CA94
+ adds r0, r2, 0
+ bl sub_810C950
+ movs r0, 0x1
+ b _0810CA96
+ .align 2, 0
+_0810CA90: .4byte gSaveBlock1
+_0810CA94:
+ movs r0, 0
+_0810CA96:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810CA6C
+
+ thumb_func_start sub_810CA9C
+sub_810CA9C: @ 810CA9C
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r1, 0
+ cmp r1, 0
+ bne _0810CAAC
+ ldrb r0, [r0]
+ b _0810CADE
+_0810CAAC:
+ cmp r1, 0x1
+ bne _0810CAB4
+ ldrb r0, [r0, 0x1]
+ b _0810CADE
+_0810CAB4:
+ cmp r1, 0x2
+ bne _0810CABC
+ ldrb r0, [r0, 0x2]
+ b _0810CADE
+_0810CABC:
+ cmp r1, 0x3
+ bne _0810CAC4
+ ldrb r0, [r0, 0x3]
+ b _0810CADE
+_0810CAC4:
+ cmp r1, 0x4
+ bne _0810CACC
+ ldrb r0, [r0, 0x4]
+ b _0810CADE
+_0810CACC:
+ cmp r1, 0x5
+ bne _0810CAD4
+ ldrb r0, [r0, 0x5]
+ b _0810CADE
+_0810CAD4:
+ cmp r2, 0x6
+ beq _0810CADC
+ movs r0, 0
+ b _0810CADE
+_0810CADC:
+ ldrb r0, [r0, 0x6]
+_0810CADE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810CA9C
+
+ thumb_func_start sub_810CAE4
+sub_810CAE4: @ 810CAE4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r8, r1
+ lsls r0, 24
+ lsrs r0, 24
+ movs r6, 0
+ movs r4, 0
+ ldr r1, _0810CB40
+ mov r9, r1
+ lsls r1, r0, 2
+ adds r7, r1, r0
+_0810CAFE:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r0, r8
+ adds r1, r5, 0
+ bl sub_810CA9C
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ ble _0810CB2A
+ adds r0, r7, r4
+ add r0, r9
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ muls r1, r0
+ lsls r0, r6, 16
+ asrs r0, 16
+ adds r0, r1
+ lsls r0, 16
+ lsrs r6, r0, 16
+_0810CB2A:
+ adds r4, r5, 0
+ cmp r4, 0x4
+ bls _0810CAFE
+ lsls r0, r6, 16
+ asrs r0, 16
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810CB40: .4byte gUnknown_083F7E28
+ thumb_func_end sub_810CAE4
+
+ thumb_func_start sub_810CB44
+sub_810CB44: @ 810CB44
+ push {r4,lr}
+ adds r4, r1, 0
+ movs r1, 0
+ bl sub_810CA9C
+ lsls r0, 24
+ ldr r1, _0810CB64
+ lsrs r0, 22
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl StringCopy
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CB64: .4byte gUnknown_083F7EB8
+ thumb_func_end sub_810CB44
+
+ thumb_func_start sub_810CB68
+sub_810CB68: @ 810CB68
+ push {r4-r7,lr}
+ adds r6, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r7, _0810CB98
+_0810CB74:
+ lsls r1, r4, 3
+ ldr r0, _0810CB9C
+ adds r1, r0
+ adds r0, r5, 0
+ bl sub_810CAE4
+ lsls r0, 16
+ cmp r0, 0
+ ble _0810CBA0
+ adds r0, r4, 0x1
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl StringCopy
+ movs r0, 0x1
+ b _0810CBAC
+ .align 2, 0
+_0810CB98: .4byte gUnknown_083F7EB8
+_0810CB9C: .4byte gUnknown_083F7F9C
+_0810CBA0:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _0810CB74
+ movs r0, 0
+_0810CBAC:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810CB68
+
+ thumb_func_start sub_810CBB4
+sub_810CBB4: @ 810CBB4
+ push {lr}
+ ldr r0, _0810CBDC
+ ldrb r0, [r0, 0x15]
+ cmp r0, 0x1
+ bne _0810CBF4
+ ldr r0, _0810CBE0
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810CBF4
+ ldr r1, _0810CBE4
+ ldr r0, _0810CBE8
+ str r0, [r1]
+ ldr r1, _0810CBEC
+ ldr r0, _0810CBF0
+ str r0, [r1]
+ movs r0, 0x1
+ b _0810CBF6
+ .align 2, 0
+_0810CBDC: .4byte gMapHeader
+_0810CBE0: .4byte 0x00000828
+_0810CBE4: .4byte gUnknown_0300485C
+_0810CBE8: .4byte sub_808AB90
+_0810CBEC: .4byte gUnknown_03005CE4
+_0810CBF0: .4byte sub_810CBFC
+_0810CBF4:
+ movs r0, 0
+_0810CBF6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810CBB4
+
+ thumb_func_start sub_810CBFC
+sub_810CBFC: @ 810CBFC
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810CC24
+ ldr r1, _0810CC28
+ ldrb r1, [r1]
+ str r1, [r2]
+ ldr r2, _0810CC2C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _0810CC30
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CC24: .4byte gUnknown_0202FF84
+_0810CC28: .4byte gUnknown_03005CE0
+_0810CC2C: .4byte gTasks
+_0810CC30: .4byte sub_810CC34
+ thumb_func_end sub_810CBFC
+
+ thumb_func_start sub_810CC34
+sub_810CC34: @ 810CC34
+ push {lr}
+ movs r0, 0xCF
+ bl PlaySE
+ ldr r0, _0810CC4C
+ bl FlagSet
+ ldr r0, _0810CC50
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CC4C: .4byte 0x00000828
+_0810CC50: .4byte gUnknown_081B694A
+ thumb_func_end sub_810CC34
+
+ thumb_func_start sub_810CC54
+sub_810CC54: @ 810CC54
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810CC54
+
+ thumb_func_start sub_810CC6C
+sub_810CC6C: @ 810CC6C
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810CC6C
+
+ thumb_func_start sub_810CC80
+sub_810CC80: @ 810CC80
+ push {r4,lr}
+ sub sp, 0x8
+ 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]
+ mov r0, sp
+ strh r1, [r0]
+ ldr r1, _0810CD34
+ str r0, [r1]
+ movs r0, 0xC0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _0810CD38
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ add r0, sp, 0x4
+ str r0, [r1]
+ movs r0, 0xE0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _0810CD3C
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ mov r0, sp
+ strh r4, [r0]
+ str r0, [r1]
+ ldr r0, _0810CD40
+ str r0, [r1, 0x4]
+ ldr r0, _0810CD44
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl ResetPaletteFade
+ bl ResetTasks
+ bl ResetSpriteData
+ ldr r3, _0810CD48
+ ldrh r2, [r3]
+ strh r4, [r3]
+ ldr r4, _0810CD4C
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r0, _0810CD50
+ bl SetVBlankCallback
+ ldr r0, _0810CD54
+ bl SetMainCallback2
+ bl sub_810CD5C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810CD2A
+ ldr r0, _0810CD58
+ ldr r0, [r0, 0x8]
+ bl SetMainCallback2
+_0810CD2A:
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CD34: .4byte 0x040000d4
+_0810CD38: .4byte 0x8100c000
+_0810CD3C: .4byte 0x85000100
+_0810CD40: .4byte 0x05000002
+_0810CD44: .4byte 0x810001ff
+_0810CD48: .4byte 0x04000208
+_0810CD4C: .4byte 0x04000200
+_0810CD50: .4byte sub_810CC6C
+_0810CD54: .4byte sub_810CC54
+_0810CD58: .4byte gMain
+ thumb_func_end sub_810CC80
+
+ thumb_func_start sub_810CD5C
+sub_810CD5C: @ 810CD5C
+ push {r4-r7,lr}
+ bl get_map_light_from_warp0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl sav1_map_get_light_level
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0
+ ldr r4, _0810CD9C
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0810CDB0
+ adds r7, r4, 0
+ adds r0, r4, 0x4
+ mov r12, r0
+_0810CD7E:
+ lsls r2, r3, 3
+ adds r1, r2, r7
+ ldrb r0, [r1]
+ cmp r0, r6
+ bne _0810CDA0
+ ldrb r0, [r1, 0x1]
+ cmp r0, r5
+ bne _0810CDA0
+ mov r1, r12
+ adds r0, r2, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ movs r0, 0x1
+ b _0810CDB2
+ .align 2, 0
+_0810CD9C: .4byte gUnknown_083F7FC4
+_0810CDA0:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 3
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0810CD7E
+_0810CDB0:
+ movs r0, 0
+_0810CDB2:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810CD5C
+
+ thumb_func_start sub_810CDB8
+sub_810CDB8: @ 810CDB8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r5, r0, 24
+ lsrs r4, r1, 24
+ movs r3, 0
+ ldr r1, _0810CDE4
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0810CDF8
+ adds r6, r1, 0
+_0810CDCE:
+ lsls r0, r3, 3
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, r5
+ bne _0810CDE8
+ ldrb r0, [r2, 0x1]
+ cmp r0, r4
+ bne _0810CDE8
+ ldrb r0, [r2, 0x2]
+ b _0810CDFA
+ .align 2, 0
+_0810CDE4: .4byte gUnknown_083F7FC4
+_0810CDE8:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0810CDCE
+_0810CDF8:
+ movs r0, 0
+_0810CDFA:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810CDB8
+
+ thumb_func_start fade_type_for_given_maplight_pair
+fade_type_for_given_maplight_pair: @ 810CE00
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r5, r0, 24
+ lsrs r4, r1, 24
+ movs r3, 0
+ ldr r1, _0810CE2C
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0810CE40
+ adds r6, r1, 0
+_0810CE16:
+ lsls r0, r3, 3
+ adds r2, r0, r6
+ ldrb r0, [r2]
+ cmp r0, r5
+ bne _0810CE30
+ ldrb r0, [r2, 0x1]
+ cmp r0, r4
+ bne _0810CE30
+ ldrb r0, [r2, 0x3]
+ b _0810CE42
+ .align 2, 0
+_0810CE2C: .4byte gUnknown_083F7FC4
+_0810CE30:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r0, r3, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0810CE16
+_0810CE40:
+ movs r0, 0
+_0810CE42:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end fade_type_for_given_maplight_pair
+
+ thumb_func_start sub_810CE48
+sub_810CE48: @ 810CE48
+ push {lr}
+ ldr r0, _0810CE58
+ movs r1, 0
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CE58: .4byte sub_810CE5C
+ thumb_func_end sub_810CE48
+
+ thumb_func_start sub_810CE5C
+sub_810CE5C: @ 810CE5C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810CE70
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _0810CE74
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0810CE70: .4byte gTasks
+_0810CE74: .4byte sub_810CE78
+ thumb_func_end sub_810CE5C
+
+ thumb_func_start sub_810CE78
+sub_810CE78: @ 810CE78
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r6, 0x80
+ lsls r6, 19
+ movs r5, 0
+ strh r5, [r6]
+ ldr r0, _0810CEE8
+ ldr r1, _0810CEEC
+ bl LZ77UnCompVram
+ ldr r0, _0810CEF0
+ ldr r1, _0810CEF4
+ bl LZ77UnCompVram
+ ldr r0, _0810CEF8
+ movs r1, 0xE0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _0810CEFC
+ movs r1, 0xE0
+ movs r2, 0x10
+ bl LoadPalette
+ ldr r1, _0810CF00
+ ldr r2, _0810CF04
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0810CF08
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ subs r1, 0x48
+ ldr r2, _0810CF0C
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r1, 0x8A
+ lsls r1, 5
+ adds r0, r1, 0
+ strh r0, [r6]
+ ldr r1, _0810CF10
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810CF14
+ str r1, [r0]
+ movs r2, 0
+ movs r1, 0x10
+ strh r1, [r0, 0x8]
+ strh r2, [r0, 0xA]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CEE8: .4byte gCaveTransitionTiles
+_0810CEEC: .4byte 0x0600c000
+_0810CEF0: .4byte gCaveTransitionTilemap
+_0810CEF4: .4byte 0x0600f800
+_0810CEF8: .4byte gCaveTransitionPalette_White
+_0810CEFC: .4byte gUnknown_083F809C
+_0810CF00: .4byte REG_BLDCNT
+_0810CF04: .4byte 0x00003e41
+_0810CF08: .4byte REG_BLDALPHA
+_0810CF0C: .4byte 0x00001f0c
+_0810CF10: .4byte gTasks
+_0810CF14: .4byte sub_810CF18
+ thumb_func_end sub_810CE78
+
+ thumb_func_start sub_810CF18
+sub_810CF18: @ 810CF18
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810CF44
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, r1, r2
+ ldrh r2, [r3, 0xA]
+ movs r1, 0x80
+ lsls r1, 5
+ adds r0, r2, r1
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0810CF48
+ strh r0, [r1]
+ cmp r2, 0x10
+ bhi _0810CF4C
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ b _0810CF54
+ .align 2, 0
+_0810CF44: .4byte gTasks
+_0810CF48: .4byte REG_BLDALPHA
+_0810CF4C:
+ movs r0, 0
+ strh r0, [r3, 0xC]
+ ldr r0, _0810CF58
+ str r0, [r3]
+_0810CF54:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CF58: .4byte sub_810CF5C
+ thumb_func_end sub_810CF18
+
+ thumb_func_start sub_810CF5C
+sub_810CF5C: @ 810CF5C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810CF94
+ ldr r3, _0810CF98
+ adds r1, r3, 0
+ strh r1, [r2]
+ ldr r2, _0810CF9C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r1, [r4, 0xC]
+ cmp r1, 0x7
+ bhi _0810CFA4
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xC]
+ lsls r1, 1
+ ldr r0, _0810CFA0
+ adds r0, r1, r0
+ movs r2, 0x10
+ subs r2, r1
+ lsls r2, 16
+ lsrs r2, 16
+ movs r1, 0xE0
+ bl LoadPalette
+ b _0810CFB6
+ .align 2, 0
+_0810CF94: .4byte REG_BLDALPHA
+_0810CF98: .4byte 0x00001010
+_0810CF9C: .4byte gTasks
+_0810CFA0: .4byte gUnknown_083F809C
+_0810CFA4:
+ ldr r0, _0810CFBC
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _0810CFC0
+ str r0, [r4]
+ movs r0, 0x8
+ strh r0, [r4, 0xC]
+_0810CFB6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CFBC: .4byte gCaveTransitionPalette_White
+_0810CFC0: .4byte sub_810CFC4
+ thumb_func_end sub_810CF5C
+
+ thumb_func_start sub_810CFC4
+sub_810CFC4: @ 810CFC4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810CFE4
+ 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, 0
+ beq _0810CFE8
+ subs r0, r2, 0x1
+ strh r0, [r1, 0xC]
+ b _0810CFF0
+ .align 2, 0
+_0810CFE4: .4byte gTasks
+_0810CFE8:
+ ldr r0, _0810CFF4
+ ldr r0, [r0, 0x8]
+ bl SetMainCallback2
+_0810CFF0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810CFF4: .4byte gMain
+ thumb_func_end sub_810CFC4
+
+ thumb_func_start sub_810CFF8
+sub_810CFF8: @ 810CFF8
+ push {lr}
+ ldr r0, _0810D008
+ movs r1, 0
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D008: .4byte sub_810D00C
+ thumb_func_end sub_810CFF8
+
+ thumb_func_start sub_810D00C
+sub_810D00C: @ 810D00C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810D020
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _0810D024
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0810D020: .4byte gTasks
+_0810D024: .4byte sub_810D028
+ thumb_func_end sub_810D00C
+
+ thumb_func_start sub_810D028
+sub_810D028: @ 810D028
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r6, 0x80
+ lsls r6, 19
+ movs r4, 0
+ strh r4, [r6]
+ ldr r0, _0810D098
+ ldr r1, _0810D09C
+ bl LZ77UnCompVram
+ ldr r0, _0810D0A0
+ ldr r1, _0810D0A4
+ bl LZ77UnCompVram
+ ldr r0, _0810D0A8
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ ldr r1, _0810D0AC
+ ldr r2, _0810D0B0
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r1, 0x8A
+ lsls r1, 5
+ adds r0, r1, 0
+ strh r0, [r6]
+ ldr r0, _0810D0B4
+ movs r1, 0xE0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _0810D0B8
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, _0810D0BC
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0810D0C0
+ str r1, [r0]
+ movs r2, 0
+ movs r1, 0x10
+ strh r1, [r0, 0x8]
+ strh r2, [r0, 0xA]
+ strh r2, [r0, 0xC]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D098: .4byte gCaveTransitionTiles
+_0810D09C: .4byte 0x0600c000
+_0810D0A0: .4byte gCaveTransitionTilemap
+_0810D0A4: .4byte 0x0600f800
+_0810D0A8: .4byte REG_BLDCNT
+_0810D0AC: .4byte REG_BG0CNT
+_0810D0B0: .4byte 0x00001f0c
+_0810D0B4: .4byte gCaveTransitionPalette_White
+_0810D0B8: .4byte gCaveTransitionPalette_Black
+_0810D0BC: .4byte gTasks
+_0810D0C0: .4byte sub_810D0C4
+ thumb_func_end sub_810D028
+
+ thumb_func_start sub_810D0C4
+sub_810D0C4: @ 810D0C4
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810D0F8
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, r1, r2
+ ldrh r1, [r3, 0xC]
+ cmp r1, 0xF
+ bhi _0810D100
+ adds r2, r1, 0x1
+ adds r0, r2, 0x1
+ strh r0, [r3, 0xC]
+ movs r0, 0xF
+ subs r0, r1
+ lsls r0, 1
+ ldr r1, _0810D0FC
+ adds r0, r1
+ lsls r2, 17
+ lsrs r2, 16
+ movs r1, 0xE0
+ bl LoadPalette
+ b _0810D114
+ .align 2, 0
+_0810D0F8: .4byte gTasks
+_0810D0FC: .4byte gUnknown_083F808C
+_0810D100:
+ ldr r1, _0810D118
+ ldr r2, _0810D11C
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _0810D120
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0810D124
+ str r0, [r3]
+_0810D114:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D118: .4byte REG_BLDALPHA
+_0810D11C: .4byte 0x00001010
+_0810D120: .4byte 0x00003e41
+_0810D124: .4byte sub_810D128
+ thumb_func_end sub_810D0C4
+
+ thumb_func_start sub_810D128
+sub_810D128: @ 810D128
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810D158
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, r1, r2
+ ldrh r0, [r3, 0xA]
+ movs r1, 0x10
+ subs r1, r0
+ lsls r1, 16
+ movs r2, 0x80
+ lsls r2, 21
+ adds r0, r1, r2
+ lsrs r0, 16
+ ldr r2, _0810D15C
+ strh r0, [r2]
+ cmp r1, 0
+ beq _0810D160
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ b _0810D172
+ .align 2, 0
+_0810D158: .4byte gTasks
+_0810D15C: .4byte REG_BLDALPHA
+_0810D160:
+ ldr r0, _0810D178
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _0810D17C
+ ldr r0, [r0, 0x8]
+ bl SetMainCallback2
+_0810D172:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D178: .4byte gCaveTransitionPalette_Black
+_0810D17C: .4byte gMain
+ thumb_func_end sub_810D128
+
+ thumb_func_start sub_810D180
+sub_810D180: @ 810D180
+ push {r4-r7,lr}
+ sub sp, 0x4
+ bl sp000_heal_pokemon
+ ldr r4, _0810D1A0
+ adds r0, r4, 0
+ bl FlagGet
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1
+ bne _0810D1A8
+ ldr r0, _0810D1A4
+ strb r1, [r0]
+ b _0810D1B4
+ .align 2, 0
+_0810D1A0: .4byte 0x00000804
+_0810D1A4: .4byte gUnknown_02039324
+_0810D1A8:
+ ldr r1, _0810D1E8
+ movs r0, 0
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl FlagSet
+_0810D1B4:
+ movs r0, 0x1
+ bl sub_8053108
+ cmp r0, 0
+ bne _0810D1D4
+ ldr r2, _0810D1EC
+ ldrh r1, [r2, 0xE]
+ lsls r1, 16
+ ldrb r0, [r2, 0x10]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x11]
+ orrs r1, r0
+ movs r0, 0x1
+ bl sav12_xor_set
+_0810D1D4:
+ bl sub_8047A10
+ ldr r0, _0810D1EC
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _0810D1F0
+ movs r0, 0x1
+ bl sub_80537CC
+ b _0810D1F6
+ .align 2, 0
+_0810D1E8: .4byte gUnknown_02039324
+_0810D1EC: .4byte gSaveBlock2
+_0810D1F0:
+ movs r0, 0x2
+ bl sub_80537CC
+_0810D1F6:
+ movs r6, 0
+ movs r5, 0
+ mov r7, sp
+_0810D1FC:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0810D260
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl GetMonData
+ cmp r0, 0
+ beq _0810D23A
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl GetMonData
+ cmp r0, 0
+ bne _0810D23A
+ adds r0, r4, 0
+ movs r1, 0x43
+ bl GetMonData
+ cmp r0, 0
+ bne _0810D23A
+ movs r0, 0x1
+ strb r0, [r7]
+ adds r0, r4, 0
+ movs r1, 0x43
+ mov r2, sp
+ bl SetMonData
+ movs r6, 0x1
+_0810D23A:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _0810D1FC
+ cmp r6, 0x1
+ bne _0810D250
+ movs r0, 0x2A
+ bl sav12_xor_increment
+ ldr r0, _0810D264
+ bl FlagSet
+_0810D250:
+ ldr r0, _0810D268
+ bl SetMainCallback2
+ movs r0, 0
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810D260: .4byte gPlayerParty
+_0810D264: .4byte 0x0000083b
+_0810D268: .4byte sub_8141F90
+ thumb_func_end sub_810D180
+
+ thumb_func_start sp0C8_whiteout_maybe
+sp0C8_whiteout_maybe: @ 810D26C
+ push {lr}
+ ldr r0, _0810D27C
+ bl SetMainCallback2
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810D27C: .4byte c2_whiteout
+ thumb_func_end sp0C8_whiteout_maybe
+
+ thumb_func_start sub_810D280
+sub_810D280: @ 810D280
+ push {r4,lr}
+ ldr r0, _0810D2A4
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _0810D2A8
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, 16
+ orrs r4, r0
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810D2A4: .4byte 0x00004024
+_0810D2A8: .4byte 0x00004025
+ thumb_func_end sub_810D280
+
+ thumb_func_start sub_810D2AC
+sub_810D2AC: @ 810D2AC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _0810D2CC
+ lsrs r1, r4, 16
+ bl VarSet
+ ldr r0, _0810D2D0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r1, r4, 0
+ bl VarSet
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D2CC: .4byte 0x00004024
+_0810D2D0: .4byte 0x00004025
+ thumb_func_end sub_810D2AC
+
+ thumb_func_start unref_sub_810D2D4
+unref_sub_810D2D4: @ 810D2D4
+ push {r4,lr}
+ bl Random
+ adds r4, r0, 0
+ bl Random
+ lsls r4, 16
+ lsls r0, 16
+ lsrs r0, 16
+ orrs r4, r0
+ adds r0, r4, 0
+ bl sub_810D2AC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_810D2D4
+
+ thumb_func_start sub_810D2F4
+sub_810D2F4: @ 810D2F4
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl sub_810D280
+ adds r1, r0, 0
+ cmp r4, 0
+ beq _0810D318
+ ldr r3, _0810D324
+ ldr r2, _0810D328
+_0810D308:
+ adds r0, r1, 0
+ muls r0, r3
+ adds r1, r0, r2
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ bne _0810D308
+_0810D318:
+ adds r0, r1, 0
+ bl sub_810D2AC
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D324: .4byte 0x41c64e6d
+_0810D328: .4byte 0x00003039
+ thumb_func_end sub_810D2F4
+
+ thumb_func_start sub_810D32C
+sub_810D32C: @ 810D32C
+ push {r4-r6,lr}
+ bl sub_810D280
+ lsrs r6, r0, 16
+ movs r5, 0
+_0810D336:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0810D360
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _0810D368
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ ldr r1, _0810D364
+ ands r1, r0
+ cmp r1, r6
+ bne _0810D368
+ movs r0, 0x1
+ b _0810D370
+ .align 2, 0
+_0810D360: .4byte gPlayerParty
+_0810D364: .4byte 0x0000ffff
+_0810D368:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _0810D336
+ movs r0, 0
+_0810D370:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810D32C
+
+ thumb_func_start sub_810D378
+sub_810D378: @ 810D378
+ push {lr}
+ bl get_map_light_from_warp0
+ lsls r0, 24
+ lsrs r0, 24
+ bl is_light_level_1_2_3_5_or_6
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810D3BE
+ bl RtcCalcLocalTime
+ ldr r1, _0810D3AC
+ ldr r0, _0810D3B0
+ ldrb r0, [r0, 0x2]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0810D3B8
+ ldr r0, _0810D3B4
+ bl FlagSet
+ b _0810D3BE
+ .align 2, 0
+_0810D3AC: .4byte gUnknown_083F8340
+_0810D3B0: .4byte gLocalTime
+_0810D3B4: .4byte 0x0000083a
+_0810D3B8:
+ ldr r0, _0810D3C4
+ bl FlagReset
+_0810D3BE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D3C4: .4byte 0x0000083a
+ thumb_func_end sub_810D378
+
+ thumb_func_start sub_810D3C8
+sub_810D3C8: @ 810D3C8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_807DDFC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810D3E2
+ bl EnableBothScriptContexts
+ adds r0, r4, 0
+ bl DestroyTask
+_0810D3E2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810D3C8
+
+ thumb_func_start sub_810D3E8
+sub_810D3E8: @ 810D3E8
+ push {lr}
+ ldr r0, _0810D3F8
+ movs r1, 0x50
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D3F8: .4byte sub_810D3C8
+ thumb_func_end sub_810D3E8
+
+ thumb_func_start sub_810D3FC
+sub_810D3FC: @ 810D3FC
+ push {lr}
+ ldr r0, _0810D40C
+ bl GetVarPointer
+ movs r1, 0
+ strh r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D40C: .4byte 0x00004049
+ thumb_func_end sub_810D3FC
+
+ thumb_func_start sub_810D410
+sub_810D410: @ 810D410
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _0810D438
+ bl GetVarPointer
+ adds r5, r0, 0
+ ldrh r0, [r5]
+ adds r4, r0
+ strh r4, [r5]
+ ldrh r0, [r5]
+ movs r1, 0x7
+ bl __umodsi3
+ strh r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D438: .4byte 0x00004049
+ thumb_func_end sub_810D410
+
+ thumb_func_start sub_810D43C
+sub_810D43C: @ 810D43C
+ push {lr}
+ ldr r0, _0810D458
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0810D460
+ movs r0, 0
+ bl sub_8090F68
+ ldr r1, _0810D45C
+ strh r0, [r1]
+ movs r0, 0x1
+ bl sub_8090F68
+ b _0810D470
+ .align 2, 0
+_0810D458: .4byte gUnknown_0202E8CC
+_0810D45C: .4byte gUnknown_0202E8CE
+_0810D460:
+ movs r0, 0
+ bl pokedex_count
+ ldr r1, _0810D480
+ strh r0, [r1]
+ movs r0, 0x1
+ bl pokedex_count
+_0810D470:
+ ldr r1, _0810D484
+ strh r0, [r1]
+ bl sub_806912C
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810D480: .4byte gUnknown_0202E8CE
+_0810D484: .4byte gUnknown_0202E8D0
+ thumb_func_end sub_810D43C
+
+ thumb_func_start sub_810D488
+sub_810D488: @ 810D488
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x9
+ bhi _0810D494
+ b _0810D5EC
+_0810D494:
+ cmp r0, 0x13
+ bhi _0810D4A0
+ ldr r0, _0810D49C
+ b _0810D5F6
+ .align 2, 0
+_0810D49C: .4byte gUnknown_081C456A
+_0810D4A0:
+ cmp r0, 0x1D
+ bhi _0810D4AC
+ ldr r0, _0810D4A8
+ b _0810D5F6
+ .align 2, 0
+_0810D4A8: .4byte gUnknown_081C45B0
+_0810D4AC:
+ cmp r0, 0x27
+ bhi _0810D4B8
+ ldr r0, _0810D4B4
+ b _0810D5F6
+ .align 2, 0
+_0810D4B4: .4byte gUnknown_081C45F9
+_0810D4B8:
+ cmp r0, 0x31
+ bhi _0810D4C4
+ ldr r0, _0810D4C0
+ b _0810D5F6
+ .align 2, 0
+_0810D4C0: .4byte gUnknown_081C4648
+_0810D4C4:
+ cmp r0, 0x3B
+ bhi _0810D4D0
+ ldr r0, _0810D4CC
+ b _0810D5F6
+ .align 2, 0
+_0810D4CC: .4byte gUnknown_081C467E
+_0810D4D0:
+ cmp r0, 0x45
+ bhi _0810D4DC
+ ldr r0, _0810D4D8
+ b _0810D5F6
+ .align 2, 0
+_0810D4D8: .4byte gUnknown_081C46B9
+_0810D4DC:
+ cmp r0, 0x4F
+ bhi _0810D4E8
+ ldr r0, _0810D4E4
+ b _0810D5F6
+ .align 2, 0
+_0810D4E4: .4byte gUnknown_081C46FE
+_0810D4E8:
+ cmp r0, 0x59
+ bhi _0810D4F4
+ ldr r0, _0810D4F0
+ b _0810D5F6
+ .align 2, 0
+_0810D4F0: .4byte gUnknown_081C4747
+_0810D4F4:
+ cmp r0, 0x63
+ bhi _0810D500
+ ldr r0, _0810D4FC
+ b _0810D5F6
+ .align 2, 0
+_0810D4FC: .4byte gUnknown_081C4780
+_0810D500:
+ cmp r0, 0x6D
+ bhi _0810D50C
+ ldr r0, _0810D508
+ b _0810D5F6
+ .align 2, 0
+_0810D508: .4byte gUnknown_081C47DF
+_0810D50C:
+ cmp r0, 0x77
+ bhi _0810D518
+ ldr r0, _0810D514
+ b _0810D5F6
+ .align 2, 0
+_0810D514: .4byte gUnknown_081C4828
+_0810D518:
+ cmp r0, 0x81
+ bhi _0810D524
+ ldr r0, _0810D520
+ b _0810D5F6
+ .align 2, 0
+_0810D520: .4byte gUnknown_081C4863
+_0810D524:
+ cmp r0, 0x8B
+ bhi _0810D530
+ ldr r0, _0810D52C
+ b _0810D5F6
+ .align 2, 0
+_0810D52C: .4byte gUnknown_081C489C
+_0810D530:
+ cmp r0, 0x95
+ bhi _0810D53C
+ ldr r0, _0810D538
+ b _0810D5F6
+ .align 2, 0
+_0810D538: .4byte gUnknown_081C48EB
+_0810D53C:
+ cmp r0, 0x9F
+ bhi _0810D548
+ ldr r0, _0810D544
+ b _0810D5F6
+ .align 2, 0
+_0810D544: .4byte gUnknown_081C4936
+_0810D548:
+ cmp r0, 0xA9
+ bhi _0810D554
+ ldr r0, _0810D550
+ b _0810D5F6
+ .align 2, 0
+_0810D550: .4byte gUnknown_081C49A2
+_0810D554:
+ cmp r0, 0xB3
+ bhi _0810D560
+ ldr r0, _0810D55C
+ b _0810D5F6
+ .align 2, 0
+_0810D55C: .4byte gUnknown_081C4A06
+_0810D560:
+ cmp r0, 0xBD
+ bhi _0810D56C
+ ldr r0, _0810D568
+ b _0810D5F6
+ .align 2, 0
+_0810D568: .4byte gUnknown_081C4A4F
+_0810D56C:
+ cmp r0, 0xC7
+ bls _0810D5DA
+ cmp r0, 0xC8
+ bne _0810D5A8
+ ldr r0, _0810D5A4
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810D5DA
+ movs r0, 0xCD
+ lsls r0, 1
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810D5DA
+ b _0810D5F4
+ .align 2, 0
+_0810D5A4: .4byte 0x00000199
+_0810D5A8:
+ cmp r0, 0xC9
+ bne _0810D5E8
+ ldr r0, _0810D5E0
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810D5F4
+ movs r0, 0xCD
+ lsls r0, 1
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810D5F4
+_0810D5DA:
+ ldr r0, _0810D5E4
+ b _0810D5F6
+ .align 2, 0
+_0810D5E0: .4byte 0x00000199
+_0810D5E4: .4byte gUnknown_081C4A91
+_0810D5E8:
+ cmp r0, 0xCA
+ beq _0810D5F4
+_0810D5EC:
+ ldr r0, _0810D5F0
+ b _0810D5F6
+ .align 2, 0
+_0810D5F0: .4byte gUnknown_081C4520
+_0810D5F4:
+ ldr r0, _0810D5FC
+_0810D5F6:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810D5FC: .4byte gUnknown_081C4ADA
+ thumb_func_end sub_810D488
+
+ thumb_func_start sub_810D600
+sub_810D600: @ 810D600
+ push {lr}
+ ldr r0, _0810D614
+ ldrh r0, [r0]
+ bl sub_810D488
+ bl ShowFieldMessage
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D614: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_810D600
+
+ thumb_func_start sub_810D618
+sub_810D618: @ 810D618
+ push {lr}
+ ldr r0, _0810D628
+ bl SetMainCallback2
+ bl ScriptContext2_Enable
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D628: .4byte sub_81428CC
+ thumb_func_end sub_810D618
+
+ thumb_func_start sub_810D62C
+sub_810D62C: @ 810D62C
+ push {lr}
+ ldr r0, _0810D640
+ bl SetMainCallback2
+ ldr r1, _0810D644
+ ldr r0, _0810D648
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D640: .4byte c2_exit_to_overworld_2_switch
+_0810D644: .4byte gUnknown_0300485C
+_0810D648: .4byte mapldr_080CA5C0
+ thumb_func_end sub_810D62C
+
+ thumb_func_start mapldr_080CA5C0
+mapldr_080CA5C0: @ 810D64C
+ push {lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ bl sub_8053E90
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ bl sp109_CreatePCMenu
+ bl sub_80B5838
+ ldr r0, _0810D680
+ movs r1, 0xA
+ bl CreateTask
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D680: .4byte sub_810D684
+ thumb_func_end mapldr_080CA5C0
+
+ thumb_func_start sub_810D684
+sub_810D684: @ 810D684
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0810D6A0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0810D69C
+ adds r0, r2, 0
+ bl DestroyTask
+_0810D69C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D6A0: .4byte gPaletteFade
+ thumb_func_end sub_810D684
+
+ thumb_func_start sub_810D6A4
+sub_810D6A4: @ 810D6A4
+ push {lr}
+ ldr r0, _0810D6B4
+ bl SetMainCallback2
+ bl ScriptContext2_Enable
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D6B4: .4byte sub_8145D88
+ thumb_func_end sub_810D6A4
+
+ thumb_func_start sub_810D6B8
+sub_810D6B8: @ 810D6B8
+ push {lr}
+ ldr r0, _0810D6D0
+ ldr r1, _0810D6D4
+ str r1, [r0, 0x8]
+ ldr r0, _0810D6D8
+ bl SetMainCallback2
+ bl ScriptContext2_Enable
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D6D0: .4byte gMain
+_0810D6D4: .4byte c2_exit_to_overworld_2_switch
+_0810D6D8: .4byte Cb2_ViewWallClock
+ thumb_func_end sub_810D6B8
+
+ thumb_func_start wild_pokemon_reroll
+wild_pokemon_reroll: @ 810D6DC
+ ldr r0, _0810D6F0
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _0810D6F4
+ strb r1, [r0]
+ ldr r1, _0810D6F8
+ movs r0, 0
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0810D6F0: .4byte gUnknown_02039250
+_0810D6F4: .4byte gUnknown_02039251
+_0810D6F8: .4byte gUnknown_02039254
+ thumb_func_end wild_pokemon_reroll
+
+ thumb_func_start sub_810D6FC
+sub_810D6FC: @ 810D6FC
+ ldr r1, _0810D714
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _0810D718
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _0810D71C
+ ldr r0, _0810D720
+ ldr r0, [r0, 0x20]
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0810D714: .4byte gUnknown_02039250
+_0810D718: .4byte gUnknown_02039251
+_0810D71C: .4byte gUnknown_02039254
+_0810D720: .4byte gMain
+ thumb_func_end sub_810D6FC
+
+ thumb_func_start sp0E3_walkrun_bitfield_interpretation
+sp0E3_walkrun_bitfield_interpretation: @ 810D724
+ push {lr}
+ movs r0, 0x4
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810D736
+ movs r0, 0x1
+ b _0810D748
+_0810D736:
+ movs r0, 0x2
+ bl TestPlayerAvatarFlags
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810D746
+ movs r0, 0
+ b _0810D748
+_0810D746:
+ movs r0, 0x2
+_0810D748:
+ pop {r1}
+ bx r1
+ thumb_func_end sp0E3_walkrun_bitfield_interpretation
+
+ thumb_func_start sub_810D74C
+sub_810D74C: @ 810D74C
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ cmp r6, 0x63
+ bhi _0810D778
+ ldr r4, _0810D770
+ adds r0, r4, 0
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r1, _0810D774
+ adds r0, r4, 0
+ bl StringAppend
+ b _0810D780
+ .align 2, 0
+_0810D770: .4byte gStringVar1
+_0810D774: .4byte gOtherText_Times
+_0810D778:
+ ldr r0, _0810D7CC
+ ldr r1, _0810D7D0
+ bl StringCopy
+_0810D780:
+ ldr r0, _0810D7D4
+ cmp r7, r0
+ bhi _0810D7E0
+ ldr r4, _0810D7D8
+ adds r0, r7, 0
+ movs r1, 0x3C
+ bl __udivsi3
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ movs r0, 0xAD
+ strb r0, [r4, 0x2]
+ adds r5, r4, 0x3
+ adds r0, r7, 0
+ movs r1, 0x3C
+ bl __umodsi3
+ movs r1, 0x64
+ muls r0, r1
+ movs r1, 0x3C
+ bl __udivsi3
+ adds r1, r0, 0
+ adds r0, r5, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r1, _0810D7DC
+ adds r0, r4, 0
+ bl StringAppend
+ b _0810D7E8
+ .align 2, 0
+_0810D7CC: .4byte gStringVar1
+_0810D7D0: .4byte gOtherText_99Times
+_0810D7D4: .4byte 0x00000e0f
+_0810D7D8: .4byte gStringVar2
+_0810D7DC: .4byte gOtherText_Seconds
+_0810D7E0:
+ ldr r0, _0810D7F4
+ ldr r1, _0810D7F8
+ bl StringCopy
+_0810D7E8:
+ movs r4, 0
+ cmp r6, 0
+ bne _0810D7FC
+ movs r4, 0x5
+ b _0810D81A
+ .align 2, 0
+_0810D7F4: .4byte gStringVar2
+_0810D7F8: .4byte gOtherText_1Minute
+_0810D7FC:
+ cmp r6, 0x3
+ bhi _0810D804
+ movs r4, 0x4
+ b _0810D81A
+_0810D804:
+ cmp r6, 0x9
+ bhi _0810D80C
+ movs r4, 0x3
+ b _0810D81A
+_0810D80C:
+ cmp r6, 0x13
+ bhi _0810D814
+ movs r4, 0x2
+ b _0810D81A
+_0810D814:
+ cmp r6, 0x63
+ bhi _0810D81A
+ movs r4, 0x1
+_0810D81A:
+ adds r0, r7, 0
+ movs r1, 0x3C
+ bl __udivsi3
+ cmp r0, 0xA
+ bhi _0810D82A
+ adds r0, r4, 0x5
+ b _0810D848
+_0810D82A:
+ cmp r0, 0xF
+ bhi _0810D832
+ adds r0, r4, 0x4
+ b _0810D848
+_0810D832:
+ cmp r0, 0x14
+ bhi _0810D83A
+ adds r0, r4, 0x3
+ b _0810D848
+_0810D83A:
+ cmp r0, 0x28
+ bhi _0810D842
+ adds r0, r4, 0x2
+ b _0810D848
+_0810D842:
+ cmp r0, 0x3B
+ bhi _0810D84C
+ adds r0, r4, 0x1
+_0810D848:
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0810D84C:
+ ldr r0, _0810D858
+ strh r4, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D858: .4byte gScriptResult
+ thumb_func_end sub_810D74C
+
+ thumb_func_start sub_810D85C
+sub_810D85C: @ 810D85C
+ push {r4,r5,lr}
+ ldr r0, _0810D880
+ ldr r1, _0810D884
+ ldr r4, [r0, 0x20]
+ ldr r0, [r1]
+ subs r4, r0
+ ldr r5, _0810D888
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl sub_810D74C
+ ldrb r1, [r5]
+ adds r0, r4, 0
+ bl sub_810D88C
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D880: .4byte gMain
+_0810D884: .4byte gUnknown_02039254
+_0810D888: .4byte gUnknown_02039251
+ thumb_func_end sub_810D85C
+
+ thumb_func_start sub_810D88C
+sub_810D88C: @ 810D88C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ ldr r6, _0810D8E0
+ adds r0, r6, 0
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r7, _0810D8E4
+ adds r0, r7, 0
+ bl VarGet
+ lsls r0, 16
+ adds r4, r0
+ cmp r4, r5
+ bhi _0810D8BC
+ cmp r4, 0
+ bne _0810D8D6
+_0810D8BC:
+ lsls r1, r5, 16
+ lsrs r1, 16
+ adds r0, r6, 0
+ bl VarSet
+ lsrs r1, r5, 16
+ adds r0, r7, 0
+ bl VarSet
+ ldr r0, _0810D8E8
+ mov r1, r8
+ bl VarSet
+_0810D8D6:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D8E0: .4byte 0x00004028
+_0810D8E4: .4byte 0x00004029
+_0810D8E8: .4byte 0x00004027
+ thumb_func_end sub_810D88C
+
+ thumb_func_start sub_810D8EC
+sub_810D8EC: @ 810D8EC
+ push {r4,lr}
+ ldr r0, _0810D920
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _0810D924
+ bl VarGet
+ lsls r0, 16
+ adds r4, r0
+ cmp r4, 0
+ beq _0810D92C
+ ldr r0, _0810D928
+ bl VarGet
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_810D74C
+ movs r0, 0x1
+ b _0810D92E
+ .align 2, 0
+_0810D920: .4byte 0x00004028
+_0810D924: .4byte 0x00004029
+_0810D928: .4byte 0x00004027
+_0810D92C:
+ movs r0, 0
+_0810D92E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810D8EC
+
+ thumb_func_start sub_810D934
+sub_810D934: @ 810D934
+ push {r4,lr}
+ ldr r0, _0810D974
+ ldrh r1, [r0]
+ ldr r0, _0810D978
+ cmp r1, r0
+ beq _0810D96C
+ ldr r4, _0810D97C
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ beq _0810D95E
+ adds r0, r4, 0
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x3
+ bne _0810D96C
+_0810D95E:
+ adds r0, r4, 0
+ movs r1, 0
+ bl VarSet
+ movs r0, 0
+ bl sav1_set_battle_music_maybe
+_0810D96C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D974: .4byte gUnknown_020297F0
+_0810D978: .4byte 0x00000c1d
+_0810D97C: .4byte 0x000040a9
+ thumb_func_end sub_810D934
+
+ thumb_func_start sub_810D980
+sub_810D980: @ 810D980
+ push {lr}
+ ldr r0, _0810D998
+ bl FlagSet
+ ldr r0, _0810D99C
+ bl GetVarPointer
+ movs r1, 0
+ strh r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D998: .4byte 0x0000082d
+_0810D99C: .4byte 0x0000404a
+ thumb_func_end sub_810D980
+
+ thumb_func_start sub_810D9A0
+sub_810D9A0: @ 810D9A0
+ push {lr}
+ ldr r0, _0810D9AC
+ bl FlagReset
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810D9AC: .4byte 0x0000082d
+ thumb_func_end sub_810D9A0
+
+ thumb_func_start sub_810D9B0
+sub_810D9B0: @ 810D9B0
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _0810D9DC
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810D9D6
+ ldr r0, _0810D9E0
+ bl GetVarPointer
+ ldrh r1, [r0]
+ adds r1, r4, r1
+ strh r1, [r0]
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r1, 0xCC
+ bhi _0810D9E4
+_0810D9D6:
+ movs r0, 0
+ b _0810D9E6
+ .align 2, 0
+_0810D9DC: .4byte 0x0000082d
+_0810D9E0: .4byte 0x0000404a
+_0810D9E4:
+ movs r0, 0x1
+_0810D9E6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810D9B0
+
+ thumb_func_start sub_810D9EC
+sub_810D9EC: @ 810D9EC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ adds r7, r3, 0
+ ldr r0, _0810DA1C
+ bl GetVarPointer
+ adds r4, r0, 0
+ ldr r0, _0810DA20
+ bl GetVarPointer
+ ldrh r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0x9
+ bhi _0810DAB2
+ lsls r0, 2
+ ldr r1, _0810DA24
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0810DA1C: .4byte 0x0000404a
+_0810DA20: .4byte 0x000040b4
+_0810DA24: .4byte _0810DA28
+ .align 2, 0
+_0810DA28:
+ .4byte _0810DA50
+ .4byte _0810DA60
+ .4byte _0810DA54
+ .4byte _0810DA58
+ .4byte _0810DA58
+ .4byte _0810DA5C
+ .4byte _0810DA88
+ .4byte _0810DA50
+ .4byte _0810DA54
+ .4byte _0810DA5C
+_0810DA50:
+ movs r0, 0x1
+ b _0810DABE
+_0810DA54:
+ movs r0, 0x4
+ b _0810DABE
+_0810DA58:
+ movs r0, 0x2
+ b _0810DABE
+_0810DA5C:
+ movs r0, 0x3
+ b _0810DABE
+_0810DA60:
+ ldrh r0, [r4]
+ cmp r0, 0x3B
+ bhi _0810DA70
+ movs r0, 0x31
+ strb r0, [r5]
+ ldrh r0, [r4]
+ adds r0, 0x13
+ b _0810DAB0
+_0810DA70:
+ cmp r0, 0x8B
+ bhi _0810DA7E
+ movs r0, 0x30
+ strb r0, [r5]
+ ldrh r0, [r4]
+ subs r0, 0x3C
+ b _0810DAB0
+_0810DA7E:
+ movs r0, 0x2F
+ strb r0, [r5]
+ ldrh r0, [r4]
+ subs r0, 0x8C
+ b _0810DAB0
+_0810DA88:
+ ldrh r0, [r4]
+ cmp r0, 0x41
+ bhi _0810DA98
+ movs r0, 0x2F
+ strb r0, [r5]
+ ldrh r1, [r4]
+ movs r0, 0x41
+ b _0810DAAE
+_0810DA98:
+ cmp r0, 0x91
+ bhi _0810DAA6
+ movs r0, 0x30
+ strb r0, [r5]
+ ldrh r1, [r4]
+ movs r0, 0x91
+ b _0810DAAE
+_0810DAA6:
+ movs r0, 0x31
+ strb r0, [r5]
+ ldrh r1, [r4]
+ movs r0, 0xE0
+_0810DAAE:
+ subs r0, r1
+_0810DAB0:
+ strh r0, [r6]
+_0810DAB2:
+ movs r0, 0
+ mov r1, r8
+ strb r0, [r1]
+ movs r0, 0x14
+ strh r0, [r7]
+ movs r0, 0
+_0810DABE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810D9EC
+
+ thumb_func_start sub_810DAC8
+sub_810DAC8: @ 810DAC8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0
+ bl sub_8008218
+ lsls r0, 24
+ lsrs r7, r0, 24
+ bl sub_800820C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ cmp r4, r5
+ bcs _0810DB12
+ ldr r0, _0810DB20
+ mov r8, r0
+_0810DAEA:
+ cmp r7, r4
+ beq _0810DB08
+ lsls r0, r6, 2
+ add r0, r8
+ ldr r0, [r0]
+ lsls r1, r4, 3
+ subs r1, r4
+ lsls r1, 2
+ ldr r2, _0810DB24
+ adds r1, r2
+ bl StringCopy
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0810DB08:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _0810DAEA
+_0810DB12:
+ adds r0, r5, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810DB20: .4byte gUnknown_083D1464
+_0810DB24: .4byte gLinkPlayers + 0x8
+ thumb_func_end sub_810DAC8
+
+ thumb_func_start sub_810DB28
+sub_810DB28: @ 810DB28
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ movs r7, 0
+ movs r0, 0
+ mov r9, r0
+ mov r8, r0
+ ldr r1, _0810DB74
+ add r0, sp, 0x8
+ movs r2, 0x4
+ bl memcpy
+ add r4, sp, 0xC
+ ldr r1, _0810DB78
+ adds r0, r4, 0
+ movs r2, 0x8
+ bl memcpy
+ bl sub_8008218
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x2
+ beq _0810DB94
+ cmp r0, 0x2
+ bgt _0810DB7C
+ cmp r0, 0x1
+ beq _0810DBC0
+ b _0810DBD2
+ .align 2, 0
+_0810DB74: .4byte gUnknown_083F8358
+_0810DB78: .4byte gUnknown_083F835C
+_0810DB7C:
+ cmp r1, 0x3
+ beq _0810DB86
+ cmp r1, 0x4
+ beq _0810DBA8
+ b _0810DBD2
+_0810DB86:
+ movs r7, 0x2
+ ldr r1, _0810DB90
+ ldrh r0, [r1]
+ subs r0, 0x1
+ b _0810DBAE
+ .align 2, 0
+_0810DB90: .4byte gSaveBlock1
+_0810DB94:
+ movs r7, 0x1
+ ldr r0, _0810DBA4
+ ldrh r1, [r0]
+ mov r9, r1
+ ldrh r0, [r0, 0x2]
+ subs r0, 0x1
+ b _0810DBCC
+ .align 2, 0
+_0810DBA4: .4byte gSaveBlock1
+_0810DBA8:
+ ldr r1, _0810DBBC
+ ldrh r0, [r1]
+ adds r0, 0x1
+_0810DBAE:
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ ldrh r1, [r1, 0x2]
+ mov r8, r1
+ b _0810DBD2
+ .align 2, 0
+_0810DBBC: .4byte gSaveBlock1
+_0810DBC0:
+ movs r7, 0x3
+ ldr r0, _0810DBD8
+ ldrh r4, [r0]
+ mov r9, r4
+ ldrh r0, [r0, 0x2]
+ adds r0, 0x1
+_0810DBCC:
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+_0810DBD2:
+ movs r6, 0
+ b _0810DC5C
+ .align 2, 0
+_0810DBD8: .4byte gSaveBlock1
+_0810DBDC:
+ cmp r10, r6
+ beq _0810DC56
+ ldr r1, _0810DC74
+ lsls r0, r6, 3
+ subs r0, r6
+ lsls r0, 2
+ adds r0, r1
+ ldrb r1, [r0, 0x13]
+ movs r0, 0
+ bl sub_805983C
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, sp
+ adds r1, r7
+ adds r1, 0x8
+ ldrb r1, [r1]
+ movs r2, 0xF0
+ subs r2, r6
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r5, r7, 1
+ mov r3, sp
+ adds r3, r5
+ adds r3, 0xC
+ ldrb r3, [r3]
+ lsls r3, 24
+ asrs r3, 24
+ mov r12, r3
+ mov r4, r9
+ lsls r3, r4, 16
+ asrs r3, 16
+ add r3, r12
+ adds r3, 0x7
+ lsls r3, 16
+ asrs r3, 16
+ mov r4, sp
+ adds r4, 0xD
+ adds r4, r5
+ ldrb r4, [r4]
+ lsls r4, 24
+ asrs r4, 24
+ mov r12, r4
+ mov r5, r8
+ lsls r4, r5, 16
+ asrs r4, 16
+ add r4, r12
+ adds r4, 0x7
+ lsls r4, 16
+ asrs r4, 16
+ str r4, [sp]
+ movs r4, 0
+ str r4, [sp, 0x4]
+ bl SpawnSpecialFieldObjectParametrized
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x4
+ bne _0810DC56
+ movs r7, 0
+_0810DC56:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0810DC5C:
+ ldr r0, _0810DC78
+ ldrh r0, [r0]
+ cmp r6, r0
+ bcc _0810DBDC
+ 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
+_0810DC74: .4byte gLinkPlayers
+_0810DC78: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_810DB28
+
+ thumb_func_start sub_810DC7C
+sub_810DC7C: @ 810DC7C
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _0810DC9C
+_0810DC82:
+ ldr r0, _0810DCA0
+ ldrh r0, [r0]
+ cmp r4, r0
+ bne _0810DCA8
+ lsls r1, r4, 2
+ adds r1, r5
+ ldrb r0, [r1]
+ ldrb r1, [r1, 0x1]
+ ldr r2, _0810DCA4
+ bl MapGridSetMetatileIdAt
+ b _0810DCB6
+ .align 2, 0
+_0810DC9C: .4byte gUnknown_083F8364
+_0810DCA0: .4byte gUnknown_0202E8CC
+_0810DCA4: .4byte 0x00000206
+_0810DCA8:
+ lsls r1, r4, 2
+ adds r1, r5
+ ldrb r0, [r1]
+ ldrb r1, [r1, 0x1]
+ ldr r2, _0810DCC8
+ bl MapGridSetMetatileIdAt
+_0810DCB6:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _0810DC82
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810DCC8: .4byte 0x00000205
+ thumb_func_end sub_810DC7C
+
+ thumb_func_start sub_810DCCC
+sub_810DCCC: @ 810DCCC
+ push {r4-r6,lr}
+ movs r5, 0xC
+_0810DCD0:
+ movs r4, 0x7
+ adds r6, r5, 0x1
+_0810DCD4:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileIdAt
+ ldr r1, _0810DCF0
+ adds r0, r1
+ cmp r0, 0x37
+ bls _0810DCE6
+ b _0810DEC0
+_0810DCE6:
+ lsls r0, 2
+ ldr r1, _0810DCF4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0810DCF0: .4byte 0xfffffde6
+_0810DCF4: .4byte _0810DCF8
+ .align 2, 0
+_0810DCF8:
+ .4byte _0810DE7E
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DDD8
+ .4byte _0810DDDE
+ .4byte _0810DE18
+ .4byte _0810DE20
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DDE8
+ .4byte _0810DDEE
+ .4byte _0810DE28
+ .4byte _0810DE30
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DDF8
+ .4byte _0810DDFE
+ .4byte _0810DE38
+ .4byte _0810DE40
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DE08
+ .4byte _0810DE10
+ .4byte _0810DE48
+ .4byte _0810DE50
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DE58
+ .4byte _0810DE68
+ .4byte _0810DE78
+ .4byte _0810DEA0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DE60
+ .4byte _0810DE70
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEC0
+ .4byte _0810DEB6
+ .4byte _0810DEA8
+_0810DDD8:
+ movs r2, 0x8C
+ lsls r2, 2
+ b _0810DEAC
+_0810DDDE:
+ ldr r2, _0810DDE4
+ b _0810DEAC
+ .align 2, 0
+_0810DDE4: .4byte 0x00000231
+_0810DDE8:
+ movs r2, 0x8E
+ lsls r2, 2
+ b _0810DEAC
+_0810DDEE:
+ ldr r2, _0810DDF4
+ b _0810DEAC
+ .align 2, 0
+_0810DDF4: .4byte 0x00000239
+_0810DDF8:
+ movs r2, 0x88
+ lsls r2, 2
+ b _0810DEAC
+_0810DDFE:
+ ldr r2, _0810DE04
+ b _0810DEAC
+ .align 2, 0
+_0810DE04: .4byte 0x00000221
+_0810DE08:
+ ldr r2, _0810DE0C
+ b _0810DEAC
+ .align 2, 0
+_0810DE0C: .4byte 0x00000e28
+_0810DE10:
+ ldr r2, _0810DE14
+ b _0810DEAC
+ .align 2, 0
+_0810DE14: .4byte 0x00000e29
+_0810DE18:
+ ldr r2, _0810DE1C
+ b _0810DEAC
+ .align 2, 0
+_0810DE1C: .4byte 0x00000232
+_0810DE20:
+ ldr r2, _0810DE24
+ b _0810DEAC
+ .align 2, 0
+_0810DE24: .4byte 0x00000233
+_0810DE28:
+ ldr r2, _0810DE2C
+ b _0810DEAC
+ .align 2, 0
+_0810DE2C: .4byte 0x0000023a
+_0810DE30:
+ ldr r2, _0810DE34
+ b _0810DEAC
+ .align 2, 0
+_0810DE34: .4byte 0x0000023b
+_0810DE38:
+ ldr r2, _0810DE3C
+ b _0810DEAC
+ .align 2, 0
+_0810DE3C: .4byte 0x00000222
+_0810DE40:
+ ldr r2, _0810DE44
+ b _0810DEAC
+ .align 2, 0
+_0810DE44: .4byte 0x00000223
+_0810DE48:
+ ldr r2, _0810DE4C
+ b _0810DEAC
+ .align 2, 0
+_0810DE4C: .4byte 0x00000e2a
+_0810DE50:
+ ldr r2, _0810DE54
+ b _0810DEAC
+ .align 2, 0
+_0810DE54: .4byte 0x00000e2b
+_0810DE58:
+ ldr r2, _0810DE5C
+ b _0810DEAC
+ .align 2, 0
+_0810DE5C: .4byte 0x00000e42
+_0810DE60:
+ ldr r2, _0810DE64
+ b _0810DEAC
+ .align 2, 0
+_0810DE64: .4byte 0x0000021a
+_0810DE68:
+ ldr r2, _0810DE6C
+ b _0810DEAC
+ .align 2, 0
+_0810DE6C: .4byte 0x00000e43
+_0810DE70:
+ ldr r2, _0810DE74
+ b _0810DEAC
+ .align 2, 0
+_0810DE74: .4byte 0x0000021a
+_0810DE78:
+ movs r2, 0xE4
+ lsls r2, 4
+ b _0810DEAC
+_0810DE7E:
+ subs r1, r5, 0x1
+ adds r0, r4, 0
+ bl MapGridGetMetatileIdAt
+ movs r1, 0x90
+ lsls r1, 2
+ cmp r0, r1
+ bne _0810DE98
+ ldr r2, _0810DE94
+ b _0810DEAC
+ .align 2, 0
+_0810DE94: .4byte 0x00000e48
+_0810DE98:
+ ldr r2, _0810DE9C
+ b _0810DEAC
+ .align 2, 0
+_0810DE9C: .4byte 0x00000e49
+_0810DEA0:
+ ldr r2, _0810DEA4
+ b _0810DEAC
+ .align 2, 0
+_0810DEA4: .4byte 0x00000e41
+_0810DEA8:
+ movs r2, 0xE5
+ lsls r2, 4
+_0810DEAC:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridSetMetatileIdAt
+ b _0810DEC0
+_0810DEB6:
+ ldr r2, _0810DED8
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridSetMetatileIdAt
+_0810DEC0:
+ adds r4, 0x1
+ cmp r4, 0xF
+ bgt _0810DEC8
+ b _0810DCD4
+_0810DEC8:
+ adds r5, r6, 0
+ cmp r5, 0x17
+ bgt _0810DED0
+ b _0810DCD0
+_0810DED0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810DED8: .4byte 0x00000251
+ thumb_func_end sub_810DCCC
+
+ thumb_func_start sub_810DEDC
+sub_810DEDC: @ 810DEDC
+ push {r4-r6,lr}
+ ldr r4, _0810DF18
+ movs r5, 0x2
+_0810DEE2:
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ ldr r2, _0810DF1C
+ bl MapGridSetMetatileIdAt
+ adds r4, 0x4
+ subs r5, 0x1
+ cmp r5, 0
+ bge _0810DEE2
+ movs r5, 0xC
+_0810DEF6:
+ movs r4, 0x7
+ adds r6, r5, 0x1
+_0810DEFA:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileIdAt
+ ldr r1, _0810DF20
+ adds r0, r1
+ cmp r0, 0x30
+ bls _0810DF0C
+ b _0810E056
+_0810DF0C:
+ lsls r0, 2
+ ldr r1, _0810DF24
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0810DF18: .4byte gUnknown_083F8364
+_0810DF1C: .4byte 0x00000206
+_0810DF20: .4byte 0xfffffde0
+_0810DF24: .4byte _0810DF28
+ .align 2, 0
+_0810DF28:
+ .4byte _0810DFEC
+ .4byte _0810DFF2
+ .4byte _0810E00C
+ .4byte _0810E014
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810DFFC
+ .4byte _0810E002
+ .4byte _0810E01C
+ .4byte _0810E024
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E02C
+ .4byte _0810E034
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E03C
+ .4byte _0810E03C
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E056
+ .4byte _0810E04C
+_0810DFEC:
+ movs r2, 0x8C
+ lsls r2, 2
+ b _0810E03E
+_0810DFF2:
+ ldr r2, _0810DFF8
+ b _0810E03E
+ .align 2, 0
+_0810DFF8: .4byte 0x00000231
+_0810DFFC:
+ movs r2, 0x8E
+ lsls r2, 2
+ b _0810E03E
+_0810E002:
+ ldr r2, _0810E008
+ b _0810E03E
+ .align 2, 0
+_0810E008: .4byte 0x00000239
+_0810E00C:
+ ldr r2, _0810E010
+ b _0810E03E
+ .align 2, 0
+_0810E010: .4byte 0x00000232
+_0810E014:
+ ldr r2, _0810E018
+ b _0810E03E
+ .align 2, 0
+_0810E018: .4byte 0x00000233
+_0810E01C:
+ ldr r2, _0810E020
+ b _0810E03E
+ .align 2, 0
+_0810E020: .4byte 0x0000023a
+_0810E024:
+ ldr r2, _0810E028
+ b _0810E03E
+ .align 2, 0
+_0810E028: .4byte 0x0000023b
+_0810E02C:
+ ldr r2, _0810E030
+ b _0810E03E
+ .align 2, 0
+_0810E030: .4byte 0x00000e42
+_0810E034:
+ ldr r2, _0810E038
+ b _0810E03E
+ .align 2, 0
+_0810E038: .4byte 0x00000e43
+_0810E03C:
+ ldr r2, _0810E048
+_0810E03E:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridSetMetatileIdAt
+ b _0810E056
+ .align 2, 0
+_0810E048: .4byte 0x0000021a
+_0810E04C:
+ ldr r2, _0810E06C
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridSetMetatileIdAt
+_0810E056:
+ adds r4, 0x1
+ cmp r4, 0xF
+ bgt _0810E05E
+ b _0810DEFA
+_0810E05E:
+ adds r5, r6, 0
+ cmp r5, 0x17
+ bgt _0810E066
+ b _0810DEF6
+_0810E066:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E06C: .4byte 0x00000251
+ thumb_func_end sub_810DEDC
+
+ thumb_func_start sub_810E070
+sub_810E070: @ 810E070
+ push {lr}
+ ldr r0, _0810E090
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _0810E094
+ strb r1, [r0]
+ movs r0, 0x2C
+ bl PlaySE
+ ldr r0, _0810E098
+ movs r1, 0x8
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E090: .4byte gUnknown_02039258
+_0810E094: .4byte gUnknown_02039259
+_0810E098: .4byte sub_810E09C
+ thumb_func_end sub_810E070
+
+ thumb_func_start sub_810E09C
+sub_810E09C: @ 810E09C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _0810E0E4
+ ldr r5, _0810E0E8
+ ldrb r1, [r5]
+ adds r0, r1, r0
+ ldr r4, _0810E0EC
+ ldrb r2, [r4]
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _0810E0F8
+ ldr r0, _0810E0F0
+ ldrb r0, [r0]
+ ldr r2, _0810E0F4
+ lsls r1, 1
+ adds r1, r2
+ ldrh r1, [r1]
+ bl sub_810E104
+ movs r0, 0
+ strb r0, [r4]
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bne _0810E0FC
+ adds r0, r6, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ b _0810E0FC
+ .align 2, 0
+_0810E0E4: .4byte gUnknown_083F8370
+_0810E0E8: .4byte gUnknown_02039259
+_0810E0EC: .4byte gUnknown_02039258
+_0810E0F0: .4byte gUnknown_0202E8CC
+_0810E0F4: .4byte gUnknown_083F8376
+_0810E0F8:
+ adds r0, r2, 0x1
+ strb r0, [r4]
+_0810E0FC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810E09C
+
+ thumb_func_start sub_810E104
+sub_810E104: @ 810E104
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r2, r1, 16
+ movs r7, 0
+ subs r0, 0x1
+ cmp r0, 0x7
+ bhi _0810E1CC
+ lsls r0, 2
+ ldr r1, _0810E128
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0810E128: .4byte _0810E12C
+ .align 2, 0
+_0810E12C:
+ .4byte _0810E14C
+ .4byte _0810E15E
+ .4byte _0810E170
+ .4byte _0810E182
+ .4byte _0810E190
+ .4byte _0810E1A6
+ .4byte _0810E1B2
+ .4byte _0810E1C0
+_0810E14C:
+ movs r7, 0x2
+ mov r1, sp
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x7
+ strh r0, [r1, 0x2]
+ add r1, sp, 0x8
+ movs r0, 0x68
+ b _0810E1A0
+_0810E15E:
+ movs r7, 0x2
+ mov r1, sp
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x7
+ strh r0, [r1, 0x2]
+ add r1, sp, 0x8
+ movs r0, 0x4E
+ b _0810E1A0
+_0810E170:
+ movs r7, 0x2
+ mov r1, sp
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x7
+ strh r0, [r1, 0x2]
+ add r1, sp, 0x8
+ movs r0, 0x5B
+ b _0810E1A0
+_0810E182:
+ movs r7, 0x1
+ mov r1, sp
+ movs r0, 0x7
+ strh r0, [r1]
+ add r1, sp, 0x8
+ movs r0, 0x27
+ b _0810E1CA
+_0810E190:
+ movs r7, 0x2
+ mov r1, sp
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x7
+ strh r0, [r1, 0x2]
+ add r1, sp, 0x8
+ movs r0, 0x34
+_0810E1A0:
+ strh r0, [r1]
+ strh r0, [r1, 0x2]
+ b _0810E1CC
+_0810E1A6:
+ movs r7, 0x1
+ mov r0, sp
+ strh r7, [r0]
+ add r1, sp, 0x8
+ movs r0, 0x41
+ b _0810E1CA
+_0810E1B2:
+ movs r7, 0x1
+ mov r1, sp
+ movs r0, 0x7
+ strh r0, [r1]
+ add r1, sp, 0x8
+ movs r0, 0xD
+ b _0810E1CA
+_0810E1C0:
+ movs r7, 0x1
+ mov r0, sp
+ strh r7, [r0]
+ add r1, sp, 0x8
+ movs r0, 0x1A
+_0810E1CA:
+ strh r0, [r1]
+_0810E1CC:
+ movs r6, 0
+ cmp r6, r7
+ bcs _0810E21E
+ movs r1, 0xC0
+ lsls r1, 4
+ adds r0, r1, 0
+ adds r1, r2, 0
+ orrs r1, r0
+ lsls r1, 16
+ mov r9, r1
+ adds r1, r2, 0
+ adds r1, 0x8
+ orrs r1, r0
+ lsls r1, 16
+ mov r8, r1
+_0810E1EA:
+ lsls r1, r6, 1
+ mov r3, sp
+ adds r5, r3, r1
+ ldrh r0, [r5]
+ adds r0, 0x7
+ add r4, sp, 0x8
+ adds r4, r1
+ ldrh r1, [r4]
+ adds r1, 0x7
+ mov r3, r9
+ lsrs r2, r3, 16
+ bl MapGridSetMetatileIdAt
+ ldrh r0, [r5]
+ adds r0, 0x7
+ ldrh r1, [r4]
+ adds r1, 0x8
+ mov r3, r8
+ lsrs r2, r3, 16
+ bl MapGridSetMetatileIdAt
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, r7
+ bcc _0810E1EA
+_0810E21E:
+ bl DrawWholeMapView
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810E104
+
+ thumb_func_start sub_810E230
+sub_810E230: @ 810E230
+ push {lr}
+ ldr r0, _0810E244
+ ldrb r0, [r0]
+ ldr r1, _0810E248
+ ldrh r1, [r1, 0x8]
+ bl sub_810E104
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E244: .4byte gUnknown_0202E8CC
+_0810E248: .4byte gUnknown_083F8376
+ thumb_func_end sub_810E230
+
+ thumb_func_start sub_810E24C
+sub_810E24C: @ 810E24C
+ push {lr}
+ ldr r0, _0810E258
+ bl ShowFieldMessage
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E258: .4byte gStringVar4
+ thumb_func_end sub_810E24C
+
+ thumb_func_start sub_810E25C
+sub_810E25C: @ 810E25C
+ ldr r1, _0810E26C
+ ldr r2, _0810E270
+ ldrh r0, [r2]
+ strh r0, [r1]
+ ldr r1, _0810E274
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_0810E26C: .4byte gUnknown_0202E8CC
+_0810E270: .4byte gSaveBlock1
+_0810E274: .4byte gUnknown_0202E8CE
+ thumb_func_end sub_810E25C
+
+ thumb_func_start sub_810E278
+sub_810E278: @ 810E278
+ push {lr}
+ ldr r0, _0810E294
+ ldrb r1, [r0, 0xB]
+ lsls r1, 8
+ ldrb r0, [r0, 0xA]
+ orrs r0, r1
+ movs r1, 0xA
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810E294: .4byte gSaveBlock2
+ thumb_func_end sub_810E278
+
+ thumb_func_start sub_810E298
+sub_810E298: @ 810E298
+ push {lr}
+ ldr r0, _0810E2AC
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _0810E2B8
+ ldr r0, _0810E2B0
+ ldr r1, _0810E2B4
+ bl StringCopy
+ b _0810E2C0
+ .align 2, 0
+_0810E2AC: .4byte gSaveBlock2
+_0810E2B0: .4byte gStringVar1
+_0810E2B4: .4byte gOtherText_BigGuy
+_0810E2B8:
+ ldr r0, _0810E2C4
+ ldr r1, _0810E2C8
+ bl StringCopy
+_0810E2C0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E2C4: .4byte gStringVar1
+_0810E2C8: .4byte gOtherText_BigGirl
+ thumb_func_end sub_810E298
+
+ thumb_func_start sub_810E2CC
+sub_810E2CC: @ 810E2CC
+ push {lr}
+ ldr r0, _0810E2E0
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _0810E2EC
+ ldr r0, _0810E2E4
+ ldr r1, _0810E2E8
+ bl StringCopy
+ b _0810E2F4
+ .align 2, 0
+_0810E2E0: .4byte gSaveBlock2
+_0810E2E4: .4byte gStringVar1
+_0810E2E8: .4byte gOtherText_Daughter
+_0810E2EC:
+ ldr r0, _0810E2F8
+ ldr r1, _0810E2FC
+ bl StringCopy
+_0810E2F4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E2F8: .4byte gStringVar1
+_0810E2FC: .4byte gOtherText_Son
+ thumb_func_end sub_810E2CC
+
+ thumb_func_start sub_810E300
+sub_810E300: @ 810E300
+ ldr r0, _0810E308
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_0810E308: .4byte gUnknown_02024D26
+ thumb_func_end sub_810E300
+
+ thumb_func_start sub_810E30C
+sub_810E30C: @ 810E30C
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _0810E32C
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0810E330
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x4
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0
+ movs r3, 0x6
+ bl warp1_set
+ b _0810E342
+ .align 2, 0
+_0810E32C: .4byte gUnknown_0202E8CC
+_0810E330:
+ movs r2, 0x1
+ negs r2, r2
+ movs r0, 0x4
+ str r0, [sp]
+ movs r0, 0x13
+ movs r1, 0x1
+ movs r3, 0x6
+ bl warp1_set
+_0810E342:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810E30C
+
+ thumb_func_start sub_810E348
+sub_810E348: @ 810E348
+ push {lr}
+ ldr r0, _0810E358
+ ldrh r0, [r0]
+ bl FlagSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E358: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_810E348
+
+ thumb_func_start sub_810E35C
+sub_810E35C: @ 810E35C
+ push {lr}
+ ldr r0, _0810E37C
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x7
+ bl __divsi3
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0810E380
+ cmp r0, r1
+ bls _0810E376
+ adds r0, r1, 0
+_0810E376:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810E37C: .4byte gLocalTime
+_0810E380: .4byte 0x0000270f
+ thumb_func_end sub_810E35C
+
+ thumb_func_start sub_810E384
+sub_810E384: @ 810E384
+ push {r4,lr}
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r1, r0
+ ldr r0, _0810E3A8
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ cmp r0, 0xFF
+ bne _0810E3AC
+ movs r0, 0x6
+ b _0810E3FE
+ .align 2, 0
+_0810E3A8: .4byte gPlayerParty
+_0810E3AC:
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ cmp r0, 0xC7
+ bls _0810E3BC
+ movs r0, 0x5
+ b _0810E3FE
+_0810E3BC:
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ cmp r0, 0x95
+ bls _0810E3CC
+ movs r0, 0x4
+ b _0810E3FE
+_0810E3CC:
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ cmp r0, 0x63
+ bls _0810E3DC
+ movs r0, 0x3
+ b _0810E3FE
+_0810E3DC:
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ cmp r0, 0x31
+ bls _0810E3EC
+ movs r0, 0x2
+ b _0810E3FE
+_0810E3EC:
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ cmp r0, 0
+ bne _0810E3FC
+ movs r0, 0
+ b _0810E3FE
+_0810E3FC:
+ movs r0, 0x1
+_0810E3FE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810E384
+
+ thumb_func_start sub_810E404
+sub_810E404: @ 810E404
+ push {lr}
+ ldr r0, _0810E410
+ bl sub_813EEB4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E410: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_810E404
+
+ thumb_func_start sub_810E414
+sub_810E414: @ 810E414
+ push {lr}
+ ldr r0, _0810E420
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E420: .4byte sub_810E404
+ thumb_func_end sub_810E414
+
+ thumb_func_start sub_810E424
+sub_810E424: @ 810E424
+ push {r4,lr}
+ ldr r4, _0810E460
+ adds r0, r4, 0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0810E458
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810E464
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ strh r2, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ strh r2, [r1, 0xC]
+ strh r2, [r1, 0xE]
+ strh r2, [r1, 0x10]
+_0810E458:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E460: .4byte sub_810E468
+_0810E464: .4byte gTasks
+ thumb_func_end sub_810E424
+
+ thumb_func_start sub_810E468
+sub_810E468: @ 810E468
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _0810E48C
+ adds r1, r0
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _0810E486
+ adds r0, r1, 0
+ bl sub_810E490
+_0810E486:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E48C: .4byte gTasks
+ thumb_func_end sub_810E468
+
+ thumb_func_start sub_810E490
+sub_810E490: @ 810E490
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r6, 0
+ movs r5, 0
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ bne _0810E4FC
+ strh r5, [r4, 0xE]
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x3
+ beq _0810E4C4
+ cmp r0, 0x3
+ bgt _0810E4BA
+ cmp r0, 0x2
+ beq _0810E4C0
+ b _0810E4CC
+_0810E4BA:
+ cmp r1, 0x4
+ beq _0810E4C8
+ b _0810E4CC
+_0810E4C0:
+ movs r6, 0
+ b _0810E4CA
+_0810E4C4:
+ movs r6, 0xFF
+ b _0810E4CA
+_0810E4C8:
+ movs r6, 0x1
+_0810E4CA:
+ movs r5, 0xFF
+_0810E4CC:
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ lsls r1, r6, 24
+ asrs r1, 24
+ lsls r2, r5, 24
+ asrs r2, 24
+ bl sub_810E508
+ bl DrawWholeMapView
+ ldrh r0, [r4, 0x10]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _0810E4FC
+ ldrb r0, [r4, 0xA]
+ bl DestroyTask
+_0810E4FC:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810E490
+
+ thumb_func_start sub_810E508
+sub_810E508: @ 810E508
+ push {r4,r5,lr}
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ movs r3, 0
+ lsls r0, 16
+ cmp r0, 0
+ beq _0810E544
+ ldr r0, _0810E528
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0810E52C
+ movs r3, 0x4
+ b _0810E566
+ .align 2, 0
+_0810E528: .4byte gUnknown_0202E8CC
+_0810E52C:
+ cmp r0, 0x1
+ bne _0810E538
+ ldr r3, _0810E534
+ b _0810E566
+ .align 2, 0
+_0810E534: .4byte 0x0000025a
+_0810E538:
+ cmp r0, 0x2
+ bne _0810E566
+ ldr r3, _0810E540
+ b _0810E566
+ .align 2, 0
+_0810E540: .4byte 0x00000259
+_0810E544:
+ ldr r0, _0810E550
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0810E554
+ movs r3, 0x5
+ b _0810E566
+ .align 2, 0
+_0810E550: .4byte gUnknown_0202E8CC
+_0810E554:
+ cmp r0, 0x1
+ bne _0810E560
+ ldr r3, _0810E55C
+ b _0810E566
+ .align 2, 0
+_0810E55C: .4byte 0x0000027f
+_0810E560:
+ cmp r0, 0x2
+ bne _0810E566
+ ldr r3, _0810E594
+_0810E566:
+ ldr r2, _0810E598
+ movs r5, 0
+ ldrsh r0, [r2, r5]
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, r1
+ adds r0, 0x7
+ movs r5, 0x2
+ ldrsh r1, [r2, r5]
+ lsls r2, r4, 24
+ asrs r2, 24
+ adds r1, r2
+ adds r1, 0x7
+ movs r4, 0xC0
+ lsls r4, 4
+ adds r2, r4, 0
+ orrs r3, r2
+ adds r2, r3, 0
+ bl MapGridSetMetatileIdAt
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E594: .4byte 0x0000027e
+_0810E598: .4byte gSaveBlock1
+ thumb_func_end sub_810E508
+
+ thumb_func_start sub_810E59C
+sub_810E59C: @ 810E59C
+ push {lr}
+ bl sub_810E5A8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810E59C
+
+ thumb_func_start sub_810E5A8
+sub_810E5A8: @ 810E5A8
+ push {r4-r6,lr}
+ movs r6, 0
+ movs r5, 0
+ movs r4, 0
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x3
+ beq _0810E5D2
+ cmp r0, 0x3
+ bgt _0810E5C8
+ cmp r0, 0x2
+ beq _0810E5CE
+ b _0810E5DA
+_0810E5C8:
+ cmp r1, 0x4
+ beq _0810E5D6
+ b _0810E5DA
+_0810E5CE:
+ movs r6, 0
+ b _0810E5D8
+_0810E5D2:
+ movs r6, 0xFF
+ b _0810E5D8
+_0810E5D6:
+ movs r6, 0x1
+_0810E5D8:
+ movs r5, 0xFF
+_0810E5DA:
+ ldr r0, _0810E5E8
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0810E5EC
+ movs r4, 0x4
+ b _0810E5FE
+ .align 2, 0
+_0810E5E8: .4byte gUnknown_0202E8CC
+_0810E5EC:
+ cmp r0, 0x1
+ bne _0810E5F8
+ ldr r4, _0810E5F4
+ b _0810E5FE
+ .align 2, 0
+_0810E5F4: .4byte 0x0000025a
+_0810E5F8:
+ cmp r0, 0x2
+ bne _0810E5FE
+ ldr r4, _0810E630
+_0810E5FE:
+ ldr r2, _0810E634
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ lsls r1, r6, 24
+ asrs r1, 24
+ adds r0, r1
+ adds r0, 0x7
+ movs r3, 0x2
+ ldrsh r1, [r2, r3]
+ lsls r2, r5, 24
+ asrs r2, 24
+ adds r1, r2
+ adds r1, 0x7
+ movs r3, 0xC0
+ lsls r3, 4
+ adds r2, r3, 0
+ orrs r4, r2
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ bl DrawWholeMapView
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E630: .4byte 0x00000259
+_0810E634: .4byte gSaveBlock1
+ thumb_func_end sub_810E5A8
+
+ thumb_func_start sub_810E638
+sub_810E638: @ 810E638
+ push {r4,lr}
+ ldr r4, _0810E674
+ adds r0, r4, 0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0810E66C
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810E678
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ strh r2, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ strh r2, [r1, 0xC]
+ strh r2, [r1, 0xE]
+ strh r2, [r1, 0x10]
+_0810E66C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E674: .4byte sub_810E67C
+_0810E678: .4byte gTasks
+ thumb_func_end sub_810E638
+
+ thumb_func_start sub_810E67C
+sub_810E67C: @ 810E67C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _0810E6A0
+ adds r1, r0
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _0810E69A
+ adds r0, r1, 0
+ bl sub_810E6A4
+_0810E69A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E6A0: .4byte gTasks
+ thumb_func_end sub_810E67C
+
+ thumb_func_start sub_810E6A4
+sub_810E6A4: @ 810E6A4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x6
+ bne _0810E712
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0810E6DC
+ ldr r2, _0810E6D4
+ movs r0, 0x12
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810E6D8
+ movs r0, 0x12
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ b _0810E6F2
+ .align 2, 0
+_0810E6D4: .4byte 0x00000e9d
+_0810E6D8: .4byte 0x00000ea5
+_0810E6DC:
+ ldr r2, _0810E720
+ movs r0, 0x12
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ movs r2, 0xE6
+ lsls r2, 4
+ movs r0, 0x12
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+_0810E6F2:
+ bl DrawWholeMapView
+ ldrh r0, [r4, 0x10]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x10]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _0810E712
+ ldrb r0, [r4, 0xA]
+ bl DestroyTask
+_0810E712:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E720: .4byte 0x00000e58
+ thumb_func_end sub_810E6A4
+
+ thumb_func_start sub_810E724
+sub_810E724: @ 810E724
+ push {lr}
+ ldr r2, _0810E744
+ movs r0, 0x12
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810E748
+ movs r0, 0x12
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ bl DrawWholeMapView
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E744: .4byte 0x00000e9d
+_0810E748: .4byte 0x00000ea5
+ thumb_func_end sub_810E724
+
+ thumb_func_start sub_810E74C
+sub_810E74C: @ 810E74C
+ push {lr}
+ ldr r0, _0810E768
+ ldrb r0, [r0, 0x15]
+ subs r0, 0x11
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x5
+ bhi _0810E79C
+ lsls r0, 2
+ ldr r1, _0810E76C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0810E768: .4byte gSaveBlock1
+_0810E76C: .4byte _0810E770
+ .align 2, 0
+_0810E770:
+ .4byte _0810E79C
+ .4byte _0810E788
+ .4byte _0810E78C
+ .4byte _0810E790
+ .4byte _0810E794
+ .4byte _0810E798
+_0810E788:
+ movs r1, 0x1
+ b _0810E79E
+_0810E78C:
+ movs r1, 0x2
+ b _0810E79E
+_0810E790:
+ movs r1, 0x3
+ b _0810E79E
+_0810E794:
+ movs r1, 0x4
+ b _0810E79E
+_0810E798:
+ movs r1, 0xF
+ b _0810E79E
+_0810E79C:
+ movs r1, 0
+_0810E79E:
+ ldr r0, _0810E7A8
+ bl VarSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E7A8: .4byte 0x00004043
+ thumb_func_end sub_810E74C
+
+ thumb_func_start sub_810E7AC
+sub_810E7AC: @ 810E7AC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r12, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ ldr r0, _0810E81C
+ ldrh r1, [r0]
+ adds r2, r0, 0
+ ldr r3, _0810E820
+ cmp r1, 0
+ bne _0810E7E8
+ movs r1, 0
+ adds r5, r3, 0
+ movs r4, 0x10
+_0810E7D8:
+ lsls r0, r1, 2
+ adds r0, r5
+ strb r4, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x13
+ bls _0810E7D8
+_0810E7E8:
+ ldrh r0, [r2]
+ lsls r0, 2
+ adds r0, r3
+ strb r6, [r0]
+ ldrh r0, [r2]
+ lsls r0, 2
+ adds r0, r3
+ strb r7, [r0, 0x1]
+ ldrh r0, [r2]
+ lsls r0, 2
+ adds r0, r3
+ mov r1, r12
+ strb r1, [r0, 0x2]
+ ldrh r0, [r2]
+ lsls r0, 2
+ adds r0, r3
+ mov r1, r8
+ strb r1, [r0, 0x3]
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E81C: .4byte gUnknown_0202E8CC
+_0810E820: .4byte gUnknown_03000760
+ thumb_func_end sub_810E7AC
+
+ thumb_func_start sub_810E824
+sub_810E824: @ 810E824
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _0810E868
+ strb r4, [r5]
+ ldr r0, _0810E86C
+ strb r4, [r0]
+ movs r0, 0x10
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_810E7AC
+ ldr r2, _0810E870
+ ldrb r0, [r2]
+ cmp r0, 0x10
+ beq _0810E85C
+ adds r1, r5, 0
+_0810E846:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x10
+ bne _0810E846
+_0810E85C:
+ bl sub_810E874
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E868: .4byte gUnknown_0203925A
+_0810E86C: .4byte gUnknown_0203925B
+_0810E870: .4byte gUnknown_03000760
+ thumb_func_end sub_810E824
+
+ thumb_func_start sub_810E874
+sub_810E874: @ 810E874
+ push {r4-r6,lr}
+ sub sp, 0x8
+ bl ScriptContext2_Enable
+ ldr r4, _0810E8B8
+ ldrb r0, [r4]
+ cmp r0, 0x5
+ bls _0810E8C0
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x8
+ movs r3, 0xB
+ bl MenuDrawTextWindow
+ movs r4, 0
+ str r4, [sp]
+ movs r0, 0x7
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x5
+ bl InitMenu
+ ldr r0, _0810E8BC
+ strb r4, [r0]
+ bl sub_80F944C
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ bl sub_810ECD4
+ b _0810E8E8
+ .align 2, 0
+_0810E8B8: .4byte gUnknown_0203925A
+_0810E8BC: .4byte gUnknown_0203925C
+_0810E8C0:
+ ldrb r3, [r4]
+ lsls r3, 1
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x8
+ bl MenuDrawTextWindow
+ ldrb r3, [r4]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x7
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ bl InitMenu
+_0810E8E8:
+ movs r4, 0
+ ldr r1, _0810E938
+ ldrb r0, [r1]
+ cmp r0, 0x10
+ beq _0810E924
+ ldr r6, _0810E93C
+ adds r5, r1, 0
+_0810E8F6:
+ lsls r0, r4, 2
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r6
+ ldr r0, [r0]
+ lsls r2, r4, 1
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0x1
+ bl MenuPrint
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bhi _0810E924
+ lsls r0, r4, 2
+ adds r0, r5
+ ldrb r0, [r0]
+ cmp r0, 0x10
+ bne _0810E8F6
+_0810E924:
+ bl sub_810E944
+ ldr r0, _0810E940
+ movs r1, 0x8
+ bl CreateTask
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E938: .4byte gUnknown_03000760
+_0810E93C: .4byte gUnknown_083F8380
+_0810E940: .4byte sub_810E984
+ thumb_func_end sub_810E874
+
+ thumb_func_start sub_810E944
+sub_810E944: @ 810E944
+ push {lr}
+ movs r0, 0x14
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x5
+ bl MenuDrawTextWindow
+ ldr r0, _0810E978
+ movs r1, 0x15
+ movs r2, 0x1
+ movs r3, 0x40
+ bl sub_8072BD8
+ ldr r1, _0810E97C
+ ldr r0, _0810E980
+ ldrh r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x15
+ movs r2, 0x3
+ movs r3, 0x40
+ bl sub_8072BD8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810E978: .4byte gOtherText_NowOn
+_0810E97C: .4byte gUnknown_083F8380
+_0810E980: .4byte gUnknown_0202E8CE
+ thumb_func_end sub_810E944
+
+ thumb_func_start sub_810E984
+sub_810E984: @ 810E984
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _0810EA44
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0x40
+ bne _0810E9B8
+ ldr r1, _0810EA48
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0810E9B8
+ subs r0, 0x1
+ strb r0, [r1]
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursorNoWrap
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl sub_810EAC8
+_0810E9B8:
+ ldr r0, _0810EA44
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0x80
+ bne _0810E9E8
+ ldr r2, _0810EA48
+ ldrb r1, [r2]
+ ldr r0, _0810EA4C
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _0810E9E8
+ adds r0, r1, 0x1
+ strb r0, [r2]
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x1
+ bl MoveMenuCursorNoWrap
+ adds r0, r4, 0
+ movs r1, 0x80
+ bl sub_810EAC8
+_0810E9E8:
+ ldr r0, _0810EA44
+ ldrh r2, [r0, 0x2E]
+ movs r5, 0x1
+ adds r1, r5, 0
+ ands r1, r2
+ cmp r1, 0
+ beq _0810EA94
+ ldr r1, _0810EA50
+ ldr r4, _0810EA48
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x1
+ ldrsb r1, [r0, r1]
+ movs r2, 0x2
+ ldrsb r2, [r0, r2]
+ movs r3, 0x1
+ negs r3, r3
+ movs r0, 0x2
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ movs r0, 0
+ bl saved_warp2_set_2
+ ldr r1, _0810EA54
+ ldrh r0, [r1]
+ ldrb r2, [r4]
+ cmp r0, r2
+ bne _0810EA5C
+ ldr r1, _0810EA58
+ movs r0, 0
+ strh r0, [r1]
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ adds r0, r6, 0
+ bl sub_810EC9C
+ b _0810EABC
+ .align 2, 0
+_0810EA44: .4byte gMain
+_0810EA48: .4byte gUnknown_0203925B
+_0810EA4C: .4byte gUnknown_0203925A
+_0810EA50: .4byte gUnknown_03000760
+_0810EA54: .4byte gUnknown_0202E8CE
+_0810EA58: .4byte gScriptResult
+_0810EA5C:
+ ldr r0, _0810EA88
+ strh r5, [r0]
+ ldrb r0, [r4]
+ strh r0, [r1]
+ bl sub_810EBEC
+ ldr r0, _0810EA8C
+ ldrb r0, [r0]
+ ldr r2, _0810EA90
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ movs r3, 0x1
+ bl FieldObjectTurnByLocalIdAndMap
+ bl sub_810EEDC
+ bl MenuZeroFillScreen
+ adds r0, r6, 0
+ bl DestroyTask
+ b _0810EABC
+ .align 2, 0
+_0810EA88: .4byte gScriptResult
+_0810EA8C: .4byte gUnknown_0202E8DE
+_0810EA90: .4byte gSaveBlock1
+_0810EA94:
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _0810EABC
+ ldr r0, _0810EAC4
+ strh r1, [r0]
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_810EEDC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ adds r0, r6, 0
+ bl sub_810EC9C
+_0810EABC:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810EAC4: .4byte gScriptResult
+ thumb_func_end sub_810E984
+
+ thumb_func_start sub_810EAC8
+sub_810EAC8: @ 810EAC8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r5, r2, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r3, r1, 0
+ movs r7, 0
+ movs r4, 0
+ ldr r0, _0810EAEC
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bhi _0810EAF0
+ movs r0, 0
+ b _0810EB78
+ .align 2, 0
+_0810EAEC: .4byte gUnknown_0203925A
+_0810EAF0:
+ cmp r1, 0x40
+ bne _0810EB04
+ cmp r2, 0
+ bne _0810EB18
+ ldr r0, _0810EB00
+ ldrb r4, [r0]
+ movs r7, 0x1
+ b _0810EB1C
+ .align 2, 0
+_0810EB00: .4byte gUnknown_0203925B
+_0810EB04:
+ cmp r3, 0x80
+ bne _0810EB18
+ cmp r5, 0x4
+ bne _0810EB18
+ ldr r0, _0810EB84
+ ldrb r0, [r0]
+ subs r0, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r7, 0x1
+_0810EB18:
+ cmp r7, 0
+ beq _0810EB76
+_0810EB1C:
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl sub_810EB90
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0x7
+ movs r3, 0xA
+ bl MenuFillWindowRectWithBlankTile
+ movs r5, 0
+ ldr r2, _0810EB88
+ lsls r1, r4, 2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x10
+ beq _0810EB76
+ ldr r0, _0810EB8C
+ mov r8, r0
+ adds r6, r2, 0
+_0810EB44:
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ lsls r0, 2
+ add r0, r8
+ ldr r0, [r0]
+ lsls r2, r5, 1
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0x1
+ bl MenuPrint
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bhi _0810EB76
+ lsls r1, r4, 2
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ cmp r0, 0x10
+ bne _0810EB44
+_0810EB76:
+ adds r0, r7, 0
+_0810EB78:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810EB84: .4byte gUnknown_0203925B
+_0810EB88: .4byte gUnknown_03000760
+_0810EB8C: .4byte gUnknown_083F8380
+ thumb_func_end sub_810EAC8
+
+ thumb_func_start sub_810EB90
+sub_810EB90: @ 810EB90
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ cmp r4, 0
+ bne _0810EBB4
+ ldr r0, _0810EBB0
+ ldrb r1, [r0]
+ movs r2, 0x2
+ eors r1, r2
+ strb r1, [r0]
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ b _0810EBB8
+ .align 2, 0
+_0810EBB0: .4byte gUnknown_0203925C
+_0810EBB4:
+ bl sub_810ECB0
+_0810EBB8:
+ adds r1, r4, r5
+ ldr r0, _0810EBC8
+ ldrb r0, [r0]
+ cmp r1, r0
+ bge _0810EBCC
+ bl sub_810ECD4
+ b _0810EBE0
+ .align 2, 0
+_0810EBC8: .4byte gUnknown_0203925A
+_0810EBCC:
+ cmp r1, r0
+ bne _0810EBE0
+ ldr r0, _0810EBE8
+ ldrb r1, [r0]
+ movs r2, 0x1
+ eors r1, r2
+ strb r1, [r0]
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+_0810EBE0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810EBE8: .4byte gUnknown_0203925C
+ thumb_func_end sub_810EB90
+
+ thumb_func_start sub_810EBEC
+sub_810EBEC: @ 810EBEC
+ push {lr}
+ ldr r0, _0810EC2C
+ movs r1, 0x9
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810EC30
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ movs r2, 0x1
+ strh r2, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ strh r0, [r1, 0xC]
+ strh r0, [r1, 0xE]
+ strh r2, [r1, 0x10]
+ movs r0, 0x3
+ strh r0, [r1, 0x12]
+ movs r0, 0
+ bl SetCameraPanningCallback
+ bl sub_810ECFC
+ movs r0, 0x59
+ bl PlaySE
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810EC2C: .4byte sub_810EC34
+_0810EC30: .4byte gTasks
+ thumb_func_end sub_810EBEC
+
+ thumb_func_start sub_810EC34
+sub_810EC34: @ 810EC34
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _0810EC98
+ adds r4, r0, r1
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ bl __modsi3
+ cmp r0, 0
+ bne _0810EC92
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0810EC92
+ ldrh r0, [r4, 0x10]
+ negs r0, r0
+ strh r0, [r4, 0x10]
+ movs r2, 0x10
+ ldrsh r1, [r4, r2]
+ movs r0, 0
+ bl SetCameraPanning
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x17
+ bne _0810EC92
+ movs r0, 0x49
+ bl PlaySE
+ adds r0, r5, 0
+ bl sub_810EC9C
+ bl InstallCameraPanAheadCallback
+_0810EC92:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810EC98: .4byte gTasks
+ thumb_func_end sub_810EC34
+
+ thumb_func_start sub_810EC9C
+sub_810EC9C: @ 810EC9C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810EC9C
+
+ thumb_func_start sub_810ECB0
+sub_810ECB0: @ 810ECB0
+ push {lr}
+ ldr r2, _0810ECD0
+ ldrb r1, [r2]
+ lsrs r0, r1, 1
+ cmp r0, 0x1
+ beq _0810ECCC
+ movs r0, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0
+ movs r1, 0x24
+ movs r2, 0x8
+ bl sub_80F953C
+_0810ECCC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810ECD0: .4byte gUnknown_0203925C
+ thumb_func_end sub_810ECB0
+
+ thumb_func_start sub_810ECD4
+sub_810ECD4: @ 810ECD4
+ push {lr}
+ ldr r2, _0810ECF8
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0810ECF2
+ movs r0, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x1
+ movs r1, 0x24
+ movs r2, 0x48
+ bl sub_80F953C
+_0810ECF2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810ECF8: .4byte gUnknown_0203925C
+ thumb_func_end sub_810ECD4
+
+ thumb_func_start sub_810ECFC
+sub_810ECFC: @ 810ECFC
+ push {r4,lr}
+ ldr r4, _0810ED38
+ adds r0, r4, 0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0810ED30
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810ED3C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ strh r2, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ strh r2, [r1, 0xC]
+ strh r2, [r1, 0xE]
+ strh r2, [r1, 0x10]
+_0810ED30:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810ED38: .4byte sub_810ED40
+_0810ED3C: .4byte gTasks
+ thumb_func_end sub_810ECFC
+
+ thumb_func_start sub_810ED40
+sub_810ED40: @ 810ED40
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _0810ED5C
+ adds r0, r1
+ bl sub_810ED60
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810ED5C: .4byte gTasks
+ thumb_func_end sub_810ED40
+
+ thumb_func_start sub_810ED60
+sub_810ED60: @ 810ED60
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0xE
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x8
+ beq _0810ED6E
+ b _0810EEB2
+_0810ED6E:
+ movs r0, 0
+ strh r0, [r5, 0xE]
+ movs r1, 0x10
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _0810EE14
+ ldr r2, _0810EDFC
+ movs r0, 0x7
+ movs r1, 0x7
+ bl MapGridSetMetatileIdAt
+ ldr r4, _0810EE00
+ movs r0, 0x8
+ movs r1, 0x7
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ movs r0, 0x9
+ movs r1, 0x7
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810EE04
+ movs r0, 0xA
+ movs r1, 0x7
+ bl MapGridSetMetatileIdAt
+ movs r2, 0xE7
+ lsls r2, 4
+ movs r0, 0x7
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ adds r4, 0x8
+ movs r0, 0x8
+ movs r1, 0x8
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ movs r0, 0x9
+ movs r1, 0x8
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810EE08
+ movs r0, 0xA
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810EE0C
+ movs r0, 0x7
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ adds r4, 0x8
+ movs r0, 0x8
+ movs r1, 0x9
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ movs r0, 0x9
+ movs r1, 0x9
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810EE10
+ movs r0, 0xA
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ b _0810EE92
+ .align 2, 0
+_0810EDFC: .4byte 0x00000e68
+_0810EE00: .4byte 0x00000e69
+_0810EE04: .4byte 0x00000e6a
+_0810EE08: .4byte 0x00000e72
+_0810EE0C: .4byte 0x00000e78
+_0810EE10: .4byte 0x00000e7a
+_0810EE14:
+ ldr r2, _0810EEC0
+ movs r0, 0x7
+ movs r1, 0x7
+ bl MapGridSetMetatileIdAt
+ ldr r4, _0810EEC4
+ movs r0, 0x8
+ movs r1, 0x7
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ movs r0, 0x9
+ movs r1, 0x7
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810EEC8
+ movs r0, 0xA
+ movs r1, 0x7
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810EECC
+ movs r0, 0x7
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ adds r4, 0x8
+ movs r0, 0x8
+ movs r1, 0x8
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ movs r0, 0x9
+ movs r1, 0x8
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810EED0
+ movs r0, 0xA
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810EED4
+ movs r0, 0x7
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ adds r4, 0x8
+ movs r0, 0x8
+ movs r1, 0x9
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ movs r0, 0x9
+ movs r1, 0x9
+ adds r2, r4, 0
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0810EED8
+ movs r0, 0xA
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+_0810EE92:
+ bl DrawWholeMapView
+ ldrh r0, [r5, 0x10]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r5, 0x10]
+ ldrh r0, [r5, 0xC]
+ adds r0, 0x1
+ strh r0, [r5, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ bne _0810EEB2
+ ldrb r0, [r5, 0xA]
+ bl DestroyTask
+_0810EEB2:
+ ldrh r0, [r5, 0xE]
+ adds r0, 0x1
+ strh r0, [r5, 0xE]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810EEC0: .4byte 0x00000e6b
+_0810EEC4: .4byte 0x00000e6c
+_0810EEC8: .4byte 0x00000e6d
+_0810EECC: .4byte 0x00000e73
+_0810EED0: .4byte 0x00000e75
+_0810EED4: .4byte 0x00000e7b
+_0810EED8: .4byte 0x00000e7d
+ thumb_func_end sub_810ED60
+
+ thumb_func_start sub_810EEDC
+sub_810EEDC: @ 810EEDC
+ push {r4,lr}
+ ldr r4, _0810EF08
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810EEF0
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+_0810EEF0:
+ ldrb r0, [r4]
+ lsrs r0, 1
+ cmp r0, 0x1
+ bne _0810EEFE
+ movs r0, 0
+ bl SetBgTilemapBuffer
+_0810EEFE:
+ bl BuyMenuFreeMemory
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810EF08: .4byte gUnknown_0203925C
+ thumb_func_end sub_810EEDC
+
+ thumb_func_start sub_810EF0C
+sub_810EF0C: @ 810EF0C
+ push {lr}
+ ldr r1, _0810EF1C
+ ldr r0, _0810EF20
+ strh r0, [r1]
+ bl FlagSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810EF1C: .4byte gUnknown_0202E8CC
+_0810EF20: .4byte 0x00000259
+ thumb_func_end sub_810EF0C
+
+ thumb_func_start sub_810EF24
+sub_810EF24: @ 810EF24
+ push {lr}
+ ldr r1, _0810EF34
+ ldr r0, _0810EF38
+ strh r0, [r1]
+ bl FlagReset
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810EF34: .4byte gUnknown_0202E8CC
+_0810EF38: .4byte 0x00000259
+ thumb_func_end sub_810EF24
+
+ thumb_func_start sub_810EF3C
+sub_810EF3C: @ 810EF3C
+ push {lr}
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0810EF5C
+ adds r0, r1
+ movs r1, 0x16
+ bl GetMonData
+ cmp r0, 0xC7
+ bls _0810EF60
+ movs r0, 0x1
+ b _0810EF62
+ .align 2, 0
+_0810EF5C: .4byte gPlayerParty
+_0810EF60:
+ movs r0, 0
+_0810EF62:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810EF3C
+
+ thumb_func_start sub_810EF68
+sub_810EF68: @ 810EF68
+ push {lr}
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0810EF88
+ adds r0, r1
+ movs r1, 0x17
+ bl GetMonData
+ cmp r0, 0xC7
+ bls _0810EF8C
+ movs r0, 0x1
+ b _0810EF8E
+ .align 2, 0
+_0810EF88: .4byte gPlayerParty
+_0810EF8C:
+ movs r0, 0
+_0810EF8E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810EF68
+
+ thumb_func_start sub_810EF94
+sub_810EF94: @ 810EF94
+ push {lr}
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0810EFB4
+ adds r0, r1
+ movs r1, 0x18
+ bl GetMonData
+ cmp r0, 0xC7
+ bls _0810EFB8
+ movs r0, 0x1
+ b _0810EFBA
+ .align 2, 0
+_0810EFB4: .4byte gPlayerParty
+_0810EFB8:
+ movs r0, 0
+_0810EFBA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810EF94
+
+ thumb_func_start sub_810EFC0
+sub_810EFC0: @ 810EFC0
+ push {lr}
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0810EFE0
+ adds r0, r1
+ movs r1, 0x21
+ bl GetMonData
+ cmp r0, 0xC7
+ bls _0810EFE4
+ movs r0, 0x1
+ b _0810EFE6
+ .align 2, 0
+_0810EFE0: .4byte gPlayerParty
+_0810EFE4:
+ movs r0, 0
+_0810EFE6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810EFC0
+
+ thumb_func_start sub_810EFEC
+sub_810EFEC: @ 810EFEC
+ push {lr}
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0810F00C
+ adds r0, r1
+ movs r1, 0x2F
+ bl GetMonData
+ cmp r0, 0xC7
+ bls _0810F010
+ movs r0, 0x1
+ b _0810F012
+ .align 2, 0
+_0810F00C: .4byte gPlayerParty
+_0810F010:
+ movs r0, 0
+_0810F012:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810EFEC
+
+ thumb_func_start sub_810F018
+sub_810F018: @ 810F018
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r6, _0810F068
+_0810F01E:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0810F06C
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl GetMonData
+ cmp r0, 0
+ beq _0810F074
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0810F074
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0xC
+ beq _0810F060
+ ldrb r0, [r1, 0x7]
+ cmp r0, 0xC
+ bne _0810F074
+_0810F060:
+ ldr r1, _0810F070
+ movs r0, 0x1
+ b _0810F082
+ .align 2, 0
+_0810F068: .4byte gBaseStats
+_0810F06C: .4byte gPlayerParty
+_0810F070: .4byte gScriptResult
+_0810F074:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _0810F01E
+ ldr r1, _0810F08C
+ movs r0, 0
+_0810F082:
+ strh r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F08C: .4byte gScriptResult
+ thumb_func_end sub_810F018
+
+ thumb_func_start sub_810F090
+sub_810F090: @ 810F090
+ push {r4,r5,lr}
+ sub sp, 0x8
+ bl ScriptContext2_Enable
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0xB
+ bl MenuDrawTextWindow
+ movs r4, 0
+ str r4, [sp]
+ movs r0, 0x9
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x5
+ bl InitMenu
+ ldr r0, _0810F104
+ strb r4, [r0]
+ bl sub_80F944C
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ bl sub_810F2B4
+ ldr r5, _0810F108
+_0810F0CA:
+ lsls r0, r4, 2
+ adds r0, r5
+ ldr r0, [r0]
+ lsls r2, r4, 1
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0x1
+ bl MenuPrint
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _0810F0CA
+ ldr r1, _0810F10C
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _0810F110
+ movs r0, 0x8
+ strb r0, [r1]
+ ldr r0, _0810F114
+ movs r1, 0x8
+ bl CreateTask
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F104: .4byte gUnknown_0203925C
+_0810F108: .4byte gUnknown_083F83C0
+_0810F10C: .4byte gUnknown_0203925B
+_0810F110: .4byte gUnknown_0203925A
+_0810F114: .4byte sub_810F118
+ thumb_func_end sub_810F090
+
+ thumb_func_start sub_810F118
+sub_810F118: @ 810F118
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0810F1E4
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0x40
+ bne _0810F14A
+ ldr r1, _0810F1E8
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0810F14A
+ subs r0, 0x1
+ strb r0, [r1]
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursorNoWrap
+ adds r0, r4, 0
+ movs r1, 0x40
+ bl sub_810F1F4
+_0810F14A:
+ ldr r0, _0810F1E4
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0x80
+ bne _0810F17A
+ ldr r2, _0810F1E8
+ ldrb r1, [r2]
+ ldr r0, _0810F1EC
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _0810F17A
+ adds r0, r1, 0x1
+ strb r0, [r2]
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x1
+ bl MoveMenuCursorNoWrap
+ adds r0, r4, 0
+ movs r1, 0x80
+ bl sub_810F1F4
+_0810F17A:
+ ldr r4, _0810F1E4
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0810F1AE
+ bl sub_8072DEC
+ ldr r0, _0810F1F0
+ ldr r1, _0810F1E8
+ ldrb r1, [r1]
+ strh r1, [r0]
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_810EEDC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ adds r0, r5, 0
+ bl sub_810EC9C
+_0810F1AE:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0810F1DE
+ bl sub_8072DEC
+ ldr r1, _0810F1F0
+ movs r0, 0x7F
+ strh r0, [r1]
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_810EEDC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ adds r0, r5, 0
+ bl sub_810EC9C
+_0810F1DE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F1E4: .4byte gMain
+_0810F1E8: .4byte gUnknown_0203925B
+_0810F1EC: .4byte gUnknown_0203925A
+_0810F1F0: .4byte gScriptResult
+ thumb_func_end sub_810F118
+
+ thumb_func_start sub_810F1F4
+sub_810F1F4: @ 810F1F4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r5, r2, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r3, r1, 0
+ movs r6, 0
+ movs r4, 0
+ ldr r0, _0810F214
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bhi _0810F218
+ movs r0, 0
+ b _0810F282
+ .align 2, 0
+_0810F214: .4byte gUnknown_0203925A
+_0810F218:
+ cmp r1, 0x40
+ bne _0810F22C
+ cmp r2, 0
+ bne _0810F240
+ ldr r0, _0810F228
+ ldrb r4, [r0]
+ movs r6, 0x1
+ b _0810F244
+ .align 2, 0
+_0810F228: .4byte gUnknown_0203925B
+_0810F22C:
+ cmp r3, 0x80
+ bne _0810F240
+ cmp r5, 0x4
+ bne _0810F240
+ ldr r0, _0810F288
+ ldrb r0, [r0]
+ subs r0, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r6, 0x1
+_0810F240:
+ cmp r6, 0
+ beq _0810F280
+_0810F244:
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl sub_810F2DC
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0x9
+ movs r3, 0xA
+ bl MenuFillWindowRectWithBlankTile
+ movs r5, 0
+ ldr r7, _0810F28C
+_0810F25C:
+ lsls r0, r4, 2
+ adds r0, r7
+ ldr r0, [r0]
+ lsls r2, r5, 1
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0x1
+ bl MenuPrint
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bls _0810F25C
+_0810F280:
+ adds r0, r6, 0
+_0810F282:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810F288: .4byte gUnknown_0203925B
+_0810F28C: .4byte gUnknown_083F83C0
+ thumb_func_end sub_810F1F4
+
+ thumb_func_start sub_810F290
+sub_810F290: @ 810F290
+ push {lr}
+ ldr r2, _0810F2B0
+ ldrb r1, [r2]
+ lsrs r0, r1, 1
+ cmp r0, 0x1
+ beq _0810F2AC
+ movs r0, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0
+ movs r1, 0x2C
+ movs r2, 0x8
+ bl sub_80F953C
+_0810F2AC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F2B0: .4byte gUnknown_0203925C
+ thumb_func_end sub_810F290
+
+ thumb_func_start sub_810F2B4
+sub_810F2B4: @ 810F2B4
+ push {lr}
+ ldr r2, _0810F2D8
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0810F2D2
+ movs r0, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x1
+ movs r1, 0x2C
+ movs r2, 0x58
+ bl sub_80F953C
+_0810F2D2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F2D8: .4byte gUnknown_0203925C
+ thumb_func_end sub_810F2B4
+
+ thumb_func_start sub_810F2DC
+sub_810F2DC: @ 810F2DC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ cmp r4, 0
+ bne _0810F300
+ ldr r0, _0810F2FC
+ ldrb r1, [r0]
+ movs r2, 0x2
+ eors r1, r2
+ strb r1, [r0]
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ b _0810F304
+ .align 2, 0
+_0810F2FC: .4byte gUnknown_0203925C
+_0810F300:
+ bl sub_810F290
+_0810F304:
+ adds r1, r4, r5
+ ldr r0, _0810F314
+ ldrb r0, [r0]
+ cmp r1, r0
+ bge _0810F318
+ bl sub_810F2B4
+ b _0810F32C
+ .align 2, 0
+_0810F314: .4byte gUnknown_0203925A
+_0810F318:
+ cmp r1, r0
+ bne _0810F32C
+ ldr r0, _0810F334
+ ldrb r1, [r0]
+ movs r2, 0x1
+ eors r1, r2
+ strb r1, [r0]
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+_0810F32C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F334: .4byte gUnknown_0203925C
+ thumb_func_end sub_810F2DC
+
+ thumb_func_start SpawnScriptFieldObject
+SpawnScriptFieldObject: @ 810F338
+ push {lr}
+ sub sp, 0x8
+ ldr r0, _0810F380
+ ldrh r3, [r0]
+ adds r3, 0x7
+ lsls r3, 16
+ asrs r3, 16
+ ldrh r0, [r0, 0x2]
+ adds r0, 0x7
+ lsls r0, 16
+ asrs r0, 16
+ str r0, [sp]
+ movs r0, 0x3
+ str r0, [sp, 0x4]
+ movs r0, 0x7
+ movs r1, 0x8
+ movs r2, 0x7F
+ bl SpawnSpecialFieldObjectParametrized
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810F384
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x1]
+ movs r2, 0x20
+ orrs r0, r2
+ strb r0, [r1, 0x1]
+ ldrb r0, [r1, 0x4]
+ bl CameraObjectSetFollowedObjectId
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F380: .4byte gSaveBlock1
+_0810F384: .4byte gMapObjects
+ thumb_func_end SpawnScriptFieldObject
+
+ thumb_func_start sub_810F388
+sub_810F388: @ 810F388
+ push {lr}
+ bl GetPlayerAvatarObjectId
+ lsls r0, 24
+ lsrs r0, 24
+ bl CameraObjectSetFollowedObjectId
+ ldr r0, _0810F3A8
+ ldrb r1, [r0, 0x5]
+ ldrb r2, [r0, 0x4]
+ movs r0, 0x7F
+ bl RemoveFieldObjectByLocalIdAndMap
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F3A8: .4byte gSaveBlock1
+ thumb_func_end sub_810F388
+
+ thumb_func_start sub_810F3AC
+sub_810F3AC: @ 810F3AC
+ push {lr}
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0810F3D4
+ adds r0, r1
+ bl GetNature
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0810F3D8
+ bl sub_810CB68
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810F3D4: .4byte gPlayerParty
+_0810F3D8: .4byte gStringVar1
+ thumb_func_end sub_810F3AC
+
+ thumb_func_start sub_810F3DC
+sub_810F3DC: @ 810F3DC
+ push {r4,lr}
+ ldr r4, _0810F3FC
+ ldr r0, _0810F400
+ bl VarGet
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_80FBFB4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F3FC: .4byte gStringVar1
+_0810F400: .4byte 0x00004026
+ thumb_func_end sub_810F3DC
+
+ thumb_func_start sub_810F404
+sub_810F404: @ 810F404
+ push {lr}
+ movs r0, 0x20
+ bl sub_8053108
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F404
+
+ thumb_func_start sub_810F414
+sub_810F414: @ 810F414
+ push {lr}
+ ldr r0, _0810F420
+ bl sub_8135FF4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F420: .4byte gStringVar1
+ thumb_func_end sub_810F414
+
+ thumb_func_start sub_810F424
+sub_810F424: @ 810F424
+ push {r4,r5,lr}
+ ldr r2, _0810F458
+ ldr r1, _0810F45C
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ lsls r1, 25
+ ldr r0, _0810F460
+ adds r2, r0
+ lsrs r1, 25
+ ldrh r2, [r2]
+ adds r1, r2
+ ldr r2, _0810F464
+ ldr r0, _0810F468
+ ldrh r0, [r0]
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r5, r1, r0
+ movs r0, 0x2
+ bl GetPriceReduction
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810F470
+ ldr r4, _0810F46C
+ b _0810F472
+ .align 2, 0
+_0810F458: .4byte gSaveBlock1
+_0810F45C: .4byte 0x00002dd4
+_0810F460: .4byte 0x00002dd6
+_0810F464: .4byte gUnknown_083F83E0
+_0810F468: .4byte gUnknown_0202E8CC
+_0810F46C: .4byte gUnknown_083F83EC
+_0810F470:
+ ldr r4, _0810F484
+_0810F472:
+ adds r0, r5, 0
+ movs r1, 0xC
+ bl __umodsi3
+ adds r0, r4
+ ldrb r0, [r0]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810F484: .4byte gUnknown_083F83F8
+ thumb_func_end sub_810F424
+
+ thumb_func_start sub_810F488
+sub_810F488: @ 810F488
+ push {lr}
+ ldr r1, _0810F4A0
+ ldr r0, _0810F4A4
+ strh r0, [r1]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F4A8
+ movs r0, 0x1
+ b _0810F4AA
+ .align 2, 0
+_0810F4A0: .4byte gUnknown_0202E8CC
+_0810F4A4: .4byte 0x00000277
+_0810F4A8:
+ movs r0, 0
+_0810F4AA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F488
+
+ thumb_func_start sub_810F4B0
+sub_810F4B0: @ 810F4B0
+ push {lr}
+ ldr r1, _0810F4C8
+ movs r0, 0x9E
+ lsls r0, 2
+ strh r0, [r1]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F4CC
+ movs r0, 0x1
+ b _0810F4CE
+ .align 2, 0
+_0810F4C8: .4byte gUnknown_0202E8CC
+_0810F4CC:
+ movs r0, 0
+_0810F4CE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F4B0
+
+ thumb_func_start sub_810F4D4
+sub_810F4D4: @ 810F4D4
+ push {lr}
+ ldr r1, _0810F4EC
+ ldr r0, _0810F4F0
+ strh r0, [r1]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F4F4
+ movs r0, 0x1
+ b _0810F4F6
+ .align 2, 0
+_0810F4EC: .4byte gUnknown_0202E8CC
+_0810F4F0: .4byte 0x00000279
+_0810F4F4:
+ movs r0, 0
+_0810F4F6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F4D4
+
+ thumb_func_start sub_810F4FC
+sub_810F4FC: @ 810F4FC
+ push {lr}
+ ldr r1, _0810F514
+ ldr r0, _0810F518
+ strh r0, [r1]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F51C
+ movs r0, 0x1
+ b _0810F51E
+ .align 2, 0
+_0810F514: .4byte gUnknown_0202E8CC
+_0810F518: .4byte 0x0000027a
+_0810F51C:
+ movs r0, 0
+_0810F51E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F4FC
+
+ thumb_func_start sub_810F524
+sub_810F524: @ 810F524
+ push {lr}
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0810F548
+ adds r0, r1
+ movs r1, 0x47
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810F548: .4byte gPlayerParty
+ thumb_func_end sub_810F524
+
+ thumb_func_start sub_810F54C
+sub_810F54C: @ 810F54C
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0x2A
+ bl sav12_xor_increment
+ ldr r0, _0810F580
+ bl FlagSet
+ movs r1, 0x1
+ mov r0, sp
+ strb r1, [r0]
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0810F584
+ adds r0, r1
+ movs r1, 0x47
+ mov r2, sp
+ bl SetMonData
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F580: .4byte 0x0000083b
+_0810F584: .4byte gPlayerParty
+ thumb_func_end sub_810F54C
+
+ thumb_func_start sub_810F588
+sub_810F588: @ 810F588
+ push {lr}
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0810F5AC
+ adds r0, r1
+ bl sub_8040020
+ lsls r0, 16
+ ldr r1, _0810F5B0
+ cmp r0, r1
+ bhi _0810F5B4
+ movs r0, 0
+ b _0810F5B6
+ .align 2, 0
+_0810F5AC: .4byte gPlayerParty
+_0810F5B0: .4byte 0x01fd0000
+_0810F5B4:
+ movs r0, 0x1
+_0810F5B6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F588
+
+ thumb_func_start sub_810F5BC
+sub_810F5BC: @ 810F5BC
+ push {lr}
+ movs r0, 0xC7
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _0810F610
+ ldr r0, _0810F5E8
+ ldrh r1, [r0, 0x4]
+ movs r0, 0x83
+ lsls r0, 3
+ cmp r1, r0
+ bne _0810F610
+ subs r0, 0x75
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F5F0
+ ldr r0, _0810F5EC
+ movs r1, 0x4
+ b _0810F602
+ .align 2, 0
+_0810F5E8: .4byte gSaveBlock1
+_0810F5EC: .4byte 0x0000409a
+_0810F5F0:
+ movs r0, 0xE9
+ lsls r0, 2
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F610
+ ldr r0, _0810F60C
+ movs r1, 0x5
+_0810F602:
+ bl VarSet
+ movs r0, 0x1
+ b _0810F612
+ .align 2, 0
+_0810F60C: .4byte 0x0000409a
+_0810F610:
+ movs r0, 0
+_0810F612:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F5BC
+
+ thumb_func_start sub_810F618
+sub_810F618: @ 810F618
+ push {lr}
+ ldr r0, _0810F624
+ bl FlagSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F624: .4byte 0x0000085f
+ thumb_func_end sub_810F618
+
+ thumb_func_start sub_810F628
+sub_810F628: @ 810F628
+ push {r4,r5,lr}
+ sub sp, 0x14
+ ldr r5, _0810F690
+ movs r1, 0x90
+ lsls r1, 1
+ movs r4, 0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ str r4, [sp, 0xC]
+ adds r0, r5, 0
+ movs r2, 0x7
+ movs r3, 0x20
+ bl CreateMon
+ movs r1, 0x1
+ add r0, sp, 0x10
+ strh r1, [r0]
+ adds r0, r5, 0
+ movs r1, 0x2E
+ add r2, sp, 0x10
+ bl SetMonData
+ add r1, sp, 0x10
+ movs r0, 0x21
+ strh r0, [r1]
+ adds r0, r5, 0
+ movs r1, 0xD
+ add r2, sp, 0x10
+ bl SetMonData
+ add r0, sp, 0x10
+ strh r4, [r0]
+ adds r0, r5, 0
+ movs r1, 0xE
+ add r2, sp, 0x10
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0xF
+ add r2, sp, 0x10
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0x10
+ add r2, sp, 0x10
+ bl SetMonData
+ add sp, 0x14
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F690: .4byte gPlayerParty
+ thumb_func_end sub_810F628
+
+ thumb_func_start sub_810F694
+sub_810F694: @ 810F694
+ push {r4-r6,lr}
+ ldr r0, _0810F6D0
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_8109E50
+ lsls r0, 16
+ lsrs r6, r0, 16
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ cmp r4, r5
+ bcs _0810F6E2
+_0810F6B6:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _0810F6D4
+ adds r0, r1
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ cmp r0, r6
+ bne _0810F6D8
+ movs r0, 0x1
+ b _0810F6E4
+ .align 2, 0
+_0810F6D0: .4byte 0x00004023
+_0810F6D4: .4byte gPlayerParty
+_0810F6D8:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _0810F6B6
+_0810F6E2:
+ movs r0, 0
+_0810F6E4:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F694
+
+ thumb_func_start sub_810F6EC
+sub_810F6EC: @ 810F6EC
+ push {r4-r6,lr}
+ movs r5, 0
+_0810F6F0:
+ movs r4, 0
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r6, r0, 5
+_0810F6FC:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 4
+ ldr r1, _0810F718
+ adds r0, r1
+ adds r0, r6, r0
+ movs r1, 0xB
+ movs r2, 0
+ bl GetBoxMonData
+ cmp r0, 0
+ bne _0810F71C
+ movs r0, 0x1
+ b _0810F732
+ .align 2, 0
+_0810F718: .4byte gUnknown_020300A4
+_0810F71C:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1D
+ bls _0810F6FC
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xD
+ bls _0810F6F0
+ movs r0, 0
+_0810F732:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F6EC
+
+ thumb_func_start sub_810F738
+sub_810F738: @ 810F738
+ push {lr}
+ ldr r0, _0810F74C
+ movs r1, 0x3F
+ bl sub_8040110
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810F750
+ movs r0, 0x1
+ b _0810F752
+ .align 2, 0
+_0810F74C: .4byte gPlayerParty
+_0810F750:
+ movs r0, 0
+_0810F752:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F738
+
+ thumb_func_start sub_810F758
+sub_810F758: @ 810F758
+ push {lr}
+ ldr r0, _0810F798
+ movs r1, 0x9
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0810F79C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _0810F7A0
+ ldrh r2, [r0]
+ movs r0, 0
+ strh r2, [r1, 0x8]
+ strh r0, [r1, 0xA]
+ strh r0, [r1, 0xC]
+ strh r0, [r1, 0xE]
+ ldr r0, _0810F7A4
+ ldrh r0, [r0]
+ strh r0, [r1, 0x10]
+ movs r0, 0x5
+ strh r0, [r1, 0x12]
+ movs r0, 0
+ bl SetCameraPanningCallback
+ movs r0, 0xD6
+ bl PlaySE
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F798: .4byte sub_810F7A8
+_0810F79C: .4byte gTasks
+_0810F7A0: .4byte gUnknown_0202E8CE
+_0810F7A4: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_810F758
+
+ thumb_func_start sub_810F7A8
+sub_810F7A8: @ 810F7A8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _0810F810
+ adds r4, r0, r1
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ bl __modsi3
+ cmp r0, 0
+ bne _0810F808
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0810F808
+ ldrh r0, [r4, 0x8]
+ negs r0, r0
+ strh r0, [r4, 0x8]
+ ldrh r0, [r4, 0x10]
+ negs r0, r0
+ strh r0, [r4, 0x10]
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ movs r2, 0x10
+ ldrsh r1, [r4, r2]
+ bl SetCameraPanning
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x8
+ bne _0810F808
+ adds r0, r5, 0
+ bl sub_810F814
+ bl InstallCameraPanAheadCallback
+_0810F808:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810F810: .4byte gTasks
+ thumb_func_end sub_810F7A8
+
+ thumb_func_start sub_810F814
+sub_810F814: @ 810F814
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810F814
+
+ thumb_func_start sub_810F828
+sub_810F828: @ 810F828
+ push {lr}
+ movs r0, 0xAE
+ lsls r0, 2
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F828
+
+ thumb_func_start sub_810F83C
+sub_810F83C: @ 810F83C
+ push {lr}
+ bl get_map_light_from_warp0
+ lsls r0, 24
+ lsrs r0, 24
+ bl is_light_level_1_2_3_5_or_6
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0810F858
+ movs r0, 0x14
+ bl sub_80806B4
+_0810F858:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810F83C
+
+ thumb_func_start sub_810F85C
+sub_810F85C: @ 810F85C
+ push {lr}
+ bl get_map_light_from_warp0
+ lsls r0, 24
+ lsrs r0, 24
+ bl is_light_level_1_2_3_5_or_6
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0810F878
+ movs r0, 0x15
+ bl sub_80806B4
+_0810F878:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810F85C
+
+ thumb_func_start sub_810F87C
+sub_810F87C: @ 810F87C
+ push {r4-r6,lr}
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ cmp r5, r6
+ bcs _0810F8CA
+_0810F88C:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0810F8BC
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _0810F8C0
+ adds r0, r4, 0
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ cmp r0, 0
+ beq _0810F8C0
+ adds r0, r5, 0
+ b _0810F8CC
+ .align 2, 0
+_0810F8BC: .4byte gPlayerParty
+_0810F8C0:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, r6
+ bcc _0810F88C
+_0810F8CA:
+ movs r0, 0
+_0810F8CC:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F87C
+
+ thumb_func_start sub_810F8D4
+sub_810F8D4: @ 810F8D4
+ push {lr}
+ ldr r0, _0810F8F4
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0810F8F8
+ adds r0, r1
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810F8F4: .4byte gUnknown_0202E8CC
+_0810F8F8: .4byte gPlayerParty
+ thumb_func_end sub_810F8D4
+
+ thumb_func_start sub_810F8FC
+sub_810F8FC: @ 810F8FC
+ push {lr}
+ movs r0, 0x6
+ bl sub_805ADDC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810F8FC
+
+ thumb_func_start sub_810F908
+sub_810F908: @ 810F908
+ push {r4,lr}
+ ldr r0, _0810F928
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ adds r3, r0, 0
+ ldr r2, _0810F92C
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ subs r0, r3
+ cmp r0, 0x6
+ ble _0810F930
+ movs r0, 0
+ b _0810F948
+ .align 2, 0
+_0810F928: .4byte 0x000040c2
+_0810F92C: .4byte gLocalTime
+_0810F930:
+ ldrh r1, [r2]
+ movs r4, 0
+ ldrsh r0, [r2, r4]
+ cmp r0, 0
+ blt _0810F946
+ subs r1, r3
+ movs r0, 0x7
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ b _0810F948
+_0810F946:
+ movs r0, 0x8
+_0810F948:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F908
+
+ thumb_func_start sub_810F950
+sub_810F950: @ 810F950
+ push {r4,lr}
+ ldr r0, _0810F964
+ ldr r4, _0810F968
+ ldrh r1, [r4]
+ bl VarSet
+ ldrh r0, [r4]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810F964: .4byte 0x000040c2
+_0810F968: .4byte gLocalTime
+ thumb_func_end sub_810F950
+
+ thumb_func_start sub_810F96C
+sub_810F96C: @ 810F96C
+ push {r4,lr}
+ ldr r0, _0810F994
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0810F998
+ adds r0, r1
+ ldr r4, _0810F99C
+ movs r1, 0x7
+ adds r2, r4, 0
+ bl GetMonData
+ ldr r0, _0810F9A0
+ adds r1, r4, 0
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ beq _0810F9A4
+ movs r0, 0x1
+ b _0810F9A6
+ .align 2, 0
+_0810F994: .4byte gUnknown_0202E8CC
+_0810F998: .4byte gPlayerParty
+_0810F99C: .4byte gStringVar1
+_0810F9A0: .4byte gSaveBlock2
+_0810F9A4:
+ movs r0, 0
+_0810F9A6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810F96C
+
+ thumb_func_start sub_810F9AC
+sub_810F9AC: @ 810F9AC
+ push {r4,r5,lr}
+ ldr r2, _0810F9C0
+ ldrh r1, [r2]
+ ldr r0, _0810F9C4
+ cmp r1, r0
+ bls _0810F9C8
+ movs r0, 0
+ bl sub_80BF088
+ b _0810FA4A
+ .align 2, 0
+_0810F9C0: .4byte gScriptResult
+_0810F9C4: .4byte 0x0000270f
+_0810F9C8:
+ ldr r0, _0810F9D8
+ cmp r1, r0
+ bls _0810F9E0
+ ldr r4, _0810F9DC
+ movs r0, 0xA1
+ strb r0, [r4]
+ adds r4, 0x1
+ b _0810FA04
+ .align 2, 0
+_0810F9D8: .4byte 0x000003e7
+_0810F9DC: .4byte gStringVar1
+_0810F9E0:
+ cmp r1, 0x63
+ bls _0810F9F4
+ ldr r4, _0810F9F0
+ movs r0, 0xA1
+ strb r0, [r4]
+ strb r0, [r4, 0x1]
+ adds r4, 0x2
+ b _0810FA04
+ .align 2, 0
+_0810F9F0: .4byte gStringVar1
+_0810F9F4:
+ cmp r1, 0x9
+ bls _0810FA24
+ ldr r4, _0810FA20
+ movs r0, 0xA1
+ strb r0, [r4]
+ strb r0, [r4, 0x1]
+ strb r0, [r4, 0x2]
+ adds r4, 0x3
+_0810FA04:
+ ldrh r5, [r2]
+ adds r0, r5, 0
+ bl sub_80BF0B8
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0
+ bl ConvertIntToDecimalStringN
+ b _0810FA4A
+ .align 2, 0
+_0810FA20: .4byte gStringVar1
+_0810FA24:
+ ldr r4, _0810FA50
+ movs r0, 0xA1
+ strb r0, [r4]
+ strb r0, [r4, 0x1]
+ strb r0, [r4, 0x2]
+ strb r0, [r4, 0x3]
+ adds r4, 0x4
+ ldrh r5, [r2]
+ adds r0, r5, 0
+ bl sub_80BF0B8
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0
+ bl ConvertIntToDecimalStringN
+_0810FA4A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810FA50: .4byte gStringVar1
+ thumb_func_end sub_810F9AC
+
+ thumb_func_start sub_810FA54
+sub_810FA54: @ 810FA54
+ ldr r0, _0810FA68
+ ldr r2, _0810FA6C
+ adds r1, r0, r2
+ movs r2, 0
+ strh r2, [r1]
+ ldr r1, _0810FA70
+ adds r0, r1
+ strh r2, [r0]
+ bx lr
+ .align 2, 0
+_0810FA68: .4byte gSaveBlock1
+_0810FA6C: .4byte 0x000013c2
+_0810FA70: .4byte 0x000013c4
+ thumb_func_end sub_810FA54
+
+ thumb_func_start sub_810FA74
+sub_810FA74: @ 810FA74
+ push {lr}
+ bl sub_810FF30
+ lsls r0, 24
+ cmp r0, 0
+ beq _0810FA90
+ bl sub_810FCE8
+ ldr r0, _0810FA94
+ ldr r1, _0810FA98
+ ldrh r1, [r1, 0xE]
+ ldr r2, _0810FA9C
+ adds r0, r2
+ strh r1, [r0]
+_0810FA90:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810FA94: .4byte gSaveBlock1
+_0810FA98: .4byte gSaveBlock2
+_0810FA9C: .4byte 0x000013c4
+ thumb_func_end sub_810FA74
+
+ thumb_func_start sub_810FAA0
+sub_810FAA0: @ 810FAA0
+ push {r4,lr}
+ ldr r4, _0810FAF0
+ ldr r1, _0810FAF4
+ adds r0, r4, r1
+ ldrh r0, [r0]
+ lsrs r0, 7
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0810FAE8
+ bl sub_810FF48
+ bl sub_810FD80
+ ldr r0, _0810FAF8
+ ldrh r1, [r0, 0xE]
+ ldr r2, _0810FAFC
+ adds r0, r4, r2
+ strh r1, [r0]
+ ldr r0, _0810FB00
+ bl FlagReset
+ ldr r0, _0810FB04
+ bl FlagReset
+ ldr r0, _0810FB08
+ bl FlagReset
+ movs r0, 0xC6
+ lsls r0, 2
+ bl FlagReset
+ ldr r0, _0810FB0C
+ movs r1, 0x1
+ bl VarSet
+_0810FAE8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810FAF0: .4byte gSaveBlock1
+_0810FAF4: .4byte 0x000013c2
+_0810FAF8: .4byte gSaveBlock2
+_0810FAFC: .4byte 0x000013c4
+_0810FB00: .4byte 0x00000315
+_0810FB04: .4byte 0x00000316
+_0810FB08: .4byte 0x00000317
+_0810FB0C: .4byte 0x00004095
+ thumb_func_end sub_810FAA0
+
+ thumb_func_start sub_810FB10
+sub_810FB10: @ 810FB10
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0810FB54
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bne _0810FB80
+ ldr r0, _0810FB58
+ ldr r1, _0810FB5C
+ adds r4, r0, r1
+ ldrh r2, [r4]
+ movs r1, 0x7F
+ ands r1, r2
+ ldr r0, _0810FB60
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ adds r1, r0
+ cmp r1, 0x13
+ ble _0810FB7C
+ bl sub_810FCB0
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bhi _0810FB68
+ bl sub_810FB9C
+ ldrh r1, [r4]
+ ldr r0, _0810FB64
+ ands r0, r1
+ b _0810FB7E
+ .align 2, 0
+_0810FB54: .4byte 0x00004095
+_0810FB58: .4byte gSaveBlock1
+_0810FB5C: .4byte 0x000013c2
+_0810FB60: .4byte gUnknown_083F8404
+_0810FB64: .4byte 0x0000ff80
+_0810FB68:
+ ldrh r0, [r4]
+ ldr r1, _0810FB78
+ ands r1, r0
+ movs r0, 0x14
+ orrs r1, r0
+ strh r1, [r4]
+ b _0810FB80
+ .align 2, 0
+_0810FB78: .4byte 0x0000ff80
+_0810FB7C:
+ adds r0, r2, r0
+_0810FB7E:
+ strh r0, [r4]
+_0810FB80:
+ ldr r0, _0810FB94
+ ldr r1, _0810FB98
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x7F
+ ands r0, r1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810FB94: .4byte gSaveBlock1
+_0810FB98: .4byte 0x000013c2
+ thumb_func_end sub_810FB10
+
+ thumb_func_start sub_810FB9C
+sub_810FB9C: @ 810FB9C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ movs r3, 0
+ movs r5, 0
+ ldr r7, _0810FBD8
+ movs r6, 0x1
+_0810FBA8:
+ ldrh r1, [r7]
+ ldr r0, _0810FBDC
+ adds r0, r5, r0
+ ldrb r4, [r0]
+ asrs r1, r4
+ ands r1, r6
+ cmp r1, 0
+ bne _0810FBE0
+ adds r3, r5, 0
+ str r3, [sp]
+ bl Random
+ adds r1, r6, 0
+ ands r1, r0
+ ldr r3, [sp]
+ cmp r1, 0
+ beq _0810FBE0
+ adds r0, r6, 0
+ lsls r0, r4
+ ldrh r1, [r7]
+ orrs r0, r1
+ strh r0, [r7]
+ b _0810FC00
+ .align 2, 0
+_0810FBD8: .4byte gSaveBlock1 + 0x13C2
+_0810FBDC: .4byte gUnknown_083F8408
+_0810FBE0:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x7
+ bls _0810FBA8
+ ldr r2, _0810FC0C
+ ldr r0, _0810FC10
+ adds r2, r0
+ ldr r1, _0810FC14
+ adds r1, r3, r1
+ movs r0, 0x1
+ ldrb r1, [r1]
+ lsls r0, r1
+ ldrh r1, [r2]
+ orrs r0, r1
+ strh r0, [r2]
+_0810FC00:
+ adds r0, r3, 0
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810FC0C: .4byte gSaveBlock1
+_0810FC10: .4byte 0x000013c2
+_0810FC14: .4byte gUnknown_083F8408
+ thumb_func_end sub_810FB9C
+
+ thumb_func_start sub_810FC18
+sub_810FC18: @ 810FC18
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r0, 0
+ mov r8, r0
+ bl sub_810FCB0
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bne _0810FC3E
+ movs r0, 0
+ b _0810FC94
+_0810FC34:
+ lsls r4, r6
+ ldrh r0, [r2]
+ eors r4, r0
+ strh r4, [r2]
+ b _0810FC92
+_0810FC3E:
+ movs r5, 0
+ ldr r2, _0810FCA0
+ movs r4, 0x1
+_0810FC44:
+ ldrh r1, [r2]
+ ldr r7, _0810FCA4
+ adds r0, r5, r7
+ ldrb r6, [r0]
+ asrs r1, r6
+ ands r1, r4
+ cmp r1, 0
+ beq _0810FC66
+ mov r8, r5
+ str r2, [sp]
+ bl Random
+ adds r1, r4, 0
+ ands r1, r0
+ ldr r2, [sp]
+ cmp r1, 0
+ bne _0810FC34
+_0810FC66:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x7
+ bls _0810FC44
+ ldr r0, _0810FCA8
+ ldr r1, _0810FCAC
+ adds r4, r0, r1
+ ldrh r1, [r4]
+ mov r2, r8
+ adds r0, r2, r7
+ ldrb r2, [r0]
+ adds r0, r1, 0
+ asrs r0, r2
+ movs r3, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _0810FC92
+ adds r0, r3, 0
+ lsls r0, r2
+ eors r1, r0
+ strh r1, [r4]
+_0810FC92:
+ mov r0, r8
+_0810FC94:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810FCA0: .4byte gSaveBlock1 + 0x13C2
+_0810FCA4: .4byte gUnknown_083F8410
+_0810FCA8: .4byte gSaveBlock1
+_0810FCAC: .4byte 0x000013c2
+ thumb_func_end sub_810FC18
+
+ thumb_func_start sub_810FCB0
+sub_810FCB0: @ 810FCB0
+ push {r4,r5,lr}
+ movs r3, 0
+ movs r2, 0
+ ldr r0, _0810FCE4
+ ldrh r4, [r0]
+ movs r5, 0x1
+_0810FCBC:
+ adds r1, r2, 0
+ adds r1, 0x8
+ adds r0, r4, 0
+ asrs r0, r1
+ ands r0, r5
+ cmp r0, 0
+ beq _0810FCD0
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+_0810FCD0:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x7
+ bls _0810FCBC
+ adds r0, r3, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810FCE4: .4byte gSaveBlock1 + 0x13C2
+ thumb_func_end sub_810FCB0
+
+ thumb_func_start sub_810FCE8
+sub_810FCE8: @ 810FCE8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r5, 0
+ ldr r2, _0810FD08
+ ldrh r1, [r2, 0xE]
+ ldr r0, _0810FD0C
+ cmp r1, r0
+ bhi _0810FD54
+ ldr r7, _0810FD10
+ adds r6, r2, 0
+ ldr r0, _0810FD14
+ adds r0, r7
+ mov r8, r0
+ b _0810FD36
+ .align 2, 0
+_0810FD08: .4byte gSaveBlock2
+_0810FD0C: .4byte 0x000003e6
+_0810FD10: .4byte gSaveBlock1
+_0810FD14: .4byte 0x000013c4
+_0810FD18:
+ ldrh r1, [r6, 0xE]
+ ldr r0, _0810FD4C
+ adds r4, r7, r0
+ ldrh r0, [r4]
+ subs r1, r0
+ cmp r1, 0xB
+ ble _0810FD54
+ bl sub_810FC18
+ ldrh r0, [r4]
+ adds r0, 0xC
+ strh r0, [r4]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_0810FD36:
+ bl sub_810FCB0
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x4
+ bhi _0810FD50
+ ldrh r0, [r6, 0xE]
+ mov r1, r8
+ strh r0, [r1]
+ b _0810FD54
+ .align 2, 0
+_0810FD4C: .4byte 0x000013c4
+_0810FD50:
+ cmp r5, 0x8
+ bne _0810FD18
+_0810FD54:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810FCE8
+
+ thumb_func_start sub_810FD60
+sub_810FD60: @ 810FD60
+ ldr r0, _0810FD74
+ ldr r1, _0810FD78
+ adds r0, r1
+ ldrh r0, [r0]
+ ldr r1, _0810FD7C
+ ldrh r1, [r1]
+ asrs r0, r1
+ movs r1, 0x1
+ ands r0, r1
+ bx lr
+ .align 2, 0
+_0810FD74: .4byte gSaveBlock1
+_0810FD78: .4byte 0x000013c2
+_0810FD7C: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_810FD60
+
+ thumb_func_start sub_810FD80
+sub_810FD80: @ 810FD80
+ ldr r2, _0810FDA4
+ ldr r0, _0810FDA8
+ adds r2, r0
+ ldrh r1, [r2]
+ movs r3, 0x80
+ lsls r3, 6
+ adds r0, r3, 0
+ orrs r0, r1
+ movs r3, 0x80
+ lsls r3, 1
+ adds r1, r3, 0
+ orrs r0, r1
+ movs r3, 0x80
+ lsls r3, 3
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_0810FDA4: .4byte gSaveBlock1
+_0810FDA8: .4byte 0x000013c2
+ thumb_func_end sub_810FD80
+
+ thumb_func_start sub_810FDAC
+sub_810FDAC: @ 810FDAC
+ push {lr}
+ movs r3, 0
+ movs r2, 0
+ ldr r0, _0810FDC8
+ ldrh r0, [r0]
+ subs r0, 0x8
+ cmp r0, 0x7
+ bhi _0810FE0C
+ lsls r0, 2
+ ldr r1, _0810FDCC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0810FDC8: .4byte gUnknown_0202E8CC
+_0810FDCC: .4byte _0810FDD0
+ .align 2, 0
+_0810FDD0:
+ .4byte _0810FE0C
+ .4byte _0810FE0C
+ .4byte _0810FDF0
+ .4byte _0810FDF6
+ .4byte _0810FDFC
+ .4byte _0810FE02
+ .4byte _0810FE08
+ .4byte _0810FE0C
+_0810FDF0:
+ movs r3, 0
+ movs r2, 0x3
+ b _0810FE0C
+_0810FDF6:
+ movs r3, 0
+ movs r2, 0x1
+ b _0810FE0C
+_0810FDFC:
+ movs r3, 0x1
+ movs r2, 0
+ b _0810FE0C
+_0810FE02:
+ movs r3, 0
+ movs r2, 0x4
+ b _0810FE0C
+_0810FE08:
+ movs r3, 0x1
+ movs r2, 0x5
+_0810FE0C:
+ ldr r0, _0810FE18
+ adds r1, r3, 0
+ bl sub_810FE1C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810FE18: .4byte gSaveBlock1 + 0x30B8
+ thumb_func_end sub_810FDAC
+
+ thumb_func_start sub_810FE1C
+sub_810FE1C: @ 810FE1C
+ push {r4,lr}
+ lsls r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsrs r1, 20
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ bne _0810FED0
+ cmp r2, 0x5
+ bhi _0810FEBC
+ lsls r0, r2, 2
+ ldr r1, _0810FE3C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0810FE3C: .4byte _0810FE40
+ .align 2, 0
+_0810FE40:
+ .4byte _0810FEBC
+ .4byte _0810FE58
+ .4byte _0810FE6C
+ .4byte _0810FE80
+ .4byte _0810FE94
+ .4byte _0810FEA8
+_0810FE58:
+ ldr r0, _0810FE64
+ ldr r1, _0810FE68
+ bl StringCopy
+ b _0810FEF2
+ .align 2, 0
+_0810FE64: .4byte gStringVar1
+_0810FE68: .4byte gOtherText_Steven
+_0810FE6C:
+ ldr r0, _0810FE78
+ ldr r1, _0810FE7C
+ bl StringCopy
+ b _0810FEF2
+ .align 2, 0
+_0810FE78: .4byte gStringVar1
+_0810FE7C: .4byte gOtherText_Brawly
+_0810FE80:
+ ldr r0, _0810FE8C
+ ldr r1, _0810FE90
+ bl StringCopy
+ b _0810FEF2
+ .align 2, 0
+_0810FE8C: .4byte gStringVar1
+_0810FE90: .4byte gOtherText_Winona
+_0810FE94:
+ ldr r0, _0810FEA0
+ ldr r1, _0810FEA4
+ bl StringCopy
+ b _0810FEF2
+ .align 2, 0
+_0810FEA0: .4byte gStringVar1
+_0810FEA4: .4byte gOtherText_Phoebe
+_0810FEA8:
+ ldr r0, _0810FEB4
+ ldr r1, _0810FEB8
+ bl StringCopy
+ b _0810FEF2
+ .align 2, 0
+_0810FEB4: .4byte gStringVar1
+_0810FEB8: .4byte gOtherText_Glacia
+_0810FEBC:
+ ldr r0, _0810FEC8
+ ldr r1, _0810FECC
+ bl StringCopy
+ b _0810FEF2
+ .align 2, 0
+_0810FEC8: .4byte gStringVar1
+_0810FECC: .4byte gOtherText_Wallace
+_0810FED0:
+ ldr r4, _0810FEF8
+ adds r0, r4, 0
+ movs r2, 0x7
+ bl StringCopyN
+ movs r0, 0xFF
+ strb r0, [r4, 0x7]
+ ldrb r0, [r4]
+ cmp r0, 0xFC
+ bne _0810FEF2
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x15
+ bne _0810FEF2
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ConvertInternationalString
+_0810FEF2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810FEF8: .4byte gStringVar1
+ thumb_func_end sub_810FE1C
+
+ thumb_func_start sub_810FEFC
+sub_810FEFC: @ 810FEFC
+ push {lr}
+ ldr r0, _0810FF20
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bne _0810FF2C
+ bl sub_810FA74
+ ldr r0, _0810FF24
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0810FF28
+ bl sub_810FB9C
+ b _0810FF2C
+ .align 2, 0
+_0810FF20: .4byte 0x00004095
+_0810FF24: .4byte gUnknown_02024D26
+_0810FF28:
+ bl sub_810FC18
+_0810FF2C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810FEFC
+
+ thumb_func_start sub_810FF30
+sub_810FF30: @ 810FF30
+ ldr r0, _0810FF40
+ ldr r1, _0810FF44
+ adds r0, r1
+ ldrh r0, [r0]
+ lsrs r0, 7
+ movs r1, 0x1
+ ands r0, r1
+ bx lr
+ .align 2, 0
+_0810FF40: .4byte gSaveBlock1
+_0810FF44: .4byte 0x000013c2
+ thumb_func_end sub_810FF30
+
+ thumb_func_start sub_810FF48
+sub_810FF48: @ 810FF48
+ ldr r0, _0810FF58
+ ldr r1, _0810FF5C
+ adds r0, r1
+ ldrh r2, [r0]
+ movs r1, 0x80
+ orrs r1, r2
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_0810FF58: .4byte gSaveBlock1
+_0810FF5C: .4byte 0x000013c2
+ thumb_func_end sub_810FF48
+
+ thumb_func_start sub_810FF60
+sub_810FF60: @ 810FF60
+ push {lr}
+ ldr r0, _0810FF74
+ ldrb r0, [r0]
+ bl sub_810FB10
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0810FF74: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_810FF60
+
+ thumb_func_start sub_810FF78
+sub_810FF78: @ 810FF78
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r2, _0810FFA4
+ mov r0, sp
+ adds r1, r4, 0
+ bl CpuSet
+ movs r0, 0xFF
+ strb r0, [r4]
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810FFA4: .4byte 0x01000008
+ thumb_func_end sub_810FF78
+
+ thumb_func_start sub_810FFA8
+sub_810FFA8: @ 810FFA8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r5, 0x4
+_0810FFAE:
+ adds r0, r4, 0
+ bl sub_810FF78
+ adds r4, 0x10
+ subs r5, 0x1
+ cmp r5, 0
+ bge _0810FFAE
+ movs r0, 0x17
+ movs r1, 0
+ bl sav12_xor_set
+ movs r0, 0x18
+ movs r1, 0
+ bl sav12_xor_set
+ movs r0, 0x19
+ movs r1, 0
+ bl sav12_xor_set
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810FFA8
+
+ thumb_func_start sub_810FFDC
+sub_810FFDC: @ 810FFDC
+ adds r1, r0, 0
+ ldrh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xC]
+ adds r0, r2
+ ldrh r1, [r1, 0xE]
+ adds r0, r1
+ bx lr
+ thumb_func_end sub_810FFDC
+
+ thumb_func_start sub_810FFEC
+sub_810FFEC: @ 810FFEC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r1
+ lsls r2, 16
+ lsrs r7, r2, 16
+ movs r5, 0
+ ldr r6, _08110024
+ adds r4, r0, 0
+_0810FFFE:
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0x7
+ bl memcpy
+ movs r0, 0xFF
+ strb r0, [r6, 0x7]
+ adds r0, r6, 0
+ mov r1, r8
+ bl StringCompareWithoutExtCtrlCodes
+ cmp r0, 0
+ bne _08110028
+ ldrh r0, [r4, 0x8]
+ cmp r0, r7
+ bne _08110028
+ adds r0, r5, 0
+ b _08110032
+ .align 2, 0
+_08110024: .4byte gStringVar1
+_08110028:
+ adds r4, 0x10
+ adds r5, 0x1
+ cmp r5, 0x4
+ ble _0810FFFE
+ movs r0, 0x5
+_08110032:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_810FFEC
+
+ thumb_func_start sub_811003C
+sub_811003C: @ 811003C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ mov r8, r0
+ movs r0, 0x4
+_0811004A:
+ subs r2, r0, 0x1
+ mov r9, r2
+ cmp r2, 0
+ blt _081100A4
+ lsls r0, 4
+ mov r1, r8
+ adds r6, r1, r0
+ lsls r0, r2, 4
+ adds r5, r0, r1
+_0811005C:
+ adds r0, r6, 0
+ str r2, [sp, 0x10]
+ bl sub_810FFDC
+ adds r4, r0, 0
+ adds r0, r5, 0
+ bl sub_810FFDC
+ ldr r2, [sp, 0x10]
+ cmp r4, r0
+ ble _08110096
+ mov r1, sp
+ adds r0, r6, 0
+ ldm r0!, {r3,r4,r7}
+ stm r1!, {r3,r4,r7}
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r1, r6, 0
+ adds r0, r5, 0
+ ldm r0!, {r3,r4,r7}
+ stm r1!, {r3,r4,r7}
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r1, r5, 0
+ mov r0, sp
+ ldm r0!, {r3,r4,r7}
+ stm r1!, {r3,r4,r7}
+ ldr r0, [r0]
+ str r0, [r1]
+_08110096:
+ subs r5, 0x10
+ movs r0, 0x1
+ negs r0, r0
+ add r9, r0
+ mov r1, r9
+ cmp r1, 0
+ bge _0811005C
+_081100A4:
+ adds r0, r2, 0
+ cmp r0, 0
+ bgt _0811004A
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811003C
+
+ thumb_func_start sub_81100B8
+sub_81100B8: @ 81100B8
+ push {lr}
+ adds r2, r0, 0
+ cmp r1, 0x2
+ beq _081100E8
+ cmp r1, 0x2
+ bgt _081100CA
+ cmp r1, 0x1
+ beq _081100D0
+ b _08110112
+_081100CA:
+ cmp r1, 0x3
+ beq _08110100
+ b _08110112
+_081100D0:
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _081100E4
+ cmp r0, r1
+ bls _08110112
+ strh r1, [r2, 0xA]
+ b _08110112
+ .align 2, 0
+_081100E4: .4byte 0x0000270f
+_081100E8:
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _081100FC
+ cmp r0, r1
+ bls _08110112
+ strh r1, [r2, 0xC]
+ b _08110112
+ .align 2, 0
+_081100FC: .4byte 0x0000270f
+_08110100:
+ ldrh r0, [r2, 0xE]
+ adds r0, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _08110118
+ cmp r0, r1
+ bls _08110112
+ strh r1, [r2, 0xE]
+_08110112:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08110118: .4byte 0x0000270f
+ thumb_func_end sub_81100B8
+
+ thumb_func_start sub_811011C
+sub_811011C: @ 811011C
+ push {r4,lr}
+ cmp r0, 0x2
+ beq _08110136
+ cmp r0, 0x2
+ bgt _0811012C
+ cmp r0, 0x1
+ beq _08110132
+ b _0811014E
+_0811012C:
+ cmp r0, 0x3
+ beq _0811013A
+ b _0811014E
+_08110132:
+ movs r4, 0x17
+ b _0811013C
+_08110136:
+ movs r4, 0x18
+ b _0811013C
+_0811013A:
+ movs r4, 0x19
+_0811013C:
+ adds r0, r4, 0
+ bl sub_8053108
+ ldr r1, _08110154
+ cmp r0, r1
+ bhi _0811014E
+ adds r0, r4, 0
+ bl sav12_xor_increment
+_0811014E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08110154: .4byte 0x0000270e
+ thumb_func_end sub_811011C
+
+ thumb_func_start sub_8110158
+sub_8110158: @ 8110158
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r5, r0, 0
+ adds r7, r1, 0
+ mov r10, r3
+ ldr r0, [sp, 0x20]
+ lsls r2, 16
+ lsrs r2, 16
+ mov r9, r2
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ mov r0, r10
+ bl sub_811011C
+ adds r0, r5, 0
+ bl sub_811003C
+ adds r0, r5, 0
+ adds r1, r7, 0
+ mov r2, r9
+ bl sub_810FFEC
+ adds r6, r0, 0
+ cmp r6, 0x5
+ bne _081101CC
+ movs r6, 0x4
+ adds r4, r5, 0
+ adds r4, 0x40
+ adds r0, r4, 0
+ bl sub_810FF78
+ mov r0, r8
+ cmp r0, 0x1
+ bne _081101BA
+ movs r0, 0xFC
+ strb r0, [r4]
+ movs r0, 0x15
+ strb r0, [r4, 0x1]
+ adds r0, r5, 0
+ adds r0, 0x42
+ adds r1, r7, 0
+ movs r2, 0x5
+ bl StringCopyN
+ b _081101C4
+_081101BA:
+ adds r0, r4, 0
+ adds r1, r7, 0
+ movs r2, 0x7
+ bl StringCopyN
+_081101C4:
+ lsls r0, r6, 4
+ adds r0, r5, r0
+ mov r1, r9
+ strh r1, [r0, 0x8]
+_081101CC:
+ lsls r0, r6, 4
+ adds r0, r5, r0
+ mov r1, r10
+ bl sub_81100B8
+ adds r0, r5, 0
+ bl sub_811003C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8110158
+
+ thumb_func_start GameFreakRTC_Reset
+GameFreakRTC_Reset: @ 81101EC
+ push {lr}
+ ldr r0, _081101F8
+ bl sub_810FFA8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081101F8: .4byte gSaveBlock1 + 0x30B8
+ thumb_func_end GameFreakRTC_Reset
+
+ thumb_func_start sub_81101FC
+sub_81101FC: @ 81101FC
+ push {lr}
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 3
+ ldr r0, _08110220
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _08110224
+ cmp r0, r2
+ bls _0811021A
+ strh r2, [r1]
+_0811021A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08110220: .4byte gUnknown_0202FFD4
+_08110224: .4byte 0x0000270f
+ thumb_func_end sub_81101FC
+
+ thumb_func_start sub_8110228
+sub_8110228: @ 8110228
+ push {lr}
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 3
+ ldr r0, _0811024C
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _08110250
+ cmp r0, r2
+ bls _08110246
+ strh r2, [r1]
+_08110246:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811024C: .4byte gUnknown_0202FFD6
+_08110250: .4byte 0x0000270f
+ thumb_func_end sub_8110228
+
+ thumb_func_start sub_8110254
+sub_8110254: @ 8110254
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _08110268
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0811026C
+ cmp r0, 0x2
+ beq _0811027A
+ b _08110288
+ .align 2, 0
+_08110268: .4byte gUnknown_02024D26
+_0811026C:
+ eors r0, r4
+ bl sub_81101FC
+ adds r0, r4, 0
+ bl sub_8110228
+ b _08110288
+_0811027A:
+ movs r0, 0x1
+ eors r0, r4
+ bl sub_8110228
+ adds r0, r4, 0
+ bl sub_81101FC
+_08110288:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8110254
+
+ thumb_func_start sub_8110290
+sub_8110290: @ 8110290
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ bl sub_8110254
+ ldr r0, _081102D4
+ lsls r2, r4, 3
+ subs r2, r4
+ lsls r2, 3
+ ldr r3, _081102D8
+ adds r1, r2, r3
+ subs r3, 0x30
+ adds r2, r3
+ ldrh r2, [r2, 0xE]
+ ldr r3, _081102DC
+ ldrb r3, [r3]
+ ldr r6, _081102E0
+ ldr r5, _081102E4
+ lsls r4, 2
+ adds r4, r5
+ ldrb r5, [r4, 0x1]
+ lsls r4, r5, 3
+ subs r4, r5
+ lsls r4, 2
+ adds r4, r6
+ ldrb r4, [r4, 0x1A]
+ str r4, [sp]
+ bl sub_8110158
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081102D4: .4byte gSaveBlock1 + 0x30B8
+_081102D8: .4byte gUnknown_0202FFF0
+_081102DC: .4byte gUnknown_02024D26
+_081102E0: .4byte gLinkPlayers
+_081102E4: .4byte gUnknown_02029818
+ thumb_func_end sub_8110290
+
+ thumb_func_start sub_81102E8
+sub_81102E8: @ 81102E8
+ push {r4,lr}
+ ldr r4, _08110338
+ movs r0, 0x17
+ bl sub_8053108
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN_DigitWidth6
+ ldr r4, _0811033C
+ movs r0, 0x18
+ bl sub_8053108
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN_DigitWidth6
+ ldr r4, _08110340
+ movs r0, 0x19
+ bl sub_8053108
+ adds r1, r0, 0
+ adds r0, r4, 0
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN_DigitWidth6
+ ldr r0, _08110344
+ movs r1, 0x3
+ movs r2, 0x3
+ bl MenuPrint
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08110338: .4byte gStringVar1
+_0811033C: .4byte gStringVar2
+_08110340: .4byte gStringVar3
+_08110344: .4byte gOtherText_WinRecord
+ thumb_func_end sub_81102E8
+
+ thumb_func_start sub_8110348
+sub_8110348: @ 8110348
+ push {r4-r7,lr}
+ sub sp, 0x10
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldrh r0, [r7, 0xA]
+ cmp r0, 0
+ bne _081103C0
+ ldr r0, [r7, 0xC]
+ cmp r0, 0
+ bne _081103C0
+ mov r0, sp
+ movs r2, 0xFC
+ strb r2, [r0]
+ mov r1, sp
+ movs r0, 0x14
+ strb r0, [r1, 0x1]
+ movs r0, 0x6
+ strb r0, [r1, 0x2]
+ mov r0, sp
+ strb r2, [r0, 0x3]
+ movs r0, 0x11
+ strb r0, [r1, 0x4]
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ mov r4, sp
+ adds r4, 0x6
+ ldr r1, _081103B8
+ adds r0, r4, 0
+ bl StringCopy
+ mov r0, sp
+ movs r1, 0x3
+ adds r2, r6, 0
+ bl MenuPrint
+ ldr r1, _081103BC
+ adds r0, r4, 0
+ bl StringCopy
+ mov r0, sp
+ movs r1, 0xB
+ adds r2, r6, 0
+ bl MenuPrint
+ mov r0, sp
+ movs r1, 0x11
+ adds r2, r6, 0
+ bl MenuPrint
+ mov r0, sp
+ movs r1, 0x17
+ adds r2, r6, 0
+ bl MenuPrint
+ b _0811042E
+ .align 2, 0
+_081103B8: .4byte gOtherText_SevenDashes
+_081103BC: .4byte gOtherText_FourDashes
+_081103C0:
+ ldr r4, _08110438
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl StringFillWithTerminator
+ adds r0, r4, 0
+ adds r1, r7, 0
+ movs r2, 0x7
+ bl StringCopyN
+ adds r0, r4, 0
+ movs r1, 0x3
+ adds r2, r6, 0
+ bl MenuPrint
+ movs r0, 0xFC
+ strb r0, [r4]
+ movs r0, 0x14
+ strb r0, [r4, 0x1]
+ movs r0, 0x6
+ strb r0, [r4, 0x2]
+ adds r5, r4, 0x3
+ ldrh r1, [r7, 0xA]
+ adds r0, r5, 0
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ adds r0, r4, 0
+ movs r1, 0xB
+ adds r2, r6, 0
+ bl MenuPrint
+ ldrh r1, [r7, 0xC]
+ adds r0, r5, 0
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ adds r0, r4, 0
+ movs r1, 0x11
+ adds r2, r6, 0
+ bl MenuPrint
+ ldrh r1, [r7, 0xE]
+ adds r0, r5, 0
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ adds r0, r4, 0
+ movs r1, 0x17
+ adds r2, r6, 0
+ bl MenuPrint
+_0811042E:
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08110438: .4byte gStringVar1
+ thumb_func_end sub_8110348
+
+ thumb_func_start sub_811043C
+sub_811043C: @ 811043C
+ push {r4,lr}
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x1C
+ movs r3, 0x12
+ bl MenuDrawTextWindow
+ ldr r0, _08110488
+ movs r1, 0
+ movs r2, 0x1
+ movs r3, 0xF0
+ bl sub_8072BD8
+ ldr r0, _0811048C
+ bl sub_81102E8
+ ldr r0, _08110490
+ movs r1, 0xC
+ movs r2, 0x6
+ bl MenuPrint
+ movs r4, 0
+_08110468:
+ lsls r0, r4, 4
+ ldr r1, _0811048C
+ adds r0, r1
+ adds r4, 0x1
+ lsls r1, r4, 25
+ movs r2, 0xC0
+ lsls r2, 19
+ adds r1, r2
+ lsrs r1, 24
+ bl sub_8110348
+ cmp r4, 0x4
+ ble _08110468
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08110488: .4byte gOtherText_BattleResults
+_0811048C: .4byte gSaveBlock1 + 0x30B8
+_08110490: .4byte gOtherText_WinLoseDraw
+ thumb_func_end sub_811043C
+
+ thumb_func_start sub_8110494
+sub_8110494: @ 8110494
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _081104B4
+ ldr r2, _081104B8
+ adds r1, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bhi _081104E0
+ lsls r0, 2
+ ldr r1, _081104BC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081104B4: .4byte gSaveBlock2 + 0xA8
+_081104B8: .4byte 0x000004ae
+_081104BC: .4byte _081104C0
+ .align 2, 0
+_081104C0:
+ .4byte _081104E0
+ .4byte _081104E0
+ .4byte _081104DC
+ .4byte _081104DC
+ .4byte _081104E0
+ .4byte _081104E0
+ .4byte _081104DC
+_081104DC:
+ movs r0, 0x1
+ b _081104E2
+_081104E0:
+ movs r0, 0
+_081104E2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8110494
+
+ thumb_func_start sub_81104E8
+sub_81104E8: @ 81104E8
+ push {r4-r6,lr}
+ lsls r1, 16
+ lsrs r4, r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ adds r5, r2, 0
+ lsls r3, 24
+ lsrs r3, 24
+ adds r6, r3, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl MenuPrint
+ ldr r0, _0811052C
+ cmp r4, r0
+ bls _0811050A
+ adds r4, r0, 0
+_0811050A:
+ ldr r0, _08110530
+ adds r1, r4, 0
+ movs r2, 0x18
+ movs r3, 0x1
+ bl sub_8072C14
+ ldr r0, _08110534
+ adds r1, r5, 0x7
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r6, 0
+ bl MenuPrint
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811052C: .4byte 0x0000270f
+_08110530: .4byte gStringVar1
+_08110534: .4byte gOtherText_WinStreak
+ thumb_func_end sub_81104E8
+
+ thumb_func_start sub_8110538
+sub_8110538: @ 8110538
+ push {r4,lr}
+ adds r4, r1, 0
+ adds r3, r2, 0
+ lsls r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r1, _08110564
+ lsrs r0, 23
+ movs r2, 0x97
+ lsls r2, 3
+ adds r1, r2
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r0, _08110568
+ adds r2, r4, 0
+ bl sub_81104E8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08110564: .4byte gSaveBlock2 + 0xA8
+_08110568: .4byte gOtherText_Record
+ thumb_func_end sub_8110538
+
+ thumb_func_start sub_811056C
+sub_811056C: @ 811056C
+ push {lr}
+ lsls r0, 24
+ ldr r1, _08110588
+ lsrs r0, 23
+ ldr r2, _0811058C
+ adds r1, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ ldr r1, _08110590
+ cmp r0, r1
+ bls _08110584
+ adds r0, r1, 0
+_08110584:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08110588: .4byte gSaveBlock2
+_0811058C: .4byte 0x00000574
+_08110590: .4byte 0x0000270f
+ thumb_func_end sub_811056C
+
+ thumb_func_start sub_8110594
+sub_8110594: @ 8110594
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 24
+ lsrs r7, r2, 24
+ adds r0, r4, 0
+ bl sub_811056C
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ bl sub_8110494
+ cmp r0, 0x1
+ bne _081105CC
+ ldr r0, _081105C8
+ adds r1, r5, 0
+ adds r2, r6, 0
+ adds r3, r7, 0
+ bl sub_81104E8
+ b _081105D8
+ .align 2, 0
+_081105C8: .4byte gOtherText_Current
+_081105CC:
+ ldr r0, _081105E0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ adds r3, r7, 0
+ bl sub_81104E8
+_081105D8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081105E0: .4byte gOtherText_Prev
+ thumb_func_end sub_8110594
+
+ thumb_func_start sub_81105E4
+sub_81105E4: @ 81105E4
+ push {r4,lr}
+ movs r0, 0x3
+ movs r1, 0x1
+ movs r2, 0x1B
+ movs r3, 0x11
+ bl MenuDrawTextWindow
+ ldr r0, _08110658
+ movs r1, 0x3
+ movs r2, 0x2
+ movs r3, 0xC8
+ bl sub_8072BD8
+ ldr r0, _0811065C
+ movs r1, 0x5
+ movs r2, 0x6
+ bl MenuPrint
+ ldr r0, _08110660
+ movs r1, 0x5
+ movs r2, 0xC
+ bl MenuPrint
+ movs r4, 0x5
+_08110614:
+ lsls r1, r4, 24
+ lsrs r1, 24
+ movs r0, 0xAE
+ movs r2, 0xA
+ bl sub_8071F60
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x19
+ bls _08110614
+ movs r0, 0
+ movs r1, 0xA
+ movs r2, 0x6
+ bl sub_8110594
+ movs r0, 0
+ movs r1, 0xA
+ movs r2, 0x8
+ bl sub_8110538
+ movs r0, 0x1
+ movs r1, 0xA
+ movs r2, 0xC
+ bl sub_8110594
+ movs r0, 0x1
+ movs r1, 0xA
+ movs r2, 0xE
+ bl sub_8110538
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08110658: .4byte gOtherText_BattleTowerResults
+_0811065C: .4byte gOtherText_Lv50
+_08110660: .4byte gOtherText_Lv100
+ thumb_func_end sub_81105E4
+
+ thumb_func_start unref_sub_8110664
+unref_sub_8110664: @ 8110664
+ push {lr}
+ ldr r3, _08110678
+ str r1, [r3, 0x4]
+ str r2, [r3, 0x8]
+ strh r0, [r3, 0xE]
+ ldr r0, _0811067C
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08110678: .4byte 0x02000000
+_0811067C: .4byte sub_8110680
+ thumb_func_end unref_sub_8110664
+
+ thumb_func_start sub_8110680
+sub_8110680: @ 8110680
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _0811069C
+ ldr r1, _081106A0
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bls _08110692
+ b _081107C0
+_08110692:
+ lsls r0, 2
+ ldr r1, _081106A4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0811069C: .4byte gMain
+_081106A0: .4byte 0x0000043c
+_081106A4: .4byte _081106A8
+ .align 2, 0
+_081106A8:
+ .4byte _081106C8
+ .4byte _08110720
+ .4byte _08110740
+ .4byte _08110746
+ .4byte _08110752
+ .4byte _08110770
+ .4byte _08110782
+ .4byte _081107A8
+_081106C8:
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xC4
+ lsls r2, 7
+ adds r0, r2, 0
+ strh r0, [r1]
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl ResetTasks
+ bl FreeSpriteTileRanges
+ bl FreeAllSpritePalettes
+ ldr r0, _08110710
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, _08110714
+ ldr r3, _08110718
+ adds r0, r3, 0
+ strh r0, [r2]
+ ldr r0, _0811071C
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ b _081107C0
+ .align 2, 0
+_08110710: .4byte REG_BG0HOFS
+_08110714: .4byte REG_BG0VOFS
+_08110718: .4byte 0x0000fff8
+_0811071C: .4byte REG_BG2VOFS
+_08110720:
+ ldr r4, _0811073C
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80FA8EC
+ movs r0, 0x88
+ lsls r0, 4
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x10
+ bl StringFill
+ b _081107C0
+ .align 2, 0
+_0811073C: .4byte 0x020006e8
+_08110740:
+ bl sub_8110824
+ b _081107C0
+_08110746:
+ bl sub_8110838
+ lsls r0, 24
+ cmp r0, 0
+ bne _081107CC
+ b _081107C0
+_08110752:
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_80FBCF0
+ movs r1, 0x8
+ negs r1, r1
+ movs r0, 0
+ bl sub_80FB2A4
+ ldr r0, _0811076C
+ bl SetVBlankCallback
+ b _081107C0
+ .align 2, 0
+_0811076C: .4byte sub_81107DC
+_08110770:
+ movs r0, 0x15
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _081107C0
+_08110782:
+ ldr r1, _0811079C
+ ldr r2, _081107A0
+ adds r0, r2, 0
+ strh r0, [r1]
+ bl sub_8111084
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r3, _081107A4
+ adds r0, r3, 0
+ strh r0, [r1]
+ b _081107C0
+ .align 2, 0
+_0811079C: .4byte REG_BLDCNT
+_081107A0: .4byte 0x00003f41
+_081107A4: .4byte 0x00007741
+_081107A8:
+ ldr r0, _081107B8
+ bl sub_8110814
+ ldr r0, _081107BC
+ bl SetMainCallback2
+ b _081107CC
+ .align 2, 0
+_081107B8: .4byte sub_8111288
+_081107BC: .4byte sub_81107F0
+_081107C0:
+ ldr r1, _081107D4
+ ldr r0, _081107D8
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_081107CC:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081107D4: .4byte gMain
+_081107D8: .4byte 0x0000043c
+ thumb_func_end sub_8110680
+
+ thumb_func_start sub_81107DC
+sub_81107DC: @ 81107DC
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81107DC
+
+ thumb_func_start sub_81107F0
+sub_81107F0: @ 81107F0
+ push {lr}
+ ldr r0, _08110810
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl sub_8111110
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08110810: .4byte 0x02000000
+ thumb_func_end sub_81107F0
+
+ thumb_func_start sub_8110814
+sub_8110814: @ 8110814
+ ldr r1, _08110820
+ str r0, [r1]
+ movs r0, 0
+ strh r0, [r1, 0xC]
+ bx lr
+ .align 2, 0
+_08110820: .4byte 0x02000000
+ thumb_func_end sub_8110814
+
+ thumb_func_start sub_8110824
+sub_8110824: @ 8110824
+ ldr r0, _08110834
+ movs r1, 0x8A
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_08110834: .4byte 0x02000000
+ thumb_func_end sub_8110824
+
+ thumb_func_start sub_8110838
+sub_8110838: @ 8110838
+ push {lr}
+ ldr r1, _08110854
+ movs r2, 0x8A
+ lsls r2, 1
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x5
+ bhi _081108E4
+ lsls r0, 2
+ ldr r1, _08110858
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08110854: .4byte 0x02000000
+_08110858: .4byte _0811085C
+ .align 2, 0
+_0811085C:
+ .4byte _08110874
+ .4byte _08110884
+ .4byte _0811088A
+ .4byte _0811089C
+ .4byte _081108C0
+ .4byte _081108D0
+_08110874:
+ ldr r0, _08110880
+ ldrh r0, [r0, 0xE]
+ bl sub_8110908
+ b _081108F0
+ .align 2, 0
+_08110880: .4byte 0x02000000
+_08110884:
+ bl sub_8110C34
+ b _081108F0
+_0811088A:
+ ldr r0, _08110894
+ ldr r1, _08110898
+ bl LZ77UnCompVram
+ b _081108F0
+ .align 2, 0
+_08110894: .4byte gUnknown_083F8438
+_08110898: .4byte 0x0600c000
+_0811089C:
+ ldr r1, _081108B0
+ ldr r0, _081108B4
+ str r0, [r1]
+ ldr r0, _081108B8
+ str r0, [r1, 0x4]
+ ldr r0, _081108BC
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ b _081108F0
+ .align 2, 0
+_081108B0: .4byte 0x040000d4
+_081108B4: .4byte 0x02000116
+_081108B8: .4byte 0x0600f000
+_081108BC: .4byte 0x80000280
+_081108C0:
+ ldr r0, _081108CC
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ b _081108F0
+ .align 2, 0
+_081108CC: .4byte gUnknown_083F8418
+_081108D0:
+ ldr r1, _081108E8
+ ldr r3, _081108EC
+ adds r0, r3, 0
+ strh r0, [r1]
+ movs r0, 0x8A
+ lsls r0, 1
+ adds r1, r2, r0
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+_081108E4:
+ movs r0, 0
+ b _08110900
+ .align 2, 0
+_081108E8: .4byte REG_BG0CNT
+_081108EC: .4byte 0x00001e0d
+_081108F0:
+ ldr r1, _08110904
+ movs r2, 0x8A
+ lsls r2, 1
+ adds r1, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ movs r0, 0x1
+_08110900:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08110904: .4byte 0x02000000
+ thumb_func_end sub_8110838
+
+ thumb_func_start sub_8110908
+sub_8110908: @ 8110908
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 16
+ lsrs r7, r0, 16
+ .ifdef SAPPHIRE
+ ldr r0, _sub_8110908_Latias
+ .else
+ @ Latios
+ movs r0, 0xCC
+ lsls r0, 1
+ .endif
+ cmp r7, r0
+ bne _0811091E
+ b _08110A44
+_0811091E:
+ ldr r2, _08110988
+ movs r1, 0x88
+ lsls r1, 1
+ adds r0, r2, r1
+ movs r1, 0
+ strh r1, [r0]
+ movs r3, 0x89
+ lsls r3, 1
+ adds r0, r2, r3
+ strh r1, [r0]
+ movs r6, 0
+ ldr r1, _0811098C
+_08110936:
+ lsls r0, r6, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, r7
+ bne _08110942
+ b _08110A8C
+_08110942:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0
+ beq _08110936
+ movs r6, 0
+ ldr r4, _08110990
+ ldrh r0, [r4]
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _081109D0
+ mov r8, r4
+ adds r5, r4, 0x4
+ mov r9, r1
+_08110960:
+ lsls r0, r6, 1
+ adds r1, r0, r6
+ lsls r2, r1, 1
+ mov r3, r8
+ adds r1, r2, r3
+ adds r3, r0, 0
+ ldrh r1, [r1]
+ cmp r7, r1
+ bne _081109BA
+ adds r0, r4, 0x2
+ adds r0, r2, r0
+ ldrh r0, [r0]
+ cmp r0, 0x18
+ beq _081109A6
+ cmp r0, 0x18
+ bgt _08110994
+ cmp r0, 0
+ beq _0811099A
+ b _081109BA
+ .align 2, 0
+ .ifdef SAPPHIRE
+_sub_8110908_Latias: .4byte 407
+ .endif
+_08110988: .4byte 0x02000000
+_0811098C: .4byte gUnknown_083F856C
+_08110990: .4byte gUnknown_083F856E
+_08110994:
+ cmp r0, 0x1A
+ beq _081109A6
+ b _081109BA
+_0811099A:
+ adds r0, r2, r5
+ ldrh r1, [r0]
+ movs r0, 0
+ bl sub_8110A98
+ b _081109BA
+_081109A6:
+ adds r1, r3, r6
+ lsls r1, 1
+ mov r0, r8
+ adds r0, 0x2
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ adds r1, r5
+ ldrh r1, [r1]
+ bl sub_8110AE4
+_081109BA:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r4, _08110A00
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 1
+ adds r0, r4
+ ldrh r0, [r0]
+ cmp r0, r9
+ bne _08110960
+_081109D0:
+ movs r6, 0
+ ldr r1, _08110A04
+ ldrb r0, [r1]
+ cmp r0, 0xFF
+ beq _08110A8C
+_081109DA:
+ lsls r4, r6, 2
+ adds r0, r4, r6
+ lsls r0, 2
+ adds r5, r0, r1
+ adds r0, r5, 0
+ adds r1, r7, 0
+ bl sub_8110BA4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08110A28
+ ldrb r0, [r5]
+ cmp r0, 0x18
+ beq _08110A18
+ cmp r0, 0x18
+ bgt _08110A08
+ cmp r0, 0
+ beq _08110A0E
+ b _08110A28
+ .align 2, 0
+_08110A00: .4byte gUnknown_083F856E
+_08110A04: .4byte gWildMonHeaders
+_08110A08:
+ cmp r0, 0x1A
+ beq _08110A18
+ b _08110A28
+_08110A0E:
+ ldrb r1, [r5, 0x1]
+ movs r0, 0
+ bl sub_8110A98
+ b _08110A28
+_08110A18:
+ ldr r0, _08110A40
+ adds r1, r4, r6
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1]
+ ldrb r1, [r1, 0x1]
+ bl sub_8110AE4
+_08110A28:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r1, _08110A40
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _081109DA
+ b _08110A8C
+ .align 2, 0
+_08110A40: .4byte gWildMonHeaders
+_08110A44:
+ ldr r4, _08110A7C
+ movs r0, 0x89
+ lsls r0, 1
+ adds r1, r4, r0
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _08110A80
+ ldrb r2, [r0, 0x13]
+ cmp r2, 0
+ beq _08110A84
+ adds r0, r4, 0
+ adds r0, 0x10
+ adds r1, r4, 0
+ adds r1, 0x11
+ bl sub_8134538
+ ldrb r0, [r4, 0x10]
+ ldrb r1, [r4, 0x11]
+ bl get_mapheader_by_bank_and_number
+ ldrb r0, [r0, 0x14]
+ strh r0, [r4, 0x12]
+ movs r3, 0x88
+ lsls r3, 1
+ adds r1, r4, r3
+ movs r0, 0x1
+ strh r0, [r1]
+ b _08110A8C
+ .align 2, 0
+_08110A7C: .4byte 0x02000000
+_08110A80: .4byte gSaveBlock1 + 0x3144
+_08110A84:
+ movs r1, 0x88
+ lsls r1, 1
+ adds r0, r4, r1
+ strh r2, [r0]
+_08110A8C:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8110908
+
+ thumb_func_start sub_8110A98
+sub_8110A98: @ 8110A98
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r5, _08110AE0
+ movs r0, 0x88
+ lsls r0, 1
+ adds r4, r5, r0
+ ldrh r0, [r4]
+ cmp r0, 0x3F
+ bhi _08110AD8
+ lsls r0, 2
+ adds r0, r5
+ strb r2, [r0, 0x10]
+ ldrh r0, [r4]
+ lsls r0, 2
+ adds r0, r5
+ strb r1, [r0, 0x11]
+ adds r0, r2, 0
+ bl get_mapheader_by_bank_and_number
+ ldrb r0, [r0, 0x14]
+ bl sub_80FBA04
+ ldrh r1, [r4]
+ lsls r1, 2
+ adds r1, r5
+ strh r0, [r1, 0x12]
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_08110AD8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08110AE0: .4byte 0x02000000
+ thumb_func_end sub_8110A98
+
+ thumb_func_start sub_8110AE4
+sub_8110AE4: @ 8110AE4
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, _08110B9C
+ movs r3, 0x89
+ lsls r3, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ cmp r0, 0x1F
+ bhi _08110B96
+ adds r0, r2, 0
+ bl get_mapheader_by_bank_and_number
+ adds r6, r0, 0
+ ldrb r0, [r6, 0x14]
+ cmp r0, 0x57
+ bhi _08110B96
+ movs r4, 0
+ ldr r1, _08110BA0
+ ldrh r0, [r1]
+ cmp r0, 0x58
+ beq _08110B42
+ adds r5, r1, 0
+_08110B16:
+ lsls r2, r4, 2
+ adds r1, r2, r5
+ ldrb r0, [r6, 0x14]
+ ldrh r1, [r1]
+ cmp r0, r1
+ bne _08110B32
+ adds r0, r5, 0x2
+ adds r0, r2, r0
+ ldrh r0, [r0]
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _08110B96
+_08110B32:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r0, r4, 2
+ adds r0, r5
+ ldrh r0, [r0]
+ cmp r0, 0x58
+ bne _08110B16
+_08110B42:
+ movs r4, 0
+ ldr r0, _08110B9C
+ movs r1, 0x89
+ lsls r1, 1
+ adds r2, r0, r1
+ ldrh r3, [r2]
+ adds r1, r0, 0
+ cmp r4, r3
+ bcs _08110B76
+ movs r0, 0xC4
+ lsls r0, 3
+ adds r5, r1, r0
+ ldrh r0, [r5]
+ ldrb r2, [r6, 0x14]
+ cmp r0, r2
+ beq _08110B76
+_08110B62:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r3
+ bcs _08110B76
+ lsls r0, r4, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ cmp r0, r2
+ bne _08110B62
+_08110B76:
+ movs r3, 0x89
+ lsls r3, 1
+ adds r2, r1, r3
+ ldrh r0, [r2]
+ cmp r4, r0
+ bne _08110B96
+ lsls r0, r4, 1
+ movs r3, 0xC4
+ lsls r3, 3
+ adds r1, r3
+ adds r0, r1
+ ldrb r1, [r6, 0x14]
+ strh r1, [r0]
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+_08110B96:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08110B9C: .4byte 0x02000000
+_08110BA0: .4byte gUnknown_083F857A
+ thumb_func_end sub_8110AE4
+
+ thumb_func_start sub_8110BA4
+sub_8110BA4: @ 8110BA4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ adds r6, r4, 0
+ ldr r0, [r5, 0x4]
+ adds r1, r4, 0
+ movs r2, 0xC
+ bl sub_8110BFC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08110BF2
+ ldr r0, [r5, 0x8]
+ adds r1, r4, 0
+ movs r2, 0x5
+ bl sub_8110BFC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08110BF2
+ ldr r0, [r5, 0x10]
+ adds r1, r4, 0
+ movs r2, 0xC
+ bl sub_8110BFC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08110BF2
+ ldr r0, [r5, 0xC]
+ adds r1, r6, 0
+ movs r2, 0x5
+ bl sub_8110BFC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08110BF2
+ movs r0, 0
+ b _08110BF4
+_08110BF2:
+ movs r0, 0x1
+_08110BF4:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8110BA4
+
+ thumb_func_start sub_8110BFC
+sub_8110BFC: @ 8110BFC
+ push {r4,lr}
+ lsls r1, 16
+ lsrs r4, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ cmp r0, 0
+ beq _08110C2A
+ movs r3, 0
+ cmp r3, r2
+ bcs _08110C2A
+ ldr r1, [r0, 0x4]
+_08110C12:
+ lsls r0, r3, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x2]
+ cmp r0, r4
+ bne _08110C20
+ movs r0, 0x1
+ b _08110C2C
+_08110C20:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r2
+ bcc _08110C12
+_08110C2A:
+ movs r0, 0
+_08110C2C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8110BFC
+
+ thumb_func_start sub_8110C34
+sub_8110C34: @ 8110C34
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ ldr r1, _08110E5C
+ movs r0, 0
+ strh r0, [r1]
+ mov r9, r1
+ ldr r0, _08110E60
+ mov r8, r0
+ ldr r1, _08110E64
+ mov r12, r1
+ mov r1, r9
+ movs r4, 0x8B
+ lsls r4, 1
+ add r4, r8
+ ldr r3, _08110E68
+ movs r2, 0
+_08110C5C:
+ ldrh r0, [r1]
+ lsls r0, 1
+ adds r0, r4
+ strh r2, [r0]
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r3
+ bls _08110C5C
+ movs r0, 0
+ mov r3, r9
+ strh r0, [r3]
+ movs r1, 0x88
+ lsls r1, 1
+ add r1, r8
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _08110D04
+ ldr r4, _08110E6C
+ movs r2, 0
+ ldr r5, _08110E64
+ mov r0, r8
+ str r0, [sp, 0x8]
+ movs r1, 0x8B
+ lsls r1, 1
+ add r1, r8
+ mov r10, r1
+ ldr r6, _08110E70
+ mov r7, r9
+_08110C9A:
+ strh r2, [r4]
+ ldr r3, _08110E70
+ strh r2, [r3]
+_08110CA0:
+ mov r0, r12
+ strh r2, [r0]
+_08110CA4:
+ ldrh r0, [r5]
+ ldrh r1, [r6]
+ str r2, [sp]
+ bl sub_80FB9A8
+ ldrh r1, [r7]
+ lsls r1, 2
+ ldr r3, [sp, 0x8]
+ adds r1, r3
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, [sp]
+ ldrh r1, [r1, 0x12]
+ cmp r0, r1
+ bne _08110CCC
+ ldrh r0, [r4]
+ lsls r0, 1
+ add r0, r10
+ ldr r1, _08110E74
+ strh r1, [r0]
+_08110CCC:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1F
+ bls _08110CA4
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _08110E64
+ mov r12, r1
+ cmp r0, 0x13
+ bls _08110CA0
+ ldrh r0, [r7]
+ adds r0, 0x1
+ strh r0, [r7]
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r3, _08110E78
+ ldrh r3, [r3]
+ cmp r0, r3
+ bcc _08110C9A
+_08110D04:
+ movs r0, 0
+ ldr r1, _08110E6C
+ strh r0, [r1]
+ ldr r3, _08110E70
+ strh r0, [r3]
+ ldr r6, _08110E64
+ mov r10, r0
+ adds r3, r1, 0
+ ldr r5, _08110E7C
+ ldr r4, _08110E74
+ ldr r7, _08110E70
+_08110D1A:
+ mov r0, r10
+ strh r0, [r6]
+_08110D1E:
+ ldrh r1, [r3]
+ lsls r0, r1, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ cmp r0, r4
+ bne _08110E10
+ ldrh r0, [r6]
+ cmp r0, 0
+ beq _08110D42
+ subs r0, r1, 0x1
+ lsls r0, 1
+ adds r2, r0, r5
+ ldrh r1, [r2]
+ cmp r1, r4
+ beq _08110D42
+ movs r0, 0x2
+ orrs r0, r1
+ strh r0, [r2]
+_08110D42:
+ ldrh r0, [r6]
+ cmp r0, 0x1F
+ beq _08110D5C
+ ldrh r0, [r3]
+ adds r0, 0x1
+ lsls r0, 1
+ adds r2, r0, r5
+ ldrh r1, [r2]
+ cmp r1, r4
+ beq _08110D5C
+ movs r0, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+_08110D5C:
+ ldrh r0, [r7]
+ cmp r0, 0
+ beq _08110D76
+ ldrh r0, [r3]
+ subs r0, 0x20
+ lsls r0, 1
+ adds r2, r0, r5
+ ldrh r1, [r2]
+ cmp r1, r4
+ beq _08110D76
+ movs r0, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+_08110D76:
+ ldrh r0, [r7]
+ cmp r0, 0x13
+ beq _08110D90
+ ldrh r0, [r3]
+ adds r0, 0x20
+ lsls r0, 1
+ adds r2, r0, r5
+ ldrh r1, [r2]
+ cmp r1, r4
+ beq _08110D90
+ movs r0, 0x4
+ orrs r0, r1
+ strh r0, [r2]
+_08110D90:
+ ldrh r0, [r6]
+ cmp r0, 0
+ beq _08110DB0
+ ldrh r0, [r7]
+ cmp r0, 0
+ beq _08110DB0
+ ldrh r0, [r3]
+ subs r0, 0x21
+ lsls r0, 1
+ adds r2, r0, r5
+ ldrh r1, [r2]
+ cmp r1, r4
+ beq _08110DB0
+ movs r0, 0x10
+ orrs r0, r1
+ strh r0, [r2]
+_08110DB0:
+ ldrh r0, [r6]
+ cmp r0, 0x1F
+ beq _08110DD0
+ ldrh r0, [r7]
+ cmp r0, 0
+ beq _08110DD0
+ ldrh r0, [r3]
+ subs r0, 0x1F
+ lsls r0, 1
+ adds r2, r0, r5
+ ldrh r1, [r2]
+ cmp r1, r4
+ beq _08110DD0
+ movs r0, 0x40
+ orrs r0, r1
+ strh r0, [r2]
+_08110DD0:
+ ldrh r0, [r6]
+ cmp r0, 0
+ beq _08110DF0
+ ldrh r0, [r7]
+ cmp r0, 0x13
+ beq _08110DF0
+ ldrh r0, [r3]
+ adds r0, 0x1F
+ lsls r0, 1
+ adds r2, r0, r5
+ ldrh r1, [r2]
+ cmp r1, r4
+ beq _08110DF0
+ movs r0, 0x20
+ orrs r0, r1
+ strh r0, [r2]
+_08110DF0:
+ ldrh r0, [r6]
+ cmp r0, 0x1F
+ beq _08110E10
+ ldrh r0, [r7]
+ cmp r0, 0x13
+ beq _08110E10
+ ldrh r0, [r3]
+ adds r0, 0x21
+ lsls r0, 1
+ adds r2, r0, r5
+ ldrh r1, [r2]
+ cmp r1, r4
+ beq _08110E10
+ movs r0, 0x80
+ orrs r0, r1
+ strh r0, [r2]
+_08110E10:
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1F
+ bhi _08110E26
+ b _08110D1E
+_08110E26:
+ ldrh r0, [r7]
+ adds r0, 0x1
+ strh r0, [r7]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x13
+ bhi _08110E36
+ b _08110D1A
+_08110E36:
+ movs r0, 0
+ mov r1, r9
+ strh r0, [r1]
+_08110E3C:
+ mov r3, r9
+ ldrh r0, [r3]
+ lsls r0, 1
+ movs r4, 0x8B
+ lsls r4, 1
+ add r4, r8
+ adds r3, r0, r4
+ ldrh r2, [r3]
+ adds r1, r2, 0
+ ldr r0, _08110E74
+ cmp r1, r0
+ bne _08110E80
+ movs r0, 0x10
+ strh r0, [r3]
+ b _0811105E
+ .align 2, 0
+_08110E5C: .4byte gUnknown_02039260
+_08110E60: .4byte 0x02000000
+_08110E64: .4byte gUnknown_02039262
+_08110E68: .4byte 0x0000027f
+_08110E6C: .4byte gUnknown_02039266
+_08110E70: .4byte gUnknown_02039264
+_08110E74: .4byte 0x0000ffff
+_08110E78: .4byte 0x02000110
+_08110E7C: .4byte 0x02000116
+_08110E80:
+ cmp r1, 0
+ bne _08110E86
+ b _0811105E
+_08110E86:
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _08110E94
+ ldr r0, _08110F28
+ ands r0, r2
+ strh r0, [r3]
+_08110E94:
+ mov r1, r9
+ ldrh r0, [r1]
+ lsls r0, 1
+ adds r2, r0, r4
+ ldrh r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08110EAC
+ ldr r0, _08110F2C
+ ands r0, r1
+ strh r0, [r2]
+_08110EAC:
+ mov r3, r9
+ ldrh r0, [r3]
+ lsls r0, 1
+ adds r2, r0, r4
+ ldrh r1, [r2]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08110EC4
+ ldr r0, _08110F30
+ ands r0, r1
+ strh r0, [r2]
+_08110EC4:
+ mov r1, r9
+ ldrh r0, [r1]
+ lsls r0, 1
+ adds r2, r0, r4
+ ldrh r1, [r2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08110EDC
+ ldr r0, _08110F34
+ ands r0, r1
+ strh r0, [r2]
+_08110EDC:
+ ldr r6, _08110F38
+ mov r3, r9
+ ldrh r0, [r3]
+ lsls r0, 1
+ adds r0, r4
+ ldrh r1, [r0]
+ movs r5, 0xF
+ adds r0, r5, 0
+ ands r0, r1
+ strh r0, [r6]
+ ldr r2, _08110F3C
+ ldrh r0, [r3]
+ lsls r0, 1
+ adds r0, r4
+ ldrh r1, [r0]
+ movs r0, 0xF0
+ ands r0, r1
+ strh r0, [r2]
+ ldrh r1, [r3]
+ adds r3, r2, 0
+ cmp r0, 0
+ bne _08110F0A
+ b _0811105E
+_08110F0A:
+ lsls r0, r1, 1
+ adds r0, r4
+ ldrh r2, [r0]
+ adds r1, r5, 0
+ ands r1, r2
+ strh r1, [r0]
+ ldrh r0, [r6]
+ cmp r0, 0xA
+ bls _08110F1E
+ b _0811105E
+_08110F1E:
+ lsls r0, 2
+ ldr r1, _08110F40
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08110F28: .4byte 0x0000ffcf
+_08110F2C: .4byte 0x0000ff3f
+_08110F30: .4byte 0x0000ffaf
+_08110F34: .4byte 0x0000ff5f
+_08110F38: .4byte gUnknown_02039268
+_08110F3C: .4byte gUnknown_0203926A
+_08110F40: .4byte _08110F44
+ .align 2, 0
+_08110F44:
+ .4byte _08110F70
+ .4byte _08110FAC
+ .4byte _08110F8E
+ .4byte _0811105E
+ .4byte _08111002
+ .4byte _08111036
+ .4byte _08111036
+ .4byte _0811105E
+ .4byte _08110FCE
+ .4byte _0811104A
+ .4byte _0811104A
+_08110F70:
+ ldrh r0, [r3]
+ lsls r1, r0, 16
+ cmp r1, 0
+ beq _0811105E
+ mov r0, r9
+ ldrh r2, [r0]
+ lsls r2, 1
+ movs r0, 0x8B
+ lsls r0, 1
+ add r0, r8
+ adds r2, r0
+ ldrh r0, [r2]
+ adds r0, 0x10
+ lsrs r1, 20
+ b _08110FC8
+_08110F8E:
+ ldrh r0, [r3]
+ lsls r1, r0, 16
+ cmp r1, 0
+ beq _0811105E
+ mov r3, r9
+ ldrh r2, [r3]
+ lsls r2, 1
+ movs r0, 0x8B
+ lsls r0, 1
+ add r0, r8
+ adds r2, r0
+ ldrh r0, [r2]
+ adds r0, 0x1E
+ lsrs r1, 20
+ b _08110FC8
+_08110FAC:
+ ldrh r0, [r3]
+ lsls r1, r0, 16
+ cmp r1, 0
+ beq _0811105E
+ mov r0, r9
+ ldrh r2, [r0]
+ lsls r2, 1
+ movs r0, 0x8B
+ lsls r0, 1
+ add r0, r8
+ adds r2, r0
+ ldrh r0, [r2]
+ adds r0, 0x20
+ lsrs r1, 22
+_08110FC8:
+ adds r0, r1
+ strh r0, [r2]
+ b _0811105E
+_08110FCE:
+ ldrh r2, [r3]
+ cmp r2, 0
+ beq _0811105E
+ movs r0, 0x80
+ ands r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ negs r0, r0
+ lsrs r3, r0, 31
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _08110FEC
+ movs r0, 0x2
+ orrs r3, r0
+_08110FEC:
+ mov r0, r9
+ ldrh r1, [r0]
+ lsls r1, 1
+ movs r0, 0x8B
+ lsls r0, 1
+ add r0, r8
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x20
+ adds r0, r3
+ b _0811105C
+_08111002:
+ ldrh r2, [r3]
+ cmp r2, 0
+ beq _0811105E
+ movs r0, 0x40
+ ands r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ negs r0, r0
+ lsrs r3, r0, 31
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ beq _08111020
+ movs r0, 0x2
+ orrs r3, r0
+_08111020:
+ mov r0, r9
+ ldrh r1, [r0]
+ lsls r1, 1
+ movs r0, 0x8B
+ lsls r0, 1
+ add r0, r8
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x21
+ adds r0, r3
+ b _0811105C
+_08111036:
+ mov r3, r9
+ ldrh r1, [r3]
+ lsls r1, 1
+ movs r0, 0x8B
+ lsls r0, 1
+ add r0, r8
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x27
+ b _0811105C
+_0811104A:
+ mov r0, r9
+ ldrh r1, [r0]
+ lsls r1, 1
+ movs r0, 0x8B
+ lsls r0, 1
+ add r0, r8
+ adds r1, r0
+ ldrh r0, [r1]
+ adds r0, 0x25
+_0811105C:
+ strh r0, [r1]
+_0811105E:
+ mov r3, r9
+ ldrh r0, [r3]
+ adds r0, 0x1
+ strh r0, [r3]
+ lsls r0, 16
+ ldr r1, _08111080
+ cmp r0, r1
+ bhi _08111070
+ b _08110E3C
+_08111070:
+ 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
+_08111080: .4byte 0x027f0000
+ thumb_func_end sub_8110C34
+
+ thumb_func_start sub_8111084
+sub_8111084: @ 8111084
+ push {lr}
+ ldr r0, _081110AC
+ movs r2, 0x89
+ lsls r2, 1
+ adds r1, r0, r2
+ ldrh r1, [r1]
+ adds r2, r0, 0
+ cmp r1, 0
+ beq _081110B4
+ movs r3, 0x88
+ lsls r3, 1
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _081110B4
+ ldr r0, _081110B0
+ adds r1, r2, r0
+ movs r0, 0x1
+ b _081110BA
+ .align 2, 0
+_081110AC: .4byte 0x02000000
+_081110B0: .4byte 0x0000061e
+_081110B4:
+ ldr r3, _081110FC
+ adds r1, r2, r3
+ movs r0, 0
+_081110BA:
+ strb r0, [r1]
+ ldr r1, _08111100
+ adds r0, r2, r1
+ movs r1, 0
+ strh r1, [r0]
+ movs r3, 0xC3
+ lsls r3, 3
+ adds r0, r2, r3
+ strh r1, [r0]
+ adds r3, 0x2
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldr r0, _08111104
+ adds r1, r2, r0
+ movs r0, 0x40
+ strh r0, [r1]
+ adds r3, 0x5
+ adds r1, r2, r3
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _08111108
+ ldr r2, _0811110C
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0x80
+ lsls r3, 5
+ adds r0, r3, 0
+ strh r0, [r1]
+ bl sub_8111110
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081110FC: .4byte 0x0000061e
+_08111100: .4byte 0x00000616
+_08111104: .4byte 0x0000061c
+_08111108: .4byte REG_BLDCNT
+_0811110C: .4byte 0x00003f41
+ thumb_func_end sub_8111084
+
+ thumb_func_start sub_8111110
+sub_8111110: @ 8111110
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _0811114C
+ ldr r2, _08111150
+ adds r1, r0, r2
+ ldrb r1, [r1]
+ adds r5, r0, 0
+ cmp r1, 0
+ bne _081111DE
+ ldr r3, _08111154
+ adds r1, r5, r3
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _081111D8
+ movs r1, 0xC3
+ lsls r1, 3
+ adds r0, r5, r1
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+ movs r0, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _08111158
+ subs r2, 0x4
+ adds r0, r5, r2
+ b _0811115C
+ .align 2, 0
+_0811114C: .4byte 0x02000000
+_08111150: .4byte 0x0000061e
+_08111154: .4byte 0x00000616
+_08111158:
+ ldr r3, _081111C0
+ adds r0, r5, r3
+_0811115C:
+ ldrh r1, [r0]
+ adds r1, 0x4
+ movs r2, 0x7F
+ ands r1, r2
+ strh r1, [r0]
+ ldr r2, _081111C4
+ ldr r1, _081111C8
+ adds r0, r5, r1
+ ldrh r0, [r0]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r0]
+ lsls r1, 16
+ asrs r1, 20
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r3, _081111C0
+ adds r0, r5, r3
+ ldrh r0, [r0]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 20
+ lsls r0, 16
+ ldr r2, _081111CC
+ lsrs r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ ldr r1, _081111D0
+ adds r0, r5, r1
+ movs r2, 0
+ strh r2, [r0]
+ subs r3, 0x4
+ adds r1, r5, r3
+ ldrh r0, [r1]
+ cmp r0, 0x40
+ bne _0811126E
+ strh r2, [r1]
+ movs r1, 0x89
+ lsls r1, 1
+ adds r0, r5, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0811126E
+ ldr r2, _081111D4
+ adds r1, r5, r2
+ movs r0, 0x1
+ b _0811126C
+ .align 2, 0
+_081111C0: .4byte 0x0000061c
+_081111C4: .4byte gSineTable
+_081111C8: .4byte 0x0000061a
+_081111CC: .4byte REG_BLDALPHA
+_081111D0: .4byte 0x00000616
+_081111D4: .4byte 0x0000061e
+_081111D8:
+ subs r0, 0x1
+ strh r0, [r1]
+ b _0811126E
+_081111DE:
+ ldr r3, _0811127C
+ adds r1, r5, r3
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xC
+ bls _0811126E
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _08111280
+ adds r1, r5, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r4, 0
+ movs r2, 0x89
+ lsls r2, 1
+ adds r0, r5, r2
+ ldrh r3, [r0]
+ cmp r4, r3
+ bcs _0811124C
+ movs r2, 0xCC
+ lsls r2, 3
+ adds r2, r5
+ mov r9, r2
+ mov r8, r1
+ movs r3, 0x1
+ mov r12, r3
+ adds r6, r0, 0
+ movs r7, 0x5
+ negs r7, r7
+_08111220:
+ lsls r0, r4, 2
+ add r0, r9
+ ldr r3, [r0]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x1
+ adds r3, 0x3E
+ ands r1, r0
+ mov r2, r12
+ ands r1, r2
+ lsls r1, 2
+ ldrb r2, [r3]
+ adds r0, r7, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrh r3, [r6]
+ cmp r4, r3
+ bcc _08111220
+_0811124C:
+ ldr r0, _08111280
+ adds r1, r5, r0
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ bls _0811126E
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r1, 0x88
+ lsls r1, 1
+ adds r0, r5, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0811126E
+ ldr r2, _08111284
+ adds r1, r5, r2
+ movs r0, 0
+_0811126C:
+ strb r0, [r1]
+_0811126E:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811127C: .4byte 0x00000616
+_08111280: .4byte 0x0000061f
+_08111284: .4byte 0x0000061e
+ thumb_func_end sub_8111110
+
+ thumb_func_start sub_8111288
+sub_8111288: @ 8111288
+ push {lr}
+ ldr r1, _08111298
+ ldrh r0, [r1, 0xC]
+ cmp r0, 0
+ beq _0811129C
+ cmp r0, 0x1
+ beq _081112A2
+ b _081112B2
+ .align 2, 0
+_08111298: .4byte 0x02000000
+_0811129C:
+ movs r0, 0x1
+ strh r0, [r1, 0xC]
+ b _081112B2
+_081112A2:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _081112B2
+ ldr r0, _081112B8
+ bl sub_8110814
+_081112B2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081112B8: .4byte sub_81112BC
+ thumb_func_end sub_8111288
+
+ thumb_func_start sub_81112BC
+sub_81112BC: @ 81112BC
+ push {lr}
+ ldr r0, _081112DC
+ ldrh r0, [r0, 0xC]
+ cmp r0, 0
+ bne _08111308
+ ldr r0, _081112E0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081112E8
+ ldr r0, _081112E4
+ bl sub_8110814
+ b _08111308
+ .align 2, 0
+_081112DC: .4byte 0x02000000
+_081112E0: .4byte gMain
+_081112E4: .4byte sub_8111314
+_081112E8:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _08111302
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _08111308
+ ldr r0, _0811130C
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _08111308
+_08111302:
+ ldr r0, _08111310
+ bl sub_8110814
+_08111308:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811130C: .4byte gSaveBlock2
+_08111310: .4byte sub_8111360
+ thumb_func_end sub_81112BC
+
+ thumb_func_start sub_8111314
+sub_8111314: @ 8111314
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _08111328
+ ldrh r1, [r4, 0xC]
+ cmp r1, 0
+ beq _0811132C
+ cmp r1, 0x1
+ beq _08111344
+ b _08111358
+ .align 2, 0
+_08111328: .4byte 0x02000000
+_0811132C:
+ movs r0, 0x15
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ b _08111358
+_08111344:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _08111358
+ bl sub_80FAB10
+ ldr r0, [r4, 0x4]
+ bl SetMainCallback2
+_08111358:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8111314
+
+ thumb_func_start sub_8111360
+sub_8111360: @ 8111360
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _08111374
+ ldrh r1, [r4, 0xC]
+ cmp r1, 0
+ beq _08111378
+ cmp r1, 0x1
+ beq _08111390
+ b _081113A4
+ .align 2, 0
+_08111374: .4byte 0x02000000
+_08111378:
+ movs r0, 0x15
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ b _081113A4
+_08111390:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _081113A4
+ bl sub_80FAB10
+ ldr r0, [r4, 0x8]
+ bl SetMainCallback2
+_081113A4:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8111360
+
+ thumb_func_start sub_81113AC
+sub_81113AC: @ 81113AC
+ push {r4,lr}
+ ldr r2, _081113DC
+ movs r3, 0
+ movs r4, 0
+ strh r0, [r2, 0xE]
+ ldr r0, _081113E0
+ adds r2, r0
+ str r1, [r2]
+ strb r3, [r1]
+ ldr r0, _081113E4
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _081113E8
+ 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
+_081113DC: .4byte 0x02000000
+_081113E0: .4byte 0x000006e4
+_081113E4: .4byte sub_81113EC
+_081113E8: .4byte gTasks
+ thumb_func_end sub_81113AC
+
+ thumb_func_start sub_81113EC
+sub_81113EC: @ 81113EC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08111414
+ 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, 0xB
+ bls _0811140A
+ b _08111540
+_0811140A:
+ lsls r0, 2
+ ldr r1, _08111418
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08111414: .4byte gTasks
+_08111418: .4byte _0811141C
+ .align 2, 0
+_0811141C:
+ .4byte _0811144C
+ .4byte _08111488
+ .4byte _08111496
+ .4byte _081114B8
+ .4byte _081114BE
+ .4byte _081114CA
+ .4byte _081114DE
+ .4byte _081114E4
+ .4byte _081114EA
+ .4byte _081114F0
+ .4byte _08111502
+ .4byte _08111528
+_0811144C:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r3, 0xC4
+ lsls r3, 7
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _08111478
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, _0811147C
+ ldr r3, _08111480
+ adds r0, r3, 0
+ strh r0, [r2]
+ ldr r0, _08111484
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ b _08111540
+ .align 2, 0
+_08111478: .4byte REG_BG0HOFS
+_0811147C: .4byte REG_BG0VOFS
+_08111480: .4byte 0x0000fff8
+_08111484: .4byte REG_BG2VOFS
+_08111488:
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ b _08111540
+_08111496:
+ ldr r4, _081114B4
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80FA8EC
+ movs r0, 0x88
+ lsls r0, 4
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x10
+ bl StringFill
+ b _08111540
+ .align 2, 0
+_081114B4: .4byte 0x020006e8
+_081114B8:
+ bl sub_8110824
+ b _08111540
+_081114BE:
+ bl sub_8110838
+ lsls r0, 24
+ cmp r0, 0
+ bne _08111550
+ b _08111540
+_081114CA:
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_80FBCF0
+ movs r1, 0x8
+ negs r1, r1
+ movs r0, 0
+ bl sub_80FB2A4
+ b _08111540
+_081114DE:
+ bl sub_8111658
+ b _08111540
+_081114E4:
+ bl sub_81117AC
+ b _08111540
+_081114EA:
+ bl sub_81117E4
+ b _08111540
+_081114F0:
+ movs r0, 0x15
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _08111540
+_08111502:
+ ldr r1, _0811151C
+ ldr r2, _08111520
+ adds r0, r2, 0
+ strh r0, [r1]
+ bl sub_8111084
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r3, _08111524
+ adds r0, r3, 0
+ strh r0, [r1]
+ b _08111540
+ .align 2, 0
+_0811151C: .4byte REG_BLDCNT
+_08111520: .4byte 0x00003f41
+_08111524: .4byte 0x00007741
+_08111528:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _0811153C
+ str r1, [r0]
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ b _08111550
+ .align 2, 0
+_0811153C: .4byte sub_811155C
+_08111540:
+ ldr r0, _08111558
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_08111550:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08111558: .4byte gTasks
+ thumb_func_end sub_81113EC
+
+ thumb_func_start sub_811155C
+sub_811155C: @ 811155C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8111110
+ ldr r1, _08111584
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ cmp r1, 0x1
+ beq _081115B4
+ cmp r1, 0x1
+ bgt _08111588
+ cmp r1, 0
+ beq _0811159E
+ b _08111590
+ .align 2, 0
+_08111584: .4byte gTasks
+_08111588:
+ cmp r1, 0x2
+ beq _081115F8
+ cmp r1, 0x3
+ beq _0811160A
+_08111590:
+ ldr r0, _081115AC
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1, 0x8]
+_0811159E:
+ ldr r0, _081115B0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0811164C
+ b _0811163C
+ .align 2, 0
+_081115AC: .4byte gTasks
+_081115B0: .4byte gPaletteFade
+_081115B4:
+ ldr r0, _081115CC
+ ldrh r2, [r0, 0x2E]
+ movs r3, 0x2
+ adds r0, r3, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _081115D0
+ strh r1, [r5, 0xA]
+ movs r0, 0x3
+ bl PlaySE
+ b _0811163C
+ .align 2, 0
+_081115CC: .4byte gMain
+_081115D0:
+ movs r0, 0x10
+ ands r0, r2
+ cmp r0, 0
+ bne _081115EA
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r2
+ cmp r0, 0
+ beq _0811164C
+ ldr r0, _081115F4
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _0811164C
+_081115EA:
+ strh r3, [r5, 0xA]
+ movs r0, 0x6D
+ bl PlaySE
+ b _0811163C
+ .align 2, 0
+_081115F4: .4byte gSaveBlock2
+_081115F8:
+ movs r0, 0x15
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _0811163C
+_0811160A:
+ ldr r0, _08111630
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0811164C
+ bl sub_8111738
+ ldr r0, _08111634
+ ldr r1, _08111638
+ adds r0, r1
+ ldr r1, [r0]
+ ldrh r0, [r5, 0xA]
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl DestroyTask
+ b _0811164C
+ .align 2, 0
+_08111630: .4byte gPaletteFade
+_08111634: .4byte 0x02000000
+_08111638: .4byte 0x000006e4
+_0811163C:
+ ldr r0, _08111654
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_0811164C:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08111654: .4byte gTasks
+ thumb_func_end sub_811155C
+
+ thumb_func_start sub_8111658
+sub_8111658: @ 8111658
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _08111720
+ bl LoadSpriteSheet
+ ldr r0, _08111724
+ bl LoadSpritePalette
+ movs r5, 0
+ movs r1, 0
+ ldr r0, _08111728
+ movs r3, 0x89
+ lsls r3, 1
+ adds r2, r0, r3
+ ldrh r7, [r2]
+ cmp r5, r7
+ bge _0811170C
+ adds r6, r0, 0
+ mov r8, r2
+_08111680:
+ lsls r0, r1, 16
+ asrs r4, r0, 16
+ lsls r1, r4, 1
+ movs r2, 0xC4
+ lsls r2, 3
+ adds r0, r6, r2
+ adds r1, r0
+ ldr r2, _0811172C
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ lsls r0, 3
+ adds r0, r2
+ ldrb r1, [r0]
+ adds r1, 0x1
+ lsls r1, 3
+ adds r1, 0x4
+ ldrb r2, [r0, 0x1]
+ lsls r2, 19
+ ldrb r3, [r0, 0x2]
+ subs r3, 0x1
+ lsls r3, 2
+ ldrb r0, [r0, 0x3]
+ subs r0, 0x1
+ lsls r0, 2
+ movs r7, 0xE0
+ lsls r7, 13
+ adds r2, r7
+ asrs r2, 16
+ adds r1, r3
+ adds r2, r0
+ ldr r0, _08111730
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _081116FC
+ ldr r0, _08111734
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+ adds r1, r5, 0
+ lsls r0, r1, 16
+ movs r3, 0x80
+ lsls r3, 9
+ adds r0, r3
+ lsrs r5, r0, 16
+ lsls r1, 16
+ asrs r1, 14
+ movs r7, 0xCC
+ lsls r7, 3
+ adds r0, r6, r7
+ adds r1, r0
+ str r2, [r1]
+_081116FC:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ asrs r0, 16
+ mov r2, r8
+ ldrh r2, [r2]
+ cmp r0, r2
+ blt _08111680
+_0811170C:
+ ldr r0, _08111728
+ movs r3, 0xDC
+ lsls r3, 3
+ adds r0, r3
+ strh r5, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08111720: .4byte gUnknown_083F858C
+_08111724: .4byte gUnknown_083F8594
+_08111728: .4byte 0x02000000
+_0811172C: .4byte gRegionMapLocations
+_08111730: .4byte gSpriteTemplate_83F85A4
+_08111734: .4byte gSprites
+ thumb_func_end sub_8111658
+
+ thumb_func_start sub_8111738
+sub_8111738: @ 8111738
+ push {r4-r6,lr}
+ movs r0, 0x2
+ bl FreeSpriteTilesByTag
+ movs r0, 0x2
+ bl FreeSpritePaletteByTag
+ movs r4, 0
+ ldr r1, _081117A4
+ movs r2, 0xDC
+ lsls r2, 3
+ adds r0, r1, r2
+ ldrh r2, [r0]
+ cmp r4, r2
+ bcs _08111776
+ adds r6, r1, 0
+ adds r5, r0, 0
+_0811175A:
+ lsls r0, r4, 2
+ movs r2, 0xCC
+ lsls r2, 3
+ adds r1, r6, r2
+ adds r0, r1
+ ldr r0, [r0]
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrh r0, [r5]
+ cmp r4, r0
+ bcc _0811175A
+_08111776:
+ movs r0, 0x3
+ bl FreeSpriteTilesByTag
+ movs r0, 0x3
+ bl FreeSpritePaletteByTag
+ movs r4, 0
+ ldr r5, _081117A8
+_08111786:
+ lsls r0, r4, 2
+ adds r0, r5
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08111794
+ bl DestroySprite
+_08111794:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x2
+ bls _08111786
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081117A4: .4byte 0x02000000
+_081117A8: .4byte 0x02000fa8
+ thumb_func_end sub_8111738
+
+ thumb_func_start sub_81117AC
+sub_81117AC: @ 81117AC
+ push {lr}
+ sub sp, 0x8
+ ldr r0, _081117D4
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ ldr r0, _081117D8
+ ldr r1, _081117DC
+ bl LZ77UnCompWram
+ mov r0, sp
+ bl LoadSpriteSheet
+ ldr r0, _081117E0
+ bl LoadSpritePalette
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081117D4: .4byte gUnknown_083F8664
+_081117D8: .4byte gAreaUnknownTiles
+_081117DC: .4byte 0x02000fb4
+_081117E0: .4byte gUnknown_083F865C
+ thumb_func_end sub_81117AC
+
+ thumb_func_start sub_81117E4
+sub_81117E4: @ 81117E4
+ push {r4-r7,lr}
+ ldr r1, _08111810
+ movs r2, 0x88
+ lsls r2, 1
+ adds r0, r1, r2
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08111818
+ movs r4, 0
+ ldr r7, _08111814
+ adds r2, r1, r7
+ movs r1, 0
+_081117FC:
+ lsls r0, r4, 2
+ adds r0, r2
+ str r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x2
+ bls _081117FC
+ b _0811188E
+ .align 2, 0
+_08111810: .4byte 0x02000000
+_08111814: .4byte 0x00000fa8
+_08111818:
+ movs r4, 0
+ ldr r6, _08111868
+ ldr r0, _0811186C
+ adds r5, r1, r0
+_08111820:
+ lsls r1, r4, 21
+ movs r2, 0xA0
+ lsls r2, 16
+ adds r1, r2
+ asrs r1, 16
+ ldr r0, _08111870
+ movs r2, 0x8C
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0811187C
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r6
+ ldrh r3, [r2, 0x4]
+ lsls r0, r3, 22
+ lsrs r0, 22
+ lsls r1, r4, 4
+ adds r0, r1
+ ldr r7, _08111874
+ adds r1, r7, 0
+ ands r0, r1
+ ldr r7, _08111878
+ adds r1, r7, 0
+ ands r3, r1
+ orrs r3, r0
+ strh r3, [r2, 0x4]
+ lsls r0, r4, 2
+ adds r0, r5
+ str r2, [r0]
+ b _08111884
+ .align 2, 0
+_08111868: .4byte gSprites
+_0811186C: .4byte 0x00000fa8
+_08111870: .4byte gSpriteTemplate_83F8674
+_08111874: .4byte 0x000003ff
+_08111878: .4byte 0xfffffc00
+_0811187C:
+ lsls r0, r4, 2
+ adds r0, r5
+ movs r1, 0
+ str r1, [r0]
+_08111884:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x2
+ bls _08111820
+_0811188E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81117E4
+
+ thumb_func_start sub_8111894
+sub_8111894: @ 8111894
+ push {lr}
+ bl UpdatePaletteFade
+ bl RunTasks
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8111894
+
+ thumb_func_start sub_81118A4
+sub_81118A4: @ 81118A4
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r7, 0
+ ldr r1, _081118C8
+ 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 _081118CC
+ cmp r0, 0x1
+ beq _081118E4
+ b _08111918
+ .align 2, 0
+_081118C8: .4byte gTasks
+_081118CC:
+ movs r0, 0x1
+ negs r0, r0
+ str r7, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08111918
+_081118E4:
+ ldr r0, _08111920
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08111918
+ movs r0, 0xA
+ ldrsh r7, [r4, r0]
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ lsls r0, 16
+ orrs r7, r0
+ ldrh r5, [r4, 0x10]
+ ldrb r6, [r4, 0x12]
+ ldrh r4, [r4, 0x20]
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r2, 0
+ bl DestroyTask
+ adds r0, r7, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ adds r3, r4, 0
+ bl evolution_cutscene
+_08111918:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08111920: .4byte gPaletteFade
+ thumb_func_end sub_81118A4
+
+ thumb_func_start sub_8111924
+sub_8111924: @ 8111924
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ mov r8, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _08111978
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0811197C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ mov r0, r8
+ strh r0, [r1, 0xA]
+ mov r0, r8
+ lsrs r0, 16
+ strh r0, [r1, 0xC]
+ strh r4, [r1, 0x10]
+ strh r5, [r1, 0x12]
+ strh r6, [r1, 0x20]
+ ldr r0, _08111980
+ bl SetMainCallback2
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08111978: .4byte sub_81118A4
+_0811197C: .4byte gTasks
+_08111980: .4byte sub_8111894
+ thumb_func_end sub_8111924
+
+ thumb_func_start evolution_cutscene
+evolution_cutscene: @ 8111984
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x38
+ str r0, [sp, 0x20]
+ mov r10, r1
+ mov r0, r10
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x24]
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0x28]
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r5, 0
+ str r5, [sp, 0x1C]
+ add r0, sp, 0x1C
+ movs r1, 0xC0
+ lsls r1, 19
+ ldr r2, _08111C10
+ bl CpuSet
+ ldr r0, _08111C14
+ strh r5, [r0]
+ subs r0, 0xC
+ strh r5, [r0]
+ adds r0, 0x4
+ strh r5, [r0]
+ subs r0, 0x2
+ strh r5, [r0]
+ adds r0, 0x4
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ ldr r4, _08111C18
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ bl ResetPaletteFade
+ ldr r0, _08111C1C
+ strh r5, [r0]
+ ldr r0, _08111C20
+ strh r5, [r0]
+ ldr r0, _08111C24
+ strh r5, [r0]
+ ldr r0, _08111C28
+ strh r5, [r0]
+ ldr r0, _08111C2C
+ strh r5, [r0]
+ ldr r0, _08111C30
+ strh r5, [r0]
+ ldr r1, _08111C34
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08111C38
+ strh r5, [r0]
+ ldr r0, _08111C3C
+ adds r1, r4, 0
+ bl InitWindowFromConfig
+ ldr r1, _08111C40
+ movs r0, 0x9
+ strb r0, [r1]
+ bl sub_800D6D4
+ bl sub_800DAB8
+ bl ResetSpriteData
+ bl remove_some_task
+ bl ResetTasks
+ bl FreeAllSpritePalettes
+ ldr r0, _08111C44
+ movs r3, 0x4
+ strb r3, [r0]
+ ldr r0, [sp, 0x20]
+ movs r1, 0x2
+ add r2, sp, 0x8
+ bl GetMonData
+ ldr r0, _08111C48
+ add r1, sp, 0x8
+ bl StringCopy10
+ ldr r0, _08111C4C
+ movs r1, 0xB
+ mov r4, r10
+ muls r4, r1
+ adds r1, r4, 0
+ ldr r2, _08111C50
+ adds r1, r2
+ bl StringCopy
+ ldr r0, [sp, 0x20]
+ movs r1, 0xB
+ bl GetMonData
+ adds r6, r0, 0
+ lsls r6, 16
+ lsrs r6, 16
+ ldr r0, [sp, 0x20]
+ movs r1, 0x1
+ bl GetMonData
+ str r0, [sp, 0x2C]
+ ldr r0, [sp, 0x20]
+ movs r1, 0
+ bl GetMonData
+ str r0, [sp, 0x30]
+ lsls r0, r6, 3
+ ldr r1, _08111C54
+ adds r0, r1
+ lsls r2, r6, 2
+ ldr r3, _08111C58
+ adds r2, r3
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ ldr r4, _08111C5C
+ ldr r3, [r4, 0x4]
+ str r3, [sp]
+ str r6, [sp, 0x4]
+ movs r3, 0x80
+ lsls r3, 18
+ bl DecompressPicFromTable_2
+ adds r0, r6, 0
+ ldr r1, [sp, 0x2C]
+ ldr r2, [sp, 0x30]
+ bl sub_80409C8
+ ldr r0, [r0]
+ movs r1, 0x88
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _08111C60
+ mov r9, r0
+ ldr r1, _08111C64
+ str r1, [r0, 0x10]
+ movs r1, 0x78
+ movs r2, 0x40
+ movs r3, 0x1E
+ bl CreateSprite
+ lsls r1, r0, 24
+ lsrs r2, r1, 24
+ ldr r3, _08111C68
+ strb r0, [r3]
+ ldr r7, _08111C6C
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ movs r4, 0x1C
+ adds r4, r7
+ mov r8, r4
+ adds r0, r1, r4
+ ldr r2, _08111C70
+ str r2, [r0]
+ adds r1, r7
+ ldrb r2, [r1, 0x5]
+ movs r4, 0xF
+ adds r0, r4, 0
+ ands r0, r2
+ movs r2, 0x10
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r3, 0x4
+ orrs r0, r3
+ strb r0, [r1]
+ mov r1, r10
+ lsls r0, r1, 3
+ ldr r2, _08111C54
+ adds r0, r2
+ lsls r2, r1, 2
+ ldr r3, _08111C58
+ adds r2, r3
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ str r2, [sp, 0x34]
+ ldr r2, _08111C5C
+ ldr r2, [r2, 0xC]
+ str r2, [sp]
+ mov r3, r10
+ str r3, [sp, 0x4]
+ ldr r2, [sp, 0x34]
+ movs r3, 0x80
+ lsls r3, 18
+ bl DecompressPicFromTable_2
+ mov r0, r10
+ ldr r1, [sp, 0x2C]
+ ldr r2, [sp, 0x30]
+ bl sub_80409C8
+ ldr r0, [r0]
+ movs r1, 0x90
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ mov r0, r10
+ movs r1, 0x3
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _08111C64
+ mov r1, r9
+ str r0, [r1, 0x10]
+ mov r0, r9
+ movs r1, 0x78
+ movs r2, 0x40
+ movs r3, 0x1E
+ bl CreateSprite
+ lsls r1, r0, 24
+ lsrs r2, r1, 24
+ ldr r3, _08111C68
+ strb r0, [r3, 0x1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ add r8, r1
+ ldr r0, _08111C70
+ mov r2, r8
+ str r0, [r2]
+ adds r1, r7
+ ldrb r0, [r1, 0x5]
+ ands r4, r0
+ movs r0, 0x20
+ orrs r4, r0
+ strb r4, [r1, 0x5]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r3, 0x4
+ orrs r0, r3
+ strb r0, [r1]
+ bl sub_8149954
+ ldr r0, _08111C74
+ movs r1, 0
+ bl CreateTask
+ lsls r1, r0, 24
+ lsrs r2, r1, 24
+ ldr r4, _08111C68
+ strb r0, [r4, 0x2]
+ ldr r1, _08111C78
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x8]
+ strh r6, [r0, 0xE]
+ mov r1, r10
+ strh r1, [r0, 0x10]
+ mov r2, sp
+ ldrh r2, [r2, 0x20]
+ strh r2, [r0, 0xA]
+ ldr r3, [sp, 0x20]
+ lsrs r1, r3, 16
+ strh r1, [r0, 0xC]
+ mov r4, sp
+ ldrh r4, [r4, 0x24]
+ strh r4, [r0, 0x12]
+ movs r1, 0x1
+ strh r1, [r0, 0x14]
+ strh r5, [r0, 0x1E]
+ mov r1, sp
+ ldrh r1, [r1, 0x28]
+ strh r1, [r0, 0x20]
+ ldr r0, _08111C7C
+ ldr r1, _08111C80
+ movs r2, 0x60
+ bl memcpy
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08111C84
+ bl SetHBlankCallback
+ ldr r0, _08111C88
+ bl SetVBlankCallback
+ bl m4aMPlayAllStop
+ ldr r0, _08111C8C
+ bl SetMainCallback2
+ add sp, 0x38
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08111C10: .4byte 0x05006000
+_08111C14: .4byte REG_MOSAIC
+_08111C18: .4byte gWindowConfig_81E6C58
+_08111C1C: .4byte gUnknown_030042A4
+_08111C20: .4byte gUnknown_030042A0
+_08111C24: .4byte gUnknown_030042C0
+_08111C28: .4byte gUnknown_030041B4
+_08111C2C: .4byte gUnknown_03004288
+_08111C30: .4byte gUnknown_03004280
+_08111C34: .4byte gUnknown_030041B0
+_08111C38: .4byte gUnknown_030041B8
+_08111C3C: .4byte gUnknown_03004210
+_08111C40: .4byte gUnknown_0300428C
+_08111C44: .4byte gReservedSpritePaletteCount
+_08111C48: .4byte gStringVar1
+_08111C4C: .4byte gStringVar2
+_08111C50: .4byte gSpeciesNames
+_08111C54: .4byte gMonFrontPicTable
+_08111C58: .4byte gMonFrontPicCoords
+_08111C5C: .4byte gUnknown_081FAF4C
+_08111C60: .4byte gUnknown_02024E8C
+_08111C64: .4byte gDummySpriteAffineAnimTable
+_08111C68: .4byte 0x02014800
+_08111C6C: .4byte gSprites
+_08111C70: .4byte nullsub_37
+_08111C74: .4byte sub_811240C
+_08111C78: .4byte gTasks
+_08111C7C: .4byte 0x02009000
+_08111C80: .4byte gPlttBufferUnfaded + 0x40
+_08111C84: .4byte nullsub_73
+_08111C88: .4byte sub_8114FD4
+_08111C8C: .4byte sub_8112270
+ thumb_func_end evolution_cutscene
+
+ thumb_func_start sub_8111C90
+sub_8111C90: @ 8111C90
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0xC
+ ldr r2, _08111E14
+ ldr r0, _08111E18
+ mov r9, r0
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x20
+ ldrsh r2, [r0, r1]
+ movs r1, 0x64
+ adds r4, r2, 0
+ muls r4, r1
+ ldr r1, _08111E1C
+ adds r4, r1
+ ldrh r6, [r0, 0x10]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetMonData
+ mov r10, r0
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ mov r8, r0
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r5, 0
+ str r5, [sp, 0x8]
+ movs r1, 0xC0
+ lsls r1, 19
+ ldr r2, _08111E20
+ add r0, sp, 0x8
+ bl CpuSet
+ ldr r0, _08111E24
+ strh r5, [r0]
+ subs r0, 0xC
+ strh r5, [r0]
+ adds r0, 0x4
+ strh r5, [r0]
+ subs r0, 0x2
+ strh r5, [r0]
+ adds r0, 0x4
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ ldr r4, _08111E28
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ bl ResetPaletteFade
+ ldr r0, _08111E2C
+ strh r5, [r0]
+ ldr r0, _08111E30
+ strh r5, [r0]
+ ldr r0, _08111E34
+ strh r5, [r0]
+ ldr r0, _08111E38
+ strh r5, [r0]
+ ldr r0, _08111E3C
+ strh r5, [r0]
+ ldr r0, _08111E40
+ strh r5, [r0]
+ ldr r1, _08111E44
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08111E48
+ strh r5, [r0]
+ ldr r0, _08111E4C
+ adds r1, r4, 0
+ bl InitWindowFromConfig
+ ldr r1, _08111E50
+ movs r0, 0x9
+ strb r0, [r1]
+ bl sub_800D6D4
+ bl sub_800DAB8
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r1, _08111E54
+ movs r0, 0x4
+ strb r0, [r1]
+ lsls r0, r6, 3
+ ldr r1, _08111E58
+ adds r0, r1
+ ldr r1, _08111E5C
+ lsls r2, r6, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08111E60
+ ldr r4, [r4, 0xC]
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ bl DecompressPicFromTable_2
+ adds r0, r6, 0
+ mov r1, r10
+ mov r2, r8
+ bl sub_80409C8
+ ldr r0, [r0]
+ movs r1, 0x90
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _08111E64
+ ldr r1, _08111E68
+ str r1, [r0, 0x10]
+ movs r1, 0x78
+ movs r2, 0x40
+ movs r3, 0x1E
+ bl CreateSprite
+ lsls r2, r0, 24
+ lsrs r2, 24
+ mov r1, r9
+ strb r0, [r1, 0x1]
+ ldr r3, _08111E6C
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r0, r1, r0
+ ldr r2, _08111E70
+ str r2, [r0]
+ adds r1, r3
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ movs r2, 0x20
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08111E74
+ bl SetHBlankCallback
+ ldr r0, _08111E78
+ bl SetVBlankCallback
+ ldr r0, _08111E7C
+ bl SetMainCallback2
+ movs r0, 0x1
+ negs r0, r0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08111E14: .4byte gTasks
+_08111E18: .4byte 0x02014800
+_08111E1C: .4byte gPlayerParty
+_08111E20: .4byte 0x05006000
+_08111E24: .4byte REG_MOSAIC
+_08111E28: .4byte gWindowConfig_81E6C58
+_08111E2C: .4byte gUnknown_030042A4
+_08111E30: .4byte gUnknown_030042A0
+_08111E34: .4byte gUnknown_030042C0
+_08111E38: .4byte gUnknown_030041B4
+_08111E3C: .4byte gUnknown_03004288
+_08111E40: .4byte gUnknown_03004280
+_08111E44: .4byte gUnknown_030041B0
+_08111E48: .4byte gUnknown_030041B8
+_08111E4C: .4byte gUnknown_03004210
+_08111E50: .4byte gUnknown_0300428C
+_08111E54: .4byte gReservedSpritePaletteCount
+_08111E58: .4byte gMonFrontPicTable
+_08111E5C: .4byte gMonFrontPicCoords
+_08111E60: .4byte gUnknown_081FAF4C
+_08111E64: .4byte gUnknown_02024E8C
+_08111E68: .4byte gDummySpriteAffineAnimTable
+_08111E6C: .4byte gSprites
+_08111E70: .4byte nullsub_37
+_08111E74: .4byte nullsub_73
+_08111E78: .4byte sub_8114FD4
+_08111E7C: .4byte sub_8112270
+ thumb_func_end sub_8111C90
+
+ thumb_func_start sub_8111E80
+sub_8111E80: @ 8111E80
+ push {r4-r7,lr}
+ sub sp, 0x8
+ ldr r2, _08111EB8
+ ldr r0, _08111EBC
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x20
+ ldrsh r2, [r0, r1]
+ movs r1, 0x64
+ muls r2, r1
+ ldr r1, _08111EC0
+ adds r4, r2, r1
+ ldrh r7, [r0, 0x10]
+ ldr r0, _08111EC4
+ ldr r2, _08111EC8
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bls _08111EAE
+ b _081120D6
+_08111EAE:
+ lsls r0, 2
+ ldr r1, _08111ECC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08111EB8: .4byte gTasks
+_08111EBC: .4byte 0x02014800
+_08111EC0: .4byte gPlayerParty
+_08111EC4: .4byte gMain
+_08111EC8: .4byte 0x0000043c
+_08111ECC: .4byte _08111ED0
+ .align 2, 0
+_08111ED0:
+ .4byte _08111EEC
+ .4byte _08111F68
+ .4byte _08111F88
+ .4byte _08111FDC
+ .4byte _08111FE2
+ .4byte _08112048
+ .4byte _081120B4
+_08111EEC:
+ movs r0, 0x80
+ lsls r0, 19
+ movs r4, 0
+ strh r4, [r0]
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r0, 0
+ bl SetVBlankCallback
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r1, _08111F3C
+ movs r0, 0x4
+ strb r0, [r1]
+ ldr r0, _08111F40
+ strh r4, [r0]
+ ldr r0, _08111F44
+ strh r4, [r0]
+ ldr r0, _08111F48
+ strh r4, [r0]
+ ldr r0, _08111F4C
+ strh r4, [r0]
+ ldr r0, _08111F50
+ strh r4, [r0]
+ ldr r0, _08111F54
+ strh r4, [r0]
+ ldr r1, _08111F58
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08111F5C
+ strh r4, [r0]
+ ldr r1, _08111F60
+ ldr r0, _08111F64
+ adds r1, r0
+ b _0811208E
+ .align 2, 0
+_08111F3C: .4byte gReservedSpritePaletteCount
+_08111F40: .4byte gUnknown_030042A4
+_08111F44: .4byte gUnknown_030042A0
+_08111F48: .4byte gUnknown_030042C0
+_08111F4C: .4byte gUnknown_030041B4
+_08111F50: .4byte gUnknown_03004288
+_08111F54: .4byte gUnknown_03004280
+_08111F58: .4byte gUnknown_030041B0
+_08111F5C: .4byte gUnknown_030041B8
+_08111F60: .4byte gMain
+_08111F64: .4byte 0x0000043c
+_08111F68:
+ ldr r4, _08111F80
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ ldr r0, _08111F84
+ ldr r0, [r0]
+ adds r0, 0x4
+ adds r1, r4, 0
+ bl InitWindowFromConfig
+ b _08112088
+ .align 2, 0
+_08111F80: .4byte gWindowConfig_81E6F84
+_08111F84: .4byte gUnknown_03004828
+_08111F88:
+ ldr r4, _08111FC8
+ ldr r0, [r4]
+ adds r0, 0x4
+ bl LoadTextWindowGraphics
+ movs r0, 0x2
+ bl SetTextWindowBaseTileNum
+ ldr r1, [r4]
+ adds r1, 0x34
+ strb r0, [r1]
+ ldr r0, [r4]
+ adds r0, 0x4
+ bl LoadTextWindowGraphics
+ bl MenuZeroFillScreen
+ bl ResetPaletteFade
+ ldr r1, _08111FCC
+ ldr r0, _08111FD0
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, _08111FD4
+ bl SetHBlankCallback
+ ldr r0, _08111FD8
+ bl SetVBlankCallback
+ b _081120D6
+ .align 2, 0
+_08111FC8: .4byte gUnknown_03004828
+_08111FCC: .4byte gMain
+_08111FD0: .4byte 0x0000043c
+_08111FD4: .4byte nullsub_73
+_08111FD8: .4byte sub_811505C
+_08111FDC:
+ bl sub_804E22C
+ b _08112088
+_08111FE2:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetMonData
+ adds r6, r0, 0
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r5, r0, 0
+ lsls r0, r7, 3
+ ldr r1, _08112034
+ adds r0, r1
+ ldr r1, _08112038
+ lsls r2, r7, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _0811203C
+ ldr r4, [r4, 0xC]
+ str r4, [sp]
+ str r7, [sp, 0x4]
+ bl DecompressPicFromTable_2
+ adds r0, r7, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_80409C8
+ ldr r0, [r0]
+ movs r1, 0x90
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r1, _08112040
+ ldr r0, _08112044
+ adds r1, r0
+ b _0811208E
+ .align 2, 0
+_08112034: .4byte gMonFrontPicTable
+_08112038: .4byte gMonFrontPicCoords
+_0811203C: .4byte gUnknown_081FAF4C
+_08112040: .4byte gMain
+_08112044: .4byte 0x0000043c
+_08112048:
+ adds r0, r7, 0
+ movs r1, 0x3
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _08112098
+ ldr r1, _0811209C
+ str r1, [r0, 0x10]
+ movs r1, 0x78
+ movs r2, 0x40
+ movs r3, 0x1E
+ bl CreateSprite
+ ldr r1, _081120A0
+ lsls r2, r0, 24
+ lsrs r2, 24
+ strb r0, [r1, 0x1]
+ ldr r3, _081120A4
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r0, r1, r0
+ ldr r2, _081120A8
+ str r2, [r0]
+ adds r1, r3
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ movs r2, 0x20
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+_08112088:
+ ldr r1, _081120AC
+ ldr r2, _081120B0
+ adds r1, r2
+_0811208E:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _081120D6
+ .align 2, 0
+_08112098: .4byte gUnknown_02024E8C
+_0811209C: .4byte gDummySpriteAffineAnimTable
+_081120A0: .4byte 0x02014800
+_081120A4: .4byte gSprites
+_081120A8: .4byte nullsub_37
+_081120AC: .4byte gMain
+_081120B0: .4byte 0x0000043c
+_081120B4:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _081120E0
+ bl SetMainCallback2
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0x9A
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+_081120D6:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081120E0: .4byte sub_8112290
+ thumb_func_end sub_8111E80
+
+ thumb_func_start sub_81120E4
+sub_81120E4: @ 81120E4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ str r0, [sp, 0x1C]
+ adds r5, r1, 0
+ adds r4, r2, 0
+ mov r10, r3
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r4, 24
+ lsrs r4, 24
+ mov r0, r10
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, [sp, 0x1C]
+ movs r1, 0x2
+ add r2, sp, 0x8
+ bl GetMonData
+ ldr r0, _08112234
+ add r1, sp, 0x8
+ bl StringCopy10
+ ldr r0, _08112238
+ movs r1, 0xB
+ muls r1, r5
+ ldr r2, _0811223C
+ adds r1, r2
+ bl StringCopy
+ ldr r1, _08112240
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, [sp, 0x1C]
+ movs r1, 0xB
+ bl GetMonData
+ mov r8, r0
+ mov r1, r8
+ lsls r1, 16
+ lsrs r1, 16
+ mov r8, r1
+ ldr r0, [sp, 0x1C]
+ movs r1, 0
+ bl GetMonData
+ adds r6, r0, 0
+ ldr r0, [sp, 0x1C]
+ movs r1, 0x1
+ bl GetMonData
+ adds r7, r0, 0
+ ldr r2, _08112244
+ mov r9, r2
+ strb r4, [r2]
+ lsls r0, r5, 3
+ ldr r1, _08112248
+ adds r0, r1
+ ldr r1, _0811224C
+ lsls r2, r5, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08112250
+ ldr r4, [r4, 0x4]
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ bl DecompressPicFromTable_2
+ adds r0, r5, 0
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl sub_80409C8
+ ldr r0, [r0]
+ movs r1, 0x90
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _08112254
+ ldr r1, _08112258
+ str r1, [r0, 0x10]
+ movs r1, 0x78
+ movs r2, 0x40
+ movs r3, 0x1E
+ bl CreateSprite
+ lsls r1, r0, 24
+ lsrs r2, r1, 24
+ mov r1, r9
+ strb r0, [r1, 0x1]
+ ldr r3, _0811225C
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r0, r1, r0
+ ldr r2, _08112260
+ str r2, [r0]
+ adds r1, r3
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ movs r2, 0x20
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ bl sub_8149954
+ ldr r0, _08112264
+ movs r1, 0
+ bl CreateTask
+ lsls r1, r0, 24
+ lsrs r2, r1, 24
+ mov r1, r9
+ strb r0, [r1, 0x2]
+ ldr r1, _08112268
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ strh r2, [r0, 0x8]
+ mov r1, r8
+ strh r1, [r0, 0xE]
+ strh r5, [r0, 0x10]
+ mov r2, sp
+ ldrh r2, [r2, 0x1C]
+ strh r2, [r0, 0xA]
+ ldr r1, [sp, 0x1C]
+ lsrs r1, 16
+ str r1, [sp, 0x20]
+ strh r1, [r0, 0xC]
+ movs r1, 0x1
+ strh r1, [r0, 0x14]
+ movs r1, 0
+ strh r1, [r0, 0x1E]
+ mov r2, r10
+ strh r2, [r0, 0x20]
+ ldr r0, _0811226C
+ bl SetMainCallback2
+ 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
+_08112234: .4byte gStringVar1
+_08112238: .4byte gStringVar2
+_0811223C: .4byte gSpeciesNames
+_08112240: .4byte gAffineAnimsDisabled
+_08112244: .4byte 0x02014800
+_08112248: .4byte gMonFrontPicTable
+_0811224C: .4byte gMonFrontPicCoords
+_08112250: .4byte gUnknown_081FAF4C
+_08112254: .4byte gUnknown_02024E8C
+_08112258: .4byte gDummySpriteAffineAnimTable
+_0811225C: .4byte gSprites
+_08112260: .4byte nullsub_37
+_08112264: .4byte sub_8112FE8
+_08112268: .4byte gTasks
+_0811226C: .4byte sub_8112290
+ thumb_func_end sub_81120E4
+
+ thumb_func_start sub_8112270
+sub_8112270: @ 8112270
+ push {lr}
+ bl AnimateSprites
+ bl BuildOamBuffer
+ ldr r0, _0811228C
+ bl sub_800374C
+ bl UpdatePaletteFade
+ bl RunTasks
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811228C: .4byte gUnknown_03004210
+ thumb_func_end sub_8112270
+
+ thumb_func_start sub_8112290
+sub_8112290: @ 8112290
+ push {lr}
+ bl AnimateSprites
+ bl BuildOamBuffer
+ ldr r0, _081122B0
+ ldr r0, [r0]
+ adds r0, 0x4
+ bl sub_80035AC
+ bl UpdatePaletteFade
+ bl RunTasks
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081122B0: .4byte gUnknown_03004828
+ thumb_func_end sub_8112290
+
+ thumb_func_start sub_81122B4
+sub_81122B4: @ 81122B4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r10, r1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, _081123F4
+ mov r8, r0
+ lsls r1, r7, 2
+ mov r9, r1
+ adds r0, r1, r7
+ lsls r4, r0, 3
+ mov r0, r8
+ adds r6, r4, r0
+ ldrh r0, [r6]
+ cmp r0, 0xD
+ beq _081122E2
+ b _081123E2
+_081122E2:
+ ldr r1, _081123F8
+ ldrb r0, [r1]
+ cmp r0, 0x5
+ bhi _081123E2
+ adds r1, r0, 0
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _081123FC
+ adds r5, r1, r0
+ adds r0, r5, 0
+ mov r1, r10
+ movs r2, 0x64
+ bl CopyMon
+ mov r1, r8
+ adds r2, r1, r4
+ adds r2, 0xC
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl SetMonData
+ ldrh r1, [r6, 0xC]
+ movs r0, 0xB
+ adds r2, r1, 0
+ muls r2, r0
+ ldr r0, _08112400
+ adds r2, r0
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0x8
+ mov r2, sp
+ bl SetMonData
+ adds r0, r5, 0
+ movs r1, 0xA
+ mov r2, sp
+ bl SetMonData
+ movs r4, 0x32
+ mov r6, r9
+_08112342:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ mov r2, sp
+ bl SetMonData
+ adds r4, 0x1
+ cmp r4, 0x36
+ ble _08112342
+ movs r4, 0x43
+_08112354:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ mov r2, sp
+ bl SetMonData
+ adds r4, 0x1
+ cmp r4, 0x4F
+ ble _08112354
+ adds r0, r5, 0
+ movs r1, 0x37
+ mov r2, sp
+ bl SetMonData
+ movs r0, 0xFF
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r1, 0x40
+ mov r2, sp
+ bl SetMonData
+ adds r0, r5, 0
+ bl CalculateMonStats
+ bl CalculatePlayerPartyCount
+ ldr r0, _081123F4
+ adds r4, r6, r7
+ lsls r4, 3
+ adds r4, r0
+ ldrh r0, [r4, 0xC]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2
+ bl sub_8090D90
+ ldrh r0, [r4, 0xC]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl sub_8090D90
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl GetMonData
+ ldr r1, _08112404
+ cmp r0, r1
+ bne _081123E2
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl GetMonData
+ cmp r0, 0x1
+ bne _081123E2
+ mov r0, r10
+ movs r1, 0xB
+ bl GetMonData
+ movs r1, 0x97
+ lsls r1, 1
+ cmp r0, r1
+ bne _081123E2
+ ldr r2, _08112408
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl SetMonData
+_081123E2:
+ 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
+_081123F4: .4byte gEvolutionTable
+_081123F8: .4byte gPlayerPartyCount
+_081123FC: .4byte gPlayerParty
+_08112400: .4byte gSpeciesNames
+_08112404: .4byte 0x0000012f
+_08112408: .4byte gUnknown_083F868C
+ thumb_func_end sub_81122B4
+
+ thumb_func_start sub_811240C
+sub_811240C: @ 811240C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, _08112490
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r3, r0, r2
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ mov r9, r0
+ movs r1, 0xC
+ ldrsh r0, [r3, r1]
+ lsls r0, 16
+ mov r1, r9
+ orrs r1, r0
+ mov r9, r1
+ ldr r0, _08112494
+ ldrh r1, [r0, 0x2C]
+ adds r6, r2, 0
+ adds r4, r0, 0
+ cmp r1, 0x2
+ bne _0811246E
+ movs r2, 0x8
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x8
+ bne _0811246E
+ ldrh r1, [r3, 0x12]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0811246E
+ movs r0, 0x10
+ strh r0, [r3, 0x8]
+ ldr r0, _08112498
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r1, r0, r6
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _0811246E
+ strh r2, [r1, 0x18]
+_0811246E:
+ lsls r1, r7, 2
+ adds r0, r1, r7
+ lsls r0, 3
+ adds r0, r6
+ movs r3, 0x8
+ ldrsh r0, [r0, r3]
+ mov r8, r1
+ cmp r0, 0x15
+ bls _08112484
+ bl _08112FD0
+_08112484:
+ lsls r0, 2
+ ldr r1, _0811249C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08112490: .4byte gTasks
+_08112494: .4byte gMain
+_08112498: .4byte gUnknown_02024D1E
+_0811249C: .4byte _081124A0
+ .align 2, 0
+_081124A0:
+ .4byte _081124F8
+ .4byte _0811253C
+ .4byte _08112588
+ .4byte _08112594
+ .4byte _081125BC
+ .4byte _081125FC
+ .4byte _08112630
+ .4byte _0811266C
+ .4byte _081126A0
+ .4byte _081126E0
+ .4byte _081126FC
+ .4byte _08112728
+ .4byte _08112754
+ .4byte _081127A0
+ .4byte _0811284C
+ .4byte _081128E4
+ .4byte _08112934
+ .4byte _08112974
+ .4byte _081129A0
+ .4byte _081129E8
+ .4byte _08112A4C
+ .4byte _08112A88
+_081124F8:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r2, _08112530
+ ldr r0, _08112534
+ 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]
+ ldr r0, _08112538
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ b _08112A2E
+ .align 2, 0
+_08112530: .4byte gSprites
+_08112534: .4byte 0x02014800
+_08112538: .4byte gTasks
+_0811253C:
+ ldr r0, _08112574
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0811254C
+ bl _08112FD0
+_0811254C:
+ ldr r4, _08112578
+ ldr r1, _0811257C
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _08112580
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08112584
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ b _08112A2E
+ .align 2, 0
+_08112574: .4byte gPaletteFade
+_08112578: .4byte gStringVar4
+_0811257C: .4byte gUnknown_08400C4A
+_08112580: .4byte gUnknown_03004210
+_08112584: .4byte gTasks
+_08112588:
+ ldr r0, _08112590
+ ldrh r0, [r0, 0x16]
+ b _0811297C
+ .align 2, 0
+_08112590: .4byte gUnknown_03004210
+_08112594:
+ bl IsCryFinished
+ lsls r0, 24
+ cmp r0, 0
+ bne _081125A2
+ bl _08112FD0
+_081125A2:
+ movs r0, 0xBC
+ lsls r0, 1
+ bl PlaySE
+ ldr r0, _081125B8
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ b _08112A2E
+ .align 2, 0
+_081125B8: .4byte gTasks
+_081125BC:
+ bl IsSEPlaying
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ beq _081125CC
+ bl _08112FD0
+_081125CC:
+ ldr r0, _081125F4
+ bl PlayNewMapMusic
+ ldr r0, _081125F8
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ str r4, [sp]
+ movs r0, 0x1C
+ movs r1, 0x4
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ bl _08112FD0
+ .align 2, 0
+_081125F4: .4byte 0x00000179
+_081125F8: .4byte gTasks
+_081125FC:
+ ldr r0, _08112624
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0811260C
+ bl _08112FD0
+_0811260C:
+ movs r0, 0x11
+ bl sub_8149970
+ ldr r1, _08112628
+ strb r0, [r1, 0x2]
+ ldr r0, _0811262C
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ b _08112A2E
+ .align 2, 0
+_08112624: .4byte gPaletteFade
+_08112628: .4byte gUnknown_02024D1E
+_0811262C: .4byte gTasks
+_08112630:
+ ldr r4, _08112664
+ ldrb r0, [r4, 0x2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r6
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _08112646
+ bl _08112FD0
+_08112646:
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r6
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ ldr r1, _08112668
+ movs r0, 0x1
+ strb r0, [r1, 0x3]
+ bl sub_8149A90
+ strb r0, [r4, 0x2]
+ bl _08112FD0
+ .align 2, 0
+_08112664: .4byte gUnknown_02024D1E
+_08112668: .4byte 0x02014800
+_0811266C:
+ ldr r4, _08112698
+ ldrb r0, [r4, 0x2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r6
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _08112682
+ bl _08112FD0
+_08112682:
+ ldr r1, _0811269C
+ ldrb r0, [r1]
+ ldrb r1, [r1, 0x1]
+ bl sub_8149E7C
+ strb r0, [r4, 0x2]
+ mov r0, r8
+ adds r1, r0, r7
+ lsls r1, 3
+ adds r1, r6
+ b _08112A2E
+ .align 2, 0
+_08112698: .4byte gUnknown_02024D1E
+_0811269C: .4byte 0x02014800
+_081126A0:
+ ldr r1, _081126D8
+ ldrb r0, [r1, 0x3]
+ subs r0, 0x1
+ strb r0, [r1, 0x3]
+ lsls r0, 24
+ cmp r0, 0
+ beq _081126B2
+ bl _08112FD0
+_081126B2:
+ movs r0, 0x3
+ strb r0, [r1, 0x3]
+ ldr r0, _081126DC
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _081126CC
+ bl _08112FD0
+_081126CC:
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r6
+ b _08112A2E
+ .align 2, 0
+_081126D8: .4byte 0x02014800
+_081126DC: .4byte gUnknown_02024D1E
+_081126E0:
+ bl sub_8149B44
+ ldr r1, _081126F4
+ strb r0, [r1, 0x2]
+ ldr r0, _081126F8
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ b _08112A2E
+ .align 2, 0
+_081126F4: .4byte gUnknown_02024D1E
+_081126F8: .4byte gTasks
+_081126FC:
+ ldr r5, _08112724
+ ldrb r0, [r5, 0x2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r6
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _08112712
+ bl _08112FD0
+_08112712:
+ mov r0, r8
+ adds r4, r0, r7
+ lsls r4, 3
+ adds r4, r6
+ ldrh r0, [r4, 0x10]
+ bl sub_8149C20
+ strb r0, [r5, 0x2]
+ b _08112992
+ .align 2, 0
+_08112724: .4byte gUnknown_02024D1E
+_08112728:
+ ldr r0, _08112750
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _0811273E
+ bl _08112FD0
+_0811273E:
+ movs r0, 0x21
+ bl PlaySE
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r6
+ b _08112A2E
+ .align 2, 0
+_08112750: .4byte gUnknown_02024D1E
+_08112754:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _08112762
+ bl _08112FD0
+_08112762:
+ bl m4aMPlayAllStop
+ ldr r0, _08112794
+ mov r3, r8
+ adds r4, r3, r7
+ lsls r4, 3
+ adds r4, r0
+ ldrh r0, [r4, 0x10]
+ movs r1, 0
+ bl PlayCry1
+ ldr r0, _08112798
+ ldr r1, _0811279C
+ movs r2, 0x60
+ bl memcpy
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1C
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _08112992
+ .align 2, 0
+_08112794: .4byte gTasks
+_08112798: .4byte gPlttBufferUnfaded + 0x40
+_0811279C: .4byte 0x02009000
+_081127A0:
+ bl IsCryFinished
+ lsls r0, 24
+ cmp r0, 0
+ bne _081127AE
+ bl _08112FD0
+_081127AE:
+ ldr r0, _08112834
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081127BE
+ bl _08112FD0
+_081127BE:
+ ldr r4, _08112838
+ ldr r1, _0811283C
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _08112840
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08112844
+ bl PlayBGM
+ ldr r2, _08112848
+ mov r0, r8
+ adds r1, r0, r7
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ adds r2, r1
+ adds r2, 0x10
+ mov r0, r9
+ movs r1, 0xB
+ bl SetMonData
+ mov r0, r9
+ bl CalculateMonStats
+ ldrh r1, [r4, 0xE]
+ ldrh r2, [r4, 0x10]
+ mov r0, r9
+ bl sub_803FB68
+ ldrh r0, [r4, 0x10]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2
+ bl sub_8090D90
+ ldrh r0, [r4, 0x10]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl sub_8090D90
+ movs r0, 0xE
+ bl sav12_xor_increment
+ b _08112FD0
+ .align 2, 0
+_08112834: .4byte gPaletteFade
+_08112838: .4byte gStringVar4
+_0811283C: .4byte gUnknown_08400C60
+_08112840: .4byte gUnknown_03004210
+_08112844: .4byte 0x00000173
+_08112848: .4byte gTasks
+_0811284C:
+ ldr r0, _081128A4
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ beq _08112856
+ b _08112FD0
+_08112856:
+ mov r1, r8
+ adds r0, r1, r7
+ lsls r0, 3
+ adds r5, r0, r6
+ ldrb r1, [r5, 0x14]
+ mov r0, r9
+ bl sub_803B7C8
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0
+ beq _081128C4
+ movs r2, 0x1E
+ ldrsh r4, [r5, r2]
+ cmp r4, 0
+ bne _081128C4
+ bl sub_8053E90
+ ldrh r1, [r5, 0x12]
+ movs r0, 0x80
+ orrs r0, r1
+ strh r0, [r5, 0x12]
+ strh r4, [r5, 0x14]
+ strh r4, [r5, 0x18]
+ mov r0, r9
+ movs r1, 0x2
+ add r2, sp, 0x4
+ bl GetMonData
+ ldr r0, _081128A8
+ add r1, sp, 0x4
+ bl StringCopy10
+ ldr r0, _081128AC
+ cmp r6, r0
+ bne _081128B0
+ movs r0, 0x15
+ strh r0, [r5, 0x8]
+ b _08112FD0
+ .align 2, 0
+_081128A4: .4byte gUnknown_03004210
+_081128A8: .4byte gUnknown_030041C0
+_081128AC: .4byte 0x0000ffff
+_081128B0:
+ ldr r0, _081128C0
+ cmp r6, r0
+ bne _081128B8
+ b _08112FD0
+_081128B8:
+ movs r0, 0x13
+ strh r0, [r5, 0x8]
+ b _08112FD0
+ .align 2, 0
+_081128C0: .4byte 0x0000fffe
+_081128C4:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _081128E0
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ b _08112A2E
+ .align 2, 0
+_081128E0: .4byte gTasks
+_081128E4:
+ ldr r0, _0811292C
+ ldrb r1, [r0, 0x7]
+ movs r2, 0x80
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _081128F4
+ b _08112FD0
+_081128F4:
+ mov r1, r8
+ adds r0, r1, r7
+ lsls r0, 3
+ adds r4, r0, r6
+ ldrh r1, [r4, 0x12]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0811290A
+ bl sub_8053E90
+_0811290A:
+ movs r2, 0x1E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0811291A
+ ldrh r0, [r4, 0xE]
+ mov r1, r9
+ bl sub_81122B4
+_0811291A:
+ adds r0, r7, 0
+ bl DestroyTask
+ ldr r0, _08112930
+ ldr r0, [r0]
+ bl SetMainCallback2
+ b _08112FD0
+ .align 2, 0
+_0811292C: .4byte gPaletteFade
+_08112930: .4byte gUnknown_03005E94
+_08112934:
+ ldr r0, _08112968
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _08112948
+ b _08112FD0
+_08112948:
+ bl m4aMPlayAllStop
+ ldr r0, _0811296C
+ ldr r1, _08112970
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r6
+ b _08112A2E
+ .align 2, 0
+_08112968: .4byte gUnknown_02024D1E
+_0811296C: .4byte 0x0006001c
+_08112970: .4byte 0x00007fff
+_08112974:
+ ldr r0, _0811299C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+_0811297C:
+ cmp r0, 0
+ beq _08112982
+ b _08112FD0
+_08112982:
+ mov r0, r8
+ adds r4, r0, r7
+ lsls r4, 3
+ adds r4, r6
+ ldrh r0, [r4, 0xE]
+ movs r1, 0
+ bl PlayCry1
+_08112992:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08112FD0
+ .align 2, 0
+_0811299C: .4byte gPaletteFade
+_081129A0:
+ bl IsCryFinished
+ lsls r0, 24
+ cmp r0, 0
+ bne _081129AC
+ b _08112FD0
+_081129AC:
+ ldr r4, _081129D8
+ ldr r1, _081129DC
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _081129E0
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _081129E4
+ mov r2, r8
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0, 0x1E]
+ b _08112F9A
+ .align 2, 0
+_081129D8: .4byte gStringVar4
+_081129DC: .4byte gUnknown_08400C8D
+_081129E0: .4byte gUnknown_03004210
+_081129E4: .4byte gTasks
+_081129E8:
+ ldr r4, _08112A38
+ ldrh r0, [r4, 0x16]
+ cmp r0, 0
+ beq _081129F2
+ b _08112FD0
+_081129F2:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _081129FE
+ b _08112FD0
+_081129FE:
+ bl sub_8024CEC
+ ldr r0, _08112A3C
+ bl PlayFanfare
+ ldr r0, _08112A40
+ ldr r0, [r0, 0xC]
+ bl get_battle_strings_
+ ldr r1, _08112A44
+ movs r0, 0xF
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08112A48
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x40
+ strh r0, [r1, 0x14]
+_08112A2E:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _08112FD0
+ .align 2, 0
+_08112A38: .4byte gUnknown_03004210
+_08112A3C: .4byte 0x0000016f
+_08112A40: .4byte gUnknown_08400F8C
+_08112A44: .4byte gUnknown_020238CC
+_08112A48: .4byte gTasks
+_08112A4C:
+ ldr r0, _08112A80
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ beq _08112A56
+ b _08112FD0
+_08112A56:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _08112A62
+ b _08112FD0
+_08112A62:
+ ldr r0, _08112A84
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x14]
+ subs r0, 0x1
+ strh r0, [r1, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ beq _08112A7A
+ b _08112FD0
+_08112A7A:
+ movs r0, 0xE
+ strh r0, [r1, 0x8]
+ b _08112FD0
+ .align 2, 0
+_08112A80: .4byte gUnknown_03004210
+_08112A84: .4byte gTasks
+_08112A88:
+ mov r3, r8
+ adds r0, r3, r7
+ lsls r0, 3
+ adds r0, r6
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0xB
+ bls _08112A9A
+ b _08112FD0
+_08112A9A:
+ lsls r0, 2
+ ldr r1, _08112AA4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08112AA4: .4byte _08112AA8
+ .align 2, 0
+_08112AA8:
+ .4byte _08112AD8
+ .4byte _08112B2C
+ .4byte _08112B7C
+ .4byte _08112BC0
+ .4byte _08112C0C
+ .4byte _08112D3C
+ .4byte _08112D8C
+ .4byte _08112E98
+ .4byte _08112EE8
+ .4byte _08112F38
+ .4byte _08112F78
+ .4byte _08112FB0
+_08112AD8:
+ ldr r4, _08112B1C
+ ldrh r0, [r4, 0x16]
+ cmp r0, 0
+ beq _08112AE2
+ b _08112FD0
+_08112AE2:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _08112AEE
+ b _08112FD0
+_08112AEE:
+ bl sub_8024CEC
+ ldr r0, _08112B20
+ ldr r0, [r0, 0x10]
+ bl get_battle_strings_
+ ldr r1, _08112B24
+ movs r0, 0xF
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08112B28
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ b _08112FCE
+ .align 2, 0
+_08112B1C: .4byte gUnknown_03004210
+_08112B20: .4byte gUnknown_08400F8C
+_08112B24: .4byte gUnknown_020238CC
+_08112B28: .4byte gTasks
+_08112B2C:
+ ldr r4, _08112B6C
+ ldrh r0, [r4, 0x16]
+ cmp r0, 0
+ beq _08112B36
+ b _08112FD0
+_08112B36:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _08112B42
+ b _08112FD0
+_08112B42:
+ ldr r0, _08112B70
+ ldr r0, [r0, 0x14]
+ bl get_battle_strings_
+ ldr r1, _08112B74
+ movs r0, 0xF
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08112B78
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ b _08112FCE
+ .align 2, 0
+_08112B6C: .4byte gUnknown_03004210
+_08112B70: .4byte gUnknown_08400F8C
+_08112B74: .4byte gUnknown_020238CC
+_08112B78: .4byte gTasks
+_08112B7C:
+ ldr r4, _08112BF8
+ ldrh r0, [r4, 0x16]
+ cmp r0, 0
+ beq _08112B86
+ b _08112FD0
+_08112B86:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _08112BC0
+ ldr r0, _08112BFC
+ ldr r0, [r0, 0x18]
+ bl get_battle_strings_
+ ldr r1, _08112C00
+ movs r0, 0xF
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08112C04
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x5
+ strh r0, [r1, 0x1A]
+ movs r0, 0x9
+ strh r0, [r1, 0x1C]
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ strh r0, [r1, 0x18]
+_08112BC0:
+ ldr r0, _08112BF8
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ beq _08112BCA
+ b _08112FD0
+_08112BCA:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _08112BD6
+ b _08112FD0
+_08112BD6:
+ bl sub_8023A80
+ ldr r0, _08112C04
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ movs r2, 0
+ strh r0, [r1, 0x18]
+ ldr r0, _08112C08
+ strb r2, [r0, 0x1]
+ bl sub_802BC6C
+ b _08112FD0
+ .align 2, 0
+_08112BF8: .4byte gUnknown_03004210
+_08112BFC: .4byte gUnknown_08400F8C
+_08112C00: .4byte gUnknown_020238CC
+_08112C04: .4byte gTasks
+_08112C08: .4byte gUnknown_02024D1E
+_08112C0C:
+ ldr r0, _08112CA4
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08112C32
+ ldr r4, _08112CA8
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _08112C32
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0
+ strb r0, [r4, 0x1]
+ bl sub_802BC6C
+_08112C32:
+ ldr r0, _08112CA4
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08112C58
+ ldr r4, _08112CA8
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _08112C58
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_6
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ bl sub_802BC6C
+_08112C58:
+ ldr r0, _08112CA4
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08112CE2
+ bl sub_8023AD8
+ ldr r0, _08112CAC
+ movs r1, 0x92
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r0, _08112CB0
+ ldr r1, _08112CB4
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08112CA8
+ ldrb r2, [r0, 0x1]
+ cmp r2, 0
+ beq _08112CBC
+ ldr r0, _08112CB8
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x1C]
+ strh r0, [r1, 0x18]
+ b _08112CE2
+ .align 2, 0
+_08112CA4: .4byte gMain
+_08112CA8: .4byte gUnknown_02024D1E
+_08112CAC: .4byte gUnknown_08400F8C
+_08112CB0: .4byte gUnknown_03004210
+_08112CB4: .4byte gUnknown_020238CC
+_08112CB8: .4byte gTasks
+_08112CBC:
+ ldr r0, _08112D28
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x1A]
+ strh r0, [r1, 0x18]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _08112CE2
+ movs r0, 0x1
+ negs r0, r0
+ str r2, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_08112CE2:
+ ldr r0, _08112D2C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08112CF0
+ b _08112FD0
+_08112CF0:
+ bl sub_8023AD8
+ ldr r0, _08112D30
+ movs r1, 0x92
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r0, _08112D34
+ ldr r1, _08112D38
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _08112D28
+ mov r2, r8
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x1C]
+ strh r1, [r0, 0x18]
+ b _08112FD0
+ .align 2, 0
+_08112D28: .4byte gTasks
+_08112D2C: .4byte gMain
+_08112D30: .4byte gUnknown_08400F8C
+_08112D34: .4byte gUnknown_03004210
+_08112D38: .4byte gUnknown_020238CC
+_08112D3C:
+ ldr r0, _08112D78
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08112D4A
+ b _08112FD0
+_08112D4A:
+ ldr r0, _08112D7C
+ mov r3, r8
+ adds r5, r3, r7
+ lsls r5, 3
+ adds r5, r6
+ ldrh r1, [r5, 0x20]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _08112D80
+ ldrb r2, [r2]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _08112D84
+ ldr r4, _08112D88
+ ldrh r4, [r4]
+ str r4, [sp]
+ bl sub_809D9F0
+ ldrh r0, [r5, 0x18]
+ adds r0, 0x1
+ strh r0, [r5, 0x18]
+ b _08112FD0
+ .align 2, 0
+_08112D78: .4byte gPaletteFade
+_08112D7C: .4byte gPlayerParty
+_08112D80: .4byte gPlayerPartyCount
+_08112D84: .4byte sub_8111C90
+_08112D88: .4byte word_2024E82
+_08112D8C:
+ ldr r0, _08112DC0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08112D9A
+ b _08112FD0
+_08112D9A:
+ ldr r1, [r4, 0x4]
+ ldr r0, _08112DC4
+ cmp r1, r0
+ beq _08112DA4
+ b _08112FD0
+_08112DA4:
+ bl sub_809FA30
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x4
+ bne _08112DCC
+ ldr r0, _08112DC8
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x9
+ b _08112FCE
+ .align 2, 0
+_08112DC0: .4byte gPaletteFade
+_08112DC4: .4byte sub_8112270
+_08112DC8: .4byte gTasks
+_08112DCC:
+ adds r1, r6, 0
+ adds r1, 0xD
+ mov r0, r9
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_8040A00
+ cmp r0, 0
+ beq _08112E24
+ ldr r0, _08112E10
+ ldr r3, _08112E14
+ adds r0, r3
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r0, _08112E18
+ ldr r1, _08112E1C
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _08112E20
+ mov r2, r8
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xB
+ strh r1, [r0, 0x18]
+ b _08112FD0
+ .align 2, 0
+_08112E10: .4byte gUnknown_08400F8C
+_08112E14: .4byte 0x000004cc
+_08112E18: .4byte gUnknown_03004210
+_08112E1C: .4byte gUnknown_020238CC
+_08112E20: .4byte gTasks
+_08112E24:
+ ldr r1, _08112E80
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ strb r4, [r1, 0x2]
+ lsrs r0, r4, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ lsls r4, r6, 24
+ lsrs r4, 24
+ mov r0, r9
+ adds r1, r4, 0
+ bl RemoveMonPPBonus
+ ldr r0, _08112E84
+ ldrh r1, [r0]
+ mov r0, r9
+ adds r2, r4, 0
+ bl SetMonMoveSlot
+ ldr r0, _08112E88
+ movs r3, 0xCF
+ lsls r3, 2
+ adds r0, r3
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r0, _08112E8C
+ ldr r1, _08112E90
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08112E94
+ mov r2, r8
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ b _08112FCE
+ .align 2, 0
+_08112E80: .4byte gUnknown_03004290
+_08112E84: .4byte word_2024E82
+_08112E88: .4byte gUnknown_08400F8C
+_08112E8C: .4byte gUnknown_03004210
+_08112E90: .4byte gUnknown_020238CC
+_08112E94: .4byte gTasks
+_08112E98:
+ ldr r4, _08112ED8
+ ldrh r0, [r4, 0x16]
+ cmp r0, 0
+ beq _08112EA2
+ b _08112FD0
+_08112EA2:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _08112EAE
+ b _08112FD0
+_08112EAE:
+ ldr r0, _08112EDC
+ ldr r0, [r0, 0x1C]
+ bl get_battle_strings_
+ ldr r1, _08112EE0
+ movs r0, 0xF
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08112EE4
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ b _08112FCE
+ .align 2, 0
+_08112ED8: .4byte gUnknown_03004210
+_08112EDC: .4byte gUnknown_08400F8C
+_08112EE0: .4byte gUnknown_020238CC
+_08112EE4: .4byte gTasks
+_08112EE8:
+ ldr r4, _08112F28
+ ldrh r0, [r4, 0x16]
+ cmp r0, 0
+ bne _08112FD0
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _08112FD0
+ ldr r0, _08112F2C
+ movs r1, 0xD0
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r1, _08112F30
+ movs r0, 0xF
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _08112F34
+ mov r2, r8
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x13
+ strh r1, [r0, 0x8]
+ b _08112FD0
+ .align 2, 0
+_08112F28: .4byte gUnknown_03004210
+_08112F2C: .4byte gUnknown_08400F8C
+_08112F30: .4byte gUnknown_020238CC
+_08112F34: .4byte gTasks
+_08112F38:
+ ldr r0, _08112F68
+ ldr r0, [r0, 0x20]
+ bl get_battle_strings_
+ ldr r0, _08112F6C
+ ldr r1, _08112F70
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _08112F74
+ mov r3, r8
+ adds r0, r3, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0xA
+ strh r1, [r0, 0x1A]
+ strh r2, [r0, 0x1C]
+ movs r1, 0x3
+ strh r1, [r0, 0x18]
+ b _08112FD0
+ .align 2, 0
+_08112F68: .4byte gUnknown_08400F8C
+_08112F6C: .4byte gUnknown_03004210
+_08112F70: .4byte gUnknown_020238CC
+_08112F74: .4byte gTasks
+_08112F78:
+ ldr r0, _08112FA0
+ ldr r0, [r0, 0x24]
+ bl get_battle_strings_
+ ldr r0, _08112FA4
+ ldr r1, _08112FA8
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _08112FAC
+ mov r2, r8
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+_08112F9A:
+ movs r1, 0xE
+ strh r1, [r0, 0x8]
+ b _08112FD0
+ .align 2, 0
+_08112FA0: .4byte gUnknown_08400F8C
+_08112FA4: .4byte gUnknown_03004210
+_08112FA8: .4byte gUnknown_020238CC
+_08112FAC: .4byte gTasks
+_08112FB0:
+ ldr r0, _08112FE0
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ bne _08112FD0
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _08112FD0
+ ldr r0, _08112FE4
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x5
+_08112FCE:
+ strh r0, [r1, 0x18]
+_08112FD0:
+ add sp, 0x18
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08112FE0: .4byte gUnknown_03004210
+_08112FE4: .4byte gTasks
+ thumb_func_end sub_811240C
+
+ thumb_func_start sub_8112FE8
+sub_8112FE8: @ 8112FE8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, _0811302C
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r2
+ movs r3, 0xA
+ ldrsh r0, [r1, r3]
+ mov r8, r0
+ movs r3, 0xC
+ ldrsh r0, [r1, r3]
+ lsls r0, 16
+ mov r3, r8
+ orrs r3, r0
+ mov r8, r3
+ movs r3, 0x8
+ ldrsh r0, [r1, r3]
+ adds r6, r2, 0
+ cmp r0, 0x11
+ bls _08113020
+ bl _08113B3A
+_08113020:
+ lsls r0, 2
+ ldr r1, _08113030
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0811302C: .4byte gTasks
+_08113030: .4byte _08113034
+ .align 2, 0
+_08113034:
+ .4byte _0811307C
+ .4byte _081130B8
+ .4byte _081130DC
+ .4byte _0811310C
+ .4byte _0811314C
+ .4byte _0811318C
+ .4byte _081131C8
+ .4byte _081131F4
+ .4byte _0811322C
+ .4byte _08113248
+ .4byte _08113274
+ .4byte _081132A8
+ .4byte _081132F8
+ .4byte _081133A8
+ .4byte _0811346C
+ .4byte _08113490
+ .4byte _081134F8
+ .4byte _08113538
+_0811307C:
+ ldr r4, _081130A8
+ ldr r1, _081130AC
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _081130B0
+ ldr r1, [r0]
+ adds r0, r1, 0x4
+ adds r1, 0x34
+ ldrb r2, [r1]
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _081130B4
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ b _08113298
+ .align 2, 0
+_081130A8: .4byte gStringVar4
+_081130AC: .4byte gUnknown_08400C4A
+_081130B0: .4byte gUnknown_03004828
+_081130B4: .4byte gTasks
+_081130B8:
+ ldr r0, _081130D8
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _081130C6
+ bl _08113B3A
+_081130C6:
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r6
+ ldrh r0, [r4, 0xE]
+ movs r1, 0
+ bl PlayCry1
+ b _081132E2
+ .align 2, 0
+_081130D8: .4byte gUnknown_03004828
+_081130DC:
+ bl IsCryFinished
+ lsls r0, 24
+ cmp r0, 0
+ bne _081130EA
+ bl _08113B3A
+_081130EA:
+ ldr r0, _08113104
+ bl m4aSongNumStop
+ movs r0, 0xBC
+ lsls r0, 1
+ bl PlaySE
+ ldr r1, _08113108
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ b _08113298
+ .align 2, 0
+_08113104: .4byte 0x00000179
+_08113108: .4byte gTasks
+_0811310C:
+ bl IsSEPlaying
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ beq _0811311C
+ bl _08113B3A
+_0811311C:
+ ldr r0, _08113144
+ bl PlayBGM
+ ldr r1, _08113148
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ str r5, [sp]
+ movs r0, 0x1C
+ movs r1, 0x4
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ bl _08113B3A
+ .align 2, 0
+_08113144: .4byte 0x00000179
+_08113148: .4byte gTasks
+_0811314C:
+ ldr r0, _08113180
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0811315C
+ bl _08113B3A
+_0811315C:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0x9A
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0x11
+ bl sub_8149970
+ ldr r1, _08113184
+ strb r0, [r1, 0x2]
+ ldr r1, _08113188
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ b _08113298
+ .align 2, 0
+_08113180: .4byte gPaletteFade
+_08113184: .4byte gUnknown_02024D1E
+_08113188: .4byte gTasks
+_0811318C:
+ ldr r4, _081131C0
+ ldrb r0, [r4, 0x2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r6
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _081131A2
+ bl _08113B3A
+_081131A2:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r6
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ ldr r1, _081131C4
+ movs r0, 0x1
+ strb r0, [r1, 0x3]
+ bl sub_8149A90
+ strb r0, [r4, 0x2]
+ bl _08113B3A
+ .align 2, 0
+_081131C0: .4byte gUnknown_02024D1E
+_081131C4: .4byte 0x02014800
+_081131C8:
+ ldr r4, _081131EC
+ ldrb r0, [r4, 0x2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r6
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _081131DE
+ bl _08113B3A
+_081131DE:
+ ldr r1, _081131F0
+ ldrb r0, [r1]
+ ldrb r1, [r1, 0x1]
+ bl sub_8149E7C
+ strb r0, [r4, 0x2]
+ b _08113290
+ .align 2, 0
+_081131EC: .4byte gUnknown_02024D1E
+_081131F0: .4byte 0x02014800
+_081131F4:
+ ldr r1, _08113224
+ ldrb r0, [r1, 0x3]
+ subs r0, 0x1
+ strb r0, [r1, 0x3]
+ lsls r0, 24
+ cmp r0, 0
+ beq _08113206
+ bl _08113B3A
+_08113206:
+ movs r0, 0x3
+ strb r0, [r1, 0x3]
+ ldr r0, _08113228
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _08113220
+ bl _08113B3A
+_08113220:
+ b _08113290
+ .align 2, 0
+_08113224: .4byte 0x02014800
+_08113228: .4byte gUnknown_02024D1E
+_0811322C:
+ bl sub_8149B44
+ ldr r1, _08113240
+ strb r0, [r1, 0x2]
+ ldr r1, _08113244
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ b _08113298
+ .align 2, 0
+_08113240: .4byte gUnknown_02024D1E
+_08113244: .4byte gTasks
+_08113248:
+ ldr r5, _08113270
+ ldrb r0, [r5, 0x2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r6
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ beq _0811325E
+ bl _08113B3A
+_0811325E:
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r6
+ ldrh r0, [r4, 0x10]
+ bl sub_8149D5C
+ strb r0, [r5, 0x2]
+ b _081132E2
+ .align 2, 0
+_08113270: .4byte gUnknown_02024D1E
+_08113274:
+ ldr r0, _081132A4
+ ldrb r1, [r0, 0x2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ beq _0811328A
+ bl _08113B3A
+_0811328A:
+ movs r0, 0x21
+ bl PlaySE
+_08113290:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r6
+_08113298:
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ bl _08113B3A
+ .align 2, 0
+_081132A4: .4byte gUnknown_02024D1E
+_081132A8:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _081132B6
+ bl _08113B3A
+_081132B6:
+ ldr r0, _081132EC
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ ldrh r0, [r4, 0x10]
+ movs r1, 0
+ bl PlayCry1
+ ldr r0, _081132F0
+ ldr r1, _081132F4
+ movs r2, 0x60
+ bl memcpy
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+_081132E2:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ bl _08113B3A
+ .align 2, 0
+_081132EC: .4byte gTasks
+_081132F0: .4byte gPlttBufferUnfaded + 0x40
+_081132F4: .4byte 0x02009000
+_081132F8:
+ bl IsCryFinished
+ lsls r0, 24
+ cmp r0, 0
+ bne _08113306
+ bl _08113B3A
+_08113306:
+ ldr r0, _08113390
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08113316
+ bl _08113B3A
+_08113316:
+ ldr r4, _08113394
+ ldr r1, _08113398
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r0, _0811339C
+ ldr r1, [r0]
+ adds r0, r1, 0x4
+ adds r1, 0x34
+ ldrb r2, [r1]
+ movs r1, 0xF
+ str r1, [sp]
+ adds r1, r4, 0
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _081133A0
+ bl PlayFanfare
+ ldr r2, _081133A4
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ adds r2, r1
+ adds r2, 0x10
+ mov r0, r8
+ movs r1, 0xB
+ bl SetMonData
+ mov r0, r8
+ bl CalculateMonStats
+ ldrh r1, [r4, 0xE]
+ ldrh r2, [r4, 0x10]
+ mov r0, r8
+ bl sub_803FB68
+ ldrh r0, [r4, 0x10]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x2
+ bl sub_8090D90
+ ldrh r0, [r4, 0x10]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ bl sub_8090D90
+ movs r0, 0xE
+ bl sav12_xor_increment
+ b _08113B3A
+ .align 2, 0
+_08113390: .4byte gPaletteFade
+_08113394: .4byte gStringVar4
+_08113398: .4byte gUnknown_08400C60
+_0811339C: .4byte gUnknown_03004828
+_081133A0: .4byte 0x00000173
+_081133A4: .4byte gTasks
+_081133A8:
+ ldr r0, _08113410
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _081133B4
+ b _08113B3A
+_081133B4:
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _081133C2
+ b _08113B3A
+_081133C2:
+ ldr r1, _08113414
+ lsls r4, r7, 2
+ adds r0, r4, r7
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrb r1, [r5, 0x14]
+ mov r0, r8
+ bl sub_803B7C8
+ lsls r0, 16
+ lsrs r6, r0, 16
+ mov r9, r4
+ cmp r6, 0
+ beq _08113434
+ movs r3, 0x1E
+ ldrsh r2, [r5, r3]
+ cmp r2, 0
+ bne _08113434
+ ldrh r1, [r5, 0x12]
+ movs r0, 0x80
+ orrs r0, r1
+ strh r0, [r5, 0x12]
+ strh r2, [r5, 0x14]
+ strh r2, [r5, 0x18]
+ mov r0, r8
+ movs r1, 0x2
+ add r2, sp, 0x4
+ bl GetMonData
+ ldr r0, _08113418
+ add r1, sp, 0x4
+ bl StringCopy10
+ ldr r0, _0811341C
+ cmp r6, r0
+ bne _08113420
+ movs r0, 0x11
+ strh r0, [r5, 0x8]
+ b _08113B3A
+ .align 2, 0
+_08113410: .4byte gUnknown_03004828
+_08113414: .4byte gTasks
+_08113418: .4byte gUnknown_030041C0
+_0811341C: .4byte 0x0000ffff
+_08113420:
+ ldr r0, _08113430
+ cmp r6, r0
+ bne _08113428
+ b _08113B3A
+_08113428:
+ movs r0, 0xF
+ strh r0, [r5, 0x8]
+ b _08113B3A
+ .align 2, 0
+_08113430: .4byte 0x0000fffe
+_08113434:
+ ldr r0, _0811345C
+ bl PlayBGM
+ ldr r0, _08113460
+ ldr r2, [r0]
+ adds r0, r2, 0x4
+ ldr r1, _08113464
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08113468
+ mov r2, r9
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ b _081134DC
+ .align 2, 0
+_0811345C: .4byte 0x00000179
+_08113460: .4byte gUnknown_03004828
+_08113464: .4byte gOtherText_LinkStandby2
+_08113468: .4byte gTasks
+_0811346C:
+ ldr r0, _08113488
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _08113478
+ b _08113B3A
+_08113478:
+ adds r0, r7, 0
+ bl DestroyTask
+ ldr r0, _0811348C
+ ldr r0, [r0]
+ bl SetMainCallback2
+ b _08113B3A
+ .align 2, 0
+_08113488: .4byte gUnknown_03004828
+_0811348C: .4byte gUnknown_03005E94
+_08113490:
+ ldr r4, _081134E4
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _0811349C
+ b _08113B3A
+_0811349C:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _081134A8
+ b _08113B3A
+_081134A8:
+ bl sub_8024CEC
+ ldr r0, _081134E8
+ bl PlayFanfare
+ ldr r0, _081134EC
+ ldr r0, [r0, 0xC]
+ bl get_battle_strings_
+ ldr r2, [r4]
+ adds r0, r2, 0x4
+ ldr r1, _081134F0
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _081134F4
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x40
+ strh r0, [r1, 0x14]
+_081134DC:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _08113B3A
+ .align 2, 0
+_081134E4: .4byte gUnknown_03004828
+_081134E8: .4byte 0x0000016f
+_081134EC: .4byte gUnknown_08400F8C
+_081134F0: .4byte gUnknown_020238CC
+_081134F4: .4byte gTasks
+_081134F8:
+ ldr r0, _08113530
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _08113504
+ b _08113B3A
+_08113504:
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08113512
+ b _08113B3A
+_08113512:
+ ldr r0, _08113534
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x14]
+ subs r0, 0x1
+ strh r0, [r1, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0811352A
+ b _08113B3A
+_0811352A:
+ movs r0, 0xD
+ strh r0, [r1, 0x8]
+ b _08113B3A
+ .align 2, 0
+_08113530: .4byte gUnknown_03004828
+_08113534: .4byte gTasks
+_08113538:
+ lsls r1, r7, 2
+ adds r0, r1, r7
+ lsls r0, 3
+ adds r0, r6
+ movs r3, 0x18
+ ldrsh r0, [r0, r3]
+ mov r9, r1
+ cmp r0, 0xB
+ bls _0811354C
+ b _08113B3A
+_0811354C:
+ lsls r0, 2
+ ldr r1, _08113558
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08113558: .4byte _0811355C
+ .align 2, 0
+_0811355C:
+ .4byte _0811358C
+ .4byte _081135E4
+ .4byte _08113638
+ .4byte _08113682
+ .4byte _0811371C
+ .4byte _0811387C
+ .4byte _081138CC
+ .4byte _081139E8
+ .4byte _08113A3C
+ .4byte _08113A90
+ .4byte _08113AD8
+ .4byte _08113B18
+_0811358C:
+ ldr r4, _081135D4
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _08113598
+ b _08113B3A
+_08113598:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _081135A4
+ b _08113B3A
+_081135A4:
+ bl sub_8024CEC
+ ldr r0, _081135D8
+ ldr r0, [r0, 0x10]
+ bl get_battle_strings_
+ ldr r2, [r4]
+ adds r0, r2, 0x4
+ ldr r1, _081135DC
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _081135E0
+ mov r2, r9
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ b _08113B38
+ .align 2, 0
+_081135D4: .4byte gUnknown_03004828
+_081135D8: .4byte gUnknown_08400F8C
+_081135DC: .4byte gUnknown_020238CC
+_081135E0: .4byte gTasks
+_081135E4:
+ ldr r4, _08113628
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _081135F0
+ b _08113B3A
+_081135F0:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _081135FC
+ b _08113B3A
+_081135FC:
+ ldr r0, _0811362C
+ ldr r0, [r0, 0x14]
+ bl get_battle_strings_
+ ldr r2, [r4]
+ adds r0, r2, 0x4
+ ldr r1, _08113630
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08113634
+ mov r3, r9
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ b _08113B38
+ .align 2, 0
+_08113628: .4byte gUnknown_03004828
+_0811362C: .4byte gUnknown_08400F8C
+_08113630: .4byte gUnknown_020238CC
+_08113634: .4byte gTasks
+_08113638:
+ ldr r4, _081136FC
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _08113644
+ b _08113B3A
+_08113644:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _08113682
+ ldr r0, _08113700
+ ldr r0, [r0, 0x18]
+ bl get_battle_strings_
+ ldr r2, [r4]
+ adds r0, r2, 0x4
+ ldr r1, _08113704
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08113708
+ mov r2, r9
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x5
+ strh r0, [r1, 0x1A]
+ movs r0, 0x9
+ strh r0, [r1, 0x1C]
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ strh r0, [r1, 0x18]
+_08113682:
+ ldr r5, _081136FC
+ ldr r0, [r5]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _0811368E
+ b _08113B3A
+_0811368E:
+ bl IsSEPlaying
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0
+ beq _0811369C
+ b _08113B3A
+_0811369C:
+ ldr r0, [r5]
+ adds r0, 0x4
+ movs r1, 0xD
+ str r1, [sp]
+ movs r1, 0x18
+ movs r2, 0x8
+ movs r3, 0x1D
+ bl DrawTextWindow
+ ldr r4, _0811370C
+ strb r6, [r4, 0x1]
+ ldr r2, [r5]
+ adds r0, r2, 0x4
+ ldr r1, _08113710
+ adds r2, 0x34
+ ldrb r2, [r2]
+ adds r2, 0x80
+ movs r3, 0x9
+ str r3, [sp]
+ movs r3, 0x19
+ bl InitWindow
+ ldr r0, [r5]
+ adds r0, 0x4
+ bl sub_8002F44
+ ldr r1, _08113714
+ ldr r3, _08113718
+ movs r0, 0x20
+ str r0, [sp]
+ movs r0, 0
+ movs r2, 0xC
+ bl sub_814A5C0
+ bl sub_81150D8
+ ldr r0, _08113708
+ mov r3, r9
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ movs r2, 0
+ strh r0, [r1, 0x18]
+ strb r2, [r4, 0x1]
+ b _08113B3A
+ .align 2, 0
+_081136FC: .4byte gUnknown_03004828
+_08113700: .4byte gUnknown_08400F8C
+_08113704: .4byte gUnknown_020238CC
+_08113708: .4byte gTasks
+_0811370C: .4byte gUnknown_02024D1E
+_08113710: .4byte gOtherText_YesNoAndPlayer
+_08113714: .4byte 0x0000ffff
+_08113718: .4byte 0x00002d9f
+_0811371C:
+ ldr r0, _081137CC
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08113742
+ ldr r4, _081137D0
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _08113742
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_24
+ movs r0, 0
+ strb r0, [r4, 0x1]
+ bl sub_81150D8
+_08113742:
+ ldr r0, _081137CC
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08113768
+ ldr r4, _081137D0
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _08113768
+ movs r0, 0x5
+ bl PlaySE
+ bl nullsub_24
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+ bl sub_81150D8
+_08113768:
+ ldr r0, _081137CC
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0811380A
+ ldr r4, _081137D4
+ ldr r0, [r4]
+ adds r0, 0x4
+ movs r1, 0xD
+ str r1, [sp]
+ movs r1, 0x18
+ movs r2, 0x8
+ movs r3, 0x1D
+ bl ZeroFillWindowRect
+ bl sub_814A7FC
+ ldr r0, _081137D8
+ movs r1, 0x92
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r2, [r4]
+ adds r0, r2, 0x4
+ ldr r1, _081137DC
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _081137D0
+ ldrb r2, [r0, 0x1]
+ cmp r2, 0
+ beq _081137E4
+ ldr r0, _081137E0
+ mov r2, r9
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x1C]
+ strh r0, [r1, 0x18]
+ b _0811380A
+ .align 2, 0
+_081137CC: .4byte gMain
+_081137D0: .4byte gUnknown_02024D1E
+_081137D4: .4byte gUnknown_03004828
+_081137D8: .4byte gUnknown_08400F8C
+_081137DC: .4byte gUnknown_020238CC
+_081137E0: .4byte gTasks
+_081137E4:
+ ldr r0, _08113868
+ mov r3, r9
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x1A]
+ strh r0, [r1, 0x18]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _0811380A
+ movs r0, 0x1
+ negs r0, r0
+ str r2, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_0811380A:
+ ldr r0, _0811386C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08113818
+ b _08113B3A
+_08113818:
+ ldr r4, _08113870
+ ldr r0, [r4]
+ adds r0, 0x4
+ movs r1, 0xD
+ str r1, [sp]
+ movs r1, 0x18
+ movs r2, 0x8
+ movs r3, 0x1D
+ bl ZeroFillWindowRect
+ bl sub_814A7FC
+ ldr r0, _08113874
+ movs r1, 0x92
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r2, [r4]
+ adds r0, r2, 0x4
+ ldr r1, _08113878
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _08113868
+ mov r2, r9
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x1C]
+ strh r1, [r0, 0x18]
+ b _08113B3A
+ .align 2, 0
+_08113868: .4byte gTasks
+_0811386C: .4byte gMain
+_08113870: .4byte gUnknown_03004828
+_08113874: .4byte gUnknown_08400F8C
+_08113878: .4byte gUnknown_020238CC
+_0811387C:
+ ldr r0, _081138B8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0811388A
+ b _08113B3A
+_0811388A:
+ ldr r0, _081138BC
+ mov r3, r9
+ adds r5, r3, r7
+ lsls r5, 3
+ adds r5, r6
+ ldrh r1, [r5, 0x20]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _081138C0
+ ldrb r2, [r2]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _081138C4
+ ldr r4, _081138C8
+ ldrh r4, [r4]
+ str r4, [sp]
+ bl sub_809D9F0
+ ldrh r0, [r5, 0x18]
+ adds r0, 0x1
+ strh r0, [r5, 0x18]
+ b _08113B3A
+ .align 2, 0
+_081138B8: .4byte gPaletteFade
+_081138BC: .4byte gPlayerParty
+_081138C0: .4byte gPlayerPartyCount
+_081138C4: .4byte sub_8111E80
+_081138C8: .4byte word_2024E82
+_081138CC:
+ ldr r0, _08113900
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081138DA
+ b _08113B3A
+_081138DA:
+ ldr r0, _08113904
+ ldr r1, [r0, 0x4]
+ ldr r0, _08113908
+ cmp r1, r0
+ beq _081138E6
+ b _08113B3A
+_081138E6:
+ bl sub_809FA30
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x4
+ bne _08113910
+ ldr r0, _0811390C
+ mov r2, r9
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x9
+ b _08113B38
+ .align 2, 0
+_08113900: .4byte gPaletteFade
+_08113904: .4byte gMain
+_08113908: .4byte sub_8112290
+_0811390C: .4byte gTasks
+_08113910:
+ adds r1, r6, 0
+ adds r1, 0xD
+ mov r0, r8
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl sub_8040A00
+ cmp r0, 0
+ beq _08113970
+ ldr r0, _0811395C
+ ldr r3, _08113960
+ adds r0, r3
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r0, _08113964
+ ldr r2, [r0]
+ adds r0, r2, 0x4
+ ldr r1, _08113968
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _0811396C
+ mov r2, r9
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xB
+ strh r1, [r0, 0x18]
+ b _08113B3A
+ .align 2, 0
+_0811395C: .4byte gUnknown_08400F8C
+_08113960: .4byte 0x000004cc
+_08113964: .4byte gUnknown_03004828
+_08113968: .4byte gUnknown_020238CC
+_0811396C: .4byte gTasks
+_08113970:
+ ldr r1, _081139D0
+ movs r0, 0xFD
+ strb r0, [r1]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ strb r4, [r1, 0x2]
+ lsrs r0, r4, 8
+ strb r0, [r1, 0x3]
+ movs r0, 0xFF
+ strb r0, [r1, 0x4]
+ lsls r4, r6, 24
+ lsrs r4, 24
+ mov r0, r8
+ adds r1, r4, 0
+ bl RemoveMonPPBonus
+ ldr r0, _081139D4
+ ldrh r1, [r0]
+ mov r0, r8
+ adds r2, r4, 0
+ bl SetMonMoveSlot
+ ldr r0, _081139D8
+ movs r3, 0xCF
+ lsls r3, 2
+ adds r0, r3
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r0, _081139DC
+ ldr r2, [r0]
+ adds r0, r2, 0x4
+ ldr r1, _081139E0
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _081139E4
+ mov r2, r9
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ b _08113B38
+ .align 2, 0
+_081139D0: .4byte gUnknown_03004290
+_081139D4: .4byte word_2024E82
+_081139D8: .4byte gUnknown_08400F8C
+_081139DC: .4byte gUnknown_03004828
+_081139E0: .4byte gUnknown_020238CC
+_081139E4: .4byte gTasks
+_081139E8:
+ ldr r4, _08113A2C
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ beq _081139F4
+ b _08113B3A
+_081139F4:
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _08113A00
+ b _08113B3A
+_08113A00:
+ ldr r0, _08113A30
+ ldr r0, [r0, 0x1C]
+ bl get_battle_strings_
+ ldr r2, [r4]
+ adds r0, r2, 0x4
+ ldr r1, _08113A34
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r0, _08113A38
+ mov r3, r9
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x18]
+ adds r0, 0x1
+ b _08113B38
+ .align 2, 0
+_08113A2C: .4byte gUnknown_03004828
+_08113A30: .4byte gUnknown_08400F8C
+_08113A34: .4byte gUnknown_020238CC
+_08113A38: .4byte gTasks
+_08113A3C:
+ ldr r4, _08113A80
+ ldr r0, [r4]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ bne _08113B3A
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _08113B3A
+ ldr r0, _08113A84
+ movs r1, 0xD0
+ lsls r1, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl get_battle_strings_
+ ldr r2, [r4]
+ adds r0, r2, 0x4
+ ldr r1, _08113A88
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r4, 0xF
+ str r4, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _08113A8C
+ mov r2, r9
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r4, [r0, 0x8]
+ b _08113B3A
+ .align 2, 0
+_08113A80: .4byte gUnknown_03004828
+_08113A84: .4byte gUnknown_08400F8C
+_08113A88: .4byte gUnknown_020238CC
+_08113A8C: .4byte gTasks
+_08113A90:
+ ldr r0, _08113AC8
+ ldr r0, [r0, 0x20]
+ bl get_battle_strings_
+ ldr r0, _08113ACC
+ ldr r2, [r0]
+ adds r0, r2, 0x4
+ ldr r1, _08113AD0
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _08113AD4
+ mov r3, r9
+ adds r0, r3, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0xA
+ strh r1, [r0, 0x1A]
+ strh r2, [r0, 0x1C]
+ movs r1, 0x3
+ strh r1, [r0, 0x18]
+ b _08113B3A
+ .align 2, 0
+_08113AC8: .4byte gUnknown_08400F8C
+_08113ACC: .4byte gUnknown_03004828
+_08113AD0: .4byte gUnknown_020238CC
+_08113AD4: .4byte gTasks
+_08113AD8:
+ ldr r0, _08113B08
+ ldr r0, [r0, 0x24]
+ bl get_battle_strings_
+ ldr r0, _08113B0C
+ ldr r2, [r0]
+ adds r0, r2, 0x4
+ ldr r1, _08113B10
+ adds r2, 0x34
+ ldrb r2, [r2]
+ movs r3, 0xF
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _08113B14
+ mov r2, r9
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xD
+ strh r1, [r0, 0x8]
+ b _08113B3A
+ .align 2, 0
+_08113B08: .4byte gUnknown_08400F8C
+_08113B0C: .4byte gUnknown_03004828
+_08113B10: .4byte gUnknown_020238CC
+_08113B14: .4byte gTasks
+_08113B18:
+ ldr r0, _08113B48
+ ldr r0, [r0]
+ ldrh r0, [r0, 0x1A]
+ cmp r0, 0
+ bne _08113B3A
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ bne _08113B3A
+ ldr r0, _08113B4C
+ mov r3, r9
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x5
+_08113B38:
+ strh r0, [r1, 0x18]
+_08113B3A:
+ add sp, 0x18
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08113B48: .4byte gUnknown_03004828
+_08113B4C: .4byte gTasks
+ thumb_func_end sub_8112FE8
+
+ thumb_func_start unref_sub_8113B50
+unref_sub_8113B50: @ 8113B50
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x3C
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ movs r1, 0
+ str r1, [sp, 0x10]
+ movs r2, 0
+ str r2, [sp, 0x8]
+ ldr r3, _08113C60
+ mov r12, r3
+ ldr r4, _08113C64
+ add r4, r12
+ mov r10, r4
+ ldr r5, _08113C68
+ add r5, r12
+ mov r8, r5
+_08113B7C:
+ adds r0, r3, 0
+ adds r0, 0x84
+ ldr r1, [sp, 0x8]
+ adds r0, r1, r0
+ strb r2, [r0]
+ adds r0, r3, 0x4
+ adds r0, r1, r0
+ strb r2, [r0]
+ ldr r4, _08113C6C
+ adds r0, r1, r4
+ strb r2, [r0]
+ movs r6, 0
+ lsls r1, 5
+ mov r9, r1
+ ldr r5, [sp, 0x8]
+ lsls r4, r5, 6
+_08113B9C:
+ mov r0, r9
+ adds r1, r6, r0
+ ldr r5, _08113C70
+ adds r0, r1, r5
+ strb r2, [r0]
+ mov r5, r10
+ adds r0, r1, r5
+ strb r2, [r0]
+ mov r5, r8
+ adds r0, r1, r5
+ strb r2, [r0]
+ ldr r5, _08113C74
+ adds r0, r1, r5
+ strb r2, [r0]
+ adds r7, r3, 0
+ adds r7, 0xC4
+ adds r0, r1, r7
+ strb r2, [r0]
+ ldr r5, _08113C78
+ adds r0, r3, r5
+ adds r0, r1, r0
+ strb r2, [r0]
+ ldr r5, _08113C7C
+ adds r0, r3, r5
+ adds r0, r1, r0
+ strb r2, [r0]
+ ldr r5, _08113C80
+ adds r0, r3, r5
+ adds r1, r0
+ strb r2, [r1]
+ lsls r1, r6, 1
+ adds r1, r4
+ ldr r5, _08113C84
+ adds r0, r3, r5
+ adds r0, r1, r0
+ strh r2, [r0]
+ ldr r5, _08113C88
+ adds r0, r3, r5
+ adds r0, r1, r0
+ strh r2, [r0]
+ ldr r5, _08113C8C
+ adds r0, r3, r5
+ adds r0, r1, r0
+ strh r2, [r0]
+ ldr r5, _08113C90
+ adds r0, r3, r5
+ adds r1, r0
+ strh r2, [r1]
+ adds r6, 0x1
+ cmp r6, 0x1F
+ ble _08113B9C
+ ldr r0, [sp, 0x8]
+ adds r0, 0x1
+ str r0, [sp, 0x8]
+ cmp r0, 0x3F
+ ble _08113B7C
+ ldr r1, _08113C94
+ add r1, r12
+ movs r0, 0x40
+ strb r0, [r1]
+ movs r1, 0
+ mov r8, r1
+ movs r2, 0
+ str r2, [sp, 0x8]
+ movs r3, 0x80
+ lsls r3, 5
+ adds r3, r7
+ mov r12, r3
+ movs r4, 0xC0
+ lsls r4, 5
+ adds r4, r7
+ mov r9, r4
+ movs r5, 0
+ adds r4, r7, 0
+ subs r4, 0xC0
+_08113C32:
+ movs r3, 0
+ ldr r2, [sp]
+ add r2, r8
+ movs r6, 0
+ ldr r0, [sp, 0x8]
+ adds r0, 0x1
+ str r0, [sp, 0x30]
+ ldr r1, [sp, 0x8]
+ lsls r1, 7
+ mov r10, r1
+ movs r7, 0x1
+ negs r7, r7
+_08113C4A:
+ asrs r0, r6, 1
+ lsls r0, 2
+ add r0, r10
+ ldr r1, _08113C98
+ adds r0, r1
+ str r2, [r0]
+ cmp r3, 0
+ beq _08113C9C
+ cmp r3, 0x1
+ beq _08113CC6
+ b _08113CF4
+ .align 2, 0
+_08113C60: .4byte 0x02014800
+_08113C64: .4byte 0x000018c4
+_08113C68: .4byte 0x000020c4
+_08113C6C: .4byte 0x02014844
+_08113C70: .4byte 0x020158c4
+_08113C74: .4byte 0x020170c4
+_08113C78: .4byte 0x000008c4
+_08113C7C: .4byte 0x000030c4
+_08113C80: .4byte 0x000038c4
+_08113C84: .4byte 0x000060c4
+_08113C88: .4byte 0x000070c4
+_08113C8C: .4byte 0x000080c4
+_08113C90: .4byte 0x000090c4
+_08113C94: .4byte 0x0000a0c4
+_08113C98: .4byte 0x020188c4
+_08113C9C:
+ movs r0, 0x1
+ ands r0, r6
+ cmp r0, 0
+ beq _08113CAA
+ cmp r0, 0x1
+ beq _08113CB0
+ b _08113CF4
+_08113CAA:
+ ldrb r1, [r2]
+ movs r0, 0xF
+ b _08113CB4
+_08113CB0:
+ ldrb r1, [r2]
+ movs r0, 0xF0
+_08113CB4:
+ ands r0, r1
+ cmp r0, 0
+ beq _08113CF4
+ ldrb r0, [r4]
+ adds r0, r5
+ add r0, r12
+ strb r6, [r0]
+ movs r3, 0x1
+ b _08113CF4
+_08113CC6:
+ adds r0, r6, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _08113CD4
+ cmp r0, 0x1
+ beq _08113CDA
+ b _08113CF4
+_08113CD4:
+ ldrb r1, [r2]
+ movs r0, 0xF
+ b _08113CDE
+_08113CDA:
+ ldrb r1, [r2]
+ movs r0, 0xF0
+_08113CDE:
+ ands r0, r1
+ cmp r0, 0
+ bne _08113CF4
+ ldrb r0, [r4]
+ adds r0, r5
+ add r0, r9
+ strb r7, [r0]
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ movs r3, 0
+_08113CF4:
+ adds r0, r6, 0x1
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _08113D02
+ adds r2, 0x1D
+ b _08113D0C
+_08113D02:
+ movs r0, 0x1
+ ands r0, r6
+ cmp r0, 0
+ beq _08113D0C
+ adds r2, 0x1
+_08113D0C:
+ adds r7, 0x1
+ adds r6, 0x1
+ cmp r6, 0x3F
+ ble _08113C4A
+ cmp r3, 0
+ beq _08113D26
+ ldrb r0, [r4]
+ adds r0, r5
+ add r0, r9
+ strb r6, [r0]
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_08113D26:
+ movs r0, 0x7
+ ldr r2, [sp, 0x30]
+ ands r2, r0
+ cmp r2, 0
+ bne _08113D36
+ movs r3, 0xE4
+ add r8, r3
+ b _08113D3A
+_08113D36:
+ movs r0, 0x4
+ add r8, r0
+_08113D3A:
+ adds r5, 0x20
+ adds r4, 0x1
+ ldr r1, [sp, 0x8]
+ adds r1, 0x1
+ str r1, [sp, 0x8]
+ cmp r1, 0x3F
+ bgt _08113D4A
+ b _08113C32
+_08113D4A:
+ movs r2, 0
+ mov r8, r2
+ movs r3, 0
+ str r3, [sp, 0x8]
+ ldr r0, _08113D84
+ movs r4, 0x82
+ lsls r4, 6
+ adds r4, r0
+ mov r10, r4
+ movs r5, 0xA2
+ lsls r5, 6
+ adds r7, r0, r5
+ movs r5, 0
+ adds r4, r0, 0
+ movs r0, 0x1
+ mov r9, r0
+_08113D6A:
+ movs r3, 0
+ ldr r2, [sp, 0x4]
+ add r2, r8
+ movs r6, 0
+ ldr r1, [sp, 0x8]
+ adds r1, 0x1
+ str r1, [sp, 0x30]
+_08113D78:
+ cmp r3, 0
+ beq _08113D88
+ cmp r3, 0x1
+ beq _08113DB4
+ b _08113DE4
+ .align 2, 0
+_08113D84: .4byte 0x02014844
+_08113D88:
+ adds r0, r6, 0
+ mov r1, r9
+ ands r0, r1
+ cmp r0, 0
+ beq _08113D98
+ cmp r0, 0x1
+ beq _08113D9E
+ b _08113DE4
+_08113D98:
+ ldrb r1, [r2]
+ movs r0, 0xF
+ b _08113DA2
+_08113D9E:
+ ldrb r1, [r2]
+ movs r0, 0xF0
+_08113DA2:
+ ands r0, r1
+ cmp r0, 0
+ beq _08113DE4
+ ldrb r0, [r4]
+ adds r0, r5
+ add r0, r10
+ strb r6, [r0]
+ movs r3, 0x1
+ b _08113DE4
+_08113DB4:
+ adds r0, r6, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _08113DC2
+ cmp r0, 0x1
+ beq _08113DC8
+ b _08113DE4
+_08113DC2:
+ ldrb r1, [r2]
+ movs r0, 0xF
+ b _08113DCC
+_08113DC8:
+ ldrb r1, [r2]
+ movs r0, 0xF0
+_08113DCC:
+ ands r0, r1
+ cmp r0, 0
+ bne _08113DE4
+ ldrb r0, [r4]
+ adds r0, r5
+ adds r0, r7
+ subs r1, r6, 0x1
+ strb r1, [r0]
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ movs r3, 0
+_08113DE4:
+ adds r1, r6, 0x1
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _08113DF2
+ adds r2, 0x1D
+ b _08113DFC
+_08113DF2:
+ mov r0, r9
+ ands r6, r0
+ cmp r6, 0
+ beq _08113DFC
+ adds r2, 0x1
+_08113DFC:
+ adds r6, r1, 0
+ cmp r6, 0x3F
+ ble _08113D78
+ cmp r3, 0
+ beq _08113E14
+ ldrb r0, [r4]
+ adds r0, r5
+ adds r0, r7
+ strb r6, [r0]
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_08113E14:
+ movs r0, 0x7
+ ldr r1, [sp, 0x30]
+ ands r1, r0
+ cmp r1, 0
+ bne _08113E24
+ movs r2, 0xE4
+ add r8, r2
+ b _08113E28
+_08113E24:
+ movs r3, 0x4
+ add r8, r3
+_08113E28:
+ adds r5, 0x20
+ adds r4, 0x1
+ ldr r0, [sp, 0x8]
+ adds r0, 0x1
+ str r0, [sp, 0x8]
+ cmp r0, 0x3F
+ ble _08113D6A
+ movs r1, 0
+ str r1, [sp, 0x8]
+_08113E3A:
+ ldr r3, [sp, 0x8]
+ ldr r4, _08113EBC
+ adds r2, r3, r4
+ ldr r5, _08113EC0
+ adds r1, r3, r5
+ ldrb r0, [r2]
+ adds r3, 0x1
+ str r3, [sp, 0x30]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcc _08113E52
+ b _08113F9E
+_08113E52:
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldrb r2, [r2]
+ cmp r0, r2
+ bge _08113F54
+ ldr r0, _08113EC4
+ adds r0, 0x4
+ ldr r1, [sp, 0x8]
+ adds r0, r1, r0
+ str r0, [sp, 0x18]
+_08113E66:
+ movs r2, 0x80
+ lsls r2, 1
+ str r2, [sp, 0x14]
+ movs r6, 0
+ ldr r3, [sp, 0x8]
+ ldr r4, _08113EC0
+ adds r0, r3, r4
+ ldr r5, [sp, 0xC]
+ adds r5, 0x1
+ str r5, [sp, 0x34]
+ ldrb r0, [r0]
+ cmp r6, r0
+ bge _08113F3E
+ ldr r0, _08113EC4
+ mov r10, r0
+ lsls r0, r3, 5
+ ldr r2, [sp, 0xC]
+ adds r1, r2, r0
+ mov r9, r0
+ ldr r0, _08113EC4
+ adds r0, 0xC4
+ mov r3, r9
+ adds r7, r3, r0
+ mov r5, r9
+ ldr r4, _08113EC4
+ ldr r2, _08113EC8
+ adds r0, r4, r2
+ adds r1, r0
+ mov r8, r1
+ ldrb r3, [r1]
+ str r3, [sp, 0x1C]
+_08113EA4:
+ ldr r0, _08113ECC
+ add r0, r10
+ adds r0, r5, r0
+ ldr r4, [sp, 0x1C]
+ ldrb r1, [r0]
+ cmp r4, r1
+ bls _08113ED0
+ mov r2, r8
+ ldrb r1, [r2]
+ ldrb r0, [r0]
+ b _08113ED6
+ .align 2, 0
+_08113EBC: .4byte 0x02014804
+_08113EC0: .4byte 0x02014844
+_08113EC4: .4byte 0x02014800
+_08113EC8: .4byte 0x000010c4
+_08113ECC: .4byte 0x000020c4
+_08113ED0:
+ ldrb r1, [r0]
+ mov r3, r8
+ ldrb r0, [r3]
+_08113ED6:
+ subs r3, r1, r0
+ ldr r1, [sp, 0xC]
+ add r1, r9
+ ldr r0, _08113EFC
+ add r0, r10
+ adds r4, r1, r0
+ ldr r0, _08113F00
+ add r0, r10
+ adds r2, r5, r0
+ ldrb r0, [r4]
+ ldr r1, _08113F04
+ mov r12, r1
+ ldrb r1, [r2]
+ cmp r0, r1
+ bls _08113F08
+ adds r1, r0, 0
+ ldrb r0, [r2]
+ b _08113F0C
+ .align 2, 0
+_08113EFC: .4byte 0x000018c4
+_08113F00: .4byte 0x000028c4
+_08113F04: .4byte 0x02014800
+_08113F08:
+ ldrb r1, [r2]
+ ldrb r0, [r4]
+_08113F0C:
+ subs r1, r0
+ adds r3, r1
+ ldr r2, [sp, 0x14]
+ cmp r2, r3
+ ble _08113F2C
+ ldrb r0, [r7]
+ cmp r0, 0
+ bne _08113F2C
+ ldr r0, _08114050
+ add r0, r12
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08113F2C
+ str r6, [sp, 0x10]
+ str r3, [sp, 0x14]
+_08113F2C:
+ adds r7, 0x1
+ adds r5, 0x1
+ adds r6, 0x1
+ ldr r3, [sp, 0x8]
+ ldr r4, _08114054
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ cmp r6, r0
+ blt _08113EA4
+_08113F3E:
+ ldr r0, [sp, 0xC]
+ ldr r1, [sp, 0x10]
+ ldr r2, [sp, 0x8]
+ bl sub_81141F0
+ ldr r5, [sp, 0x34]
+ str r5, [sp, 0xC]
+ ldr r0, [sp, 0x18]
+ ldrb r0, [r0]
+ cmp r5, r0
+ blt _08113E66
+_08113F54:
+ movs r6, 0
+ ldr r2, _08114058
+ ldr r1, [sp, 0x8]
+ ldr r3, _08114054
+ adds r0, r1, r3
+ adds r4, r2, 0
+ mov r12, r4
+ ldrb r0, [r0]
+ cmp r6, r0
+ bge _08113F9E
+ mov r0, r12
+ adds r0, 0x44
+ adds r4, r1, r0
+_08113F6E:
+ ldr r5, [sp, 0x8]
+ lsls r0, r5, 5
+ adds r1, r6, r0
+ adds r0, r2, 0
+ adds r0, 0xC4
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08113F94
+ ldr r3, _08114050
+ adds r0, r2, r3
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08113F94
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_811430C
+_08113F94:
+ adds r6, 0x1
+ ldr r2, _08114058
+ ldrb r5, [r4]
+ cmp r6, r5
+ blt _08113F6E
+_08113F9E:
+ ldr r0, [sp, 0x8]
+ ldr r1, _0811405C
+ adds r2, r0, r1
+ ldr r3, _08114054
+ adds r1, r0, r3
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08113FCC
+ movs r6, 0
+ ldrb r4, [r2]
+ cmp r6, r4
+ bge _08113FCC
+ adds r4, r2, 0
+_08113FBA:
+ adds r0, r6, 0
+ adds r1, r6, 0
+ ldr r2, [sp, 0x8]
+ bl sub_81141F0
+ adds r6, 0x1
+ ldrb r5, [r4]
+ cmp r6, r5
+ blt _08113FBA
+_08113FCC:
+ ldr r0, [sp, 0x8]
+ ldr r1, _0811405C
+ adds r2, r0, r1
+ ldr r3, _08114054
+ adds r1, r0, r3
+ ldrb r0, [r2]
+ ldr r4, _08114058
+ ldrb r5, [r1]
+ cmp r0, r5
+ bhi _08113FE2
+ b _081141C4
+_08113FE2:
+ movs r0, 0
+ str r0, [sp, 0x10]
+ ldrb r1, [r1]
+ cmp r0, r1
+ blt _08113FEE
+ b _08114104
+_08113FEE:
+ str r2, [sp, 0x2C]
+ ldr r1, [sp, 0x8]
+ lsls r1, 5
+ mov r9, r1
+ adds r0, r4, 0
+ adds r0, 0x44
+ ldr r2, [sp, 0x8]
+ adds r0, r2, r0
+ str r0, [sp, 0x20]
+ mov r3, r9
+ str r3, [sp, 0x24]
+_08114004:
+ movs r4, 0x80
+ lsls r4, 1
+ str r4, [sp, 0x14]
+ movs r6, 0
+ ldr r5, [sp, 0x10]
+ adds r5, 0x1
+ str r5, [sp, 0x38]
+ ldr r0, [sp, 0x2C]
+ ldrb r0, [r0]
+ cmp r6, r0
+ bge _081140C4
+ ldr r1, [sp, 0x10]
+ ldr r2, [sp, 0x24]
+ adds r1, r2
+ mov r10, r1
+ ldr r0, _08114058
+ adds r0, 0xC4
+ adds r2, r0
+ mov r8, r2
+ ldr r7, [sp, 0x24]
+ ldr r3, _08114058
+ ldr r4, _08114060
+ adds r0, r3, r4
+ adds r5, r7, r0
+ ldr r0, _08114064
+ add r0, r10
+ mov r12, r0
+ ldrb r1, [r0]
+ str r1, [sp, 0x28]
+_0811403E:
+ ldrb r0, [r5]
+ ldr r2, [sp, 0x28]
+ cmp r0, r2
+ bls _08114068
+ adds r1, r0, 0
+ mov r3, r12
+ ldrb r0, [r3]
+ b _0811406E
+ .align 2, 0
+_08114050: .4byte 0x000008c4
+_08114054: .4byte 0x02014844
+_08114058: .4byte 0x02014800
+_0811405C: .4byte 0x02014804
+_08114060: .4byte 0x000010c4
+_08114064: .4byte 0x020168c4
+_08114068:
+ mov r4, r12
+ ldrb r1, [r4]
+ ldrb r0, [r5]
+_0811406E:
+ subs r3, r1, r0
+ ldr r1, _0811408C
+ ldr r2, _08114090
+ adds r0, r1, r2
+ adds r4, r7, r0
+ ldr r2, _08114094
+ add r2, r10
+ ldrb r0, [r4]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bls _08114098
+ adds r1, r0, 0
+ ldrb r0, [r2]
+ b _0811409C
+ .align 2, 0
+_0811408C: .4byte 0x02014800
+_08114090: .4byte 0x000018c4
+_08114094: .4byte 0x020170c4
+_08114098:
+ ldrb r1, [r2]
+ ldrb r0, [r4]
+_0811409C:
+ subs r1, r0
+ adds r3, r1
+ ldr r2, [sp, 0x14]
+ cmp r2, r3
+ ble _081140B2
+ mov r4, r8
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _081140B2
+ str r6, [sp, 0xC]
+ str r3, [sp, 0x14]
+_081140B2:
+ movs r0, 0x1
+ add r8, r0
+ adds r7, 0x1
+ adds r5, 0x1
+ adds r6, 0x1
+ ldr r1, [sp, 0x2C]
+ ldrb r1, [r1]
+ cmp r6, r1
+ blt _0811403E
+_081140C4:
+ ldr r3, [sp, 0xC]
+ add r3, r9
+ ldr r2, _08114164
+ ldr r4, _08114168
+ adds r1, r2, r4
+ adds r1, r3, r1
+ ldr r2, [sp, 0x10]
+ add r2, r9
+ ldr r5, _0811416C
+ adds r0, r2, r5
+ ldrb r0, [r0]
+ strb r0, [r1]
+ ldr r0, _08114164
+ ldr r4, _08114170
+ adds r1, r0, r4
+ adds r1, r3, r1
+ ldr r5, _08114174
+ adds r2, r5
+ ldrb r0, [r2]
+ strb r0, [r1]
+ ldr r0, _08114164
+ adds r0, 0xC4
+ adds r3, r0
+ movs r0, 0x1
+ strb r0, [r3]
+ ldr r0, [sp, 0x38]
+ str r0, [sp, 0x10]
+ ldr r1, [sp, 0x20]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bge _08114104
+ b _08114004
+_08114104:
+ movs r6, 0
+ ldr r4, _08114164
+ ldr r2, [sp, 0x8]
+ ldr r3, _08114178
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r6, r0
+ bge _081141C4
+ adds r7, r4, 0
+ mov r9, r6
+ movs r5, 0xC4
+ adds r5, r7
+ mov r8, r5
+_0811411E:
+ ldr r1, [sp, 0x8]
+ lsls r0, r1, 5
+ adds r2, r6, r0
+ ldr r3, _0811417C
+ adds r0, r7, r3
+ adds r0, r2
+ mov r10, r0
+ ldr r5, _08114168
+ adds r0, r7, r5
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ mov r1, r10
+ strb r0, [r1]
+ ldr r3, _08114180
+ adds r0, r7, r3
+ adds r3, r2, r0
+ ldr r5, _08114170
+ adds r0, r7, r5
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ strb r0, [r3]
+ mov r0, r8
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08114184
+ mov r2, r9
+ strb r2, [r1]
+ adds r0, r6, 0
+ adds r1, r6, 0
+ ldr r2, [sp, 0x8]
+ bl sub_81141F0
+ b _081141B4
+ .align 2, 0
+_08114164: .4byte 0x02014800
+_08114168: .4byte 0x000030c4
+_0811416C: .4byte 0x020168c4
+_08114170: .4byte 0x000038c4
+_08114174: .4byte 0x020170c4
+_08114178: .4byte 0x02014804
+_0811417C: .4byte 0x000020c4
+_08114180: .4byte 0x000028c4
+_08114184:
+ ldr r5, _081141E0
+ adds r1, r4, r5
+ adds r1, r2, r1
+ ldr r5, _081141E4
+ adds r0, r4, r5
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ ldrb r2, [r1]
+ subs r0, r2
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ adds r2, r0
+ strb r2, [r3]
+ mov r0, r10
+ strb r2, [r0]
+ ldrb r0, [r3]
+ subs r0, 0x1
+ strb r0, [r3]
+ adds r0, r6, 0
+ adds r1, r6, 0
+ ldr r2, [sp, 0x8]
+ bl sub_81141F0
+_081141B4:
+ adds r6, 0x1
+ ldr r4, _081141E8
+ ldr r1, [sp, 0x8]
+ ldr r2, _081141EC
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r6, r0
+ blt _0811411E
+_081141C4:
+ ldr r3, [sp, 0x30]
+ str r3, [sp, 0x8]
+ cmp r3, 0x3F
+ bgt _081141CE
+ b _08113E3A
+_081141CE:
+ add sp, 0x3C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081141E0: .4byte 0x000010c4
+_081141E4: .4byte 0x000018c4
+_081141E8: .4byte 0x02014800
+_081141EC: .4byte 0x02014804
+ thumb_func_end unref_sub_8113B50
+
+ thumb_func_start sub_81141F0
+sub_81141F0: @ 81141F0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r6, r0, 0
+ mov r8, r1
+ mov r9, r2
+ ldr r3, _0811424C
+ lsls r1, r2, 5
+ mov r0, r8
+ adds r4, r0, r1
+ ldr r5, _08114250
+ adds r2, r3, r5
+ adds r2, r4, r2
+ adds r1, r6, r1
+ ldr r7, _08114254
+ adds r0, r3, r7
+ adds r5, r1, r0
+ ldrb r0, [r5]
+ strb r0, [r2]
+ ldr r0, _08114258
+ adds r2, r3, r0
+ adds r2, r4, r2
+ ldr r7, _0811425C
+ adds r0, r3, r7
+ adds r1, r0
+ ldrb r0, [r1]
+ strb r0, [r2]
+ movs r7, 0
+ ldr r1, _08114260
+ adds r0, r3, r1
+ adds r2, r4, r0
+ ldrb r1, [r5]
+ ldrb r0, [r2]
+ mov r12, r3
+ cmp r1, r0
+ bcs _08114264
+ mov r0, r12
+ adds r0, 0xC4
+ adds r0, r4, r0
+ movs r1, 0x4
+ strb r1, [r0]
+ ldrb r1, [r2]
+ ldrb r0, [r5]
+ b _08114276
+ .align 2, 0
+_0811424C: .4byte 0x02014800
+_08114250: .4byte 0x000030c4
+_08114254: .4byte 0x000010c4
+_08114258: .4byte 0x000038c4
+_0811425C: .4byte 0x000018c4
+_08114260: .4byte 0x000020c4
+_08114264:
+ cmp r1, r0
+ bls _08114278
+ mov r0, r12
+ adds r0, 0xC4
+ adds r0, r4, r0
+ movs r1, 0x1
+ strb r1, [r0]
+ ldrb r1, [r5]
+ ldrb r0, [r2]
+_08114276:
+ subs r7, r1, r0
+_08114278:
+ mov r5, r8
+ lsls r3, r5, 1
+ mov r0, r9
+ lsls r4, r0, 6
+ adds r0, r3, r4
+ ldr r1, _081142BC
+ add r1, r12
+ adds r0, r1
+ lsls r1, r7, 4
+ strh r1, [r0]
+ movs r7, 0
+ mov r1, r9
+ lsls r2, r1, 5
+ adds r1, r6, r2
+ ldr r0, _081142C0
+ add r0, r12
+ adds r6, r1, r0
+ adds r1, r5, r2
+ ldr r0, _081142C4
+ add r0, r12
+ adds r5, r1, r0
+ ldrb r2, [r6]
+ ldrb r0, [r5]
+ cmp r2, r0
+ bcs _081142CC
+ ldr r0, _081142C8
+ add r0, r12
+ adds r0, r1, r0
+ movs r1, 0x3
+ strb r1, [r0]
+ ldrb r1, [r5]
+ ldrb r0, [r6]
+ b _081142DE
+ .align 2, 0
+_081142BC: .4byte 0x000080c4
+_081142C0: .4byte 0x000018c4
+_081142C4: .4byte 0x000028c4
+_081142C8: .4byte 0x000008c4
+_081142CC:
+ cmp r2, r0
+ bls _081142E0
+ ldr r0, _08114304
+ add r0, r12
+ adds r0, r1, r0
+ movs r1, 0x2
+ strb r1, [r0]
+ ldrb r1, [r6]
+ ldrb r0, [r5]
+_081142DE:
+ subs r7, r1, r0
+_081142E0:
+ adds r0, r3, r4
+ ldr r1, _08114308
+ add r1, r12
+ adds r0, r1
+ lsls r1, r7, 4
+ strh r1, [r0]
+ mov r1, r12
+ adds r1, 0x84
+ add r1, r9
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08114304: .4byte 0x000008c4
+_08114308: .4byte 0x000090c4
+ thumb_func_end sub_81141F0
+
+ thumb_func_start sub_811430C
+sub_811430C: @ 811430C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r5, _081143AC
+ lsls r4, r1, 5
+ adds r4, r0, r4
+ ldr r2, _081143B0
+ adds r2, r5
+ mov r10, r2
+ add r10, r4
+ mov r3, r10
+ ldrb r2, [r3]
+ ldr r6, _081143B4
+ adds r6, r5
+ mov r8, r6
+ add r8, r4
+ mov r6, r8
+ ldrb r3, [r6]
+ subs r7, r2, r3
+ ldr r2, _081143B8
+ adds r6, r5, r2
+ adds r6, r4, r6
+ ldr r2, _081143BC
+ adds r2, r5
+ mov r9, r2
+ add r9, r4
+ lsrs r2, r7, 31
+ adds r2, r7, r2
+ asrs r2, 1
+ adds r3, r2
+ mov r2, r9
+ strb r3, [r2]
+ strb r3, [r6]
+ adds r2, r5, 0
+ adds r2, 0xC4
+ adds r2, r4, r2
+ movs r3, 0x5
+ strb r3, [r2]
+ ldr r3, _081143C0
+ adds r2, r5, r3
+ adds r4, r2
+ movs r2, 0x7
+ strb r2, [r4]
+ adds r3, r5, 0
+ adds r3, 0x84
+ adds r3, r1, r3
+ ldrb r2, [r3]
+ adds r2, 0x1
+ strb r2, [r3]
+ ldrb r3, [r6]
+ mov r4, r8
+ ldrb r2, [r4]
+ subs r7, r3, r2
+ lsls r0, 1
+ lsls r1, 6
+ adds r0, r1
+ ldr r6, _081143C4
+ adds r1, r5, r6
+ adds r1, r0, r1
+ lsls r2, r7, 4
+ strh r2, [r1]
+ mov r1, r10
+ ldrb r2, [r1]
+ mov r3, r9
+ ldrb r1, [r3]
+ subs r7, r2, r1
+ ldr r4, _081143C8
+ adds r5, r4
+ adds r0, r5
+ lsls r1, r7, 4
+ strh r1, [r0]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081143AC: .4byte 0x02014800
+_081143B0: .4byte 0x000028c4
+_081143B4: .4byte 0x000020c4
+_081143B8: .4byte 0x000030c4
+_081143BC: .4byte 0x000038c4
+_081143C0: .4byte 0x000008c4
+_081143C4: .4byte 0x000080c4
+_081143C8: .4byte 0x000090c4
+ thumb_func_end sub_811430C
+
+ thumb_func_start unref_sub_81143CC
+unref_sub_81143CC: @ 81143CC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ ldr r0, _08114408
+ ldr r2, _0811440C
+ adds r1, r0, r2
+ ldrb r3, [r1]
+ adds r4, r0, 0
+ cmp r3, 0
+ beq _081143EE
+ subs r0, r3, 0x1
+ strb r0, [r1]
+_081143EE:
+ movs r5, 0
+ str r5, [sp]
+_081143F2:
+ movs r3, 0
+ adds r2, r4, 0
+ adds r0, r4, 0
+ adds r0, 0x84
+ ldr r1, [sp]
+ adds r0, r1, r0
+ adds r1, 0x1
+ str r1, [sp, 0x8]
+ bl _08114D84
+ .align 2, 0
+_08114408: .4byte 0x02014800
+_0811440C: .4byte 0x0000a0c4
+_08114410:
+ ldr r5, [sp]
+ lsls r0, r5, 5
+ adds r1, r3, r0
+ adds r2, 0xC4
+ adds r1, r2
+ ldrb r2, [r1]
+ mov r8, r0
+ adds r0, r3, 0x1
+ mov r10, r0
+ cmp r2, 0xC
+ bls _08114428
+ b _081148D2
+_08114428:
+ lsls r0, r2, 2
+ ldr r1, _08114434
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08114434: .4byte _08114438
+ .align 2, 0
+_08114438:
+ .4byte _081148D2
+ .4byte _0811446C
+ .4byte _081144F0
+ .4byte _0811457C
+ .4byte _08114600
+ .4byte _0811468C
+ .4byte _081146C8
+ .4byte _08114704
+ .4byte _08114740
+ .4byte _0811477C
+ .4byte _081147D0
+ .4byte _08114810
+ .4byte _08114858
+_0811446C:
+ movs r1, 0
+ str r1, [sp, 0x4]
+ lsls r0, r3, 1
+ ldr r2, [sp]
+ lsls r1, r2, 6
+ adds r0, r1
+ ldr r5, _081144E0
+ adds r2, r4, r5
+ adds r2, r0, r2
+ ldr r5, _081144E4
+ adds r1, r4, r5
+ adds r0, r1
+ ldrh r1, [r0]
+ ldrh r0, [r2]
+ adds r1, r0
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r5, r0, 8
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r2]
+ movs r6, 0
+ adds r1, r3, 0x1
+ mov r10, r1
+ ldr r2, [sp, 0x4]
+ cmp r2, r5
+ blt _081144A6
+ b _081148D2
+_081144A6:
+ mov r9, r4
+ mov r4, r8
+ adds r7, r3, r4
+ ldr r0, _081144E8
+ add r0, r9
+ adds r4, r7, r0
+ ldr r0, _081144EC
+ add r0, r9
+ adds r2, r7, r0
+_081144B8:
+ ldrb r0, [r4]
+ subs r0, 0x1
+ strb r0, [r4]
+ ldrb r1, [r4]
+ ldr r0, [sp]
+ str r2, [sp, 0xC]
+ str r3, [sp, 0x10]
+ bl sub_8114DB4
+ ldrb r0, [r4]
+ ldr r2, [sp, 0xC]
+ ldr r3, [sp, 0x10]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _081144D8
+ b _081148A0
+_081144D8:
+ adds r6, 0x1
+ cmp r6, r5
+ blt _081144B8
+ b _081148D2
+ .align 2, 0
+_081144E0: .4byte 0x000060c4
+_081144E4: .4byte 0x000080c4
+_081144E8: .4byte 0x000030c4
+_081144EC: .4byte 0x000020c4
+_081144F0:
+ movs r2, 0
+ str r2, [sp, 0x4]
+ ldr r4, _08114568
+ lsls r0, r3, 1
+ ldr r5, [sp]
+ lsls r1, r5, 6
+ adds r0, r1
+ ldr r1, _0811456C
+ adds r2, r4, r1
+ adds r2, r0, r2
+ ldr r5, _08114570
+ adds r1, r4, r5
+ adds r0, r1
+ ldrh r1, [r0]
+ ldrh r0, [r2]
+ adds r1, r0
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r5, r0, 8
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r2]
+ movs r6, 0
+ adds r1, r3, 0x1
+ mov r10, r1
+ ldr r2, [sp, 0x4]
+ cmp r2, r5
+ blt _0811452C
+ b _081148D2
+_0811452C:
+ mov r9, r4
+ mov r4, r8
+ adds r7, r3, r4
+ ldr r0, _08114574
+ add r0, r9
+ adds r4, r7, r0
+ ldr r0, _08114578
+ add r0, r9
+ adds r2, r7, r0
+_0811453E:
+ ldrb r0, [r4]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _08114548
+ b _081148B8
+_08114548:
+ adds r1, r0, 0
+ ldr r0, [sp]
+ str r2, [sp, 0xC]
+ str r3, [sp, 0x10]
+ bl sub_8114DF0
+ ldrb r0, [r4]
+ subs r0, 0x1
+ strb r0, [r4]
+ adds r6, 0x1
+ ldr r2, [sp, 0xC]
+ ldr r3, [sp, 0x10]
+ cmp r6, r5
+ blt _0811453E
+ b _081148D2
+ .align 2, 0
+_08114568: .4byte 0x02014800
+_0811456C: .4byte 0x000060c4
+_08114570: .4byte 0x000080c4
+_08114574: .4byte 0x000030c4
+_08114578: .4byte 0x000020c4
+_0811457C:
+ movs r2, 0
+ str r2, [sp, 0x4]
+ lsls r0, r3, 1
+ ldr r5, [sp]
+ lsls r1, r5, 6
+ adds r0, r1
+ ldr r1, _081145F0
+ adds r2, r4, r1
+ adds r2, r0, r2
+ ldr r5, _081145F4
+ adds r1, r4, r5
+ adds r0, r1
+ ldrh r1, [r0]
+ ldrh r0, [r2]
+ adds r1, r0
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r5, r0, 8
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r2]
+ movs r6, 0
+ adds r1, r3, 0x1
+ mov r10, r1
+ ldr r2, [sp, 0x4]
+ cmp r2, r5
+ blt _081145B6
+ b _081148D2
+_081145B6:
+ mov r9, r4
+ mov r4, r8
+ adds r7, r3, r4
+ ldr r0, _081145F8
+ add r0, r9
+ adds r4, r7, r0
+ ldr r0, _081145FC
+ add r0, r9
+ adds r2, r7, r0
+_081145C8:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldrb r1, [r4]
+ ldr r0, [sp]
+ str r2, [sp, 0xC]
+ str r3, [sp, 0x10]
+ bl sub_8114DB4
+ ldrb r0, [r4]
+ ldr r2, [sp, 0xC]
+ ldr r3, [sp, 0x10]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _081145E8
+ b _081148AC
+_081145E8:
+ adds r6, 0x1
+ cmp r6, r5
+ blt _081145C8
+ b _081148D2
+ .align 2, 0
+_081145F0: .4byte 0x000060c4
+_081145F4: .4byte 0x000080c4
+_081145F8: .4byte 0x000030c4
+_081145FC: .4byte 0x000020c4
+_08114600:
+ movs r2, 0
+ str r2, [sp, 0x4]
+ ldr r4, _08114678
+ lsls r0, r3, 1
+ ldr r5, [sp]
+ lsls r1, r5, 6
+ adds r0, r1
+ ldr r1, _0811467C
+ adds r2, r4, r1
+ adds r2, r0, r2
+ ldr r5, _08114680
+ adds r1, r4, r5
+ adds r0, r1
+ ldrh r1, [r0]
+ ldrh r0, [r2]
+ adds r1, r0
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r5, r0, 8
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r2]
+ movs r6, 0
+ adds r1, r3, 0x1
+ mov r10, r1
+ ldr r2, [sp, 0x4]
+ cmp r2, r5
+ blt _0811463C
+ b _081148D2
+_0811463C:
+ mov r9, r4
+ mov r4, r8
+ adds r7, r3, r4
+ ldr r0, _08114684
+ add r0, r9
+ adds r4, r7, r0
+ ldr r0, _08114688
+ add r0, r9
+ adds r2, r7, r0
+_0811464E:
+ ldrb r0, [r4]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _08114658
+ b _081148B8
+_08114658:
+ adds r1, r0, 0
+ ldr r0, [sp]
+ str r2, [sp, 0xC]
+ str r3, [sp, 0x10]
+ bl sub_8114DF0
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ adds r6, 0x1
+ ldr r2, [sp, 0xC]
+ ldr r3, [sp, 0x10]
+ cmp r6, r5
+ blt _0811464E
+ b _081148D2
+ .align 2, 0
+_08114678: .4byte 0x02014800
+_0811467C: .4byte 0x000060c4
+_08114680: .4byte 0x000080c4
+_08114684: .4byte 0x000030c4
+_08114688: .4byte 0x000020c4
+_0811468C:
+ movs r2, 0
+ str r2, [sp, 0x4]
+ ldr r5, _081146C0
+ mov r0, r8
+ adds r4, r3, r0
+ ldr r1, _081146C4
+ adds r0, r5, r1
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ ldr r0, [sp]
+ str r3, [sp, 0x10]
+ bl sub_8114E48
+ lsls r0, 24
+ ldr r3, [sp, 0x10]
+ adds r2, r3, 0x1
+ mov r10, r2
+ cmp r0, 0
+ bne _081146B4
+ b _081148D2
+_081146B4:
+ adds r0, r5, 0
+ adds r0, 0xC4
+ adds r0, r4, r0
+ movs r1, 0x9
+ strb r1, [r0]
+ b _081148D2
+ .align 2, 0
+_081146C0: .4byte 0x02014800
+_081146C4: .4byte 0x000030c4
+_081146C8:
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r5, _081146FC
+ mov r0, r8
+ adds r4, r3, r0
+ ldr r1, _08114700
+ adds r0, r5, r1
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ ldr r0, [sp]
+ str r3, [sp, 0x10]
+ bl sub_8114E48
+ lsls r0, 24
+ ldr r3, [sp, 0x10]
+ adds r2, r3, 0x1
+ mov r10, r2
+ cmp r0, 0
+ bne _081146F0
+ b _081148D2
+_081146F0:
+ adds r0, r5, 0
+ adds r0, 0xC4
+ adds r0, r4, r0
+ movs r1, 0xA
+ strb r1, [r0]
+ b _081148D2
+ .align 2, 0
+_081146FC: .4byte 0x02014800
+_08114700: .4byte 0x000030c4
+_08114704:
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r5, _08114738
+ mov r0, r8
+ adds r4, r3, r0
+ ldr r1, _0811473C
+ adds r0, r5, r1
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ ldr r0, [sp]
+ str r3, [sp, 0x10]
+ bl sub_8114E48
+ lsls r0, 24
+ ldr r3, [sp, 0x10]
+ adds r2, r3, 0x1
+ mov r10, r2
+ cmp r0, 0
+ bne _0811472C
+ b _081148D2
+_0811472C:
+ adds r0, r5, 0
+ adds r0, 0xC4
+ adds r0, r4, r0
+ movs r1, 0xB
+ strb r1, [r0]
+ b _081148D2
+ .align 2, 0
+_08114738: .4byte 0x02014800
+_0811473C: .4byte 0x000030c4
+_08114740:
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r5, _08114774
+ mov r0, r8
+ adds r4, r3, r0
+ ldr r1, _08114778
+ adds r0, r5, r1
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ ldr r0, [sp]
+ str r3, [sp, 0x10]
+ bl sub_8114E48
+ lsls r0, 24
+ ldr r3, [sp, 0x10]
+ adds r2, r3, 0x1
+ mov r10, r2
+ cmp r0, 0
+ bne _08114768
+ b _081148D2
+_08114768:
+ adds r0, r5, 0
+ adds r0, 0xC4
+ adds r0, r4, r0
+ movs r1, 0xC
+ strb r1, [r0]
+ b _081148D2
+ .align 2, 0
+_08114774: .4byte 0x02014800
+_08114778: .4byte 0x000030c4
+_0811477C:
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r6, _081147B4
+ mov r0, r8
+ adds r5, r3, r0
+ ldr r1, _081147B8
+ adds r4, r6, r1
+ adds r4, r5, r4
+ ldrb r1, [r4]
+ ldr r0, [sp]
+ str r3, [sp, 0x10]
+ bl sub_8114DB4
+ ldr r2, _081147BC
+ adds r0, r6, r2
+ adds r0, r5, r0
+ ldrb r1, [r4]
+ ldr r3, [sp, 0x10]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _081147C0
+ adds r0, r6, 0
+ adds r0, 0xC4
+ adds r0, r5, r0
+ mov r4, sp
+ ldrb r4, [r4, 0x4]
+ strb r4, [r0]
+ b _08114844
+ .align 2, 0
+_081147B4: .4byte 0x02014800
+_081147B8: .4byte 0x000030c4
+_081147BC: .4byte 0x000020c4
+_081147C0:
+ adds r0, r6, 0
+ adds r0, 0xC4
+ adds r0, r5, r0
+ movs r1, 0x1
+ strb r1, [r0]
+ adds r0, r3, 0x1
+ mov r10, r0
+ b _081148D2
+_081147D0:
+ movs r1, 0
+ str r1, [sp, 0x4]
+ ldr r6, _08114804
+ mov r2, r8
+ adds r5, r3, r2
+ ldr r0, _08114808
+ adds r4, r6, r0
+ adds r4, r5, r4
+ ldrb r1, [r4]
+ ldr r0, [sp]
+ str r3, [sp, 0x10]
+ bl sub_8114DF0
+ ldr r1, _0811480C
+ adds r0, r6, r1
+ adds r0, r5, r0
+ ldrb r1, [r4]
+ ldr r3, [sp, 0x10]
+ ldrb r0, [r0]
+ cmp r1, r0
+ beq _08114882
+ adds r0, r6, 0
+ adds r0, 0xC4
+ adds r0, r5, r0
+ movs r1, 0x2
+ b _08114842
+ .align 2, 0
+_08114804: .4byte 0x02014800
+_08114808: .4byte 0x000030c4
+_0811480C: .4byte 0x000020c4
+_08114810:
+ movs r0, 0
+ str r0, [sp, 0x4]
+ ldr r6, _0811484C
+ mov r1, r8
+ adds r5, r3, r1
+ ldr r2, _08114850
+ adds r4, r6, r2
+ adds r4, r5, r4
+ ldrb r1, [r4]
+ ldr r0, [sp]
+ str r3, [sp, 0x10]
+ bl sub_8114DB4
+ ldr r1, _08114854
+ adds r0, r6, r1
+ adds r0, r5, r0
+ ldrb r1, [r4]
+ ldr r3, [sp, 0x10]
+ ldrb r0, [r0]
+ cmp r1, r0
+ beq _08114882
+ adds r0, r6, 0
+ adds r0, 0xC4
+ adds r0, r5, r0
+ movs r1, 0x3
+_08114842:
+ strb r1, [r0]
+_08114844:
+ adds r5, r3, 0x1
+ mov r10, r5
+ b _081148D2
+ .align 2, 0
+_0811484C: .4byte 0x02014800
+_08114850: .4byte 0x000030c4
+_08114854: .4byte 0x000020c4
+_08114858:
+ movs r0, 0
+ str r0, [sp, 0x4]
+ ldr r6, _08114894
+ mov r1, r8
+ adds r5, r3, r1
+ ldr r2, _08114898
+ adds r4, r6, r2
+ adds r4, r5, r4
+ ldrb r1, [r4]
+ ldr r0, [sp]
+ str r3, [sp, 0x10]
+ bl sub_8114DF0
+ ldr r1, _0811489C
+ adds r0, r6, r1
+ adds r0, r5, r0
+ ldrb r1, [r4]
+ ldr r3, [sp, 0x10]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _081148C4
+_08114882:
+ adds r0, r6, 0
+ adds r0, 0xC4
+ adds r0, r5, r0
+ mov r2, sp
+ ldrb r2, [r2, 0x4]
+ strb r2, [r0]
+ adds r4, r3, 0x1
+ mov r10, r4
+ b _081148D2
+ .align 2, 0
+_08114894: .4byte 0x02014800
+_08114898: .4byte 0x000030c4
+_0811489C: .4byte 0x000020c4
+_081148A0:
+ mov r0, r9
+ adds r0, 0xC4
+ adds r0, r7, r0
+ movs r5, 0
+ strb r5, [r0]
+ b _081148D2
+_081148AC:
+ mov r0, r9
+ adds r0, 0xC4
+ adds r0, r7, r0
+ movs r1, 0
+ strb r1, [r0]
+ b _081148D2
+_081148B8:
+ mov r0, r9
+ adds r0, 0xC4
+ adds r0, r7, r0
+ movs r1, 0
+ strb r1, [r0]
+ b _081148D2
+_081148C4:
+ adds r0, r6, 0
+ adds r0, 0xC4
+ adds r0, r5, r0
+ movs r1, 0x4
+ strb r1, [r0]
+ adds r2, r3, 0x1
+ mov r10, r2
+_081148D2:
+ ldr r0, _081148F4
+ mov r4, r8
+ adds r1, r3, r4
+ ldr r5, _081148F8
+ adds r2, r0, r5
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r4, r0, 0
+ cmp r1, 0xC
+ bls _081148E8
+ b _08114D76
+_081148E8:
+ lsls r0, r1, 2
+ ldr r1, _081148FC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081148F4: .4byte 0x02014800
+_081148F8: .4byte 0x000008c4
+_081148FC: .4byte _08114900
+ .align 2, 0
+_08114900:
+ .4byte _08114D76
+ .4byte _08114934
+ .4byte _081149B8
+ .4byte _08114A3C
+ .4byte _08114AC0
+ .4byte _08114B44
+ .4byte _08114B7C
+ .4byte _08114BB4
+ .4byte _08114BEC
+ .4byte _08114C24
+ .4byte _08114C78
+ .4byte _08114CB8
+ .4byte _08114CF8
+_08114934:
+ movs r0, 0
+ str r0, [sp, 0x4]
+ lsls r0, r3, 1
+ ldr r2, [sp]
+ lsls r1, r2, 6
+ adds r0, r1
+ ldr r5, _081149A8
+ adds r2, r4, r5
+ adds r2, r0, r2
+ ldr r5, _081149AC
+ adds r1, r4, r5
+ adds r0, r1
+ ldrh r1, [r0]
+ ldrh r0, [r2]
+ adds r1, r0
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r5, r0, 8
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r2]
+ movs r6, 0
+ ldr r1, [sp, 0x4]
+ cmp r1, r5
+ blt _0811496A
+ b _08114D76
+_0811496A:
+ mov r9, r4
+ mov r2, r8
+ adds r7, r3, r2
+ ldr r0, _081149B0
+ add r0, r9
+ adds r4, r7, r0
+ movs r3, 0
+ ldr r0, _081149B4
+ add r0, r9
+ adds r2, r7, r0
+_0811497E:
+ ldrb r0, [r4]
+ subs r0, 0x1
+ strb r0, [r4]
+ ldrb r1, [r4]
+ ldr r0, [sp]
+ str r2, [sp, 0xC]
+ str r3, [sp, 0x10]
+ bl sub_8114DB4
+ ldrb r0, [r4]
+ ldr r2, [sp, 0xC]
+ ldr r3, [sp, 0x10]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _0811499E
+ b _08114D4C
+_0811499E:
+ adds r6, 0x1
+ cmp r6, r5
+ blt _0811497E
+ b _08114D76
+ .align 2, 0
+_081149A8: .4byte 0x000070c4
+_081149AC: .4byte 0x000090c4
+_081149B0: .4byte 0x000038c4
+_081149B4: .4byte 0x000028c4
+_081149B8:
+ movs r2, 0
+ str r2, [sp, 0x4]
+ ldr r4, _08114A28
+ lsls r0, r3, 1
+ ldr r5, [sp]
+ lsls r1, r5, 6
+ adds r0, r1
+ ldr r1, _08114A2C
+ adds r2, r4, r1
+ adds r2, r0, r2
+ ldr r5, _08114A30
+ adds r1, r4, r5
+ adds r0, r1
+ ldrh r1, [r0]
+ ldrh r0, [r2]
+ adds r1, r0
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r5, r0, 8
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r2]
+ movs r6, 0
+ ldr r1, [sp, 0x4]
+ cmp r1, r5
+ blt _081149F0
+ b _08114D76
+_081149F0:
+ mov r9, r4
+ mov r2, r8
+ adds r7, r3, r2
+ ldr r0, _08114A34
+ add r0, r9
+ adds r4, r7, r0
+ ldr r0, _08114A38
+ add r0, r9
+ adds r2, r7, r0
+_08114A02:
+ ldrb r0, [r4]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _08114A0C
+ b _08114D3C
+_08114A0C:
+ adds r1, r0, 0
+ ldr r0, [sp]
+ str r2, [sp, 0xC]
+ bl sub_8114DF0
+ ldrb r0, [r4]
+ subs r0, 0x1
+ strb r0, [r4]
+ adds r6, 0x1
+ ldr r2, [sp, 0xC]
+ cmp r6, r5
+ blt _08114A02
+ b _08114D76
+ .align 2, 0
+_08114A28: .4byte 0x02014800
+_08114A2C: .4byte 0x000070c4
+_08114A30: .4byte 0x000090c4
+_08114A34: .4byte 0x000038c4
+_08114A38: .4byte 0x000028c4
+_08114A3C:
+ movs r2, 0
+ str r2, [sp, 0x4]
+ lsls r0, r3, 1
+ ldr r5, [sp]
+ lsls r1, r5, 6
+ adds r0, r1
+ ldr r1, _08114AB0
+ adds r2, r4, r1
+ adds r2, r0, r2
+ ldr r5, _08114AB4
+ adds r1, r4, r5
+ adds r0, r1
+ ldrh r1, [r0]
+ ldrh r0, [r2]
+ adds r1, r0
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r5, r0, 8
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r2]
+ movs r6, 0
+ ldr r1, [sp, 0x4]
+ cmp r1, r5
+ blt _08114A72
+ b _08114D76
+_08114A72:
+ mov r9, r4
+ mov r2, r8
+ adds r7, r3, r2
+ ldr r0, _08114AB8
+ add r0, r9
+ adds r4, r7, r0
+ movs r3, 0
+ ldr r0, _08114ABC
+ add r0, r9
+ adds r2, r7, r0
+_08114A86:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldrb r1, [r4]
+ ldr r0, [sp]
+ str r2, [sp, 0xC]
+ str r3, [sp, 0x10]
+ bl sub_8114DB4
+ ldrb r0, [r4]
+ ldr r2, [sp, 0xC]
+ ldr r3, [sp, 0x10]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _08114AA6
+ b _08114D4C
+_08114AA6:
+ adds r6, 0x1
+ cmp r6, r5
+ blt _08114A86
+ b _08114D76
+ .align 2, 0
+_08114AB0: .4byte 0x000070c4
+_08114AB4: .4byte 0x000090c4
+_08114AB8: .4byte 0x000038c4
+_08114ABC: .4byte 0x000028c4
+_08114AC0:
+ movs r2, 0
+ str r2, [sp, 0x4]
+ ldr r4, _08114B30
+ lsls r0, r3, 1
+ ldr r5, [sp]
+ lsls r1, r5, 6
+ adds r0, r1
+ ldr r1, _08114B34
+ adds r2, r4, r1
+ adds r2, r0, r2
+ ldr r5, _08114B38
+ adds r1, r4, r5
+ adds r0, r1
+ ldrh r1, [r0]
+ ldrh r0, [r2]
+ adds r1, r0
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r5, r0, 8
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r2]
+ movs r6, 0
+ ldr r1, [sp, 0x4]
+ cmp r1, r5
+ blt _08114AF8
+ b _08114D76
+_08114AF8:
+ mov r9, r4
+ mov r2, r8
+ adds r7, r3, r2
+ ldr r0, _08114B3C
+ add r0, r9
+ adds r4, r7, r0
+ ldr r0, _08114B40
+ add r0, r9
+ adds r2, r7, r0
+_08114B0A:
+ ldrb r0, [r4]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _08114B14
+ b _08114D5C
+_08114B14:
+ adds r1, r0, 0
+ ldr r0, [sp]
+ str r2, [sp, 0xC]
+ bl sub_8114DF0
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ adds r6, 0x1
+ ldr r2, [sp, 0xC]
+ cmp r6, r5
+ blt _08114B0A
+ b _08114D76
+ .align 2, 0
+_08114B30: .4byte 0x02014800
+_08114B34: .4byte 0x000070c4
+_08114B38: .4byte 0x000090c4
+_08114B3C: .4byte 0x000038c4
+_08114B40: .4byte 0x000028c4
+_08114B44:
+ movs r2, 0
+ str r2, [sp, 0x4]
+ ldr r5, _08114B70
+ mov r0, r8
+ adds r4, r3, r0
+ ldr r1, _08114B74
+ adds r0, r5, r1
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ ldr r0, [sp]
+ bl sub_8114E48
+ lsls r0, 24
+ cmp r0, 0
+ bne _08114B64
+ b _08114D76
+_08114B64:
+ ldr r2, _08114B78
+ adds r0, r5, r2
+ adds r0, r4, r0
+ movs r1, 0x9
+ b _08114D74
+ .align 2, 0
+_08114B70: .4byte 0x02014800
+_08114B74: .4byte 0x000038c4
+_08114B78: .4byte 0x000008c4
+_08114B7C:
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r5, _08114BA8
+ mov r0, r8
+ adds r4, r3, r0
+ ldr r1, _08114BAC
+ adds r0, r5, r1
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ ldr r0, [sp]
+ bl sub_8114E48
+ lsls r0, 24
+ cmp r0, 0
+ bne _08114B9C
+ b _08114D76
+_08114B9C:
+ ldr r2, _08114BB0
+ adds r0, r5, r2
+ adds r0, r4, r0
+ movs r1, 0xA
+ b _08114D74
+ .align 2, 0
+_08114BA8: .4byte 0x02014800
+_08114BAC: .4byte 0x000038c4
+_08114BB0: .4byte 0x000008c4
+_08114BB4:
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r5, _08114BE0
+ mov r0, r8
+ adds r4, r3, r0
+ ldr r1, _08114BE4
+ adds r0, r5, r1
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ ldr r0, [sp]
+ bl sub_8114E48
+ lsls r0, 24
+ cmp r0, 0
+ bne _08114BD4
+ b _08114D76
+_08114BD4:
+ ldr r2, _08114BE8
+ adds r0, r5, r2
+ adds r0, r4, r0
+ movs r1, 0xB
+ b _08114D74
+ .align 2, 0
+_08114BE0: .4byte 0x02014800
+_08114BE4: .4byte 0x000038c4
+_08114BE8: .4byte 0x000008c4
+_08114BEC:
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r5, _08114C18
+ mov r0, r8
+ adds r4, r3, r0
+ ldr r1, _08114C1C
+ adds r0, r5, r1
+ adds r0, r4, r0
+ ldrb r1, [r0]
+ ldr r0, [sp]
+ bl sub_8114E48
+ lsls r0, 24
+ cmp r0, 0
+ bne _08114C0C
+ b _08114D76
+_08114C0C:
+ ldr r2, _08114C20
+ adds r0, r5, r2
+ adds r0, r4, r0
+ movs r1, 0xC
+ b _08114D74
+ .align 2, 0
+_08114C18: .4byte 0x02014800
+_08114C1C: .4byte 0x000038c4
+_08114C20: .4byte 0x000008c4
+_08114C24:
+ movs r4, 0
+ str r4, [sp, 0x4]
+ ldr r6, _08114C58
+ mov r0, r8
+ adds r5, r3, r0
+ ldr r1, _08114C5C
+ adds r4, r6, r1
+ adds r4, r5, r4
+ ldrb r1, [r4]
+ ldr r0, [sp]
+ bl sub_8114DB4
+ ldr r2, _08114C60
+ adds r0, r6, r2
+ adds r0, r5, r0
+ ldrb r1, [r4]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _08114C68
+ ldr r4, _08114C64
+ adds r0, r6, r4
+ adds r0, r5, r0
+ mov r5, sp
+ ldrb r5, [r5, 0x4]
+ strb r5, [r0]
+ b _08114D76
+ .align 2, 0
+_08114C58: .4byte 0x02014800
+_08114C5C: .4byte 0x000038c4
+_08114C60: .4byte 0x000028c4
+_08114C64: .4byte 0x000008c4
+_08114C68:
+ ldr r1, _08114C74
+ adds r0, r6, r1
+ adds r0, r5, r0
+ movs r1, 0x1
+ b _08114D74
+ .align 2, 0
+_08114C74: .4byte 0x000008c4
+_08114C78:
+ movs r2, 0
+ str r2, [sp, 0x4]
+ ldr r6, _08114CA8
+ mov r4, r8
+ adds r5, r3, r4
+ ldr r0, _08114CAC
+ adds r4, r6, r0
+ adds r4, r5, r4
+ ldrb r1, [r4]
+ ldr r0, [sp]
+ bl sub_8114DF0
+ ldr r1, _08114CB0
+ adds r0, r6, r1
+ adds r0, r5, r0
+ ldrb r1, [r4]
+ ldrb r0, [r0]
+ cmp r1, r0
+ beq _08114D1E
+ ldr r1, _08114CB4
+ adds r0, r6, r1
+ adds r0, r5, r0
+ movs r1, 0x2
+ b _08114D74
+ .align 2, 0
+_08114CA8: .4byte 0x02014800
+_08114CAC: .4byte 0x000038c4
+_08114CB0: .4byte 0x000028c4
+_08114CB4: .4byte 0x000008c4
+_08114CB8:
+ movs r2, 0
+ str r2, [sp, 0x4]
+ ldr r6, _08114CE8
+ mov r4, r8
+ adds r5, r3, r4
+ ldr r0, _08114CEC
+ adds r4, r6, r0
+ adds r4, r5, r4
+ ldrb r1, [r4]
+ ldr r0, [sp]
+ bl sub_8114DB4
+ ldr r1, _08114CF0
+ adds r0, r6, r1
+ adds r0, r5, r0
+ ldrb r1, [r4]
+ ldrb r0, [r0]
+ cmp r1, r0
+ beq _08114D1E
+ ldr r1, _08114CF4
+ adds r0, r6, r1
+ adds r0, r5, r0
+ movs r1, 0x3
+ b _08114D74
+ .align 2, 0
+_08114CE8: .4byte 0x02014800
+_08114CEC: .4byte 0x000038c4
+_08114CF0: .4byte 0x000028c4
+_08114CF4: .4byte 0x000008c4
+_08114CF8:
+ movs r2, 0
+ str r2, [sp, 0x4]
+ ldr r6, _08114D2C
+ mov r4, r8
+ adds r5, r3, r4
+ ldr r0, _08114D30
+ adds r4, r6, r0
+ adds r4, r5, r4
+ ldrb r1, [r4]
+ ldr r0, [sp]
+ bl sub_8114DF0
+ ldr r1, _08114D34
+ adds r0, r6, r1
+ adds r0, r5, r0
+ ldrb r1, [r4]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _08114D6C
+_08114D1E:
+ ldr r2, _08114D38
+ adds r0, r6, r2
+ adds r0, r5, r0
+ mov r4, sp
+ ldrb r4, [r4, 0x4]
+ strb r4, [r0]
+ b _08114D76
+ .align 2, 0
+_08114D2C: .4byte 0x02014800
+_08114D30: .4byte 0x000038c4
+_08114D34: .4byte 0x000028c4
+_08114D38: .4byte 0x000008c4
+_08114D3C:
+ ldr r0, _08114D48
+ add r0, r9
+ adds r0, r7, r0
+ movs r1, 0
+ b _08114D74
+ .align 2, 0
+_08114D48: .4byte 0x000008c4
+_08114D4C:
+ ldr r0, _08114D58
+ add r0, r9
+ adds r0, r7, r0
+ strb r3, [r0]
+ b _08114D76
+ .align 2, 0
+_08114D58: .4byte 0x000008c4
+_08114D5C:
+ ldr r0, _08114D68
+ add r0, r9
+ adds r0, r7, r0
+ movs r1, 0
+ b _08114D74
+ .align 2, 0
+_08114D68: .4byte 0x000008c4
+_08114D6C:
+ ldr r1, _08114DAC
+ adds r0, r6, r1
+ adds r0, r5, r0
+ movs r1, 0x4
+_08114D74:
+ strb r1, [r0]
+_08114D76:
+ mov r3, r10
+ ldr r2, _08114DB0
+ adds r0, r2, 0
+ adds r0, 0x84
+ ldr r4, [sp]
+ adds r0, r4, r0
+ adds r4, r2, 0
+_08114D84:
+ ldrb r0, [r0]
+ cmp r3, r0
+ bge _08114D8E
+ bl _08114410
+_08114D8E:
+ ldr r5, [sp, 0x8]
+ str r5, [sp]
+ cmp r5, 0x3F
+ bgt _08114D9A
+ bl _081143F2
+_08114D9A:
+ ldr r0, [sp, 0x4]
+ 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
+_08114DAC: .4byte 0x000008c4
+_08114DB0: .4byte 0x02014800
+ thumb_func_end unref_sub_81143CC
+
+ thumb_func_start sub_8114DB4
+sub_8114DB4: @ 8114DB4
+ push {lr}
+ lsls r1, 24
+ lsrs r3, r1, 24
+ ldr r2, _08114DDC
+ lsrs r1, 25
+ lsls r1, 2
+ lsls r0, 7
+ adds r1, r0
+ ldr r0, _08114DE0
+ adds r2, r0
+ adds r1, r2
+ ldr r2, [r1]
+ movs r0, 0x1
+ ands r3, r0
+ cmp r3, 0
+ beq _08114DE4
+ ldrb r0, [r2]
+ movs r1, 0xF0
+ b _08114DE8
+ .align 2, 0
+_08114DDC: .4byte 0x02014800
+_08114DE0: .4byte 0x000040c4
+_08114DE4:
+ ldrb r0, [r2]
+ movs r1, 0xF
+_08114DE8:
+ orrs r0, r1
+ strb r0, [r2]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8114DB4
+
+ thumb_func_start sub_8114DF0
+sub_8114DF0: @ 8114DF0
+ push {lr}
+ lsls r1, 24
+ lsrs r3, r1, 24
+ ldr r2, _08114E28
+ lsrs r1, 25
+ lsls r1, 2
+ lsls r0, 7
+ adds r1, r0
+ ldr r0, _08114E2C
+ adds r2, r0
+ adds r1, r2
+ ldr r2, [r1]
+ movs r0, 0xC0
+ lsls r0, 7
+ adds r1, r2, r0
+ movs r0, 0x1
+ ands r3, r0
+ cmp r3, 0
+ beq _08114E30
+ ldrb r1, [r1]
+ movs r0, 0xF0
+ ands r0, r1
+ cmp r0, 0
+ bne _08114E42
+ ldrb r1, [r2]
+ movs r0, 0xF
+ b _08114E3E
+ .align 2, 0
+_08114E28: .4byte 0x02014800
+_08114E2C: .4byte 0x000040c4
+_08114E30:
+ ldrb r1, [r1]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0
+ bne _08114E42
+ ldrb r1, [r2]
+ movs r0, 0xF0
+_08114E3E:
+ ands r0, r1
+ strb r0, [r2]
+_08114E42:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8114DF0
+
+ thumb_func_start sub_8114E48
+sub_8114E48: @ 8114E48
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldr r1, _08114E6C
+ ldr r2, _08114E70
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0
+ bne _08114E60
+ b _08114F5E
+_08114E60:
+ movs r1, 0
+ movs r3, 0
+ cmp r4, 0
+ bne _08114E74
+ movs r1, 0x1
+ b _08114EA6
+ .align 2, 0
+_08114E6C: .4byte 0x02014800
+_08114E70: .4byte 0x0000a0c4
+_08114E74:
+ subs r0, r4, 0x1
+ lsls r0, 5
+ adds r2, r3, r0
+ adds r0, r5, 0
+ adds r0, 0xC4
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08114EA6
+ ldr r7, _08114EC4
+ adds r0, r5, r7
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08114EA6
+ adds r3, 0x1
+ cmp r3, 0x1F
+ bgt _08114EA6
+ cmp r4, 0
+ bne _08114E74
+ lsls r0, r1, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r1, r0, 24
+_08114EA6:
+ cmp r3, 0x20
+ bne _08114EB4
+ lsls r0, r1, 24
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r1, r0, 24
+_08114EB4:
+ movs r3, 0
+ cmp r4, 0x3F
+ bne _08114EC8
+ lsls r0, r1, 24
+ movs r7, 0x80
+ lsls r7, 17
+ adds r0, r7
+ b _08114EF8
+ .align 2, 0
+_08114EC4: .4byte 0x000008c4
+_08114EC8:
+ adds r0, r4, 0x1
+ lsls r0, 5
+ adds r2, r3, r0
+ adds r0, r5, 0
+ adds r0, 0xC4
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08114EFA
+ ldr r7, _08114F64
+ adds r0, r5, r7
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08114EFA
+ adds r3, 0x1
+ cmp r3, 0x1F
+ bgt _08114EFA
+ cmp r4, 0x3F
+ bne _08114EC8
+ lsls r0, r1, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+_08114EF8:
+ lsrs r1, r0, 24
+_08114EFA:
+ cmp r3, 0x20
+ bne _08114F08
+ lsls r0, r1, 24
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r1, r0, 24
+_08114F08:
+ cmp r1, 0x2
+ beq _08114F5E
+ subs r0, r6, 0x2
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r0, 0
+ bge _08114F18
+ movs r1, 0
+_08114F18:
+ adds r0, r6, 0x2
+ lsls r0, 24
+ lsrs r2, r0, 24
+ asrs r0, 24
+ cmp r0, 0x3F
+ ble _08114F26
+ movs r2, 0x3F
+_08114F26:
+ lsls r1, 24
+ asrs r3, r1, 24
+ lsls r0, r2, 24
+ asrs r2, r0, 24
+ adds r6, r1, 0
+ adds r7, r0, 0
+ cmp r3, r2
+ bge _08114F7C
+ cmp r4, 0
+ beq _08114F7C
+ subs r0, r4, 0x1
+ lsls r5, r0, 7
+ ldr r0, _08114F68
+ mov r12, r0
+_08114F42:
+ asrs r0, r3, 1
+ lsls r0, 2
+ adds r0, r5
+ add r0, r12
+ ldr r1, [r0]
+ movs r0, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _08114F6C
+ ldrb r1, [r1]
+ movs r0, 0xF0
+_08114F58:
+ ands r0, r1
+ cmp r0, 0
+ beq _08114F72
+_08114F5E:
+ movs r0, 0x1
+ b _08114FCA
+ .align 2, 0
+_08114F64: .4byte 0x000008c4
+_08114F68: .4byte 0x020188c4
+_08114F6C:
+ ldrb r1, [r1]
+ movs r0, 0xF
+ b _08114F58
+_08114F72:
+ adds r3, 0x1
+ cmp r3, r2
+ bge _08114F7C
+ cmp r4, 0
+ bne _08114F42
+_08114F7C:
+ asrs r3, r6, 24
+ asrs r1, r7, 24
+ cmp r3, r1
+ bge _08114FC8
+ cmp r4, 0x3F
+ beq _08114FC8
+ adds r0, r4, 0x1
+ lsls r5, r0, 7
+ ldr r6, _08114FB0
+ adds r2, r1, 0
+_08114F90:
+ asrs r0, r3, 1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, r6
+ ldr r1, [r0]
+ movs r0, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _08114FB4
+ ldrb r1, [r1]
+ movs r0, 0xF0
+ ands r0, r1
+ cmp r0, 0
+ beq _08114FBE
+ b _08114F5E
+ .align 2, 0
+_08114FB0: .4byte 0x020188c4
+_08114FB4:
+ ldrb r1, [r1]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0
+ bne _08114F5E
+_08114FBE:
+ adds r3, 0x1
+ cmp r3, r2
+ bge _08114FC8
+ cmp r4, 0x3F
+ bne _08114F90
+_08114FC8:
+ movs r0, 0
+_08114FCA:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8114E48
+
+ thumb_func_start nullsub_73
+nullsub_73: @ 8114FD0
+ bx lr
+ thumb_func_end nullsub_73
+
+ thumb_func_start sub_8114FD4
+sub_8114FD4: @ 8114FD4
+ push {lr}
+ ldr r1, _08115034
+ ldr r2, _08115038
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x8
+ ldr r0, _0811503C
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _08115040
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _08115044
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _08115048
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _0811504C
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _08115050
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _08115054
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _08115058
+ ldrh r0, [r0]
+ strh r0, [r1]
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_8089668
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08115034: .4byte REG_BG0CNT
+_08115038: .4byte 0x00009803
+_0811503C: .4byte gUnknown_030042A4
+_08115040: .4byte gUnknown_030042A0
+_08115044: .4byte gUnknown_030042C0
+_08115048: .4byte gUnknown_030041B4
+_0811504C: .4byte gUnknown_03004288
+_08115050: .4byte gUnknown_03004280
+_08115054: .4byte gUnknown_030041B0
+_08115058: .4byte gUnknown_030041B8
+ thumb_func_end sub_8114FD4
+
+ thumb_func_start sub_811505C
+sub_811505C: @ 811505C
+ push {lr}
+ ldr r1, _081150B4
+ ldr r0, _081150B8
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _081150BC
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _081150C0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _081150C4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _081150C8
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _081150CC
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _081150D0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, _081150D4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_8089668
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081150B4: .4byte REG_BG0HOFS
+_081150B8: .4byte gUnknown_030042A4
+_081150BC: .4byte gUnknown_030042A0
+_081150C0: .4byte gUnknown_030042C0
+_081150C4: .4byte gUnknown_030041B4
+_081150C8: .4byte gUnknown_03004288
+_081150CC: .4byte gUnknown_03004280
+_081150D0: .4byte gUnknown_030041B0
+_081150D4: .4byte gUnknown_030041B8
+ thumb_func_end sub_811505C
+
+ thumb_func_start sub_81150D8
+sub_81150D8: @ 81150D8
+ push {lr}
+ ldr r0, _081150F4
+ ldrb r1, [r0, 0x1]
+ lsls r1, 28
+ movs r0, 0x90
+ lsls r0, 23
+ adds r1, r0
+ lsrs r1, 24
+ movs r0, 0xC8
+ bl sub_814A880
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081150F4: .4byte gUnknown_02024D1E
+ thumb_func_end sub_81150D8
+
+ thumb_func_start nullsub_24
+nullsub_24: @ 81150F8
+ bx lr
+ thumb_func_end nullsub_24
+
+ thumb_func_start sub_81150FC
+sub_81150FC: @ 81150FC
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ ldr r0, _08115120
+ adds r1, r0, 0
+ adds r1, 0xB8
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0811511C
+ adds r0, r1, 0
+ bl task_tutorial_controls_fadein
+_0811511C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08115120: .4byte 0x02019000
+ thumb_func_end sub_81150FC
+
+ thumb_func_start sub_8115124
+sub_8115124: @ 8115124
+ push {r4,lr}
+ sub sp, 0x4
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_8117434
+ ldr r2, _08115188
+ ldr r3, _0811518C
+ ldrh r1, [r3, 0x26]
+ movs r4, 0x80
+ lsls r4, 2
+ adds r0, r4, 0
+ subs r0, r1
+ strh r0, [r2]
+ ldrb r0, [r3, 0x1]
+ cmp r0, 0
+ beq _08115154
+ ldr r1, _08115190
+ ldrh r0, [r3, 0x34]
+ strh r0, [r1]
+_08115154:
+ movs r1, 0x2A
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _08115170
+ ldr r1, _08115194
+ ldr r0, _08115198
+ str r0, [r1]
+ ldr r0, _0811519C
+ str r0, [r1, 0x4]
+ ldr r0, _081151A0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r0, 0
+ strh r0, [r3, 0x2A]
+_08115170:
+ movs r2, 0x28
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x1
+ beq _081151A4
+ cmp r0, 0x1
+ ble _0811521A
+ cmp r0, 0x2
+ beq _081151D4
+ cmp r0, 0xFF
+ beq _081151F8
+ b _0811521A
+ .align 2, 0
+_08115188: .4byte REG_BG1HOFS
+_0811518C: .4byte 0x02019000
+_08115190: .4byte REG_BLDALPHA
+_08115194: .4byte 0x040000d4
+_08115198: .4byte gBG1TilemapBuffer + 0x1C0
+_0811519C: .4byte 0x060021c0
+_081151A0: .4byte 0x800001a0
+_081151A4:
+ ldr r1, _081151C4
+ movs r4, 0xF8
+ lsls r4, 5
+ adds r0, r4, 0
+ strh r0, [r1]
+ adds r1, 0xCC
+ ldr r0, _081151C8
+ str r0, [r1]
+ ldr r0, _081151CC
+ str r0, [r1, 0x4]
+ ldr r0, _081151D0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r0, 0x2
+ b _08115218
+ .align 2, 0
+_081151C4: .4byte REG_BG0CNT
+_081151C8: .4byte gBG2TilemapBuffer + 0x1C0
+_081151CC: .4byte 0x0600f9c0
+_081151D0: .4byte 0x800001a0
+_081151D4:
+ ldr r1, _081151E8
+ ldr r0, _081151EC
+ str r0, [r1]
+ ldr r0, _081151F0
+ str r0, [r1, 0x4]
+ ldr r0, _081151F4
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ b _0811521A
+ .align 2, 0
+_081151E8: .4byte 0x040000d4
+_081151EC: .4byte gBG2TilemapBuffer + 0x1C0
+_081151F0: .4byte 0x0600f9c0
+_081151F4: .4byte 0x800001a0
+_081151F8:
+ ldr r1, _08115224
+ ldr r2, _08115228
+ adds r0, r2, 0
+ strh r0, [r1]
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _0811522C
+ mov r4, sp
+ str r4, [r1]
+ ldr r0, _08115230
+ str r0, [r1, 0x4]
+ ldr r0, _08115234
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r0, 0
+_08115218:
+ strh r0, [r3, 0x28]
+_0811521A:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08115224: .4byte REG_BG0CNT
+_08115228: .4byte 0x00001f08
+_0811522C: .4byte 0x040000d4
+_08115230: .4byte 0x0600f9c0
+_08115234: .4byte 0x810001a0
+ thumb_func_end sub_8115124
+
+ thumb_func_start sub_8115238
+sub_8115238: @ 8115238
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r1, _081152C0
+ mov r0, sp
+ movs r2, 0x6
+ bl memcpy
+ ldr r5, _081152C4
+ movs r2, 0xBE
+ lsls r2, 1
+ adds r0, r5, 0
+ movs r1, 0
+ bl memset
+ ldr r0, _081152C8
+ ldrh r2, [r0]
+ movs r0, 0x1
+ ands r0, r2
+ ldrb r1, [r5, 0x4]
+ movs r3, 0x4
+ negs r3, r3
+ ands r3, r1
+ orrs r3, r0
+ strb r3, [r5, 0x4]
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _08115276
+ movs r0, 0x80
+ orrs r3, r0
+ strb r3, [r5, 0x4]
+_08115276:
+ ldr r3, _081152CC
+ ldrb r2, [r5, 0x4]
+ lsls r1, r2, 30
+ lsrs r0, r1, 25
+ adds r0, r3
+ ldrb r0, [r0, 0x3]
+ adds r4, r5, 0
+ adds r4, 0x22
+ strb r0, [r4]
+ lsrs r0, r1, 25
+ adds r0, r3
+ ldrb r0, [r0, 0x4]
+ adds r3, r5, 0
+ adds r3, 0x23
+ strb r0, [r3]
+ ldr r0, _081152D0
+ lsrs r1, 30
+ lsls r2, 24
+ lsrs r2, 31
+ lsls r2, 1
+ adds r1, r2
+ adds r1, r0
+ ldrb r2, [r1]
+ strb r2, [r5, 0x19]
+ ldrb r1, [r5, 0x1A]
+ movs r0, 0xF
+ ands r0, r1
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r5, 0x1A]
+ cmp r2, 0x1
+ bne _081152DC
+ ldr r4, _081152D4
+ ldr r3, _081152D8
+ mov r0, sp
+ ldrh r2, [r0]
+ b _081152E4
+ .align 2, 0
+_081152C0: .4byte gUnknown_083F8EC4
+_081152C4: .4byte 0x02019000
+_081152C8: .4byte gUnknown_0202E8CC
+_081152CC: .4byte gUnknown_083F8DF4
+_081152D0: .4byte gUnknown_083F8DF0
+_081152D4: .4byte gPlttBufferUnfaded
+_081152D8: .4byte gPlttBufferFaded
+_081152DC:
+ ldr r4, _08115348
+ ldr r3, _0811534C
+ mov r0, sp
+ ldrh r2, [r0, 0x2]
+_081152E4:
+ adds r0, r3, 0
+ adds r0, 0xA2
+ strh r2, [r0]
+ ldr r1, _08115350
+ adds r0, r1, 0
+ ands r0, r2
+ strh r0, [r3]
+ ands r0, r1
+ adds r2, r4, 0
+ adds r2, 0xA2
+ strh r0, [r2]
+ ands r0, r1
+ strh r0, [r4]
+ ldr r0, _08115354
+ bl sub_8124918
+ movs r4, 0
+ ldr r5, _08115358
+_08115308:
+ lsls r2, r4, 3
+ adds r2, r5
+ ldr r0, _08115354
+ adds r1, r4, 0
+ bl sub_812492C
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xC
+ bls _08115308
+ movs r4, 0
+ ldr r5, _0811535C
+_08115322:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _08115360
+ adds r0, r1
+ movs r1, 0x41
+ bl GetMonData
+ adds r1, r0, 0
+ movs r0, 0x98
+ lsls r0, 1
+ cmp r1, r0
+ beq _08115364
+ adds r0, 0x2
+ cmp r1, r0
+ bne _0811536C
+ ldrb r0, [r5, 0x2]
+ movs r1, 0x1
+ b _08115368
+ .align 2, 0
+_08115348: .4byte gPlttBufferUnfaded
+_0811534C: .4byte gPlttBufferFaded
+_08115350: .4byte 0x0000ffff
+_08115354: .4byte 0x020190b8
+_08115358: .4byte gUnknown_083F8E34
+_0811535C: .4byte 0x02019000
+_08115360: .4byte gPlayerParty
+_08115364:
+ ldrb r0, [r5, 0x2]
+ movs r1, 0x2
+_08115368:
+ orrs r0, r1
+ strb r0, [r5, 0x2]
+_0811536C:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _08115322
+ bl RtcCalcLocalTime
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8115238
+
+ thumb_func_start sub_8115384
+sub_8115384: @ 8115384
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _081153A4
+ ldr r2, _081153A8
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x7
+ bls _08115398
+ b _081155FE
+_08115398:
+ lsls r0, 2
+ ldr r1, _081153AC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081153A4: .4byte gMain
+_081153A8: .4byte 0x0000043c
+_081153AC: .4byte _081153B0
+ .align 2, 0
+_081153B0:
+ .4byte _081153D0
+ .4byte _08115444
+ .4byte _08115460
+ .4byte _08115494
+ .4byte _081154CC
+ .4byte _081154FC
+ .4byte _0811556C
+ .4byte _0811558C
+_081153D0:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl remove_some_task
+ bl sub_80F9438
+ bl sub_80F9368
+ ldr r1, _08115420
+ ldr r3, _08115424
+ adds r0, r3, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _08115428
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x46
+ movs r3, 0x90
+ lsls r3, 6
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0811542C
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08115430
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08115434
+ ldr r1, _08115438
+ bl LZ77UnCompVram
+ ldr r1, _0811543C
+ ldr r3, _08115440
+ adds r1, r3
+ b _0811557A
+ .align 2, 0
+_08115420: .4byte REG_BG2CNT
+_08115424: .4byte 0x00004686
+_08115428: .4byte 0x00004401
+_0811542C: .4byte 0x0000060a
+_08115430: .4byte gUnknown_08E8096C
+_08115434: .4byte gUnknown_08E81098
+_08115438: .4byte 0x06004000
+_0811543C: .4byte gMain
+_08115440: .4byte 0x0000043c
+_08115444:
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl ResetTasks
+ ldr r1, _08115458
+ ldr r0, _0811545C
+ adds r1, r0
+ b _0811557A
+ .align 2, 0
+_08115458: .4byte gMain
+_0811545C: .4byte 0x0000043c
+_08115460:
+ ldr r0, _08115480
+ bl SetUpWindowConfig
+ ldr r0, _08115484
+ bl InitMenuWindow
+ ldr r0, _08115488
+ movs r2, 0xE0
+ lsls r2, 1
+ movs r1, 0
+ bl LoadPalette
+ ldr r1, _0811548C
+ ldr r2, _08115490
+ adds r1, r2
+ b _0811557A
+ .align 2, 0
+_08115480: .4byte gWindowConfig_81E6C3C
+_08115484: .4byte gWindowConfig_81E6CE4
+_08115488: .4byte gUnknown_083F86BC
+_0811548C: .4byte gMain
+_08115490: .4byte 0x0000043c
+_08115494:
+ bl sub_8115238
+ bl sub_80F9020
+ ldr r0, _081154B4
+ ldr r1, _081154B8
+ bl LZ77UnCompWram
+ ldr r0, _081154BC
+ ldr r1, _081154C0
+ bl LZ77UnCompVram
+ ldr r1, _081154C4
+ ldr r3, _081154C8
+ adds r1, r3
+ b _0811557A
+ .align 2, 0
+_081154B4: .4byte gUnknown_083F88BC
+_081154B8: .4byte 0x02018800
+_081154BC: .4byte gUnknown_083F8A60
+_081154C0: .4byte 0x06003000
+_081154C4: .4byte gMain
+_081154C8: .4byte 0x0000043c
+_081154CC:
+ movs r0, 0
+ bl sub_8117838
+ bl sub_811857C
+ bl sub_81184D8
+ bl sub_8117F2C
+ bl sub_8117900
+ bl sub_8117BBC
+ bl sub_8117DF4
+ ldr r1, _081154F4
+ ldr r0, _081154F8
+ adds r1, r0
+ b _0811557A
+ .align 2, 0
+_081154F4: .4byte gMain
+_081154F8: .4byte 0x0000043c
+_081154FC:
+ bl AnimateSprites
+ bl BuildOamBuffer
+ ldr r0, _08115550
+ ldr r1, _08115554
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_81180F4
+ movs r0, 0x6
+ bl sub_81182F8
+ movs r0, 0
+ bl sub_811829C
+ movs r0, 0
+ bl sub_8117158
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08115558
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r1, _0811555C
+ movs r2, 0x3C
+ negs r2, r2
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _08115560
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _08115564
+ ldr r3, _08115568
+ adds r1, r3
+ b _0811557A
+ .align 2, 0
+_08115550: .4byte gSaveBlock1
+_08115554: .4byte 0x00000494
+_08115558: .4byte gUnknown_081C4157
+_0811555C: .4byte gSpriteCoordOffsetX
+_08115560: .4byte gSpriteCoordOffsetY
+_08115564: .4byte gMain
+_08115568: .4byte 0x0000043c
+_0811556C:
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r3, _08115584
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _08115588
+ adds r1, r2, r0
+_0811557A:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _081155FE
+ .align 2, 0
+_08115584: .4byte 0x00001741
+_08115588: .4byte 0x0000043c
+_0811558C:
+ ldr r3, _08115608
+ ldrh r2, [r3]
+ movs r0, 0
+ strh r0, [r3]
+ ldr r4, _0811560C
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _08115610
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _08115614
+ bl SetVBlankCallback
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginHardwarePaletteFade
+ ldr r0, _08115618
+ movs r1, 0
+ bl CreateTask
+ ldr r4, _0811561C
+ adds r1, r4, 0
+ adds r1, 0xA4
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08115620
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0x6
+ strh r0, [r1, 0x14]
+ ldr r0, _08115624
+ ldr r2, _08115628
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1, 0x22]
+ ldr r0, _0811562C
+ movs r1, 0x1
+ bl CreateTask
+ adds r4, 0xA5
+ strb r0, [r4]
+ ldr r0, _08115630
+ bl SetMainCallback2
+_081155FE:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08115608: .4byte 0x04000208
+_0811560C: .4byte 0x04000200
+_08115610: .4byte REG_DISPSTAT
+_08115614: .4byte sub_8115124
+_08115618: .4byte sub_81156BC
+_0811561C: .4byte 0x02019000
+_08115620: .4byte gTasks
+_08115624: .4byte gSaveBlock1
+_08115628: .4byte 0x00000494
+_0811562C: .4byte sub_8115634
+_08115630: .4byte sub_81150FC
+ thumb_func_end sub_8115384
+
+ thumb_func_start sub_8115634
+sub_8115634: @ 8115634
+ push {r4-r6,lr}
+ ldr r0, _081156B8
+ adds r3, r0, 0
+ adds r3, 0x21
+ ldrb r1, [r3]
+ adds r2, r1, 0x1
+ strb r2, [r3]
+ adds r2, r0, 0
+ adds r2, 0x23
+ lsls r1, 24
+ lsrs r1, 24
+ adds r6, r0, 0
+ ldrb r2, [r2]
+ cmp r1, r2
+ bne _08115674
+ movs r0, 0
+ strb r0, [r3]
+ adds r2, r6, 0
+ adds r2, 0x22
+ ldrb r1, [r2]
+ ldrh r0, [r6, 0x24]
+ subs r0, r1
+ strh r0, [r6, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ bge _08115674
+ ldrb r1, [r2]
+ movs r2, 0xB4
+ lsls r2, 1
+ adds r0, r2, 0
+ subs r0, r1
+ strh r0, [r6, 0x24]
+_08115674:
+ adds r4, r6, 0
+ ldrh r0, [r4, 0x24]
+ bl Sin2
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r4, 0x24]
+ bl Cos2
+ lsls r0, 16
+ lsrs r1, r0, 16
+ lsls r0, r5, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _08115694
+ adds r0, 0xF
+_08115694:
+ lsls r0, 12
+ lsrs r5, r0, 16
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _081156A2
+ adds r0, 0xF
+_081156A2:
+ asrs r0, 4
+ strh r0, [r6, 0x32]
+ strh r0, [r6, 0x2C]
+ strh r5, [r6, 0x2E]
+ lsls r0, r5, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r6, 0x30]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081156B8: .4byte 0x02019000
+ thumb_func_end sub_8115634
+
+ thumb_func_start sub_81156BC
+sub_81156BC: @ 81156BC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl UpdatePaletteFade
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0
+ bne _08115716
+ ldr r2, _0811571C
+ ldrh r0, [r2]
+ movs r5, 0x90
+ lsls r5, 6
+ adds r1, r5, 0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08115720
+ ldr r2, _08115724
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _08115728
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r3, [r0, 0x14]
+ adds r0, r4, 0
+ bl sub_8116CAC
+ bl sub_8116CF8
+ bl sub_81185E8
+ movs r0, 0
+ bl sub_8117158
+ movs r0, 0x6
+ bl sub_81182F8
+ ldr r1, _0811572C
+ ldr r2, _08115730
+ adds r0, r4, 0
+ movs r3, 0x3
+ bl sub_8116C34
+_08115716:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811571C: .4byte REG_BLDCNT
+_08115720: .4byte REG_BLDALPHA
+_08115724: .4byte 0x00000808
+_08115728: .4byte gTasks
+_0811572C: .4byte sub_81159BC
+_08115730: .4byte 0x0000ffff
+ thumb_func_end sub_81156BC
+
+ thumb_func_start sub_8115734
+sub_8115734: @ 8115734
+ 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 r0, _08115770
+ bl sub_814AAF8
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08115774
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r1, _08115778
+ adds r0, r4, 0
+ bl sub_80F914C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08115770: .4byte 0x00002d9e
+_08115774: .4byte gUnknown_081C41E3
+_08115778: .4byte gUnknown_083F8EBC
+ thumb_func_end sub_8115734
+
+ thumb_func_start sub_811577C
+sub_811577C: @ 811577C
+ 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, _081157A4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _081157A8
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081157A4: .4byte gTasks
+_081157A8: .4byte sub_81159BC
+ thumb_func_end sub_811577C
+
+ thumb_func_start sub_81157AC
+sub_81157AC: @ 81157AC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _081157CC
+ adds r0, 0xA5
+ ldrb r0, [r0]
+ bl DestroyTask
+ adds r0, r4, 0
+ bl sub_8116AB0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081157CC: .4byte 0x02019000
+ thumb_func_end sub_81157AC
+
+ thumb_func_start sub_81157D0
+sub_81157D0: @ 81157D0
+ push {r4-r7,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xF
+ bhi _081158C8
+ lsls r0, r4, 2
+ ldr r1, _081157E8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081157E8: .4byte _081157EC
+ .align 2, 0
+_081157EC:
+ .4byte _0811582C
+ .4byte _08115848
+ .4byte _08115848
+ .4byte _08115848
+ .4byte _08115848
+ .4byte _08115884
+ .4byte _081158C8
+ .4byte _081158C8
+ .4byte _081158C8
+ .4byte _081158C8
+ .4byte _08115884
+ .4byte _081158C8
+ .4byte _081158C8
+ .4byte _081158C8
+ .4byte _081158C8
+ .4byte _08115884
+_0811582C:
+ ldr r0, _08115844
+ movs r1, 0x10
+ str r1, [sp]
+ movs r1, 0xD
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x7
+ bl sub_8124DDC
+ b _08115918
+ .align 2, 0
+_08115844: .4byte gBG2TilemapBuffer
+_08115848:
+ lsls r0, r4, 1
+ adds r0, r4
+ adds r0, 0xE
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r5, _0811587C
+ movs r0, 0x10
+ str r0, [sp]
+ movs r4, 0xD
+ str r4, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x7
+ bl sub_8124DDC
+ ldr r1, _08115880
+ movs r0, 0x3
+ str r0, [sp]
+ str r4, [sp, 0x4]
+ adds r0, r5, 0
+ adds r2, r7, 0
+ movs r3, 0x7
+ bl sub_8124E2C
+ b _08115918
+ .align 2, 0
+_0811587C: .4byte gBG2TilemapBuffer
+_08115880: .4byte 0x02018a32
+_08115884:
+ subs r0, r4, 0x1
+ movs r1, 0x5
+ bl __divsi3
+ lsls r1, r0, 1
+ adds r1, r0
+ adds r1, 0xA
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldr r5, _081158C0
+ movs r4, 0x10
+ str r4, [sp]
+ movs r0, 0xD
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x7
+ bl sub_8124DDC
+ ldr r1, _081158C4
+ str r4, [sp]
+ movs r0, 0x3
+ str r0, [sp, 0x4]
+ adds r0, r5, 0
+ movs r2, 0xE
+ adds r3, r6, 0
+ bl sub_8124E2C
+ b _08115918
+ .align 2, 0
+_081158C0: .4byte gBG2TilemapBuffer
+_081158C4: .4byte 0x02018a80
+_081158C8:
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ adds r1, 0xE
+ lsls r1, 24
+ lsrs r7, r1, 24
+ subs r0, r4, 0x1
+ movs r1, 0x5
+ bl __divsi3
+ lsls r1, r0, 1
+ adds r1, r0
+ adds r1, 0x7
+ lsls r1, 24
+ lsrs r6, r1, 24
+ ldr r4, _08115920
+ movs r0, 0x10
+ str r0, [sp]
+ movs r0, 0xD
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0xE
+ movs r3, 0x7
+ bl sub_8124DDC
+ ldr r1, _08115924
+ movs r0, 0x3
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ adds r2, r7, 0
+ adds r3, r6, 0
+ bl sub_8124E2C
+_08115918:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08115920: .4byte gBG2TilemapBuffer
+_08115924: .4byte 0x02018a20
+ thumb_func_end sub_81157D0
+
+ thumb_func_start sub_8115928
+sub_8115928: @ 8115928
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ cmp r1, 0
+ bne _0811594C
+ ldr r1, _08115948
+ lsls r4, r5, 2
+ adds r0, r4, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x10]
+ bl sub_811829C
+ b _08115960
+ .align 2, 0
+_08115948: .4byte gTasks
+_0811594C:
+ ldr r0, _08115974
+ ldrb r1, [r0, 0x1A]
+ lsls r1, 28
+ lsrs r1, 28
+ adds r0, 0x1B
+ adds r1, r0
+ ldrb r0, [r1]
+ bl sub_811829C
+ lsls r4, r5, 2
+_08115960:
+ ldr r0, _08115978
+ adds r1, r4, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0x10]
+ bl sub_81157D0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08115974: .4byte 0x02019000
+_08115978: .4byte gTasks
+ thumb_func_end sub_8115928
+
+ thumb_func_start sub_811597C
+sub_811597C: @ 811597C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _081159B0
+ movs r6, 0
+ movs r1, 0x1
+ strh r1, [r5, 0x28]
+ ldr r1, _081159B4
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldrb r0, [r4, 0x10]
+ bl sub_81157D0
+ adds r1, r5, 0
+ adds r1, 0x23
+ movs r0, 0x2
+ strb r0, [r1]
+ adds r5, 0x21
+ strb r6, [r5]
+ ldr r0, _081159B8
+ str r0, [r4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081159B0: .4byte 0x02019000
+_081159B4: .4byte gTasks
+_081159B8: .4byte sub_8115E14
+ thumb_func_end sub_811597C
+
+ thumb_func_start sub_81159BC
+sub_81159BC: @ 81159BC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r3, _08115A10
+ ldr r1, [r3, 0x8]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08115A1C
+ movs r2, 0xB
+ ldr r5, _08115A14
+ adds r0, r5, 0
+ adds r0, 0xE4
+ ldr r0, [r0]
+ ands r1, r0
+ ldr r0, _08115A18
+ mov r12, r0
+ lsls r7, r6, 2
+ cmp r1, 0
+ beq _08115A5A
+ adds r4, r3, 0
+ adds r3, r5, 0
+ adds r3, 0x8
+_081159EA:
+ lsls r0, r2, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r2, r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0xD
+ bgt _08115A5A
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldr r1, [r4, 0x8]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _081159EA
+ b _08115A5A
+ .align 2, 0
+_08115A10: .4byte 0x02019000
+_08115A14: .4byte gUnknown_083F8C00
+_08115A18: .4byte gTasks
+_08115A1C:
+ movs r2, 0x6
+ ldr r5, _08115A88
+ adds r0, r5, 0
+ adds r0, 0x80
+ ldr r0, [r0]
+ ands r1, r0
+ ldr r0, _08115A8C
+ mov r12, r0
+ lsls r7, r6, 2
+ cmp r1, 0
+ beq _08115A5A
+ adds r4, r3, 0
+ adds r3, r5, 0
+ adds r3, 0x8
+_08115A38:
+ lsls r0, r2, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r2, r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0x9
+ bgt _08115A5A
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldr r1, [r4, 0x8]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _08115A38
+_08115A5A:
+ adds r4, r7, r6
+ lsls r4, 3
+ add r4, r12
+ movs r5, 0
+ strh r2, [r4, 0x10]
+ adds r0, r6, 0
+ bl sub_8116CAC
+ ldrb r0, [r4, 0x10]
+ bl sub_8117158
+ ldrb r0, [r4, 0x10]
+ bl sub_811829C
+ ldrb r0, [r4, 0x10]
+ bl sub_8116EF8
+ strh r5, [r4, 0xA]
+ ldr r0, _08115A90
+ str r0, [r4]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08115A88: .4byte gUnknown_083F8C00
+_08115A8C: .4byte gTasks
+_08115A90: .4byte sub_811597C
+ thumb_func_end sub_81159BC
+
+ thumb_func_start sub_8115A94
+sub_8115A94: @ 8115A94
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ movs r6, 0
+ movs r7, 0
+ ldr r1, _08115ADC
+ mov r0, sp
+ movs r2, 0x4
+ bl memcpy
+ ldrb r0, [r4]
+ mov r8, r0
+ cmp r5, 0
+ blt _08115B08
+ cmp r5, 0x1
+ bgt _08115AE0
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0x5
+ bl __modsi3
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r2, 0xF0
+ lsls r2, 20
+ adds r1, r0, r2
+ lsrs r7, r1, 24
+ cmp r0, 0
+ bne _08115B08
+ movs r6, 0x5
+ b _08115B08
+ .align 2, 0
+_08115ADC: .4byte gUnknown_083F8ECA
+_08115AE0:
+ cmp r5, 0x3
+ bgt _08115B08
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0x5
+ bl __divsi3
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ movs r2, 0x80
+ lsls r2, 19
+ adds r0, r1, r2
+ lsrs r7, r0, 24
+ cmp r1, 0
+ bne _08115B08
+ movs r6, 0x1
+_08115B08:
+ mov r1, sp
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r2, [r4]
+ adds r0, r2
+ strh r0, [r4]
+ lsls r1, r6, 24
+ asrs r3, r1, 24
+ lsls r0, 16
+ asrs r0, 16
+ lsls r2, r7, 24
+ cmp r0, r3
+ bge _08115B2A
+ asrs r0, r2, 24
+ strh r0, [r4]
+_08115B2A:
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ asrs r0, r2, 24
+ cmp r1, r0
+ ble _08115B36
+ strh r3, [r4]
+_08115B36:
+ mov r1, r8
+ lsls r0, r1, 24
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ asrs r0, 24
+ cmp r1, r0
+ bne _08115B48
+ movs r0, 0
+ b _08115B4A
+_08115B48:
+ movs r0, 0x1
+_08115B4A:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8115A94
+
+ thumb_func_start sub_8115B58
+sub_8115B58: @ 8115B58
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0
+ mov r8, r0
+ movs r5, 0
+ ldr r4, _08115D30
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08115B94
+ movs r5, 0x1
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, _08115D34
+ adds r0, r1
+ adds r0, 0x8
+ movs r1, 0
+ bl sub_8115A94
+ lsls r0, 24
+ cmp r0, 0
+ bne _08115B94
+ b _08115D20
+_08115B94:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08115BBA
+ movs r5, 0x1
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, _08115D34
+ adds r0, r1
+ adds r0, 0x8
+ movs r1, 0x1
+ bl sub_8115A94
+ lsls r0, 24
+ cmp r0, 0
+ bne _08115BBA
+ b _08115D20
+_08115BBA:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08115BE0
+ movs r5, 0x1
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, _08115D34
+ adds r0, r1
+ adds r0, 0x8
+ movs r1, 0x2
+ bl sub_8115A94
+ lsls r0, 24
+ cmp r0, 0
+ bne _08115BE0
+ b _08115D20
+_08115BE0:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08115C06
+ movs r5, 0x1
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, _08115D34
+ adds r0, r1
+ adds r0, 0x8
+ movs r1, 0x3
+ bl sub_8115A94
+ lsls r0, 24
+ cmp r0, 0
+ bne _08115C06
+ b _08115D20
+_08115C06:
+ cmp r5, 0
+ bne _08115C0C
+ b _08115D20
+_08115C0C:
+ ldr r0, _08115D38
+ lsls r6, r7, 2
+ adds r4, r6, r7
+ lsls r4, 3
+ adds r4, r0
+ ldrb r0, [r4, 0x10]
+ bl sub_8117158
+ adds r0, r7, 0
+ movs r1, 0
+ bl sub_8115928
+ mov r1, r8
+ strh r1, [r4, 0xA]
+ movs r0, 0x5
+ bl PlaySE
+ ldr r5, _08115D3C
+ ldr r1, _08115D40
+ adds r0, r5, 0
+ bl sub_8124D3C
+ adds r3, r5, 0
+ adds r3, 0xB8
+ ldrb r2, [r3]
+ movs r1, 0x7F
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3]
+ subs r3, 0xC
+ ldrb r2, [r3]
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3]
+ adds r2, r5, 0
+ adds r2, 0xA0
+ ldrb r0, [r2]
+ ands r1, r0
+ strb r1, [r2]
+ ldrb r0, [r4, 0x10]
+ bl sub_8116EF8
+ movs r4, 0
+ mov r12, r6
+ ldr r6, _08115D44
+ movs r2, 0x7C
+ negs r2, r2
+ adds r2, r5
+ mov r10, r2
+ movs r0, 0x8
+ adds r0, r6
+ mov r8, r0
+ ldr r1, _08115D48
+ mov r9, r1
+ ldr r2, _08115D4C
+ adds r5, r2, 0
+_08115C7C:
+ adds r0, r4, 0
+ adds r0, 0x29
+ add r0, r10
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, r0, r6
+ adds r2, r3, 0
+ adds r2, 0x40
+ add r0, r8
+ ldr r0, [r0]
+ ldr r0, [r0]
+ ldrh r1, [r0]
+ ldrh r2, [r2]
+ adds r1, r2
+ ands r1, r5
+ ldrh r2, [r3, 0x4]
+ mov r0, r9
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _08115C7C
+ ldr r0, _08115D38
+ mov r2, r12
+ adds r1, r2, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r3, [r1, 0x10]
+ subs r0, r3, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x3
+ bhi _08115D20
+ ldr r2, _08115D50
+ movs r0, 0x10
+ ldrsh r1, [r1, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x8
+ adds r0, r2
+ ldr r2, _08115D54
+ ldr r1, [r2, 0x8]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _08115D20
+ subs r0, r3, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ adds r0, r2, 0
+ add r0, r8
+ adds r0, 0x65
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08115D44
+ adds r3, r0, r1
+ adds r2, r3, 0
+ adds r2, 0x40
+ adds r1, 0x8
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r0, [r0]
+ ldrh r1, [r0, 0x4]
+ ldrh r2, [r2]
+ adds r1, r2
+ ldr r2, _08115D4C
+ adds r0, r2, 0
+ ands r1, r0
+ ldrh r2, [r3, 0x4]
+ ldr r0, _08115D48
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+_08115D20:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08115D30: .4byte gMain
+_08115D34: .4byte gUnknown_03004B28
+_08115D38: .4byte gTasks
+_08115D3C: .4byte 0x020190b8
+_08115D40: .4byte 0x0000ffff
+_08115D44: .4byte gSprites
+_08115D48: .4byte 0xfffffc00
+_08115D4C: .4byte 0x000003ff
+_08115D50: .4byte gUnknown_083F8C00
+_08115D54: .4byte 0x02019000
+ thumb_func_end sub_8115B58
+
+ thumb_func_start sub_8115D58
+sub_8115D58: @ 8115D58
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _08115D70
+ movs r0, 0xFF
+ strh r0, [r1, 0x28]
+ ldrb r0, [r1, 0x19]
+ cmp r0, 0x1
+ bne _08115D74
+ adds r2, r1, 0
+ adds r2, 0x23
+ b _08115D7A
+ .align 2, 0
+_08115D70: .4byte 0x02019000
+_08115D74:
+ adds r2, r1, 0
+ adds r2, 0x23
+ movs r0, 0
+_08115D7A:
+ strb r0, [r2]
+ adds r1, 0x21
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _08115D98
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x20
+ strh r1, [r0, 0xA]
+ ldr r1, _08115D9C
+ str r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08115D98: .4byte gTasks
+_08115D9C: .4byte sub_8115ECC
+ thumb_func_end sub_8115D58
+
+ thumb_func_start sub_8115DA0
+sub_8115DA0: @ 8115DA0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08115E08
+ ldrb r2, [r4, 0x1A]
+ lsls r2, 28
+ lsrs r2, 28
+ adds r5, r4, 0
+ adds r5, 0x1B
+ adds r2, r5
+ ldr r3, _08115E0C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r6, r1, r3
+ ldrh r0, [r6, 0x10]
+ strb r0, [r2]
+ ldrb r0, [r4, 0x1A]
+ lsls r0, 28
+ lsrs r0, 28
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_8117380
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0xC]
+ ldrb r0, [r4, 0x1A]
+ lsls r0, 28
+ lsrs r0, 28
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_811829C
+ ldrb r1, [r4, 0x19]
+ ldrh r0, [r6, 0x22]
+ subs r0, r1
+ strh r0, [r6, 0x22]
+ lsls r0, 16
+ cmp r0, 0
+ bge _08115DF6
+ movs r0, 0
+ strh r0, [r6, 0x22]
+_08115DF6:
+ ldrh r0, [r6, 0x22]
+ bl sub_81180F4
+ ldr r0, _08115E10
+ str r0, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08115E08: .4byte 0x02019000
+_08115E0C: .4byte gTasks
+_08115E10: .4byte sub_8115D58
+ thumb_func_end sub_8115DA0
+
+ thumb_func_start sub_8115E14
+sub_8115E14: @ 8115E14
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ bl sub_8115B58
+ ldr r1, _08115E3C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1E
+ beq _08115E4A
+ cmp r0, 0x1E
+ bgt _08115E40
+ cmp r0, 0
+ beq _08115E46
+ b _08115E5E
+ .align 2, 0
+_08115E3C: .4byte gTasks
+_08115E40:
+ cmp r0, 0x3B
+ beq _08115E58
+ b _08115E5E
+_08115E46:
+ ldrb r0, [r4, 0x10]
+ b _08115E4C
+_08115E4A:
+ movs r0, 0
+_08115E4C:
+ bl sub_81157D0
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _08115E6E
+_08115E58:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _08115E6E
+_08115E5E:
+ ldr r0, _08115EA8
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x1
+ strh r0, [r1, 0xA]
+_08115E6E:
+ ldr r0, _08115EAC
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08115EC2
+ ldr r3, _08115EB0
+ ldr r2, _08115EB4
+ ldr r1, _08115EA8
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r0, 0x10
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x8
+ adds r0, r2
+ ldr r1, [r3, 0x8]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08115EB8
+ movs r0, 0x16
+ bl PlaySE
+ b _08115EC2
+ .align 2, 0
+_08115EA8: .4byte gTasks
+_08115EAC: .4byte gMain
+_08115EB0: .4byte 0x02019000
+_08115EB4: .4byte gUnknown_083F8C00
+_08115EB8:
+ movs r0, 0x5F
+ bl m4aSongNumStart
+ ldr r0, _08115EC8
+ str r0, [r4]
+_08115EC2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08115EC8: .4byte sub_8115DA0
+ thumb_func_end sub_8115E14
+
+ thumb_func_start sub_8115ECC
+sub_8115ECC: @ 8115ECC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08115F20
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0xA]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ ble _08115F34
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _08115EF8
+ ldr r1, _08115F24
+ ldrh r0, [r1]
+ adds r0, 0x2
+ strh r0, [r1]
+_08115EF8:
+ ldr r1, _08115F28
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x4
+ strh r0, [r1, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x68
+ bne _08115F4C
+ ldr r2, _08115F2C
+ adds r0, r1, 0
+ adds r0, 0x55
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _08115F30
+ str r1, [r0]
+ b _08115F4C
+ .align 2, 0
+_08115F20: .4byte gTasks
+_08115F24: .4byte gSpriteCoordOffsetX
+_08115F28: .4byte 0x02019000
+_08115F2C: .4byte gSprites
+_08115F30: .4byte SpriteCallbackDummy
+_08115F34:
+ movs r0, 0x1
+ movs r1, 0xFF
+ bl sub_8117AA8
+ movs r0, 0x1
+ movs r1, 0xFF
+ bl sub_8117C60
+ ldr r0, _08115F54
+ str r0, [r4]
+ movs r0, 0
+ strh r0, [r4, 0xA]
+_08115F4C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08115F54: .4byte sub_8116100
+ thumb_func_end sub_8115ECC
+
+ thumb_func_start sub_8115F58
+sub_8115F58: @ 8115F58
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, _08115F74
+ ldrb r2, [r0, 0x2]
+ adds r4, r0, 0
+ cmp r2, 0x2
+ bgt _08115F78
+ cmp r2, 0x1
+ bge _08115F7E
+ b _08116048
+ .align 2, 0
+_08115F74: .4byte 0x02019000
+_08115F78:
+ cmp r2, 0x3
+ beq _08115FE0
+ b _08116048
+_08115F7E:
+ ldr r0, _08115FA8
+ ldrb r0, [r0, 0x2]
+ subs r0, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bhi _08115FB0
+ cmp r3, 0xB
+ bls _08115F98
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0811605E
+_08115F98:
+ ldr r0, _08115FAC
+ ldrb r1, [r4, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ lsrs r0, 1
+ b _081160F4
+ .align 2, 0
+_08115FA8: .4byte gLocalTime
+_08115FAC: .4byte gUnknown_083F8DF4
+_08115FB0:
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08115FCC
+ ldr r0, _08115FC8
+ ldrb r1, [r4, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ lsrs r0, 1
+ b _081160F4
+ .align 2, 0
+_08115FC8: .4byte gUnknown_083F8DF4
+_08115FCC:
+ ldr r0, _08115FDC
+ ldrb r1, [r4, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ b _081160F4
+ .align 2, 0
+_08115FDC: .4byte gUnknown_083F8DF4
+_08115FE0:
+ ldr r0, _0811600C
+ ldrb r0, [r0, 0x2]
+ subs r0, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bhi _08116014
+ cmp r3, 0x5
+ bls _08115FFA
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0811605E
+_08115FFA:
+ ldr r0, _08116010
+ ldrb r1, [r4, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ lsrs r0, 1
+ b _081160F4
+ .align 2, 0
+_0811600C: .4byte gLocalTime
+_08116010: .4byte gUnknown_083F8DF4
+_08116014:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08116034
+ cmp r3, 0x6
+ bls _08116034
+ ldr r0, _08116030
+ ldrb r1, [r4, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ lsrs r0, 2
+ b _081160F4
+ .align 2, 0
+_08116030: .4byte gUnknown_083F8DF4
+_08116034:
+ ldr r0, _08116044
+ ldrb r1, [r4, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ lsrs r0, 1
+ b _081160F4
+ .align 2, 0
+_08116044: .4byte gUnknown_083F8DF4
+_08116048:
+ ldr r0, _08116064
+ ldrb r0, [r0, 0x2]
+ subs r0, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bhi _0811607C
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08116068
+_0811605E:
+ movs r0, 0x1
+ b _081160F4
+ .align 2, 0
+_08116064: .4byte gLocalTime
+_08116068:
+ ldr r0, _08116078
+ ldrb r1, [r4, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ lsrs r0, 1
+ b _081160F4
+ .align 2, 0
+_08116078: .4byte gUnknown_083F8DF4
+_0811607C:
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _081160B0
+ cmp r3, 0xC
+ bls _0811609C
+ ldr r0, _08116098
+ ldrb r1, [r4, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ lsrs r0, 1
+ b _081160F4
+ .align 2, 0
+_08116098: .4byte gUnknown_083F8DF4
+_0811609C:
+ ldr r0, _081160AC
+ ldrb r1, [r4, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ b _081160F4
+ .align 2, 0
+_081160AC: .4byte gUnknown_083F8DF4
+_081160B0:
+ movs r0, 0x80
+ lsls r0, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _081160E4
+ cmp r3, 0xC
+ bls _081160D0
+ ldr r0, _081160CC
+ ldrb r1, [r4, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x2]
+ b _081160F4
+ .align 2, 0
+_081160CC: .4byte gUnknown_083F8DF4
+_081160D0:
+ ldr r0, _081160E0
+ ldrb r1, [r4, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ b _081160F4
+ .align 2, 0
+_081160E0: .4byte gUnknown_083F8DF4
+_081160E4:
+ ldr r0, _081160FC
+ ldrb r1, [r4, 0x4]
+ lsls r1, 30
+ lsrs r1, 25
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ lsls r0, 25
+ lsrs r0, 24
+_081160F4:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081160FC: .4byte gUnknown_083F8DF4
+ thumb_func_end sub_8115F58
+
+ thumb_func_start sub_8116100
+sub_8116100: @ 8116100
+ 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 r9, r0
+ movs r4, 0
+ ldr r1, _08116188
+ mov r0, sp
+ movs r2, 0x8
+ bl memcpy
+ bl Random
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r0, r7, 0
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r3, _0811618C
+ ldr r1, _08116190
+ mov r2, r9
+ lsls r0, r2, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ ldrh r2, [r0, 0x14]
+ adds r1, r3, 0
+ adds r1, 0x7C
+ strb r2, [r1]
+ adds r1, 0x3
+ strb r4, [r1]
+ subs r1, 0x1
+ strb r4, [r1]
+ subs r1, 0x1
+ strb r4, [r1]
+ ldrh r0, [r0, 0x18]
+ adds r1, r7, 0
+ bl sub_8115F58
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r1, r4, 24
+ adds r0, r7, 0
+ bl __modsi3
+ lsrs r4, 25
+ subs r0, r4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08116194
+ ldrb r0, [r0, 0x2]
+ lsls r0, 24
+ asrs r0, 24
+ movs r5, 0x1
+ cmp r0, 0xC
+ bgt _08116180
+ movs r5, 0
+_08116180:
+ cmp r6, 0x4F
+ bhi _08116198
+ lsls r0, r5, 25
+ b _081161A2
+ .align 2, 0
+_08116188: .4byte gUnknown_083F8ECE
+_0811618C: .4byte 0x02019000
+_08116190: .4byte gTasks
+_08116194: .4byte gLocalTime
+_08116198:
+ lsls r1, r5, 24
+ asrs r1, 24
+ movs r0, 0x1
+ subs r0, r1
+ lsls r0, 25
+_081161A2:
+ lsrs r5, r0, 24
+ ldr r6, _081162D8
+ ldrb r0, [r6, 0x4]
+ lsls r0, 30
+ mov r10, r0
+ lsrs r0, 25
+ ldr r1, _081162DC
+ adds r0, r1
+ lsls r4, 24
+ asrs r4, 24
+ ldrh r0, [r0, 0x1A]
+ adds r4, r0
+ adds r0, r6, 0
+ adds r0, 0x80
+ strh r4, [r0]
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ bl __floatsisf
+ cmp r4, 0
+ bge _081161D4
+ ldr r1, _081162E0
+ bl __addsf3
+_081161D4:
+ ldr r1, _081162E4
+ bl __divsf3
+ bl __fixunssfsi
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r0, r4, 1
+ adds r0, r4
+ mov r8, r0
+ adds r0, r6, 0
+ adds r0, 0x82
+ mov r2, r8
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ movs r0, 0x1
+ ands r0, r7
+ lsls r1, r5, 24
+ asrs r1, 24
+ adds r0, r1
+ lsls r0, 1
+ add r0, sp
+ movs r1, 0
+ ldrsh r4, [r0, r1]
+ adds r0, r4, 0
+ bl __floatsisf
+ cmp r4, 0
+ bge _0811621A
+ ldr r1, _081162E0
+ bl __addsf3
+_0811621A:
+ ldr r2, _081162E8
+ str r0, [r2]
+ adds r7, r6, 0
+ adds r7, 0x8C
+ mov r1, r10
+ lsrs r0, r1, 25
+ ldr r2, _081162DC
+ adds r0, r2
+ movs r1, 0x18
+ ldrsh r4, [r0, r1]
+ adds r0, r4, 0
+ bl __floatsisf
+ adds r5, r0, 0
+ cmp r4, 0
+ bge _08116242
+ ldr r1, _081162E0
+ bl __addsf3
+ adds r5, r0, 0
+_08116242:
+ str r5, [r7]
+ adds r7, r6, 0
+ adds r7, 0x90
+ ldr r1, _081162EC
+ adds r0, r5, 0
+ bl __mulsf3
+ adds r1, r5, 0
+ bl __subsf3
+ adds r5, r0, 0
+ mov r2, r8
+ lsls r0, r2, 16
+ asrs r4, r0, 16
+ adds r0, r4, 0
+ bl __floatsisf
+ adds r2, r0, 0
+ cmp r4, 0
+ bge _08116272
+ ldr r1, _081162E0
+ bl __addsf3
+ adds r2, r0, 0
+_08116272:
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl __divsf3
+ str r0, [r7]
+ adds r1, r6, 0
+ adds r1, 0x94
+ ldr r0, _081162F0
+ str r0, [r1]
+ adds r1, 0x8
+ ldr r0, _081162F4
+ str r0, [r1]
+ adds r5, r6, 0
+ adds r5, 0x98
+ adds r0, r4, 0
+ bl __floatsisf
+ adds r2, r0, 0
+ cmp r4, 0
+ bge _081162A2
+ ldr r1, _081162E0
+ bl __addsf3
+ adds r2, r0, 0
+_081162A2:
+ ldr r0, _081162F8
+ adds r1, r2, 0
+ bl __divsf3
+ bl __negsf2
+ str r0, [r5]
+ adds r1, r6, 0
+ adds r1, 0xA0
+ ldr r0, _081162FC
+ str r0, [r1]
+ ldr r1, _08116300
+ mov r2, r9
+ lsls r0, r2, 2
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08116304
+ str r1, [r0]
+ 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
+_081162D8: .4byte 0x02019000
+_081162DC: .4byte gUnknown_083F8DF4
+_081162E0: .4byte 0x47800000
+_081162E4: .4byte 0x40a00000
+_081162E8: .4byte 0x02019088
+_081162EC: .4byte 0x3f000000
+_081162F0: .4byte 0x42880000
+_081162F4: .4byte 0x00000000
+_081162F8: .4byte 0x41000000
+_081162FC: .4byte 0x42100000
+_08116300: .4byte gTasks
+_08116304: .4byte sub_8116308
+ thumb_func_end sub_8116100
+
+ thumb_func_start sub_8116308
+sub_8116308: @ 8116308
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _08116368
+ ldrb r1, [r3, 0x3]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r3, 0x3]
+ adds r2, r3, 0
+ adds r2, 0x7C
+ adds r1, r3, 0
+ adds r1, 0x3C
+ ldrb r2, [r2]
+ adds r1, r2
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ ldr r2, _0811636C
+ adds r1, r2
+ str r1, [r3, 0x38]
+ ldr r2, _08116370
+ str r2, [r1, 0x1C]
+ ldr r1, _08116374
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ ldrh r1, [r4, 0x14]
+ adds r1, 0x1
+ strh r1, [r4, 0x14]
+ ldrh r0, [r4, 0x18]
+ adds r0, 0x1
+ strh r0, [r4, 0x18]
+ movs r0, 0x6
+ subs r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_81182F8
+ movs r0, 0x5C
+ bl m4aSongNumStart
+ ldr r0, _08116378
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08116368: .4byte 0x02019000
+_0811636C: .4byte gSprites
+_08116370: .4byte sub_81191F4
+_08116374: .4byte gTasks
+_08116378: .4byte sub_811637C
+ thumb_func_end sub_8116308
+
+ thumb_func_start sub_811637C
+sub_811637C: @ 811637C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _081163B0
+ adds r0, r4, 0
+ adds r0, 0x7D
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08116464
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _081163B4
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08116464
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x21
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r4, 0x3]
+ b _08116464
+ .align 2, 0
+_081163B0: .4byte 0x02019000
+_081163B4:
+ ldr r2, _08116428
+ lsls r1, r5, 2
+ adds r0, r1, r5
+ lsls r0, 3
+ adds r6, r0, r2
+ movs r2, 0xA
+ ldrsh r0, [r6, r2]
+ adds r7, r1, 0
+ cmp r0, 0
+ bne _08116400
+ adds r0, r4, 0
+ adds r0, 0x7E
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_8116D54
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r4, 0x1A]
+ lsls r1, 28
+ lsrs r1, 28
+ adds r2, r4, 0
+ adds r2, 0x1B
+ adds r1, r2
+ ldrb r1, [r1]
+ bl sub_8116E5C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x12]
+ cmp r0, 0x1
+ bne _08116400
+ adds r0, r4, 0
+ adds r0, 0xB8
+ movs r1, 0x80
+ lsls r1, 5
+ bl sub_8124CE8
+_08116400:
+ ldr r0, _08116428
+ adds r1, r7, r5
+ lsls r1, 3
+ adds r4, r1, r0
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3C
+ bgt _08116430
+ ldr r0, _0811642C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08116420
+ movs r0, 0x3C
+ strh r0, [r4, 0xA]
+_08116420:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _08116464
+ .align 2, 0
+_08116428: .4byte gTasks
+_0811642C: .4byte gMain
+_08116430:
+ ldr r1, _0811646C
+ ldrb r0, [r1, 0x1A]
+ lsls r0, 28
+ lsrs r0, 28
+ adds r1, 0x1B
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8117158
+ ldrh r1, [r4, 0x20]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_8117AA8
+ ldrb r1, [r4, 0x14]
+ subs r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_8117C60
+ movs r0, 0x20
+ strh r0, [r4, 0xA]
+ ldr r0, _08116470
+ str r0, [r4]
+_08116464:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811646C: .4byte 0x02019000
+_08116470: .4byte sub_8116474
+ thumb_func_end sub_811637C
+
+ thumb_func_start sub_8116474
+sub_8116474: @ 8116474
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _081164C8
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0xA]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ ble _081164DC
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _081164A0
+ ldr r1, _081164CC
+ ldrh r0, [r1]
+ subs r0, 0x2
+ strh r0, [r1]
+_081164A0:
+ ldr r1, _081164D0
+ ldrh r0, [r1, 0x26]
+ subs r0, 0x4
+ strh r0, [r1, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x68
+ bne _08116504
+ ldr r2, _081164D4
+ adds r0, r1, 0
+ adds r0, 0x55
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _081164D8
+ str r1, [r0]
+ b _08116504
+ .align 2, 0
+_081164C8: .4byte gTasks
+_081164CC: .4byte gSpriteCoordOffsetX
+_081164D0: .4byte 0x02019000
+_081164D4: .4byte gSprites
+_081164D8: .4byte sub_81184CC
+_081164DC:
+ ldrh r0, [r4, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8117D68
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ bne _081164F2
+ movs r0, 0x79
+ b _081164F4
+_081164F2:
+ movs r0, 0x3D
+_081164F4:
+ strh r0, [r4, 0xA]
+ ldr r0, _0811650C
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08116510
+ str r0, [r1]
+_08116504:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811650C: .4byte gTasks
+_08116510: .4byte sub_8116514
+ thumb_func_end sub_8116474
+
+ thumb_func_start sub_8116514
+sub_8116514: @ 8116514
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _08116564
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0xA]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08116584
+ movs r0, 0xA
+ ldrsh r1, [r4, r0]
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _0811653E
+ adds r0, 0xF
+_0811653E:
+ asrs r0, 4
+ lsls r0, 4
+ subs r0, r1, r0
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ beq _08116568
+ cmp r0, 0x8
+ bne _08116590
+ movs r0, 0
+ movs r1, 0xFF
+ bl sub_8117AA8
+ movs r0, 0
+ movs r1, 0xFF
+ bl sub_8117C60
+ b _08116590
+ .align 2, 0
+_08116564: .4byte gTasks
+_08116568:
+ ldrh r1, [r4, 0x20]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_8117AA8
+ ldrb r1, [r4, 0x14]
+ subs r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_8117C60
+ b _08116590
+_08116584:
+ ldr r1, _08116598
+ adds r0, r2, 0
+ movs r2, 0x1E
+ movs r3, 0
+ bl sub_8116C34
+_08116590:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08116598: .4byte sub_8116638
+ thumb_func_end sub_8116514
+
+ thumb_func_start sub_811659C
+sub_811659C: @ 811659C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _081165F4
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08116600
+ cmp r0, 0
+ blt _08116600
+ cmp r0, 0x2
+ bgt _08116600
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ cmp r0, 0
+ beq _08116624
+ movs r0, 0x1D
+ bl sub_8053108
+ ldrh r1, [r4, 0x1E]
+ adds r1, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r0, r1
+ bcs _081165E4
+ movs r0, 0x1E
+ ldrsh r1, [r4, r0]
+ movs r0, 0x1D
+ bl sav12_xor_set
+_081165E4:
+ ldr r1, _081165F8
+ ldr r2, _081165FC
+ adds r0, r5, 0
+ movs r3, 0x3
+ bl sub_8116C34
+ b _08116624
+ .align 2, 0
+_081165F4: .4byte gTasks
+_081165F8: .4byte sub_811677C
+_081165FC: .4byte 0x0000ffff
+_08116600:
+ bl IsSEPlaying
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _08116624
+ ldr r1, _0811662C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0x1E]
+ ldr r1, _08116630
+ ldr r2, _08116634
+ adds r0, r5, 0
+ movs r3, 0x3
+ bl sub_8116C34
+_08116624:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811662C: .4byte gTasks
+_08116630: .4byte sub_81167F4
+_08116634: .4byte 0x0000ffff
+ thumb_func_end sub_811659C
+
+ thumb_func_start sub_8116638
+sub_8116638: @ 8116638
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _08116678
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x12
+ ldrsh r1, [r0, r2]
+ cmp r1, 0
+ beq _081166A8
+ cmp r1, 0
+ blt _081166A8
+ cmp r1, 0x2
+ bgt _081166A8
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0xC
+ bne _08116684
+ ldr r0, _0811667C
+ bl PlayFanfare
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08116680
+ b _0811669A
+ .align 2, 0
+_08116678: .4byte gTasks
+_0811667C: .4byte 0x00000185
+_08116680: .4byte gUnknown_081C41A5
+_08116684:
+ movs r0, 0xC3
+ lsls r0, 1
+ bl PlayFanfare
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _081166A4
+_0811669A:
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ b _081166C4
+ .align 2, 0
+_081166A4: .4byte gUnknown_081C4199
+_081166A8:
+ movs r0, 0x20
+ bl m4aSongNumStart
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _081166DC
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+_081166C4:
+ ldr r1, _081166E0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xA]
+ ldr r1, _081166E4
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081166DC: .4byte gUnknown_081C41AE
+_081166E0: .4byte gTasks
+_081166E4: .4byte sub_811659C
+ thumb_func_end sub_8116638
+
+ thumb_func_start sub_81166E8
+sub_81166E8: @ 81166E8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _0811670C
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r0, 0x16
+ ldrsh r5, [r4, r0]
+ cmp r5, 0
+ beq _08116710
+ cmp r5, 0x3
+ beq _08116740
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ b _08116748
+ .align 2, 0
+_0811670C: .4byte gTasks
+_08116710:
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+ movs r0, 0x15
+ bl m4aSongNumStart
+ ldrh r0, [r4, 0x22]
+ bl sub_81180F4
+ movs r2, 0x22
+ ldrsh r1, [r4, r2]
+ ldr r0, _08116730
+ cmp r1, r0
+ ble _08116734
+ strh r5, [r4, 0xA]
+ b _0811674A
+ .align 2, 0
+_08116730: .4byte 0x0000270e
+_08116734:
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0x16]
+ adds r0, 0x1
+ b _08116748
+_08116740:
+ movs r0, 0x15
+ bl m4aSongNumStop
+ movs r0, 0
+_08116748:
+ strh r0, [r4, 0x16]
+_0811674A:
+ ldr r0, _08116770
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08116768
+ ldr r1, _08116774
+ ldr r2, _08116778
+ adds r0, r6, 0
+ movs r3, 0x3
+ bl sub_8116C34
+_08116768:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08116770: .4byte gTasks
+_08116774: .4byte sub_81167F4
+_08116778: .4byte 0x0000ffff
+ thumb_func_end sub_81166E8
+
+ thumb_func_start sub_811677C
+sub_811677C: @ 811677C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _081167DC
+ ldr r6, _081167E0
+ ldrb r2, [r6, 0x19]
+ ldr r1, _081167E4
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ adds r1, r2, 0
+ muls r1, r0
+ adds r0, r3, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r5, _081167E8
+ ldr r1, _081167EC
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ ldrb r1, [r6, 0x19]
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ muls r0, r1
+ movs r1, 0
+ strh r0, [r4, 0xA]
+ strh r1, [r4, 0x16]
+ ldr r0, _081167F0
+ str r0, [r4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081167DC: .4byte gStringVar1
+_081167E0: .4byte 0x02019000
+_081167E4: .4byte gTasks
+_081167E8: .4byte gStringVar4
+_081167EC: .4byte gUnknown_081C41BD
+_081167F0: .4byte sub_81166E8
+ thumb_func_end sub_811677C
+
+ thumb_func_start sub_81167F4
+sub_81167F4: @ 81167F4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r4, _08116868
+ ldr r1, _0811686C
+ adds r0, r4, 0
+ bl sub_8124D3C
+ adds r3, r4, 0
+ adds r3, 0xB8
+ ldrb r2, [r3]
+ movs r1, 0x7F
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3]
+ subs r3, 0xC
+ ldrb r2, [r3]
+ adds r0, r1, 0
+ ands r0, r2
+ strb r0, [r3]
+ adds r2, r4, 0
+ adds r2, 0xA0
+ ldrb r0, [r2]
+ ands r1, r0
+ strb r1, [r2]
+ ldr r6, _08116870
+ ldr r2, _08116874
+ ldr r0, _08116878
+ lsls r3, r5, 2
+ adds r3, r5
+ lsls r3, 3
+ adds r3, r0
+ movs r0, 0x20
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r4, r0
+ subs r4, 0x75
+ ldrb r1, [r4]
+ 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
+ strb r1, [r0]
+ ldr r0, _0811687C
+ str r0, [r3]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08116868: .4byte 0x020190b8
+_0811686C: .4byte 0x0000ffff
+_08116870: .4byte gSprites
+_08116874: .4byte gUnknown_083F8C00
+_08116878: .4byte gTasks
+_0811687C: .4byte sub_8116880
+ thumb_func_end sub_81167F4
+
+ thumb_func_start sub_8116880
+sub_8116880: @ 8116880
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ ldr r1, _08116954
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ strh r5, [r0, 0x10]
+ ldr r4, _08116958
+ ldrb r0, [r4, 0x1A]
+ lsls r0, 28
+ lsrs r0, 28
+ adds r1, r4, 0
+ adds r1, 0x1B
+ adds r0, r1
+ strb r2, [r0]
+ movs r0, 0
+ bl sub_8117158
+ ldr r3, _0811695C
+ adds r0, r4, 0
+ adds r0, 0x6C
+ ldrb r1, [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]
+ adds r7, r3, 0
+ movs r0, 0x3C
+ adds r0, r4
+ mov r10, r0
+ movs r1, 0x8
+ adds r1, r7
+ mov r8, r1
+ ldr r0, _08116960
+ mov r9, r0
+ ldr r1, _08116964
+ mov r12, r1
+_081168E4:
+ adds r0, r5, 0
+ adds r0, 0x29
+ add r0, r10
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, r0, r7
+ adds r2, r3, 0
+ adds r2, 0x40
+ add r0, r8
+ ldr r0, [r0]
+ ldr r0, [r0]
+ ldrh r1, [r0]
+ ldrh r2, [r2]
+ adds r1, r2
+ mov r0, r12
+ ands r1, r0
+ ldrh r2, [r3, 0x4]
+ mov r0, r9
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _081168E4
+ ldr r0, _08116954
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r2, r1, r0
+ movs r1, 0x22
+ ldrsh r0, [r2, r1]
+ ldrb r4, [r4, 0x19]
+ cmp r0, r4
+ blt _081169BC
+ movs r1, 0x14
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x6
+ bne _08116970
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08116968
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r1, _0811696C
+ b _08116992
+ .align 2, 0
+_08116954: .4byte gTasks
+_08116958: .4byte 0x02019000
+_0811695C: .4byte gSprites
+_08116960: .4byte 0xfffffc00
+_08116964: .4byte 0x000003ff
+_08116968: .4byte gUnknown_081C41F1
+_0811696C: .4byte dp01t_12_3_battle_menu
+_08116970:
+ movs r0, 0x22
+ ldrsh r1, [r2, r0]
+ ldr r0, _081169A0
+ cmp r1, r0
+ bne _081169B0
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _081169A4
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r1, _081169A8
+_08116992:
+ ldr r2, _081169AC
+ adds r0, r6, 0
+ movs r3, 0x3
+ bl sub_8116C34
+ b _081169DE
+ .align 2, 0
+_081169A0: .4byte 0x0000270f
+_081169A4: .4byte gUnknown_081C4231
+_081169A8: .4byte sub_8115734
+_081169AC: .4byte 0x0000ffff
+_081169B0:
+ ldr r0, _081169B8
+ str r0, [r2]
+ b _081169DE
+ .align 2, 0
+_081169B8: .4byte sub_8115734
+_081169BC:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _081169EC
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r1, _081169F0
+ adds r0, r6, 0
+ movs r2, 0x3C
+ movs r3, 0x3
+ bl sub_8116C34
+_081169DE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081169EC: .4byte gUnknown_081C41D2
+_081169F0: .4byte sub_81157AC
+ thumb_func_end sub_8116880
+
+ thumb_func_start dp01t_12_3_battle_menu
+dp01t_12_3_battle_menu: @ 81169F4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r1, _08116A84
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ strh r4, [r0, 0x14]
+ adds r0, r5, 0
+ bl sub_8116CAC
+ bl sub_8116CF8
+ bl sub_81185E8
+ movs r0, 0
+ bl sub_8117158
+ movs r0, 0x6
+ bl sub_81182F8
+ ldr r7, _08116A88
+ ldr r3, _08116A8C
+ movs r6, 0x5
+ negs r6, r6
+_08116A2A:
+ adds r0, r4, 0x7
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r6, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xB
+ bls _08116A2A
+ ldr r1, _08116A84
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r0, 0x22
+ ldrsh r1, [r2, r0]
+ ldr r0, _08116A90
+ cmp r1, r0
+ bne _08116AA0
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08116A94
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r1, _08116A98
+ ldr r2, _08116A9C
+ adds r0, r5, 0
+ movs r3, 0x3
+ bl sub_8116C34
+ b _08116AA4
+ .align 2, 0
+_08116A84: .4byte gTasks
+_08116A88: .4byte gSprites
+_08116A8C: .4byte 0x0201903c
+_08116A90: .4byte 0x0000270f
+_08116A94: .4byte gUnknown_081C4231
+_08116A98: .4byte sub_8115734
+_08116A9C: .4byte 0x0000ffff
+_08116AA0:
+ ldr r0, _08116AAC
+ str r0, [r2]
+_08116AA4:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08116AAC: .4byte sub_8115734
+ thumb_func_end dp01t_12_3_battle_menu
+
+ thumb_func_start sub_8116AB0
+sub_8116AB0: @ 8116AB0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _08116AF0
+ ldr r1, _08116AF4
+ adds r0, r4, 0
+ bl sub_8124D3C
+ adds r0, r4, 0
+ bl sub_8124918
+ ldr r1, _08116AF8
+ ldr r2, _08116AFC
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r2
+ ldrh r0, [r0, 0x22]
+ ldr r2, _08116B00
+ adds r1, r2
+ strh r0, [r1]
+ subs r4, 0xB8
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r4, [r4, 0x19]
+ cmp r0, r4
+ bcs _08116B08
+ ldr r1, _08116B04
+ movs r0, 0x1
+ b _08116B0C
+ .align 2, 0
+_08116AF0: .4byte 0x020190b8
+_08116AF4: .4byte 0x0000ffff
+_08116AF8: .4byte gSaveBlock1
+_08116AFC: .4byte gTasks
+_08116B00: .4byte 0x00000494
+_08116B04: .4byte gUnknown_0202E8CC
+_08116B08:
+ ldr r1, _08116B34
+ movs r0, 0
+_08116B0C:
+ strh r0, [r1]
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginHardwarePaletteFade
+ ldr r1, _08116B38
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08116B3C
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08116B34: .4byte gUnknown_0202E8CC
+_08116B38: .4byte gTasks
+_08116B3C: .4byte sub_8116B40
+ thumb_func_end sub_8116AB0
+
+ thumb_func_start sub_8116B40
+sub_8116B40: @ 8116B40
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl UpdatePaletteFade
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08116B9E
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r0, _08116BA4
+ movs r2, 0xBE
+ lsls r2, 1
+ movs r1, 0
+ bl memset
+ ldr r1, _08116BA8
+ ldr r0, _08116BAC
+ strh r4, [r0]
+ strh r4, [r1]
+ bl sub_80F9368
+ bl FreeAllSpritePalettes
+ bl ResetPaletteFade
+ bl ResetSpriteData
+ bl sub_80F9020
+ ldr r0, _08116BB0
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ ldr r1, _08116BB4
+ ldr r0, _08116BB8
+ str r0, [r1]
+ ldr r0, _08116BBC
+ bl SetMainCallback2
+ adds r0, r5, 0
+ bl DestroyTask
+_08116B9E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08116BA4: .4byte 0x02019000
+_08116BA8: .4byte gSpriteCoordOffsetX
+_08116BAC: .4byte gSpriteCoordOffsetY
+_08116BB0: .4byte REG_BLDCNT
+_08116BB4: .4byte gUnknown_0300485C
+_08116BB8: .4byte sub_8080990
+_08116BBC: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end sub_8116B40
+
+ thumb_func_start sub_8116BC0
+sub_8116BC0: @ 8116BC0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _08116C24
+ adds r7, r0, 0
+ adds r7, 0xA8
+ ldrh r1, [r7]
+ adds r6, r0, 0
+ cmp r1, 0
+ beq _08116BE4
+ ldr r0, _08116C28
+ adds r2, r6, 0
+ adds r2, 0xAA
+ ldrh r1, [r0, 0x2E]
+ ldrh r0, [r2]
+ ands r0, r1
+ cmp r0, 0
+ beq _08116C0E
+_08116BE4:
+ ldr r1, _08116C2C
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ adds r5, r6, 0
+ adds r5, 0xAC
+ ldr r1, [r5]
+ str r1, [r0]
+ adds r4, r6, 0
+ adds r4, 0xAA
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _08116C06
+ movs r0, 0x5
+ bl PlaySE
+_08116C06:
+ movs r0, 0
+ str r0, [r5]
+ strh r0, [r4]
+ strh r0, [r7]
+_08116C0E:
+ adds r2, r6, 0
+ adds r2, 0xA8
+ ldrh r1, [r2]
+ ldr r0, _08116C30
+ cmp r1, r0
+ beq _08116C1E
+ subs r0, r1, 0x1
+ strh r0, [r2]
+_08116C1E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08116C24: .4byte 0x02019000
+_08116C28: .4byte gMain
+_08116C2C: .4byte gTasks
+_08116C30: .4byte 0x0000ffff
+ thumb_func_end sub_8116BC0
+
+ thumb_func_start sub_8116C34
+sub_8116C34: @ 8116C34
+ push {r4-r7,lr}
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r2, 16
+ lsrs r4, r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ ldr r0, _08116C84
+ mov r12, r0
+ mov r2, r12
+ adds r2, 0xB4
+ ldr r1, _08116C88
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ mov r2, r12
+ adds r7, r1, 0
+ cmp r5, 0
+ bne _08116C64
+ adds r5, r0, 0
+_08116C64:
+ adds r0, r2, 0
+ adds r0, 0xAC
+ str r5, [r0]
+ subs r0, 0x4
+ strh r4, [r0]
+ ldr r0, _08116C8C
+ cmp r4, r0
+ bne _08116C90
+ cmp r3, 0
+ bne _08116C90
+ adds r1, r2, 0
+ adds r1, 0xAA
+ ldrh r0, [r1]
+ orrs r4, r0
+ strh r4, [r1]
+ b _08116C96
+ .align 2, 0
+_08116C84: .4byte 0x02019000
+_08116C88: .4byte gTasks
+_08116C8C: .4byte 0x0000ffff
+_08116C90:
+ adds r0, r2, 0
+ adds r0, 0xAA
+ strh r3, [r0]
+_08116C96:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r7
+ ldr r1, _08116CA8
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08116CA8: .4byte sub_8116BC0
+ thumb_func_end sub_8116C34
+
+ thumb_func_start sub_8116CAC
+sub_8116CAC: @ 8116CAC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r2, 0
+ ldr r0, _08116CF0
+ strb r2, [r0]
+ movs r1, 0
+ strb r1, [r0, 0x3]
+ adds r3, r0, 0
+ ldr r6, _08116CF4
+ adds r4, r3, 0
+ adds r4, 0x1B
+_08116CC4:
+ adds r0, r2, r4
+ strb r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x5
+ bls _08116CC4
+ ldrb r1, [r3, 0x1A]
+ movs r0, 0x10
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3, 0x1A]
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r6
+ movs r1, 0
+ strh r1, [r0, 0xA]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08116CF0: .4byte 0x02019000
+_08116CF4: .4byte gTasks
+ thumb_func_end sub_8116CAC
+
+ thumb_func_start sub_8116CF8
+sub_8116CF8: @ 8116CF8
+ push {lr}
+ ldr r1, _08116D48
+ movs r0, 0
+ str r0, [r1, 0x8]
+ movs r2, 0
+ adds r1, 0xC
+ movs r3, 0
+_08116D06:
+ adds r0, r2, r1
+ strb r3, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x5
+ bls _08116D06
+ movs r2, 0
+ ldr r3, _08116D4C
+ movs r1, 0
+_08116D1A:
+ adds r0, r2, r3
+ strb r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x3
+ bls _08116D1A
+ movs r2, 0
+ ldr r3, _08116D50
+ movs r1, 0
+_08116D2E:
+ adds r0, r2, r3
+ strb r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bls _08116D2E
+ movs r0, 0x1
+ movs r1, 0xFF
+ bl sub_8117C60
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08116D48: .4byte 0x02019000
+_08116D4C: .4byte 0x02019012
+_08116D50: .4byte 0x02019016
+ thumb_func_end sub_8116CF8
+
+ thumb_func_start sub_8116D54
+sub_8116D54: @ 8116D54
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x1C
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ mov r1, sp
+ ldr r0, _08116D88
+ ldm r0!, {r2,r4,r6}
+ stm r1!, {r2,r4,r6}
+ ldr r0, [r0]
+ str r0, [r1]
+ add r2, sp, 0x10
+ adds r1, r2, 0
+ ldr r0, _08116D8C
+ ldm r0!, {r4,r6,r7}
+ stm r1!, {r4,r6,r7}
+ mov r9, r2
+ cmp r5, 0xB
+ bls _08116D90
+ movs r0, 0
+ b _08116E38
+ .align 2, 0
+_08116D88: .4byte gUnknown_083F8ED8
+_08116D8C: .4byte gUnknown_083F8EE8
+_08116D90:
+ ldr r6, _08116E48
+ ldr r1, _08116E4C
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r7, 0x14
+ ldrsh r2, [r0, r7]
+ adds r2, r6, r2
+ ldr r4, _08116E50
+ lsls r5, 3
+ adds r3, r5, r4
+ ldrb r1, [r3, 0x2]
+ strb r1, [r2, 0xB]
+ ldrb r1, [r3, 0x2]
+ strh r1, [r0, 0x20]
+ adds r0, r4, 0x4
+ adds r0, r5, r0
+ ldr r1, [r6, 0x8]
+ ldr r0, [r0]
+ orrs r1, r0
+ str r1, [r6, 0x8]
+ movs r3, 0
+ mov r8, r4
+ mov r12, r5
+ adds r5, r0, 0
+ adds r4, r6, 0
+ adds r4, 0x12
+_08116DC8:
+ lsls r0, r3, 2
+ mov r1, sp
+ adds r2, r1, r0
+ ldr r0, [r2]
+ ands r0, r5
+ cmp r0, 0
+ beq _08116DDE
+ adds r1, r3, r4
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08116DDE:
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bls _08116DEE
+ ldr r0, [r6, 0x8]
+ ldr r1, [r2]
+ orrs r0, r1
+ str r0, [r6, 0x8]
+_08116DEE:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _08116DC8
+ movs r2, 0
+ ldr r0, _08116E54
+ add r0, r12
+ ldr r7, [r0]
+ ldr r4, _08116E58
+ mov r5, r9
+_08116E04:
+ lsls r0, r2, 2
+ adds r3, r5, r0
+ ldr r0, [r3]
+ ands r0, r7
+ cmp r0, 0
+ beq _08116E18
+ adds r1, r2, r4
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08116E18:
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bls _08116E28
+ ldr r0, [r6, 0x8]
+ ldr r1, [r3]
+ orrs r0, r1
+ str r0, [r6, 0x8]
+_08116E28:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bls _08116E04
+ mov r0, r12
+ add r0, r8
+ ldrb r0, [r0, 0x2]
+_08116E38:
+ add sp, 0x1C
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08116E48: .4byte 0x02019000
+_08116E4C: .4byte gTasks
+_08116E50: .4byte gUnknown_083F8D90
+_08116E54: .4byte gUnknown_083F8D94
+_08116E58: .4byte 0x02019016
+ thumb_func_end sub_8116D54
+
+ thumb_func_start sub_8116E5C
+sub_8116E5C: @ 8116E5C
+ push {lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r2, r1, 24
+ lsrs r3, r0, 24
+ movs r1, 0xFF
+ lsls r1, 24
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0x12
+ bhi _08116EF0
+ cmp r2, 0xF
+ bhi _08116EEC
+ lsls r0, r2, 2
+ ldr r1, _08116E80
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08116E80: .4byte _08116E84
+ .align 2, 0
+_08116E84:
+ .4byte _08116EC4
+ .4byte _08116EC8
+ .4byte _08116EC8
+ .4byte _08116EC8
+ .4byte _08116EC8
+ .4byte _08116EDC
+ .4byte _08116EEC
+ .4byte _08116EEC
+ .4byte _08116EEC
+ .4byte _08116EEC
+ .4byte _08116EDC
+ .4byte _08116EEC
+ .4byte _08116EEC
+ .4byte _08116EEC
+ .4byte _08116EEC
+ .4byte _08116EDC
+_08116EC4:
+ movs r0, 0x3
+ b _08116EF2
+_08116EC8:
+ adds r0, r2, 0x5
+ cmp r3, r0
+ beq _08116EE8
+ adds r0, 0x5
+ cmp r3, r0
+ beq _08116EE8
+ adds r0, 0x5
+ cmp r3, r0
+ bne _08116EF0
+ b _08116EE8
+_08116EDC:
+ adds r0, r2, 0x1
+ cmp r3, r0
+ blt _08116EF0
+ adds r0, r2, 0x4
+ cmp r3, r0
+ bgt _08116EF0
+_08116EE8:
+ movs r0, 0x1
+ b _08116EF2
+_08116EEC:
+ cmp r3, r2
+ beq _08116EE8
+_08116EF0:
+ movs r0, 0
+_08116EF2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8116E5C
+
+ thumb_func_start sub_8116EF8
+sub_8116EF8: @ 8116EF8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0
+ str r0, [sp, 0x18]
+ cmp r6, 0xA
+ beq _08116F1E
+ cmp r6, 0xA
+ bgt _08116F1A
+ cmp r6, 0x5
+ beq _08116F1E
+ b _08116F7C
+_08116F1A:
+ cmp r6, 0xF
+ bne _08116F7C
+_08116F1E:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r6, 0x5
+ ldr r7, _08116F70
+ cmp r4, r0
+ bge _08116F5E
+ adds r1, r7, 0
+ subs r1, 0xB8
+ ldr r3, _08116F74
+ ldr r5, [r1, 0x8]
+ adds r6, r3, 0
+ adds r6, 0x8
+ adds r2, r0, 0
+_08116F3A:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r1, r0, 2
+ adds r0, r1, r6
+ ldr r0, [r0]
+ ands r0, r5
+ cmp r0, 0
+ bne _08116F54
+ adds r0, r1, r3
+ ldrh r0, [r0, 0x10]
+ ldr r1, [sp, 0x18]
+ orrs r1, r0
+ str r1, [sp, 0x18]
+_08116F54:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r2
+ blt _08116F3A
+_08116F5E:
+ ldr r0, _08116F78
+ ldr r2, [sp, 0x18]
+ ands r2, r0
+ str r2, [sp, 0x18]
+ adds r0, r7, 0
+ adds r1, r2, 0
+ bl sub_8124CE8
+ b _0811713C
+ .align 2, 0
+_08116F70: .4byte 0x020190b8
+_08116F74: .4byte gUnknown_083F8C00
+_08116F78: .4byte 0x0000dfff
+_08116F7C:
+ mov r0, sp
+ ldr r1, _08116FC8
+ ldm r1!, {r2-r4}
+ stm r0!, {r2-r4}
+ ldm r1!, {r2-r4}
+ stm r0!, {r2-r4}
+ subs r0, r6, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0x1
+ mov r10, r3
+ cmp r0, 0x3
+ bhi _08116F9A
+ movs r4, 0x3
+ mov r10, r4
+_08116F9A:
+ adds r0, r6, 0
+ movs r1, 0x5
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 8
+ ldr r1, _08116FCC
+ adds r0, r1
+ lsrs r7, r0, 16
+ adds r0, r6, 0
+ movs r1, 0x5
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _08116FF8
+ cmp r0, 0x2
+ bgt _08116FD4
+ cmp r0, 0x1
+ beq _08116FE4
+ ldr r4, _08116FD0
+ b _0811703A
+ .align 2, 0
+_08116FC8: .4byte gUnknown_083F8E9C
+_08116FCC: .4byte 0xffff0000
+_08116FD0: .4byte 0x02019000
+_08116FD4:
+ cmp r0, 0x3
+ beq _0811700C
+ cmp r0, 0x4
+ beq _08117020
+ ldr r4, _08116FE0
+ b _0811703A
+ .align 2, 0
+_08116FE0: .4byte 0x02019000
+_08116FE4:
+ ldr r3, _08116FF0
+ ldr r2, _08116FF4
+ adds r0, r2, 0
+ adds r0, 0x43
+ b _08117028
+ .align 2, 0
+_08116FF0: .4byte gSprites
+_08116FF4: .4byte 0x02019000
+_08116FF8:
+ ldr r3, _08117004
+ ldr r2, _08117008
+ adds r0, r2, 0
+ adds r0, 0x44
+ b _08117028
+ .align 2, 0
+_08117004: .4byte gSprites
+_08117008: .4byte 0x02019000
+_0811700C:
+ ldr r3, _08117018
+ ldr r2, _0811701C
+ adds r0, r2, 0
+ adds r0, 0x45
+ b _08117028
+ .align 2, 0
+_08117018: .4byte gSprites
+_0811701C: .4byte 0x02019000
+_08117020:
+ ldr r3, _08117088
+ ldr r2, _0811708C
+ adds r0, r2, 0
+ adds r0, 0x46
+_08117028:
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ lsls r7, r0, 4
+ adds r4, r2, 0
+_0811703A:
+ mov r2, r10
+ cmp r2, 0x1
+ bne _08117094
+ ldr r1, _08117090
+ lsls r2, r6, 2
+ adds r0, r2, r6
+ lsls r0, 2
+ adds r1, 0x8
+ adds r0, r1
+ ldr r1, [r4, 0x8]
+ ldr r0, [r0]
+ ands r1, r0
+ str r2, [sp, 0x1C]
+ cmp r1, 0
+ bne _0811713C
+ adds r0, r6, 0
+ movs r1, 0x5
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ subs r1, r0, 0x1
+ lsls r1, 3
+ mov r3, sp
+ adds r2, r3, r1
+ ldrh r1, [r2, 0x2]
+ adds r1, r7, r1
+ strh r1, [r2, 0x2]
+ adds r1, r4, 0
+ adds r1, 0xB8
+ lsls r0, 3
+ subs r0, 0x8
+ adds r2, r3, r0
+ adds r0, r1, 0
+ movs r1, 0xD
+ bl sub_812492C
+ b _08117122
+ .align 2, 0
+_08117088: .4byte gSprites
+_0811708C: .4byte 0x02019000
+_08117090: .4byte gUnknown_083F8C00
+_08117094:
+ movs r4, 0
+ lsls r0, r6, 2
+ str r0, [sp, 0x1C]
+ ldr r1, _0811714C
+ mov r8, r1
+ ldr r2, _08117150
+ mov r9, r2
+_081170A2:
+ lsls r0, r4, 2
+ adds r0, r4
+ adds r0, r6, r0
+ adds r0, 0x5
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r5, r0, 2
+ mov r0, r9
+ adds r0, 0x8
+ adds r0, r5, r0
+ mov r3, r8
+ ldr r1, [r3, 0x8]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _0811710E
+ adds r0, r2, 0
+ movs r1, 0x5
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ subs r1, r0, 0x1
+ lsls r1, 3
+ mov r3, sp
+ adds r2, r3, r1
+ ldrh r1, [r2, 0x2]
+ adds r1, r7, r1
+ strh r1, [r2, 0x2]
+ adds r1, r4, 0
+ adds r1, 0xD
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, 3
+ subs r0, 0x8
+ adds r2, r3, r0
+ mov r0, r8
+ adds r0, 0xB8
+ bl sub_812492C
+ mov r0, r10
+ cmp r0, 0x3
+ bne _08117104
+ mov r1, r9
+ adds r0, r5, r1
+ ldrh r0, [r0, 0x10]
+ str r0, [sp, 0x18]
+_08117104:
+ mov r0, r10
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+_0811710E:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _081170A2
+ mov r2, r10
+ cmp r2, 0x2
+ beq _08117122
+ movs r3, 0
+ str r3, [sp, 0x18]
+_08117122:
+ ldr r0, _08117154
+ ldr r2, _08117150
+ ldr r4, [sp, 0x1C]
+ adds r1, r4, r6
+ lsls r1, 2
+ adds r1, r2
+ ldrh r1, [r1, 0x10]
+ ldr r2, [sp, 0x18]
+ orrs r2, r1
+ str r2, [sp, 0x18]
+ adds r1, r2, 0
+ bl sub_8124CE8
+_0811713C:
+ 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
+_0811714C: .4byte 0x02019000
+_08117150: .4byte gUnknown_083F8C00
+_08117154: .4byte 0x020190b8
+ thumb_func_end sub_8116EF8
+
+ thumb_func_start sub_8117158
+sub_8117158: @ 8117158
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _0811719C
+ movs r0, 0x1
+ strh r0, [r4, 0x2A]
+ movs r0, 0
+ movs r1, 0
+ bl sub_8117AA8
+ ldr r0, _081171A0
+ ldr r1, _081171A4
+ adds r4, r1
+ movs r1, 0x10
+ str r1, [sp]
+ movs r1, 0xD
+ str r1, [sp, 0x4]
+ adds r1, r4, 0
+ movs r2, 0xE
+ movs r3, 0x7
+ bl sub_8124E2C
+ cmp r5, 0xF
+ bhi _08117250
+ lsls r0, r5, 2
+ ldr r1, _081171A8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0811719C: .4byte 0x02019000
+_081171A0: .4byte gBG1TilemapBuffer
+_081171A4: .4byte 0xfffff800
+_081171A8: .4byte _081171AC
+ .align 2, 0
+_081171AC:
+ .4byte _08117360
+ .4byte _081171EC
+ .4byte _081171EC
+ .4byte _081171EC
+ .4byte _081171EC
+ .4byte _08117220
+ .4byte _08117250
+ .4byte _08117250
+ .4byte _08117250
+ .4byte _08117250
+ .4byte _08117220
+ .4byte _08117250
+ .4byte _08117250
+ .4byte _08117250
+ .4byte _08117250
+ .4byte _08117220
+_081171EC:
+ movs r0, 0x4
+ str r0, [sp, 0x18]
+ add r1, sp, 0x8
+ movs r0, 0
+ strb r0, [r1]
+ adds r0, r1, 0
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bhi _08117258
+ add r4, sp, 0x10
+ adds r3, r1, 0
+_08117202:
+ ldrb r2, [r3]
+ adds r2, r4
+ ldrb r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ adds r0, r5, r0
+ strb r0, [r2]
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ ldrb r0, [r3]
+ ldr r1, [sp, 0x18]
+ cmp r0, r1
+ bcc _08117202
+ b _08117258
+_08117220:
+ movs r0, 0x5
+ str r0, [sp, 0x18]
+ add r1, sp, 0x8
+ movs r0, 0
+ strb r0, [r1]
+ adds r0, r1, 0
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bhi _08117258
+ add r3, sp, 0x10
+ adds r2, r1, 0
+_08117236:
+ ldrb r1, [r2]
+ adds r1, r3
+ ldrb r0, [r2]
+ adds r0, r5, r0
+ strb r0, [r1]
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ ldrb r0, [r2]
+ ldr r1, [sp, 0x18]
+ cmp r0, r1
+ bcc _08117236
+ b _08117258
+_08117250:
+ movs r0, 0x1
+ str r0, [sp, 0x18]
+ add r0, sp, 0x10
+ strb r5, [r0]
+_08117258:
+ add r1, sp, 0x8
+ movs r0, 0
+ strb r0, [r1]
+ adds r0, r1, 0
+ ldrb r0, [r0]
+ ldr r1, [sp, 0x18]
+ cmp r0, r1
+ bcs _08117360
+ mov r0, sp
+ adds r0, 0xE
+ str r0, [sp, 0x1C]
+ add r1, sp, 0x10
+ mov r9, r1
+ add r0, sp, 0x8
+ mov r12, r0
+ mov r1, sp
+ adds r1, 0xA
+ str r1, [sp, 0x20]
+_0811727C:
+ mov r1, r12
+ ldrb r0, [r1]
+ add r0, r9
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08117370
+ adds r0, r1
+ ldrb r0, [r0, 0x6]
+ ldr r1, [sp, 0x1C]
+ strb r0, [r1]
+ mov r1, r12
+ ldrb r0, [r1]
+ add r0, r9
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08117370
+ adds r0, r1
+ ldrb r0, [r0, 0x3]
+ ldr r1, [sp, 0x20]
+ strh r0, [r1]
+ mov r4, sp
+ adds r4, 0x9
+ movs r0, 0
+ strb r0, [r4]
+ ldrb r0, [r4]
+ cmp r0, 0x2
+ bhi _08117350
+ add r5, sp, 0xC
+ ldr r7, [sp, 0x20]
+ ldr r0, _08117374
+ mov r8, r0
+ ldr r6, [sp, 0x1C]
+ ldr r1, _08117378
+ mov r10, r1
+_081172C8:
+ mov r1, r12
+ ldrb r0, [r1]
+ add r0, r9
+ ldrb r0, [r0]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08117370
+ adds r1, r0
+ adds r3, r4, 0
+ ldrb r0, [r4]
+ ldrb r1, [r1, 0x4]
+ adds r0, r1
+ lsls r0, 5
+ strh r0, [r5]
+ ldrh r0, [r7]
+ ldrh r2, [r5]
+ adds r2, r0
+ lsls r2, 1
+ add r2, r8
+ ldrb r0, [r6]
+ ldrb r1, [r4]
+ adds r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 1
+ add r0, r10
+ ldrh r0, [r0]
+ strh r0, [r2]
+ ldrh r0, [r7]
+ ldrh r2, [r5]
+ adds r2, r0
+ adds r2, 0x1
+ lsls r2, 1
+ add r2, r8
+ ldrb r0, [r6]
+ ldrb r1, [r4]
+ adds r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 1
+ mov r1, r10
+ adds r1, 0x2
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ ldrh r0, [r7]
+ ldrh r2, [r5]
+ adds r2, r0
+ adds r2, 0x2
+ lsls r2, 1
+ add r2, r8
+ ldrb r0, [r6]
+ ldrb r1, [r4]
+ adds r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 1
+ ldr r1, _0811737C
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldrb r0, [r3]
+ cmp r0, 0x2
+ bls _081172C8
+_08117350:
+ mov r1, r12
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldrb r0, [r1]
+ ldr r1, [sp, 0x18]
+ cmp r0, r1
+ bcc _0811727C
+_08117360:
+ 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
+_08117370: .4byte gUnknown_083F8C00
+_08117374: .4byte gBG1TilemapBuffer
+_08117378: .4byte 0x020189a0
+_0811737C: .4byte 0x020189a4
+ thumb_func_end sub_8117158
+
+ thumb_func_start sub_8117380
+sub_8117380: @ 8117380
+ push {r4,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _081173B8
+ mov r0, sp
+ movs r2, 0x5
+ bl memcpy
+ cmp r4, 0x13
+ bls _08117398
+ movs r4, 0
+_08117398:
+ ldr r3, _081173BC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r2, r0, 2
+ adds r0, r2, r3
+ ldrb r0, [r0, 0x1]
+ lsls r0, 28
+ lsrs r0, 28
+ cmp r0, 0x4
+ beq _081173EC
+ cmp r0, 0x4
+ bgt _081173C0
+ cmp r0, 0x3
+ beq _081173C6
+ b _08117428
+ .align 2, 0
+_081173B8: .4byte gUnknown_083F8EF4
+_081173BC: .4byte gUnknown_083F8C00
+_081173C0:
+ cmp r0, 0xC
+ beq _0811740C
+ b _08117428
+_081173C6:
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl __udivsi3
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _081173E8
+ adds r0, 0x16
+ adds r1, r4, r0
+ ldrb r0, [r1]
+ cmp r0, 0x3
+ bhi _08117428
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08117402
+ .align 2, 0
+_081173E8: .4byte 0x02019000
+_081173EC:
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08117408
+ adds r0, 0x12
+ adds r1, r4, r0
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bhi _08117428
+ ldrb r0, [r1]
+ adds r0, 0x2
+_08117402:
+ add r0, sp
+ ldrb r0, [r0]
+ b _0811742A
+ .align 2, 0
+_08117408: .4byte 0x02019000
+_0811740C:
+ ldr r1, _08117424
+ adds r0, r3, 0
+ adds r0, 0x8
+ adds r0, r2, r0
+ ldr r1, [r1, 0x8]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _08117428
+ mov r0, sp
+ ldrb r0, [r0, 0x4]
+ b _0811742A
+ .align 2, 0
+_08117424: .4byte 0x02019000
+_08117428:
+ movs r0, 0
+_0811742A:
+ add sp, 0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8117380
+
+ thumb_func_start sub_8117434
+sub_8117434: @ 8117434
+ push {r4-r6,lr}
+ ldr r1, _081174AC
+ ldr r4, _081174B0
+ ldrh r0, [r4, 0x2C]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r4, 0x2E]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r4, 0x30]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r4, 0x32]
+ strh r0, [r1]
+ movs r0, 0x2E
+ ldrsh r2, [r4, r0]
+ ldr r0, _081174B4
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ adds r1, 0x50
+ adds r0, r2, 0
+ muls r0, r1
+ movs r2, 0xE8
+ lsls r2, 7
+ subs r2, r0
+ movs r6, 0x2C
+ ldrsh r5, [r4, r6]
+ ldr r0, _081174B8
+ movs r6, 0
+ ldrsh r3, [r0, r6]
+ adds r3, 0x74
+ adds r0, r5, 0
+ muls r0, r3
+ subs r2, r0
+ movs r5, 0x32
+ ldrsh r0, [r4, r5]
+ muls r0, r1
+ movs r1, 0xA8
+ lsls r1, 7
+ subs r1, r0
+ movs r6, 0x30
+ ldrsh r0, [r4, r6]
+ muls r0, r3
+ subs r1, r0
+ ldr r0, _081174BC
+ strh r2, [r0]
+ adds r0, 0x2
+ ldr r3, _081174C0
+ ands r2, r3
+ asrs r2, 16
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ ands r1, r3
+ asrs r1, 16
+ strh r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081174AC: .4byte REG_BG2PA
+_081174B0: .4byte 0x02019000
+_081174B4: .4byte gSpriteCoordOffsetY
+_081174B8: .4byte gSpriteCoordOffsetX
+_081174BC: .4byte REG_BG2X_L
+_081174C0: .4byte 0x0fff0000
+ thumb_func_end sub_8117434
+
+ thumb_func_start sub_81174C4
+sub_81174C4: @ 81174C4
+ push {lr}
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ muls r0, r1
+ adds r1, r0, 0
+ cmp r0, 0
+ bge _081174D8
+ adds r1, 0xFF
+_081174D8:
+ lsls r0, r1, 8
+ asrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81174C4
+
+ thumb_func_start sub_81174E0
+sub_81174E0: @ 81174E0
+ push {lr}
+ adds r1, r0, 0
+ movs r0, 0x80
+ lsls r0, 9
+ lsls r1, 16
+ asrs r1, 16
+ bl __divsi3
+ lsls r0, 16
+ asrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81174E0
+
+ thumb_func_start sub_81174F8
+sub_81174F8: @ 81174F8
+ 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 r0, _08117520
+ bl sub_814AAF8
+ ldr r1, _08117524
+ adds r0, r4, 0
+ bl sub_80F914C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08117520: .4byte 0x00002d9e
+_08117524: .4byte gUnknown_083F8EB4
+ thumb_func_end sub_81174F8
+
+ thumb_func_start sub_8117528
+sub_8117528: @ 8117528
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08117554
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0811754C
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r0, _08117558
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_0811754C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08117554: .4byte gPaletteFade
+_08117558: .4byte sub_8115384
+ thumb_func_end sub_8117528
+
+ thumb_func_start sub_811755C
+sub_811755C: @ 811755C
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1A
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ bl MenuZeroFillScreen
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r2, _081175B4
+ ldrb r1, [r2, 0x8]
+ lsls r1, 26
+ lsrs r1, 26
+ ldrb r3, [r2, 0x4]
+ movs r0, 0x40
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x4]
+ bl UpdatePaletteFade
+ ldr r1, _081175B8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _081175BC
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081175B4: .4byte gPaletteFade
+_081175B8: .4byte gTasks
+_081175BC: .4byte sub_8117528
+ thumb_func_end sub_811755C
+
+ thumb_func_start sub_81175C0
+sub_81175C0: @ 81175C0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl MenuZeroFillScreen
+ bl ScriptContext2_Disable
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81175C0
+
+ thumb_func_start sub_81175DC
+sub_81175DC: @ 81175DC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r1, _08117624
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ adds r2, r1, 0x1
+ strh r2, [r0, 0x8]
+ ldr r0, _08117628
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08117608
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _0811761C
+_08117608:
+ ldr r1, _0811762C
+ movs r0, 0x1
+ strh r0, [r1]
+ bl MenuZeroFillScreen
+ bl ScriptContext2_Disable
+ adds r0, r4, 0
+ bl DestroyTask
+_0811761C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08117624: .4byte gTasks
+_08117628: .4byte gMain
+_0811762C: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_81175DC
+
+ thumb_func_start sub_8117630
+sub_8117630: @ 8117630
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r2, _0811768C
+ ldr r0, _08117690
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ lsrs r1, 7
+ lsls r1, 1
+ adds r0, r1
+ adds r0, r2
+ ldrb r1, [r0]
+ ldr r0, _08117694
+ movs r2, 0x2
+ movs r3, 0x1
+ bl ConvertIntToDecimalStringN
+ ldr r5, _08117698
+ ldr r1, _0811769C
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r1, _081176A0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _081176A4
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811768C: .4byte gUnknown_083F8DF0
+_08117690: .4byte gUnknown_0202E8CC
+_08117694: .4byte gStringVar1
+_08117698: .4byte gStringVar4
+_0811769C: .4byte gUnknown_081C40DF
+_081176A0: .4byte gTasks
+_081176A4: .4byte sub_81174F8
+ thumb_func_end sub_8117630
+
+ thumb_func_start sub_81176A8
+sub_81176A8: @ 81176A8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _08117758
+ mov r10, r0
+ ldr r1, _0811775C
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r6, r0, r1
+ movs r0, 0x22
+ ldrsh r1, [r6, r0]
+ mov r0, r10
+ movs r2, 0x1
+ movs r3, 0x4
+ bl ConvertIntToDecimalStringN
+ ldr r5, _08117760
+ ldr r1, _08117764
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x9
+ movs r3, 0x3
+ bl MenuDrawTextWindow
+ adds r0, r5, 0
+ movs r1, 0x9
+ movs r2, 0x1
+ bl sub_8072B4C
+ ldr r2, _08117768
+ ldr r1, _0811776C
+ mov r8, r1
+ ldrh r1, [r1]
+ movs r0, 0x1
+ mov r9, r0
+ ands r0, r1
+ lsrs r1, 7
+ lsls r1, 1
+ adds r0, r1
+ adds r0, r2
+ ldrb r4, [r0]
+ mov r0, r10
+ adds r1, r4, 0
+ movs r2, 0x2
+ movs r3, 0x1
+ bl ConvertIntToDecimalStringN
+ movs r1, 0x22
+ ldrsh r0, [r6, r1]
+ cmp r0, r4
+ blt _081177BC
+ mov r0, r8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0811777C
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ beq _0811777C
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08117770
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r1, _08117774
+ ldr r2, _08117778
+ adds r0, r7, 0
+ movs r3, 0x3
+ bl sub_8116C34
+ b _081177E4
+ .align 2, 0
+_08117758: .4byte gStringVar1
+_0811775C: .4byte gTasks
+_08117760: .4byte gStringVar4
+_08117764: .4byte gOtherText_Coins
+_08117768: .4byte gUnknown_083F8DF0
+_0811776C: .4byte gUnknown_0202E8CC
+_08117770: .4byte gUnknown_081C4139
+_08117774: .4byte sub_8117630
+_08117778: .4byte 0x0000ffff
+_0811777C:
+ ldr r4, _081177AC
+ ldr r1, _081177B0
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r1, _081177B4
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _081177B8
+ str r1, [r0]
+ b _081177E4
+ .align 2, 0
+_081177AC: .4byte gStringVar4
+_081177B0: .4byte gUnknown_081C40DF
+_081177B4: .4byte gTasks
+_081177B8: .4byte sub_81174F8
+_081177BC:
+ ldr r1, _081177F4
+ adds r0, r5, 0
+ bl StringExpandPlaceholders
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r0, _081177F8
+ str r0, [r6]
+ movs r0, 0
+ strh r0, [r6, 0x22]
+ strh r0, [r6, 0x8]
+_081177E4:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081177F4: .4byte gUnknown_081C411C
+_081177F8: .4byte sub_81175DC
+ thumb_func_end sub_81176A8
+
+ thumb_func_start sub_81177FC
+sub_81177FC: @ 81177FC
+ push {lr}
+ bl ScriptContext2_Enable
+ ldr r0, _08117828
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0811782C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _08117830
+ ldr r2, _08117834
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r1, 0x22]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08117828: .4byte sub_81176A8
+_0811782C: .4byte gTasks
+_08117830: .4byte gSaveBlock1
+_08117834: .4byte 0x00000494
+ thumb_func_end sub_81177FC
+
+ thumb_func_start sub_8117838
+sub_8117838: @ 8117838
+ push {r4,lr}
+ lsls r0, 24
+ cmp r0, 0
+ bne _08117884
+ bl FreeAllSpritePalettes
+ ldr r0, _08117870
+ bl LoadSpritePalettes
+ ldr r0, _08117874
+ ldr r4, _08117878
+ adds r1, r4, 0
+ bl LZ77UnCompWram
+ ldr r0, _0811787C
+ movs r2, 0xE0
+ lsls r2, 4
+ adds r1, r4, r2
+ bl LZ77UnCompWram
+ ldr r0, _08117880
+ movs r1, 0x80
+ lsls r1, 5
+ adds r4, r1
+ adds r1, r4, 0
+ bl LZ77UnCompWram
+ b _08117888
+ .align 2, 0
+_08117870: .4byte gUnknown_083F9E30
+_08117874: .4byte gUnknown_083F92A8
+_08117878: .4byte 0x02017000
+_0811787C: .4byte gUnknown_083F90FC
+_08117880: .4byte gUnknown_083F9D3C
+_08117884:
+ bl FreeAllSpritePalettes
+_08117888:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8117838
+
+ thumb_func_start sub_8117890
+sub_8117890: @ 8117890
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ adds r6, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, [r0, 0x4]
+ ldrb r3, [r1]
+ movs r1, 0x74
+ movs r2, 0x50
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r0, _081178F4
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r6]
+ strh r0, [r1, 0x2E]
+ strh r4, [r1, 0x30]
+ adds r3, r1, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r3]
+ adds r1, 0x2C
+ ldrb r0, [r1]
+ movs r2, 0x40
+ orrs r0, r2
+ movs r2, 0x80
+ orrs r0, r2
+ strb r0, [r1]
+ ldrh r2, [r6]
+ adds r0, r2, 0
+ adds r0, 0x1E
+ strh r0, [r6]
+ lsls r0, 16
+ ldr r1, _081178F8
+ cmp r0, r1
+ bls _081178EC
+ ldr r1, _081178FC
+ adds r0, r2, r1
+ strh r0, [r6]
+_081178EC:
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081178F4: .4byte gSprites
+_081178F8: .4byte 0x01670000
+_081178FC: .4byte 0xfffffeb6
+ thumb_func_end sub_8117890
+
+ thumb_func_start sub_8117900
+sub_8117900: @ 8117900
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ ldr r4, _08117A50
+ ldr r0, [r4]
+ ldr r5, _08117A54
+ adds r1, r5, 0
+ bl LZ77UnCompWram
+ str r5, [sp]
+ mov r6, sp
+ ldrh r1, [r4, 0x6]
+ lsls r1, 16
+ ldrh r0, [r4, 0x4]
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ ldr r4, _08117A58
+ ldr r0, [r4]
+ adds r1, r5, 0
+ bl LZ77UnCompWram
+ str r5, [sp]
+ ldrh r0, [r4, 0x4]
+ strh r0, [r6, 0x4]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r6, 0x6]
+ mov r0, sp
+ bl LoadSpriteSheet
+ movs r7, 0
+ ldr r0, _08117A5C
+ adds r0, r5
+ mov r9, r0
+ ldr r0, _08117A60
+ mov r8, r0
+_08117950:
+ lsls r0, r7, 1
+ adds r0, r7
+ lsls r0, 27
+ lsrs r4, r0, 24
+ movs r6, 0
+ lsls r5, r7, 2
+_0811795C:
+ lsls r1, r6, 1
+ adds r1, r6
+ lsls r1, 3
+ ldr r0, _08117A64
+ adds r0, r1, r0
+ adds r1, 0x94
+ adds r2, r4, 0
+ adds r2, 0x5C
+ movs r3, 0x1E
+ bl CreateSprite
+ adds r1, r6, 0
+ adds r1, 0x1D
+ adds r1, r5, r1
+ add r1, r9
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r4, 0
+ adds r0, 0x18
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x47
+ bls _081179A0
+ movs r4, 0
+_081179A0:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bls _0811795C
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x2
+ bls _08117950
+ movs r7, 0
+ ldr r5, _08117A68
+ ldr r4, _08117A60
+_081179BA:
+ lsls r1, r7, 1
+ adds r1, r7
+ lsls r1, 3
+ ldr r0, _08117A6C
+ adds r0, r1, r0
+ adds r1, 0x94
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0x46
+ movs r3, 0x1E
+ bl CreateSprite
+ adds r1, r7, 0
+ adds r1, 0x29
+ adds r1, r5
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x3
+ bls _081179BA
+ movs r7, 0
+ ldr r5, _08117A68
+ ldr r4, _08117A60
+_08117A00:
+ lsls r2, r7, 1
+ adds r2, r7
+ lsls r2, 3
+ ldr r0, _08117A70
+ adds r0, r2, r0
+ adds r2, 0x5C
+ lsls r2, 16
+ asrs r2, 16
+ movs r1, 0x7E
+ movs r3, 0x1E
+ bl CreateSprite
+ adds r1, r7, 0
+ adds r1, 0x2D
+ adds r1, r5
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x2
+ bls _08117A00
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08117A50: .4byte gUnknown_083F9F54
+_08117A54: .4byte 0x02000000
+_08117A58: .4byte gUnknown_083F9F5C
+_08117A5C: .4byte 0x0001903c
+_08117A60: .4byte gSprites
+_08117A64: .4byte gSpriteTemplate_83FA07C
+_08117A68: .4byte 0x0201903c
+_08117A6C: .4byte gSpriteTemplate_83F9FD4
+_08117A70: .4byte gSpriteTemplate_83FA034
+ thumb_func_end sub_8117900
+
+ thumb_func_start unref_sub_8117A74
+unref_sub_8117A74: @ 8117A74
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _08117AA0
+_08117A7A:
+ adds r0, r4, 0
+ adds r0, 0x1D
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08117AA4
+ adds r0, r1
+ bl DestroySprite
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xB
+ bls _08117A7A
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08117AA0: .4byte 0x0201903c
+_08117AA4: .4byte gSprites
+ thumb_func_end unref_sub_8117A74
+
+ thumb_func_start sub_8117AA8
+sub_8117AA8: @ 8117AA8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ cmp r0, 0
+ beq _08117AF8
+ cmp r0, 0x1
+ bne _08117BA8
+ movs r3, 0
+ ldr r5, _08117AF0
+ ldr r4, _08117AF4
+ movs r2, 0x4
+_08117ACA:
+ adds r0, r3, 0
+ adds r0, 0x1D
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x12
+ bls _08117ACA
+ b _08117BA8
+ .align 2, 0
+_08117AF0: .4byte gSprites
+_08117AF4: .4byte 0x0201903c
+_08117AF8:
+ movs r3, 0
+ ldr r0, _08117B48
+ mov r12, r0
+ ldr r7, _08117B4C
+ movs r1, 0x4
+ add r1, r12
+ mov r9, r1
+ ldr r5, _08117B50
+ adds r4, r7, 0
+ adds r4, 0x3C
+ movs r6, 0x5
+ negs r6, r6
+_08117B10:
+ lsls r2, r3, 3
+ mov r1, r9
+ adds r0, r2, r1
+ ldr r1, [r7, 0x8]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _08117B54
+ mov r1, r12
+ adds r0, r2, r1
+ ldrb r0, [r0, 0x2]
+ cmp r0, r8
+ beq _08117B54
+ adds r0, r3, 0
+ adds r0, 0x1D
+ adds r0, r4
+ 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]
+ b _08117B6E
+ .align 2, 0
+_08117B48: .4byte gUnknown_083F8D90
+_08117B4C: .4byte 0x02019000
+_08117B50: .4byte gSprites
+_08117B54:
+ adds r0, r3, 0
+ adds r0, 0x1D
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r6, 0
+ ands r0, r2
+ strb r0, [r1]
+_08117B6E:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0xB
+ bls _08117B10
+ cmp r3, 0x12
+ bhi _08117BA8
+ ldr r6, _08117BB4
+ ldr r4, _08117BB8
+ movs r5, 0x5
+ negs r5, r5
+_08117B84:
+ adds r0, r3, 0
+ adds r0, 0x1D
+ adds r0, r4
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r5, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x12
+ bls _08117B84
+_08117BA8:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08117BB4: .4byte gSprites
+_08117BB8: .4byte 0x0201903c
+ thumb_func_end sub_8117AA8
+
+ thumb_func_start sub_8117BBC
+sub_8117BBC: @ 8117BBC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r5, 0
+ ldr r0, _08117C50
+ mov r8, r0
+ ldr r4, _08117C54
+ movs r6, 0x4
+_08117BCC:
+ ldr r0, _08117C58
+ movs r1, 0x74
+ movs r2, 0x14
+ movs r3, 0xA
+ bl CreateSprite
+ adds r3, r5, 0
+ adds r3, 0x31
+ add r3, r8
+ strb r0, [r3]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r6
+ strb r1, [r0]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x1
+ strh r1, [r0, 0x2E]
+ 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, _08117C5C
+ str r1, [r0]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0, 0x5]
+ movs r7, 0xD
+ negs r7, r7
+ adds r2, r7, 0
+ ands r1, r2
+ orrs r1, r6
+ strb r1, [r0, 0x5]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x8
+ bl StartSpriteAnim
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _08117BCC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08117C50: .4byte 0x0201903c
+_08117C54: .4byte gSprites
+_08117C58: .4byte gSpriteTemplate_83FA40C
+_08117C5C: .4byte sub_81184CC
+ thumb_func_end sub_8117BBC
+
+ thumb_func_start sub_8117C60
+sub_8117C60: @ 8117C60
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ movs r5, 0
+ cmp r0, 0
+ beq _08117CAC
+ ldr r4, _08117CA4
+ ldr r3, _08117CA8
+ movs r2, 0x4
+_08117C7E:
+ adds r0, r5, 0
+ adds r0, 0x31
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _08117C7E
+ b _08117D58
+ .align 2, 0
+_08117CA4: .4byte gSprites
+_08117CA8: .4byte 0x0201903c
+_08117CAC:
+ ldr r0, _08117CEC
+ mov r12, r0
+ ldr r6, _08117CF0
+ movs r0, 0x3C
+ add r0, r12
+ mov r8, r0
+ ldr r7, _08117CF4
+ movs r0, 0x5
+ negs r0, r0
+ mov r10, r0
+_08117CC0:
+ mov r0, r12
+ adds r0, 0xC
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08117CD0
+ cmp r5, r9
+ bne _08117CF8
+_08117CD0:
+ adds r0, r5, 0
+ adds r0, 0x31
+ add r0, r8
+ ldrb r1, [r0]
+ 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
+ strb r1, [r0]
+ b _08117D4E
+ .align 2, 0
+_08117CEC: .4byte 0x02019000
+_08117CF0: .4byte gSprites
+_08117CF4: .4byte gUnknown_083F8C00
+_08117CF8:
+ adds r3, r5, 0
+ adds r3, 0x31
+ add r3, r8
+ ldrb r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ mov r0, r10
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r0, [r3]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r6
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldrb r0, [r0, 0x3]
+ adds r0, 0x1
+ lsls r0, 3
+ adds r0, 0x4
+ strh r0, [r2, 0x20]
+ ldrb r0, [r3]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r6
+ ldrb r1, [r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldrb r0, [r0, 0x4]
+ adds r0, 0x1
+ lsls r0, 3
+ adds r0, 0x3
+ strh r0, [r2, 0x22]
+_08117D4E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _08117CC0
+_08117D58:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8117C60
+
+ thumb_func_start sub_8117D68
+sub_8117D68: @ 8117D68
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _08117D98
+ ldr r2, _08117D90
+ ldr r0, _08117D94
+ adds r0, 0x6C
+ 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]
+ b _08117DE2
+ .align 2, 0
+_08117D90: .4byte gSprites
+_08117D94: .4byte 0x02019000
+_08117D98:
+ ldr r4, _08117DE8
+ ldr r3, _08117DEC
+ adds r3, 0x6C
+ 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 r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldr r0, _08117DF0
+ lsls r2, r5, 2
+ adds r2, r5
+ lsls r2, 2
+ adds r2, r0
+ ldrb r0, [r2, 0x3]
+ adds r0, 0x2
+ lsls r0, 3
+ strh r0, [r1, 0x20]
+ ldrb r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r2, 0x4]
+ adds r0, 0x2
+ lsls r0, 3
+ strh r0, [r1, 0x22]
+_08117DE2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08117DE8: .4byte gSprites
+_08117DEC: .4byte 0x02019000
+_08117DF0: .4byte gUnknown_083F8C00
+ thumb_func_end sub_8117D68
+
+ thumb_func_start sub_8117DF4
+sub_8117DF4: @ 8117DF4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ ldr r4, _08117E84
+ ldr r0, [r4]
+ ldr r5, _08117E88
+ adds r1, r5, 0
+ bl LZ77UnCompWram
+ str r5, [sp, 0x4]
+ add r0, sp, 0x4
+ ldrh r2, [r4, 0x6]
+ lsls r2, 16
+ ldrh r1, [r4, 0x4]
+ orrs r1, r2
+ str r1, [r0, 0x4]
+ bl LoadSpriteSheet
+ movs r1, 0xF
+ mov r0, sp
+ strh r1, [r0]
+ movs r0, 0
+ ldr r1, _08117E8C
+ adds r1, r5
+ mov r8, r1
+ ldr r7, _08117E90
+_08117E2A:
+ movs r4, 0
+ adds r6, r0, 0x1
+ lsls r5, r0, 2
+_08117E30:
+ adds r1, r5, r4
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _08117E94
+ adds r0, r1
+ movs r1, 0x28
+ mov r2, sp
+ bl sub_8117890
+ adds r1, r4, 0x7
+ adds r1, r5, r1
+ add r1, r8
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ adds r1, 0x2C
+ ldrb r0, [r1]
+ movs r2, 0x40
+ orrs r0, r2
+ movs r2, 0x80
+ orrs r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _08117E30
+ lsls r0, r6, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bls _08117E2A
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08117E84: .4byte gUnknown_083F9EE8
+_08117E88: .4byte 0x02000000
+_08117E8C: .4byte 0x0001903c
+_08117E90: .4byte gSprites
+_08117E94: .4byte gSpriteTemplate_83FA0DC
+ thumb_func_end sub_8117DF4
+
+ thumb_func_start sub_8117E98
+sub_8117E98: @ 8117E98
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r0, _08117F1C
+ ldrh r1, [r6, 0x2E]
+ ldrh r0, [r0, 0x24]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ asrs r1, 16
+ ldr r0, _08117F20
+ cmp r1, r0
+ ble _08117EB8
+ ldr r2, _08117F24
+ adds r0, r1, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+_08117EB8:
+ adds r0, r4, 0
+ bl Sin2
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ bl Cos2
+ lsls r2, r5, 16
+ asrs r2, 16
+ movs r3, 0x30
+ ldrsh r1, [r6, r3]
+ muls r1, r2
+ asrs r1, 12
+ strh r1, [r6, 0x24]
+ lsls r0, 16
+ asrs r4, r0, 16
+ negs r1, r4
+ movs r3, 0x30
+ ldrsh r0, [r6, r3]
+ muls r0, r1
+ asrs r0, 12
+ strh r0, [r6, 0x26]
+ ldrb r0, [r6, 0x3]
+ lsls r0, 26
+ lsrs r3, r0, 27
+ cmp r2, 0
+ bge _08117EF2
+ adds r2, 0xF
+_08117EF2:
+ lsls r0, r2, 12
+ lsrs r5, r0, 16
+ ldr r1, _08117F28
+ lsls r0, r3, 3
+ adds r1, r0, r1
+ adds r0, r4, 0
+ cmp r0, 0
+ bge _08117F04
+ adds r0, 0xF
+_08117F04:
+ asrs r0, 4
+ strh r0, [r1, 0x6]
+ strh r0, [r1]
+ strh r5, [r1, 0x2]
+ lsls r0, r5, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r1, 0x4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08117F1C: .4byte 0x02019000
+_08117F20: .4byte 0x00000167
+_08117F24: .4byte 0xfffffe98
+_08117F28: .4byte gOamMatrices
+ thumb_func_end sub_8117E98
+
+ thumb_func_start sub_8117F2C
+sub_8117F2C: @ 8117F2C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ movs r5, 0
+ ldr r7, _081180C8
+ mov r6, sp
+_08117F3A:
+ ldr r0, _081180CC
+ lsls r4, r5, 3
+ adds r4, r0
+ ldr r0, [r4]
+ adds r1, r7, 0
+ bl LZ77UnCompWram
+ str r7, [sp]
+ ldrh r2, [r4, 0x4]
+ ldr r0, _081180D0
+ ldr r1, [r6, 0x4]
+ ands r1, r0
+ orrs r1, r2
+ str r1, [r6, 0x4]
+ ldrh r2, [r4, 0x6]
+ lsls r2, 16
+ ldr r0, _081180D4
+ ands r0, r1
+ orrs r0, r2
+ str r0, [r6, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bls _08117F3A
+ ldr r0, _081180D8
+ movs r1, 0xD0
+ movs r2, 0x10
+ movs r3, 0x4
+ bl CreateSprite
+ ldr r4, _081180DC
+ adds r1, r4, 0
+ adds r1, 0x50
+ strb r0, [r1]
+ ldr r3, _081180E0
+ ldrb r1, [r1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ movs r5, 0
+ adds r4, 0x3C
+ adds r7, r3, 0
+_08117FA2:
+ lsls r1, r5, 19
+ movs r0, 0xC4
+ lsls r0, 16
+ adds r1, r0
+ asrs r1, 16
+ ldr r0, _081180E4
+ movs r2, 0x18
+ movs r3, 0
+ bl CreateSprite
+ adds r3, r5, 0
+ adds r3, 0x15
+ adds r3, r4
+ strb r0, [r3]
+ ldrb r1, [r3]
+ 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]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r6, 0x40
+ orrs r1, r6
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _08117FA2
+ ldr r0, _081180E8
+ movs r1, 0x78
+ movs r2, 0x44
+ movs r3, 0x4
+ bl CreateSprite
+ ldr r3, _081180DC
+ adds r1, r3, 0
+ adds r1, 0x55
+ strb r0, [r1]
+ ldr r2, _081180E0
+ ldrb r1, [r1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ orrs r1, r6
+ strb r1, [r0]
+ movs r5, 0
+ adds r3, 0x3C
+ mov r8, r3
+ adds r4, r2, 0
+_08118020:
+ lsls r1, r5, 20
+ movs r0, 0xC0
+ lsls r0, 16
+ adds r1, r0
+ asrs r1, 16
+ ldr r0, _081180EC
+ movs r2, 0x24
+ movs r3, 0x4
+ bl CreateSprite
+ adds r2, r5, 0
+ adds r2, 0x1A
+ add r2, r8
+ strb r0, [r2]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r7, 0x4
+ orrs r1, r7
+ strb r1, [r0]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r6, 0x40
+ orrs r1, r6
+ strb r1, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _08118020
+ ldr r0, _081180F0
+ movs r1, 0x98
+ movs r2, 0x60
+ movs r3, 0x9
+ bl CreateSprite
+ ldr r3, _081180DC
+ adds r3, 0x6C
+ strb r0, [r3]
+ ldr r4, _081180E0
+ ldrb r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r7
+ strb r0, [r1, 0x5]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ orrs r1, r6
+ strb r1, [r0]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r7
+ strb r1, [r0]
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081180C8: .4byte 0x02000000
+_081180CC: .4byte gUnknown_083FA21C
+_081180D0: .4byte 0xffff0000
+_081180D4: .4byte 0x0000ffff
+_081180D8: .4byte gSpriteTemplate_83FA2B0
+_081180DC: .4byte 0x02019000
+_081180E0: .4byte gSprites
+_081180E4: .4byte gSpriteTemplate_83FA2C8
+_081180E8: .4byte gSpriteTemplate_83FA2E0
+_081180EC: .4byte gSpriteTemplate_83FA2F8
+_081180F0: .4byte gSpriteTemplate_83FA310
+ thumb_func_end sub_8117F2C
+
+ thumb_func_start sub_81180F4
+sub_81180F4: @ 81180F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r0, 0xFA
+ lsls r0, 2
+ mov r8, r0
+ movs r4, 0
+ movs r6, 0
+ ldr r1, _081181D4
+ mov r9, r1
+ ldr r0, _081181D8
+ mov r10, r0
+_08118114:
+ adds r0, r7, 0
+ mov r1, r8
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r3, r6, 0
+ adds r3, 0x15
+ mov r0, r9
+ adds r0, 0x3C
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _081181D8
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r3, 0
+ cmp r5, 0
+ bne _0811814E
+ cmp r4, 0
+ bne _0811814E
+ cmp r6, 0x3
+ bne _081181A2
+_0811814E:
+ mov r3, r9
+ adds r3, 0x3C
+ adds r3, r0, r3
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r10
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r4, 0x5
+ negs r4, r4
+ adds r2, r4, 0
+ ands r1, r2
+ strb r1, [r0]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ mov r1, r10
+ adds r3, r0, r1
+ adds r4, r3, 0
+ adds r4, 0x40
+ ldr r1, _081181DC
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, [r0]
+ lsls r0, r5, 2
+ adds r0, r1
+ ldrh r2, [r0]
+ ldrh r4, [r4]
+ adds r2, r4
+ ldr r4, _081181E0
+ adds r0, r4, 0
+ ands r2, r0
+ ldrh r0, [r3, 0x4]
+ ldr r4, _081181E4
+ adds r1, r4, 0
+ ands r0, r1
+ orrs r0, r2
+ strh r0, [r3, 0x4]
+ movs r4, 0x1
+_081181A2:
+ adds r0, r7, 0
+ mov r1, r8
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r7, r0, 16
+ mov r0, r8
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x3
+ bls _08118114
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081181D4: .4byte 0x02019000
+_081181D8: .4byte gSprites
+_081181DC: .4byte gSprites + 0x8
+_081181E0: .4byte 0x000003ff
+_081181E4: .4byte 0xfffffc00
+ thumb_func_end sub_81180F4
+
+ thumb_func_start sub_81181E8
+sub_81181E8: @ 81181E8
+ push {r4,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _08118220
+ mov r0, sp
+ movs r2, 0x5
+ bl memcpy
+ cmp r4, 0x13
+ bls _08118200
+ movs r4, 0
+_08118200:
+ ldr r3, _08118224
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r2, r0, 2
+ adds r0, r2, r3
+ ldrb r0, [r0, 0x1]
+ lsls r0, 28
+ lsrs r0, 28
+ cmp r0, 0x4
+ beq _08118254
+ cmp r0, 0x4
+ bgt _08118228
+ cmp r0, 0x3
+ beq _0811822E
+ b _08118290
+ .align 2, 0
+_08118220: .4byte gUnknown_083FA608
+_08118224: .4byte gUnknown_083F8C00
+_08118228:
+ cmp r0, 0xC
+ beq _08118274
+ b _08118290
+_0811822E:
+ adds r0, r4, 0
+ movs r1, 0x5
+ bl __udivsi3
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08118250
+ adds r0, 0x16
+ adds r1, r4, r0
+ ldrb r0, [r1]
+ cmp r0, 0x3
+ bhi _08118290
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _0811826A
+ .align 2, 0
+_08118250: .4byte 0x02019000
+_08118254:
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08118270
+ adds r0, 0x12
+ adds r1, r4, r0
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bhi _08118290
+ ldrb r0, [r1]
+ adds r0, 0x2
+_0811826A:
+ add r0, sp
+ ldrb r0, [r0]
+ b _08118292
+ .align 2, 0
+_08118270: .4byte 0x02019000
+_08118274:
+ ldr r1, _0811828C
+ adds r0, r3, 0
+ adds r0, 0x8
+ adds r0, r2, r0
+ ldr r1, [r1, 0x8]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _08118290
+ mov r0, sp
+ ldrb r0, [r0, 0x4]
+ b _08118292
+ .align 2, 0
+_0811828C: .4byte 0x02019000
+_08118290:
+ movs r0, 0
+_08118292:
+ add sp, 0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81181E8
+
+ thumb_func_start sub_811829C
+sub_811829C: @ 811829C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _081182E8
+ adds r1, 0x55
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ ldr r2, _081182EC
+ adds r4, r1, r2
+ bl sub_81181E8
+ adds r3, r4, 0
+ adds r3, 0x2B
+ strb r0, [r3]
+ adds r2, r4, 0
+ adds r2, 0x40
+ ldr r1, [r4, 0x8]
+ ldrb r0, [r3]
+ ldr r1, [r1]
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0]
+ ldrh r2, [r2]
+ adds r1, r2
+ ldr r2, _081182F0
+ adds r0, r2, 0
+ ands r1, r0
+ ldrh r2, [r4, 0x4]
+ ldr r0, _081182F4
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081182E8: .4byte 0x02019000
+_081182EC: .4byte gSprites
+_081182F0: .4byte 0x000003ff
+_081182F4: .4byte 0xfffffc00
+ thumb_func_end sub_811829C
+
+ thumb_func_start sub_81182F8
+sub_81182F8: @ 81182F8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r5, 0
+ ldr r0, _08118320
+ ldrb r1, [r0, 0x19]
+ adds r3, r0, 0
+ cmp r1, 0x1
+ bne _08118310
+ movs r5, 0x2
+_08118310:
+ cmp r2, 0x6
+ bls _08118316
+ b _08118464
+_08118316:
+ lsls r0, r2, 2
+ ldr r1, _08118324
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08118320: .4byte 0x02019000
+_08118324: .4byte _08118328
+ .align 2, 0
+_08118328:
+ .4byte _08118464
+ .4byte _08118420
+ .4byte _081183F8
+ .4byte _081183EC
+ .4byte _081183C4
+ .4byte _081183B8
+ .4byte _08118344
+_08118344:
+ movs r4, 0
+ ldr r5, _081183A8
+ ldr r0, _081183AC
+ mov r8, r0
+ movs r2, 0x5
+ negs r2, r2
+ mov r12, r2
+ adds r6, r5, 0
+ adds r6, 0x8
+ ldr r7, _081183B0
+_08118358:
+ adds r3, r4, 0
+ adds r3, 0x1A
+ add r3, r8
+ ldrb r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ mov r0, r12
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, r0, r5
+ adds r2, r3, 0
+ adds r2, 0x40
+ adds r0, r6
+ ldr r0, [r0]
+ ldr r0, [r0]
+ ldrh r1, [r0]
+ ldrh r2, [r2]
+ adds r1, r2
+ ldr r2, _081183B4
+ adds r0, r2, 0
+ ands r1, r0
+ ldrh r2, [r3, 0x4]
+ adds r0, r7, 0
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _08118358
+ b _081184B2
+ .align 2, 0
+_081183A8: .4byte gSprites
+_081183AC: .4byte 0x0201903c
+_081183B0: .4byte 0xfffffc00
+_081183B4: .4byte 0x000003ff
+_081183B8:
+ ldr r2, _081183C0
+ adds r0, r3, 0
+ adds r0, 0x58
+ b _08118426
+ .align 2, 0
+_081183C0: .4byte gSprites
+_081183C4:
+ ldr r2, _081183E8
+ adds r0, r3, 0
+ adds r0, 0x58
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, r0, r2
+ adds r4, r3, 0
+ adds r4, 0x40
+ adds r2, 0x8
+ adds r0, r2
+ ldr r0, [r0]
+ ldr r1, [r0]
+ lsls r0, r5, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ b _08118442
+ .align 2, 0
+_081183E8: .4byte gSprites
+_081183EC:
+ ldr r2, _081183F4
+ adds r0, r3, 0
+ adds r0, 0x57
+ b _08118426
+ .align 2, 0
+_081183F4: .4byte gSprites
+_081183F8:
+ ldr r2, _0811841C
+ adds r0, r3, 0
+ adds r0, 0x57
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, r0, r2
+ adds r4, r3, 0
+ adds r4, 0x40
+ adds r2, 0x8
+ adds r0, r2
+ ldr r0, [r0]
+ ldr r1, [r0]
+ lsls r0, r5, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ b _08118442
+ .align 2, 0
+_0811841C: .4byte gSprites
+_08118420:
+ ldr r2, _08118458
+ adds r0, r3, 0
+ adds r0, 0x56
+_08118426:
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, r0, r2
+ adds r4, r3, 0
+ adds r4, 0x40
+ adds r2, 0x8
+ adds r0, r2
+ ldr r0, [r0]
+ ldr r1, [r0]
+ lsls r0, r5, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x4]
+_08118442:
+ ldrh r4, [r4]
+ adds r1, r4
+ ldr r2, _0811845C
+ adds r0, r2, 0
+ ands r1, r0
+ ldrh r2, [r3, 0x4]
+ ldr r0, _08118460
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ b _081184B2
+ .align 2, 0
+_08118458: .4byte gSprites
+_0811845C: .4byte 0x000003ff
+_08118460: .4byte 0xfffffc00
+_08118464:
+ movs r4, 0
+ lsls r6, r5, 2
+ ldr r5, _081184BC
+ ldr r0, _081184C0
+ mov r8, r0
+ adds r7, r5, 0
+ adds r7, 0x8
+ ldr r2, _081184C4
+ mov r12, r2
+_08118476:
+ adds r0, r4, 0
+ adds r0, 0x1A
+ add r0, r8
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, r0, r5
+ adds r2, r3, 0
+ adds r2, 0x40
+ adds r0, r7
+ ldr r0, [r0]
+ ldr r0, [r0]
+ adds r0, r6, r0
+ ldrh r1, [r0, 0x8]
+ ldrh r2, [r2]
+ adds r1, r2
+ ldr r2, _081184C8
+ adds r0, r2, 0
+ ands r1, r0
+ ldrh r2, [r3, 0x4]
+ mov r0, r12
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3, 0x4]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _08118476
+_081184B2:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081184BC: .4byte gSprites
+_081184C0: .4byte 0x0201903c
+_081184C4: .4byte 0xfffffc00
+_081184C8: .4byte 0x000003ff
+ thumb_func_end sub_81182F8
+
+ thumb_func_start sub_81184CC
+sub_81184CC: @ 81184CC
+ ldr r1, _081184D4
+ ldrh r1, [r1, 0x26]
+ strh r1, [r0, 0x24]
+ bx lr
+ .align 2, 0
+_081184D4: .4byte 0x02019000
+ thumb_func_end sub_81184CC
+
+ thumb_func_start sub_81184D8
+sub_81184D8: @ 81184D8
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r4, _08118544
+ ldr r0, [r4]
+ ldr r5, _08118548
+ adds r1, r5, 0
+ bl LZ77UnCompWram
+ str r5, [sp]
+ ldrh r1, [r4, 0x6]
+ lsls r1, 16
+ ldrh r0, [r4, 0x4]
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r0, sp
+ bl LoadSpriteSheet
+ ldr r0, _0811854C
+ movs r1, 0x74
+ movs r2, 0x50
+ movs r3, 0x51
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08118550
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0xC8
+ lsls r0, 9
+ adds r5, r0
+ ldrh r0, [r5, 0x24]
+ movs r2, 0
+ strh r0, [r1, 0x2E]
+ strh r2, [r1, 0x30]
+ adds r3, r1, 0
+ adds r3, 0x2C
+ ldrb r0, [r3]
+ movs r2, 0x40
+ orrs r0, r2
+ movs r2, 0x80
+ orrs r0, r2
+ strb r0, [r3]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r1]
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08118544: .4byte gUnknown_083FA42C
+_08118548: .4byte 0x02000000
+_0811854C: .4byte gSpriteTemplate_83FA434
+_08118550: .4byte gSprites
+ thumb_func_end sub_81184D8
+
+ thumb_func_start sub_8118554
+sub_8118554: @ 8118554
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ ldr r1, _08118574
+ lsls r0, 3
+ adds r0, r1
+ ldr r2, _08118578
+ ldrh r1, [r2, 0x2C]
+ strh r1, [r0, 0x6]
+ ldrh r1, [r2, 0x2C]
+ strh r1, [r0]
+ ldrh r1, [r2, 0x2E]
+ strh r1, [r0, 0x2]
+ ldrh r1, [r2, 0x30]
+ strh r1, [r0, 0x4]
+ bx lr
+ .align 2, 0
+_08118574: .4byte gOamMatrices
+_08118578: .4byte 0x02019000
+ thumb_func_end sub_8118554
+
+ thumb_func_start sub_811857C
+sub_811857C: @ 811857C
+ push {r4-r6,lr}
+ movs r4, 0
+ ldr r6, _081185DC
+ ldr r5, _081185E0
+_08118584:
+ movs r3, 0x39
+ subs r3, r4
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, _081185E4
+ movs r1, 0x74
+ movs r2, 0x50
+ bl CreateSprite
+ adds r3, r4, r6
+ strb r0, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _081185CA
+ ldrb r1, [r3]
+ 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]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0]
+_081185CA:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _08118584
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081185DC: .4byte 0x0201903c
+_081185E0: .4byte gSprites
+_081185E4: .4byte gSpriteTemplate_83FA40C
+ thumb_func_end sub_811857C
+
+ thumb_func_start sub_81185E8
+sub_81185E8: @ 81185E8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _08118660
+ adds r0, 0x3C
+ ldrb r5, [r0]
+ movs r6, 0
+ ldr r7, _08118664
+ movs r0, 0x1C
+ adds r0, r7
+ mov r10, r0
+ movs r1, 0x2E
+ adds r1, r7
+ mov r9, r1
+ mov r8, r6
+_0811860A:
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ adds r0, r4, r7
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r3]
+ mov r1, r10
+ adds r2, r4, r1
+ ldr r1, _08118668
+ str r1, [r2]
+ movs r1, 0
+ bl StartSpriteAnim
+ movs r1, 0
+ adds r2, r5, 0x1
+ adds r3, r6, 0x1
+_08118632:
+ lsls r0, r1, 1
+ adds r0, r4
+ add r0, r9
+ mov r5, r8
+ strh r5, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x7
+ bls _08118632
+ lsls r0, r2, 24
+ lsrs r5, r0, 24
+ lsls r0, r3, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x5
+ bls _0811860A
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08118660: .4byte 0x02019000
+_08118664: .4byte gSprites
+_08118668: .4byte SpriteCallbackDummy
+ thumb_func_end sub_81185E8
+
+ thumb_func_start sub_811866C
+sub_811866C: @ 811866C
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ ldr r0, _0811869C
+ ldrh r4, [r0, 0x24]
+ movs r2, 0x24
+ ldrsh r1, [r0, r2]
+ ldrh r2, [r3, 0x34]
+ movs r5, 0x34
+ ldrsh r0, [r3, r5]
+ cmp r1, r0
+ ble _081186A8
+ movs r1, 0xB4
+ lsls r1, 1
+ adds r0, r2, r1
+ subs r2, r0, r4
+ strh r2, [r3, 0x3A]
+ lsls r1, r2, 16
+ ldr r0, _081186A0
+ cmp r1, r0
+ ble _081186AC
+ ldr r5, _081186A4
+ adds r0, r2, r5
+ b _081186AA
+ .align 2, 0
+_0811869C: .4byte 0x02019000
+_081186A0: .4byte 0x01670000
+_081186A4: .4byte 0xfffffe98
+_081186A8:
+ subs r0, r2, r4
+_081186AA:
+ strh r0, [r3, 0x3A]
+_081186AC:
+ movs r1, 0x3A
+ ldrsh r0, [r3, r1]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811866C
+
+ thumb_func_start sub_81186B8
+sub_81186B8: @ 81186B8
+ push {r4,lr}
+ bl sub_811866C
+ ldr r4, _081186E0
+ lsls r0, 16
+ asrs r0, 16
+ bl __floatsisf
+ ldr r1, _081186E4
+ bl __divsf3
+ bl __fixunssfsi
+ adds r4, 0x7E
+ strb r0, [r4]
+ ldrb r0, [r4]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081186E0: .4byte 0x02019000
+_081186E4: .4byte 0x41f00000
+ thumb_func_end sub_81186B8
+
+ thumb_func_start sub_81186E8
+sub_81186E8: @ 81186E8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_811866C
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1E
+ bl __modsi3
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0xE
+ bne _08118708
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ b _0811871E
+_08118708:
+ cmp r1, 0xD
+ bgt _08118710
+ movs r0, 0xE
+ b _08118712
+_08118710:
+ movs r0, 0x2B
+_08118712:
+ subs r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+_0811871E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81186E8
+
+ thumb_func_start sub_8118724
+sub_8118724: @ 8118724
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ ldr r5, _08118770
+ adds r4, r5, 0
+ adds r4, 0x8C
+ adds r1, r5, 0
+ adds r1, 0x90
+ ldr r0, [r4]
+ ldr r1, [r1]
+ bl __addsf3
+ adds r1, r0, 0
+ str r1, [r4]
+ movs r0, 0x88
+ adds r0, r5
+ mov r8, r0
+ ldr r0, [r0]
+ bl __addsf3
+ adds r4, r0, 0
+ mov r1, r8
+ str r4, [r1]
+ ldr r7, _08118774
+ adds r1, r7, 0
+ bl __gesf2
+ cmp r0, 0
+ blt _08118778
+ adds r0, r4, 0
+ adds r1, r7, 0
+ bl __subsf3
+ mov r2, r8
+ str r0, [r2]
+ b _08118790
+ .align 2, 0
+_08118770: .4byte 0x02019000
+_08118774: .4byte 0x43b40000
+_08118778:
+ ldr r1, _08118824
+ adds r0, r4, 0
+ bl __ltsf2
+ cmp r0, 0
+ bge _08118790
+ adds r0, r4, 0
+ adds r1, r7, 0
+ bl __addsf3
+ mov r1, r8
+ str r0, [r1]
+_08118790:
+ adds r0, r5, 0
+ adds r0, 0x88
+ ldr r0, [r0]
+ bl __fixsfsi
+ strh r0, [r6, 0x34]
+ adds r4, r5, 0
+ adds r4, 0x98
+ adds r1, r5, 0
+ adds r1, 0x9C
+ ldr r0, [r4]
+ ldr r1, [r1]
+ bl __addsf3
+ adds r1, r0, 0
+ str r1, [r4]
+ subs r4, 0x4
+ ldr r0, [r4]
+ bl __addsf3
+ str r0, [r4]
+ bl __fixsfsi
+ strh r0, [r6, 0x36]
+ ldrh r0, [r6, 0x34]
+ bl Sin2
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrh r0, [r6, 0x34]
+ bl Cos2
+ lsls r4, 16
+ asrs r4, 16
+ movs r2, 0x36
+ ldrsh r1, [r6, r2]
+ muls r1, r4
+ asrs r1, 12
+ strh r1, [r6, 0x24]
+ lsls r0, 16
+ asrs r0, 16
+ negs r0, r0
+ movs r2, 0x36
+ ldrsh r1, [r6, r2]
+ muls r0, r1
+ asrs r0, 12
+ strh r0, [r6, 0x26]
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _08118818
+ ldr r0, _08118828
+ ldr r4, _0811882C
+ ldrh r2, [r6, 0x24]
+ lsls r2, 24
+ asrs r2, 24
+ adds r1, r4, 0
+ bl m4aMPlayPanpotControl
+ ldr r0, _08118830
+ ldrh r2, [r6, 0x24]
+ lsls r2, 24
+ asrs r2, 24
+ adds r1, r4, 0
+ bl m4aMPlayPanpotControl
+_08118818:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08118824: .4byte 0x00000000
+_08118828: .4byte gMPlay_SE1
+_0811882C: .4byte 0x0000ffff
+_08118830: .4byte gMPlay_SE2
+ thumb_func_end sub_8118724
+
+ thumb_func_start sub_8118834
+sub_8118834: @ 8118834
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r1, _0811888C
+ ldrh r0, [r5, 0x3A]
+ ldrh r1, [r1, 0x24]
+ adds r2, r0, r1
+ strh r2, [r5, 0x34]
+ lsls r1, r2, 16
+ ldr r0, _08118890
+ cmp r1, r0
+ ble _08118850
+ ldr r1, _08118894
+ adds r0, r2, r1
+ strh r0, [r5, 0x34]
+_08118850:
+ ldrh r0, [r5, 0x34]
+ bl Sin2
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrh r0, [r5, 0x34]
+ bl Cos2
+ lsls r4, 16
+ asrs r4, 16
+ movs r2, 0x36
+ ldrsh r1, [r5, r2]
+ muls r1, r4
+ asrs r1, 12
+ strh r1, [r5, 0x24]
+ lsls r0, 16
+ asrs r0, 16
+ negs r0, r0
+ movs r2, 0x36
+ ldrsh r1, [r5, r2]
+ muls r0, r1
+ ldr r1, _08118898
+ asrs r0, 12
+ ldrh r1, [r1]
+ adds r0, r1
+ strh r0, [r5, 0x26]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811888C: .4byte 0x02019000
+_08118890: .4byte 0x01670000
+_08118894: .4byte 0xfffffe98
+_08118898: .4byte gSpriteCoordOffsetY
+ thumb_func_end sub_8118834
+
+ thumb_func_start sub_811889C
+sub_811889C: @ 811889C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ bl sub_8118724
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x36]
+ adds r0, 0x84
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xD4
+ bls _081188C2
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ b _081188CE
+_081188C2:
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+_081188CE:
+ strb r0, [r2]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1D
+ ble _0811898E
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _08118908
+ ldr r6, _08118900
+ adds r4, r6, 0
+ adds r4, 0x94
+ adds r0, r6, 0
+ adds r0, 0xA0
+ ldr r0, [r0]
+ ldr r1, _08118904
+ bl __subsf3
+ adds r1, r0, 0
+ ldr r0, [r4]
+ bl __lesf2
+ cmp r0, 0
+ bgt _0811898E
+ b _08118926
+ .align 2, 0
+_08118900: .4byte 0x02019000
+_08118904: .4byte 0x40000000
+_08118908:
+ ldr r6, _08118994
+ adds r4, r6, 0
+ adds r4, 0x94
+ adds r0, r6, 0
+ adds r0, 0xA0
+ ldr r0, [r0]
+ ldr r1, _08118998
+ bl __subsf3
+ adds r1, r0, 0
+ ldr r0, [r4]
+ bl __gesf2
+ cmp r0, 0
+ blt _0811898E
+_08118926:
+ adds r1, r6, 0
+ adds r1, 0x7D
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldrb r1, [r6, 0x3]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r6, 0x3]
+ adds r0, r5, 0
+ adds r0, 0x2B
+ ldrb r1, [r0]
+ adds r1, 0x3
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ adds r0, r5, 0
+ bl sub_81186B8
+ movs r0, 0x1E
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_811866C
+ movs r1, 0x3A
+ ldrsh r0, [r5, r1]
+ movs r1, 0x1E
+ bl __divsi3
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 1
+ adds r1, 0xF
+ strh r1, [r5, 0x3A]
+ ldr r0, _0811899C
+ str r0, [r5, 0x1C]
+ movs r0, 0x47
+ bl m4aSongNumStartOrChange
+ adds r2, r6, 0
+ adds r2, 0x9C
+ adds r1, r6, 0
+ adds r1, 0x98
+ ldr r0, _081189A0
+ str r0, [r1]
+ str r0, [r2]
+ subs r1, 0xC
+ ldr r0, _081189A4
+ str r0, [r1]
+_0811898E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08118994: .4byte 0x02019000
+_08118998: .4byte 0x40000000
+_0811899C: .4byte sub_8118834
+_081189A0: .4byte 0x00000000
+_081189A4: .4byte 0xbf800000
+ thumb_func_end sub_811889C
+
+ thumb_func_start sub_81189A8
+sub_81189A8: @ 81189A8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r7, r0, 0
+ bl sub_8118724
+ movs r1, 0x34
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ beq _081189C6
+ cmp r0, 0xB4
+ beq _08118A2C
+ b _08118B0C
+_081189C6:
+ movs r1, 0x2E
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x1
+ bne _081189D0
+ b _08118B0C
+_081189D0:
+ movs r1, 0x3C
+ ldrsh r0, [r7, r1]
+ bl __floatsisf
+ mov r8, r0
+ ldr r0, _08118A24
+ mov r9, r0
+ ldr r1, _08118A28
+ mov r10, r1
+ ldrb r4, [r1, 0x4]
+ lsls r4, 30
+ lsrs r0, r4, 25
+ add r0, r9
+ ldrb r0, [r0, 0x1]
+ bl __floatsisf
+ adds r1, r0, 0
+ mov r0, r8
+ bl __mulsf3
+ adds r6, r0, 0
+ lsrs r0, r4, 25
+ add r0, r9
+ ldrb r0, [r0, 0x2]
+ subs r0, 0x1
+ bl __floatsisf
+ adds r1, r0, 0
+ adds r0, r6, 0
+ bl __addsf3
+ adds r5, r0, 0
+ lsrs r4, 25
+ add r4, r9
+ ldrh r0, [r4, 0xC]
+ bl __floatsisf
+ adds r1, r0, 0
+ mov r0, r8
+ bl __divsf3
+ b _08118A8A
+ .align 2, 0
+_08118A24: .4byte gUnknown_083F8DF4
+_08118A28: .4byte 0x02019000
+_08118A2C:
+ movs r1, 0x2E
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ beq _08118B0C
+ movs r1, 0x3C
+ ldrsh r0, [r7, r1]
+ bl __floatsisf
+ mov r8, r0
+ ldr r0, _08118B1C
+ mov r9, r0
+ ldr r1, _08118B20
+ mov r10, r1
+ ldrb r4, [r1, 0x4]
+ lsls r4, 30
+ lsrs r0, r4, 25
+ add r0, r9
+ ldrb r0, [r0, 0x1]
+ bl __floatsisf
+ adds r1, r0, 0
+ mov r0, r8
+ bl __mulsf3
+ adds r6, r0, 0
+ lsrs r0, r4, 25
+ add r0, r9
+ ldrb r0, [r0, 0x2]
+ subs r0, 0x1
+ bl __floatsisf
+ adds r1, r0, 0
+ adds r0, r6, 0
+ bl __addsf3
+ adds r5, r0, 0
+ lsrs r4, 25
+ add r4, r9
+ ldrh r0, [r4, 0xC]
+ bl __floatsisf
+ adds r1, r0, 0
+ mov r0, r8
+ bl __divsf3
+ bl __negsf2
+_08118A8A:
+ adds r2, r0, 0
+ mov r6, r10
+ adds r1, r6, 0
+ adds r1, 0xA0
+ adds r0, r6, 0
+ adds r0, 0x94
+ ldr r0, [r0]
+ str r0, [r1]
+ adds r0, r6, 0
+ adds r0, 0x98
+ str r2, [r0]
+ movs r0, 0x9C
+ adds r0, r6
+ mov r8, r0
+ adds r0, r2, 0
+ adds r1, r2, 0
+ bl __addsf3
+ adds r1, r5, 0
+ bl __divsf3
+ adds r4, r0, 0
+ adds r0, r5, 0
+ adds r1, r5, 0
+ bl __mulsf3
+ adds r1, r0, 0
+ ldr r0, _08118B24
+ bl __divsf3
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl __addsf3
+ bl __negsf2
+ mov r1, r8
+ str r0, [r1]
+ adds r1, r6, 0
+ adds r1, 0x8C
+ ldr r0, _08118B28
+ str r0, [r1]
+ adds r2, r7, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r7, 0
+ adds r0, 0x2A
+ movs r2, 0
+ strb r2, [r0]
+ adds r3, r7, 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]
+ ldr r0, _08118B2C
+ str r0, [r7, 0x1C]
+ strh r2, [r7, 0x32]
+_08118B0C:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08118B1C: .4byte gUnknown_083F8DF4
+_08118B20: .4byte 0x02019000
+_08118B24: .4byte 0x40000000
+_08118B28: .4byte 0x00000000
+_08118B2C: .4byte sub_811889C
+ thumb_func_end sub_81189A8
+
+ thumb_func_start sub_8118B30
+sub_8118B30: @ 8118B30
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ bl __floatsisf
+ adds r4, r0, 0
+ ldr r1, _08118BCC
+ bl __mulsf3
+ adds r1, r4, 0
+ bl __mulsf3
+ bl __fixsfsi
+ adds r1, r0, 0
+ subs r1, 0x2D
+ strh r1, [r5, 0x26]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ strh r0, [r5, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1D
+ ble _08118BC6
+ lsls r0, r1, 16
+ cmp r0, 0
+ blt _08118BC6
+ ldr r4, _08118BD0
+ adds r1, r4, 0
+ adds r1, 0x7D
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r4, 0x3]
+ adds r0, r5, 0
+ adds r0, 0x2B
+ ldrb r1, [r0]
+ adds r1, 0x3
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ adds r0, r5, 0
+ bl sub_81186B8
+ movs r0, 0x1E
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_811866C
+ movs r1, 0x3A
+ ldrsh r0, [r5, r1]
+ movs r1, 0x1E
+ bl __divsi3
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 1
+ adds r1, 0xF
+ strh r1, [r5, 0x3A]
+ ldr r0, _08118BD4
+ str r0, [r5, 0x1C]
+ movs r0, 0x47
+ bl m4aSongNumStartOrChange
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+_08118BC6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08118BCC: .4byte 0x3d4ccccd
+_08118BD0: .4byte 0x02019000
+_08118BD4: .4byte sub_8118834
+ thumb_func_end sub_8118B30
+
+ thumb_func_start sub_8118BD8
+sub_8118BD8: @ 8118BD8
+ push {r4,lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x32]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2C
+ bgt _08118C1C
+ ldrh r4, [r3, 0x26]
+ subs r0, r4, 0x1
+ strh r0, [r3, 0x26]
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0x2D
+ bne _08118CA2
+ ldr r2, _08118C14
+ ldr r0, _08118C18
+ adds r0, 0x73
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08118CA2
+ strh r4, [r3, 0x26]
+ b _08118CA2
+ .align 2, 0
+_08118C14: .4byte gSprites
+_08118C18: .4byte 0x02019000
+_08118C1C:
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r2, 0x3C
+ ldrsh r1, [r3, r2]
+ cmp r0, r1
+ bge _08118C68
+ ldr r2, _08118C58
+ ldr r0, _08118C5C
+ adds r0, 0x73
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ adds r0, r1, 0
+ adds r0, 0x2C
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bne _08118CA2
+ adds r0, r1, 0
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08118C60
+ ldrh r0, [r3, 0x26]
+ adds r0, 0x1
+ strh r0, [r3, 0x26]
+ b _08118CA2
+ .align 2, 0
+_08118C58: .4byte gSprites
+_08118C5C: .4byte 0x02019000
+_08118C60:
+ ldrh r0, [r3, 0x26]
+ subs r0, 0x1
+ strh r0, [r3, 0x26]
+ b _08118CA2
+_08118C68:
+ adds r2, r3, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r1, r3, 0
+ adds r1, 0x2A
+ movs r2, 0
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x3F
+ adds r0, r3
+ mov r12, r0
+ ldrb r0, [r0]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ strh r2, [r3, 0x32]
+ ldr r0, _08118CA8
+ str r0, [r3, 0x1C]
+ movs r0, 0x3D
+ bl m4aSongNumStart
+_08118CA2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08118CA8: .4byte sub_8118B30
+ thumb_func_end sub_8118BD8
+
+ thumb_func_start sub_8118CAC
+sub_8118CAC: @ 8118CAC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8118724
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x5A
+ beq _08118CC6
+ movs r0, 0x87
+ lsls r0, 1
+ cmp r1, r0
+ beq _08118CD0
+ b _08118CE0
+_08118CC6:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08118CE0
+ b _08118CD8
+_08118CD0:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08118CE0
+_08118CD8:
+ ldr r0, _08118CE8
+ str r0, [r4, 0x1C]
+ movs r0, 0
+ strh r0, [r4, 0x32]
+_08118CE0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08118CE8: .4byte sub_8118BD8
+ thumb_func_end sub_8118CAC
+
+ thumb_func_start sub_8118CEC
+sub_8118CEC: @ 8118CEC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8118724
+ ldr r0, _08118D10
+ ldrb r0, [r0, 0x3]
+ lsls r0, 27
+ lsrs r0, 27
+ cmp r0, 0
+ beq _08118D04
+ cmp r0, 0x1
+ beq _08118D18
+_08118D04:
+ adds r0, r4, 0
+ bl sub_8119224
+ ldr r0, _08118D14
+ b _08118D20
+ .align 2, 0
+_08118D10: .4byte 0x02019000
+_08118D14: .4byte sub_81189A8
+_08118D18:
+ adds r0, r4, 0
+ bl sub_81193D4
+ ldr r0, _08118D28
+_08118D20:
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08118D28: .4byte sub_8118CAC
+ thumb_func_end sub_8118CEC
+
+ thumb_func_start prev_quest_read_x24_hm_usage
+prev_quest_read_x24_hm_usage: @ 8118D2C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_8118724
+ ldrh r0, [r5, 0x32]
+ subs r0, 0x1
+ strh r0, [r5, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bne _08118D50
+ ldr r4, _08118DB8
+ adds r4, 0x98
+ ldr r0, [r4]
+ ldr r1, _08118DBC
+ bl __mulsf3
+ str r0, [r4]
+_08118D50:
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _08118DDC
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _08118DC4
+ ldr r1, _08118DB8
+ adds r2, r1, 0
+ adds r2, 0x7D
+ movs r0, 0xFF
+ strb r0, [r2]
+ ldrb r2, [r1, 0x3]
+ movs r0, 0x7F
+ ands r0, r2
+ strb r0, [r1, 0x3]
+ adds r0, r5, 0
+ adds r0, 0x2B
+ ldrb r1, [r0]
+ adds r1, 0x3
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ adds r0, r5, 0
+ bl sub_81186B8
+ movs r0, 0x1E
+ strh r0, [r5, 0x36]
+ adds r0, r5, 0
+ bl sub_811866C
+ movs r1, 0x3A
+ ldrsh r0, [r5, r1]
+ movs r1, 0x1E
+ bl __divsi3
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 1
+ adds r1, 0xF
+ strh r1, [r5, 0x3A]
+ ldr r0, _08118DC0
+ str r0, [r5, 0x1C]
+ movs r0, 0x47
+ bl m4aSongNumStartOrChange
+ b _08118DDC
+ .align 2, 0
+_08118DB8: .4byte 0x02019000
+_08118DBC: .4byte 0xbf800000
+_08118DC0: .4byte sub_8118834
+_08118DC4:
+ adds r0, r5, 0
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ movs r0, 0x38
+ bl m4aSongNumStart
+ adds r0, r5, 0
+ bl sub_811952C
+_08118DDC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end prev_quest_read_x24_hm_usage
+
+ thumb_func_start sub_8118DE4
+sub_8118DE4: @ 8118DE4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r7, r0, 0
+ bl sub_8118724
+ movs r0, 0
+ strh r0, [r7, 0x32]
+ adds r0, r7, 0
+ bl sub_81186B8
+ ldr r1, _08118E70
+ ldr r6, _08118E74
+ movs r0, 0x7E
+ adds r0, r6
+ mov r8, r0
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, [r6, 0x8]
+ ands r0, r1
+ cmp r0, 0
+ bne _08118E7C
+ adds r1, r6, 0
+ adds r1, 0x7D
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldrb r1, [r6, 0x3]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r6, 0x3]
+ adds r0, r7, 0
+ adds r0, 0x2B
+ ldrb r1, [r0]
+ adds r1, 0x3
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r7, 0
+ bl StartSpriteAnim
+ adds r0, r7, 0
+ bl sub_81186B8
+ movs r0, 0x1E
+ strh r0, [r7, 0x36]
+ adds r0, r7, 0
+ bl sub_811866C
+ movs r1, 0x3A
+ ldrsh r0, [r7, r1]
+ movs r1, 0x1E
+ bl __divsi3
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 1
+ adds r1, 0xF
+ strh r1, [r7, 0x3A]
+ ldr r0, _08118E78
+ str r0, [r7, 0x1C]
+ movs r0, 0x47
+ bl m4aSongNumStartOrChange
+ b _08118F74
+ .align 2, 0
+_08118E70: .4byte gUnknown_083F8D90
+_08118E74: .4byte 0x02019000
+_08118E78: .4byte sub_8118834
+_08118E7C:
+ movs r0, 0x38
+ bl m4aSongNumStart
+ bl Random
+ movs r2, 0x1
+ mov r9, r2
+ mov r1, r9
+ ands r1, r0
+ mov r9, r1
+ cmp r1, 0
+ beq _08118EC0
+ adds r1, r6, 0
+ adds r1, 0x8C
+ ldr r0, _08118EB8
+ str r0, [r1]
+ mov r2, r8
+ ldrb r0, [r2]
+ adds r0, 0x1
+ movs r1, 0xC
+ bl __modsi3
+ lsls r1, r0, 24
+ lsrs r2, r1, 24
+ adds r1, r6, 0
+ adds r1, 0x7F
+ strb r0, [r1]
+ ldr r5, _08118EBC
+ b _08118EF4
+ .align 2, 0
+_08118EB8: .4byte 0x00000000
+_08118EBC: .4byte gUnknown_083F8DF4
+_08118EC0:
+ adds r4, r6, 0
+ adds r4, 0x8C
+ ldr r5, _08118F1C
+ ldrb r0, [r6, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r1, r5, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r1, 0
+ bl __addsf3
+ str r0, [r4]
+ mov r0, r8
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ adds r0, 0xB
+ movs r1, 0xC
+ bl __modsi3
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r6, 0
+ adds r0, 0x7F
+ strb r4, [r0]
+_08118EF4:
+ ldr r0, _08118F20
+ lsls r1, r2, 3
+ adds r0, 0x4
+ adds r1, r0
+ ldr r2, _08118F24
+ ldr r1, [r1]
+ ldr r0, [r2, 0x8]
+ ands r1, r0
+ cmp r1, 0
+ beq _08118F28
+ movs r0, 0x1
+ strh r0, [r7, 0x2E]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r5
+ ldrb r0, [r0, 0x2]
+ strh r0, [r7, 0x32]
+ b _08118F64
+ .align 2, 0
+_08118F1C: .4byte gUnknown_083F8DF4
+_08118F20: .4byte gUnknown_083F8D90
+_08118F24: .4byte 0x02019000
+_08118F28:
+ strh r1, [r7, 0x2E]
+ ldrb r1, [r2, 0x4]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08118F40
+ lsls r0, r1, 30
+ lsrs r0, 25
+ adds r0, r5
+ ldrb r0, [r0, 0x1]
+ strh r0, [r7, 0x32]
+ b _08118F64
+_08118F40:
+ lsls r0, r1, 30
+ lsrs r0, 25
+ adds r0, r5
+ ldrb r0, [r0, 0x2]
+ strh r0, [r7, 0x32]
+ mov r1, r9
+ cmp r1, 0
+ beq _08118F5C
+ adds r1, r2, 0
+ adds r1, 0x8C
+ ldr r0, _08118F58
+ b _08118F62
+ .align 2, 0
+_08118F58: .4byte 0x3f000000
+_08118F5C:
+ adds r1, r2, 0
+ adds r1, 0x8C
+ ldr r0, _08118F80
+_08118F62:
+ str r0, [r1]
+_08118F64:
+ adds r1, r2, 0
+ adds r1, 0x98
+ ldr r0, _08118F84
+ str r0, [r1]
+ ldr r0, _08118F88
+ str r0, [r7, 0x1C]
+ movs r0, 0x5
+ strh r0, [r7, 0x30]
+_08118F74:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08118F80: .4byte 0xbfc00000
+_08118F84: .4byte 0x3dae147b
+_08118F88: .4byte prev_quest_read_x24_hm_usage
+ thumb_func_end sub_8118DE4
+
+ thumb_func_start sub_8118F8C
+sub_8118F8C: @ 8118F8C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r6, r0, 0
+ bl sub_8118724
+ ldr r5, _08119018
+ movs r0, 0x8C
+ adds r0, r5
+ mov r8, r0
+ ldr r0, [r0]
+ ldr r1, _0811901C
+ bl __gtsf2
+ cmp r0, 0
+ bgt _0811906E
+ adds r0, r6, 0
+ bl sub_81186B8
+ adds r0, r6, 0
+ bl sub_81186E8
+ lsls r0, 16
+ cmp r0, 0
+ bne _08119030
+ adds r1, r5, 0
+ adds r1, 0x90
+ ldr r0, _08119020
+ str r0, [r1]
+ ldr r1, _08119024
+ mov r9, r1
+ ldrb r0, [r5, 0x4]
+ lsls r7, r0, 30
+ lsrs r0, r7, 25
+ add r0, r9
+ movs r4, 0x3
+ ldrsb r4, [r0, r4]
+ adds r0, r4, 0
+ bl __floatsisf
+ adds r5, r0, 0
+ cmp r4, 0
+ bge _08118FEC
+ ldr r1, _08119028
+ bl __addsf3
+ adds r5, r0, 0
+_08118FEC:
+ lsrs r0, r7, 25
+ add r0, r9
+ ldrb r0, [r0, 0x4]
+ adds r0, 0x1
+ bl __floatsisf
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl __divsf3
+ adds r1, r0, 0
+ mov r2, r8
+ ldr r0, [r2]
+ bl __subsf3
+ mov r1, r8
+ str r0, [r1]
+ movs r0, 0x4
+ strh r0, [r6, 0x30]
+ ldr r0, _0811902C
+ str r0, [r6, 0x1C]
+ b _0811906E
+ .align 2, 0
+_08119018: .4byte 0x02019000
+_0811901C: .4byte 0x3f000000
+_08119020: .4byte 0x00000000
+_08119024: .4byte gUnknown_083F8DF4
+_08119028: .4byte 0x43800000
+_0811902C: .4byte sub_8118DE4
+_08119030:
+ adds r6, r5, 0
+ adds r6, 0x90
+ ldr r0, [r6]
+ ldr r4, _0811907C
+ adds r1, r4, 0
+ bl __nesf2
+ cmp r0, 0
+ beq _0811906E
+ mov r2, r8
+ ldr r0, [r2]
+ adds r1, r4, 0
+ bl __ltsf2
+ cmp r0, 0
+ bge _0811906E
+ str r4, [r6]
+ mov r0, r8
+ str r4, [r0]
+ adds r4, r5, 0
+ adds r4, 0x98
+ ldr r0, [r4]
+ bl __extendsfdf2
+ ldr r2, _08119080
+ ldr r3, _08119084
+ bl __divdf3
+ bl __truncdfsf2
+ str r0, [r4]
+_0811906E:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811907C: .4byte 0x00000000
+_08119080: .4byte 0x3ff33333
+_08119084: .4byte 0x33333333
+ thumb_func_end sub_8118F8C
+
+ thumb_func_start sub_8119088
+sub_8119088: @ 8119088
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ bl sub_8118724
+ ldr r5, _08119120
+ adds r0, r5, 0
+ adds r0, 0x94
+ ldr r0, [r0]
+ ldr r1, _08119124
+ bl __gtsf2
+ cmp r0, 0
+ bgt _0811911A
+ adds r7, r5, 0
+ adds r7, 0x98
+ adds r0, r5, 0
+ adds r0, 0x86
+ movs r1, 0
+ ldrsh r4, [r0, r1]
+ adds r0, r4, 0
+ bl __floatsisf
+ adds r2, r0, 0
+ cmp r4, 0
+ bge _081190C2
+ ldr r1, _08119128
+ bl __addsf3
+ adds r2, r0, 0
+_081190C2:
+ ldr r0, _0811912C
+ adds r1, r2, 0
+ bl __divsf3
+ bl __negsf2
+ str r0, [r7]
+ adds r7, r5, 0
+ adds r7, 0x90
+ adds r5, 0x8C
+ adds r0, r4, 0
+ bl __floatsisf
+ adds r2, r0, 0
+ cmp r4, 0
+ bge _081190EA
+ ldr r1, _08119128
+ bl __addsf3
+ adds r2, r0, 0
+_081190EA:
+ ldr r0, [r5]
+ adds r1, r2, 0
+ bl __divsf3
+ bl __negsf2
+ str r0, [r7]
+ adds r1, r6, 0
+ adds r1, 0x2A
+ movs r0, 0x2
+ strb r0, [r1]
+ adds r2, r6, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x3
+ strh r0, [r6, 0x30]
+ ldr r0, _08119130
+ str r0, [r6, 0x1C]
+_0811911A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08119120: .4byte 0x02019000
+_08119124: .4byte 0x42200000
+_08119128: .4byte 0x47800000
+_0811912C: .4byte 0x40800000
+_08119130: .4byte sub_8118F8C
+ thumb_func_end sub_8119088
+
+ thumb_func_start sub_8119134
+sub_8119134: @ 8119134
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ bl sub_8118724
+ ldr r4, _081191DC
+ adds r0, r4, 0
+ adds r0, 0x94
+ ldr r0, [r0]
+ ldr r1, _081191E0
+ bl __gtsf2
+ cmp r0, 0
+ bgt _081191D4
+ movs r0, 0x5D
+ bl m4aSongNumStartOrChange
+ adds r7, r4, 0
+ adds r7, 0x98
+ adds r0, r4, 0
+ adds r0, 0x84
+ movs r1, 0
+ ldrsh r5, [r0, r1]
+ adds r0, r5, 0
+ bl __floatsisf
+ adds r2, r0, 0
+ cmp r5, 0
+ bge _08119174
+ ldr r1, _081191E4
+ bl __addsf3
+ adds r2, r0, 0
+_08119174:
+ ldr r0, _081191E8
+ adds r1, r2, 0
+ bl __divsf3
+ bl __negsf2
+ str r0, [r7]
+ adds r7, r4, 0
+ adds r7, 0x90
+ adds r0, r4, 0
+ adds r0, 0x8C
+ ldr r1, [r0]
+ ldr r0, _081191EC
+ bl __subsf3
+ adds r4, r0, 0
+ adds r0, r5, 0
+ bl __floatsisf
+ adds r2, r0, 0
+ cmp r5, 0
+ bge _081191A8
+ ldr r1, _081191E4
+ bl __addsf3
+ adds r2, r0, 0
+_081191A8:
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl __divsf3
+ str r0, [r7]
+ adds r1, r6, 0
+ adds r1, 0x2A
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r2, r6, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ movs r1, 0x11
+ negs r1, r1
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x2
+ strh r0, [r6, 0x30]
+ ldr r0, _081191F0
+ str r0, [r6, 0x1C]
+_081191D4:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081191DC: .4byte 0x02019000
+_081191E0: .4byte 0x42700000
+_081191E4: .4byte 0x47800000
+_081191E8: .4byte 0x41a00000
+_081191EC: .4byte 0x3f800000
+_081191F0: .4byte sub_8119088
+ thumb_func_end sub_8119134
+
+ thumb_func_start sub_81191F4
+sub_81191F4: @ 81191F4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ movs r0, 0x1
+ strh r0, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ adds r0, r4, 0
+ bl sub_8118724
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _08119220
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08119220: .4byte sub_8119134
+ thumb_func_end sub_81191F4
+
+ thumb_func_start sub_8119224
+sub_8119224: @ 8119224
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r7, r0, 0
+ ldr r1, _081193B8
+ mov r0, sp
+ movs r2, 0x8
+ bl memcpy
+ ldrh r0, [r7, 0x3C]
+ subs r0, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ ldr r5, _081193BC
+ ldr r0, _081193C0
+ movs r2, 0xC
+ negs r2, r2
+ movs r1, 0x24
+ movs r3, 0x32
+ bl CreateSprite
+ adds r1, r5, 0
+ adds r1, 0x73
+ strb r0, [r1]
+ ldr r4, _081193C4
+ movs r0, 0x2E
+ ldrsh r2, [r7, r0]
+ lsls r2, 2
+ mov r1, sp
+ adds r0, r1, r2
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ mov r0, sp
+ adds r0, 0x2
+ adds r0, r2
+ movs r3, 0
+ ldrsh r2, [r0, r3]
+ adds r0, r4, 0
+ movs r3, 0x3B
+ bl CreateSprite
+ adds r1, r5, 0
+ adds r1, 0x74
+ strb r0, [r1]
+ adds r4, 0x18
+ adds r0, r4, 0
+ movs r1, 0x24
+ movs r2, 0x8C
+ movs r3, 0x33
+ bl CreateSprite
+ adds r1, r5, 0
+ adds r1, 0x75
+ strb r0, [r1]
+ ldr r3, _081193C8
+ ldrb r1, [r1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r2, [r0, 0x1]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ movs r6, 0
+ adds r4, r3, 0
+ mov r12, r5
+ ldr r0, _081193CC
+ mov r8, r0
+ mov r10, r12
+_081192BE:
+ mov r1, r12
+ adds r3, r1, r6
+ adds r3, 0x73
+ ldrb r0, [r3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ mov r1, r12
+ adds r1, 0x73
+ ldrb r1, [r1]
+ strh r1, [r0, 0x36]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ mov r5, r12
+ adds r5, 0x74
+ ldrb r1, [r5]
+ strh r1, [r0, 0x38]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ mov r1, r12
+ adds r1, 0x75
+ ldrb r1, [r1]
+ strh r1, [r0, 0x3A]
+ ldrb r1, [r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ mov r1, r9
+ strh r1, [r0, 0x32]
+ ldrb r0, [r3]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ movs r0, 0x3C
+ ldrsh r3, [r7, r0]
+ mov r0, r12
+ ldrb r1, [r0, 0x4]
+ lsls r1, 30
+ lsrs r0, r1, 25
+ add r0, r8
+ ldrb r0, [r0, 0x1]
+ muls r3, r0
+ lsrs r1, 25
+ add r1, r8
+ ldrb r0, [r1, 0x2]
+ ldr r1, _081193D0
+ adds r0, r1
+ adds r3, r0
+ strh r3, [r2, 0x34]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r2, _081193C8
+ cmp r6, 0x2
+ bls _081192BE
+ ldrb r1, [r5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r0]
+ mov r3, r10
+ str r7, [r3, 0x38]
+ 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
+_081193B8: .4byte gUnknown_083FA60E
+_081193BC: .4byte 0x02019000
+_081193C0: .4byte gSpriteTemplate_83FA50C
+_081193C4: .4byte gSpriteTemplate_83FA5C0
+_081193C8: .4byte gSprites
+_081193CC: .4byte gUnknown_083F8DF4
+_081193D0: .4byte 0x0000ffff
+ thumb_func_end sub_8119224
+
+ thumb_func_start sub_81193D4
+sub_81193D4: @ 81193D4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ adds r7, r0, 0
+ movs r0, 0
+ mov r8, r0
+ ldr r1, _08119514
+ mov r0, sp
+ movs r2, 0x8
+ bl memcpy
+ ldrh r0, [r7, 0x3C]
+ subs r0, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ ldr r0, _08119518
+ movs r1, 0x2E
+ ldrsh r2, [r7, r1]
+ lsls r2, 2
+ mov r3, sp
+ adds r1, r3, r2
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ mov r4, sp
+ adds r4, 0x2
+ adds r2, r4, r2
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ movs r3, 0x32
+ bl CreateSprite
+ ldr r6, _0811951C
+ adds r1, r6, 0
+ adds r1, 0x73
+ strb r0, [r1]
+ ldrb r1, [r1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _08119520
+ adds r0, r5
+ ldrh r1, [r7, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ bl StartSpriteAnim
+ ldr r0, _08119524
+ movs r1, 0x2E
+ ldrsh r2, [r7, r1]
+ lsls r2, 2
+ mov r3, sp
+ adds r1, r3, r2
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ adds r4, r2
+ movs r3, 0
+ ldrsh r2, [r4, r3]
+ movs r3, 0x33
+ bl CreateSprite
+ adds r4, r6, 0
+ adds r4, 0x74
+ strb r0, [r4]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ mov r0, r9
+ lsls r2, r0, 16
+ asrs r2, 16
+ ldr r3, _08119528
+ ldrb r1, [r6, 0x4]
+ lsls r1, 30
+ lsrs r0, r1, 25
+ adds r0, r3
+ ldrb r0, [r0, 0x1]
+ muls r2, r0
+ lsrs r1, 25
+ adds r1, r3
+ ldrh r0, [r1, 0x10]
+ adds r0, 0x2D
+ adds r2, r0
+ strh r2, [r7, 0x3C]
+ adds r3, r6, 0
+_081194A2:
+ mov r1, r8
+ adds r2, r6, r1
+ adds r2, 0x73
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r1, r6, 0
+ adds r1, 0x73
+ ldrb r1, [r1]
+ strh r1, [r0, 0x36]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r4]
+ strh r1, [r0, 0x38]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r4]
+ strh r1, [r0, 0x3A]
+ ldrb r1, [r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r9
+ strh r1, [r0, 0x32]
+ ldrb r0, [r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrh r0, [r7, 0x3C]
+ subs r0, 0x2D
+ strh r0, [r1, 0x34]
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x1
+ bls _081194A2
+ str r7, [r3, 0x38]
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08119514: .4byte gUnknown_083FA616
+_08119518: .4byte gSpriteTemplate_83FA524
+_0811951C: .4byte 0x02019000
+_08119520: .4byte gSprites
+_08119524: .4byte gSpriteTemplate_83FA5F0
+_08119528: .4byte gUnknown_083F8DF4
+ thumb_func_end sub_81193D4
+
+ thumb_func_start sub_811952C
+sub_811952C: @ 811952C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ mov r8, r0
+ movs r0, 0
+ mov r10, r0
+ movs r1, 0x5
+ mov r9, r1
+ movs r2, 0
+ str r2, [sp, 0xC]
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0xA
+ bl memset
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp, 0x10]
+ ldr r7, _08119610
+ adds r0, r7, 0
+ adds r0, 0x7D
+ movs r6, 0x1
+ strb r6, [r0]
+ ldrb r4, [r7, 0x3]
+ movs r0, 0x20
+ orrs r4, r0
+ movs r0, 0x41
+ negs r0, r0
+ ands r4, r0
+ strb r4, [r7, 0x3]
+ adds r1, r7, 0
+ adds r1, 0x7E
+ movs r0, 0xFF
+ strb r0, [r1]
+ adds r5, r7, 0
+ adds r5, 0x88
+ mov r3, r8
+ movs r1, 0x34
+ ldrsh r0, [r3, r1]
+ bl __floatsisf
+ str r0, [r5]
+ adds r1, r7, 0
+ adds r1, 0x98
+ ldr r0, _08119614
+ str r0, [r1]
+ adds r3, r7, 0
+ adds r3, 0x8C
+ ldr r2, _08119618
+ ldrb r0, [r7, 0x4]
+ lsls r0, 30
+ lsrs r1, r0, 25
+ adds r2, 0x1C
+ adds r1, r2
+ ldr r1, [r1]
+ str r1, [r3]
+ lsrs r0, 30
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 1
+ adds r1, 0x21
+ lsls r4, 27
+ lsrs r4, 27
+ subs r6, r4
+ lsls r0, r6, 4
+ subs r0, r6
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ mov r5, r10
+ mov r3, r8
+ movs r0, 0x34
+ ldrsh r2, [r3, r0]
+_081195C8:
+ cmp r1, r2
+ bge _081195D4
+ adds r0, r1, 0
+ adds r0, 0x5A
+ cmp r2, r0
+ ble _08119638
+_081195D4:
+ cmp r5, 0x3
+ beq _0811961C
+ adds r0, r1, 0
+ adds r0, 0x5A
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _081195C8
+_081195EA:
+ ldr r0, _08119610
+ ldrb r1, [r0, 0x3]
+ movs r0, 0x1F
+ ands r0, r1
+ cmp r0, 0
+ beq _08119664
+ mov r1, r8
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _08119658
+ movs r0, 0x98
+ lsls r0, 1
+ movs r1, 0x3F
+ negs r1, r1
+ bl PlayCry1
+ b _08119670
+ .align 2, 0
+_08119610: .4byte 0x02019000
+_08119614: .4byte 0x00000000
+_08119618: .4byte gUnknown_083F8DF4
+_0811961C:
+ movs r0, 0x1
+ mov r3, r8
+ strh r0, [r3, 0x2E]
+ ldr r2, _08119634
+ ldrb r1, [r2, 0x3]
+ subs r0, 0x21
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x3]
+ b _081195EA
+ .align 2, 0
+_08119634: .4byte 0x02019000
+_08119638:
+ lsrs r0, r5, 1
+ mov r1, r8
+ strh r0, [r1, 0x2E]
+ ldr r3, _08119654
+ movs r1, 0x1
+ ands r1, r5
+ ldrb r2, [r3, 0x3]
+ movs r0, 0x20
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x3]
+ b _081195EA
+ .align 2, 0
+_08119654: .4byte 0x02019000
+_08119658:
+ movs r0, 0x98
+ lsls r0, 1
+ movs r1, 0x3F
+ bl PlayCry1
+ b _08119670
+_08119664:
+ movs r0, 0x99
+ lsls r0, 1
+ movs r1, 0x3F
+ negs r1, r1
+ bl PlayCry1
+_08119670:
+ movs r5, 0x2
+ ldr r4, _081196A0
+ adds r0, r4, 0
+ adds r0, 0x7F
+ ldrb r0, [r0]
+ adds r0, 0x2
+ movs r1, 0xC
+ bl __modsi3
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x1F
+ ands r0, r1
+ cmp r0, 0x1
+ bne _081196A4
+ ldrb r1, [r4, 0x4]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ bne _081196A4
+ mov r0, r9
+ adds r0, 0x6
+ b _081196A8
+ .align 2, 0
+_081196A0: .4byte 0x02019000
+_081196A4:
+ mov r2, r9
+ adds r0, r2, r5
+_081196A8:
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ cmp r5, r9
+ bcs _0811970E
+ ldr r6, _08119734
+ ldr r7, _08119738
+_081196B6:
+ lsls r0, r3, 3
+ ldr r1, _0811973C
+ adds r0, r1
+ ldr r1, [r6, 0x8]
+ ldr r2, [r0]
+ ands r1, r2
+ cmp r1, 0
+ bne _081196F8
+ mov r0, r10
+ adds r1, r0, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ add r0, sp
+ strb r5, [r0]
+ ldr r0, [sp, 0xC]
+ cmp r0, 0
+ bne _081196F8
+ ldrb r0, [r6, 0x1A]
+ lsls r0, 28
+ lsrs r0, 28
+ ldr r1, _08119740
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldr r0, [r0]
+ ands r2, r0
+ cmp r2, 0
+ beq _081196F8
+ str r5, [sp, 0xC]
+_081196F8:
+ adds r0, r3, 0x1
+ movs r1, 0xC
+ bl __modsi3
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, r9
+ bcc _081196B6
+_0811970E:
+ ldrb r0, [r4, 0x3]
+ lsls r0, 27
+ lsrs r0, 27
+ adds r0, 0x1
+ ldrb r1, [r4, 0x2]
+ ands r0, r1
+ cmp r0, 0
+ beq _08119756
+ ldr r2, [sp, 0xC]
+ cmp r2, 0
+ beq _08119744
+ movs r0, 0xFF
+ ldr r3, [sp, 0x10]
+ ands r0, r3
+ cmp r0, 0xBF
+ bhi _08119744
+ mov r0, r8
+ strh r2, [r0, 0x3C]
+ b _08119766
+ .align 2, 0
+_08119734: .4byte 0x02019000
+_08119738: .4byte gUnknown_083F8C0C
+_0811973C: .4byte gUnknown_083F8D94
+_08119740: .4byte 0x0201901b
+_08119744:
+ ldr r0, [sp, 0x10]
+ mov r1, r10
+ bl __modsi3
+ add r0, sp
+ ldrb r0, [r0]
+ mov r1, r8
+ strh r0, [r1, 0x3C]
+ b _08119766
+_08119756:
+ ldr r0, [sp, 0x10]
+ mov r1, r10
+ bl __modsi3
+ add r0, sp
+ ldrb r0, [r0]
+ mov r2, r8
+ strh r0, [r2, 0x3C]
+_08119766:
+ ldr r3, _0811977C
+ mov r0, r8
+ str r3, [r0, 0x1C]
+ 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
+_0811977C: .4byte sub_8118CEC
+ thumb_func_end sub_811952C
+
+ thumb_func_start sub_8119780
+sub_8119780: @ 8119780
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x30]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x34
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ blt _081197CA
+ ldrh r0, [r2, 0x20]
+ subs r0, 0x2
+ strh r0, [r2, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x10
+ negs r1, r1
+ cmp r0, r1
+ bge _081197CA
+ ldr r4, _081197D0
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _081197BA
+ movs r0, 0x40
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+_081197BA:
+ adds r0, r2, 0
+ bl DestroySprite
+ movs r0, 0
+ strb r0, [r4, 0x1]
+ ldr r0, _081197D4
+ ldrh r0, [r0]
+ strh r0, [r4, 0x34]
+_081197CA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081197D0: .4byte 0x02019000
+_081197D4: .4byte gUnknown_083FA61E
+ thumb_func_end sub_8119780
+
+ thumb_func_start sub_81197D8
+sub_81197D8: @ 81197D8
+ push {r4,lr}
+ sub sp, 0x18
+ adds r4, r0, 0
+ ldr r1, _08119854
+ mov r0, sp
+ movs r2, 0x18
+ bl memcpy
+ ldrh r0, [r4, 0x30]
+ adds r2, r0, 0x1
+ strh r2, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x34
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bge _0811985C
+ movs r0, 0x1
+ ands r2, r0
+ cmp r2, 0
+ beq _08119836
+ ldr r3, _08119858
+ movs r0, 0x3C
+ ldrsh r2, [r4, r0]
+ lsls r2, 1
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ lsls r0, 3
+ adds r2, r0
+ mov r1, sp
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ strh r0, [r3]
+ movs r3, 0x3C
+ ldrsh r2, [r4, r3]
+ adds r1, r2, 0x1
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _0811982E
+ adds r0, r2, 0x4
+_0811982E:
+ asrs r0, 2
+ lsls r0, 2
+ subs r0, r1, r0
+ strh r0, [r4, 0x3C]
+_08119836:
+ 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 _08119884
+ .align 2, 0
+_08119854: .4byte gUnknown_083FA632
+_08119858: .4byte gSpriteCoordOffsetY
+_0811985C:
+ ldr r1, _0811988C
+ movs r0, 0
+ strh r0, [r1]
+ ldr r2, _08119890
+ ldr r0, _08119894
+ adds r0, 0x73
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x2C
+ ldrb r2, [r0]
+ movs r1, 0x41
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ adds r0, r4, 0
+ bl DestroySprite
+_08119884:
+ add sp, 0x18
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811988C: .4byte gSpriteCoordOffsetY
+_08119890: .4byte gSprites
+_08119894: .4byte 0x02019000
+ thumb_func_end sub_81197D8
+
+ thumb_func_start sub_8119898
+sub_8119898: @ 8119898
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ bl __floatsisf
+ adds r4, r0, 0
+ ldr r1, _08119948
+ bl __mulsf3
+ adds r1, r4, 0
+ bl __mulsf3
+ bl __fixsfsi
+ strh r0, [r5, 0x26]
+ ldr r3, _0811994C
+ ldr r2, _08119950
+ ldrb r0, [r3, 0x1]
+ subs r0, 0x1
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r3, 0x34]
+ ldrb r0, [r3, 0x1]
+ cmp r0, 0x12
+ bhi _081198DE
+ adds r0, 0x1
+ strb r0, [r3, 0x1]
+_081198DE:
+ movs r1, 0x30
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x3C
+ ble _08119940
+ movs r0, 0
+ strh r0, [r5, 0x30]
+ ldr r3, _08119954
+ str r3, [r5, 0x1C]
+ ldr r2, _08119958
+ movs r0, 0x3A
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r2, 0
+ adds r4, 0x1C
+ adds r0, r4
+ str r3, [r0]
+ movs r0, 0x3A
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _0811995C
+ strh r1, [r0, 0x30]
+ movs r0, 0x38
+ 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]
+ movs r0, 0x38
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _08119960
+ str r1, [r0]
+ movs r0, 0xD6
+ bl m4aSongNumStart
+_08119940:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08119948: .4byte 0x3d1fbe77
+_0811994C: .4byte 0x02019000
+_08119950: .4byte gUnknown_083FA61E
+_08119954: .4byte sub_8119780
+_08119958: .4byte gSprites
+_0811995C: .4byte 0x0000fffe
+_08119960: .4byte sub_81197D8
+ thumb_func_end sub_8119898
+
+ thumb_func_start sub_8119964
+sub_8119964: @ 8119964
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _081199E4
+ ldr r3, _08119990
+ ldr r1, [r3, 0x38]
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08119998
+ movs r0, 0x34
+ ldrsh r2, [r1, r0]
+ ldr r1, _08119994
+ ldrb r0, [r3, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ b _081199AA
+ .align 2, 0
+_08119990: .4byte 0x02019000
+_08119994: .4byte gUnknown_083F8DF4
+_08119998:
+ movs r0, 0x34
+ ldrsh r2, [r1, r0]
+ ldr r1, _081199D8
+ ldrb r0, [r3, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ adds r0, 0xB4
+_081199AA:
+ cmp r2, r0
+ bne _08119A78
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ movs r0, 0x2B
+ bl m4aSongNumStart
+ ldr r1, _081199DC
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ ldr r0, _081199E0
+ ldrh r0, [r0]
+ strh r0, [r1, 0x34]
+ b _08119A78
+ .align 2, 0
+_081199D8: .4byte gUnknown_083F8DF4
+_081199DC: .4byte 0x02019000
+_081199E0: .4byte gUnknown_083FA61E
+_081199E4:
+ ldr r3, _08119A20
+ ldr r2, _08119A24
+ ldrb r0, [r3, 0x1]
+ subs r0, 0x1
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ strh r0, [r3, 0x34]
+ ldrb r0, [r3, 0x1]
+ cmp r0, 0x12
+ bhi _08119A04
+ adds r0, 0x1
+ strb r0, [r3, 0x1]
+_08119A04:
+ ldr r1, [r3, 0x38]
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08119A2C
+ movs r0, 0x34
+ ldrsh r2, [r1, r0]
+ ldr r1, _08119A28
+ ldrb r0, [r3, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r1
+ ldrh r0, [r0, 0xA]
+ b _08119A3E
+ .align 2, 0
+_08119A20: .4byte 0x02019000
+_08119A24: .4byte gUnknown_083FA61E
+_08119A28: .4byte gUnknown_083F8DF4
+_08119A2C:
+ movs r0, 0x34
+ ldrsh r2, [r1, r0]
+ ldr r1, _08119A80
+ ldrb r0, [r3, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r1
+ ldrh r0, [r0, 0xA]
+ adds r0, 0xB4
+_08119A3E:
+ cmp r2, r0
+ bne _08119A78
+ ldr r2, _08119A84
+ movs r0, 0x36
+ 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, _08119A88
+ str r1, [r0]
+ movs r0, 0x36
+ ldrsh r1, [r4, 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]
+ ldr r0, _08119A8C
+ str r0, [r4, 0x1C]
+ movs r0, 0
+ strh r0, [r4, 0x3C]
+_08119A78:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08119A80: .4byte gUnknown_083F8DF4
+_08119A84: .4byte gSprites
+_08119A88: .4byte sub_8119898
+_08119A8C: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8119964
+
+ thumb_func_start sub_8119A90
+sub_8119A90: @ 8119A90
+ adds r0, 0x3E
+ ldrb r3, [r0]
+ lsls r1, r3, 29
+ lsrs r1, 31
+ movs r2, 0x1
+ eors r2, r1
+ lsls r2, 2
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r2
+ strb r1, [r0]
+ bx lr
+ thumb_func_end sub_8119A90
+
+ thumb_func_start sub_8119AAC
+sub_8119AAC: @ 8119AAC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x22]
+ movs r0, 0x22
+ ldrsh r1, [r4, r0]
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ ble _08119AC4
+ subs r0, r2, 0x1
+ strh r0, [r4, 0x22]
+ b _08119B12
+_08119AC4:
+ ldr r0, _08119B18
+ str r0, [r4, 0x1C]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ subs r2, 0x12
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x5E
+ bl m4aSongNumStop
+ adds r0, r4, 0
+ bl DestroySprite
+ ldr r5, _08119B1C
+ ldr r4, _08119B20
+ adds r4, 0x74
+ 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
+_08119B12:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08119B18: .4byte SpriteCallbackDummy
+_08119B1C: .4byte gSprites
+_08119B20: .4byte 0x02019000
+ thumb_func_end sub_8119AAC
+
+ thumb_func_start sub_8119B24
+sub_8119B24: @ 8119B24
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ blt _08119B4E
+ subs r1, 0x1
+ strh r1, [r4, 0x30]
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x1
+ strh r0, [r4, 0x22]
+ lsls r1, 16
+ cmp r1, 0
+ bne _08119BB8
+ adds r0, r4, 0
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08119BB8
+ b _08119B74
+_08119B4E:
+ ldrh r1, [r4, 0x34]
+ movs r2, 0x34
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ blt _08119B84
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r0, 0x3F
+ ands r0, r1
+ cmp r0, 0
+ bne _08119BB8
+ adds r0, r4, 0
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08119B7C
+_08119B74:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ b _08119BB8
+_08119B7C:
+ ldrh r0, [r4, 0x26]
+ subs r0, 0x1
+ strh r0, [r4, 0x26]
+ b _08119BB8
+_08119B84:
+ movs r0, 0x2B
+ bl m4aSongNumStart
+ ldr r0, _08119BC0
+ ldr r0, [r0, 0x38]
+ ldrh r1, [r0, 0x2E]
+ adds r1, 0x4
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, _08119BC4
+ str r0, [r4, 0x1C]
+ ldr r2, _08119BC8
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x2C
+ ldrb r2, [r0]
+ movs r1, 0x7F
+ ands r1, r2
+ strb r1, [r0]
+_08119BB8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08119BC0: .4byte 0x02019000
+_08119BC4: .4byte sub_8119AAC
+_08119BC8: .4byte gSprites
+ thumb_func_end sub_8119B24
+
+ thumb_func_start sub_8119BCC
+sub_8119BCC: @ 8119BCC
+ push {r4,r5,lr}
+ sub sp, 0x14
+ adds r4, r0, 0
+ ldr r1, _08119C44
+ mov r0, sp
+ movs r2, 0x2
+ bl memcpy
+ add r5, sp, 0x4
+ ldr r1, _08119C48
+ adds r0, r5, 0
+ movs r2, 0x10
+ bl memcpy
+ ldrh r0, [r4, 0x30]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _08119C5C
+ ldr r0, _08119C4C
+ ldr r0, [r0, 0x38]
+ movs r1, 0x2E
+ ldrsh r0, [r0, r1]
+ add r0, sp
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 1
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ bl IsSEPlaying
+ lsls r0, 24
+ cmp r0, 0
+ beq _08119CF6
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ movs r4, 0x74
+ subs r4, r0
+ lsrs r0, r4, 31
+ adds r4, r0
+ asrs r4, 1
+ negs r4, r4
+ ldr r0, _08119C50
+ ldr r5, _08119C54
+ lsls r4, 24
+ asrs r4, 24
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl m4aMPlayPanpotControl
+ ldr r0, _08119C58
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl m4aMPlayPanpotControl
+ b _08119CF6
+ .align 2, 0
+_08119C44: .4byte gUnknown_083FA64A
+_08119C48: .4byte gUnknown_083FA64C
+_08119C4C: .4byte 0x02019000
+_08119C50: .4byte gMPlay_SE1
+_08119C54: .4byte 0x0000ffff
+_08119C58: .4byte gMPlay_SE2
+_08119C5C:
+ lsls r0, r1, 16
+ cmp r0, 0
+ blt _08119CAC
+ ldr r0, _08119CA8
+ ldr r0, [r0, 0x38]
+ movs r2, 0x2E
+ ldrsh r0, [r0, r2]
+ add r0, sp
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x7
+ subs r0, r1, r0
+ lsls r0, 1
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ muls r0, r2
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ subs r1, r0
+ lsls r1, 1
+ mov r0, sp
+ adds r0, 0x5
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ b _08119CF6
+ .align 2, 0
+_08119CA8: .4byte 0x02019000
+_08119CAC:
+ movs r0, 0x5E
+ bl m4aSongNumStartOrChange
+ ldr r0, _08119CCC
+ ldr r0, [r0, 0x38]
+ movs r2, 0x2E
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bne _08119CD0
+ movs r0, 0x98
+ lsls r0, 1
+ movs r1, 0x3F
+ bl PlayCry1
+ b _08119CDC
+ .align 2, 0
+_08119CCC: .4byte 0x02019000
+_08119CD0:
+ movs r0, 0x98
+ lsls r0, 1
+ movs r1, 0x3F
+ negs r1, r1
+ bl PlayCry1
+_08119CDC:
+ ldr r0, _08119D00
+ ldr r0, [r0, 0x38]
+ ldrh r1, [r0, 0x2E]
+ adds r1, 0x2
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ movs r0, 0x2D
+ strh r0, [r4, 0x30]
+ ldr r0, _08119D04
+ str r0, [r4, 0x1C]
+_08119CF6:
+ add sp, 0x14
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08119D00: .4byte 0x02019000
+_08119D04: .4byte sub_8119B24
+ thumb_func_end sub_8119BCC
+
+ thumb_func_start sub_8119D08
+sub_8119D08: @ 8119D08
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldr r1, _08119D64
+ mov r0, sp
+ movs r2, 0x2
+ bl memcpy
+ ldrh r0, [r4, 0x30]
+ subs r1, r0, 0x1
+ strh r1, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ blt _08119D70
+ ldr r0, _08119D68
+ ldr r0, [r0, 0x38]
+ movs r1, 0x2E
+ ldrsh r0, [r0, r1]
+ add r0, sp
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 1
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ ldr r1, _08119D6C
+ movs r2, 0x3A
+ ldrsh r0, [r4, 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]
+ b _08119D74
+ .align 2, 0
+_08119D64: .4byte gUnknown_083FA64A
+_08119D68: .4byte 0x02019000
+_08119D6C: .4byte gSprites
+_08119D70:
+ ldr r0, _08119D7C
+ str r0, [r4, 0x1C]
+_08119D74:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08119D7C: .4byte sub_8119A90
+ thumb_func_end sub_8119D08
+
+ thumb_func_start sub_8119D80
+sub_8119D80: @ 8119D80
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r3, _08119DB8
+ ldr r1, [r3, 0x38]
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08119DC4
+ movs r0, 0x34
+ ldrsh r2, [r1, r0]
+ ldr r1, _08119DBC
+ ldrb r0, [r3, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r1
+ ldrh r0, [r0, 0x12]
+ adds r0, 0x5A
+ cmp r2, r0
+ bne _08119E26
+ ldr r2, _08119DC0
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r3, 0x34
+ b _08119DEE
+ .align 2, 0
+_08119DB8: .4byte 0x02019000
+_08119DBC: .4byte gUnknown_083F8DF4
+_08119DC0: .4byte gSprites
+_08119DC4:
+ movs r0, 0x34
+ ldrsh r2, [r1, r0]
+ ldr r1, _08119E2C
+ ldrb r0, [r3, 0x4]
+ lsls r0, 30
+ lsrs r0, 25
+ adds r0, r1
+ ldrh r0, [r0, 0x14]
+ movs r1, 0x87
+ lsls r1, 1
+ adds r0, r1
+ cmp r2, r0
+ bne _08119E26
+ ldr r2, _08119E30
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r3, 0x2E
+_08119DEE:
+ strh r3, [r0, 0x30]
+ movs r0, 0x36
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r3, [r0, 0x30]
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _08119E34
+ str r1, [r0]
+ movs r0, 0x36
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _08119E38
+ str r1, [r0]
+ movs r0, 0x2B
+ bl m4aSongNumStart
+_08119E26:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08119E2C: .4byte gUnknown_083F8DF4
+_08119E30: .4byte gSprites
+_08119E34: .4byte sub_8119D08
+_08119E38: .4byte sub_8119BCC
+ thumb_func_end sub_8119D80
+
+ thumb_func_start sub_8119E3C
+sub_8119E3C: @ 8119E3C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r2, r1, 24
+ movs r0, 0
+ mov r9, r0
+ ldr r6, _08119E60
+ ldrb r0, [r6]
+ cmp r0, 0x1
+ beq _08119EE0
+ cmp r0, 0x1
+ bgt _08119E64
+ cmp r0, 0
+ beq _08119E6A
+ b _08119F74
+ .align 2, 0
+_08119E60: .4byte gUnknown_03005E98
+_08119E64:
+ cmp r0, 0x2
+ beq _08119F60
+ b _08119F74
+_08119E6A:
+ ldr r4, _08119ECC
+ ldrh r0, [r5]
+ movs r1, 0
+ strh r0, [r4, 0x14]
+ ldrb r0, [r5, 0x5]
+ strb r0, [r4, 0x16]
+ strb r1, [r4, 0x1A]
+ strb r1, [r4, 0x1B]
+ strb r1, [r4, 0x10]
+ movs r0, 0x1C
+ strb r0, [r4, 0x12]
+ strb r1, [r4, 0x11]
+ ldrb r1, [r5, 0x4]
+ lsls r1, 19
+ negs r1, r1
+ asrs r1, 16
+ adds r0, r2, 0
+ movs r2, 0x1
+ bl sub_811A350
+ movs r0, 0
+ mov r12, r6
+ ldr r1, _08119ED0
+ ldr r7, _08119ED4
+ ldr r2, _08119ED8
+ adds r6, r4, r2
+ ldr r5, _08119EDC
+_08119EA0:
+ movs r3, 0
+ adds r4, r0, 0x1
+ lsls r2, r0, 5
+_08119EA6:
+ str r7, [r1]
+ adds r0, r2, r3
+ lsls r0, 5
+ adds r0, r6
+ str r0, [r1, 0x4]
+ str r5, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1F
+ bls _08119EA6
+ lsls r0, r4, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bls _08119EA0
+ mov r1, r12
+ b _08119F50
+ .align 2, 0
+_08119ECC: .4byte 0x0201c000
+_08119ED0: .4byte 0x040000d4
+_08119ED4: .4byte gUnknown_083FB718
+_08119ED8: .4byte 0xfffe4000
+_08119EDC: .4byte 0x80000010
+_08119EE0:
+ ldrb r0, [r5, 0x2]
+ lsls r0, 27
+ lsrs r7, r0, 16
+ ldrb r1, [r5, 0x3]
+ lsls r1, 12
+ ldrh r0, [r5]
+ lsls r0, 18
+ lsrs r0, 23
+ adds r1, r0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ movs r0, 0
+ ldr r2, _08119F58
+ mov r8, r2
+ movs r1, 0xC0
+ lsls r1, 19
+ mov r12, r1
+_08119F02:
+ movs r3, 0
+ adds r4, r0, 0x1
+ lsls r5, r0, 6
+_08119F08:
+ lsls r1, r3, 1
+ adds r1, r5
+ adds r1, r7
+ add r1, r12
+ adds r2, r6, 0
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ strh r2, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x1F
+ bls _08119F08
+ lsls r0, r4, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bls _08119F02
+ mov r2, r8
+ ldrb r0, [r2, 0x16]
+ movs r4, 0
+ cmp r0, 0
+ beq _08119F4E
+ mov r5, r8
+_08119F38:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_811A1C8
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r5, 0x16]
+ lsls r0, 3
+ cmp r4, r0
+ blt _08119F38
+_08119F4E:
+ ldr r1, _08119F5C
+_08119F50:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08119F74
+ .align 2, 0
+_08119F58: .4byte 0x0201c000
+_08119F5C: .4byte gUnknown_03005E98
+_08119F60:
+ bl sub_811A324
+ ldr r0, _08119F84
+ ldrb r1, [r5, 0x3]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadPalette
+ movs r0, 0x1
+ mov r9, r0
+_08119F74:
+ mov r0, r9
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08119F84: .4byte gUnknown_083FB6F8
+ thumb_func_end sub_8119E3C
+
+ thumb_func_start sub_8119F88
+sub_8119F88: @ 8119F88
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_811A324
+ adds r0, r4, 0
+ bl sub_811A15C
+ ldr r1, _08119FC4
+ ldrb r0, [r1, 0x1B]
+ cmp r0, 0
+ beq _08119FA6
+ subs r0, 0x1
+ strb r0, [r1, 0x1B]
+_08119FA6:
+ ldrb r0, [r1, 0x1A]
+ cmp r0, 0
+ beq _08119FC8
+ subs r0, 0x1
+ strb r0, [r1, 0x1A]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08119FC8
+ ldrh r0, [r1, 0x18]
+ bl sub_811A0A0
+ bl sub_811A124
+ b _0811A044
+ .align 2, 0
+_08119FC4: .4byte 0x0201c000
+_08119FC8:
+ ldr r5, _08119FD8
+ ldrb r0, [r5, 0x10]
+ cmp r0, 0
+ bne _08119FDC
+ bl sub_811A124
+ b _0811A044
+ .align 2, 0
+_08119FD8: .4byte 0x0201c000
+_08119FDC:
+ cmp r0, 0x1
+ bne _08119FE6
+ bl sub_811A0C0
+ b _0811A006
+_08119FE6:
+ cmp r0, 0x8
+ bls _0811A006
+ bl IsCryPlaying
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08119FFE
+ bl sub_811A124
+ strb r4, [r5, 0x10]
+ b _0811A044
+_08119FFE:
+ bl sub_811A0C0
+ movs r0, 0x1
+ strb r0, [r5, 0x10]
+_0811A006:
+ ldr r5, _0811A04C
+ ldrb r4, [r5, 0x10]
+ subs r4, 0x1
+ lsls r4, 25
+ lsrs r4, 24
+ ldrb r0, [r5, 0x16]
+ lsls r0, 3
+ ldrb r1, [r5, 0x11]
+ adds r0, r1
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, r5
+ ldrb r1, [r1]
+ bl sub_811A1C8
+ ldrb r0, [r5, 0x16]
+ lsls r0, 3
+ ldrb r1, [r5, 0x11]
+ adds r0, r1
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, 0x1
+ adds r4, r5
+ ldrb r1, [r4]
+ bl sub_811A1C8
+ ldrb r0, [r5, 0x10]
+ adds r0, 0x1
+ strb r0, [r5, 0x10]
+_0811A044:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811A04C: .4byte 0x0201c000
+ thumb_func_end sub_8119F88
+
+ thumb_func_start sub_811A050
+sub_811A050: @ 811A050
+ push {r4-r6,lr}
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r6, r5, 0
+ ldr r0, _0811A08C
+ ldr r0, [r0, 0x4]
+ cmp r0, 0
+ bge _0811A09A
+ ldr r4, _0811A090
+ ldrb r0, [r4, 0x1A]
+ cmp r0, 0
+ bne _0811A09A
+ ldrb r0, [r4, 0x1B]
+ cmp r0, 0
+ bne _0811A09A
+ movs r0, 0x4
+ strb r0, [r4, 0x1B]
+ bl IsCryPlaying
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0811A094
+ bl StopCry
+ strh r5, [r4, 0x18]
+ movs r0, 0x2
+ strb r0, [r4, 0x1A]
+ b _0811A09A
+ .align 2, 0
+_0811A08C: .4byte gMPlay_BGM
+_0811A090: .4byte 0x0201c000
+_0811A094:
+ adds r0, r6, 0
+ bl sub_811A0A0
+_0811A09A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811A050
+
+ thumb_func_start sub_811A0A0
+sub_811A0A0: @ 811A0A0
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0
+ movs r2, 0x7D
+ movs r3, 0xA
+ bl PlayCry2
+ ldr r1, _0811A0BC
+ movs r0, 0x1
+ strb r0, [r1, 0x10]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811A0BC: .4byte 0x0201c000
+ thumb_func_end sub_811A0A0
+
+ thumb_func_start sub_811A0C0
+sub_811A0C0: @ 811A0C0
+ push {r4,lr}
+ ldr r3, _0811A0D0
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ cmp r0, 0x1
+ bgt _0811A0D8
+ ldr r0, _0811A0D4
+ b _0811A0F0
+ .align 2, 0
+_0811A0D0: .4byte gPcmDmaCounter
+_0811A0D4: .4byte gSoundInfo + 0x350
+_0811A0D8:
+ ldr r2, _0811A11C
+ ldrb r1, [r2, 0xB]
+ movs r0, 0
+ ldrsb r0, [r3, r0]
+ subs r0, 0x1
+ subs r1, r0
+ ldr r0, [r2, 0x10]
+ muls r0, r1
+ movs r1, 0xD4
+ lsls r1, 2
+ adds r2, r1
+ adds r0, r2
+_0811A0F0:
+ movs r1, 0xC6
+ lsls r1, 3
+ adds r3, r0, r1
+ movs r2, 0
+ ldr r4, _0811A120
+_0811A0FA:
+ adds r1, r2, r4
+ lsls r0, r2, 1
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 1
+ strb r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xF
+ bls _0811A0FA
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811A11C: .4byte gSoundInfo
+_0811A120: .4byte 0x0201c000
+ thumb_func_end sub_811A0C0
+
+ thumb_func_start sub_811A124
+sub_811A124: @ 811A124
+ push {r4,lr}
+ ldr r4, _0811A158
+ ldrb r0, [r4, 0x16]
+ lsls r0, 3
+ ldrb r1, [r4, 0x11]
+ adds r0, r1
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_811A1C8
+ ldrb r0, [r4, 0x16]
+ lsls r0, 3
+ ldrb r4, [r4, 0x11]
+ adds r0, r4
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_811A1C8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811A158: .4byte 0x0201c000
+ thumb_func_end sub_811A124
+
+ thumb_func_start sub_811A15C
+sub_811A15C: @ 811A15C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _0811A1B4
+ ldrb r1, [r4, 0x11]
+ movs r2, 0
+ bl sub_811A350
+ ldrb r0, [r4, 0x11]
+ adds r0, 0x2
+ strb r0, [r4, 0x11]
+ ldrb r0, [r4, 0x11]
+ lsrs r0, 3
+ ldrb r2, [r4, 0x16]
+ adds r1, r0, r2
+ adds r2, r1, 0x1
+ adds r0, r2, 0
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r2, r0
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r1, 0
+ ldr r2, _0811A1B8
+ ldr r6, _0811A1BC
+ ldr r0, _0811A1C0
+ adds r5, r4, r0
+ ldr r4, _0811A1C4
+_0811A194:
+ str r6, [r2]
+ lsls r0, r1, 5
+ adds r0, r3
+ lsls r0, 5
+ adds r0, r5
+ str r0, [r2, 0x4]
+ str r4, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x6
+ bls _0811A194
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811A1B4: .4byte 0x0201c000
+_0811A1B8: .4byte 0x040000d4
+_0811A1BC: .4byte gUnknown_083FB718
+_0811A1C0: .4byte 0xfffe4000
+_0811A1C4: .4byte 0x80000010
+ thumb_func_end sub_811A15C
+
+ thumb_func_start sub_811A1C8
+sub_811A1C8: @ 811A1C8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ lsls r5, r0, 24
+ lsrs r4, r5, 24
+ lsls r1, 24
+ movs r0, 0xFE
+ lsls r0, 23
+ adds r1, r0
+ lsrs r1, 16
+ adds r0, r1, 0
+ bl __floatsidf
+ ldr r3, _0811A280
+ ldr r2, _0811A27C
+ bl __divdf3
+ bl __fixunsdfsi
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x37
+ bls _0811A1FE
+ movs r6, 0x37
+_0811A1FE:
+ str r6, [sp]
+ movs r7, 0x1
+ ands r7, r4
+ ldr r0, _0811A284
+ mov r10, r0
+ lsrs r5, 27
+ mov r8, r5
+ ldr r0, _0811A288
+ mov r1, r10
+ ldrb r1, [r1, 0x12]
+ cmp r6, r1
+ bls _0811A298
+ adds r0, r7, r0
+ ldrb r0, [r0]
+ mov r9, r0
+ movs r2, 0x7
+ ands r2, r4
+_0811A220:
+ lsls r1, r6, 1
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 4
+ adds r1, r0
+ ldr r3, _0811A28C
+ adds r1, r3
+ mov r3, r8
+ lsls r0, r3, 5
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0811A290
+ adds r5, r0, r1
+ ldrb r4, [r5]
+ mov r3, r9
+ ands r4, r3
+ strb r4, [r5]
+ adds r0, r6, 0
+ movs r1, 0x3
+ str r2, [sp, 0x8]
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ movs r1, 0xF
+ ands r0, r1
+ lsls r1, r7, 4
+ adds r0, r1
+ ldr r1, _0811A294
+ adds r0, r1
+ ldrb r0, [r0]
+ orrs r4, r0
+ strb r4, [r5]
+ subs r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r2, [sp, 0x8]
+ ldr r3, _0811A284
+ ldrb r3, [r3, 0x12]
+ cmp r6, r3
+ bhi _0811A220
+ b _0811A2FA
+ .align 2, 0
+_0811A27C: .4byte 0x40920000
+_0811A280: .4byte 0x00000000
+_0811A284: .4byte 0x0201c000
+_0811A288: .4byte gUnknown_083FB738
+_0811A28C: .4byte gUnknown_083FB274
+_0811A290: .4byte 0x02000000
+_0811A294: .4byte gUnknown_083FB73A
+_0811A298:
+ lsls r1, r7, 4
+ str r1, [sp, 0x4]
+ adds r0, r7, r0
+ ldrb r0, [r0]
+ mov r9, r0
+ movs r7, 0x7
+ ands r7, r4
+_0811A2A6:
+ lsls r1, r6, 1
+ lsls r0, r7, 3
+ adds r0, r7
+ lsls r0, 4
+ adds r1, r0
+ ldr r2, _0811A314
+ adds r1, r2
+ mov r3, r8
+ lsls r0, r3, 5
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0811A318
+ adds r5, r0, r1
+ ldrb r4, [r5]
+ mov r2, r9
+ ands r4, r2
+ strb r4, [r5]
+ adds r0, r6, 0
+ movs r1, 0x3
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ movs r1, 0xF
+ ands r0, r1
+ ldr r3, [sp, 0x4]
+ adds r0, r3
+ ldr r1, _0811A31C
+ adds r0, r1
+ ldrb r0, [r0]
+ orrs r4, r0
+ strb r4, [r5]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r2, _0811A320
+ ldrb r2, [r2, 0x12]
+ cmp r6, r2
+ bcc _0811A2A6
+_0811A2FA:
+ mov r3, sp
+ ldrb r0, [r3]
+ mov r3, r10
+ strb r0, [r3, 0x12]
+ 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
+_0811A314: .4byte gUnknown_083FB274
+_0811A318: .4byte 0x02000000
+_0811A31C: .4byte gUnknown_083FB73A
+_0811A320: .4byte 0x0201c000
+ thumb_func_end sub_811A1C8
+
+ thumb_func_start sub_811A324
+sub_811A324: @ 811A324
+ ldr r2, _0811A344
+ ldr r0, _0811A348
+ str r0, [r2]
+ movs r1, 0xE0
+ lsls r1, 9
+ adds r0, r1
+ ldrh r0, [r0, 0x14]
+ movs r1, 0xC0
+ lsls r1, 19
+ adds r0, r1
+ str r0, [r2, 0x4]
+ ldr r0, _0811A34C
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ bx lr
+ .align 2, 0
+_0811A344: .4byte 0x040000d4
+_0811A348: .4byte 0x02000000
+_0811A34C: .4byte 0x80000e00
+ thumb_func_end sub_811A324
+
+ thumb_func_start sub_811A350
+sub_811A350: @ 811A350
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r0, 0x1
+ beq _0811A38C
+ cmp r0, 0x1
+ bgt _0811A36E
+ cmp r0, 0
+ beq _0811A378
+ b _0811A3C4
+_0811A36E:
+ cmp r3, 0x2
+ beq _0811A3A0
+ cmp r3, 0x3
+ beq _0811A3B4
+ b _0811A3C4
+_0811A378:
+ cmp r2, 0
+ beq _0811A384
+ ldr r0, _0811A380
+ b _0811A3C2
+ .align 2, 0
+_0811A380: .4byte REG_BG0VOFS
+_0811A384:
+ ldr r0, _0811A388
+ b _0811A3C2
+ .align 2, 0
+_0811A388: .4byte REG_BG0HOFS
+_0811A38C:
+ cmp r2, 0
+ beq _0811A398
+ ldr r0, _0811A394
+ b _0811A3C2
+ .align 2, 0
+_0811A394: .4byte REG_BG1VOFS
+_0811A398:
+ ldr r0, _0811A39C
+ b _0811A3C2
+ .align 2, 0
+_0811A39C: .4byte REG_BG1HOFS
+_0811A3A0:
+ cmp r2, 0
+ beq _0811A3AC
+ ldr r0, _0811A3A8
+ b _0811A3C2
+ .align 2, 0
+_0811A3A8: .4byte REG_BG2VOFS
+_0811A3AC:
+ ldr r0, _0811A3B0
+ b _0811A3C2
+ .align 2, 0
+_0811A3B0: .4byte REG_BG2HOFS
+_0811A3B4:
+ cmp r2, 0
+ beq _0811A3C0
+ ldr r0, _0811A3BC
+ b _0811A3C2
+ .align 2, 0
+_0811A3BC: .4byte REG_BG3VOFS
+_0811A3C0:
+ ldr r0, _0811A3C8
+_0811A3C2:
+ strh r1, [r0]
+_0811A3C4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811A3C8: .4byte REG_BG3HOFS
+ thumb_func_end sub_811A350
+
+ thumb_func_start sub_811A3CC
+sub_811A3CC: @ 811A3CC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, _0811A3F4
+ ldrb r1, [r0]
+ mov r10, r0
+ cmp r1, 0x1
+ beq _0811A42C
+ cmp r1, 0x1
+ bgt _0811A3F8
+ cmp r1, 0
+ beq _0811A3FE
+ b _0811A4D6
+ .align 2, 0
+_0811A3F4: .4byte gUnknown_03005E98
+_0811A3F8:
+ cmp r1, 0x2
+ beq _0811A494
+ b _0811A4D6
+_0811A3FE:
+ ldr r0, _0811A424
+ ldrh r1, [r4]
+ movs r2, 0xC0
+ lsls r2, 19
+ adds r1, r2
+ bl LZ77UnCompVram
+ ldr r0, _0811A428
+ ldrb r1, [r4, 0x3]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadPalette
+ mov r1, r10
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0811A4D6
+ .align 2, 0
+_0811A424: .4byte gUnknown_083FAF3C
+_0811A428: .4byte gUnknown_083FAF1C
+_0811A42C:
+ ldrb r0, [r4, 0x2]
+ lsls r0, 11
+ movs r1, 0xC0
+ lsls r1, 19
+ adds r0, r1
+ mov r8, r0
+ ldrh r0, [r4]
+ lsls r0, 18
+ lsrs r0, 23
+ mov r12, r0
+ movs r5, 0
+ ldr r2, _0811A490
+ mov r9, r2
+_0811A446:
+ movs r3, 0
+ lsls r0, r5, 2
+ adds r7, r5, 0x1
+ adds r0, r5
+ lsls r6, r0, 1
+_0811A450:
+ ldrb r0, [r4, 0x5]
+ adds r0, r5, r0
+ ldrb r2, [r4, 0x4]
+ adds r2, r3, r2
+ lsls r2, 1
+ lsls r0, 6
+ adds r2, r0
+ add r2, r8
+ adds r1, r6, r3
+ lsls r1, 1
+ add r1, r9
+ ldrb r0, [r4, 0x3]
+ lsls r0, 12
+ ldrh r1, [r1]
+ orrs r0, r1
+ add r0, r12
+ strh r0, [r2]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x9
+ bls _0811A450
+ lsls r0, r7, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x7
+ bls _0811A446
+ mov r3, r10
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ b _0811A4D6
+ .align 2, 0
+_0811A490: .4byte gUnknown_083FAE7C
+_0811A494:
+ ldr r0, _0811A4E8
+ bl LoadSpriteSheets
+ ldr r0, _0811A4EC
+ bl LoadSpritePalettes
+ ldr r0, _0811A4F0
+ ldrb r1, [r4, 0x4]
+ lsls r1, 19
+ movs r2, 0xA0
+ lsls r2, 14
+ adds r1, r2
+ asrs r1, 16
+ ldrb r2, [r4, 0x5]
+ lsls r2, 19
+ movs r3, 0xE0
+ lsls r3, 14
+ adds r2, r3
+ asrs r2, 16
+ movs r3, 0x1
+ bl CreateSprite
+ ldr r1, _0811A4F4
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ strh r0, [r1, 0x4]
+ movs r0, 0x20
+ strb r0, [r1]
+ strb r0, [r1, 0x1]
+ strb r2, [r1, 0x2]
+ movs r0, 0x1
+ str r0, [sp]
+_0811A4D6:
+ ldr r0, [sp]
+ 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
+_0811A4E8: .4byte gCryMeterNeedleSpriteSheets
+_0811A4EC: .4byte gCryMeterNeedleSpritePalettes
+_0811A4F0: .4byte gSpriteTemplate_83FB774
+_0811A4F4: .4byte 0x0201c800
+ thumb_func_end sub_811A3CC
+
+ thumb_func_start sub_811A4F8
+sub_811A4F8: @ 811A4F8
+ push {r4,r5,lr}
+ ldr r5, _0811A52C
+ ldr r4, _0811A530
+ ldrh r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ bl GetSpritePaletteTagByPaletteNum
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeSpritePaletteByTag
+ ldrh r1, [r4, 0x4]
+ 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
+_0811A52C: .4byte gSprites
+_0811A530: .4byte 0x0201c800
+ thumb_func_end sub_811A4F8
+
+ thumb_func_start sub_811A534
+sub_811A534: @ 811A534
+ push {r4-r7,lr}
+ sub sp, 0x14
+ adds r7, r0, 0
+ ldr r3, _0811A578
+ ldr r5, _0811A57C
+ ldrh r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrb r2, [r0, 0x1]
+ movs r1, 0x4
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ ldrh r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x6]
+ ldr r0, _0811A580
+ adds r1, r5, r0
+ ldrb r0, [r1, 0x10]
+ cmp r0, 0x2
+ beq _0811A5AA
+ cmp r0, 0x2
+ bgt _0811A584
+ cmp r0, 0
+ beq _0811A58A
+ b _0811A5F4
+ .align 2, 0
+_0811A578: .4byte gSprites
+_0811A57C: .4byte 0x0201c800
+_0811A580: .4byte 0xfffff800
+_0811A584:
+ cmp r0, 0x6
+ beq _0811A5E2
+ b _0811A5F4
+_0811A58A:
+ movs r0, 0x20
+ strb r0, [r5, 0x1]
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ cmp r0, 0
+ ble _0811A5A4
+ ldrb r0, [r5, 0x2]
+ add r4, sp, 0xC
+ cmp r0, 0x1
+ beq _0811A5F6
+ subs r0, 0x1
+ strb r0, [r5, 0x2]
+ b _0811A5F6
+_0811A5A4:
+ movs r0, 0x5
+ strb r0, [r5, 0x2]
+ b _0811A5F4
+_0811A5AA:
+ movs r3, 0
+ movs r2, 0
+ add r4, sp, 0xC
+ adds r5, r1, 0
+_0811A5B2:
+ lsls r1, r3, 24
+ asrs r1, 24
+ adds r0, r2, r5
+ ldrb r0, [r0]
+ cmp r1, r0
+ bge _0811A5C0
+ adds r3, r0, 0
+_0811A5C0:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0xF
+ bls _0811A5B2
+ lsls r0, r3, 24
+ asrs r0, 24
+ movs r1, 0xD0
+ muls r0, r1
+ cmp r0, 0
+ bge _0811A5D8
+ adds r0, 0xFF
+_0811A5D8:
+ lsls r0, 16
+ asrs r0, 24
+ bl sub_811A6D8
+ b _0811A5F6
+_0811A5E2:
+ ldr r1, _0811A620
+ adds r0, r5, r1
+ ldrb r1, [r0]
+ movs r0, 0xD0
+ muls r0, r1
+ lsls r0, 16
+ asrs r0, 24
+ bl sub_811A6D8
+_0811A5F4:
+ add r4, sp, 0xC
+_0811A5F6:
+ ldr r0, _0811A624
+ ldrb r3, [r0]
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ ldrb r6, [r0, 0x1]
+ movs r1, 0x1
+ ldrsb r1, [r0, r1]
+ adds r5, r0, 0
+ cmp r2, r1
+ beq _0811A63C
+ cmp r2, r1
+ bge _0811A628
+ ldrb r0, [r5, 0x2]
+ adds r0, r3, r0
+ strb r0, [r5]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, r1
+ ble _0811A63C
+ b _0811A636
+ .align 2, 0
+_0811A620: .4byte 0xfffff80a
+_0811A624: .4byte 0x0201c800
+_0811A628:
+ ldrb r0, [r5, 0x2]
+ subs r0, r3, r0
+ strb r0, [r5]
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, r1
+ bge _0811A63C
+_0811A636:
+ strb r6, [r5]
+ movs r0, 0
+ strb r0, [r5, 0x1]
+_0811A63C:
+ ldr r2, _0811A6CC
+ ldr r0, [sp, 0x4]
+ ands r0, r2
+ movs r1, 0x80
+ lsls r1, 1
+ orrs r0, r1
+ ldr r1, _0811A6D0
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 17
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ movs r1, 0
+ ldrsb r1, [r5, r1]
+ lsls r1, 24
+ lsrs r1, 16
+ ldr r0, [sp, 0x8]
+ ands r0, r2
+ orrs r0, r1
+ str r0, [sp, 0x8]
+ add r0, sp, 0x4
+ adds r1, r4, 0
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ObjAffineSet
+ add r0, sp, 0xC
+ ldrh r1, [r0]
+ ldrh r2, [r4, 0x2]
+ ldrh r3, [r4, 0x4]
+ ldrh r0, [r4, 0x6]
+ str r0, [sp]
+ movs r0, 0
+ bl SetOamMatrix
+ ldr r2, _0811A6D4
+ movs r0, 0
+ ldrsb r0, [r5, r0]
+ adds r0, 0x7F
+ movs r1, 0xFF
+ ands r0, r1
+ lsls r1, r0, 1
+ adds r1, r2
+ adds r0, 0x40
+ lsls r0, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0
+ ldrsh r1, [r1, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ cmp r0, 0
+ bge _0811A6AA
+ adds r0, 0xFF
+_0811A6AA:
+ asrs r0, 8
+ strh r0, [r7, 0x24]
+ lsls r1, r2, 16
+ asrs r1, 16
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ cmp r0, 0
+ bge _0811A6BE
+ adds r0, 0xFF
+_0811A6BE:
+ asrs r0, 8
+ strh r0, [r7, 0x26]
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811A6CC: .4byte 0xffff0000
+_0811A6D0: .4byte 0x0000ffff
+_0811A6D4: .4byte gSineTable
+ thumb_func_end sub_811A534
+
+ thumb_func_start sub_811A6D8
+sub_811A6D8: @ 811A6D8
+ push {lr}
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x20
+ subs r2, r1, r0
+ movs r0, 0xFF
+ ands r2, r0
+ adds r0, r2, 0
+ subs r0, 0x21
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xBE
+ bhi _0811A6F4
+ movs r2, 0xE0
+_0811A6F4:
+ ldr r1, _0811A700
+ strb r2, [r1, 0x1]
+ movs r0, 0x5
+ strb r0, [r1, 0x2]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811A700: .4byte 0x0201c800
+ thumb_func_end sub_811A6D8
+
+ thumb_func_start sub_811A704
+sub_811A704: @ 811A704
+ push {r4,lr}
+ adds r4, r1, 0
+ adds r3, r2, 0
+ lsls r4, 24
+ lsls r3, 24
+ movs r1, 0x80
+ lsls r1, 18
+ adds r4, r1
+ lsrs r4, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r3, r1
+ lsrs r3, 24
+ movs r1, 0x4
+ adds r2, r4, 0
+ bl sub_811A798
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811A704
+
+ thumb_func_start sub_811A72C
+sub_811A72C: @ 811A72C
+ 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, 0x90
+ lsls r0, 20
+ adds r4, r0
+ lsrs r4, 24
+ lsrs r5, r3, 24
+ movs r0, 0xC0
+ lsls r0, 18
+ adds r3, r0
+ 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_811A704
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811A72C
+
+ thumb_func_start sub_811A770
+sub_811A770: @ 811A770
+ push {r4,lr}
+ adds r2, r0, 0
+ adds r3, r1, 0
+ lsls r2, 24
+ lsls r3, 24
+ lsrs r0, r2, 24
+ movs r1, 0x90
+ lsls r1, 20
+ adds r2, r1
+ lsrs r2, 24
+ lsrs r1, r3, 24
+ movs r4, 0xC0
+ lsls r4, 18
+ adds r3, r4
+ lsrs r3, 24
+ bl MenuZeroFillWindowRect
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811A770
+
+ thumb_func_start sub_811A798
+sub_811A798: @ 811A798
+ push {r4-r7,lr}
+ sub sp, 0x10
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r5, r1, 0
+ lsls r2, 24
+ lsrs r6, r2, 24
+ lsls r3, 24
+ lsrs r7, r3, 24
+ mov r0, sp
+ adds r1, r4, 0
+ bl ConvertIntToDecimalString
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 1
+ adds r1, 0x21
+ adds r0, r5, 0x2
+ lsls r0, 3
+ subs r1, r0
+ lsls r1, 24
+ lsrs r0, r1, 27
+ subs r0, r6, r0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0xE0
+ lsls r0, 19
+ ands r0, r1
+ lsrs r1, r0, 24
+ ldr r4, _0811A824
+ cmp r1, 0
+ beq _0811A7EA
+ movs r0, 0xFC
+ strb r0, [r4]
+ movs r0, 0x11
+ strb r0, [r4, 0x1]
+ movs r0, 0x8
+ subs r0, r1
+ strb r0, [r4, 0x2]
+ adds r4, 0x3
+_0811A7EA:
+ movs r0, 0xFC
+ strb r0, [r4]
+ movs r0, 0x11
+ strb r0, [r4, 0x1]
+ mov r0, sp
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ subs r0, r5, r0
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ strb r1, [r4, 0x2]
+ adds r4, 0x3
+ adds r0, r4, 0
+ mov r1, sp
+ bl StringCopy
+ ldr r0, _0811A828
+ adds r1, r6, 0
+ adds r2, r7, 0
+ bl MenuPrint
+ add sp, 0x10
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811A824: .4byte gStringVar1
+_0811A828: .4byte gOtherText_Coins2
+ thumb_func_end sub_811A798
+
+ thumb_func_start GetCoins
+GetCoins: @ 811A82C
+ ldr r0, _0811A838
+ ldr r1, _0811A83C
+ adds r0, r1
+ ldrh r0, [r0]
+ bx lr
+ .align 2, 0
+_0811A838: .4byte gSaveBlock1
+_0811A83C: .4byte 0x00000494
+ thumb_func_end GetCoins
+
+ thumb_func_start sub_811A840
+sub_811A840: @ 811A840
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl GetCoins
+ lsls r0, 16
+ ldr r1, _0811A858
+ cmp r0, r1
+ bls _0811A85C
+ movs r0, 0
+ b _0811A88C
+ .align 2, 0
+_0811A858: .4byte 0x270e0000
+_0811A85C:
+ ldr r0, _0811A874
+ ldr r1, _0811A878
+ adds r3, r0, r1
+ ldrh r1, [r3]
+ adds r2, r4, r1
+ lsls r0, r2, 16
+ lsrs r0, 16
+ cmp r1, r0
+ bls _0811A880
+ ldr r0, _0811A87C
+ strh r0, [r3]
+ b _0811A88A
+ .align 2, 0
+_0811A874: .4byte gSaveBlock1
+_0811A878: .4byte 0x00000494
+_0811A87C: .4byte 0x0000270f
+_0811A880:
+ strh r2, [r3]
+ ldr r1, _0811A894
+ cmp r0, r1
+ bls _0811A88A
+ strh r1, [r3]
+_0811A88A:
+ movs r0, 0x1
+_0811A88C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811A894: .4byte 0x0000270f
+ thumb_func_end sub_811A840
+
+ thumb_func_start sub_811A898
+sub_811A898: @ 811A898
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl GetCoins
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r4
+ bcs _0811A8AE
+ movs r0, 0
+ b _0811A8BC
+_0811A8AE:
+ ldr r1, _0811A8C4
+ ldr r0, _0811A8C8
+ adds r1, r0
+ ldrh r0, [r1]
+ subs r0, r4
+ strh r0, [r1]
+ movs r0, 0x1
+_0811A8BC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811A8C4: .4byte gSaveBlock1
+_0811A8C8: .4byte 0x00000494
+ thumb_func_end sub_811A898
+
+ thumb_func_start sub_811A8CC
+sub_811A8CC: @ 811A8CC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ bl sub_811A920
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _0811A8E8
+_0811A8E4:
+ movs r0, 0
+ b _0811A91A
+_0811A8E8:
+ ldr r6, _0811A8EC
+ b _0811A8FE
+ .align 2, 0
+_0811A8EC: .4byte 0x0000ffff
+_0811A8F0:
+ subs r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_0811A8F6:
+ adds r4, 0x4
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _0811A8E4
+_0811A8FE:
+ ldr r1, [r4]
+ ldrh r0, [r1, 0x4]
+ cmp r0, r6
+ beq _0811A912
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0811A8F6
+_0811A912:
+ cmp r5, 0
+ bne _0811A8F0
+ ldr r0, [r4]
+ ldr r0, [r0]
+_0811A91A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811A8CC
+
+ thumb_func_start sub_811A920
+sub_811A920: @ 811A920
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ movs r2, 0
+ ldr r0, _0811A964
+ ldrb r1, [r0]
+ adds r4, r0, 0
+ cmp r1, 0x58
+ beq _0811A990
+ adds r1, r4, 0
+_0811A938:
+ lsls r0, r2, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, r3
+ bhi _0811A990
+ cmp r0, r3
+ beq _0811A956
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r0, r2, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x58
+ bne _0811A938
+_0811A956:
+ lsls r0, r2, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x58
+ bne _0811A970
+ b _0811A990
+ .align 2, 0
+_0811A964: .4byte gLandmarkLists
+_0811A968:
+ adds r0, r4, 0x4
+ adds r0, r1, r0
+ ldr r0, [r0]
+ b _0811A992
+_0811A970:
+ cmp r0, r3
+ bne _0811A990
+ ldr r5, _0811A998
+_0811A976:
+ lsls r1, r2, 3
+ adds r0, r1, r5
+ ldrb r0, [r0, 0x1]
+ cmp r0, r6
+ beq _0811A968
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r0, r2, 3
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, r3
+ beq _0811A976
+_0811A990:
+ movs r0, 0
+_0811A992:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811A998: .4byte gLandmarkLists
+ thumb_func_end sub_811A920
+
+ thumb_func_start sub_811A99C
+sub_811A99C: @ 811A99C
+ push {lr}
+ bl sub_81474C8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811A9D4
+ ldr r1, _0811A9BC
+ ldr r0, _0811A9C0
+ ldrb r0, [r0]
+ strh r0, [r1]
+ ldr r1, _0811A9C4
+ ldr r0, _0811A9C8
+ str r0, [r1]
+ ldr r1, _0811A9CC
+ ldr r0, _0811A9D0
+ b _0811A9F8
+ .align 2, 0
+_0811A9BC: .4byte gScriptResult
+_0811A9C0: .4byte gUnknown_03005CE0
+_0811A9C4: .4byte gUnknown_0300485C
+_0811A9C8: .4byte sub_808AB90
+_0811A9CC: .4byte gUnknown_03005CE4
+_0811A9D0: .4byte sub_811AA38
+_0811A9D4:
+ movs r0, 0x57
+ bl npc_before_player_of_type
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0811A9E6
+ movs r0, 0
+ b _0811A9FC
+_0811A9E6:
+ ldr r1, _0811AA00
+ ldr r0, _0811AA04
+ ldrb r0, [r0]
+ strh r0, [r1]
+ ldr r1, _0811AA08
+ ldr r0, _0811AA0C
+ str r0, [r1]
+ ldr r1, _0811AA10
+ ldr r0, _0811AA14
+_0811A9F8:
+ str r0, [r1]
+ movs r0, 0x1
+_0811A9FC:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811AA00: .4byte gScriptResult
+_0811AA04: .4byte gUnknown_03005CE0
+_0811AA08: .4byte gUnknown_0300485C
+_0811AA0C: .4byte sub_808AB90
+_0811AA10: .4byte gUnknown_03005CE4
+_0811AA14: .4byte sub_811AA18
+ thumb_func_end sub_811A99C
+
+ thumb_func_start sub_811AA18
+sub_811AA18: @ 811AA18
+ push {lr}
+ ldr r1, _0811AA2C
+ ldr r0, _0811AA30
+ ldrb r0, [r0]
+ str r0, [r1]
+ ldr r0, _0811AA34
+ bl ScriptContext1_SetupScript
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811AA2C: .4byte gUnknown_0202FF84
+_0811AA30: .4byte gUnknown_03005CE0
+_0811AA34: .4byte UseStrengthScript
+ thumb_func_end sub_811AA18
+
+ thumb_func_start sub_811AA38
+sub_811AA38: @ 811AA38
+ push {lr}
+ ldr r0, _0811AA4C
+ ldr r1, _0811AA50
+ ldrb r1, [r1]
+ str r1, [r0]
+ movs r0, 0x28
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811AA4C: .4byte gUnknown_0202FF84
+_0811AA50: .4byte gUnknown_03005CE0
+ thumb_func_end sub_811AA38
+
+ thumb_func_start sub_811AA54
+sub_811AA54: @ 811AA54
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0811AA88
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _0811AA8C
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ ldr r0, _0811AA90
+ ldr r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0811AA94
+ adds r0, r1
+ ldr r1, _0811AA98
+ bl GetMonNickname
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811AA88: .4byte gTasks
+_0811AA8C: .4byte sub_811AA9C
+_0811AA90: .4byte gUnknown_0202FF84
+_0811AA94: .4byte gPlayerParty
+_0811AA98: .4byte gStringVar1
+ thumb_func_end sub_811AA54
+
+ thumb_func_start sub_811AA9C
+sub_811AA9C: @ 811AA9C
+ push {lr}
+ bl sub_81474C8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811AAAE
+ bl sub_8147514
+ b _0811AAB8
+_0811AAAE:
+ movs r0, 0x28
+ bl FieldEffectActiveListRemove
+ bl EnableBothScriptContexts
+_0811AAB8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811AA9C
+
+ thumb_func_start sub_811AABC
+sub_811AABC: @ 811AABC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0811AAD0
+ ldr r1, _0811AAD4
+ str r1, [r2, 0x4]
+ bl sub_811AB20
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811AAD0: .4byte gMain
+_0811AAD4: .4byte sub_8054398
+ thumb_func_end sub_811AABC
+
+ thumb_func_start sub_811AAD8
+sub_811AAD8: @ 811AAD8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_811AB20
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811AAD8
+
+ thumb_func_start sub_811AAE8
+sub_811AAE8: @ 811AAE8
+ push {lr}
+ ldr r0, _0811AB0C
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _0811AB10
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x26
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0811AB14
+ movs r0, 0
+ b _0811AB1C
+ .align 2, 0
+_0811AB0C: .4byte sub_811AB50
+_0811AB10: .4byte gTasks
+_0811AB14:
+ adds r0, r2, 0
+ bl DestroyTask
+ movs r0, 0x1
+_0811AB1C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811AAE8
+
+ thumb_func_start sub_811AB20
+sub_811AB20: @ 811AB20
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0811AB48
+ movs r1, 0x2
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0811AB4C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0xA]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811AB48: .4byte sub_811AB50
+_0811AB4C: .4byte gTasks
+ thumb_func_end sub_811AB20
+
+ thumb_func_start sub_811AB50
+sub_811AB50: @ 811AB50
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811AB80
+ ldr r2, _0811AB84
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811AB62:
+ 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 _0811AB62
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811AB80: .4byte gUnknown_083FD794
+_0811AB84: .4byte gTasks
+ thumb_func_end sub_811AB50
+
+ thumb_func_start sub_811AB88
+sub_811AB88: @ 811AB88
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_807DE10
+ ldr r0, _0811ABB4
+ ldr r1, _0811ABB8
+ ldr r2, _0811ABBC
+ bl CpuSet
+ ldr r1, _0811ABC0
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0811ABC4
+ movs r0, 0x2
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+ b _0811ABD2
+ .align 2, 0
+_0811ABB4: .4byte gPlttBufferFaded
+_0811ABB8: .4byte gPlttBufferUnfaded
+_0811ABBC: .4byte 0x04000100
+_0811ABC0: .4byte gUnknown_083FD70C
+_0811ABC4:
+ movs r1, 0x4
+ bl CreateTask
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+_0811ABD2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811AB88
+
+ thumb_func_start sub_811ABD8
+sub_811ABD8: @ 811ABD8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _0811ABF8
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _0811ABFC
+ movs r0, 0
+ b _0811AC04
+ .align 2, 0
+_0811ABF8: .4byte gUnknown_083FD70C
+_0811ABFC:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+_0811AC04:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811ABD8
+
+ thumb_func_start sub_811AC0C
+sub_811AC0C: @ 811AC0C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _0811AC30
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ bl CreateTask
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811AC30: .4byte gBattleTransitionFuncs
+ thumb_func_end sub_811AC0C
+
+ thumb_func_start sub_811AC34
+sub_811AC34: @ 811AC34
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ strh r0, [r4, 0x26]
+ ldr r1, _0811AC60
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0811AC58
+ movs r0, 0x1
+ strh r0, [r4, 0x26]
+_0811AC58:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811AC60: .4byte gBattleTransitionFuncs
+ thumb_func_end sub_811AC34
+
+ thumb_func_start sub_811AC64
+sub_811AC64: @ 811AC64
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ ldr r1, _0811AC98
+ 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, 0
+ bne _0811AC9C
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0x2
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x3
+ movs r3, 0x2
+ bl sub_811D4C8
+ b _0811ACAC
+ .align 2, 0
+_0811AC98: .4byte gTasks
+_0811AC9C:
+ bl sub_811D52C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811ACAC
+ adds r0, r4, 0
+ bl DestroyTask
+_0811ACAC:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811AC64
+
+ thumb_func_start sub_811ACB4
+sub_811ACB4: @ 811ACB4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811ACE4
+ ldr r2, _0811ACE8
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811ACC6:
+ 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 _0811ACC6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811ACE4: .4byte gUnknown_083FD7A4
+_0811ACE8: .4byte gTasks
+ thumb_func_end sub_811ACB4
+
+ thumb_func_start sub_811ACEC
+sub_811ACEC: @ 811ACEC
+ ldr r2, _0811AD18
+ movs r1, 0
+ strh r1, [r2]
+ subs r2, 0x42
+ ldrh r1, [r2]
+ movs r3, 0x40
+ orrs r1, r3
+ strh r1, [r2]
+ adds r2, 0x2
+ ldrh r1, [r2]
+ orrs r1, r3
+ strh r1, [r2]
+ adds r2, 0x2
+ ldrh r1, [r2]
+ orrs r1, r3
+ strh r1, [r2]
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ movs r0, 0x1
+ bx lr
+ .align 2, 0
+_0811AD18: .4byte REG_MOSAIC
+ thumb_func_end sub_811ACEC
+
+ thumb_func_start sub_811AD1C
+sub_811AD1C: @ 811AD1C
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldrh r0, [r4, 0xA]
+ movs r1, 0xA
+ ldrsh r2, [r4, r1]
+ cmp r2, 0
+ beq _0811AD32
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ b _0811AD70
+_0811AD32:
+ movs r0, 0x4
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _0811AD54
+ movs r1, 0x1
+ negs r1, r1
+ str r2, [sp]
+ adds r0, r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_0811AD54:
+ ldr r2, _0811AD7C
+ ldrh r0, [r4, 0xC]
+ movs r1, 0xF
+ ands r1, r0
+ lsls r0, r1, 4
+ adds r0, r1
+ strh r0, [r2]
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xE
+ ble _0811AD70
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_0811AD70:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811AD7C: .4byte REG_MOSAIC
+ thumb_func_end sub_811AD1C
+
+ thumb_func_start sub_811AD80
+sub_811AD80: @ 811AD80
+ push {lr}
+ ldr r0, _0811ADA4
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0811AD9C
+ ldr r0, _0811ADA8
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_0811AD9C:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811ADA4: .4byte gPaletteFade
+_0811ADA8: .4byte sub_811ACB4
+ thumb_func_end sub_811AD80
+
+ thumb_func_start sub_811ADAC
+sub_811ADAC: @ 811ADAC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811ADDC
+ ldr r2, _0811ADE0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811ADBE:
+ 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 _0811ADBE
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811ADDC: .4byte gUnknown_083FD7B0
+_0811ADE0: .4byte gTasks
+ thumb_func_end sub_811ADAC
+
+ thumb_func_start sub_811ADE4
+sub_811ADE4: @ 811ADE4
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ bl sub_811D658
+ bl dp12_8087EA4
+ movs r0, 0x1
+ negs r0, r0
+ movs r4, 0
+ str r4, [sp]
+ movs r1, 0x4
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _0811AE54
+ ldr r1, _0811AE58
+ movs r2, 0x14
+ ldrsh r1, [r1, r2]
+ str r4, [sp]
+ movs r2, 0xA0
+ str r2, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0x2
+ bl sub_811D6E8
+ ldr r0, _0811AE5C
+ bl SetVBlankCallback
+ ldr r0, _0811AE60
+ bl SetHBlankCallback
+ ldr r3, _0811AE64
+ ldrh r2, [r3]
+ strh r4, [r3]
+ ldr r4, _0811AE68
+ ldrh r0, [r4]
+ movs r1, 0x3
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _0811AE6C
+ ldrh r0, [r2]
+ movs r1, 0x18
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811AE54: .4byte gUnknown_03005560
+_0811AE58: .4byte 0x0200c000
+_0811AE5C: .4byte sub_811AEE0
+_0811AE60: .4byte sub_811AF18
+_0811AE64: .4byte 0x04000208
+_0811AE68: .4byte 0x04000200
+_0811AE6C: .4byte REG_DISPSTAT
+ thumb_func_end sub_811ADE4
+
+ thumb_func_start sub_811AE70
+sub_811AE70: @ 811AE70
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r4, _0811AED0
+ ldrb r1, [r4]
+ movs r1, 0
+ strb r1, [r4]
+ ldrh r1, [r0, 0xA]
+ adds r1, 0x4
+ strh r1, [r0, 0xA]
+ ldrh r1, [r0, 0xC]
+ adds r1, 0x8
+ strh r1, [r0, 0xC]
+ ldr r3, _0811AED4
+ movs r2, 0x14
+ ldrsh r1, [r4, r2]
+ movs r5, 0xA
+ ldrsh r2, [r0, r5]
+ movs r5, 0xC
+ ldrsh r0, [r0, r5]
+ str r0, [sp]
+ movs r0, 0xA0
+ str r0, [sp, 0x4]
+ adds r0, r3, 0
+ movs r3, 0x2
+ bl sub_811D6E8
+ ldr r0, _0811AED8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0811AEBE
+ ldr r0, _0811AEDC
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_0811AEBE:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ ldrb r1, [r4]
+ strb r0, [r4]
+ movs r0, 0
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811AED0: .4byte 0x0200c000
+_0811AED4: .4byte gUnknown_03004DE0
+_0811AED8: .4byte gPaletteFade
+_0811AEDC: .4byte sub_811ADAC
+ thumb_func_end sub_811AE70
+
+ thumb_func_start sub_811AEE0
+sub_811AEE0: @ 811AEE0
+ push {lr}
+ bl sub_811D67C
+ ldr r0, _0811AF08
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0811AF02
+ ldr r1, _0811AF0C
+ ldr r0, _0811AF10
+ str r0, [r1]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r0, r2
+ str r0, [r1, 0x4]
+ ldr r0, _0811AF14
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_0811AF02:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811AF08: .4byte 0x0200c000
+_0811AF0C: .4byte 0x040000d4
+_0811AF10: .4byte gUnknown_03004DE0
+_0811AF14: .4byte 0x800000a0
+ thumb_func_end sub_811AEE0
+
+ thumb_func_start sub_811AF18
+sub_811AF18: @ 811AF18
+ ldr r1, _0811AF38
+ ldr r0, _0811AF3C
+ ldrh r0, [r0]
+ lsls r0, 1
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r1, r2
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r0, _0811AF40
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_0811AF38: .4byte gUnknown_03004DE0
+_0811AF3C: .4byte REG_VCOUNT
+_0811AF40: .4byte REG_BG1HOFS
+ thumb_func_end sub_811AF18
+
+ thumb_func_start sub_811AF44
+sub_811AF44: @ 811AF44
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811AF74
+ ldr r2, _0811AF78
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811AF56:
+ 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 _0811AF56
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811AF74: .4byte gUnknown_083FD7B8
+_0811AF78: .4byte gTasks
+ thumb_func_end sub_811AF44
+
+ thumb_func_start sub_811AF7C
+sub_811AF7C: @ 811AF7C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ bl sub_811D658
+ bl dp12_8087EA4
+ movs r0, 0x1
+ negs r0, r0
+ movs r4, 0
+ str r4, [sp]
+ movs r1, 0x4
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0811AFE4
+ ldr r0, _0811AFE8
+ movs r2, 0x16
+ ldrsh r1, [r1, r2]
+ movs r2, 0xA0
+ lsls r2, 1
+ bl memset
+ ldr r0, _0811AFEC
+ bl SetVBlankCallback
+ ldr r0, _0811AFF0
+ bl SetHBlankCallback
+ ldr r3, _0811AFF4
+ ldrh r2, [r3]
+ strh r4, [r3]
+ ldr r4, _0811AFF8
+ ldrh r0, [r4]
+ movs r1, 0x3
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _0811AFFC
+ ldrh r0, [r2]
+ movs r1, 0x18
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811AFE4: .4byte 0x0200c000
+_0811AFE8: .4byte gUnknown_03005560
+_0811AFEC: .4byte sub_811B08C
+_0811AFF0: .4byte sub_811B0C4
+_0811AFF4: .4byte 0x04000208
+_0811AFF8: .4byte 0x04000200
+_0811AFFC: .4byte REG_DISPSTAT
+ thumb_func_end sub_811AF7C
+
+ thumb_func_start sub_811B000
+sub_811B000: @ 811B000
+ push {r4-r7,lr}
+ ldr r2, _0811B07C
+ ldrb r1, [r2]
+ movs r1, 0
+ strb r1, [r2]
+ ldrh r4, [r0, 0xA]
+ ldrh r2, [r0, 0xC]
+ lsls r3, r2, 16
+ asrs r3, 24
+ movs r5, 0x84
+ lsls r5, 5
+ adds r1, r4, r5
+ strh r1, [r0, 0xA]
+ movs r1, 0xC0
+ lsls r1, 1
+ adds r2, r1
+ strh r2, [r0, 0xC]
+ movs r5, 0
+ lsls r7, r3, 16
+_0811B026:
+ lsrs r0, r4, 8
+ asrs r1, r7, 16
+ bl Sin
+ ldr r2, _0811B080
+ lsls r1, r5, 1
+ adds r1, r2
+ ldr r6, _0811B07C
+ ldrh r2, [r6, 0x16]
+ adds r0, r2
+ strh r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r1, 0x84
+ lsls r1, 5
+ adds r0, r4, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r5, 0x9F
+ bls _0811B026
+ ldr r0, _0811B084
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0811B06A
+ ldr r0, _0811B088
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_0811B06A:
+ ldrb r0, [r6]
+ adds r0, 0x1
+ ldrb r1, [r6]
+ strb r0, [r6]
+ movs r0, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811B07C: .4byte 0x0200c000
+_0811B080: .4byte gUnknown_03004DE0
+_0811B084: .4byte gPaletteFade
+_0811B088: .4byte sub_811AF44
+ thumb_func_end sub_811B000
+
+ thumb_func_start sub_811B08C
+sub_811B08C: @ 811B08C
+ push {lr}
+ bl sub_811D67C
+ ldr r0, _0811B0B4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0811B0AE
+ ldr r1, _0811B0B8
+ ldr r0, _0811B0BC
+ str r0, [r1]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r0, r2
+ str r0, [r1, 0x4]
+ ldr r0, _0811B0C0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_0811B0AE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811B0B4: .4byte 0x0200c000
+_0811B0B8: .4byte 0x040000d4
+_0811B0BC: .4byte gUnknown_03004DE0
+_0811B0C0: .4byte 0x800000a0
+ thumb_func_end sub_811B08C
+
+ thumb_func_start sub_811B0C4
+sub_811B0C4: @ 811B0C4
+ ldr r1, _0811B0E4
+ ldr r0, _0811B0E8
+ ldrh r0, [r0]
+ lsls r0, 1
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r1, r2
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r0, _0811B0EC
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_0811B0E4: .4byte gUnknown_03004DE0
+_0811B0E8: .4byte REG_VCOUNT
+_0811B0EC: .4byte REG_BG1VOFS
+ thumb_func_end sub_811B0C4
+
+ thumb_func_start sub_811B0F0
+sub_811B0F0: @ 811B0F0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811B120
+ ldr r2, _0811B124
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811B102:
+ 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 _0811B102
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811B120: .4byte gUnknown_083FD7C0
+_0811B124: .4byte gTasks
+ thumb_func_end sub_811B0F0
+
+ thumb_func_start sub_811B128
+sub_811B128: @ 811B128
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ bl sub_811D658
+ bl dp12_8087EA4
+ movs r2, 0
+ movs r3, 0x10
+ strh r3, [r4, 0xA]
+ strh r2, [r4, 0xC]
+ strh r2, [r4, 0x10]
+ movs r0, 0x80
+ lsls r0, 7
+ strh r0, [r4, 0x12]
+ ldr r1, _0811B1BC
+ movs r0, 0x3F
+ strh r0, [r1, 0x2]
+ strh r2, [r1, 0x4]
+ movs r0, 0xF0
+ strh r0, [r1, 0x6]
+ movs r0, 0xA0
+ strh r0, [r1, 0x8]
+ ldr r0, _0811B1C0
+ strh r0, [r1, 0xE]
+ lsls r3, 8
+ strh r3, [r1, 0x10]
+ movs r1, 0
+ add r5, sp, 0x4
+ add r6, sp, 0x8
+ ldr r3, _0811B1C4
+ movs r2, 0xF0
+_0811B168:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x9F
+ bls _0811B168
+ ldr r0, _0811B1C8
+ bl SetVBlankCallback
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_811D6A8
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, [sp, 0x4]
+ ldr r2, _0811B1CC
+ mov r0, sp
+ bl CpuSet
+ ldr r0, _0811B1D0
+ ldr r1, [sp, 0x8]
+ movs r2, 0xB0
+ lsls r2, 2
+ bl CpuSet
+ ldr r0, _0811B1D4
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811B1BC: .4byte 0x0200c000
+_0811B1C0: .4byte 0x00003f41
+_0811B1C4: .4byte gUnknown_03005560
+_0811B1C8: .4byte sub_811B520
+_0811B1CC: .4byte 0x01000400
+_0811B1D0: .4byte gUnknown_083FBB88
+_0811B1D4: .4byte gFieldEffectObjectPalette10
+ thumb_func_end sub_811B128
+
+ thumb_func_start sub_811B1D8
+sub_811B1D8: @ 811B1D8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ adds r7, r0, 0
+ ldr r5, _0811B260
+ add r1, sp, 0xC
+ add r0, sp, 0x8
+ bl sub_811D6A8
+ movs r1, 0
+ ldr r0, [sp, 0x8]
+ mov r9, r0
+ ldr r6, _0811B264
+ mov r8, r6
+ movs r0, 0xF0
+ lsls r0, 8
+ mov r12, r0
+_0811B1FE:
+ movs r0, 0
+ lsls r3, r1, 16
+ asrs r4, r3, 11
+_0811B204:
+ lsls r2, r0, 16
+ asrs r2, 16
+ adds r1, r4, r2
+ lsls r1, 1
+ add r1, r9
+ ldrh r0, [r5]
+ mov r6, r12
+ orrs r0, r6
+ strh r0, [r1]
+ adds r2, 0x1
+ lsls r2, 16
+ adds r5, 0x2
+ lsrs r0, r2, 16
+ asrs r2, 16
+ cmp r2, 0x1D
+ ble _0811B204
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r3, r1
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _0811B1FE
+ movs r6, 0x10
+ ldrsh r2, [r7, r6]
+ movs r1, 0x12
+ ldrsh r0, [r7, r1]
+ str r0, [sp]
+ movs r0, 0xA0
+ str r0, [sp, 0x4]
+ mov r0, r8
+ movs r1, 0
+ movs r3, 0x84
+ bl sub_811D6E8
+ ldrh r0, [r7, 0x8]
+ adds r0, 0x1
+ strh r0, [r7, 0x8]
+ movs r0, 0x1
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811B260: .4byte gUnknown_083FDB44
+_0811B264: .4byte gUnknown_03004DE0
+ thumb_func_end sub_811B1D8
+
+ thumb_func_start sub_811B268
+sub_811B268: @ 811B268
+ push {r4,lr}
+ sub sp, 0x8
+ adds r2, r0, 0
+ ldr r1, _0811B2E8
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ ldrh r3, [r2, 0xE]
+ movs r4, 0xE
+ ldrsh r0, [r2, r4]
+ adds r4, r1, 0
+ cmp r0, 0
+ beq _0811B28C
+ subs r0, r3, 0x1
+ strh r0, [r2, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0811B296
+_0811B28C:
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+ movs r0, 0x2
+ strh r0, [r2, 0xE]
+_0811B296:
+ ldrh r0, [r2, 0xA]
+ lsls r0, 8
+ ldrh r1, [r2, 0xC]
+ orrs r0, r1
+ strh r0, [r4, 0x10]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0xF
+ ble _0811B2AE
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+_0811B2AE:
+ ldrh r0, [r2, 0x10]
+ adds r0, 0x8
+ strh r0, [r2, 0x10]
+ ldr r0, _0811B2EC
+ adds r1, r0, 0
+ ldrh r3, [r2, 0x12]
+ adds r1, r3
+ strh r1, [r2, 0x12]
+ ldr r0, _0811B2F0
+ movs r3, 0x10
+ ldrsh r2, [r2, r3]
+ lsls r1, 16
+ asrs r1, 24
+ str r1, [sp]
+ movs r1, 0xA0
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r3, 0x84
+ bl sub_811D6E8
+ ldrb r0, [r4]
+ adds r0, 0x1
+ ldrb r1, [r4]
+ strb r0, [r4]
+ movs r0, 0
+ add sp, 0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811B2E8: .4byte 0x0200c000
+_0811B2EC: .4byte 0xffffff00
+_0811B2F0: .4byte gUnknown_03004DE0
+ thumb_func_end sub_811B268
+
+ thumb_func_start sub_811B2F4
+sub_811B2F4: @ 811B2F4
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r3, r0, 0
+ ldr r1, _0811B374
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ ldrh r2, [r3, 0xE]
+ movs r4, 0xE
+ ldrsh r0, [r3, r4]
+ adds r4, r1, 0
+ cmp r0, 0
+ beq _0811B318
+ subs r0, r2, 0x1
+ strh r0, [r3, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0811B322
+_0811B318:
+ ldrh r0, [r3, 0xA]
+ subs r0, 0x1
+ strh r0, [r3, 0xA]
+ movs r0, 0x2
+ strh r0, [r3, 0xE]
+_0811B322:
+ ldrh r0, [r3, 0xA]
+ lsls r1, r0, 8
+ ldrh r2, [r3, 0xC]
+ orrs r1, r2
+ strh r1, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0811B338
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+_0811B338:
+ ldrh r0, [r3, 0x10]
+ adds r0, 0x8
+ strh r0, [r3, 0x10]
+ ldr r5, _0811B378
+ adds r1, r5, 0
+ ldrh r0, [r3, 0x12]
+ adds r1, r0
+ strh r1, [r3, 0x12]
+ ldr r0, _0811B37C
+ movs r5, 0x10
+ ldrsh r2, [r3, r5]
+ lsls r1, 16
+ asrs r1, 24
+ str r1, [sp]
+ movs r1, 0xA0
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r3, 0x84
+ bl sub_811D6E8
+ ldrb r0, [r4]
+ adds r0, 0x1
+ ldrb r1, [r4]
+ strb r0, [r4]
+ movs r0, 0
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811B374: .4byte 0x0200c000
+_0811B378: .4byte 0xffffff00
+_0811B37C: .4byte gUnknown_03004DE0
+ thumb_func_end sub_811B2F4
+
+ thumb_func_start sub_811B380
+sub_811B380: @ 811B380
+ push {r4-r7,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r5, _0811B3E0
+ ldrb r0, [r5]
+ movs r7, 0
+ strb r7, [r5]
+ ldrh r0, [r4, 0x10]
+ adds r0, 0x8
+ strh r0, [r4, 0x10]
+ ldr r0, _0811B3E4
+ adds r1, r0, 0
+ ldrh r3, [r4, 0x12]
+ adds r1, r3
+ strh r1, [r4, 0x12]
+ ldr r0, _0811B3E8
+ movs r3, 0x10
+ ldrsh r2, [r4, r3]
+ lsls r1, 16
+ asrs r1, 24
+ str r1, [sp]
+ movs r6, 0xA0
+ str r6, [sp, 0x4]
+ movs r1, 0
+ movs r3, 0x84
+ bl sub_811D6E8
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bgt _0811B3CE
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ strh r6, [r4, 0xA]
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r4, 0xC]
+ strh r7, [r4, 0xE]
+_0811B3CE:
+ ldrb r0, [r5]
+ adds r0, 0x1
+ ldrb r1, [r5]
+ strb r0, [r5]
+ movs r0, 0
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811B3E0: .4byte 0x0200c000
+_0811B3E4: .4byte 0xffffff00
+_0811B3E8: .4byte gUnknown_03004DE0
+ thumb_func_end sub_811B380
+
+ thumb_func_start sub_811B3EC
+sub_811B3EC: @ 811B3EC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _0811B488
+ ldrb r1, [r0]
+ movs r3, 0
+ strb r3, [r0]
+ ldrh r2, [r4, 0xC]
+ movs r0, 0xC
+ ldrsh r1, [r4, r0]
+ ldr r0, _0811B48C
+ cmp r1, r0
+ bgt _0811B40A
+ adds r0, r2, 0
+ adds r0, 0x80
+ strh r0, [r4, 0xC]
+_0811B40A:
+ ldrh r1, [r4, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0811B426
+ ldrh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 24
+ subs r0, r1, r0
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0811B426
+ strh r3, [r4, 0xA]
+_0811B426:
+ ldr r0, _0811B490
+ movs r1, 0xA
+ ldrsh r3, [r4, r1]
+ movs r1, 0x78
+ movs r2, 0x50
+ bl sub_811D764
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0811B462
+ ldr r1, _0811B494
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811B498
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811B49C
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ bl sub_811D6D4
+ ldr r0, _0811B4A0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_0811B462:
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0811B476
+ adds r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ ldr r0, _0811B4A4
+ bl SetVBlankCallback
+_0811B476:
+ ldr r0, _0811B488
+ ldrb r1, [r0]
+ adds r1, 0x1
+ ldrb r2, [r0]
+ strb r1, [r0]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811B488: .4byte 0x0200c000
+_0811B48C: .4byte 0x000003ff
+_0811B490: .4byte gUnknown_03004DE0
+_0811B494: .4byte 0x040000b0
+_0811B498: .4byte 0x0000c5ff
+_0811B49C: .4byte 0x00007fff
+_0811B4A0: .4byte sub_811B0F0
+_0811B4A4: .4byte sub_811B54C
+ thumb_func_end sub_811B3EC
+
+ thumb_func_start sub_811B4A8
+sub_811B4A8: @ 811B4A8
+ push {lr}
+ ldr r1, _0811B500
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811B504
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811B508
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ bl sub_811D67C
+ ldr r2, _0811B50C
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _0811B4DE
+ ldr r1, _0811B510
+ ldr r0, _0811B514
+ str r0, [r1]
+ movs r3, 0xF0
+ lsls r3, 3
+ adds r0, r3
+ str r0, [r1, 0x4]
+ ldr r0, _0811B518
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_0811B4DE:
+ ldr r1, _0811B51C
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r2, 0x4]
+ strh r0, [r1]
+ subs r1, 0x6
+ ldrh r0, [r2, 0x8]
+ strh r0, [r1]
+ adds r1, 0xC
+ ldrh r0, [r2, 0xE]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r2, 0x10]
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811B500: .4byte 0x040000b0
+_0811B504: .4byte 0x0000c5ff
+_0811B508: .4byte 0x00007fff
+_0811B50C: .4byte 0x0200c000
+_0811B510: .4byte 0x040000d4
+_0811B514: .4byte gUnknown_03004DE0
+_0811B518: .4byte 0x800000a0
+_0811B51C: .4byte REG_WININ
+ thumb_func_end sub_811B4A8
+
+ thumb_func_start sub_811B520
+sub_811B520: @ 811B520
+ push {lr}
+ bl sub_811B4A8
+ ldr r1, _0811B53C
+ ldr r0, _0811B540
+ str r0, [r1]
+ ldr r0, _0811B544
+ str r0, [r1, 0x4]
+ ldr r0, _0811B548
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811B53C: .4byte 0x040000b0
+_0811B540: .4byte gUnknown_03005560
+_0811B544: .4byte REG_BG0HOFS
+_0811B548: .4byte 0xa2400001
+ thumb_func_end sub_811B520
+
+ thumb_func_start sub_811B54C
+sub_811B54C: @ 811B54C
+ push {lr}
+ bl sub_811B4A8
+ ldr r1, _0811B568
+ ldr r0, _0811B56C
+ str r0, [r1]
+ ldr r0, _0811B570
+ str r0, [r1, 0x4]
+ ldr r0, _0811B574
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811B568: .4byte 0x040000b0
+_0811B56C: .4byte gUnknown_03005560
+_0811B570: .4byte REG_WIN0H
+_0811B574: .4byte 0xa2400001
+ thumb_func_end sub_811B54C
+
+ thumb_func_start sub_811B578
+sub_811B578: @ 811B578
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811B5A8
+ ldr r2, _0811B5AC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811B58A:
+ 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 _0811B58A
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811B5A8: .4byte gUnknown_083FD7D8
+_0811B5AC: .4byte gTasks
+ thumb_func_end sub_811B578
+
+ thumb_func_start sub_811B5B0
+sub_811B5B0: @ 811B5B0
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ add r0, sp, 0x4
+ add r1, sp, 0x8
+ bl sub_811D6A8
+ ldr r0, _0811B5F0
+ ldr r1, [sp, 0x8]
+ movs r2, 0x20
+ bl CpuSet
+ movs r0, 0
+ str r0, [sp]
+ ldr r1, [sp, 0x4]
+ ldr r2, _0811B5F4
+ mov r0, sp
+ bl CpuSet
+ ldr r0, _0811B5F8
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+ add sp, 0xC
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811B5F0: .4byte gUnknown_083FC108
+_0811B5F4: .4byte 0x05000200
+_0811B5F8: .4byte gFieldEffectObjectPalette10
+ thumb_func_end sub_811B5B0
+
+ thumb_func_start sub_811B5FC
+sub_811B5FC: @ 811B5FC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ adds r7, r0, 0
+ ldr r1, _0811B67C
+ mov r0, sp
+ movs r2, 0x4
+ bl memcpy
+ add r4, sp, 0x4
+ ldr r1, _0811B680
+ adds r0, r4, 0
+ movs r2, 0xA
+ bl memcpy
+ bl Random
+ movs r5, 0x1
+ ands r5, r0
+ movs r1, 0
+ mov r8, r4
+ ldr r6, _0811B684
+_0811B62A:
+ lsls r5, 16
+ asrs r5, 16
+ lsls r0, r5, 1
+ add r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ str r0, [r6]
+ lsls r4, r1, 16
+ asrs r4, 16
+ lsls r0, r4, 5
+ adds r0, 0x10
+ str r0, [r6, 0x4]
+ str r5, [r6, 0x8]
+ lsls r0, r4, 1
+ add r0, r8
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ str r0, [r6, 0xC]
+ movs r0, 0x2D
+ bl FieldEffectStart
+ adds r4, 0x1
+ lsls r4, 16
+ movs r0, 0x1
+ eors r5, r0
+ lsls r5, 16
+ lsrs r5, 16
+ lsrs r1, r4, 16
+ asrs r4, 16
+ cmp r4, 0x4
+ ble _0811B62A
+ ldrh r0, [r7, 0x8]
+ adds r0, 0x1
+ strh r0, [r7, 0x8]
+ movs r0, 0
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811B67C: .4byte gUnknown_083FD7E4
+_0811B680: .4byte gUnknown_083FD7E8
+_0811B684: .4byte gUnknown_0202FF84
+ thumb_func_end sub_811B5FC
+
+ thumb_func_start sub_811B688
+sub_811B688: @ 811B688
+ push {lr}
+ movs r0, 0x2D
+ bl FieldEffectActiveListContains
+ lsls r0, 24
+ cmp r0, 0
+ bne _0811B6A8
+ bl sub_811D6D4
+ ldr r0, _0811B6B0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_0811B6A8:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811B6B0: .4byte sub_811B578
+ thumb_func_end sub_811B688
+
+ thumb_func_start sub_811B6B4
+sub_811B6B4: @ 811B6B4
+ push {r4,r5,lr}
+ ldr r0, _0811B710
+ ldr r5, _0811B714
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ movs r3, 0x4
+ ldrsh r2, [r5, r3]
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0811B718
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r4, r1
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4, 0x5]
+ 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, [r5, 0x8]
+ strh r0, [r4, 0x2E]
+ ldr r0, [r5, 0xC]
+ strh r0, [r4, 0x30]
+ ldr r0, _0811B71C
+ strh r0, [r4, 0x32]
+ adds r0, r4, 0
+ bl InitSpriteAffineAnim
+ ldrb r1, [r5, 0x8]
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811B710: .4byte gSpriteTemplate_83FD98C
+_0811B714: .4byte gUnknown_0202FF84
+_0811B718: .4byte gSprites
+_0811B71C: .4byte 0x0000ffff
+ thumb_func_end sub_811B6B4
+
+ thumb_func_start sub_811B720
+sub_811B720: @ 811B720
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldr r1, _0811B740
+ mov r0, sp
+ movs r2, 0x4
+ bl memcpy
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0811B744
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ b _0811B7D6
+ .align 2, 0
+_0811B740: .4byte gUnknown_083FD7F2
+_0811B744:
+ ldrh r0, [r4, 0x20]
+ lsls r1, r0, 16
+ lsrs r0, r1, 16
+ cmp r0, 0xF0
+ bhi _0811B7B2
+ asrs r0, r1, 19
+ lsls r0, 16
+ ldrh r1, [r4, 0x22]
+ lsls r1, 16
+ asrs r1, 19
+ lsls r1, 16
+ lsrs r1, 16
+ lsrs r2, r0, 16
+ asrs r5, r0, 16
+ movs r3, 0x32
+ ldrsh r0, [r4, r3]
+ cmp r5, r0
+ beq _0811B7B2
+ strh r2, [r4, 0x32]
+ ldr r0, _0811B7E0
+ ldrh r2, [r0]
+ lsrs r2, 8
+ movs r0, 0x1F
+ ands r2, r0
+ lsls r2, 11
+ movs r0, 0xC0
+ lsls r0, 19
+ adds r2, r0
+ lsls r1, 16
+ asrs r1, 16
+ subs r0, r1, 0x2
+ lsls r0, 5
+ adds r0, r5
+ lsls r0, 1
+ adds r0, r2
+ ldr r6, _0811B7E4
+ adds r3, r6, 0
+ strh r3, [r0]
+ subs r0, r1, 0x1
+ lsls r0, 5
+ adds r0, r5
+ lsls r0, 1
+ adds r0, r2
+ strh r3, [r0]
+ lsls r0, r1, 5
+ adds r0, r5
+ lsls r0, 1
+ adds r0, r2
+ strh r3, [r0]
+ adds r1, 0x1
+ lsls r1, 5
+ adds r1, r5
+ lsls r1, 1
+ adds r1, r2
+ strh r3, [r1]
+_0811B7B2:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ ldrh r2, [r4, 0x20]
+ adds r0, r2
+ strh r0, [r4, 0x20]
+ adds r0, 0xF
+ lsls r0, 16
+ movs r1, 0x87
+ lsls r1, 17
+ cmp r0, r1
+ bls _0811B7D6
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl FieldEffectStop
+_0811B7D6:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811B7E0: .4byte REG_BG0CNT
+_0811B7E4: .4byte 0x0000f001
+ thumb_func_end sub_811B720
+
+ thumb_func_start sub_811B7E8
+sub_811B7E8: @ 811B7E8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811B818
+ ldr r2, _0811B81C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811B7FA:
+ 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 _0811B7FA
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811B818: .4byte gUnknown_083FD7F8
+_0811B81C: .4byte gTasks
+ thumb_func_end sub_811B7E8
+
+ thumb_func_start sub_811B820
+sub_811B820: @ 811B820
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_811D658
+ bl dp12_8087EA4
+ ldr r1, _0811B870
+ movs r0, 0
+ strh r0, [r1, 0x2]
+ movs r0, 0x3F
+ strh r0, [r1, 0x4]
+ ldr r0, _0811B874
+ strh r0, [r1, 0x6]
+ movs r0, 0xA0
+ strh r0, [r1, 0x8]
+ movs r1, 0
+ ldr r3, _0811B878
+ ldr r2, _0811B87C
+_0811B844:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x9F
+ bls _0811B844
+ ldr r0, _0811B880
+ bl SetVBlankCallback
+ ldr r1, _0811B870
+ movs r0, 0x78
+ strh r0, [r1, 0x2C]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811B870: .4byte 0x0200c000
+_0811B874: .4byte 0x0000f0f1
+_0811B878: .4byte gUnknown_03005560
+_0811B87C: .4byte 0x0000f3f4
+_0811B880: .4byte sub_811BC2C
+ thumb_func_end sub_811B820
+
+ thumb_func_start sub_811B884
+sub_811B884: @ 811B884
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r6, r0, 0
+ ldr r4, _0811B904
+ ldrb r0, [r4]
+ movs r0, 0
+ strb r0, [r4]
+ adds r0, r4, 0
+ adds r0, 0x24
+ movs r1, 0x2C
+ ldrsh r3, [r4, r1]
+ movs r1, 0x1
+ negs r1, r1
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r1, 0x78
+ movs r2, 0x50
+ bl sub_811D8FC
+ ldr r5, _0811B908
+_0811B8B0:
+ movs r3, 0x2A
+ ldrsh r2, [r4, r3]
+ lsls r2, 1
+ adds r2, r5
+ ldrh r0, [r4, 0x28]
+ adds r0, 0x1
+ movs r3, 0xF0
+ lsls r3, 7
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ adds r0, r4, 0
+ adds r0, 0x24
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_811D978
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811B8B0
+ ldr r2, _0811B904
+ ldrh r0, [r2, 0x2C]
+ adds r0, 0x10
+ strh r0, [r2, 0x2C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xEF
+ ble _0811B8F2
+ movs r0, 0
+ strh r0, [r2, 0x2E]
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+_0811B8F2:
+ ldrb r0, [r2]
+ adds r0, 0x1
+ ldrb r1, [r2]
+ strb r0, [r2]
+ movs r0, 0
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811B904: .4byte 0x0200c000
+_0811B908: .4byte gUnknown_03004DE0
+ thumb_func_end sub_811B884
+
+ thumb_func_start sub_811B90C
+sub_811B90C: @ 811B90C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x10
+ adds r7, r0, 0
+ add r1, sp, 0xC
+ movs r0, 0
+ strb r0, [r1]
+ ldr r4, _0811B988
+ ldrb r0, [r4]
+ movs r0, 0
+ strb r0, [r4]
+ adds r0, r4, 0
+ adds r0, 0x24
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r1, 0x78
+ movs r2, 0x50
+ movs r3, 0xF0
+ bl sub_811D8FC
+ adds r6, r4, 0
+ ldr r5, _0811B98C
+ mov r8, r5
+ add r5, sp, 0xC
+_0811B946:
+ movs r1, 0x78
+ ldrh r0, [r4, 0x28]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x4F
+ ble _0811B95C
+ ldrh r1, [r4, 0x28]
+ movs r3, 0xF0
+_0811B95C:
+ movs r0, 0x2A
+ ldrsh r2, [r4, r0]
+ lsls r2, 1
+ add r2, r8
+ lsls r1, 16
+ asrs r1, 8
+ lsls r0, r3, 16
+ asrs r3, r0, 16
+ orrs r3, r1
+ strh r3, [r2]
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _0811B990
+ adds r0, r4, 0
+ adds r0, 0x24
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_811D978
+ strb r0, [r5]
+ b _0811B946
+ .align 2, 0
+_0811B988: .4byte 0x0200c000
+_0811B98C: .4byte gUnknown_03004DE0
+_0811B990:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x8
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0x9F
+ ble _0811B9AA
+ movs r0, 0xF0
+ strh r0, [r4, 0x2C]
+ ldrh r0, [r7, 0x8]
+ adds r0, 0x1
+ strh r0, [r7, 0x8]
+ b _0811B9D0
+_0811B9AA:
+ movs r2, 0x2A
+ ldrsh r0, [r4, r2]
+ cmp r0, r1
+ bge _0811B9D0
+ ldr r4, _0811B9E8
+ ldr r2, _0811B9EC
+_0811B9B6:
+ ldrh r0, [r2, 0x2A]
+ adds r0, 0x1
+ strh r0, [r2, 0x2A]
+ lsls r0, 16
+ asrs r0, 15
+ adds r0, r4
+ strh r3, [r0]
+ movs r5, 0x2A
+ ldrsh r1, [r2, r5]
+ movs r5, 0x2E
+ ldrsh r0, [r2, r5]
+ cmp r1, r0
+ blt _0811B9B6
+_0811B9D0:
+ ldrb r0, [r6]
+ adds r0, 0x1
+ ldrb r1, [r6]
+ strb r0, [r6]
+ movs r0, 0
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811B9E8: .4byte gUnknown_03004DE0
+_0811B9EC: .4byte 0x0200c000
+ thumb_func_end sub_811B90C
+
+ thumb_func_start sub_811B9F0
+sub_811B9F0: @ 811B9F0
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r6, r0, 0
+ ldr r4, _0811BA68
+ ldrb r0, [r4]
+ movs r0, 0
+ strb r0, [r4]
+ adds r0, r4, 0
+ adds r0, 0x24
+ movs r1, 0x2C
+ ldrsh r3, [r4, r1]
+ movs r1, 0xA0
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r1, 0x78
+ movs r2, 0x50
+ bl sub_811D8FC
+ ldr r5, _0811BA6C
+_0811BA1A:
+ movs r0, 0x2A
+ ldrsh r2, [r4, r0]
+ lsls r2, 1
+ adds r2, r5
+ ldrh r0, [r4, 0x28]
+ lsls r0, 8
+ movs r1, 0xF0
+ orrs r0, r1
+ strh r0, [r2]
+ adds r0, r4, 0
+ adds r0, 0x24
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_811D978
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811BA1A
+ ldr r2, _0811BA68
+ ldrh r0, [r2, 0x2C]
+ subs r0, 0x10
+ strh r0, [r2, 0x2C]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _0811BA56
+ movs r0, 0xA0
+ strh r0, [r2, 0x2E]
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+_0811BA56:
+ ldrb r0, [r2]
+ adds r0, 0x1
+ ldrb r1, [r2]
+ strb r0, [r2]
+ movs r0, 0
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811BA68: .4byte 0x0200c000
+_0811BA6C: .4byte gUnknown_03004DE0
+ thumb_func_end sub_811B9F0
+
+ thumb_func_start sub_811BA70
+sub_811BA70: @ 811BA70
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ mov r8, r0
+ add r1, sp, 0xC
+ movs r0, 0
+ strb r0, [r1]
+ ldr r4, _0811BAF0
+ ldrb r0, [r4]
+ movs r0, 0
+ strb r0, [r4]
+ adds r0, r4, 0
+ adds r0, 0x24
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r1, 0x78
+ movs r2, 0x50
+ movs r3, 0
+ bl sub_811D8FC
+ ldr r3, _0811BAF4
+ mov r9, r3
+ mov r10, r4
+ add r6, sp, 0xC
+_0811BAAE:
+ movs r5, 0x2A
+ ldrsh r0, [r4, r5]
+ lsls r0, 1
+ mov r7, r9
+ adds r5, r0, r7
+ ldrb r1, [r5]
+ ldrh r2, [r4, 0x28]
+ adds r3, r2, 0
+ movs r7, 0x2E
+ ldrsh r0, [r4, r7]
+ cmp r0, 0x50
+ bgt _0811BACA
+ movs r2, 0x78
+ adds r1, r3, 0
+_0811BACA:
+ lsls r0, r2, 16
+ asrs r0, 8
+ lsls r1, 16
+ asrs r1, 16
+ orrs r1, r0
+ movs r3, 0
+ strh r1, [r5]
+ ldrb r0, [r6]
+ cmp r0, 0
+ bne _0811BAF8
+ adds r0, r4, 0
+ adds r0, 0x24
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_811D978
+ strb r0, [r6]
+ b _0811BAAE
+ .align 2, 0
+_0811BAF0: .4byte 0x0200c000
+_0811BAF4: .4byte gUnknown_03004DE0
+_0811BAF8:
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x8
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ bgt _0811BB12
+ strh r3, [r4, 0x2C]
+ mov r1, r8
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0811BB3A
+_0811BB12:
+ movs r3, 0x2A
+ ldrsh r0, [r4, r3]
+ cmp r0, r2
+ ble _0811BB3A
+ ldr r4, _0811BB58
+ ldr r2, _0811BB5C
+ adds r3, r1, 0
+_0811BB20:
+ ldrh r0, [r2, 0x2A]
+ subs r0, 0x1
+ strh r0, [r2, 0x2A]
+ lsls r0, 16
+ asrs r0, 15
+ adds r0, r4
+ strh r3, [r0]
+ movs r5, 0x2A
+ ldrsh r1, [r2, r5]
+ movs r7, 0x2E
+ ldrsh r0, [r2, r7]
+ cmp r1, r0
+ bgt _0811BB20
+_0811BB3A:
+ mov r1, r10
+ ldrb r0, [r1]
+ adds r0, 0x1
+ ldrb r1, [r1]
+ mov r2, r10
+ strb r0, [r2]
+ movs r0, 0
+ 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
+_0811BB58: .4byte gUnknown_03004DE0
+_0811BB5C: .4byte 0x0200c000
+ thumb_func_end sub_811BA70
+
+ thumb_func_start sub_811BB60
+sub_811BB60: @ 811BB60
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r6, r0, 0
+ ldr r4, _0811BBE4
+ ldrb r0, [r4]
+ movs r1, 0
+ strb r1, [r4]
+ adds r0, r4, 0
+ adds r0, 0x24
+ movs r2, 0x2C
+ ldrsh r3, [r4, r2]
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ str r1, [sp, 0x8]
+ movs r1, 0x78
+ movs r2, 0x50
+ bl sub_811D8FC
+ ldr r5, _0811BBE8
+_0811BB88:
+ movs r2, 0x78
+ ldrh r3, [r4, 0x28]
+ movs r1, 0x28
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x77
+ ble _0811BB98
+ movs r2, 0
+ movs r3, 0xF0
+_0811BB98:
+ movs r0, 0x2A
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ adds r1, r5
+ lsls r2, 8
+ lsls r0, r3, 16
+ asrs r0, 16
+ orrs r0, r2
+ strh r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x24
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_811D978
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811BB88
+ ldr r2, _0811BBE4
+ ldrh r0, [r2, 0x2C]
+ adds r0, 0x10
+ strh r0, [r2, 0x2C]
+ movs r1, 0x28
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x78
+ ble _0811BBD2
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+_0811BBD2:
+ ldrb r0, [r2]
+ adds r0, 0x1
+ ldrb r1, [r2]
+ strb r0, [r2]
+ movs r0, 0
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811BBE4: .4byte 0x0200c000
+_0811BBE8: .4byte gUnknown_03004DE0
+ thumb_func_end sub_811BB60
+
+ thumb_func_start sub_811BBEC
+sub_811BBEC: @ 811BBEC
+ push {lr}
+ ldr r1, _0811BC1C
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811BC20
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811BC24
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ bl sub_811D6D4
+ ldr r0, _0811BC28
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811BC1C: .4byte 0x040000b0
+_0811BC20: .4byte 0x0000c5ff
+_0811BC24: .4byte 0x00007fff
+_0811BC28: .4byte sub_811B7E8
+ thumb_func_end sub_811BBEC
+
+ thumb_func_start sub_811BC2C
+sub_811BC2C: @ 811BC2C
+ push {r4,lr}
+ ldr r4, _0811BC94
+ ldrh r1, [r4, 0xA]
+ ldr r0, _0811BC98
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r1, [r4, 0xA]
+ ldr r0, _0811BC9C
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xA]
+ bl sub_811D67C
+ ldr r2, _0811BCA0
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _0811BC62
+ ldr r1, _0811BCA4
+ ldr r0, _0811BCA8
+ str r0, [r1]
+ movs r3, 0xF0
+ lsls r3, 3
+ adds r0, r3
+ str r0, [r1, 0x4]
+ ldr r0, _0811BCAC
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_0811BC62:
+ ldr r1, _0811BCB0
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r2, 0x4]
+ strh r0, [r1]
+ subs r1, 0x6
+ ldrh r0, [r2, 0x8]
+ strh r0, [r1]
+ ldr r2, _0811BCB4
+ ldr r0, _0811BCA8
+ movs r1, 0xF0
+ lsls r1, 3
+ adds r0, r1
+ ldrh r1, [r0]
+ strh r1, [r2]
+ str r0, [r4]
+ str r2, [r4, 0x4]
+ ldr r0, _0811BCB8
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811BC94: .4byte 0x040000b0
+_0811BC98: .4byte 0x0000c5ff
+_0811BC9C: .4byte 0x00007fff
+_0811BCA0: .4byte 0x0200c000
+_0811BCA4: .4byte 0x040000d4
+_0811BCA8: .4byte gUnknown_03004DE0
+_0811BCAC: .4byte 0x800000a0
+_0811BCB0: .4byte REG_WININ
+_0811BCB4: .4byte REG_WIN0H
+_0811BCB8: .4byte 0xa2400001
+ thumb_func_end sub_811BC2C
+
+ thumb_func_start sub_811BCBC
+sub_811BCBC: @ 811BCBC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811BCEC
+ ldr r2, _0811BCF0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811BCCE:
+ 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 _0811BCCE
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811BCEC: .4byte gUnknown_083FD814
+_0811BCF0: .4byte gTasks
+ thumb_func_end sub_811BCBC
+
+ thumb_func_start sub_811BCF4
+sub_811BCF4: @ 811BCF4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_811D658
+ bl dp12_8087EA4
+ movs r2, 0
+ ldr r4, _0811BD48
+ ldr r3, _0811BD4C
+_0811BD06:
+ lsls r0, r2, 1
+ adds r0, r4
+ ldrh r1, [r3, 0x16]
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x9F
+ bls _0811BD06
+ ldr r0, _0811BD50
+ bl SetVBlankCallback
+ ldr r0, _0811BD54
+ bl SetHBlankCallback
+ ldr r2, _0811BD58
+ ldrh r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r2, _0811BD5C
+ ldrh r0, [r2]
+ movs r1, 0x10
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811BD48: .4byte gUnknown_03005560
+_0811BD4C: .4byte 0x0200c000
+_0811BD50: .4byte sub_811BE3C
+_0811BD54: .4byte sub_811BE74
+_0811BD58: .4byte 0x04000200
+_0811BD5C: .4byte REG_DISPSTAT
+ thumb_func_end sub_811BCF4
+
+ thumb_func_start sub_811BD60
+sub_811BD60: @ 811BD60
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r6, r0, 0
+ ldr r1, _0811BE28
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ ldrh r2, [r6, 0xC]
+ lsls r1, r2, 16
+ asrs r0, r1, 24
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldrh r4, [r6, 0xA]
+ movs r0, 0xC0
+ lsls r0, 1
+ mov r8, r0
+ movs r5, 0x80
+ lsls r5, 3
+ adds r0, r4, r5
+ strh r0, [r6, 0xA]
+ ldr r0, _0811BE2C
+ cmp r1, r0
+ bgt _0811BD9A
+ movs r1, 0xC0
+ lsls r1, 1
+ adds r0, r2, r1
+ strh r0, [r6, 0xC]
+_0811BD9A:
+ movs r5, 0
+ lsls r7, r3, 16
+_0811BD9E:
+ lsrs r0, r4, 8
+ asrs r1, r7, 16
+ bl Sin
+ ldr r1, _0811BE30
+ lsls r2, r5, 1
+ adds r2, r1
+ ldr r1, _0811BE28
+ ldrh r1, [r1, 0x16]
+ adds r0, r1
+ strh r0, [r2]
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r1, r8
+ adds r0, r4, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r5, 0x9F
+ bls _0811BD9E
+ ldrh r0, [r6, 0xE]
+ adds r0, 0x1
+ strh r0, [r6, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x51
+ bne _0811BDEC
+ ldrh r0, [r6, 0x10]
+ adds r0, 0x1
+ strh r0, [r6, 0x10]
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x2
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_0811BDEC:
+ movs r5, 0x10
+ ldrsh r0, [r6, r5]
+ cmp r0, 0
+ beq _0811BE0E
+ ldr r0, _0811BE34
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0811BE0E
+ ldr r0, _0811BE38
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_0811BE0E:
+ ldr r0, _0811BE28
+ ldrb r1, [r0]
+ adds r1, 0x1
+ ldrb r2, [r0]
+ strb r1, [r0]
+ movs r0, 0
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811BE28: .4byte 0x0200c000
+_0811BE2C: .4byte 0x1fff0000
+_0811BE30: .4byte gUnknown_03004DE0
+_0811BE34: .4byte gPaletteFade
+_0811BE38: .4byte sub_811BCBC
+ thumb_func_end sub_811BD60
+
+ thumb_func_start sub_811BE3C
+sub_811BE3C: @ 811BE3C
+ push {lr}
+ bl sub_811D67C
+ ldr r0, _0811BE64
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0811BE5E
+ ldr r1, _0811BE68
+ ldr r0, _0811BE6C
+ str r0, [r1]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r0, r2
+ str r0, [r1, 0x4]
+ ldr r0, _0811BE70
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_0811BE5E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811BE64: .4byte 0x0200c000
+_0811BE68: .4byte 0x040000d4
+_0811BE6C: .4byte gUnknown_03004DE0
+_0811BE70: .4byte 0x800000a0
+ thumb_func_end sub_811BE3C
+
+ thumb_func_start sub_811BE74
+sub_811BE74: @ 811BE74
+ ldr r1, _0811BE94
+ ldr r0, _0811BE98
+ ldrh r0, [r0]
+ lsls r0, 1
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r1, r2
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r0, _0811BE9C
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_0811BE94: .4byte gUnknown_03004DE0
+_0811BE98: .4byte REG_VCOUNT
+_0811BE9C: .4byte REG_BG1VOFS
+ thumb_func_end sub_811BE74
+
+ thumb_func_start sub_811BEA0
+sub_811BEA0: @ 811BEA0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811BED0
+ ldr r2, _0811BED4
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811BEB2:
+ 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 _0811BEB2
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811BED0: .4byte gUnknown_083FD81C
+_0811BED4: .4byte gTasks
+ thumb_func_end sub_811BEA0
+
+ thumb_func_start sub_811BED8
+sub_811BED8: @ 811BED8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_811D658
+ bl dp12_8087EA4
+ ldr r1, _0811BF20
+ movs r2, 0
+ movs r0, 0x3F
+ strh r0, [r1, 0x2]
+ strh r2, [r1, 0x4]
+ movs r0, 0xF0
+ strh r0, [r1, 0x6]
+ movs r0, 0xA0
+ strh r0, [r1, 0x8]
+ movs r1, 0
+ ldr r3, _0811BF24
+ movs r2, 0xF2
+_0811BEFC:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x9F
+ bls _0811BEFC
+ ldr r0, _0811BF28
+ bl SetVBlankCallback
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811BF20: .4byte 0x0200c000
+_0811BF24: .4byte gUnknown_03005560
+_0811BF28: .4byte sub_811C004
+ thumb_func_end sub_811BED8
+
+ thumb_func_start sub_811BF2C
+sub_811BF2C: @ 811BF2C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, 0
+ ldr r1, _0811BFBC
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ ldr r7, _0811BFC0
+ ldrh r0, [r4, 0xC]
+ ldrb r5, [r4, 0xC]
+ adds r0, 0x10
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x8
+ strh r0, [r4, 0xA]
+ movs r6, 0
+ movs r0, 0x1
+ mov r8, r0
+_0811BF52:
+ adds r0, r5, 0
+ movs r1, 0x28
+ bl Sin
+ ldrh r1, [r4, 0xA]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r0, 0
+ bge _0811BF68
+ movs r1, 0
+_0811BF68:
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xF0
+ ble _0811BF72
+ movs r1, 0xF0
+_0811BF72:
+ lsls r0, r1, 16
+ asrs r0, 16
+ lsls r1, r0, 8
+ movs r2, 0xF1
+ orrs r1, r2
+ strh r1, [r7]
+ cmp r0, 0xEF
+ bgt _0811BF86
+ movs r0, 0
+ mov r8, r0
+_0811BF86:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r5, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r7, 0x2
+ cmp r6, 0x9F
+ bls _0811BF52
+ mov r1, r8
+ cmp r1, 0
+ beq _0811BFA4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_0811BFA4:
+ ldr r0, _0811BFBC
+ ldrb r1, [r0]
+ adds r1, 0x1
+ ldrb r2, [r0]
+ strb r1, [r0]
+ movs r0, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811BFBC: .4byte 0x0200c000
+_0811BFC0: .4byte gUnknown_03004DE0
+ thumb_func_end sub_811BF2C
+
+ thumb_func_start sub_811BFC4
+sub_811BFC4: @ 811BFC4
+ push {lr}
+ ldr r1, _0811BFF4
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811BFF8
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811BFFC
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ bl sub_811D6D4
+ ldr r0, _0811C000
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811BFF4: .4byte 0x040000b0
+_0811BFF8: .4byte 0x0000c5ff
+_0811BFFC: .4byte 0x00007fff
+_0811C000: .4byte sub_811BEA0
+ thumb_func_end sub_811BFC4
+
+ thumb_func_start sub_811C004
+sub_811C004: @ 811C004
+ push {r4,lr}
+ ldr r4, _0811C060
+ ldrh r1, [r4, 0xA]
+ ldr r0, _0811C064
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r1, [r4, 0xA]
+ ldr r0, _0811C068
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xA]
+ bl sub_811D67C
+ ldr r2, _0811C06C
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _0811C03A
+ ldr r1, _0811C070
+ ldr r0, _0811C074
+ str r0, [r1]
+ movs r3, 0xF0
+ lsls r3, 3
+ adds r0, r3
+ str r0, [r1, 0x4]
+ ldr r0, _0811C078
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_0811C03A:
+ ldr r1, _0811C07C
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r2, 0x4]
+ strh r0, [r1]
+ subs r1, 0x6
+ ldrh r0, [r2, 0x8]
+ strh r0, [r1]
+ ldr r0, _0811C080
+ str r0, [r4]
+ ldr r0, _0811C084
+ str r0, [r4, 0x4]
+ ldr r0, _0811C088
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811C060: .4byte 0x040000b0
+_0811C064: .4byte 0x0000c5ff
+_0811C068: .4byte 0x00007fff
+_0811C06C: .4byte 0x0200c000
+_0811C070: .4byte 0x040000d4
+_0811C074: .4byte gUnknown_03004DE0
+_0811C078: .4byte 0x800000a0
+_0811C07C: .4byte REG_WININ
+_0811C080: .4byte gUnknown_03005560
+_0811C084: .4byte REG_WIN0H
+_0811C088: .4byte 0xa2400001
+ thumb_func_end sub_811C004
+
+ thumb_func_start sub_811C08C
+sub_811C08C: @ 811C08C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0811C0A8
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ strh r2, [r1, 0x26]
+ bl sub_811C12C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811C0A8: .4byte gTasks
+ thumb_func_end sub_811C08C
+
+ thumb_func_start sub_811C0AC
+sub_811C0AC: @ 811C0AC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0811C0C8
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x1
+ strh r2, [r1, 0x26]
+ bl sub_811C12C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811C0C8: .4byte gTasks
+ thumb_func_end sub_811C0AC
+
+ thumb_func_start sub_811C0CC
+sub_811C0CC: @ 811C0CC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0811C0E8
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x2
+ strh r2, [r1, 0x26]
+ bl sub_811C12C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811C0E8: .4byte gTasks
+ thumb_func_end sub_811C0CC
+
+ thumb_func_start sub_811C0EC
+sub_811C0EC: @ 811C0EC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0811C108
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x3
+ strh r2, [r1, 0x26]
+ bl sub_811C12C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811C108: .4byte gTasks
+ thumb_func_end sub_811C0EC
+
+ thumb_func_start sub_811C10C
+sub_811C10C: @ 811C10C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0811C128
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x4
+ strh r2, [r1, 0x26]
+ bl sub_811C12C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811C128: .4byte gTasks
+ thumb_func_end sub_811C10C
+
+ thumb_func_start sub_811C12C
+sub_811C12C: @ 811C12C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811C15C
+ ldr r2, _0811C160
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811C13E:
+ 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 _0811C13E
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811C15C: .4byte gUnknown_083FD828
+_0811C160: .4byte gTasks
+ thumb_func_end sub_811C12C
+
+ thumb_func_start sub_811C164
+sub_811C164: @ 811C164
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_811D658
+ bl dp12_8087EA4
+ adds r0, r4, 0
+ bl sub_811C7B0
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ movs r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r0, 0xEF
+ strh r0, [r4, 0xE]
+ ldr r1, _0811C1BC
+ movs r0, 0x3F
+ strh r0, [r1, 0x2]
+ movs r0, 0x3E
+ strh r0, [r1, 0x4]
+ movs r0, 0xA0
+ strh r0, [r1, 0x8]
+ movs r1, 0
+ ldr r3, _0811C1C0
+ ldr r2, _0811C1C4
+_0811C196:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x9F
+ bls _0811C196
+ ldr r0, _0811C1C8
+ bl SetVBlankCallback
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811C1BC: .4byte 0x0200c000
+_0811C1C0: .4byte gUnknown_03005560
+_0811C1C4: .4byte 0x0000f0f1
+_0811C1C8: .4byte sub_811C670
+ thumb_func_end sub_811C164
+
+ thumb_func_start sub_811C1CC
+sub_811C1CC: @ 811C1CC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ mov r8, r0
+ ldr r6, _0811C284
+ add r1, sp, 0x4
+ mov r0, sp
+ bl sub_811D6A8
+ ldr r0, _0811C288
+ ldr r1, [sp, 0x4]
+ movs r2, 0xF0
+ bl CpuSet
+ ldr r1, _0811C28C
+ mov r2, r8
+ movs r3, 0x26
+ ldrsh r0, [r2, r3]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r1, _0811C290
+ ldr r0, _0811C294
+ ldrb r0, [r0, 0x8]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0xFA
+ movs r2, 0xC
+ bl LoadPalette
+ movs r1, 0
+ ldr r5, [sp]
+ ldr r0, _0811C298
+ mov r12, r0
+ movs r2, 0xF0
+ lsls r2, 8
+ adds r7, r2, 0
+_0811C222:
+ movs r0, 0
+ lsls r3, r1, 16
+ asrs r4, r3, 11
+_0811C228:
+ lsls r2, r0, 16
+ asrs r2, 16
+ adds r1, r4, r2
+ lsls r1, 1
+ adds r1, r5
+ ldrh r0, [r6]
+ orrs r0, r7
+ strh r0, [r1]
+ adds r2, 0x1
+ lsls r2, 16
+ adds r6, 0x2
+ lsrs r0, r2, 16
+ asrs r2, 16
+ cmp r2, 0x1F
+ ble _0811C228
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r3, r1
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0x13
+ ble _0811C222
+ ldr r2, _0811C29C
+ ldrh r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r2, _0811C2A0
+ ldrh r0, [r2]
+ movs r1, 0x10
+ orrs r0, r1
+ strh r0, [r2]
+ mov r0, r12
+ bl SetHBlankCallback
+ mov r2, r8
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ movs r0, 0
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811C284: .4byte gUnknown_083FDFF4
+_0811C288: .4byte gUnknown_083FC348
+_0811C28C: .4byte gUnknown_083FDB00
+_0811C290: .4byte gUnknown_083FDB14
+_0811C294: .4byte gSaveBlock2
+_0811C298: .4byte sub_811C77C
+_0811C29C: .4byte 0x04000200
+_0811C2A0: .4byte REG_DISPSTAT
+ thumb_func_end sub_811C1CC
+
+ thumb_func_start sub_811C2A4
+sub_811C2A4: @ 811C2A4
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r1, _0811C384
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ ldr r7, _0811C388
+ ldrh r0, [r4, 0xA]
+ ldrb r5, [r4, 0xA]
+ adds r0, 0x10
+ strh r0, [r4, 0xA]
+ movs r6, 0
+_0811C2BC:
+ adds r0, r5, 0
+ movs r1, 0x10
+ bl Sin
+ ldrh r1, [r4, 0xC]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r0, 0
+ bge _0811C2D2
+ movs r2, 0x1
+_0811C2D2:
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0xF0
+ ble _0811C2DC
+ movs r2, 0xF0
+_0811C2DC:
+ strh r2, [r7]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r7, 0x2
+ adds r0, r5, 0
+ adds r0, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r6, 0x4F
+ bls _0811C2BC
+ cmp r6, 0x9F
+ bhi _0811C334
+_0811C2F6:
+ adds r0, r5, 0
+ movs r1, 0x10
+ bl Sin
+ ldrh r1, [r4, 0xE]
+ subs r1, r0
+ lsls r1, 16
+ lsrs r2, r1, 16
+ cmp r1, 0
+ bge _0811C30C
+ movs r2, 0
+_0811C30C:
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0xEF
+ ble _0811C316
+ movs r2, 0xEF
+_0811C316:
+ lsls r0, r2, 16
+ asrs r0, 8
+ movs r1, 0xF0
+ orrs r0, r1
+ strh r0, [r7]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r7, 0x2
+ adds r0, r5, 0
+ adds r0, 0x10
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r6, 0x9F
+ bls _0811C2F6
+_0811C334:
+ ldrh r1, [r4, 0xC]
+ adds r1, 0x8
+ strh r1, [r4, 0xC]
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x8
+ strh r0, [r4, 0xE]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0xF0
+ ble _0811C34C
+ movs r0, 0xF0
+ strh r0, [r4, 0xC]
+_0811C34C:
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _0811C358
+ movs r0, 0
+ strh r0, [r4, 0xE]
+_0811C358:
+ ldr r0, [r4, 0xC]
+ cmp r0, 0xF0
+ bne _0811C364
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_0811C364:
+ ldr r1, _0811C384
+ ldrh r0, [r1, 0x18]
+ subs r0, 0x8
+ strh r0, [r1, 0x18]
+ ldrh r0, [r1, 0x1A]
+ adds r0, 0x8
+ strh r0, [r1, 0x1A]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ ldrb r2, [r1]
+ strb r0, [r1]
+ movs r0, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811C384: .4byte 0x0200c000
+_0811C388: .4byte gUnknown_03004DE0
+ thumb_func_end sub_811C2A4
+
+ thumb_func_start sub_811C38C
+sub_811C38C: @ 811C38C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r0, _0811C3F8
+ ldrb r1, [r0]
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, _0811C3FC
+ adds r5, r0, 0
+ movs r3, 0xF0
+_0811C39E:
+ strh r3, [r2]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r2, 0x2
+ cmp r1, 0x9F
+ bls _0811C39E
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x8]
+ strh r1, [r4, 0xA]
+ strh r1, [r4, 0xC]
+ strh r1, [r4, 0xE]
+ ldrh r0, [r5, 0x18]
+ subs r0, 0x8
+ strh r0, [r5, 0x18]
+ ldrh r0, [r5, 0x1A]
+ adds r0, 0x8
+ strh r0, [r5, 0x1A]
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ movs r1, 0
+ bl sub_811CA10
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ movs r1, 0x1
+ bl sub_811CA10
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ bl sub_811CA28
+ movs r0, 0x68
+ bl PlaySE
+ ldrb r0, [r5]
+ adds r0, 0x1
+ ldrb r1, [r5]
+ strb r0, [r5]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811C3F8: .4byte 0x0200c000
+_0811C3FC: .4byte gUnknown_03004DE0
+ thumb_func_end sub_811C38C
+
+ thumb_func_start sub_811C400
+sub_811C400: @ 811C400
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _0811C438
+ ldrh r0, [r1, 0x18]
+ subs r0, 0x8
+ strh r0, [r1, 0x18]
+ ldrh r0, [r1, 0x1A]
+ adds r0, 0x8
+ strh r0, [r1, 0x1A]
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ bl sub_811CA44
+ lsls r0, 16
+ cmp r0, 0
+ beq _0811C42E
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ bl sub_811CA28
+_0811C42E:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811C438: .4byte 0x0200c000
+ thumb_func_end sub_811C400
+
+ thumb_func_start sub_811C43C
+sub_811C43C: @ 811C43C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ ldr r7, _0811C4D0
+ ldrh r0, [r7, 0x18]
+ subs r0, 0x8
+ movs r1, 0
+ mov r8, r1
+ strh r0, [r7, 0x18]
+ ldrh r0, [r7, 0x1A]
+ adds r0, 0x8
+ strh r0, [r7, 0x1A]
+ movs r1, 0x24
+ ldrsh r0, [r6, r1]
+ bl sub_811CA44
+ lsls r0, 16
+ cmp r0, 0
+ beq _0811C4C4
+ ldrb r0, [r7]
+ movs r0, 0
+ strb r0, [r7]
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r1, _0811C4D4
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811C4D8
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811C4DC
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ ldr r4, _0811C4E0
+ movs r5, 0xA0
+ lsls r5, 1
+ adds r0, r4, 0
+ movs r1, 0
+ adds r2, r5, 0
+ bl memset
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0
+ adds r2, r5, 0
+ bl memset
+ ldr r1, _0811C4E4
+ movs r0, 0xF0
+ strh r0, [r1]
+ ldr r0, _0811C4E8
+ mov r1, r8
+ strh r1, [r0]
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ strh r1, [r6, 0xE]
+ strh r1, [r6, 0x10]
+ movs r0, 0xBF
+ strh r0, [r7, 0xE]
+ ldr r0, _0811C4EC
+ bl SetVBlankCallback
+_0811C4C4:
+ movs r0, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811C4D0: .4byte 0x0200c000
+_0811C4D4: .4byte 0x040000b0
+_0811C4D8: .4byte 0x0000c5ff
+_0811C4DC: .4byte 0x00007fff
+_0811C4E0: .4byte gUnknown_03004DE0
+_0811C4E4: .4byte REG_WIN0H
+_0811C4E8: .4byte REG_BLDY
+_0811C4EC: .4byte sub_811C700
+ thumb_func_end sub_811C43C
+
+ thumb_func_start sub_811C4F0
+sub_811C4F0: @ 811C4F0
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r1, _0811C5AC
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ movs r6, 0x1
+ ldrh r0, [r1, 0x18]
+ subs r0, 0x8
+ strh r0, [r1, 0x18]
+ ldrh r0, [r1, 0x1A]
+ adds r0, 0x8
+ strh r0, [r1, 0x1A]
+ ldrh r2, [r4, 0x10]
+ movs r3, 0x10
+ ldrsh r0, [r4, r3]
+ adds r7, r1, 0
+ cmp r0, 0x4F
+ bgt _0811C51A
+ adds r0, r2, 0x2
+ strh r0, [r4, 0x10]
+_0811C51A:
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x50
+ ble _0811C526
+ movs r0, 0x50
+ strh r0, [r4, 0x10]
+_0811C526:
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ movs r1, 0x1
+ ands r0, r1
+ ldrh r2, [r4, 0x10]
+ cmp r0, 0
+ beq _0811C58C
+ movs r3, 0
+ lsls r0, r2, 16
+ movs r6, 0
+ cmp r0, 0
+ blt _0811C58C
+ movs r2, 0x50
+ mov r12, r2
+ ldr r5, _0811C5B0
+_0811C546:
+ lsls r0, r3, 16
+ asrs r2, r0, 16
+ mov r3, r12
+ subs r1, r3, r2
+ adds r0, r2, 0
+ adds r0, 0x50
+ lsls r0, 16
+ lsrs r3, r0, 16
+ lsls r1, 16
+ asrs r1, 15
+ adds r1, r5
+ ldrh r0, [r1]
+ cmp r0, 0xF
+ bhi _0811C568
+ movs r6, 0x1
+ adds r0, 0x1
+ strh r0, [r1]
+_0811C568:
+ lsls r0, r3, 16
+ asrs r0, 15
+ adds r1, r0, r5
+ ldrh r0, [r1]
+ cmp r0, 0xF
+ bhi _0811C57A
+ movs r6, 0x1
+ adds r0, 0x1
+ strh r0, [r1]
+_0811C57A:
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ asrs r0, 16
+ movs r2, 0x10
+ ldrsh r1, [r4, r2]
+ ldrh r2, [r4, 0x10]
+ cmp r0, r1
+ ble _0811C546
+_0811C58C:
+ cmp r2, 0x50
+ bne _0811C59A
+ cmp r6, 0
+ bne _0811C59A
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_0811C59A:
+ ldrb r0, [r7]
+ adds r0, 0x1
+ ldrb r1, [r7]
+ strb r0, [r7]
+ movs r0, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811C5AC: .4byte 0x0200c000
+_0811C5B0: .4byte gUnknown_03004DE0
+ thumb_func_end sub_811C4F0
+
+ thumb_func_start sub_811C5B4
+sub_811C5B4: @ 811C5B4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r4, _0811C5E0
+ ldrb r0, [r4]
+ movs r6, 0
+ strb r6, [r4]
+ movs r0, 0x1
+ negs r0, r0
+ ldr r2, _0811C5E4
+ movs r1, 0x10
+ bl BlendPalettes
+ movs r0, 0xFF
+ strh r0, [r4, 0xE]
+ strh r6, [r5, 0xE]
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0x1
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811C5E0: .4byte 0x0200c000
+_0811C5E4: .4byte 0x00007fff
+ thumb_func_end sub_811C5B4
+
+ thumb_func_start sub_811C5E8
+sub_811C5E8: @ 811C5E8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _0811C628
+ ldrb r0, [r5]
+ movs r0, 0
+ strb r0, [r5]
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ ldr r0, _0811C62C
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ movs r2, 0xA0
+ lsls r2, 1
+ bl memset
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xF
+ ble _0811C616
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_0811C616:
+ ldrb r0, [r5]
+ adds r0, 0x1
+ ldrb r1, [r5]
+ strb r0, [r5]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811C628: .4byte 0x0200c000
+_0811C62C: .4byte gUnknown_03004DE0
+ thumb_func_end sub_811C5E8
+
+ thumb_func_start sub_811C630
+sub_811C630: @ 811C630
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _0811C664
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811C668
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811C66C
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ bl sub_811D6D4
+ ldr r0, [r4]
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811C664: .4byte 0x040000b0
+_0811C668: .4byte 0x0000c5ff
+_0811C66C: .4byte 0x00007fff
+ thumb_func_end sub_811C630
+
+ thumb_func_start sub_811C670
+sub_811C670: @ 811C670
+ push {r4,lr}
+ ldr r4, _0811C6D4
+ ldrh r1, [r4, 0xA]
+ ldr r0, _0811C6D8
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r1, [r4, 0xA]
+ ldr r0, _0811C6DC
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xA]
+ bl sub_811D67C
+ ldr r2, _0811C6E0
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _0811C6A6
+ ldr r1, _0811C6E4
+ ldr r0, _0811C6E8
+ str r0, [r1]
+ movs r3, 0xF0
+ lsls r3, 3
+ adds r0, r3
+ str r0, [r1, 0x4]
+ ldr r0, _0811C6EC
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_0811C6A6:
+ ldr r1, _0811C6F0
+ ldrh r0, [r2, 0x1C]
+ strh r0, [r1]
+ adds r1, 0x36
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r2, 0x4]
+ strh r0, [r1]
+ subs r1, 0x6
+ ldrh r0, [r2, 0x8]
+ strh r0, [r1]
+ ldr r0, _0811C6F4
+ str r0, [r4]
+ ldr r0, _0811C6F8
+ str r0, [r4, 0x4]
+ ldr r0, _0811C6FC
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811C6D4: .4byte 0x040000b0
+_0811C6D8: .4byte 0x0000c5ff
+_0811C6DC: .4byte 0x00007fff
+_0811C6E0: .4byte 0x0200c000
+_0811C6E4: .4byte 0x040000d4
+_0811C6E8: .4byte gUnknown_03004DE0
+_0811C6EC: .4byte 0x800000a0
+_0811C6F0: .4byte REG_BG0VOFS
+_0811C6F4: .4byte gUnknown_03005560
+_0811C6F8: .4byte REG_WIN0H
+_0811C6FC: .4byte 0xa2400001
+ thumb_func_end sub_811C670
+
+ thumb_func_start sub_811C700
+sub_811C700: @ 811C700
+ push {r4,lr}
+ ldr r4, _0811C750
+ ldrh r1, [r4, 0xA]
+ ldr r0, _0811C754
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r1, [r4, 0xA]
+ ldr r0, _0811C758
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xA]
+ bl sub_811D67C
+ ldr r2, _0811C75C
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _0811C736
+ ldr r1, _0811C760
+ ldr r0, _0811C764
+ str r0, [r1]
+ movs r3, 0xF0
+ lsls r3, 3
+ adds r0, r3
+ str r0, [r1, 0x4]
+ ldr r0, _0811C768
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_0811C736:
+ ldr r1, _0811C76C
+ ldrh r0, [r2, 0xE]
+ strh r0, [r1]
+ ldr r0, _0811C770
+ str r0, [r4]
+ ldr r0, _0811C774
+ str r0, [r4, 0x4]
+ ldr r0, _0811C778
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811C750: .4byte 0x040000b0
+_0811C754: .4byte 0x0000c5ff
+_0811C758: .4byte 0x00007fff
+_0811C75C: .4byte 0x0200c000
+_0811C760: .4byte 0x040000d4
+_0811C764: .4byte gUnknown_03004DE0
+_0811C768: .4byte 0x800000a0
+_0811C76C: .4byte REG_BLDCNT
+_0811C770: .4byte gUnknown_03005560
+_0811C774: .4byte REG_BLDY
+_0811C778: .4byte 0xa2400001
+ thumb_func_end sub_811C700
+
+ thumb_func_start sub_811C77C
+sub_811C77C: @ 811C77C
+ push {lr}
+ ldr r0, _0811C790
+ ldrh r0, [r0]
+ cmp r0, 0x4F
+ bhi _0811C79C
+ ldr r0, _0811C794
+ ldr r1, _0811C798
+ ldrh r1, [r1, 0x18]
+ b _0811C7A2
+ .align 2, 0
+_0811C790: .4byte REG_VCOUNT
+_0811C794: .4byte REG_BG0HOFS
+_0811C798: .4byte 0x0200c000
+_0811C79C:
+ ldr r0, _0811C7A8
+ ldr r1, _0811C7AC
+ ldrh r1, [r1, 0x1A]
+_0811C7A2:
+ strh r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811C7A8: .4byte REG_BG0HOFS
+_0811C7AC: .4byte 0x0200c000
+ thumb_func_end sub_811C77C
+
+ thumb_func_start sub_811C7B0
+sub_811C7B0: @ 811C7B0
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldr r0, _0811C8EC
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ mov r8, r1
+ add r0, r8
+ ldrb r0, [r0]
+ ldr r2, _0811C8F0
+ lsls r1, 2
+ mov r8, r1
+ adds r1, r2
+ ldrh r1, [r1]
+ subs r1, 0x20
+ lsls r1, 16
+ asrs r1, 16
+ adds r2, 0x2
+ add r2, r8
+ ldrh r2, [r2]
+ adds r2, 0x2A
+ lsls r2, 16
+ asrs r2, 16
+ ldr r5, _0811C8F4
+ str r5, [sp]
+ movs r3, 0
+ bl sub_80859BC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ ldr r0, _0811C8F8
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x88
+ lsls r1, 1
+ str r5, [sp]
+ movs r2, 0x6A
+ movs r3, 0
+ bl sub_80859BC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x24]
+ movs r3, 0x22
+ ldrsh r0, [r4, r3]
+ lsls r5, r0, 4
+ adds r5, r0
+ lsls r5, 2
+ ldr r1, _0811C8FC
+ adds r5, r1
+ movs r2, 0x24
+ ldrsh r0, [r4, r2]
+ lsls r6, r0, 4
+ adds r6, r0
+ lsls r6, 2
+ adds r6, r1
+ ldr r0, _0811C900
+ str r0, [r5, 0x1C]
+ str r0, [r6, 0x1C]
+ ldrb r0, [r5, 0x1]
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r5, 0x1]
+ ldrb r0, [r6, 0x1]
+ orrs r0, r1
+ strb r0, [r6, 0x1]
+ bl AllocOamMatrix
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0x1F
+ mov r9, r3
+ mov r4, r9
+ ands r0, r4
+ lsls r0, 1
+ ldrb r2, [r5, 0x3]
+ movs r4, 0x3F
+ negs r4, r4
+ adds r1, r4, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5, 0x3]
+ bl AllocOamMatrix
+ lsls r0, 24
+ lsrs r0, 24
+ mov r1, r9
+ ands r0, r1
+ lsls r0, 1
+ ldrb r1, [r6, 0x3]
+ ands r4, r1
+ orrs r4, r0
+ strb r4, [r6, 0x3]
+ ldrb r2, [r5, 0x1]
+ movs r1, 0x3F
+ adds r0, r1, 0
+ ands r0, r2
+ movs r2, 0x40
+ orrs r0, r2
+ strb r0, [r5, 0x1]
+ ldrb r0, [r6, 0x1]
+ ands r1, r0
+ orrs r1, r2
+ strb r1, [r6, 0x1]
+ ldrb r0, [r5, 0x3]
+ movs r1, 0xC0
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+ ldrb r0, [r6, 0x3]
+ orrs r0, r1
+ strb r0, [r6, 0x3]
+ adds r0, r5, 0
+ movs r1, 0x1
+ movs r2, 0x3
+ movs r3, 0x3
+ bl CalcCenterToCornerVec
+ adds r0, r6, 0
+ movs r1, 0x1
+ movs r2, 0x3
+ movs r3, 0x3
+ bl CalcCenterToCornerVec
+ ldrb r0, [r5, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ ldr r2, _0811C904
+ mov r3, r8
+ adds r1, r3, r2
+ movs r4, 0
+ ldrsh r1, [r1, r4]
+ adds r2, 0x2
+ add r8, r2
+ mov r3, r8
+ movs r4, 0
+ ldrsh r2, [r3, r4]
+ movs r3, 0
+ bl SetOamMatrixRotationScaling
+ ldrb r0, [r6, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ ldr r1, _0811C908
+ movs r2, 0x80
+ lsls r2, 2
+ movs r3, 0
+ bl SetOamMatrixRotationScaling
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811C8EC: .4byte gUnknown_083FD850
+_0811C8F0: .4byte gUnknown_083FD86A
+_0811C8F4: .4byte 0x0200c03c
+_0811C8F8: .4byte gSaveBlock2
+_0811C8FC: .4byte gSprites
+_0811C900: .4byte sub_811C90C
+_0811C904: .4byte gUnknown_083FD856
+_0811C908: .4byte 0xfffffe00
+ thumb_func_end sub_811C7B0
+
+ thumb_func_start sub_811C90C
+sub_811C90C: @ 811C90C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _0811C930
+_0811C912:
+ 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 _0811C912
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811C930: .4byte gUnknown_083FD880
+ thumb_func_end sub_811C90C
+
+ thumb_func_start sub_811C934
+sub_811C934: @ 811C934
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_811C934
+
+ thumb_func_start sub_811C938
+sub_811C938: @ 811C938
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ ldr r1, _0811C97C
+ mov r0, sp
+ movs r2, 0x4
+ bl memcpy
+ add r4, sp, 0x4
+ ldr r1, _0811C980
+ adds r0, r4, 0
+ movs r2, 0x4
+ bl memcpy
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ strh r0, [r5, 0x30]
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ lsls r0, 1
+ adds r4, r0
+ ldrh r0, [r4]
+ strh r0, [r5, 0x32]
+ movs r0, 0x1
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811C97C: .4byte gUnknown_083FD89C
+_0811C980: .4byte gUnknown_083FD8A0
+ thumb_func_end sub_811C938
+
+ thumb_func_start sub_811C984
+sub_811C984: @ 811C984
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x30]
+ ldrh r3, [r1, 0x20]
+ adds r2, r0, r3
+ strh r2, [r1, 0x20]
+ movs r3, 0x3C
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _0811C9A2
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0x84
+ bgt _0811C9B0
+ b _0811C9AA
+_0811C9A2:
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0x67
+ ble _0811C9B0
+_0811C9AA:
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+_0811C9B0:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811C984
+
+ thumb_func_start sub_811C9B8
+sub_811C9B8: @ 811C9B8
+ push {lr}
+ adds r2, r0, 0
+ ldrh r3, [r2, 0x32]
+ ldrh r0, [r2, 0x30]
+ adds r1, r3, r0
+ strh r1, [r2, 0x30]
+ ldrh r0, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ cmp r1, 0
+ bne _0811C9DE
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ negs r0, r3
+ strh r0, [r2, 0x32]
+ movs r0, 0x1
+ strh r0, [r2, 0x3A]
+_0811C9DE:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811C9B8
+
+ thumb_func_start sub_811C9E4
+sub_811C9E4: @ 811C9E4
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x30]
+ adds r0, r1
+ strh r0, [r2, 0x30]
+ ldrh r1, [r2, 0x20]
+ adds r1, r0
+ strh r1, [r2, 0x20]
+ adds r1, 0x1F
+ lsls r1, 16
+ movs r0, 0x97
+ lsls r0, 17
+ cmp r1, r0
+ bls _0811CA08
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+_0811CA08:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811C9E4
+
+ thumb_func_start sub_811CA10
+sub_811CA10: @ 811CA10
+ ldr r3, _0811CA24
+ lsls r0, 16
+ asrs r0, 16
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ strh r1, [r2, 0x3C]
+ bx lr
+ .align 2, 0
+_0811CA24: .4byte gSprites
+ thumb_func_end sub_811CA10
+
+ thumb_func_start sub_811CA28
+sub_811CA28: @ 811CA28
+ ldr r2, _0811CA40
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ bx lr
+ .align 2, 0
+_0811CA40: .4byte gSprites
+ thumb_func_end sub_811CA28
+
+ thumb_func_start sub_811CA44
+sub_811CA44: @ 811CA44
+ ldr r2, _0811CA58
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r2, 0x3A
+ ldrsh r0, [r1, r2]
+ bx lr
+ .align 2, 0
+_0811CA58: .4byte gSprites
+ thumb_func_end sub_811CA44
+
+ thumb_func_start sub_811CA5C
+sub_811CA5C: @ 811CA5C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811CA8C
+ ldr r2, _0811CA90
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811CA6E:
+ 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 _0811CA6E
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811CA8C: .4byte gUnknown_083FD8A4
+_0811CA90: .4byte gTasks
+ thumb_func_end sub_811CA5C
+
+ thumb_func_start sub_811CA94
+sub_811CA94: @ 811CA94
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ bl sub_811D658
+ bl dp12_8087EA4
+ movs r2, 0
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r4, 0xC]
+ movs r0, 0x1
+ strh r0, [r4, 0xE]
+ ldr r1, _0811CB08
+ movs r0, 0x3F
+ strh r0, [r1, 0x2]
+ strh r2, [r1, 0x4]
+ movs r0, 0xA0
+ strh r0, [r1, 0x8]
+ ldr r3, _0811CB0C
+ adds r6, r1, 0
+ movs r5, 0xF0
+_0811CABE:
+ lsls r0, r2, 1
+ adds r0, r3
+ ldrh r1, [r6, 0x14]
+ strh r1, [r0]
+ adds r0, r2, 0
+ adds r0, 0xA0
+ lsls r0, 1
+ adds r0, r3
+ strh r5, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x9F
+ bls _0811CABE
+ ldr r2, _0811CB10
+ ldrh r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r2, _0811CB14
+ ldrh r0, [r2]
+ movs r1, 0x10
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _0811CB18
+ bl SetVBlankCallback
+ ldr r0, _0811CB1C
+ bl SetHBlankCallback
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x1
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811CB08: .4byte 0x0200c000
+_0811CB0C: .4byte gUnknown_03005560
+_0811CB10: .4byte 0x04000200
+_0811CB14: .4byte REG_DISPSTAT
+_0811CB18: .4byte sub_811CC28
+_0811CB1C: .4byte sub_811CCB0
+ thumb_func_end sub_811CA94
+
+ thumb_func_start sub_811CB20
+sub_811CB20: @ 811CB20
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r2, r0, 0
+ ldr r1, _0811CB98
+ ldrb r0, [r1]
+ movs r0, 0
+ strb r0, [r1]
+ ldrh r0, [r2, 0xC]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r3, [r2, 0xA]
+ adds r0, r3
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ mov r12, r1
+ cmp r0, 0xF0
+ ble _0811CB4A
+ movs r0, 0xF0
+ strh r0, [r2, 0xA]
+_0811CB4A:
+ ldrh r4, [r2, 0xC]
+ movs r0, 0xC
+ ldrsh r1, [r2, r0]
+ ldr r0, _0811CB9C
+ ldrh r3, [r2, 0xE]
+ cmp r1, r0
+ bgt _0811CB5C
+ adds r0, r4, r3
+ strh r0, [r2, 0xC]
+_0811CB5C:
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r0, 0x7F
+ bgt _0811CB68
+ lsls r0, r3, 1
+ strh r0, [r2, 0xE]
+_0811CB68:
+ movs r5, 0
+ ldr r7, _0811CBA0
+ movs r1, 0xA0
+ lsls r1, 1
+ adds r1, r7
+ mov r8, r1
+ mov r6, r12
+_0811CB76:
+ lsls r0, r5, 1
+ adds r3, r0, r7
+ mov r1, r8
+ adds r4, r0, r1
+ movs r0, 0x1
+ ands r0, r5
+ cmp r0, 0
+ beq _0811CBA4
+ ldrh r0, [r2, 0xA]
+ ldrh r1, [r6, 0x14]
+ adds r0, r1
+ strh r0, [r3]
+ ldrh r1, [r2, 0xA]
+ movs r0, 0xF0
+ subs r0, r1
+ b _0811CBB4
+ .align 2, 0
+_0811CB98: .4byte 0x0200c000
+_0811CB9C: .4byte 0x00000fff
+_0811CBA0: .4byte gUnknown_03004DE0
+_0811CBA4:
+ ldrh r0, [r6, 0x14]
+ ldrh r1, [r2, 0xA]
+ subs r0, r1
+ strh r0, [r3]
+ ldrh r0, [r2, 0xA]
+ lsls r0, 8
+ movs r1, 0xF1
+ orrs r0, r1
+_0811CBB4:
+ strh r0, [r4]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x9F
+ bls _0811CB76
+ movs r3, 0xA
+ ldrsh r0, [r2, r3]
+ cmp r0, 0xEF
+ ble _0811CBCE
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+_0811CBCE:
+ mov r1, r12
+ ldrb r0, [r1]
+ adds r0, 0x1
+ ldrb r1, [r1]
+ mov r2, r12
+ strb r0, [r2]
+ movs r0, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811CB20
+
+ thumb_func_start sub_811CBE8
+sub_811CBE8: @ 811CBE8
+ push {lr}
+ ldr r1, _0811CC18
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811CC1C
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811CC20
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ bl sub_811D6D4
+ ldr r0, _0811CC24
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811CC18: .4byte 0x040000b0
+_0811CC1C: .4byte 0x0000c5ff
+_0811CC20: .4byte 0x00007fff
+_0811CC24: .4byte sub_811CA5C
+ thumb_func_end sub_811CBE8
+
+ thumb_func_start sub_811CC28
+sub_811CC28: @ 811CC28
+ push {r4,lr}
+ ldr r4, _0811CC84
+ ldrh r1, [r4, 0xA]
+ ldr r0, _0811CC88
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r1, [r4, 0xA]
+ ldr r0, _0811CC8C
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xA]
+ bl sub_811D67C
+ ldr r2, _0811CC90
+ ldr r1, _0811CC94
+ ldrh r0, [r1, 0x2]
+ strh r0, [r2]
+ adds r2, 0x2
+ ldrh r0, [r1, 0x4]
+ strh r0, [r2]
+ subs r2, 0x6
+ ldrh r0, [r1, 0x8]
+ strh r0, [r2]
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0811CC70
+ ldr r1, _0811CC98
+ ldr r0, _0811CC9C
+ str r0, [r1]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r0, r2
+ str r0, [r1, 0x4]
+ ldr r0, _0811CCA0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_0811CC70:
+ ldr r0, _0811CCA4
+ str r0, [r4]
+ ldr r0, _0811CCA8
+ str r0, [r4, 0x4]
+ ldr r0, _0811CCAC
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811CC84: .4byte 0x040000b0
+_0811CC88: .4byte 0x0000c5ff
+_0811CC8C: .4byte 0x00007fff
+_0811CC90: .4byte REG_WININ
+_0811CC94: .4byte 0x0200c000
+_0811CC98: .4byte 0x040000d4
+_0811CC9C: .4byte gUnknown_03004DE0
+_0811CCA0: .4byte 0x80000140
+_0811CCA4: .4byte gUnknown_030056A0
+_0811CCA8: .4byte REG_WIN0H
+_0811CCAC: .4byte 0xa2400001
+ thumb_func_end sub_811CC28
+
+ thumb_func_start sub_811CCB0
+sub_811CCB0: @ 811CCB0
+ ldr r1, _0811CCD0
+ ldr r0, _0811CCD4
+ ldrh r0, [r0]
+ lsls r0, 1
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r1, r2
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r0, _0811CCD8
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+_0811CCD0: .4byte gUnknown_03004DE0
+_0811CCD4: .4byte REG_VCOUNT
+_0811CCD8: .4byte REG_BG1HOFS
+ thumb_func_end sub_811CCB0
+
+ thumb_func_start sub_811CCDC
+sub_811CCDC: @ 811CCDC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811CD0C
+ ldr r2, _0811CD10
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811CCEE:
+ 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 _0811CCEE
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811CD0C: .4byte gUnknown_083FD8B0
+_0811CD10: .4byte gTasks
+ thumb_func_end sub_811CCDC
+
+ thumb_func_start sub_811CD14
+sub_811CD14: @ 811CD14
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_811D658
+ bl dp12_8087EA4
+ ldr r1, _0811CD88
+ movs r2, 0
+ movs r0, 0xBF
+ strh r0, [r1, 0xE]
+ strh r2, [r1, 0x12]
+ movs r0, 0x1E
+ strh r0, [r1, 0x2]
+ movs r0, 0x3F
+ strh r0, [r1, 0x4]
+ movs r0, 0xA0
+ strh r0, [r1, 0x8]
+ movs r1, 0
+ ldr r2, _0811CD8C
+ movs r4, 0
+ movs r3, 0xF0
+_0811CD3E:
+ lsls r0, r1, 1
+ adds r0, r2
+ strh r4, [r0]
+ adds r0, r1, 0
+ adds r0, 0xA0
+ lsls r0, 1
+ adds r0, r2
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x9F
+ bls _0811CD3E
+ ldr r2, _0811CD90
+ ldrh r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r2, _0811CD94
+ ldrh r0, [r2]
+ movs r1, 0x10
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _0811CD98
+ bl SetHBlankCallback
+ ldr r0, _0811CD9C
+ bl SetVBlankCallback
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811CD88: .4byte 0x0200c000
+_0811CD8C: .4byte gUnknown_03005560
+_0811CD90: .4byte 0x04000200
+_0811CD94: .4byte REG_DISPSTAT
+_0811CD98: .4byte sub_811CFAC
+_0811CD9C: .4byte sub_811CEE4
+ thumb_func_end sub_811CD14
+
+ thumb_func_start sub_811CDA0
+sub_811CDA0: @ 811CDA0
+ push {r4-r6,lr}
+ sub sp, 0x10
+ adds r6, r0, 0
+ ldr r1, _0811CE08
+ mov r0, sp
+ movs r2, 0x10
+ bl memcpy
+ movs r5, 0
+ movs r4, 0
+_0811CDB4:
+ ldr r0, _0811CE0C
+ bl CreateInvisibleSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0811CE10
+ adds r2, r1, r0
+ movs r0, 0xF0
+ strh r0, [r2, 0x20]
+ strh r4, [r2, 0x22]
+ lsls r1, r5, 16
+ asrs r1, 16
+ lsls r0, r1, 1
+ add r0, sp
+ ldrh r0, [r0]
+ strh r0, [r2, 0x38]
+ adds r1, 0x1
+ lsls r1, 16
+ lsls r0, r4, 16
+ movs r3, 0xA0
+ lsls r3, 13
+ adds r0, r3
+ lsrs r4, r0, 16
+ lsrs r5, r1, 16
+ asrs r1, 16
+ cmp r1, 0x7
+ ble _0811CDB4
+ ldrh r0, [r2, 0x3A]
+ adds r0, 0x1
+ strh r0, [r2, 0x3A]
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ movs r0, 0
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811CE08: .4byte gUnknown_083FD8C4
+_0811CE0C: .4byte sub_811CFD0
+_0811CE10: .4byte gSprites
+ thumb_func_end sub_811CDA0
+
+ thumb_func_start sub_811CE14
+sub_811CE14: @ 811CE14
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _0811CE44
+ ldrb r1, [r0]
+ movs r1, 0
+ strb r1, [r0]
+ movs r1, 0x20
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x7
+ ble _0811CE3A
+ movs r0, 0x1
+ negs r0, r0
+ ldr r2, _0811CE48
+ movs r1, 0x10
+ bl BlendPalettes
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+_0811CE3A:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811CE44: .4byte 0x0200c000
+_0811CE48: .4byte 0x00007fff
+ thumb_func_end sub_811CE14
+
+ thumb_func_start sub_811CE4C
+sub_811CE4C: @ 811CE4C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ ldr r4, _0811CE9C
+ ldrb r0, [r4]
+ movs r5, 0
+ strb r5, [r4]
+ ldr r1, _0811CEA0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811CEA4
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811CEA8
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r0, 0xF0
+ strh r0, [r4, 0x6]
+ strh r5, [r4, 0x12]
+ movs r0, 0xFF
+ strh r0, [r4, 0xE]
+ movs r0, 0x3F
+ strh r0, [r4, 0x2]
+ ldr r0, _0811CEAC
+ bl SetVBlankCallback
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ movs r0, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811CE9C: .4byte 0x0200c000
+_0811CEA0: .4byte 0x040000b0
+_0811CEA4: .4byte 0x0000c5ff
+_0811CEA8: .4byte 0x00007fff
+_0811CEAC: .4byte sub_811CF74
+ thumb_func_end sub_811CE4C
+
+ thumb_func_start sub_811CEB0
+sub_811CEB0: @ 811CEB0
+ push {lr}
+ ldr r1, _0811CEDC
+ ldrh r0, [r1, 0x12]
+ adds r0, 0x1
+ strh r0, [r1, 0x12]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x10
+ bls _0811CED4
+ bl sub_811D6D4
+ ldr r0, _0811CEE0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_0811CED4:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811CEDC: .4byte 0x0200c000
+_0811CEE0: .4byte sub_811CCDC
+ thumb_func_end sub_811CEB0
+
+ thumb_func_start sub_811CEE4
+sub_811CEE4: @ 811CEE4
+ push {r4,lr}
+ ldr r4, _0811CF48
+ ldrh r1, [r4, 0xA]
+ ldr r0, _0811CF4C
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r1, [r4, 0xA]
+ ldr r0, _0811CF50
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xA]
+ bl sub_811D67C
+ ldr r2, _0811CF54
+ ldr r1, _0811CF58
+ ldrh r0, [r1, 0xE]
+ strh r0, [r2]
+ subs r2, 0x8
+ ldrh r0, [r1, 0x2]
+ strh r0, [r2]
+ adds r2, 0x2
+ ldrh r0, [r1, 0x4]
+ strh r0, [r2]
+ subs r2, 0x6
+ ldrh r0, [r1, 0x6]
+ strh r0, [r2]
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0811CF32
+ ldr r1, _0811CF5C
+ ldr r0, _0811CF60
+ str r0, [r1]
+ movs r2, 0xF0
+ lsls r2, 3
+ adds r0, r2
+ str r0, [r1, 0x4]
+ ldr r0, _0811CF64
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_0811CF32:
+ ldr r0, _0811CF68
+ str r0, [r4]
+ ldr r0, _0811CF6C
+ str r0, [r4, 0x4]
+ ldr r0, _0811CF70
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811CF48: .4byte 0x040000b0
+_0811CF4C: .4byte 0x0000c5ff
+_0811CF50: .4byte 0x00007fff
+_0811CF54: .4byte REG_BLDCNT
+_0811CF58: .4byte 0x0200c000
+_0811CF5C: .4byte 0x040000d4
+_0811CF60: .4byte gUnknown_03004DE0
+_0811CF64: .4byte 0x80000140
+_0811CF68: .4byte gUnknown_030056A0
+_0811CF6C: .4byte REG_WIN0H
+_0811CF70: .4byte 0xa2400001
+ thumb_func_end sub_811CEE4
+
+ thumb_func_start sub_811CF74
+sub_811CF74: @ 811CF74
+ push {lr}
+ bl sub_811D67C
+ ldr r1, _0811CFA4
+ ldr r2, _0811CFA8
+ ldrh r0, [r2, 0x12]
+ strh r0, [r1]
+ subs r1, 0x4
+ ldrh r0, [r2, 0xE]
+ strh r0, [r1]
+ subs r1, 0x8
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r2, 0x4]
+ strh r0, [r1]
+ subs r1, 0xA
+ ldrh r0, [r2, 0x6]
+ strh r0, [r1]
+ adds r1, 0x4
+ ldrh r0, [r2, 0x8]
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811CFA4: .4byte REG_BLDY
+_0811CFA8: .4byte 0x0200c000
+ thumb_func_end sub_811CF74
+
+ thumb_func_start sub_811CFAC
+sub_811CFAC: @ 811CFAC
+ ldr r2, _0811CFC4
+ ldr r1, _0811CFC8
+ ldr r0, _0811CFCC
+ ldrh r0, [r0]
+ lsls r0, 1
+ movs r3, 0xF0
+ lsls r3, 3
+ adds r1, r3
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ bx lr
+ .align 2, 0
+_0811CFC4: .4byte REG_BLDY
+_0811CFC8: .4byte gUnknown_03004DE0
+_0811CFCC: .4byte REG_VCOUNT
+ thumb_func_end sub_811CFAC
+
+ thumb_func_start sub_811CFD0
+sub_811CFD0: @ 811CFD0
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x38]
+ movs r2, 0x38
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ beq _0811CFF8
+ subs r0, r1, 0x1
+ strh r0, [r3, 0x38]
+ movs r1, 0x3A
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _0811D0AA
+ ldr r0, _0811CFF4
+ ldrb r1, [r0]
+ movs r1, 0x1
+ strb r1, [r0]
+ b _0811D0AA
+ .align 2, 0
+_0811CFF4: .4byte 0x0200c000
+_0811CFF8:
+ movs r2, 0x22
+ ldrsh r1, [r3, r2]
+ lsls r1, 1
+ ldr r0, _0811D0B0
+ adds r6, r1, r0
+ movs r2, 0xA0
+ lsls r2, 1
+ adds r0, r2
+ adds r5, r1, r0
+ movs r4, 0
+_0811D00C:
+ lsls r1, r4, 1
+ adds r2, r1, r6
+ ldrh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r2]
+ adds r1, r5
+ ldrh r0, [r3, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x13
+ bls _0811D00C
+ movs r1, 0x20
+ ldrsh r0, [r3, r1]
+ ldrh r2, [r3, 0x20]
+ cmp r0, 0
+ bne _0811D046
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ movs r0, 0x80
+ lsls r0, 5
+ cmp r1, r0
+ bne _0811D046
+ movs r0, 0x1
+ strh r0, [r3, 0x30]
+_0811D046:
+ adds r1, r2, 0
+ subs r1, 0x10
+ strh r1, [r3, 0x20]
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x80
+ strh r0, [r3, 0x2E]
+ lsls r1, 16
+ cmp r1, 0
+ bge _0811D05C
+ movs r0, 0
+ strh r0, [r3, 0x20]
+_0811D05C:
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ movs r1, 0x80
+ lsls r1, 5
+ cmp r0, r1
+ ble _0811D06A
+ strh r1, [r3, 0x2E]
+_0811D06A:
+ movs r0, 0x3A
+ ldrsh r2, [r3, r0]
+ cmp r2, 0
+ beq _0811D07A
+ ldr r0, _0811D0B4
+ ldrb r1, [r0]
+ movs r1, 0x1
+ strb r1, [r0]
+_0811D07A:
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _0811D0AA
+ ldr r4, _0811D0B4
+ cmp r2, 0
+ beq _0811D09E
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x6
+ ble _0811D0AA
+ ldrh r0, [r3, 0x32]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _0811D0AA
+_0811D09E:
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ strh r0, [r4, 0x20]
+ adds r0, r3, 0
+ bl DestroySprite
+_0811D0AA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811D0B0: .4byte gUnknown_03004DE0
+_0811D0B4: .4byte 0x0200c000
+ thumb_func_end sub_811CFD0
+
+ thumb_func_start sub_811D0B8
+sub_811D0B8: @ 811D0B8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811D0E8
+ ldr r2, _0811D0EC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811D0CA:
+ 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 _0811D0CA
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811D0E8: .4byte gUnknown_083FD8D4
+_0811D0EC: .4byte gTasks
+ thumb_func_end sub_811D0B8
+
+ thumb_func_start sub_811D0F0
+sub_811D0F0: @ 811D0F0
+ push {r4,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ add r0, sp, 0x4
+ add r1, sp, 0x8
+ bl sub_811D6A8
+ ldr r0, _0811D138
+ ldr r1, [sp, 0x8]
+ movs r2, 0x10
+ bl CpuSet
+ mov r1, sp
+ movs r2, 0xF0
+ lsls r2, 8
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, [sp, 0x4]
+ ldr r2, _0811D13C
+ mov r0, sp
+ bl CpuSet
+ ldr r0, _0811D140
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0
+ add sp, 0xC
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811D138: .4byte gUnknown_083FD528
+_0811D13C: .4byte 0x01000400
+_0811D140: .4byte gFieldEffectObjectPalette10
+ thumb_func_end sub_811D0F0
+
+ thumb_func_start sub_811D144
+sub_811D144: @ 811D144
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0811D186
+ mov r0, sp
+ bl sub_811D690
+ movs r0, 0x3
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ lsls r0, 5
+ ldr r1, _0811D198
+ adds r0, r1
+ ldr r1, [sp]
+ movs r2, 0x10
+ bl CpuSet
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xD
+ ble _0811D186
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r0, 0x10
+ strh r0, [r4, 0xA]
+_0811D186:
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r0, 0
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811D198: .4byte gUnknown_083FD528
+ thumb_func_end sub_811D144
+
+ thumb_func_start sub_811D19C
+sub_811D19C: @ 811D19C
+ push {lr}
+ ldrh r1, [r0, 0xA]
+ subs r1, 0x1
+ strh r1, [r0, 0xA]
+ lsls r1, 16
+ cmp r1, 0
+ bne _0811D1BC
+ bl sub_811D6D4
+ ldr r0, _0811D1C4
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+_0811D1BC:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811D1C4: .4byte sub_811D0B8
+ thumb_func_end sub_811D19C
+
+ thumb_func_start sub_811D1C8
+sub_811D1C8: @ 811D1C8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811D1F8
+ ldr r2, _0811D1FC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811D1DA:
+ 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 _0811D1DA
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811D1F8: .4byte gUnknown_083FD8E0
+_0811D1FC: .4byte gTasks
+ thumb_func_end sub_811D1C8
+
+ thumb_func_start sub_811D200
+sub_811D200: @ 811D200
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl sub_811D658
+ bl dp12_8087EA4
+ ldr r1, _0811D254
+ movs r2, 0
+ movs r0, 0x3F
+ strh r0, [r1, 0x2]
+ strh r2, [r1, 0x4]
+ movs r0, 0xA0
+ strh r0, [r1, 0x8]
+ movs r1, 0
+ ldr r2, _0811D258
+ movs r3, 0xF0
+ adds r4, r2, 0
+_0811D222:
+ lsls r0, r1, 1
+ adds r0, r2
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x9F
+ bls _0811D222
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r1, r4, r0
+ adds r0, r4, 0
+ movs r2, 0xA0
+ bl CpuSet
+ ldr r0, _0811D25C
+ bl SetVBlankCallback
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811D254: .4byte 0x0200c000
+_0811D258: .4byte gUnknown_03004DE0
+_0811D25C: .4byte sub_811D438
+ thumb_func_end sub_811D200
+
+ thumb_func_start sub_811D260
+sub_811D260: @ 811D260
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0xC
+ mov r8, r0
+ ldr r0, _0811D2D0
+ ldr r6, _0811D2D4
+ mov r2, r8
+ movs r3, 0xA
+ ldrsh r1, [r2, r3]
+ lsls r4, r1, 2
+ adds r4, r1
+ lsls r4, 1
+ adds r1, r4, r6
+ movs r5, 0
+ ldrsh r1, [r1, r5]
+ adds r2, r6, 0x2
+ adds r2, r4, r2
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ adds r3, r6, 0x4
+ adds r3, r4, r3
+ movs r5, 0
+ ldrsh r3, [r3, r5]
+ adds r5, r6, 0x6
+ adds r4, r5
+ movs r5, 0
+ ldrsh r4, [r4, r5]
+ str r4, [sp]
+ movs r4, 0x1
+ str r4, [sp, 0x4]
+ str r4, [sp, 0x8]
+ bl sub_811D8FC
+ mov r0, r8
+ movs r2, 0xA
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 1
+ adds r6, 0x8
+ adds r0, r6
+ ldrh r0, [r0]
+ mov r3, r8
+ strh r0, [r3, 0xC]
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ movs r0, 0x1
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811D2D0: .4byte 0x0200c024
+_0811D2D4: .4byte gUnknown_083FD8F4
+ thumb_func_end sub_811D260
+
+ thumb_func_start sub_811D2D8
+sub_811D2D8: @ 811D2D8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r7, r0, 0
+ ldr r0, _0811D324
+ ldrb r1, [r0]
+ movs r1, 0
+ strb r1, [r0]
+ mov r8, r1
+ mov r12, r1
+ adds r6, r0, 0
+ ldr r0, _0811D328
+ mov r9, r0
+_0811D2F4:
+ ldr r1, _0811D328
+ movs r2, 0x2A
+ ldrsh r0, [r6, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsrs r3, r0, 8
+ movs r4, 0xFF
+ ands r4, r0
+ movs r1, 0xC
+ ldrsh r0, [r7, r1]
+ cmp r0, 0
+ bne _0811D32C
+ movs r2, 0x28
+ ldrsh r0, [r6, r2]
+ cmp r3, r0
+ bge _0811D318
+ ldrh r3, [r6, 0x28]
+_0811D318:
+ lsls r0, r3, 16
+ lsls r1, r4, 16
+ cmp r0, r1
+ ble _0811D344
+ lsrs r3, r1, 16
+ b _0811D344
+ .align 2, 0
+_0811D324: .4byte 0x0200c000
+_0811D328: .4byte gUnknown_03004DE0
+_0811D32C:
+ lsls r0, r4, 16
+ asrs r0, 16
+ movs r2, 0x28
+ ldrsh r1, [r6, r2]
+ cmp r0, r1
+ ble _0811D33A
+ ldrh r4, [r6, 0x28]
+_0811D33A:
+ lsls r0, r4, 16
+ lsls r1, r3, 16
+ cmp r0, r1
+ bgt _0811D344
+ lsrs r4, r1, 16
+_0811D344:
+ ldr r5, _0811D368
+ movs r0, 0x2A
+ ldrsh r2, [r5, r0]
+ lsls r2, 1
+ add r2, r9
+ lsls r1, r3, 16
+ asrs r1, 8
+ lsls r0, r4, 16
+ asrs r0, 16
+ orrs r0, r1
+ strh r0, [r2]
+ mov r1, r12
+ cmp r1, 0
+ beq _0811D36C
+ ldrh r0, [r7, 0x8]
+ adds r0, 0x1
+ strh r0, [r7, 0x8]
+ b _0811D392
+ .align 2, 0
+_0811D368: .4byte 0x0200c000
+_0811D36C:
+ adds r0, r5, 0
+ adds r0, 0x24
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_811D978
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ mov r2, r8
+ lsls r0, r2, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ lsrs r2, r0, 16
+ mov r8, r2
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _0811D2F4
+_0811D392:
+ ldr r0, _0811D3AC
+ ldrb r1, [r0]
+ adds r1, 0x1
+ ldrb r2, [r0]
+ strb r1, [r0]
+ movs r0, 0
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811D3AC: .4byte 0x0200c000
+ thumb_func_end sub_811D2D8
+
+ thumb_func_start sub_811D3B0
+sub_811D3B0: @ 811D3B0
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ ble _0811D3FC
+ ldr r1, _0811D3EC
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811D3F0
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0811D3F4
+ ands r0, r2
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xA]
+ bl sub_811D6D4
+ ldr r0, _0811D3F8
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ b _0811D414
+ .align 2, 0
+_0811D3EC: .4byte 0x040000b0
+_0811D3F0: .4byte 0x0000c5ff
+_0811D3F4: .4byte 0x00007fff
+_0811D3F8: .4byte sub_811D1C8
+_0811D3FC:
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ ldr r1, _0811D418
+ movs r3, 0xA
+ ldrsh r0, [r2, r3]
+ subs r0, 0x1
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2, 0xE]
+ movs r0, 0x1
+_0811D414:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811D418: .4byte gUnknown_083FD93A
+ thumb_func_end sub_811D3B0
+
+ thumb_func_start sub_811D41C
+sub_811D41C: @ 811D41C
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0xE]
+ subs r0, 0x1
+ strh r0, [r1, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0811D430
+ movs r0, 0
+ b _0811D434
+_0811D430:
+ movs r0, 0x1
+ strh r0, [r1, 0x8]
+_0811D434:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811D41C
+
+ thumb_func_start sub_811D438
+sub_811D438: @ 811D438
+ push {r4,lr}
+ ldr r4, _0811D4A0
+ ldrh r1, [r4, 0xA]
+ ldr r0, _0811D4A4
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r1, [r4, 0xA]
+ ldr r0, _0811D4A8
+ ands r0, r1
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xA]
+ bl sub_811D67C
+ ldr r2, _0811D4AC
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _0811D46E
+ ldr r1, _0811D4B0
+ ldr r0, _0811D4B4
+ str r0, [r1]
+ movs r3, 0xF0
+ lsls r3, 3
+ adds r0, r3
+ str r0, [r1, 0x4]
+ ldr r0, _0811D4B8
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+_0811D46E:
+ ldr r1, _0811D4BC
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r2, 0x4]
+ strh r0, [r1]
+ subs r1, 0x6
+ ldrh r0, [r2, 0x8]
+ strh r0, [r1]
+ ldr r2, _0811D4C0
+ ldr r0, _0811D4B4
+ movs r1, 0xF0
+ lsls r1, 3
+ adds r0, r1
+ ldrh r1, [r0]
+ strh r1, [r2]
+ str r0, [r4]
+ str r2, [r4, 0x4]
+ ldr r0, _0811D4C4
+ str r0, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811D4A0: .4byte 0x040000b0
+_0811D4A4: .4byte 0x0000c5ff
+_0811D4A8: .4byte 0x00007fff
+_0811D4AC: .4byte 0x0200c000
+_0811D4B0: .4byte 0x040000d4
+_0811D4B4: .4byte gUnknown_03004DE0
+_0811D4B8: .4byte 0x800000a0
+_0811D4BC: .4byte REG_WININ
+_0811D4C0: .4byte REG_WIN0H
+_0811D4C4: .4byte 0xa2400001
+ thumb_func_end sub_811D438
+
+ thumb_func_start sub_811D4C8
+sub_811D4C8: @ 811D4C8
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ mov r8, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ ldr r3, [sp, 0x18]
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r6, 16
+ lsrs r6, 16
+ lsls r3, 16
+ lsrs r3, 16
+ ldr r0, _0811D524
+ movs r1, 0x3
+ str r3, [sp]
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0811D528
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ mov r0, r8
+ strh r0, [r1, 0xA]
+ strh r4, [r1, 0xC]
+ strh r5, [r1, 0xE]
+ strh r6, [r1, 0x10]
+ ldr r3, [sp]
+ strh r3, [r1, 0x12]
+ strh r0, [r1, 0x14]
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811D524: .4byte sub_811D54C
+_0811D528: .4byte gTasks
+ thumb_func_end sub_811D4C8
+
+ thumb_func_start sub_811D52C
+sub_811D52C: @ 811D52C
+ push {lr}
+ ldr r0, _0811D540
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _0811D544
+ movs r0, 0
+ b _0811D546
+ .align 2, 0
+_0811D540: .4byte sub_811D54C
+_0811D544:
+ movs r0, 0x1
+_0811D546:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811D52C
+
+ thumb_func_start sub_811D54C
+sub_811D54C: @ 811D54C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _0811D57C
+ ldr r2, _0811D580
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+_0811D55E:
+ 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 _0811D55E
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811D57C: .4byte gUnknown_083FD948
+_0811D580: .4byte gTasks
+ thumb_func_end sub_811D54C
+
+ thumb_func_start sub_811D584
+sub_811D584: @ 811D584
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x14]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0811D59C
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0811D5C0
+_0811D59C:
+ ldrh r0, [r4, 0xA]
+ strh r0, [r4, 0x14]
+ ldrh r0, [r4, 0x10]
+ ldrh r1, [r4, 0x16]
+ adds r0, r1
+ strh r0, [r4, 0x16]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _0811D5B4
+ movs r0, 0x10
+ strh r0, [r4, 0x16]
+_0811D5B4:
+ movs r0, 0x1
+ negs r0, r0
+ ldrb r1, [r4, 0x16]
+ ldr r2, _0811D5DC
+ bl BlendPalettes
+_0811D5C0:
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xF
+ ble _0811D5D2
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ ldrh r0, [r4, 0xC]
+ strh r0, [r4, 0x14]
+_0811D5D2:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811D5DC: .4byte 0x00002d6b
+ thumb_func_end sub_811D584
+
+ thumb_func_start sub_811D5E0
+sub_811D5E0: @ 811D5E0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x14]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0811D5F8
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0811D61A
+_0811D5F8:
+ ldrh r0, [r4, 0xC]
+ strh r0, [r4, 0x14]
+ ldrh r0, [r4, 0x16]
+ ldrh r1, [r4, 0x12]
+ subs r0, r1
+ strh r0, [r4, 0x16]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0811D60E
+ movs r0, 0
+ strh r0, [r4, 0x16]
+_0811D60E:
+ movs r0, 0x1
+ negs r0, r0
+ ldrb r1, [r4, 0x16]
+ ldr r2, _0811D640
+ bl BlendPalettes
+_0811D61A:
+ movs r0, 0x16
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ bne _0811D64E
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0811D648
+ ldr r0, _0811D644
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ b _0811D64E
+ .align 2, 0
+_0811D640: .4byte 0x00002d6b
+_0811D644: .4byte sub_811D54C
+_0811D648:
+ ldrh r0, [r4, 0xA]
+ strh r0, [r4, 0x14]
+ strh r1, [r4, 0x8]
+_0811D64E:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811D5E0
+
+ thumb_func_start sub_811D658
+sub_811D658: @ 811D658
+ push {lr}
+ ldr r0, _0811D674
+ ldr r0, [r0]
+ movs r1, 0
+ movs r2, 0x3C
+ bl memset
+ ldr r0, _0811D678
+ adds r1, r0, 0x2
+ bl sub_8057B14
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811D674: .4byte gUnknown_083FD708
+_0811D678: .4byte 0x0200c014
+ thumb_func_end sub_811D658
+
+ thumb_func_start sub_811D67C
+sub_811D67C: @ 811D67C
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811D67C
+
+ thumb_func_start sub_811D690
+sub_811D690: @ 811D690
+ ldr r1, _0811D6A4
+ ldrh r1, [r1]
+ lsrs r1, 2
+ lsls r1, 30
+ lsrs r1, 16
+ movs r2, 0xC0
+ lsls r2, 19
+ adds r1, r2
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_0811D6A4: .4byte REG_BG0CNT
+ thumb_func_end sub_811D690
+
+ thumb_func_start sub_811D6A8
+sub_811D6A8: @ 811D6A8
+ push {r4,lr}
+ ldr r3, _0811D6D0
+ ldrh r2, [r3]
+ lsrs r2, 8
+ ldrh r3, [r3]
+ lsrs r3, 2
+ lsls r2, 27
+ lsrs r2, 16
+ lsls r3, 30
+ lsrs r3, 16
+ movs r4, 0xC0
+ lsls r4, 19
+ adds r2, r4
+ str r2, [r0]
+ adds r3, r4
+ str r3, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811D6D0: .4byte REG_BG0CNT
+ thumb_func_end sub_811D6A8
+
+ thumb_func_start sub_811D6D4
+sub_811D6D4: @ 811D6D4
+ push {lr}
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811D6D4
+
+ thumb_func_start sub_811D6E8
+sub_811D6E8: @ 811D6E8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r10, r0
+ ldr r0, [sp, 0x20]
+ ldr r4, [sp, 0x24]
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r0, 16
+ lsrs r1, r0, 16
+ lsls r4, 16
+ movs r6, 0
+ lsrs r5, r4, 16
+ cmp r4, 0
+ ble _0811D750
+ lsls r0, r7, 16
+ asrs r0, 16
+ mov r9, r0
+ lsls r1, 16
+ mov r8, r1
+ lsls r0, r3, 16
+ asrs r7, r0, 16
+_0811D720:
+ lsls r4, r2, 16
+ asrs r4, 16
+ movs r0, 0xFF
+ ands r0, r4
+ mov r2, r8
+ asrs r1, r2, 16
+ bl Sin
+ lsls r1, r6, 1
+ add r1, r10
+ add r0, r9
+ strh r0, [r1]
+ lsls r1, r5, 16
+ ldr r0, _0811D760
+ adds r1, r0
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r4, r7
+ lsls r4, 16
+ lsrs r2, r4, 16
+ lsrs r5, r1, 16
+ cmp r1, 0
+ bgt _0811D720
+_0811D750:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811D760: .4byte 0xffff0000
+ thumb_func_end sub_811D6E8
+
+ thumb_func_start sub_811D764
+sub_811D764: @ 811D764
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ mov r9, r0
+ adds r5, r2, 0
+ adds r4, r3, 0
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r4, 16
+ lsrs r4, 16
+ movs r2, 0xA0
+ lsls r2, 1
+ movs r1, 0xA
+ bl memset
+ movs r1, 0
+ lsls r4, 16
+ asrs r4, 16
+ str r4, [sp, 0x4]
+ lsls r5, 16
+ asrs r5, 16
+ str r5, [sp, 0x8]
+_0811D79C:
+ lsls r5, r1, 16
+ asrs r0, r5, 16
+ mov r10, r0
+ ldr r1, [sp, 0x4]
+ bl Sin
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r10
+ ldr r1, [sp, 0x4]
+ bl Cos
+ ldr r2, [sp]
+ lsls r1, r2, 16
+ asrs r1, 16
+ lsls r4, 16
+ asrs r4, 16
+ subs r2, r1, r4
+ lsls r2, 16
+ adds r1, r4
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r0, 16
+ asrs r0, 16
+ ldr r3, [sp, 0x8]
+ subs r1, r3, r0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ adds r0, r3, r0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsrs r1, r2, 16
+ str r5, [sp, 0x10]
+ cmp r2, 0
+ bge _0811D7E8
+ movs r1, 0
+_0811D7E8:
+ lsls r0, r6, 16
+ asrs r0, 16
+ cmp r0, 0xF0
+ ble _0811D7F2
+ movs r6, 0xF0
+_0811D7F2:
+ lsls r0, r7, 16
+ cmp r0, 0
+ bge _0811D7FA
+ movs r7, 0
+_0811D7FA:
+ mov r2, r8
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0x9F
+ ble _0811D808
+ movs r3, 0x9F
+ mov r8, r3
+_0811D808:
+ lsls r0, r1, 24
+ lsrs r0, 16
+ orrs r6, r0
+ lsls r0, r7, 16
+ asrs r0, 16
+ str r0, [sp, 0xC]
+ lsls r0, 1
+ add r0, r9
+ strh r6, [r0]
+ mov r0, r8
+ lsls r4, r0, 16
+ asrs r0, r4, 15
+ add r0, r9
+ strh r6, [r0]
+ mov r0, r10
+ adds r0, 0x1
+ lsls r0, 16
+ asrs r0, 16
+ ldr r1, [sp, 0x4]
+ bl Cos
+ lsls r0, 16
+ asrs r0, 16
+ ldr r2, [sp, 0x8]
+ subs r1, r2, r0
+ lsls r1, 16
+ adds r0, r2, r0
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsrs r3, r1, 16
+ cmp r1, 0
+ bge _0811D84A
+ movs r3, 0
+_0811D84A:
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0x9F
+ ble _0811D854
+ movs r2, 0x9F
+_0811D854:
+ lsls r0, r3, 16
+ asrs r1, r0, 16
+ adds r3, r0, 0
+ lsls r5, r2, 16
+ ldr r0, [sp, 0xC]
+ cmp r0, r1
+ ble _0811D878
+ adds r2, r1, 0
+_0811D864:
+ lsls r1, r7, 16
+ ldr r0, _0811D8F8
+ adds r1, r0
+ asrs r0, r1, 15
+ add r0, r9
+ strh r6, [r0]
+ lsrs r7, r1, 16
+ asrs r1, 16
+ cmp r1, r2
+ bgt _0811D864
+_0811D878:
+ lsls r1, r7, 16
+ asrs r0, r3, 16
+ cmp r1, r3
+ bge _0811D896
+ adds r2, r0, 0
+_0811D882:
+ movs r3, 0x80
+ lsls r3, 9
+ adds r0, r1, r3
+ asrs r1, r0, 15
+ add r1, r9
+ strh r6, [r1]
+ adds r1, r0, 0
+ asrs r0, r1, 16
+ cmp r0, r2
+ blt _0811D882
+_0811D896:
+ asrs r0, r5, 16
+ cmp r4, r5
+ ble _0811D8B4
+ adds r1, r0, 0
+_0811D89E:
+ ldr r2, _0811D8F8
+ adds r0, r4, r2
+ lsrs r3, r0, 16
+ mov r8, r3
+ asrs r0, 15
+ add r0, r9
+ strh r6, [r0]
+ lsls r4, r3, 16
+ asrs r0, r4, 16
+ cmp r0, r1
+ bgt _0811D89E
+_0811D8B4:
+ mov r0, r8
+ lsls r4, r0, 16
+ asrs r0, r5, 16
+ cmp r4, r5
+ bge _0811D8D4
+ adds r2, r0, 0
+_0811D8C0:
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r4, r1
+ asrs r1, r0, 15
+ add r1, r9
+ strh r6, [r1]
+ adds r4, r0, 0
+ asrs r0, r4, 16
+ cmp r0, r2
+ blt _0811D8C0
+_0811D8D4:
+ ldr r2, [sp, 0x10]
+ movs r3, 0x80
+ lsls r3, 9
+ adds r0, r2, r3
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0x3F
+ bgt _0811D8E6
+ b _0811D79C
+_0811D8E6:
+ 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
+_0811D8F8: .4byte 0xffff0000
+ thumb_func_end sub_811D764
+
+ thumb_func_start sub_811D8FC
+sub_811D8FC: @ 811D8FC
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r0, [sp, 0x14]
+ ldr r5, [sp, 0x18]
+ ldr r4, [sp, 0x1C]
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r0, 16
+ lsrs r0, 16
+ adds r7, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r4, 16
+ lsrs r4, 16
+ strh r1, [r6]
+ strh r2, [r6, 0x2]
+ strh r1, [r6, 0x4]
+ strh r2, [r6, 0x6]
+ strh r3, [r6, 0x8]
+ strh r7, [r6, 0xA]
+ strh r5, [r6, 0xC]
+ strh r4, [r6, 0xE]
+ lsls r3, 16
+ asrs r3, 16
+ lsls r1, 16
+ asrs r1, 16
+ subs r3, r1
+ strh r3, [r6, 0x10]
+ lsls r0, r3, 16
+ cmp r0, 0
+ bge _0811D94E
+ negs r0, r3
+ strh r0, [r6, 0x10]
+ lsls r0, r5, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r6, 0xC]
+_0811D94E:
+ lsls r0, r7, 16
+ asrs r0, 16
+ lsls r1, r2, 16
+ asrs r1, 16
+ subs r1, r0, r1
+ strh r1, [r6, 0x12]
+ lsls r0, r1, 16
+ cmp r0, 0
+ bge _0811D96C
+ negs r0, r1
+ strh r0, [r6, 0x12]
+ lsls r0, r4, 16
+ asrs r0, 16
+ negs r0, r0
+ strh r0, [r6, 0xE]
+_0811D96C:
+ movs r0, 0
+ strh r0, [r6, 0x14]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811D8FC
+
+ thumb_func_start sub_811D978
+sub_811D978: @ 811D978
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r3, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ ldrh r0, [r3, 0x10]
+ mov r8, r0
+ movs r1, 0x10
+ ldrsh r6, [r3, r1]
+ ldrh r2, [r3, 0x12]
+ mov r12, r2
+ movs r4, 0x12
+ ldrsh r5, [r3, r4]
+ cmp r6, r5
+ ble _0811D9C8
+ ldrh r0, [r3, 0xC]
+ ldrh r2, [r3, 0x4]
+ adds r1, r0, r2
+ strh r1, [r3, 0x4]
+ ldrh r2, [r3, 0x14]
+ add r2, r12
+ strh r2, [r3, 0x14]
+ lsls r1, r2, 16
+ asrs r1, 16
+ adds r4, r0, 0
+ ldrh r7, [r3, 0xE]
+ cmp r1, r6
+ ble _0811D9EE
+ ldrh r1, [r3, 0x6]
+ adds r0, r7, r1
+ strh r0, [r3, 0x6]
+ mov r1, r8
+ b _0811D9EA
+_0811D9C8:
+ ldrh r0, [r3, 0xE]
+ ldrh r2, [r3, 0x6]
+ adds r1, r0, r2
+ strh r1, [r3, 0x6]
+ ldrh r2, [r3, 0x14]
+ add r2, r8
+ strh r2, [r3, 0x14]
+ lsls r1, r2, 16
+ asrs r1, 16
+ ldrh r4, [r3, 0xC]
+ adds r7, r0, 0
+ cmp r1, r5
+ ble _0811D9EE
+ ldrh r1, [r3, 0x4]
+ adds r0, r4, r1
+ strh r0, [r3, 0x4]
+ mov r1, r12
+_0811D9EA:
+ subs r0, r2, r1
+ strh r0, [r3, 0x14]
+_0811D9EE:
+ movs r5, 0
+ lsls r0, r4, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ ble _0811DA06
+ movs r4, 0x4
+ ldrsh r1, [r3, r4]
+ movs r4, 0x8
+ ldrsh r0, [r3, r4]
+ ldrh r4, [r3, 0x8]
+ cmp r1, r0
+ bge _0811DA18
+_0811DA06:
+ cmp r2, 0
+ bge _0811DA26
+ movs r0, 0x4
+ ldrsh r1, [r3, r0]
+ movs r2, 0x8
+ ldrsh r0, [r3, r2]
+ ldrh r4, [r3, 0x8]
+ cmp r1, r0
+ bgt _0811DA26
+_0811DA18:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r0, r9
+ cmp r0, 0
+ beq _0811DA26
+ strh r4, [r3, 0x4]
+_0811DA26:
+ lsls r0, r7, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ ble _0811DA3C
+ movs r4, 0x6
+ ldrsh r1, [r3, r4]
+ movs r4, 0xA
+ ldrsh r0, [r3, r4]
+ ldrh r4, [r3, 0xA]
+ cmp r1, r0
+ bge _0811DA4E
+_0811DA3C:
+ cmp r2, 0
+ bge _0811DA5C
+ movs r0, 0x6
+ ldrsh r1, [r3, r0]
+ movs r2, 0xA
+ ldrsh r0, [r3, r2]
+ ldrh r4, [r3, 0xA]
+ cmp r1, r0
+ bgt _0811DA5C
+_0811DA4E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r0, r10
+ cmp r0, 0
+ beq _0811DA5C
+ strh r4, [r3, 0x6]
+_0811DA5C:
+ cmp r5, 0x2
+ beq _0811DA64
+ movs r0, 0
+ b _0811DA66
+_0811DA64:
+ movs r0, 0x1
+_0811DA66:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_811D978
+
+ thumb_func_start nullsub_74
+nullsub_74: @ 811DA74
+ bx lr
+ thumb_func_end nullsub_74
+
+ thumb_func_start sub_811DA78
+sub_811DA78: @ 811DA78
+ ldr r1, _0811DA88
+ ldr r0, _0811DA8C
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811DA90
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_0811DA88: .4byte gUnknown_03004330
+_0811DA8C: .4byte gUnknown_02024A60
+_0811DA90: .4byte sub_811DA94
+ thumb_func_end sub_811DA78
+
+ thumb_func_start sub_811DA94
+sub_811DA94: @ 811DA94
+ push {lr}
+ ldr r2, _0811DAC8
+ ldr r1, _0811DACC
+ ldr r0, _0811DAD0
+ ldrb r3, [r0]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r2]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0811DAE0
+ ldr r0, _0811DAD4
+ lsls r1, r3, 9
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x38
+ bhi _0811DADC
+ ldr r0, _0811DAD8
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+ b _0811DAE0
+ .align 2, 0
+_0811DAC8: .4byte gUnknown_02024A64
+_0811DACC: .4byte gBitTable
+_0811DAD0: .4byte gUnknown_02024A60
+_0811DAD4: .4byte gUnknown_02023A60
+_0811DAD8: .4byte gUnknown_083FE4F4
+_0811DADC:
+ bl dp01_tbl3_exec_completed
+_0811DAE0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811DA94
+
+ thumb_func_start sub_811DAE4
+sub_811DAE4: @ 811DAE4
+ push {lr}
+ ldr r2, _0811DB0C
+ ldr r1, _0811DB10
+ ldr r0, _0811DB14
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _0811DB18
+ cmp r1, r0
+ bne _0811DB08
+ bl dp01_tbl3_exec_completed
+_0811DB08:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811DB0C: .4byte gSprites
+_0811DB10: .4byte gUnknown_02024BE0
+_0811DB14: .4byte gUnknown_02024A60
+_0811DB18: .4byte SpriteCallbackDummy
+ thumb_func_end sub_811DAE4
+
+ thumb_func_start sub_811DB1C
+sub_811DB1C: @ 811DB1C
+ push {r4-r6,lr}
+ ldr r6, _0811DB74
+ ldr r5, _0811DB78
+ ldr r4, _0811DB7C
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r6, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, _0811DB80
+ cmp r1, r0
+ bne _0811DB6C
+ movs r0, 0
+ bl nullsub_10
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl DestroySprite
+ bl dp01_tbl3_exec_completed
+_0811DB6C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811DB74: .4byte gSprites
+_0811DB78: .4byte gUnknown_02024BE0
+_0811DB7C: .4byte gUnknown_02024A60
+_0811DB80: .4byte SpriteCallbackDummy
+ thumb_func_end sub_811DB1C
+
+ thumb_func_start sub_811DB84
+sub_811DB84: @ 811DB84
+ push {lr}
+ ldr r3, _0811DBB8
+ ldrb r0, [r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r2, _0811DBBC
+ adds r1, r2
+ ldrb r0, [r1, 0x9]
+ subs r0, 0x1
+ strb r0, [r1, 0x9]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0811DBB4
+ ldrb r0, [r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0
+ strb r0, [r1, 0x9]
+ bl dp01_tbl3_exec_completed
+_0811DBB4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811DBB8: .4byte gUnknown_02024A60
+_0811DBBC: .4byte 0x02017810
+ thumb_func_end sub_811DB84
+
+ thumb_func_start sub_811DBC0
+sub_811DBC0: @ 811DBC0
+ push {r4-r6,lr}
+ movs r6, 0
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811DBE4
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811DC18
+ ldr r0, _0811DC04
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0811DC18
+_0811DBE4:
+ ldr r2, _0811DC08
+ ldr r1, _0811DC0C
+ ldr r0, _0811DC10
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _0811DC14
+ cmp r1, r0
+ bne _0811DC50
+ b _0811DC4E
+ .align 2, 0
+_0811DC04: .4byte gUnknown_020239F8
+_0811DC08: .4byte gSprites
+_0811DC0C: .4byte gUnknown_03004340
+_0811DC10: .4byte gUnknown_02024A60
+_0811DC14: .4byte SpriteCallbackDummy
+_0811DC18:
+ ldr r2, _0811DC84
+ ldr r5, _0811DC88
+ ldr r0, _0811DC8C
+ ldrb r3, [r0]
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r2, 0
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r2, [r0]
+ ldr r0, _0811DC90
+ cmp r2, r0
+ bne _0811DC50
+ movs r0, 0x2
+ eors r3, r0
+ adds r0, r3, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ cmp r0, r2
+ bne _0811DC50
+_0811DC4E:
+ movs r6, 0x1
+_0811DC50:
+ bl IsCryPlayingOrClearCrySongs
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811DC5C
+ movs r6, 0
+_0811DC5C:
+ cmp r6, 0
+ beq _0811DC7E
+ ldr r2, _0811DC8C
+ ldrb r1, [r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0811DC94
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0, 0x9]
+ ldr r1, _0811DC98
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811DC9C
+ str r1, [r0]
+_0811DC7E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811DC84: .4byte gSprites
+_0811DC88: .4byte gUnknown_03004340
+_0811DC8C: .4byte gUnknown_02024A60
+_0811DC90: .4byte SpriteCallbackDummy
+_0811DC94: .4byte 0x02017810
+_0811DC98: .4byte gUnknown_03004330
+_0811DC9C: .4byte sub_811DB84
+ thumb_func_end sub_811DBC0
+
+ thumb_func_start sub_811DCA0
+sub_811DCA0: @ 811DCA0
+ push {r4-r7,lr}
+ ldr r6, _0811DDBC
+ ldrb r2, [r6]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r4, _0811DDC0
+ adds r3, r0, r4
+ ldrb r1, [r3]
+ movs r5, 0x8
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0811DDB4
+ movs r7, 0x2
+ adds r1, r7, 0
+ eors r1, r2
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ ands r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _0811DDB4
+ ldrb r0, [r3, 0x9]
+ adds r0, 0x1
+ strb r0, [r3, 0x9]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0811DDB4
+ ldrb r0, [r6]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ strb r2, [r1, 0x9]
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811DD56
+ ldr r0, _0811DDC4
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0811DD56
+ ldr r1, _0811DDC8
+ ldrb r0, [r6]
+ eors r0, r7
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0811DDCC
+ adds r0, r1
+ bl DestroySprite
+ ldr r4, _0811DDD0
+ ldrb r0, [r6]
+ adds r1, r7, 0
+ eors r1, r0
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ ldr r2, _0811DDD4
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _0811DDD8
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r6]
+ eors r0, r7
+ bl sub_804777C
+ ldrb r0, [r6]
+ eors r0, r7
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_8043DFC
+_0811DD56:
+ ldr r1, _0811DDC8
+ ldr r4, _0811DDBC
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0811DDCC
+ adds r0, r1
+ bl DestroySprite
+ ldr r5, _0811DDD0
+ ldrb r1, [r4]
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldr r2, _0811DDD4
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _0811DDD8
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r4]
+ bl sub_804777C
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ ldr r2, _0811DDDC
+ ldrb r1, [r2, 0x9]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, _0811DDE0
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811DDE4
+ str r1, [r0]
+_0811DDB4:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811DDBC: .4byte gUnknown_02024A60
+_0811DDC0: .4byte 0x02017810
+_0811DDC4: .4byte gUnknown_020239F8
+_0811DDC8: .4byte gUnknown_0300434C
+_0811DDCC: .4byte gSprites
+_0811DDD0: .4byte gUnknown_03004340
+_0811DDD4: .4byte gUnknown_02024A6A
+_0811DDD8: .4byte gPlayerParty
+_0811DDDC: .4byte 0x02017840
+_0811DDE0: .4byte gUnknown_03004330
+_0811DDE4: .4byte sub_811DBC0
+ thumb_func_end sub_811DCA0
+
+ thumb_func_start sub_811DDE8
+sub_811DDE8: @ 811DDE8
+ push {lr}
+ ldr r2, _0811DE1C
+ ldr r1, _0811DE20
+ ldr r0, _0811DE24
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ 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, 27
+ cmp r0, 0
+ bge _0811DE16
+ movs r2, 0x24
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _0811DE16
+ bl dp01_tbl3_exec_completed
+_0811DE16:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811DE1C: .4byte gSprites
+_0811DE20: .4byte gUnknown_02024BE0
+_0811DE24: .4byte gUnknown_02024A60
+ thumb_func_end sub_811DDE8
+
+ thumb_func_start bx_t3_healthbar_update
+bx_t3_healthbar_update: @ 811DE28
+ push {r4-r6,lr}
+ ldr r5, _0811DE68
+ ldrb r0, [r5]
+ ldr r6, _0811DE6C
+ adds r1, r0, r6
+ ldrb r1, [r1]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8045C78
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ lsls r4, 16
+ asrs r1, r4, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0811DE70
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r0, [r0]
+ movs r2, 0
+ bl sub_80440EC
+ b _0811DE8A
+ .align 2, 0
+_0811DE68: .4byte gUnknown_02024A60
+_0811DE6C: .4byte gUnknown_03004340
+_0811DE70:
+ ldr r2, _0811DE90
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _0811DE94
+ adds r0, r2
+ bl sub_80324F8
+ bl dp01_tbl3_exec_completed
+_0811DE8A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811DE90: .4byte gUnknown_02024A6A
+_0811DE94: .4byte gPlayerParty
+ thumb_func_end bx_t3_healthbar_update
+
+ thumb_func_start sub_811DE98
+sub_811DE98: @ 811DE98
+ push {r4-r6,lr}
+ ldr r6, _0811DF1C
+ ldr r5, _0811DF20
+ ldr r4, _0811DF24
+ ldrb r2, [r4]
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r3, 0x22
+ ldrsh r1, [r0, r3]
+ movs r3, 0x26
+ ldrsh r0, [r0, r3]
+ adds r1, r0
+ cmp r1, 0xA0
+ ble _0811DF14
+ ldr r1, _0811DF28
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0811DF2C
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl nullsub_9
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl DestroySprite
+ ldr r1, _0811DF30
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl dp01_tbl3_exec_completed
+_0811DF14:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811DF1C: .4byte gSprites
+_0811DF20: .4byte gUnknown_02024BE0
+_0811DF24: .4byte gUnknown_02024A60
+_0811DF28: .4byte gUnknown_02024A6A
+_0811DF2C: .4byte gPlayerParty
+_0811DF30: .4byte gUnknown_03004340
+ thumb_func_end sub_811DE98
+
+ thumb_func_start sub_811DF34
+sub_811DF34: @ 811DF34
+ push {r4-r6,lr}
+ ldr r6, _0811DF8C
+ ldrb r2, [r6]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _0811DF90
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0811DF84
+ ldr r5, _0811DF94
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _0811DF98
+ adds r0, r4
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ ldr r1, _0811DF9C
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl dp01_tbl3_exec_completed
+_0811DF84:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811DF8C: .4byte gUnknown_02024A60
+_0811DF90: .4byte 0x02017810
+_0811DF94: .4byte gUnknown_02024BE0
+_0811DF98: .4byte gSprites
+_0811DF9C: .4byte gUnknown_03004340
+ thumb_func_end sub_811DF34
+
+ thumb_func_start sub_811DFA0
+sub_811DFA0: @ 811DFA0
+ push {lr}
+ ldr r0, _0811DFB4
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ bne _0811DFAE
+ bl dp01_tbl3_exec_completed
+_0811DFAE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811DFB4: .4byte gUnknown_03004210
+ thumb_func_end sub_811DFA0
+
+ thumb_func_start bx_blink_t3
+bx_blink_t3: @ 811DFB8
+ push {r4,lr}
+ ldr r1, _0811DFF4
+ ldr r0, _0811DFF8
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r2, _0811DFFC
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r0, r2
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x20
+ bne _0811E004
+ movs r3, 0
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ subs r0, 0x5
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _0811E000
+ strb r3, [r0]
+ bl dp01_tbl3_exec_completed
+ b _0811E02E
+ .align 2, 0
+_0811DFF4: .4byte gUnknown_02024BE0
+_0811DFF8: .4byte gUnknown_02024A60
+_0811DFFC: .4byte gSprites
+_0811E000: .4byte gUnknown_02024E6D
+_0811E004:
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _0811E028
+ 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]
+_0811E028:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+_0811E02E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end bx_blink_t3
+
+ thumb_func_start sub_811E034
+sub_811E034: @ 811E034
+ push {r4,lr}
+ ldr r2, _0811E084
+ ldr r0, _0811E088
+ ldr r4, _0811E08C
+ ldrb r3, [r4]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _0811E090
+ cmp r1, r0
+ bne _0811E07C
+ lsls r0, r3, 2
+ ldr r1, _0811E094
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0811E070
+ adds r0, r3, 0
+ adds r1, r3, 0
+ adds r2, r3, 0
+ movs r3, 0x6
+ bl move_anim_start_t4
+_0811E070:
+ ldr r0, _0811E098
+ ldrb r1, [r4]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _0811E09C
+ str r0, [r1]
+_0811E07C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811E084: .4byte gSprites
+_0811E088: .4byte gUnknown_03004340
+_0811E08C: .4byte gUnknown_02024A60
+_0811E090: .4byte SpriteCallbackDummy
+_0811E094: .4byte 0x02017800
+_0811E098: .4byte gUnknown_03004330
+_0811E09C: .4byte sub_811E0A0
+ thumb_func_end sub_811E034
+
+ thumb_func_start sub_811E0A0
+sub_811E0A0: @ 811E0A0
+ push {lr}
+ ldr r0, _0811E0C4
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0811E0C8
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0811E0BE
+ bl dp01_tbl3_exec_completed
+_0811E0BE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811E0C4: .4byte gUnknown_02024A60
+_0811E0C8: .4byte 0x02017810
+ thumb_func_end sub_811E0A0
+
+ thumb_func_start sub_811E0CC
+sub_811E0CC: @ 811E0CC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r7, _0811E190
+ ldrb r1, [r7]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _0811E194
+ adds r2, r0, r3
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0811E186
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrb r2, [r1, 0x1]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldr r4, _0811E198
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+ ldr r0, _0811E19C
+ movs r1, 0xA
+ bl CreateTask
+ ldr r0, _0811E1A0
+ mov r8, r0
+ ldrb r1, [r7]
+ lsls r0, r1, 1
+ add r0, r8
+ ldrh r0, [r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _0811E1A4
+ adds r0, r5
+ bl sub_80324F8
+ ldr r1, _0811E1A8
+ ldrb r0, [r7]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0811E1AC
+ adds r0, r1
+ movs r1, 0
+ bl StartSpriteAnim
+ ldr r4, _0811E1B0
+ ldrb r1, [r7]
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ lsls r1, 1
+ add r1, r8
+ ldrh r1, [r1]
+ muls r1, r6
+ adds r1, r5
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r7]
+ bl sub_804777C
+ ldrb r0, [r7]
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ ldrb r0, [r7]
+ bl sub_8031F88
+ ldr r1, _0811E1B4
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811E1B8
+ str r1, [r0]
+_0811E186:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811E190: .4byte gUnknown_02024A60
+_0811E194: .4byte 0x02017810
+_0811E198: .4byte 0x000027f9
+_0811E19C: .4byte c3_0802FDF4
+_0811E1A0: .4byte gUnknown_02024A6A
+_0811E1A4: .4byte gPlayerParty
+_0811E1A8: .4byte gUnknown_02024BE0
+_0811E1AC: .4byte gSprites
+_0811E1B0: .4byte gUnknown_03004340
+_0811E1B4: .4byte gUnknown_03004330
+_0811E1B8: .4byte sub_811E034
+ thumb_func_end sub_811E0CC
+
+ thumb_func_start sub_811E1BC
+sub_811E1BC: @ 811E1BC
+ push {r4-r6,lr}
+ ldr r4, _0811E234
+ ldrb r2, [r4]
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ ldr r6, _0811E238
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r0, 0x88
+ ands r0, r1
+ cmp r0, 0
+ bne _0811E1EA
+ ldr r0, _0811E23C
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _0811E240
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_0811E1EA:
+ ldr r5, _0811E244
+ ldr r0, _0811E248
+ ldrb r2, [r4]
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r3, r0, 2
+ adds r0, r5, 0
+ adds r0, 0x1C
+ adds r0, r3, r0
+ ldr r1, [r0]
+ ldr r0, _0811E24C
+ cmp r1, r0
+ bne _0811E22C
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _0811E22C
+ adds r0, r3, r5
+ bl DestroySprite
+ ldr r1, _0811E250
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811E254
+ str r1, [r0]
+_0811E22C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811E234: .4byte gUnknown_02024A60
+_0811E238: .4byte 0x02017810
+_0811E23C: .4byte gUnknown_02024A6A
+_0811E240: .4byte gPlayerParty
+_0811E244: .4byte gSprites
+_0811E248: .4byte gUnknown_0300434C
+_0811E24C: .4byte SpriteCallbackDummy
+_0811E250: .4byte gUnknown_03004330
+_0811E254: .4byte sub_811E0CC
+ thumb_func_end sub_811E1BC
+
+ thumb_func_start sub_811E258
+sub_811E258: @ 811E258
+ push {lr}
+ ldr r0, _0811E288
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0811E284
+ movs r0, 0x5A
+ bl m4aSongNumStop
+ ldr r3, _0811E28C
+ ldr r0, _0811E290
+ adds r2, r3, r0
+ ldrb r1, [r2]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _0811E294
+ ldr r0, [r0]
+ str r0, [r3]
+ ldr r0, _0811E298
+ bl SetMainCallback2
+_0811E284:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811E288: .4byte gReceivedRemoteLinkPlayers
+_0811E28C: .4byte gMain
+_0811E290: .4byte 0x0000043d
+_0811E294: .4byte gUnknown_030042D0
+_0811E298: .4byte c2_8011A1C
+ thumb_func_end sub_811E258
+
+ thumb_func_start sub_811E29C
+sub_811E29C: @ 811E29C
+ push {lr}
+ ldr r0, _0811E2CC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0811E302
+ ldr r0, _0811E2D0
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0811E2E0
+ bl sub_800832C
+ ldr r1, _0811E2D4
+ ldr r0, _0811E2D8
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811E2DC
+ str r1, [r0]
+ b _0811E302
+ .align 2, 0
+_0811E2CC: .4byte gPaletteFade
+_0811E2D0: .4byte gUnknown_020239F8
+_0811E2D4: .4byte gUnknown_03004330
+_0811E2D8: .4byte gUnknown_02024A60
+_0811E2DC: .4byte sub_811E258
+_0811E2E0:
+ movs r0, 0x5A
+ bl m4aSongNumStop
+ ldr r2, _0811E308
+ ldr r0, _0811E30C
+ adds r3, r2, r0
+ ldrb r1, [r3]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldr r0, _0811E310
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r0, [r2, 0x8]
+ bl SetMainCallback2
+_0811E302:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811E308: .4byte gMain
+_0811E30C: .4byte 0x0000043d
+_0811E310: .4byte gUnknown_030042D0
+ thumb_func_end sub_811E29C
+
+ thumb_func_start dp01_tbl3_exec_completed
+dp01_tbl3_exec_completed: @ 811E314
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _0811E354
+ ldr r4, _0811E358
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811E35C
+ str r1, [r0]
+ ldr r0, _0811E360
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0811E368
+ bl GetMultiplayerId
+ mov r1, sp
+ strb r0, [r1]
+ movs r0, 0x2
+ movs r1, 0x4
+ mov r2, sp
+ bl dp01_prepare_buffer_wireless_probably
+ ldr r1, _0811E364
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r0, r1
+ movs r1, 0x38
+ strb r1, [r0]
+ b _0811E37A
+ .align 2, 0
+_0811E354: .4byte gUnknown_03004330
+_0811E358: .4byte gUnknown_02024A60
+_0811E35C: .4byte sub_811DA94
+_0811E360: .4byte gUnknown_020239F8
+_0811E364: .4byte gUnknown_02023A60
+_0811E368:
+ ldr r2, _0811E384
+ ldr r1, _0811E388
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+_0811E37A:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811E384: .4byte gUnknown_02024A64
+_0811E388: .4byte gBitTable
+ thumb_func_end dp01_tbl3_exec_completed
+
+ thumb_func_start sub_811E38C
+sub_811E38C: @ 811E38C
+ push {lr}
+ ldr r0, _0811E3B0
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0811E3B4
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0811E3AA
+ bl dp01_tbl3_exec_completed
+_0811E3AA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811E3B0: .4byte gUnknown_02024A60
+_0811E3B4: .4byte 0x02017810
+ thumb_func_end sub_811E38C
+
+ thumb_func_start sub_811E3B8
+sub_811E3B8: @ 811E3B8
+ push {lr}
+ ldr r0, _0811E3DC
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0811E3E0
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0811E3D6
+ bl dp01_tbl3_exec_completed
+_0811E3D6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811E3DC: .4byte gUnknown_02024A60
+_0811E3E0: .4byte 0x02017810
+ thumb_func_end sub_811E3B8
+
+ thumb_func_start dp01t_00_3_getattr
+dp01t_00_3_getattr: @ 811E3E4
+ push {r4-r6,lr}
+ sub sp, 0x100
+ movs r6, 0
+ ldr r1, _0811E410
+ ldr r0, _0811E414
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0811E41C
+ ldr r0, _0811E418
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ mov r1, sp
+ bl dp01_getattr_by_ch1_for_player_pokemon
+ adds r6, r0, 0
+ b _0811E43E
+ .align 2, 0
+_0811E410: .4byte gUnknown_02023A60
+_0811E414: .4byte gUnknown_02024A60
+_0811E418: .4byte gUnknown_02024A6A
+_0811E41C:
+ ldrb r4, [r1]
+ movs r5, 0
+_0811E420:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _0811E436
+ lsls r0, r5, 24
+ lsrs r0, 24
+ mov r2, sp
+ adds r1, r2, r6
+ bl dp01_getattr_by_ch1_for_player_pokemon
+ adds r6, r0
+_0811E436:
+ lsrs r4, 1
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _0811E420
+_0811E43E:
+ lsls r1, r6, 16
+ lsrs r1, 16
+ movs r0, 0x1
+ mov r2, sp
+ bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl dp01_tbl3_exec_completed
+ add sp, 0x100
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_00_3_getattr
+
+ thumb_func_start dp01_getattr_by_ch1_for_player_pokemon
+dp01_getattr_by_ch1_for_player_pokemon: @ 811E458
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x90
+ adds r7, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r6, 0
+ ldr r2, _0811E48C
+ ldr r3, _0811E490
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r1, r2, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3B
+ bls _0811E482
+ bl _0811EBEE
+_0811E482:
+ lsls r0, 2
+ ldr r1, _0811E494
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0811E48C: .4byte gUnknown_02023A60
+_0811E490: .4byte gUnknown_02024A60
+_0811E494: .4byte _0811E498
+ .align 2, 0
+_0811E498:
+ .4byte _0811E588
+ .4byte _0811E7AC
+ .4byte _0811E7BC
+ .4byte _0811E7CC
+ .4byte _0811E834
+ .4byte _0811E834
+ .4byte _0811E834
+ .4byte _0811E834
+ .4byte _0811E850
+ .4byte _0811E88C
+ .4byte _0811E88C
+ .4byte _0811E88C
+ .4byte _0811E88C
+ .4byte _0811EBEE
+ .4byte _0811EBEE
+ .4byte _0811EBEE
+ .4byte _0811EBEE
+ .4byte _0811E8A8
+ .4byte _0811E8B8
+ .4byte _0811E8E8
+ .4byte _0811E8F8
+ .4byte _0811E908
+ .4byte _0811E918
+ .4byte _0811E928
+ .4byte _0811E938
+ .4byte _0811E948
+ .4byte _0811E958
+ .4byte _0811E968
+ .4byte _0811E978
+ .4byte _0811E988
+ .4byte _0811E998
+ .4byte _0811E9A8
+ .4byte _0811E9F8
+ .4byte _0811EA08
+ .4byte _0811EA18
+ .4byte _0811EA28
+ .4byte _0811EA38
+ .4byte _0811EA48
+ .4byte _0811EA58
+ .4byte _0811EA68
+ .4byte _0811EA78
+ .4byte _0811EAAC
+ .4byte _0811EABC
+ .4byte _0811EACC
+ .4byte _0811EADC
+ .4byte _0811EAEC
+ .4byte _0811EAFC
+ .4byte _0811EB0C
+ .4byte _0811EB1C
+ .4byte _0811EB3C
+ .4byte _0811EB4C
+ .4byte _0811EB5C
+ .4byte _0811EB6C
+ .4byte _0811EB7C
+ .4byte _0811EB8C
+ .4byte _0811EB9C
+ .4byte _0811EBAC
+ .4byte _0811EBBC
+ .4byte _0811EBCC
+ .4byte _0811EBDC
+_0811E588:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0811E79C
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x2E]
+ movs r6, 0
+ add r0, sp, 0x24
+ mov r9, r0
+ movs r1, 0x3B
+ add r1, sp
+ mov r10, r1
+ mov r2, sp
+ adds r2, 0x2B
+ str r2, [sp, 0x80]
+ mov r0, sp
+ adds r0, 0x2A
+ str r0, [sp, 0x7C]
+ mov r1, sp
+ adds r1, 0x68
+ str r1, [sp, 0x8C]
+ adds r2, 0x5
+ str r2, [sp, 0x84]
+ adds r0, 0x12
+ str r0, [sp, 0x88]
+ mov r8, r4
+ add r4, sp, 0xC
+_0811E5D4:
+ adds r1, r6, 0
+ adds r1, 0xD
+ mov r0, r8
+ bl GetMonData
+ strh r0, [r4]
+ adds r1, r6, 0
+ adds r1, 0x11
+ mov r0, r8
+ bl GetMonData
+ mov r2, r9
+ adds r1, r2, r6
+ strb r0, [r1]
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0811E5D4
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0811E79C
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl GetMonData
+ mov r1, r10
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ ldr r2, [sp, 0x80]
+ strb r0, [r2]
+ adds r0, r4, 0
+ movs r1, 0x19
+ bl GetMonData
+ str r0, [sp, 0x44]
+ adds r0, r4, 0
+ movs r1, 0x27
+ bl GetMonData
+ mov r3, sp
+ movs r5, 0x1F
+ ands r0, r5
+ ldrb r2, [r3, 0x14]
+ movs r1, 0x20
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x14]
+ adds r0, r4, 0
+ movs r1, 0x28
+ bl GetMonData
+ mov r3, sp
+ movs r6, 0x1F
+ ands r0, r6
+ lsls r0, 5
+ ldrh r2, [r3, 0x14]
+ ldr r1, _0811E7A0
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r3, 0x14]
+ adds r0, r4, 0
+ movs r1, 0x29
+ bl GetMonData
+ mov r3, sp
+ ands r0, r5
+ lsls r0, 2
+ ldrb r2, [r3, 0x15]
+ movs r1, 0x7D
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x15]
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl GetMonData
+ movs r1, 0x1F
+ ands r1, r0
+ lsls r1, 15
+ ldr r0, [sp, 0x14]
+ ldr r2, _0811E7A4
+ ands r0, r2
+ orrs r0, r1
+ str r0, [sp, 0x14]
+ adds r0, r4, 0
+ movs r1, 0x2B
+ bl GetMonData
+ mov r3, sp
+ ands r0, r6
+ lsls r0, 4
+ ldrh r2, [r3, 0x16]
+ ldr r1, _0811E7A8
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r3, 0x16]
+ adds r0, r4, 0
+ movs r1, 0x2C
+ bl GetMonData
+ mov r3, sp
+ ands r0, r5
+ lsls r0, 1
+ ldrb r2, [r3, 0x17]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x17]
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ str r0, [sp, 0x48]
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ str r0, [sp, 0x4C]
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ ldr r1, [sp, 0x7C]
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x28]
+ adds r0, r4, 0
+ movs r1, 0x3A
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x2C]
+ adds r0, r4, 0
+ movs r1, 0x3B
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x2]
+ adds r0, r4, 0
+ movs r1, 0x3C
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x3D
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x6]
+ adds r0, r4, 0
+ movs r1, 0x3E
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x8]
+ adds r0, r4, 0
+ movs r1, 0x3F
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0xA]
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ mov r3, sp
+ movs r1, 0x1
+ ands r0, r1
+ lsls r0, 6
+ ldrb r2, [r3, 0x17]
+ movs r1, 0x41
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x17]
+ adds r0, r4, 0
+ movs r1, 0x2E
+ bl GetMonData
+ mov r3, sp
+ lsls r0, 7
+ ldrb r2, [r3, 0x17]
+ movs r1, 0x7F
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x17]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetMonData
+ str r0, [sp, 0x54]
+ adds r0, r4, 0
+ movs r1, 0x2
+ ldr r2, [sp, 0x8C]
+ bl GetMonData
+ ldr r0, [sp, 0x84]
+ ldr r1, [sp, 0x8C]
+ bl StringCopy10
+ adds r0, r4, 0
+ movs r1, 0x7
+ ldr r2, [sp, 0x88]
+ bl GetMonData
+ mov r2, sp
+ movs r6, 0
+_0811E78C:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0x57
+ bls _0811E78C
+ b _0811EBEE
+ .align 2, 0
+_0811E79C: .4byte gPlayerParty
+_0811E7A0: .4byte 0xfffffc1f
+_0811E7A4: .4byte 0xfff07fff
+_0811E7A8: .4byte 0xfffffe0f
+_0811E7AC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E7B8
+ adds r0, r1
+ movs r1, 0xB
+ b _0811EB26
+ .align 2, 0
+_0811E7B8: .4byte gPlayerParty
+_0811E7BC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E7C8
+ adds r0, r1
+ movs r1, 0xC
+ b _0811EB26
+ .align 2, 0
+_0811E7C8: .4byte gPlayerParty
+_0811E7CC:
+ movs r6, 0
+ add r2, sp, 0x58
+ mov r9, r2
+ add r0, sp, 0x60
+ mov r10, r0
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0811E830
+ adds r4, r1, r0
+ mov r8, r9
+_0811E7E2:
+ adds r1, r6, 0
+ adds r1, 0xD
+ adds r0, r4, 0
+ bl GetMonData
+ mov r1, r8
+ strh r0, [r1]
+ adds r1, r6, 0
+ adds r1, 0x11
+ adds r0, r4, 0
+ bl GetMonData
+ mov r2, r10
+ adds r1, r2, r6
+ strb r0, [r1]
+ movs r0, 0x2
+ add r8, r0
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0811E7E2
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E830
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ mov r1, r9
+ strb r0, [r1, 0xC]
+ mov r2, r9
+ movs r6, 0
+_0811E820:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0xF
+ bls _0811E820
+ b _0811EBEE
+ .align 2, 0
+_0811E830: .4byte gPlayerParty
+_0811E834:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E84C
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _0811EB26
+ .align 2, 0
+_0811E84C: .4byte gPlayerParty
+_0811E850:
+ movs r6, 0
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r2, _0811E888
+ mov r8, r2
+_0811E85C:
+ adds r1, r6, 0
+ adds r1, 0x11
+ mov r2, r8
+ adds r0, r4, r2
+ bl GetMonData
+ adds r1, r7, r6
+ strb r0, [r1]
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0811E85C
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E888
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ adds r1, r7, r6
+ strb r0, [r1]
+ adds r6, 0x1
+ b _0811EBEE
+ .align 2, 0
+_0811E888: .4byte gPlayerParty
+_0811E88C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E8A4
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x8
+ b _0811EBE6
+ .align 2, 0
+_0811E8A4: .4byte gPlayerParty
+_0811E8A8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E8B4
+ adds r0, r1
+ movs r1, 0x1
+ b _0811E8C2
+ .align 2, 0
+_0811E8B4: .4byte gPlayerParty
+_0811E8B8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E8E4
+ adds r0, r1
+ movs r1, 0x19
+_0811E8C2:
+ bl GetMonData
+ adds r1, r0, 0
+ strb r1, [r7]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r1
+ lsrs r0, 16
+ strb r0, [r7, 0x2]
+ movs r6, 0x3
+ b _0811EBEE
+ .align 2, 0
+_0811E8E4: .4byte gPlayerParty
+_0811E8E8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E8F4
+ adds r0, r1
+ movs r1, 0x1A
+ b _0811EBE6
+ .align 2, 0
+_0811E8F4: .4byte gPlayerParty
+_0811E8F8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E904
+ adds r0, r1
+ movs r1, 0x1B
+ b _0811EBE6
+ .align 2, 0
+_0811E904: .4byte gPlayerParty
+_0811E908:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E914
+ adds r0, r1
+ movs r1, 0x1C
+ b _0811EBE6
+ .align 2, 0
+_0811E914: .4byte gPlayerParty
+_0811E918:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E924
+ adds r0, r1
+ movs r1, 0x1D
+ b _0811EBE6
+ .align 2, 0
+_0811E924: .4byte gPlayerParty
+_0811E928:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E934
+ adds r0, r1
+ movs r1, 0x1E
+ b _0811EBE6
+ .align 2, 0
+_0811E934: .4byte gPlayerParty
+_0811E938:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E944
+ adds r0, r1
+ movs r1, 0x1F
+ b _0811EBE6
+ .align 2, 0
+_0811E944: .4byte gPlayerParty
+_0811E948:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E954
+ adds r0, r1
+ movs r1, 0x20
+ b _0811EBE6
+ .align 2, 0
+_0811E954: .4byte gPlayerParty
+_0811E958:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E964
+ adds r0, r1
+ movs r1, 0x22
+ b _0811EBE6
+ .align 2, 0
+_0811E964: .4byte gPlayerParty
+_0811E968:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E974
+ adds r0, r1
+ movs r1, 0x23
+ b _0811EBE6
+ .align 2, 0
+_0811E974: .4byte gPlayerParty
+_0811E978:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E984
+ adds r0, r1
+ movs r1, 0x24
+ b _0811EBE6
+ .align 2, 0
+_0811E984: .4byte gPlayerParty
+_0811E988:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E994
+ adds r0, r1
+ movs r1, 0x25
+ b _0811EBE6
+ .align 2, 0
+_0811E994: .4byte gPlayerParty
+_0811E998:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811E9A4
+ adds r0, r1
+ movs r1, 0x26
+ b _0811EBE6
+ .align 2, 0
+_0811E9A4: .4byte gPlayerParty
+_0811E9A8:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0811E9F4
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x27
+ bl GetMonData
+ strb r0, [r7]
+ adds r0, r4, 0
+ movs r1, 0x28
+ bl GetMonData
+ strb r0, [r7, 0x1]
+ adds r0, r4, 0
+ movs r1, 0x29
+ bl GetMonData
+ strb r0, [r7, 0x2]
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl GetMonData
+ strb r0, [r7, 0x3]
+ adds r0, r4, 0
+ movs r1, 0x2B
+ bl GetMonData
+ strb r0, [r7, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x2C
+ bl GetMonData
+ strb r0, [r7, 0x5]
+ movs r6, 0x6
+ b _0811EBEE
+ .align 2, 0
+_0811E9F4: .4byte gPlayerParty
+_0811E9F8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EA04
+ adds r0, r1
+ movs r1, 0x27
+ b _0811EBE6
+ .align 2, 0
+_0811EA04: .4byte gPlayerParty
+_0811EA08:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EA14
+ adds r0, r1
+ movs r1, 0x28
+ b _0811EBE6
+ .align 2, 0
+_0811EA14: .4byte gPlayerParty
+_0811EA18:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EA24
+ adds r0, r1
+ movs r1, 0x29
+ b _0811EBE6
+ .align 2, 0
+_0811EA24: .4byte gPlayerParty
+_0811EA28:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EA34
+ adds r0, r1
+ movs r1, 0x2A
+ b _0811EBE6
+ .align 2, 0
+_0811EA34: .4byte gPlayerParty
+_0811EA38:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EA44
+ adds r0, r1
+ movs r1, 0x2B
+ b _0811EBE6
+ .align 2, 0
+_0811EA44: .4byte gPlayerParty
+_0811EA48:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EA54
+ adds r0, r1
+ movs r1, 0x2C
+ b _0811EBE6
+ .align 2, 0
+_0811EA54: .4byte gPlayerParty
+_0811EA58:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EA64
+ adds r0, r1
+ movs r1, 0
+ b _0811EA82
+ .align 2, 0
+_0811EA64: .4byte gPlayerParty
+_0811EA68:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EA74
+ adds r0, r1
+ movs r1, 0x9
+ b _0811EB26
+ .align 2, 0
+_0811EA74: .4byte gPlayerParty
+_0811EA78:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EAA8
+ adds r0, r1
+ movs r1, 0x37
+_0811EA82:
+ bl GetMonData
+ adds r1, r0, 0
+ strb r1, [r7]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r1
+ lsrs r0, 16
+ strb r0, [r7, 0x2]
+ lsrs r0, r1, 24
+ strb r0, [r7, 0x3]
+ movs r6, 0x4
+ b _0811EBEE
+ .align 2, 0
+_0811EAA8: .4byte gPlayerParty
+_0811EAAC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EAB8
+ adds r0, r1
+ movs r1, 0x38
+ b _0811EBE6
+ .align 2, 0
+_0811EAB8: .4byte gPlayerParty
+_0811EABC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EAC8
+ adds r0, r1
+ movs r1, 0x39
+ b _0811EB26
+ .align 2, 0
+_0811EAC8: .4byte gPlayerParty
+_0811EACC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EAD8
+ adds r0, r1
+ movs r1, 0x3A
+ b _0811EB26
+ .align 2, 0
+_0811EAD8: .4byte gPlayerParty
+_0811EADC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EAE8
+ adds r0, r1
+ movs r1, 0x3B
+ b _0811EB26
+ .align 2, 0
+_0811EAE8: .4byte gPlayerParty
+_0811EAEC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EAF8
+ adds r0, r1
+ movs r1, 0x3C
+ b _0811EB26
+ .align 2, 0
+_0811EAF8: .4byte gPlayerParty
+_0811EAFC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EB08
+ adds r0, r1
+ movs r1, 0x3D
+ b _0811EB26
+ .align 2, 0
+_0811EB08: .4byte gPlayerParty
+_0811EB0C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EB18
+ adds r0, r1
+ movs r1, 0x3E
+ b _0811EB26
+ .align 2, 0
+_0811EB18: .4byte gPlayerParty
+_0811EB1C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EB38
+ adds r0, r1
+ movs r1, 0x3F
+_0811EB26:
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ strb r0, [r7]
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r6, 0x2
+ b _0811EBEE
+ .align 2, 0
+_0811EB38: .4byte gPlayerParty
+_0811EB3C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EB48
+ adds r0, r1
+ movs r1, 0x16
+ b _0811EBE6
+ .align 2, 0
+_0811EB48: .4byte gPlayerParty
+_0811EB4C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EB58
+ adds r0, r1
+ movs r1, 0x17
+ b _0811EBE6
+ .align 2, 0
+_0811EB58: .4byte gPlayerParty
+_0811EB5C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EB68
+ adds r0, r1
+ movs r1, 0x18
+ b _0811EBE6
+ .align 2, 0
+_0811EB68: .4byte gPlayerParty
+_0811EB6C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EB78
+ adds r0, r1
+ movs r1, 0x21
+ b _0811EBE6
+ .align 2, 0
+_0811EB78: .4byte gPlayerParty
+_0811EB7C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EB88
+ adds r0, r1
+ movs r1, 0x2F
+ b _0811EBE6
+ .align 2, 0
+_0811EB88: .4byte gPlayerParty
+_0811EB8C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EB98
+ adds r0, r1
+ movs r1, 0x30
+ b _0811EBE6
+ .align 2, 0
+_0811EB98: .4byte gPlayerParty
+_0811EB9C:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EBA8
+ adds r0, r1
+ movs r1, 0x32
+ b _0811EBE6
+ .align 2, 0
+_0811EBA8: .4byte gPlayerParty
+_0811EBAC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EBB8
+ adds r0, r1
+ movs r1, 0x33
+ b _0811EBE6
+ .align 2, 0
+_0811EBB8: .4byte gPlayerParty
+_0811EBBC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EBC8
+ adds r0, r1
+ movs r1, 0x34
+ b _0811EBE6
+ .align 2, 0
+_0811EBC8: .4byte gPlayerParty
+_0811EBCC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EBD8
+ adds r0, r1
+ movs r1, 0x35
+ b _0811EBE6
+ .align 2, 0
+_0811EBD8: .4byte gPlayerParty
+_0811EBDC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EC00
+ adds r0, r1
+ movs r1, 0x36
+_0811EBE6:
+ bl GetMonData
+ strb r0, [r7]
+ movs r6, 0x1
+_0811EBEE:
+ adds r0, r6, 0
+ add sp, 0x90
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0811EC00: .4byte gPlayerParty
+ thumb_func_end dp01_getattr_by_ch1_for_player_pokemon
+
+ thumb_func_start sub_811EC04
+sub_811EC04: @ 811EC04
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811EC04
+
+ thumb_func_start sub_811EC10
+sub_811EC10: @ 811EC10
+ push {r4,r5,lr}
+ ldr r1, _0811EC34
+ ldr r0, _0811EC38
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0811EC40
+ ldr r0, _0811EC3C
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ bl sub_811EC68
+ b _0811EC5E
+ .align 2, 0
+_0811EC34: .4byte gUnknown_02023A60
+_0811EC38: .4byte gUnknown_02024A60
+_0811EC3C: .4byte gUnknown_02024A6A
+_0811EC40:
+ ldrb r4, [r1]
+ movs r5, 0
+_0811EC44:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _0811EC52
+ adds r0, r5, 0
+ bl sub_811EC68
+_0811EC52:
+ lsrs r4, 1
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _0811EC44
+_0811EC5E:
+ bl dp01_tbl3_exec_completed
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811EC10
+
+ thumb_func_start sub_811EC68
+sub_811EC68: @ 811EC68
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x34
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0811ECA0
+ ldrb r0, [r0]
+ lsls r0, 9
+ ldr r2, _0811ECA4
+ adds r3, r0, r2
+ adds r6, r3, 0
+ subs r1, r2, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r7, r2, 0
+ cmp r0, 0x3B
+ bls _0811EC94
+ bl _0811F62E
+_0811EC94:
+ lsls r0, 2
+ ldr r1, _0811ECA8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0811ECA0: .4byte gUnknown_02024A60
+_0811ECA4: .4byte gUnknown_02023A63
+_0811ECA8: .4byte _0811ECAC
+ .align 2, 0
+_0811ECAC:
+ .4byte _0811ED9C
+ .4byte _0811EF34
+ .4byte _0811EF54
+ .4byte _0811EF74
+ .4byte _0811EFCC
+ .4byte _0811EFCC
+ .4byte _0811EFCC
+ .4byte _0811EFCC
+ .4byte _0811EFF4
+ .4byte _0811F058
+ .4byte _0811F058
+ .4byte _0811F058
+ .4byte _0811F058
+ .4byte _0811F62E
+ .4byte _0811F62E
+ .4byte _0811F62E
+ .4byte _0811F62E
+ .4byte _0811F088
+ .4byte _0811F0A8
+ .4byte _0811F0C8
+ .4byte _0811F0E8
+ .4byte _0811F108
+ .4byte _0811F128
+ .4byte _0811F148
+ .4byte _0811F168
+ .4byte _0811F188
+ .4byte _0811F1A8
+ .4byte _0811F1C8
+ .4byte _0811F1E8
+ .4byte _0811F208
+ .4byte _0811F228
+ .4byte _0811F248
+ .4byte _0811F2B8
+ .4byte _0811F2D8
+ .4byte _0811F2F8
+ .4byte _0811F318
+ .4byte _0811F338
+ .4byte _0811F358
+ .4byte _0811F378
+ .4byte _0811F398
+ .4byte _0811F3B8
+ .4byte _0811F3D8
+ .4byte _0811F3F8
+ .4byte _0811F418
+ .4byte _0811F438
+ .4byte _0811F458
+ .4byte _0811F478
+ .4byte _0811F498
+ .4byte _0811F4B8
+ .4byte _0811F4D8
+ .4byte _0811F4F8
+ .4byte _0811F518
+ .4byte _0811F538
+ .4byte _0811F558
+ .4byte _0811F578
+ .4byte _0811F598
+ .4byte _0811F5B8
+ .4byte _0811F5D8
+ .4byte _0811F5F8
+ .4byte _0811F618
+_0811ED9C:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0811EF30
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ adds r2, r6, 0
+ bl SetMonData
+ adds r2, r6, 0
+ adds r2, 0x2E
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+ movs r0, 0
+ mov r8, r0
+ movs r0, 0x3B
+ adds r0, r6
+ mov r10, r0
+ adds r0, r6, 0
+ adds r0, 0x2B
+ str r0, [sp, 0x20]
+ adds r0, 0x19
+ str r0, [sp, 0x28]
+ adds r0, 0x4
+ str r0, [sp, 0x2C]
+ adds r0, 0x4
+ str r0, [sp, 0x30]
+ subs r0, 0x22
+ str r0, [sp, 0x1C]
+ subs r0, 0x2
+ str r0, [sp, 0x18]
+ adds r0, 0x4
+ str r0, [sp, 0x24]
+ adds r0, r6, 0x2
+ str r0, [sp, 0x4]
+ adds r0, r6, 0x4
+ str r0, [sp, 0x8]
+ adds r0, r6, 0x6
+ str r0, [sp, 0xC]
+ adds r0, 0x2
+ str r0, [sp, 0x10]
+ adds r0, 0x2
+ str r0, [sp, 0x14]
+ mov r9, r4
+ adds r7, r6, 0
+ adds r7, 0x24
+ adds r4, r6, 0
+ adds r4, 0xC
+_0811EE02:
+ mov r1, r8
+ adds r1, 0xD
+ mov r0, r9
+ adds r2, r4, 0
+ bl SetMonData
+ mov r1, r8
+ adds r1, 0x11
+ mov r0, r9
+ adds r2, r7, 0
+ bl SetMonData
+ adds r7, 0x1
+ adds r4, 0x2
+ movs r0, 0x1
+ add r8, r0
+ mov r0, r8
+ cmp r0, 0x3
+ ble _0811EE02
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0811EF30
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ mov r2, r10
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x20
+ ldr r2, [sp, 0x20]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x19
+ ldr r2, [sp, 0x28]
+ bl SetMonData
+ ldrb r0, [r6, 0x14]
+ lsls r0, 27
+ lsrs r0, 27
+ mov r1, sp
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x27
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrh r0, [r6, 0x14]
+ lsls r0, 22
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x28
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrb r0, [r6, 0x15]
+ lsls r0, 25
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x29
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldr r0, [r6, 0x14]
+ lsls r0, 12
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x2A
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrh r0, [r6, 0x16]
+ lsls r0, 23
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x2B
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrb r0, [r6, 0x17]
+ lsls r0, 26
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x2C
+ mov r2, sp
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0
+ ldr r2, [sp, 0x2C]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x37
+ ldr r2, [sp, 0x30]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x38
+ ldr r2, [sp, 0x1C]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x39
+ ldr r2, [sp, 0x18]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3A
+ ldr r2, [sp, 0x24]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3B
+ ldr r2, [sp, 0x4]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3C
+ ldr r2, [sp, 0x8]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3D
+ ldr r2, [sp, 0xC]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3E
+ ldr r2, [sp, 0x10]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3F
+ ldr r2, [sp, 0x14]
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811EF30: .4byte gPlayerParty
+_0811EF34:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EF4C
+ adds r0, r1
+ ldr r1, _0811EF50
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0xB
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811EF4C: .4byte gPlayerParty
+_0811EF50: .4byte gUnknown_02024A60
+_0811EF54:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EF6C
+ adds r0, r1
+ ldr r1, _0811EF70
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0xC
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811EF6C: .4byte gPlayerParty
+_0811EF70: .4byte gUnknown_02024A60
+_0811EF74:
+ movs r0, 0
+ mov r8, r0
+ movs r0, 0xC
+ adds r0, r3
+ mov r9, r0
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0811EFC8
+ adds r7, r1, r0
+ adds r6, r3, 0
+ adds r6, 0x8
+ adds r4, r3, 0
+_0811EF8E:
+ mov r1, r8
+ adds r1, 0xD
+ adds r0, r7, 0
+ adds r2, r4, 0
+ bl SetMonData
+ mov r1, r8
+ adds r1, 0x11
+ adds r0, r7, 0
+ adds r2, r6, 0
+ bl SetMonData
+ adds r6, 0x1
+ adds r4, 0x2
+ movs r0, 0x1
+ add r8, r0
+ mov r0, r8
+ cmp r0, 0x3
+ ble _0811EF8E
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EFC8
+ adds r0, r1
+ movs r1, 0x15
+ mov r2, r9
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811EFC8: .4byte gPlayerParty
+_0811EFCC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811EFE8
+ adds r0, r1
+ ldr r3, _0811EFEC
+ ldr r1, _0811EFF0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _0811F070
+ .align 2, 0
+_0811EFE8: .4byte gPlayerParty
+_0811EFEC: .4byte gUnknown_02023A60
+_0811EFF0: .4byte gUnknown_02024A60
+_0811EFF4:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0811F050
+ adds r4, r0
+ ldr r5, _0811F054
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r2, r7
+ adds r0, r4, 0
+ movs r1, 0x11
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x1
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x12
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x2
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x13
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x3
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x14
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x4
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F050: .4byte gPlayerParty
+_0811F054: .4byte gUnknown_02024A60
+_0811F058:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F07C
+ adds r0, r1
+ ldr r3, _0811F080
+ ldr r1, _0811F084
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x8
+_0811F070:
+ adds r3, 0x3
+ adds r2, r3
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F07C: .4byte gPlayerParty
+_0811F080: .4byte gUnknown_02023A60
+_0811F084: .4byte gUnknown_02024A60
+_0811F088:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F0A0
+ adds r0, r1
+ ldr r1, _0811F0A4
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F0A0: .4byte gPlayerParty
+_0811F0A4: .4byte gUnknown_02024A60
+_0811F0A8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F0C0
+ adds r0, r1
+ ldr r1, _0811F0C4
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x19
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F0C0: .4byte gPlayerParty
+_0811F0C4: .4byte gUnknown_02024A60
+_0811F0C8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F0E0
+ adds r0, r1
+ ldr r1, _0811F0E4
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1A
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F0E0: .4byte gPlayerParty
+_0811F0E4: .4byte gUnknown_02024A60
+_0811F0E8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F100
+ adds r0, r1
+ ldr r1, _0811F104
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1B
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F100: .4byte gPlayerParty
+_0811F104: .4byte gUnknown_02024A60
+_0811F108:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F120
+ adds r0, r1
+ ldr r1, _0811F124
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1C
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F120: .4byte gPlayerParty
+_0811F124: .4byte gUnknown_02024A60
+_0811F128:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F140
+ adds r0, r1
+ ldr r1, _0811F144
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1D
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F140: .4byte gPlayerParty
+_0811F144: .4byte gUnknown_02024A60
+_0811F148:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F160
+ adds r0, r1
+ ldr r1, _0811F164
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1E
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F160: .4byte gPlayerParty
+_0811F164: .4byte gUnknown_02024A60
+_0811F168:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F180
+ adds r0, r1
+ ldr r1, _0811F184
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1F
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F180: .4byte gPlayerParty
+_0811F184: .4byte gUnknown_02024A60
+_0811F188:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F1A0
+ adds r0, r1
+ ldr r1, _0811F1A4
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x20
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F1A0: .4byte gPlayerParty
+_0811F1A4: .4byte gUnknown_02024A60
+_0811F1A8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F1C0
+ adds r0, r1
+ ldr r1, _0811F1C4
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x22
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F1C0: .4byte gPlayerParty
+_0811F1C4: .4byte gUnknown_02024A60
+_0811F1C8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F1E0
+ adds r0, r1
+ ldr r1, _0811F1E4
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x23
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F1E0: .4byte gPlayerParty
+_0811F1E4: .4byte gUnknown_02024A60
+_0811F1E8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F200
+ adds r0, r1
+ ldr r1, _0811F204
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x24
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F200: .4byte gPlayerParty
+_0811F204: .4byte gUnknown_02024A60
+_0811F208:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F220
+ adds r0, r1
+ ldr r1, _0811F224
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x25
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F220: .4byte gPlayerParty
+_0811F224: .4byte gUnknown_02024A60
+_0811F228:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F240
+ adds r0, r1
+ ldr r1, _0811F244
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x26
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F240: .4byte gPlayerParty
+_0811F244: .4byte gUnknown_02024A60
+_0811F248:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0811F2B0
+ adds r4, r0
+ ldr r5, _0811F2B4
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r2, r7
+ adds r0, r4, 0
+ movs r1, 0x27
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x1
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x28
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x2
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x29
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x3
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x4
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x2B
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x5
+ adds r2, r0
+ adds r0, r4, 0
+ b _0811F368
+ .align 2, 0
+_0811F2B0: .4byte gPlayerParty
+_0811F2B4: .4byte gUnknown_02024A60
+_0811F2B8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F2D0
+ adds r0, r1
+ ldr r1, _0811F2D4
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x27
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F2D0: .4byte gPlayerParty
+_0811F2D4: .4byte gUnknown_02024A60
+_0811F2D8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F2F0
+ adds r0, r1
+ ldr r1, _0811F2F4
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x28
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F2F0: .4byte gPlayerParty
+_0811F2F4: .4byte gUnknown_02024A60
+_0811F2F8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F310
+ adds r0, r1
+ ldr r1, _0811F314
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x29
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F310: .4byte gPlayerParty
+_0811F314: .4byte gUnknown_02024A60
+_0811F318:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F330
+ adds r0, r1
+ ldr r1, _0811F334
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x2A
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F330: .4byte gPlayerParty
+_0811F334: .4byte gUnknown_02024A60
+_0811F338:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F350
+ adds r0, r1
+ ldr r1, _0811F354
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x2B
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F350: .4byte gPlayerParty
+_0811F354: .4byte gUnknown_02024A60
+_0811F358:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F370
+ adds r0, r1
+ ldr r1, _0811F374
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+_0811F368:
+ movs r1, 0x2C
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F370: .4byte gPlayerParty
+_0811F374: .4byte gUnknown_02024A60
+_0811F378:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F390
+ adds r0, r1
+ ldr r1, _0811F394
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F390: .4byte gPlayerParty
+_0811F394: .4byte gUnknown_02024A60
+_0811F398:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F3B0
+ adds r0, r1
+ ldr r1, _0811F3B4
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x9
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F3B0: .4byte gPlayerParty
+_0811F3B4: .4byte gUnknown_02024A60
+_0811F3B8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F3D0
+ adds r0, r1
+ ldr r1, _0811F3D4
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x37
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F3D0: .4byte gPlayerParty
+_0811F3D4: .4byte gUnknown_02024A60
+_0811F3D8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F3F0
+ adds r0, r1
+ ldr r1, _0811F3F4
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x38
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F3F0: .4byte gPlayerParty
+_0811F3F4: .4byte gUnknown_02024A60
+_0811F3F8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F410
+ adds r0, r1
+ ldr r1, _0811F414
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x39
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F410: .4byte gPlayerParty
+_0811F414: .4byte gUnknown_02024A60
+_0811F418:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F430
+ adds r0, r1
+ ldr r1, _0811F434
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3A
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F430: .4byte gPlayerParty
+_0811F434: .4byte gUnknown_02024A60
+_0811F438:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F450
+ adds r0, r1
+ ldr r1, _0811F454
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3B
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F450: .4byte gPlayerParty
+_0811F454: .4byte gUnknown_02024A60
+_0811F458:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F470
+ adds r0, r1
+ ldr r1, _0811F474
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3C
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F470: .4byte gPlayerParty
+_0811F474: .4byte gUnknown_02024A60
+_0811F478:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F490
+ adds r0, r1
+ ldr r1, _0811F494
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3D
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F490: .4byte gPlayerParty
+_0811F494: .4byte gUnknown_02024A60
+_0811F498:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F4B0
+ adds r0, r1
+ ldr r1, _0811F4B4
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3E
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F4B0: .4byte gPlayerParty
+_0811F4B4: .4byte gUnknown_02024A60
+_0811F4B8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F4D0
+ adds r0, r1
+ ldr r1, _0811F4D4
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3F
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F4D0: .4byte gPlayerParty
+_0811F4D4: .4byte gUnknown_02024A60
+_0811F4D8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F4F0
+ adds r0, r1
+ ldr r1, _0811F4F4
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x16
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F4F0: .4byte gPlayerParty
+_0811F4F4: .4byte gUnknown_02024A60
+_0811F4F8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F510
+ adds r0, r1
+ ldr r1, _0811F514
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x17
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F510: .4byte gPlayerParty
+_0811F514: .4byte gUnknown_02024A60
+_0811F518:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F530
+ adds r0, r1
+ ldr r1, _0811F534
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x18
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F530: .4byte gPlayerParty
+_0811F534: .4byte gUnknown_02024A60
+_0811F538:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F550
+ adds r0, r1
+ ldr r1, _0811F554
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x21
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F550: .4byte gPlayerParty
+_0811F554: .4byte gUnknown_02024A60
+_0811F558:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F570
+ adds r0, r1
+ ldr r1, _0811F574
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x2F
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F570: .4byte gPlayerParty
+_0811F574: .4byte gUnknown_02024A60
+_0811F578:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F590
+ adds r0, r1
+ ldr r1, _0811F594
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x30
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F590: .4byte gPlayerParty
+_0811F594: .4byte gUnknown_02024A60
+_0811F598:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F5B0
+ adds r0, r1
+ ldr r1, _0811F5B4
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x32
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F5B0: .4byte gPlayerParty
+_0811F5B4: .4byte gUnknown_02024A60
+_0811F5B8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F5D0
+ adds r0, r1
+ ldr r1, _0811F5D4
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x33
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F5D0: .4byte gPlayerParty
+_0811F5D4: .4byte gUnknown_02024A60
+_0811F5D8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F5F0
+ adds r0, r1
+ ldr r1, _0811F5F4
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x34
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F5F0: .4byte gPlayerParty
+_0811F5F4: .4byte gUnknown_02024A60
+_0811F5F8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F610
+ adds r0, r1
+ ldr r1, _0811F614
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x35
+ bl SetMonData
+ b _0811F62E
+ .align 2, 0
+_0811F610: .4byte gPlayerParty
+_0811F614: .4byte gUnknown_02024A60
+_0811F618:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0811F658
+ adds r0, r1
+ ldr r1, _0811F65C
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x36
+ bl SetMonData
+_0811F62E:
+ ldr r2, _0811F660
+ ldr r0, _0811F65C
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _0811F658
+ adds r0, r2
+ bl sub_80324F8
+ add sp, 0x34
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811F658: .4byte gPlayerParty
+_0811F65C: .4byte gUnknown_02024A60
+_0811F660: .4byte gUnknown_02024A6A
+ thumb_func_end sub_811EC68
+
+ thumb_func_start sub_811F664
+sub_811F664: @ 811F664
+ push {r4-r7,lr}
+ ldr r1, _0811F6C8
+ ldr r7, _0811F6CC
+ ldrb r2, [r7]
+ lsls r0, r2, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ adds r3, r1, 0
+ muls r3, r0
+ ldr r4, _0811F6D0
+ lsls r2, 9
+ adds r0, r4, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ ldr r1, _0811F6D4
+ adds r0, r1
+ adds r5, r3, r0
+ movs r3, 0
+ adds r0, r4, 0x2
+ adds r2, r0
+ ldrb r2, [r2]
+ cmp r3, r2
+ bcs _0811F6BC
+ adds r6, r4, 0
+ adds r2, r7, 0
+ adds r4, r0, 0
+_0811F69A:
+ adds r1, r5, r3
+ ldrb r0, [r2]
+ lsls r0, 9
+ adds r0, 0x3
+ adds r0, r3, r0
+ adds r0, r6
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r0, [r2]
+ lsls r0, 9
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r3, r0
+ bcc _0811F69A
+_0811F6BC:
+ bl dp01_tbl3_exec_completed
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811F6C8: .4byte gUnknown_02024A6A
+_0811F6CC: .4byte gUnknown_02024A60
+_0811F6D0: .4byte gUnknown_02023A60
+_0811F6D4: .4byte gPlayerParty
+ thumb_func_end sub_811F664
+
+ thumb_func_start sub_811F6D8
+sub_811F6D8: @ 811F6D8
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r0, _0811F7CC
+ mov r8, r0
+ ldr r6, _0811F7D0
+ ldrb r1, [r6]
+ lsls r0, r1, 1
+ add r0, r8
+ ldrh r0, [r0]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _0811F7D4
+ adds r0, r4
+ bl sub_80318FC
+ ldrb r0, [r6]
+ lsls r0, 1
+ add r0, r8
+ ldrh r0, [r0]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0xB
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r6]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _0811F7D8
+ mov r8, r0
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldrb r0, [r6]
+ bl sub_8077F68
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r6]
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r8
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r4, _0811F7DC
+ ldrb r1, [r6]
+ adds r1, r4
+ strb r0, [r1]
+ ldr r5, _0811F7E0
+ ldrb r0, [r6]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _0811F7E4
+ strh r1, [r0, 0x24]
+ ldrb r2, [r6]
+ adds r0, r2, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x2E]
+ ldrb r3, [r6]
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ lsls r3, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r2, [r6]
+ adds r4, r2, r4
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _0811F7E8
+ adds r2, r1
+ ldrb r1, [r2]
+ bl StartSpriteAnim
+ ldr r1, _0811F7EC
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811F7F0
+ str r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811F7CC: .4byte gUnknown_02024A6A
+_0811F7D0: .4byte gUnknown_02024A60
+_0811F7D4: .4byte gPlayerParty
+_0811F7D8: .4byte gUnknown_02024E8C
+_0811F7DC: .4byte gUnknown_02024BE0
+_0811F7E0: .4byte gSprites
+_0811F7E4: .4byte 0x0000ff10
+_0811F7E8: .4byte gUnknown_02024E84
+_0811F7EC: .4byte gUnknown_03004330
+_0811F7F0: .4byte sub_811DDE8
+ thumb_func_end sub_811F6D8
+
+ thumb_func_start sub_811F7F4
+sub_811F7F4: @ 811F7F4
+ push {r4-r6,lr}
+ ldr r5, _0811F84C
+ ldrb r0, [r5]
+ ldr r4, _0811F850
+ lsls r1, r0, 9
+ adds r6, r4, 0x2
+ adds r1, r6
+ ldrb r1, [r1]
+ bl sub_8032AA8
+ ldr r2, _0811F854
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r2
+ lsls r0, 9
+ adds r4, 0x1
+ adds r0, r4
+ ldrb r0, [r0]
+ strh r0, [r1]
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _0811F858
+ adds r0, r2
+ bl sub_80318FC
+ ldrb r0, [r5]
+ lsls r1, r0, 9
+ adds r1, r6
+ ldrb r1, [r1]
+ bl sub_811F864
+ ldr r1, _0811F85C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811F860
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811F84C: .4byte gUnknown_02024A60
+_0811F850: .4byte gUnknown_02023A60
+_0811F854: .4byte gUnknown_02024A6A
+_0811F858: .4byte gPlayerParty
+_0811F85C: .4byte gUnknown_03004330
+_0811F860: .4byte sub_811E1BC
+ thumb_func_end sub_811F7F4
+
+ thumb_func_start sub_811F864
+sub_811F864: @ 811F864
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl sub_8032AA8
+ ldr r0, _0811F9A8
+ lsls r2, r6, 1
+ adds r2, r0
+ ldr r0, _0811F9AC
+ lsls r1, r6, 9
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ strh r0, [r2]
+ ldrh r1, [r2]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0811F9B0
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ mov r8, r0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, _0811F9B4
+ bl object_new_hidden_with_callback
+ ldr r1, _0811F9B8
+ mov r9, r1
+ add r9, r6
+ mov r1, r9
+ strb r0, [r1]
+ adds r0, r6, 0
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _0811F9BC
+ mov r10, r0
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ bl sub_8077F68
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r10
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r4, _0811F9C0
+ adds r4, r6, r4
+ strb r0, [r4]
+ ldr r5, _0811F9C4
+ mov r0, r9
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r4]
+ strh r1, [r0, 0x30]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x2E]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x32]
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ lsls r3, r6, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _0811F9C8
+ adds r6, r1
+ ldrb r1, [r6]
+ bl StartSpriteAnim
+ ldrb r1, [r4]
+ 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]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r5, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _0811F9CC
+ str r1, [r0]
+ movs r0, 0
+ movs r1, 0xFF
+ bl sub_8046400
+ mov r1, r9
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r5
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x2E]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811F9A8: .4byte gUnknown_02024A6A
+_0811F9AC: .4byte gUnknown_02023A60
+_0811F9B0: .4byte gPlayerParty
+_0811F9B4: .4byte sub_80312F0
+_0811F9B8: .4byte gUnknown_0300434C
+_0811F9BC: .4byte gUnknown_02024E8C
+_0811F9C0: .4byte gUnknown_02024BE0
+_0811F9C4: .4byte gSprites
+_0811F9C8: .4byte gUnknown_02024E84
+_0811F9CC: .4byte SpriteCallbackDummy
+ thumb_func_end sub_811F864
+
+ thumb_func_start sub_811F9D0
+sub_811F9D0: @ 811F9D0
+ push {r4-r6,lr}
+ ldr r1, _0811FA00
+ ldr r6, _0811FA04
+ ldrb r2, [r6]
+ lsls r0, r2, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r3, [r0]
+ cmp r3, 0
+ bne _0811FA14
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _0811FA08
+ adds r0, r1
+ strb r3, [r0, 0x4]
+ ldr r1, _0811FA0C
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811FA10
+ str r1, [r0]
+ b _0811FA4A
+ .align 2, 0
+_0811FA00: .4byte gUnknown_02023A60
+_0811FA04: .4byte gUnknown_02024A60
+_0811FA08: .4byte 0x02017810
+_0811FA0C: .4byte gUnknown_03004330
+_0811FA10: .4byte sub_811FA5C
+_0811FA14:
+ ldr r5, _0811FA50
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _0811FA54
+ adds r0, r4
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ ldr r1, _0811FA58
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl dp01_tbl3_exec_completed
+_0811FA4A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811FA50: .4byte gUnknown_02024BE0
+_0811FA54: .4byte gSprites
+_0811FA58: .4byte gUnknown_03004340
+ thumb_func_end sub_811F9D0
+
+ thumb_func_start sub_811FA5C
+sub_811FA5C: @ 811FA5C
+ push {r4,r5,lr}
+ ldr r5, _0811FA78
+ ldrb r2, [r5]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r4, _0811FA7C
+ adds r3, r0, r4
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ beq _0811FA80
+ cmp r0, 0x1
+ beq _0811FAAC
+ b _0811FAD4
+ .align 2, 0
+_0811FA78: .4byte gUnknown_02024A60
+_0811FA7C: .4byte 0x02017810
+_0811FA80:
+ lsls r0, r2, 2
+ adds r1, r4, 0
+ subs r1, 0x10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0811FA9C
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_0811FA9C:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _0811FAD4
+_0811FAAC:
+ ldrb r1, [r3]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0811FAD4
+ strb r0, [r3, 0x4]
+ ldrb r2, [r5]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x1
+ bl move_anim_start_t4
+ ldr r1, _0811FADC
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811FAE0
+ str r1, [r0]
+_0811FAD4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811FADC: .4byte gUnknown_03004330
+_0811FAE0: .4byte sub_811DF34
+ thumb_func_end sub_811FA5C
+
+ thumb_func_start sub_811FAE4
+sub_811FAE4: @ 811FAE4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r0, _0811FB14
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0811FB24
+ ldr r6, _0811FB18
+ ldrb r0, [r6]
+ bl battle_get_per_side_status
+ movs r1, 0x2
+ ands r1, r0
+ ldr r5, _0811FB1C
+ cmp r1, 0
+ beq _0811FB0A
+ movs r5, 0x10
+_0811FB0A:
+ ldr r4, _0811FB20
+ ldrb r0, [r6]
+ bl sub_803FC34
+ b _0811FB34
+ .align 2, 0
+_0811FB14: .4byte gUnknown_020239F8
+_0811FB18: .4byte gUnknown_02024A60
+_0811FB1C: .4byte 0x0000fff0
+_0811FB20: .4byte gLinkPlayers
+_0811FB24:
+ movs r5, 0
+ ldr r4, _0811FC08
+ bl GetMultiplayerId
+ movs r1, 0x1
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+_0811FB34:
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r4, [r1, 0x13]
+ ldr r6, _0811FC0C
+ ldrb r1, [r6]
+ adds r0, r4, 0
+ bl sub_8031AF4
+ ldrb r0, [r6]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl GetMonSpriteTemplate_803C5A0
+ ldr r0, _0811FC10
+ mov r8, r0
+ lsls r5, 16
+ movs r0, 0xA0
+ lsls r0, 15
+ adds r5, r0
+ asrs r5, 16
+ ldr r0, _0811FC14
+ lsls r4, 2
+ adds r4, r0
+ ldrb r0, [r4]
+ movs r4, 0x8
+ subs r4, r0
+ lsls r4, 18
+ movs r0, 0xA0
+ lsls r0, 15
+ adds r4, r0
+ asrs r4, 16
+ ldrb r0, [r6]
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r8
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r5, _0811FC18
+ ldrb r1, [r6]
+ adds r1, r5
+ strb r0, [r1]
+ ldr r4, _0811FC1C
+ ldrb r3, [r6]
+ adds r0, r3, r5
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ lsls r3, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0xF0
+ strh r1, [r0, 0x24]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _0811FC20
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _0811FC24
+ str r1, [r0]
+ ldr r1, _0811FC28
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811FC2C
+ str r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811FC08: .4byte gLinkPlayers
+_0811FC0C: .4byte gUnknown_02024A60
+_0811FC10: .4byte gUnknown_02024E8C
+_0811FC14: .4byte gTrainerBackPicCoords
+_0811FC18: .4byte gUnknown_02024BE0
+_0811FC1C: .4byte gSprites
+_0811FC20: .4byte 0x0000fffe
+_0811FC24: .4byte sub_80313A0
+_0811FC28: .4byte gUnknown_03004330
+_0811FC2C: .4byte sub_811DAE4
+ thumb_func_end sub_811FAE4
+
+ thumb_func_start sub_811FC30
+sub_811FC30: @ 811FC30
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811FC30
+
+ thumb_func_start sub_811FC3C
+sub_811FC3C: @ 811FC3C
+ push {r4-r6,lr}
+ ldr r6, _0811FCC8
+ ldr r4, _0811FCCC
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _0811FCD0
+ adds r0, r5
+ bl oamt_add_pos2_onto_pos1
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x23
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _0811FCD4
+ strh r1, [r0, 0x32]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0x36]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r5, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _0811FCD8
+ str r1, [r0]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _0811FCDC
+ bl oamt_set_x3A_32
+ ldr r1, _0811FCE0
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811FCE4
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811FCC8: .4byte gUnknown_02024BE0
+_0811FCCC: .4byte gUnknown_02024A60
+_0811FCD0: .4byte gSprites
+_0811FCD4: .4byte 0x0000ffd8
+_0811FCD8: .4byte sub_8078B34
+_0811FCDC: .4byte SpriteCallbackDummy
+_0811FCE0: .4byte gUnknown_03004330
+_0811FCE4: .4byte sub_811DB1C
+ thumb_func_end sub_811FC3C
+
+ thumb_func_start sub_811FCE8
+sub_811FCE8: @ 811FCE8
+ push {r4,r5,lr}
+ ldr r5, _0811FD2C
+ ldrb r2, [r5]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r4, _0811FD30
+ adds r3, r0, r4
+ ldrb r0, [r3, 0x4]
+ cmp r0, 0
+ bne _0811FD34
+ lsls r0, r2, 2
+ adds r1, r4, 0
+ subs r1, 0x10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0811FD1A
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_0811FD1A:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrb r0, [r1, 0x4]
+ adds r0, 0x1
+ strb r0, [r1, 0x4]
+ b _0811FDAA
+ .align 2, 0
+_0811FD2C: .4byte gUnknown_02024A60
+_0811FD30: .4byte 0x02017810
+_0811FD34:
+ ldrb r1, [r3]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _0811FDAA
+ strb r4, [r3, 0x4]
+ ldr r2, _0811FDB0
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _0811FDB4
+ adds r0, r2
+ bl sub_80324F8
+ movs r1, 0x40
+ negs r1, r1
+ movs r0, 0x10
+ bl PlaySE12WithPanning
+ ldr r2, _0811FDB8
+ ldr r3, _0811FDBC
+ ldrb r0, [r5]
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r4, [r0, 0x30]
+ ldrb r0, [r5]
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x5
+ strh r1, [r0, 0x32]
+ ldrb r0, [r5]
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, _0811FDC0
+ str r1, [r0]
+ ldr r1, _0811FDC4
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811FDC8
+ str r1, [r0]
+_0811FDAA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811FDB0: .4byte gUnknown_02024A6A
+_0811FDB4: .4byte gPlayerParty
+_0811FDB8: .4byte gSprites
+_0811FDBC: .4byte gUnknown_02024BE0
+_0811FDC0: .4byte sub_80105EC
+_0811FDC4: .4byte gUnknown_03004330
+_0811FDC8: .4byte sub_811DE98
+ thumb_func_end sub_811FCE8
+
+ thumb_func_start sub_811FDCC
+sub_811FDCC: @ 811FDCC
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811FDCC
+
+ thumb_func_start sub_811FDD8
+sub_811FDD8: @ 811FDD8
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811FDD8
+
+ thumb_func_start sub_811FDE4
+sub_811FDE4: @ 811FDE4
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811FDE4
+
+ thumb_func_start sub_811FDF0
+sub_811FDF0: @ 811FDF0
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811FDF0
+
+ thumb_func_start sub_811FDFC
+sub_811FDFC: @ 811FDFC
+ push {r4-r6,lr}
+ ldr r6, _0811FEE0
+ ldrb r0, [r6]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0811FE0E
+ b _0811FF1E
+_0811FE0E:
+ ldr r0, _0811FEE4
+ mov r12, r0
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r0, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ mov r1, r12
+ adds r1, 0x2
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ ldr r5, _0811FEE8
+ mov r1, r12
+ adds r1, 0x3
+ adds r2, r1
+ ldrb r1, [r2]
+ strb r1, [r5]
+ ldr r4, _0811FEEC
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x4
+ adds r1, r2, r1
+ ldrb r3, [r1]
+ mov r1, r12
+ adds r1, 0x5
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 8
+ orrs r3, r1
+ strh r3, [r4]
+ ldr r4, _0811FEF0
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x6
+ adds r1, r2, r1
+ ldrb r3, [r1]
+ mov r1, r12
+ adds r1, 0x7
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r3, r1
+ mov r1, r12
+ adds r1, 0x8
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 16
+ orrs r3, r1
+ mov r1, r12
+ adds r1, 0x9
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 24
+ orrs r3, r1
+ str r3, [r4]
+ ldr r3, _0811FEF4
+ ldrb r1, [r6]
+ lsls r1, 9
+ mov r2, r12
+ adds r2, 0xA
+ adds r1, r2
+ ldrb r1, [r1]
+ strb r1, [r3]
+ ldr r4, _0811FEF8
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0xC
+ adds r1, r2, r1
+ ldrb r3, [r1]
+ mov r1, r12
+ adds r1, 0xD
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 8
+ orrs r3, r1
+ strh r3, [r4]
+ ldr r3, _0811FEFC
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x10
+ adds r2, r1
+ str r2, [r3]
+ ldr r3, _0811FF00
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r3
+ ldr r2, [r2]
+ str r2, [r1]
+ ldrb r1, [r5]
+ bl sub_8031720
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _0811FF04
+ bl dp01_tbl3_exec_completed
+ b _0811FF1E
+ .align 2, 0
+_0811FEE0: .4byte gUnknown_02024A60
+_0811FEE4: .4byte gUnknown_02023A60
+_0811FEE8: .4byte gUnknown_0202F7C4
+_0811FEEC: .4byte gUnknown_0202F7BC
+_0811FEF0: .4byte gUnknown_0202F7B8
+_0811FEF4: .4byte gUnknown_0202F7BE
+_0811FEF8: .4byte gUnknown_0202F7C0
+_0811FEFC: .4byte gUnknown_0202F7B4
+_0811FF00: .4byte gUnknown_02024E70
+_0811FF04:
+ ldrb r1, [r6]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0811FF24
+ adds r0, r1
+ strb r2, [r0, 0x4]
+ ldr r1, _0811FF28
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0811FF2C
+ str r1, [r0]
+_0811FF1E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0811FF24: .4byte 0x02017810
+_0811FF28: .4byte gUnknown_03004330
+_0811FF2C: .4byte sub_811FF30
+ thumb_func_end sub_811FDFC
+
+ thumb_func_start sub_811FF30
+sub_811FF30: @ 811FF30
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r2, _0811FF74
+ ldr r5, _0811FF78
+ ldrb r3, [r5]
+ lsls r1, r3, 9
+ adds r0, r2, 0x1
+ mov r9, r0
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r6, r2, 0x2
+ mov r8, r6
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ lsls r0, 8
+ orrs r4, r0
+ adds r2, 0xB
+ adds r1, r2
+ ldrb r7, [r1]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r6, _0811FF7C
+ adds r0, r6
+ ldrb r2, [r0, 0x4]
+ cmp r2, 0x1
+ beq _0811FFBE
+ cmp r2, 0x1
+ bgt _0811FF80
+ cmp r2, 0
+ beq _0811FF8A
+ b _08120088
+ .align 2, 0
+_0811FF74: .4byte gUnknown_02023A60
+_0811FF78: .4byte gUnknown_02024A60
+_0811FF7C: .4byte 0x02017810
+_0811FF80:
+ cmp r2, 0x2
+ beq _0811FFE4
+ cmp r2, 0x3
+ beq _08120050
+ b _08120088
+_0811FF8A:
+ lsls r1, r3, 2
+ adds r0, r6, 0
+ subs r0, 0x10
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0xC
+ ands r0, r2
+ cmp r0, 0x4
+ bne _0811FFAE
+ movs r0, 0x8
+ orrs r0, r2
+ strb r0, [r1]
+ ldrb r2, [r5]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_0811FFAE:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _08120088
+_0811FFBE:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08120088
+ movs r0, 0
+ bl sub_80326EC
+ adds r0, r4, 0
+ bl move_anim_start_t1
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r0, 0x2
+ strb r0, [r1, 0x4]
+ b _08120088
+_0811FFE4:
+ ldr r0, _08120040
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _08120044
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08120088
+ movs r0, 0x1
+ bl sub_80326EC
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ adds r4, r6, 0
+ subs r4, 0x10
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0812002C
+ cmp r7, 0x1
+ bhi _0812002C
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x6
+ bl move_anim_start_t4
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r4
+ ldrb r2, [r0]
+ movs r1, 0x9
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+_0812002C:
+ ldr r0, _08120048
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0812004C
+ adds r0, r1
+ movs r1, 0x3
+ strb r1, [r0, 0x4]
+ b _08120088
+ .align 2, 0
+_08120040: .4byte gUnknown_0202F7AC
+_08120044: .4byte gUnknown_0202F7B1
+_08120048: .4byte gUnknown_02024A60
+_0812004C: .4byte 0x02017810
+_08120050:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08120088
+ bl sub_8031F24
+ ldrb r0, [r5]
+ lsls r2, r0, 9
+ mov r3, r9
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ add r2, r8
+ ldrb r2, [r2]
+ lsls r2, 8
+ orrs r1, r2
+ bl sub_80324BC
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strb r4, [r0, 0x4]
+ bl dp01_tbl3_exec_completed
+_08120088:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_811FF30
+
+ thumb_func_start sub_8120094
+sub_8120094: @ 8120094
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _081200D8
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _081200DC
+ strh r1, [r0]
+ ldr r4, _081200E0
+ ldrb r0, [r4]
+ lsls r0, 9
+ ldr r1, _081200E4
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_8120AA8
+ ldr r0, _081200E8
+ ldr r1, _081200EC
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _081200F0
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _081200F4
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081200D8: .4byte gUnknown_030042A4
+_081200DC: .4byte gUnknown_030042A0
+_081200E0: .4byte gUnknown_02024A60
+_081200E4: .4byte gUnknown_02023A62
+_081200E8: .4byte gUnknown_03004210
+_081200EC: .4byte gUnknown_020238CC
+_081200F0: .4byte gUnknown_03004330
+_081200F4: .4byte sub_811DFA0
+ thumb_func_end sub_8120094
+
+ thumb_func_start sub_81200F8
+sub_81200F8: @ 81200F8
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81200F8
+
+ thumb_func_start sub_8120104
+sub_8120104: @ 8120104
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120104
+
+ thumb_func_start sub_8120110
+sub_8120110: @ 8120110
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120110
+
+ thumb_func_start sub_812011C
+sub_812011C: @ 812011C
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812011C
+
+ thumb_func_start sub_8120128
+sub_8120128: @ 8120128
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120128
+
+ thumb_func_start sub_8120134
+sub_8120134: @ 8120134
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120134
+
+ thumb_func_start sub_8120140
+sub_8120140: @ 8120140
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120140
+
+ thumb_func_start sub_812014C
+sub_812014C: @ 812014C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ movs r0, 0
+ bl load_gfxc_health_bar
+ ldr r3, _081201C4
+ ldr r0, _081201C8
+ mov r9, r0
+ ldrb r4, [r0]
+ lsls r2, r4, 9
+ adds r0, r3, 0x2
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ adds r3, 0x3
+ adds r2, r3
+ ldrb r0, [r2]
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ asrs r7, r1, 16
+ ldr r0, _081201CC
+ cmp r7, r0
+ beq _081201DC
+ ldr r6, _081201D0
+ lsls r0, r4, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _081201D4
+ adds r0, r4
+ movs r1, 0x3A
+ bl GetMonData
+ mov r8, r0
+ mov r1, r9
+ ldrb r0, [r1]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x39
+ bl GetMonData
+ adds r3, r0, 0
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r1, _081201D8
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ mov r2, r8
+ bl sub_8043D84
+ b _08120206
+ .align 2, 0
+_081201C4: .4byte gUnknown_02023A60
+_081201C8: .4byte gUnknown_02024A60
+_081201CC: .4byte 0x00007fff
+_081201D0: .4byte gUnknown_02024A6A
+_081201D4: .4byte gPlayerParty
+_081201D8: .4byte gUnknown_03004340
+_081201DC:
+ ldr r1, _08120224
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08120228
+ adds r0, r1
+ movs r1, 0x3A
+ bl GetMonData
+ adds r2, r0, 0
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r1, _0812022C
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ movs r3, 0
+ bl sub_8043D84
+_08120206:
+ ldr r1, _08120230
+ ldr r0, _08120234
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08120238
+ str r1, [r0]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08120224: .4byte gUnknown_02024A6A
+_08120228: .4byte gPlayerParty
+_0812022C: .4byte gUnknown_03004340
+_08120230: .4byte gUnknown_03004330
+_08120234: .4byte gUnknown_02024A60
+_08120238: .4byte bx_t3_healthbar_update
+ thumb_func_end sub_812014C
+
+ thumb_func_start sub_812023C
+sub_812023C: @ 812023C
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812023C
+
+ thumb_func_start sub_8120248
+sub_8120248: @ 8120248
+ push {r4,lr}
+ ldr r4, _081202A0
+ ldrb r0, [r4]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08120298
+ ldr r0, _081202A4
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r2, _081202A8
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _081202AC
+ adds r1, r2
+ movs r2, 0x9
+ bl sub_8045A5C
+ ldrb r0, [r4]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _081202B0
+ adds r1, r0
+ ldrb r2, [r1]
+ movs r0, 0x11
+ negs r0, r0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r1, _081202B4
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _081202B8
+ str r1, [r0]
+_08120298:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081202A0: .4byte gUnknown_02024A60
+_081202A4: .4byte gUnknown_03004340
+_081202A8: .4byte gUnknown_02024A6A
+_081202AC: .4byte gPlayerParty
+_081202B0: .4byte 0x02017810
+_081202B4: .4byte gUnknown_03004330
+_081202B8: .4byte sub_811E38C
+ thumb_func_end sub_8120248
+
+ thumb_func_start sub_81202BC
+sub_81202BC: @ 81202BC
+ push {r4,r5,lr}
+ ldr r5, _08120314
+ ldrb r0, [r5]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812030C
+ ldr r4, _08120318
+ ldrb r3, [r5]
+ lsls r3, 9
+ adds r0, r4, 0x1
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ adds r1, r4, 0x2
+ adds r1, r3, r1
+ ldrb r1, [r1]
+ adds r2, r4, 0x3
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ lsls r2, 8
+ orrs r1, r2
+ adds r2, r4, 0x4
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ lsls r2, 16
+ orrs r1, r2
+ adds r4, 0x5
+ adds r3, r4
+ ldrb r2, [r3]
+ lsls r2, 24
+ orrs r1, r2
+ bl move_anim_start_t2_for_situation
+ ldr r1, _0812031C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08120320
+ str r1, [r0]
+_0812030C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08120314: .4byte gUnknown_02024A60
+_08120318: .4byte gUnknown_02023A60
+_0812031C: .4byte gUnknown_03004330
+_08120320: .4byte sub_811E38C
+ thumb_func_end sub_81202BC
+
+ thumb_func_start sub_8120324
+sub_8120324: @ 8120324
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120324
+
+ thumb_func_start sub_8120330
+sub_8120330: @ 8120330
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120330
+
+ thumb_func_start sub_812033C
+sub_812033C: @ 812033C
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812033C
+
+ thumb_func_start sub_8120348
+sub_8120348: @ 8120348
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120348
+
+ thumb_func_start sub_8120354
+sub_8120354: @ 8120354
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120354
+
+ thumb_func_start sub_8120360
+sub_8120360: @ 8120360
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120360
+
+ thumb_func_start sub_812036C
+sub_812036C: @ 812036C
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812036C
+
+ thumb_func_start sub_8120378
+sub_8120378: @ 8120378
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120378
+
+ thumb_func_start sub_8120384
+sub_8120384: @ 8120384
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120384
+
+ thumb_func_start sub_8120390
+sub_8120390: @ 8120390
+ push {lr}
+ ldr r2, _081203A8
+ ldrb r1, [r2]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081203A8: .4byte gUnknown_020238C8
+ thumb_func_end sub_8120390
+
+ thumb_func_start sub_81203AC
+sub_81203AC: @ 81203AC
+ push {lr}
+ ldr r3, _081203D8
+ ldr r1, _081203DC
+ ldr r0, _081203E0
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0x7F
+ ands r1, r0
+ ldrb r2, [r3]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081203D8: .4byte gUnknown_020238C8
+_081203DC: .4byte gUnknown_02023A60
+_081203E0: .4byte gUnknown_02024A60
+ thumb_func_end sub_81203AC
+
+ thumb_func_start sub_81203E4
+sub_81203E4: @ 81203E4
+ push {lr}
+ ldr r2, _081203F8
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081203F8: .4byte gUnknown_020238C8
+ thumb_func_end sub_81203E4
+
+ thumb_func_start sub_81203FC
+sub_81203FC: @ 81203FC
+ push {lr}
+ ldr r3, _08120420
+ ldr r1, [r3]
+ lsls r1, 24
+ lsrs r1, 31
+ movs r0, 0x1
+ eors r1, r0
+ lsls r1, 7
+ ldrb r2, [r3]
+ movs r0, 0x7F
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08120420: .4byte gUnknown_020238C8
+ thumb_func_end sub_81203FC
+
+ thumb_func_start dp01t_29_3_blink
+dp01t_29_3_blink: @ 8120424
+ push {r4,lr}
+ ldr r3, _0812044C
+ ldr r2, _08120450
+ ldr r4, _08120454
+ ldrb r0, [r4]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ bge _08120458
+ bl dp01_tbl3_exec_completed
+ b _08120482
+ .align 2, 0
+_0812044C: .4byte gSprites
+_08120450: .4byte gUnknown_02024BE0
+_08120454: .4byte gUnknown_02024A60
+_08120458:
+ ldr r1, _08120488
+ movs r0, 0x1
+ strb r0, [r1]
+ ldrb r0, [r4]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x30]
+ ldrb r0, [r4]
+ bl sub_8047858
+ ldr r1, _0812048C
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08120490
+ str r1, [r0]
+_08120482:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08120488: .4byte gUnknown_02024E6D
+_0812048C: .4byte gUnknown_03004330
+_08120490: .4byte bx_blink_t3
+ thumb_func_end dp01t_29_3_blink
+
+ thumb_func_start sub_8120494
+sub_8120494: @ 8120494
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120494
+
+ thumb_func_start sub_81204A0
+sub_81204A0: @ 81204A0
+ push {r4,lr}
+ ldr r4, _081204DC
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r3, 0x3F
+ cmp r0, 0
+ bne _081204B4
+ movs r3, 0xC0
+_081204B4:
+ ldr r2, _081204E0
+ ldrb r1, [r4]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ lsls r1, r3, 24
+ asrs r1, 24
+ bl PlaySE12WithPanning
+ bl dp01_tbl3_exec_completed
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081204DC: .4byte gUnknown_02024A60
+_081204E0: .4byte gUnknown_02023A60
+ thumb_func_end sub_81204A0
+
+ thumb_func_start sub_81204E4
+sub_81204E4: @ 81204E4
+ push {lr}
+ ldr r2, _0812050C
+ ldr r0, _08120510
+ ldrb r1, [r0]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ bl PlayFanfare
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812050C: .4byte gUnknown_02023A60
+_08120510: .4byte gUnknown_02024A60
+ thumb_func_end sub_81204E4
+
+ thumb_func_start sub_8120514
+sub_8120514: @ 8120514
+ push {lr}
+ ldr r1, _08120548
+ ldr r0, _0812054C
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08120550
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x19
+ negs r1, r1
+ movs r2, 0x5
+ bl PlayCry3
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08120548: .4byte gUnknown_02024A6A
+_0812054C: .4byte gUnknown_02024A60
+_08120550: .4byte gPlayerParty
+ thumb_func_end sub_8120514
+
+ thumb_func_start dp01t_2E_3_battle_intro
+dp01t_2E_3_battle_intro: @ 8120554
+ push {lr}
+ ldr r1, _0812057C
+ ldr r0, _08120580
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80E43C0
+ ldr r2, _08120584
+ ldrh r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812057C: .4byte gUnknown_02023A60
+_08120580: .4byte gUnknown_02024A60
+_08120584: .4byte gUnknown_02024DE8
+ thumb_func_end dp01t_2E_3_battle_intro
+
+ thumb_func_start sub_8120588
+sub_8120588: @ 8120588
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r6, _081206DC
+ ldr r7, _081206E0
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _081206E4
+ adds r0, r5
+ bl oamt_add_pos2_onto_pos1
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x32
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _081206E8
+ strh r1, [r0, 0x32]
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0x36]
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r5, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _081206EC
+ str r1, [r0]
+ ldrb r2, [r7]
+ adds r0, r2, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x38]
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _081206F0
+ bl oamt_set_x3A_32
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r0, _081206F4
+ bl AllocSpritePalette
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _081206F8
+ mov r8, r0
+ ldrb r0, [r7]
+ bl sub_803FC34
+ ldr r2, _081206FC
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x13]
+ lsls r0, 3
+ add r0, r8
+ ldr r0, [r0]
+ lsls r4, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r4, r2
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r4
+ strb r0, [r1, 0x5]
+ ldr r0, _08120700
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08120704
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ ldrb r0, [r7]
+ strh r0, [r1, 0x8]
+ ldrb r3, [r7]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r2, _08120708
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081206BA
+ ldr r0, _0812070C
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ ldr r1, _08120710
+ str r1, [r0]
+_081206BA:
+ adds r2, 0x30
+ ldrb r0, [r2, 0x9]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, _08120714
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08120718
+ str r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081206DC: .4byte gUnknown_02024BE0
+_081206E0: .4byte gUnknown_02024A60
+_081206E4: .4byte gSprites
+_081206E8: .4byte 0x0000ffd8
+_081206EC: .4byte sub_8078B34
+_081206F0: .4byte sub_8030E38
+_081206F4: .4byte 0x0000d6f9
+_081206F8: .4byte gTrainerBackPicPaletteTable
+_081206FC: .4byte gLinkPlayers
+_08120700: .4byte sub_812071C
+_08120704: .4byte gTasks
+_08120708: .4byte 0x02017810
+_0812070C: .4byte gUnknown_02024E68
+_08120710: .4byte sub_8044CA0
+_08120714: .4byte gUnknown_03004330
+_08120718: .4byte nullsub_74
+ thumb_func_end sub_8120588
+
+ thumb_func_start sub_812071C
+sub_812071C: @ 812071C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, _08120744
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r2, [r1, 0xA]
+ movs r3, 0xA
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x17
+ bgt _08120748
+ adds r0, r2, 0x1
+ strh r0, [r1, 0xA]
+ b _08120804
+ .align 2, 0
+_08120744: .4byte gTasks
+_08120748:
+ ldr r7, _08120788
+ ldrb r0, [r7]
+ mov r9, r0
+ ldrh r0, [r1, 0x8]
+ strb r0, [r7]
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _08120768
+ ldr r0, _0812078C
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08120798
+_08120768:
+ ldr r0, _08120790
+ ldrb r1, [r7]
+ lsls r2, r1, 9
+ adds r0, 0x1
+ adds r2, r0
+ ldr r0, _08120794
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ strb r0, [r2]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_811F864
+ b _081207EC
+ .align 2, 0
+_08120788: .4byte gUnknown_02024A60
+_0812078C: .4byte gUnknown_020239F8
+_08120790: .4byte gUnknown_02023A60
+_08120794: .4byte gUnknown_02024A6A
+_08120798:
+ ldr r4, _08120810
+ ldrb r0, [r7]
+ lsls r1, r0, 9
+ adds r4, 0x1
+ adds r1, r4
+ ldr r5, _08120814
+ lsls r0, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_811F864
+ ldrb r0, [r7]
+ movs r6, 0x2
+ eors r0, r6
+ strb r0, [r7]
+ ldrb r0, [r7]
+ lsls r1, r0, 9
+ adds r1, r4
+ lsls r0, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ strb r0, [r1]
+ ldrb r1, [r7]
+ lsls r0, r1, 1
+ adds r0, r5
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _08120818
+ adds r0, r2
+ bl sub_80318FC
+ ldrb r0, [r7]
+ movs r1, 0
+ bl sub_811F864
+ ldrb r0, [r7]
+ eors r0, r6
+ strb r0, [r7]
+_081207EC:
+ ldr r1, _0812081C
+ ldr r2, _08120820
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08120824
+ str r1, [r0]
+ mov r3, r9
+ strb r3, [r2]
+ mov r0, r8
+ bl DestroyTask
+_08120804:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08120810: .4byte gUnknown_02023A60
+_08120814: .4byte gUnknown_02024A6A
+_08120818: .4byte gPlayerParty
+_0812081C: .4byte gUnknown_03004330
+_08120820: .4byte gUnknown_02024A60
+_08120824: .4byte sub_811DCA0
+ thumb_func_end sub_812071C
+
+ thumb_func_start dp01t_30_3_80EB11C
+dp01t_30_3_80EB11C: @ 8120828
+ push {r4-r6,lr}
+ ldr r1, _08120850
+ ldr r0, _08120854
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08120858
+ adds r0, r2, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08120858
+ bl dp01_tbl3_exec_completed
+ b _081208C0
+ .align 2, 0
+_08120850: .4byte gUnknown_02023A60
+_08120854: .4byte gUnknown_02024A60
+_08120858:
+ ldr r5, _081208C8
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r6, _081208CC
+ adds r0, r6
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r0, [r5]
+ lsls r3, r0, 9
+ ldr r4, _081208D0
+ adds r1, r3, r4
+ subs r2, r4, 0x3
+ adds r2, r3, r2
+ ldrb r2, [r2]
+ subs r4, 0x2
+ adds r3, r4
+ ldrb r3, [r3]
+ bl sub_8044804
+ ldr r2, _081208D4
+ ldrb r1, [r5]
+ adds r1, r2
+ movs r2, 0
+ strb r0, [r1]
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strb r2, [r0, 0x5]
+ ldrb r1, [r5]
+ lsls r0, r1, 9
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081208B4
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x5D
+ strb r1, [r0, 0x5]
+_081208B4:
+ ldr r0, _081208D8
+ ldrb r1, [r5]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _081208DC
+ str r0, [r1]
+_081208C0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081208C8: .4byte gUnknown_02024A60
+_081208CC: .4byte 0x02017810
+_081208D0: .4byte gUnknown_02023A64
+_081208D4: .4byte gUnknown_02024E68
+_081208D8: .4byte gUnknown_03004330
+_081208DC: .4byte sub_81208E0
+ thumb_func_end dp01t_30_3_80EB11C
+
+ thumb_func_start sub_81208E0
+sub_81208E0: @ 81208E0
+ push {r4,lr}
+ ldr r4, _08120918
+ ldrb r1, [r4]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r3, _0812091C
+ adds r0, r3
+ ldrb r1, [r0, 0x5]
+ adds r2, r1, 0x1
+ strb r2, [r0, 0x5]
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x5C
+ bls _08120910
+ ldrb r0, [r4]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ movs r0, 0
+ strb r0, [r1, 0x5]
+ bl dp01_tbl3_exec_completed
+_08120910:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08120918: .4byte gUnknown_02024A60
+_0812091C: .4byte 0x02017810
+ thumb_func_end sub_81208E0
+
+ thumb_func_start sub_8120920
+sub_8120920: @ 8120920
+ push {lr}
+ ldr r0, _08120958
+ ldrb r3, [r0]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r1, _0812095C
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0812094E
+ ldr r2, _08120960
+ ldr r0, _08120964
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _08120968
+ str r1, [r0]
+_0812094E:
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08120958: .4byte gUnknown_02024A60
+_0812095C: .4byte 0x02017810
+_08120960: .4byte gTasks
+_08120964: .4byte gUnknown_02024E68
+_08120968: .4byte sub_8044CA0
+ thumb_func_end sub_8120920
+
+ thumb_func_start sub_812096C
+sub_812096C: @ 812096C
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812096C
+
+ thumb_func_start sub_8120978
+sub_8120978: @ 8120978
+ push {r4,lr}
+ ldr r4, _081209C8
+ ldrb r0, [r4]
+ bl sub_8078874
+ lsls r0, 24
+ cmp r0, 0
+ beq _081209BE
+ ldr r3, _081209CC
+ ldr r0, _081209D0
+ ldrb r1, [r4]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldr r0, _081209D4
+ lsls r1, 9
+ adds r0, 0x1
+ adds r1, r0
+ adds r2, 0x3E
+ movs r0, 0x1
+ ldrb r1, [r1]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r4]
+ bl sub_8031F88
+_081209BE:
+ bl dp01_tbl3_exec_completed
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081209C8: .4byte gUnknown_02024A60
+_081209CC: .4byte gSprites
+_081209D0: .4byte gUnknown_02024BE0
+_081209D4: .4byte gUnknown_02023A60
+ thumb_func_end sub_8120978
+
+ thumb_func_start sub_81209D8
+sub_81209D8: @ 81209D8
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r6, _08120A1C
+ ldrb r0, [r6]
+ bl mplay_80342A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08120A30
+ ldr r5, _08120A20
+ ldrb r2, [r6]
+ lsls r1, r2, 9
+ adds r0, r5, 0x1
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ adds r0, r5, 0x2
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r5, 0x3
+ adds r1, r5
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r4, r0
+ str r4, [sp]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ bl move_anim_start_t3
+ lsls r0, 24
+ cmp r0, 0
+ beq _08120A24
+ bl dp01_tbl3_exec_completed
+ b _08120A30
+ .align 2, 0
+_08120A1C: .4byte gUnknown_02024A60
+_08120A20: .4byte gUnknown_02023A60
+_08120A24:
+ ldr r0, _08120A38
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _08120A3C
+ str r0, [r1]
+_08120A30:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08120A38: .4byte gUnknown_03004330
+_08120A3C: .4byte sub_811E3B8
+ thumb_func_end sub_81209D8
+
+ thumb_func_start sub_8120A40
+sub_8120A40: @ 8120A40
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120A40
+
+ thumb_func_start sub_8120A4C
+sub_8120A4C: @ 8120A4C
+ push {lr}
+ bl dp01_tbl3_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8120A4C
+
+ thumb_func_start sub_8120A58
+sub_8120A58: @ 8120A58
+ push {r4,lr}
+ ldr r2, _08120A90
+ ldr r1, _08120A94
+ ldr r4, _08120A98
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ movs r0, 0x5
+ bl FadeOutMapMusic
+ movs r0, 0x3
+ bl BeginFastPaletteFade
+ bl dp01_tbl3_exec_completed
+ ldr r1, _08120A9C
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08120AA0
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08120A90: .4byte gUnknown_02024D26
+_08120A94: .4byte gUnknown_02023A60
+_08120A98: .4byte gUnknown_02024A60
+_08120A9C: .4byte gUnknown_03004330
+_08120AA0: .4byte sub_811E29C
+ thumb_func_end sub_8120A58
+
+ thumb_func_start nullsub_75
+nullsub_75: @ 8120AA4
+ bx lr
+ thumb_func_end nullsub_75
+
+ thumb_func_start sub_8120AA8
+sub_8120AA8: @ 8120AA8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r6, 0
+ ldr r5, _08120B70
+ ldr r4, _08120B74
+ ldrb r1, [r4]
+ lsls r1, 9
+ ldr r0, _08120B78
+ adds r1, r0
+ str r1, [r5]
+ ldr r2, _08120B7C
+ ldrh r0, [r1, 0x4]
+ strh r0, [r2]
+ ldr r2, _08120B80
+ ldrb r0, [r1, 0x6]
+ strb r0, [r2]
+ ldr r3, _08120B84
+ ldrb r0, [r1, 0x7]
+ mov r8, r0
+ ldr r2, _08120B88
+ adds r0, r3, r2
+ mov r2, r8
+ strb r2, [r0]
+ ldrb r0, [r1, 0x8]
+ mov r8, r0
+ ldr r2, _08120B8C
+ adds r0, r3, r2
+ mov r2, r8
+ strb r2, [r0]
+ ldrb r0, [r1, 0x9]
+ mov r8, r0
+ ldr r2, _08120B90
+ adds r0, r3, r2
+ mov r2, r8
+ strb r2, [r0]
+ ldr r2, _08120B94
+ ldrb r0, [r1, 0xA]
+ strb r0, [r2]
+ ldrb r1, [r1, 0xB]
+ ldr r2, _08120B98
+ adds r0, r3, r2
+ strb r1, [r0]
+ movs r2, 0
+ mov r9, r3
+ ldr r3, _08120B9C
+ mov r10, r3
+ ldr r3, _08120BA0
+_08120B10:
+ adds r0, r2, r3
+ ldr r1, [r5]
+ adds r1, 0xC
+ adds r1, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _08120B10
+ movs r2, 0
+ ldr r0, _08120B9C
+ mov r8, r0
+ ldr r3, _08120B70
+ ldr r1, _08120BA4
+ mov r12, r1
+ ldr r5, _08120BA8
+_08120B30:
+ mov r0, r8
+ adds r1, r2, r0
+ ldr r0, [r3]
+ adds r0, 0x10
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ mov r0, r12
+ adds r1, r2, r0
+ ldr r0, [r3]
+ adds r0, 0x20
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r1, r2, r5
+ ldr r0, [r3]
+ adds r0, 0x30
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r2, 0x1
+ cmp r2, 0xF
+ ble _08120B30
+ cmp r7, 0x5
+ bls _08120B64
+ b _08120F50
+_08120B64:
+ lsls r0, r7, 2
+ ldr r1, _08120BAC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08120B70: .4byte gUnknown_02039270
+_08120B74: .4byte gUnknown_02024A60
+_08120B78: .4byte gUnknown_02023A64
+_08120B7C: .4byte gUnknown_02024C04
+_08120B80: .4byte byte_2024C06
+_08120B84: .4byte 0x02000000
+_08120B88: .4byte 0x00016003
+_08120B8C: .4byte 0x0001605e
+_08120B90: .4byte 0x000160c1
+_08120B94: .4byte gUnknown_02024C0B
+_08120B98: .4byte 0x000160a0
+_08120B9C: .4byte gUnknown_030041C0
+_08120BA0: .4byte gUnknown_0203926C
+_08120BA4: .4byte gUnknown_03004290
+_08120BA8: .4byte gUnknown_030042B0
+_08120BAC: .4byte _08120BB0
+ .align 2, 0
+_08120BB0:
+ .4byte _08120BC8
+ .4byte _08120C40
+ .4byte _08120CCC
+ .4byte _08120D5C
+ .4byte _08120DE8
+ .4byte _08120E50
+_08120BC8:
+ ldr r0, _08120BEC
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08120C00
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08120BF8
+ movs r0, 0x40
+ ands r0, r1
+ ldr r6, _08120BF0
+ cmp r0, 0
+ bne _08120BE8
+ b _08120F70
+_08120BE8:
+ ldr r6, _08120BF4
+ b _08120F70
+ .align 2, 0
+_08120BEC: .4byte gUnknown_020239F8
+_08120BF0: .4byte gUnknown_084005C7
+_08120BF4: .4byte gUnknown_084005DB
+_08120BF8:
+ ldr r6, _08120BFC
+ b _08120F70
+ .align 2, 0
+_08120BFC: .4byte gUnknown_084005AA
+_08120C00:
+ movs r0, 0x80
+ lsls r0, 6
+ ands r0, r1
+ cmp r0, 0
+ beq _08120C14
+ ldr r6, _08120C10
+ b _08120F70
+ .align 2, 0
+_08120C10: .4byte gUnknown_08400568
+_08120C14:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08120C24
+ ldr r6, _08120C20
+ b _08120F70
+ .align 2, 0
+_08120C20: .4byte gUnknown_08400590
+_08120C24:
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ ldr r6, _08120C38
+ cmp r0, 0
+ bne _08120C32
+ b _08120F70
+_08120C32:
+ ldr r6, _08120C3C
+ b _08120F70
+ .align 2, 0
+_08120C38: .4byte gUnknown_08400555
+_08120C3C: .4byte gUnknown_0840057B
+_08120C40:
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08120C7C
+ ldr r0, _08120C68
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08120C74
+ movs r0, 0x40
+ ands r0, r1
+ ldr r6, _08120C6C
+ cmp r0, 0
+ bne _08120C64
+ b _08120F70
+_08120C64:
+ ldr r6, _08120C70
+ b _08120F70
+ .align 2, 0
+_08120C68: .4byte gUnknown_020239F8
+_08120C6C: .4byte gUnknown_084006A4
+_08120C70: .4byte gUnknown_084006F1
+_08120C74:
+ ldr r6, _08120C78
+ b _08120F70
+ .align 2, 0
+_08120C78: .4byte gUnknown_0840069C
+_08120C7C:
+ ldr r0, _08120C94
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08120CB4
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08120C9C
+ ldr r6, _08120C98
+ b _08120F70
+ .align 2, 0
+_08120C94: .4byte gUnknown_020239F8
+_08120C98: .4byte gUnknown_0840065C
+_08120C9C:
+ movs r0, 0x2
+ ands r0, r1
+ ldr r6, _08120CAC
+ cmp r0, 0
+ bne _08120CA8
+ b _08120F70
+_08120CA8:
+ ldr r6, _08120CB0
+ b _08120F70
+ .align 2, 0
+_08120CAC: .4byte gUnknown_08400608
+_08120CB0: .4byte gUnknown_08400645
+_08120CB4:
+ movs r0, 0x2
+ ands r0, r1
+ ldr r6, _08120CC4
+ cmp r0, 0
+ bne _08120CC0
+ b _08120F70
+_08120CC0:
+ ldr r6, _08120CC8
+ b _08120F70
+ .align 2, 0
+_08120CC4: .4byte gUnknown_084005F5
+_08120CC8: .4byte gUnknown_08400635
+_08120CCC:
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08120D24
+ ldr r0, _08120CE8
+ ldr r1, _08120CEC
+ adds r0, r1
+ ldrb r2, [r0]
+ cmp r2, 0
+ bne _08120CF4
+ ldr r6, _08120CF0
+ b _08120F70
+ .align 2, 0
+_08120CE8: .4byte 0x02000000
+_08120CEC: .4byte 0x000160c1
+_08120CF0: .4byte gUnknown_08400709
+_08120CF4:
+ cmp r2, 0x1
+ beq _08120D04
+ ldr r0, _08120D08
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08120D10
+_08120D04:
+ ldr r6, _08120D0C
+ b _08120F70
+ .align 2, 0
+_08120D08: .4byte gUnknown_020239F8
+_08120D0C: .4byte gUnknown_08400727
+_08120D10:
+ ldr r6, _08120D1C
+ cmp r2, 0x2
+ beq _08120D18
+ b _08120F70
+_08120D18:
+ ldr r6, _08120D20
+ b _08120F70
+ .align 2, 0
+_08120D1C: .4byte gUnknown_08400749
+_08120D20: .4byte gUnknown_08400736
+_08120D24:
+ ldr r0, _08120D44
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 4
+ cmp r1, r0
+ bne _08120D54
+ ldr r0, _08120D48
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ ldr r6, _08120D4C
+ cmp r0, 0
+ bne _08120D40
+ b _08120F70
+_08120D40:
+ ldr r6, _08120D50
+ b _08120F70
+ .align 2, 0
+_08120D44: .4byte word_202FF5E
+_08120D48: .4byte gUnknown_020239F8
+_08120D4C: .4byte gUnknown_08400771
+_08120D50: .4byte gUnknown_08400781
+_08120D54:
+ ldr r6, _08120D58
+ b _08120F70
+ .align 2, 0
+_08120D58: .4byte gUnknown_0840075E
+_08120D5C:
+ ldr r0, _08120D88
+ add r0, r9
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08120DB8
+ ldr r0, _08120D8C
+ add r0, r9
+ ldrb r3, [r0]
+ cmp r3, 0
+ beq _08120D82
+ ldr r0, _08120D90
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08120D98
+_08120D82:
+ ldr r6, _08120D94
+ b _08120F70
+ .align 2, 0
+_08120D88: .4byte 0x00016003
+_08120D8C: .4byte 0x000160c1
+_08120D90: .4byte gUnknown_020239F8
+_08120D94: .4byte gUnknown_084006B3
+_08120D98:
+ cmp r3, 0x1
+ bne _08120DA4
+ ldr r6, _08120DA0
+ b _08120F70
+ .align 2, 0
+_08120DA0: .4byte gUnknown_084006BB
+_08120DA4:
+ ldr r6, _08120DB0
+ cmp r3, 0x2
+ beq _08120DAC
+ b _08120F70
+_08120DAC:
+ ldr r6, _08120DB4
+ b _08120F70
+ .align 2, 0
+_08120DB0: .4byte gUnknown_084006D5
+_08120DB4: .4byte gUnknown_084006C6
+_08120DB8:
+ ldr r0, _08120DD4
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08120DE0
+ movs r0, 0x40
+ ands r0, r1
+ ldr r6, _08120DD8
+ cmp r0, 0
+ bne _08120DD0
+ b _08120F70
+_08120DD0:
+ ldr r6, _08120DDC
+ b _08120F70
+ .align 2, 0
+_08120DD4: .4byte gUnknown_020239F8
+_08120DD8: .4byte gUnknown_0840067C
+_08120DDC: .4byte gUnknown_0840068C
+_08120DE0:
+ ldr r6, _08120DE4
+ b _08120F70
+ .align 2, 0
+_08120DE4: .4byte gUnknown_08400622
+_08120DE8:
+ mov r0, r10
+ bl sub_8121D1C
+ ldr r0, _08120E14
+ ldr r2, [r0]
+ ldrh r1, [r2]
+ movs r0, 0xB1
+ lsls r0, 1
+ cmp r1, r0
+ bls _08120E28
+ ldr r0, _08120E18
+ ldr r2, _08120E1C
+ ldr r1, _08120E20
+ ldr r3, _08120E24
+ adds r1, r3
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl StringCopy
+ b _08120E38
+ .align 2, 0
+_08120E14: .4byte gUnknown_02039270
+_08120E18: .4byte gUnknown_03004290
+_08120E1C: .4byte gUnknown_08401674
+_08120E20: .4byte 0x02000000
+_08120E24: .4byte 0x000160a0
+_08120E28:
+ ldr r0, _08120E44
+ ldrh r2, [r2]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _08120E48
+ adds r1, r2
+ bl StringCopy
+_08120E38:
+ ldr r0, _08120E44
+ bl sub_8121D74
+ ldr r6, _08120E4C
+ b _08120F70
+ .align 2, 0
+_08120E44: .4byte gUnknown_03004290
+_08120E48: .4byte gMoveNames
+_08120E4C: .4byte gUnknown_084007BD
+_08120E50:
+ ldr r5, _08120E90
+ ldrb r1, [r5]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08120EB8
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r5]
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08120E7C
+ ldrb r1, [r5]
+ cmp r1, 0x3
+ beq _08120E7C
+ movs r0, 0x3
+ eors r0, r1
+ strb r0, [r5]
+_08120E7C:
+ ldr r0, _08120E90
+ ldrb r0, [r0]
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _08120E98
+ ldr r6, _08120E94
+ b _08120F70
+ .align 2, 0
+_08120E90: .4byte gUnknown_030041C0
+_08120E94: .4byte gUnknown_083FFEFC
+_08120E98:
+ ldr r0, _08120EAC
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ ldr r6, _08120EB0
+ cmp r0, 0
+ beq _08120F70
+ ldr r6, _08120EB4
+ b _08120F70
+ .align 2, 0
+_08120EAC: .4byte gUnknown_020239F8
+_08120EB0: .4byte gUnknown_083FFFEA
+_08120EB4: .4byte gUnknown_083FFFF7
+_08120EB8:
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08120ED2
+ ldrb r1, [r5]
+ cmp r1, 0x3
+ beq _08120ED2
+ movs r0, 0x3
+ eors r0, r1
+ strb r0, [r5]
+_08120ED2:
+ ldr r0, _08120EF0
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08120F18
+ ldr r0, _08120EF4
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _08120F08
+ cmp r0, 0x2
+ bgt _08120EF8
+ cmp r0, 0x1
+ beq _08120EFE
+ b _08120F70
+ .align 2, 0
+_08120EF0: .4byte gUnknown_020239F8
+_08120EF4: .4byte gUnknown_030041C0
+_08120EF8:
+ cmp r0, 0x3
+ beq _08120F10
+ b _08120F70
+_08120EFE:
+ ldr r6, _08120F04
+ b _08120F70
+ .align 2, 0
+_08120F04: .4byte gUnknown_083FFF6A
+_08120F08:
+ ldr r6, _08120F0C
+ b _08120F70
+ .align 2, 0
+_08120F0C: .4byte gUnknown_083FFF99
+_08120F10:
+ ldr r6, _08120F14
+ b _08120F70
+ .align 2, 0
+_08120F14: .4byte gUnknown_083FFFCB
+_08120F18:
+ ldr r0, _08120F2C
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _08120F40
+ cmp r0, 0x2
+ bgt _08120F30
+ cmp r0, 0x1
+ beq _08120F36
+ b _08120F70
+ .align 2, 0
+_08120F2C: .4byte gUnknown_030041C0
+_08120F30:
+ cmp r0, 0x3
+ beq _08120F48
+ b _08120F70
+_08120F36:
+ ldr r6, _08120F3C
+ b _08120F70
+ .align 2, 0
+_08120F3C: .4byte gUnknown_083FFF56
+_08120F40:
+ ldr r6, _08120F44
+ b _08120F70
+ .align 2, 0
+_08120F44: .4byte gUnknown_083FFF81
+_08120F48:
+ ldr r6, _08120F4C
+ b _08120F70
+ .align 2, 0
+_08120F4C: .4byte gUnknown_083FFFB3
+_08120F50:
+ movs r0, 0xB5
+ lsls r0, 1
+ cmp r7, r0
+ bls _08120F64
+ ldr r1, _08120F60
+ movs r0, 0xFF
+ strb r0, [r1]
+ b _08120F76
+ .align 2, 0
+_08120F60: .4byte gUnknown_020238CC
+_08120F64:
+ ldr r1, _08120F84
+ adds r0, r7, 0
+ subs r0, 0xC
+ lsls r0, 2
+ adds r0, r1
+ ldr r6, [r0]
+_08120F70:
+ adds r0, r6, 0
+ bl get_battle_strings_
+_08120F76:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08120F84: .4byte gUnknown_08400F8C
+ thumb_func_end sub_8120AA8
+
+ thumb_func_start get_battle_strings_
+get_battle_strings_: @ 8120F88
+ push {lr}
+ ldr r1, _08120F94
+ bl sub_8120FFC
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08120F94: .4byte gUnknown_020238CC
+ thumb_func_end get_battle_strings_
+
+ thumb_func_start sub_8120F98
+sub_8120F98: @ 8120F98
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r1, _08120FB0
+ mov r0, sp
+ movs r2, 0x8
+ bl memcpy
+ mov r2, sp
+ movs r3, 0
+ b _08120FC0
+ .align 2, 0
+_08120FB0: .4byte gUnknown_084017A8
+_08120FB4:
+ strb r1, [r2]
+ adds r4, 0x1
+ adds r2, 0x1
+ adds r3, 0x1
+ cmp r3, 0x7
+ bhi _08120FC8
+_08120FC0:
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ bne _08120FB4
+_08120FC8:
+ ldr r5, [sp]
+ ldr r4, [sp, 0x4]
+ movs r3, 0
+ ldr r2, _08120FE4
+_08120FD0:
+ ldr r1, [r2]
+ ldr r0, [r1]
+ cmp r5, r0
+ bne _08120FE8
+ ldr r0, [r1, 0x4]
+ cmp r4, r0
+ bne _08120FE8
+ ldr r0, [r2, 0x4]
+ b _08120FF2
+ .align 2, 0
+_08120FE4: .4byte gUnknown_081FA6D4
+_08120FE8:
+ adds r2, 0x8
+ adds r3, 0x1
+ cmp r3, 0x6
+ bls _08120FD0
+ movs r0, 0
+_08120FF2:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8120F98
+
+ thumb_func_start sub_8120FFC
+sub_8120FFC: @ 8120FFC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ mov r9, r0
+ mov r8, r1
+ movs r6, 0
+ movs r4, 0
+ bl GetMultiplayerId
+ lsls r0, 24
+ lsrs r7, r0, 24
+ mov r0, r9
+ ldrb r1, [r0]
+ bl _08121A40
+_0812101E:
+ cmp r1, 0xFD
+ beq _08121026
+ bl _08121A30
+_08121026:
+ movs r1, 0x1
+ add r9, r1
+ mov r2, r9
+ ldrb r0, [r2]
+ cmp r0, 0x2A
+ bls _08121036
+ bl _081219E6
+_08121036:
+ lsls r0, 2
+ ldr r1, _08121040
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08121040: .4byte _08121044
+ .align 2, 0
+_08121044:
+ .4byte _081210F0
+ .4byte _0812111E
+ .4byte _0812115A
+ .4byte _08121180
+ .4byte _081211A4
+ .4byte _081211C8
+ .4byte _081211EC
+ .4byte _08121218
+ .4byte _08121248
+ .4byte _08121278
+ .4byte _081212A8
+ .4byte _0812133C
+ .4byte _081213A8
+ .4byte _0812141C
+ .4byte _08121490
+ .4byte _08121504
+ .4byte _08121578
+ .4byte _081215F8
+ .4byte _08121620
+ .4byte _08121660
+ .4byte _081216EC
+ .4byte _081216F4
+ .4byte _08121704
+ .4byte _08121714
+ .4byte _0812172C
+ .4byte _0812174C
+ .4byte _081217C0
+ .4byte _08121830
+ .4byte _08121840
+ .4byte _08121854
+ .4byte _08121868
+ .4byte _0812188C
+ .4byte _081218B0
+ .4byte _081218B8
+ .4byte _081218C0
+ .4byte _0812195C
+ .4byte _081219A4
+ .4byte _081219AC
+ .4byte _0812197C
+ .4byte _08121984
+ .4byte _081219CC
+ .4byte _081219D4
+ .4byte _08121134
+_081210F0:
+ ldr r5, _08121100
+ ldrb r0, [r5]
+ cmp r0, 0xFD
+ bne _08121108
+ ldr r4, _08121104
+ adds r0, r5, 0
+ b _08121140
+ .align 2, 0
+_08121100: .4byte gUnknown_030041C0
+_08121104: .4byte gStringVar1
+_08121108:
+ adds r0, r5, 0
+ bl sub_8120F98
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _08121118
+ bl _081219E6
+_08121118:
+ adds r4, r5, 0
+ bl _081219E6
+_0812111E:
+ ldr r1, _0812112C
+ ldrb r0, [r1]
+ cmp r0, 0xFD
+ bne _08121154
+ ldr r4, _08121130
+ b _0812113E
+ .align 2, 0
+_0812112C: .4byte gUnknown_03004290
+_08121130: .4byte gStringVar2
+_08121134:
+ ldr r1, _0812114C
+ ldrb r0, [r1]
+ cmp r0, 0xFD
+ bne _08121154
+ ldr r4, _08121150
+_0812113E:
+ adds r0, r1, 0
+_08121140:
+ adds r1, r4, 0
+ bl sub_8121A68
+ bl _081219E6
+ .align 2, 0
+_0812114C: .4byte gUnknown_030042B0
+_08121150: .4byte gStringVar3
+_08121154:
+ adds r4, r1, 0
+ bl _081219E6
+_0812115A:
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r1, _08121178
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0812117C
+ adds r0, r1
+ bl _0812190E
+ .align 2, 0
+_08121178: .4byte gUnknown_02024A6A
+_0812117C: .4byte gPlayerParty
+_08121180:
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ ldr r1, _0812119C
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _081211A0
+ adds r0, r1
+ b _0812190E
+ .align 2, 0
+_0812119C: .4byte gUnknown_02024A6A
+_081211A0: .4byte gEnemyParty
+_081211A4:
+ movs r0, 0x2
+ bl battle_get_side_with_given_state
+ ldr r1, _081211C0
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _081211C4
+ adds r0, r1
+ b _0812190E
+ .align 2, 0
+_081211C0: .4byte gUnknown_02024A6A
+_081211C4: .4byte gPlayerParty
+_081211C8:
+ movs r0, 0x3
+ bl battle_get_side_with_given_state
+ ldr r1, _081211E4
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _081211E8
+ adds r0, r1
+ b _0812190E
+ .align 2, 0
+_081211E4: .4byte gUnknown_02024A6A
+_081211E8: .4byte gEnemyParty
+_081211EC:
+ ldr r2, _0812120C
+ ldr r1, _08121210
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x18]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08121214
+ adds r0, r1
+ b _0812190E
+ .align 2, 0
+_0812120C: .4byte gUnknown_02024A6A
+_08121210: .4byte gLinkPlayers
+_08121214: .4byte gPlayerParty
+_08121218:
+ ldr r2, _0812123C
+ ldr r1, _08121240
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x18]
+ movs r0, 0x1
+ eors r0, r1
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08121244
+ adds r0, r1
+ b _0812190E
+ .align 2, 0
+_0812123C: .4byte gUnknown_02024A6A
+_08121240: .4byte gLinkPlayers
+_08121244: .4byte gEnemyParty
+_08121248:
+ ldr r2, _0812126C
+ ldr r1, _08121270
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x18]
+ movs r0, 0x2
+ eors r0, r1
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08121274
+ adds r0, r1
+ b _0812190E
+ .align 2, 0
+_0812126C: .4byte gUnknown_02024A6A
+_08121270: .4byte gLinkPlayers
+_08121274: .4byte gPlayerParty
+_08121278:
+ ldr r2, _0812129C
+ ldr r1, _081212A0
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x18]
+ movs r0, 0x3
+ eors r0, r1
+ lsls r0, 1
+ adds r0, r2
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _081212A4
+ adds r0, r1
+ b _0812190E
+ .align 2, 0
+_0812129C: .4byte gUnknown_02024A6A
+_081212A0: .4byte gLinkPlayers
+_081212A4: .4byte gEnemyParty
+_081212A8:
+ ldr r4, _081212CC
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ adds r2, r4, 0
+ cmp r0, 0
+ beq _0812131C
+ ldr r0, _081212D0
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ ldr r4, _081212D4
+ cmp r0, 0
+ beq _081212E6
+ ldr r4, _081212D8
+ b _081212E6
+ .align 2, 0
+_081212CC: .4byte gUnknown_02024C07
+_081212D0: .4byte gUnknown_020239F8
+_081212D4: .4byte gUnknown_08400791
+_081212D8: .4byte gUnknown_08400797
+_081212DC:
+ mov r3, r8
+ adds r0, r3, r6
+ strb r1, [r0]
+ adds r6, 0x1
+ adds r4, 0x1
+_081212E6:
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ bne _081212DC
+ ldrb r0, [r2]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ bl battle_get_side_with_given_state
+ ldr r1, _08121314
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08121318
+ adds r0, r1
+ b _0812190E
+ .align 2, 0
+_08121314: .4byte gUnknown_02024A6A
+_08121318: .4byte gEnemyParty
+_0812131C:
+ ldrb r0, [r2]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ bl battle_get_side_with_given_state
+ ldr r1, _08121338
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r1
+ ldrh r1, [r0]
+ b _0812193A
+ .align 2, 0
+_08121338: .4byte gUnknown_02024A6A
+_0812133C:
+ ldr r4, _08121370
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812137C
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ bl battle_get_side_with_given_state
+ ldr r1, _08121374
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, 0x4
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08121378
+ adds r0, r1
+ b _0812190E
+ .align 2, 0
+_08121370: .4byte gUnknown_02024C07
+_08121374: .4byte gUnknown_02024A6A
+_08121378: .4byte gPlayerParty
+_0812137C:
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ movs r0, 0x1
+ ands r0, r1
+ bl battle_get_side_with_given_state
+ ldr r1, _081213A0
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, 0x4
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _081213A4
+ b _08121940
+ .align 2, 0
+_081213A0: .4byte gUnknown_02024A6A
+_081213A4: .4byte gEnemyParty
+_081213A8:
+ ldr r5, _081213F4
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812140C
+ ldr r0, _081213F8
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ ldr r4, _081213FC
+ cmp r0, 0
+ beq _081213C6
+ ldr r4, _08121400
+_081213C6:
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ ldr r3, _08121404
+ ldr r2, _08121408
+ mov r12, r2
+ adds r2, r5, 0
+ cmp r0, 0xFF
+ beq _081213E8
+_081213D6:
+ mov r5, r8
+ adds r0, r5, r6
+ strb r1, [r0]
+ adds r6, 0x1
+ adds r4, 0x1
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ bne _081213D6
+_081213E8:
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r1, [r0]
+ b _08121908
+ .align 2, 0
+_081213F4: .4byte gUnknown_02024C07
+_081213F8: .4byte gUnknown_020239F8
+_081213FC: .4byte gUnknown_08400791
+_08121400: .4byte gUnknown_08400797
+_08121404: .4byte gUnknown_02024A6A
+_08121408: .4byte gEnemyParty
+_0812140C:
+ ldr r1, _08121418
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ b _0812193A
+ .align 2, 0
+_08121418: .4byte gUnknown_02024A6A
+_0812141C:
+ ldr r5, _08121468
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _08121480
+ ldr r0, _0812146C
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ ldr r4, _08121470
+ cmp r0, 0
+ beq _0812143A
+ ldr r4, _08121474
+_0812143A:
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ ldr r3, _08121478
+ ldr r2, _0812147C
+ mov r12, r2
+ adds r2, r5, 0
+ cmp r0, 0xFF
+ beq _0812145C
+_0812144A:
+ mov r5, r8
+ adds r0, r5, r6
+ strb r1, [r0]
+ adds r6, 0x1
+ adds r4, 0x1
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ bne _0812144A
+_0812145C:
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r1, [r0]
+ b _08121908
+ .align 2, 0
+_08121468: .4byte gUnknown_02024C08
+_0812146C: .4byte gUnknown_020239F8
+_08121470: .4byte gUnknown_08400791
+_08121474: .4byte gUnknown_08400797
+_08121478: .4byte gUnknown_02024A6A
+_0812147C: .4byte gEnemyParty
+_08121480:
+ ldr r1, _0812148C
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ b _0812193A
+ .align 2, 0
+_0812148C: .4byte gUnknown_02024A6A
+_08121490:
+ ldr r5, _081214DC
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _081214F4
+ ldr r0, _081214E0
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ ldr r4, _081214E4
+ cmp r0, 0
+ beq _081214AE
+ ldr r4, _081214E8
+_081214AE:
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ ldr r3, _081214EC
+ ldr r2, _081214F0
+ mov r12, r2
+ adds r2, r5, 0
+ cmp r0, 0xFF
+ beq _081214D0
+_081214BE:
+ mov r5, r8
+ adds r0, r5, r6
+ strb r1, [r0]
+ adds r6, 0x1
+ adds r4, 0x1
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ bne _081214BE
+_081214D0:
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r1, [r0]
+ b _08121908
+ .align 2, 0
+_081214DC: .4byte gUnknown_02024C0A
+_081214E0: .4byte gUnknown_020239F8
+_081214E4: .4byte gUnknown_08400791
+_081214E8: .4byte gUnknown_08400797
+_081214EC: .4byte gUnknown_02024A6A
+_081214F0: .4byte gEnemyParty
+_081214F4:
+ ldr r1, _08121500
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ b _0812193A
+ .align 2, 0
+_08121500: .4byte gUnknown_02024A6A
+_08121504:
+ ldr r5, _08121550
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _08121568
+ ldr r0, _08121554
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ ldr r4, _08121558
+ cmp r0, 0
+ beq _08121522
+ ldr r4, _0812155C
+_08121522:
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ ldr r3, _08121560
+ ldr r2, _08121564
+ mov r12, r2
+ adds r2, r5, 0
+ cmp r0, 0xFF
+ beq _08121544
+_08121532:
+ mov r5, r8
+ adds r0, r5, r6
+ strb r1, [r0]
+ adds r6, 0x1
+ adds r4, 0x1
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ bne _08121532
+_08121544:
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r1, [r0]
+ b _08121908
+ .align 2, 0
+_08121550: .4byte gUnknown_02024A60
+_08121554: .4byte gUnknown_020239F8
+_08121558: .4byte gUnknown_08400791
+_0812155C: .4byte gUnknown_08400797
+_08121560: .4byte gUnknown_02024A6A
+_08121564: .4byte gEnemyParty
+_08121568:
+ ldr r1, _08121574
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ b _0812193A
+ .align 2, 0
+_08121574: .4byte gUnknown_02024A6A
+_08121578:
+ ldr r4, _081215CC
+ ldr r0, _081215D0
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ adds r2, r4, 0
+ cmp r0, 0
+ beq _081215E8
+ ldr r0, _081215D4
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ ldr r4, _081215D8
+ cmp r0, 0
+ beq _0812159C
+ ldr r4, _081215DC
+_0812159C:
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ ldr r3, _081215E0
+ ldr r5, _081215E4
+ mov r12, r5
+ cmp r0, 0xFF
+ beq _081215BC
+_081215AA:
+ mov r5, r8
+ adds r0, r5, r6
+ strb r1, [r0]
+ adds r6, 0x1
+ adds r4, 0x1
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ bne _081215AA
+_081215BC:
+ ldr r1, _081215D0
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r1, [r0]
+ b _08121908
+ .align 2, 0
+_081215CC: .4byte 0x02000000
+_081215D0: .4byte 0x00016003
+_081215D4: .4byte gUnknown_020239F8
+_081215D8: .4byte gUnknown_08400791
+_081215DC: .4byte gUnknown_08400797
+_081215E0: .4byte gUnknown_02024A6A
+_081215E4: .4byte gEnemyParty
+_081215E8:
+ ldr r1, _081215F4
+ ldrb r0, [r5]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ b _0812193A
+ .align 2, 0
+_081215F4: .4byte gUnknown_02024A6A
+_081215F8:
+ ldr r0, _08121610
+ ldr r2, [r0]
+ ldrh r1, [r2]
+ movs r0, 0xB1
+ lsls r0, 1
+ cmp r1, r0
+ bls _0812161C
+ ldr r0, _08121614
+ ldr r2, _08121618
+ adds r0, r2
+ b _08121634
+ .align 2, 0
+_08121610: .4byte gUnknown_02039270
+_08121614: .4byte 0x02000000
+_08121618: .4byte 0x000160a0
+_0812161C:
+ ldrh r1, [r2]
+ b _08121652
+_08121620:
+ ldr r0, _08121640
+ ldr r2, [r0]
+ ldrh r1, [r2, 0x2]
+ movs r0, 0xB1
+ lsls r0, 1
+ cmp r1, r0
+ bls _08121650
+ ldr r0, _08121644
+ ldr r3, _08121648
+ adds r0, r3
+_08121634:
+ ldrb r0, [r0]
+ lsls r0, 2
+ ldr r1, _0812164C
+ adds r4, r0, r1
+ b _081219E6
+ .align 2, 0
+_08121640: .4byte gUnknown_02039270
+_08121644: .4byte 0x02000000
+_08121648: .4byte 0x000160a0
+_0812164C: .4byte gUnknown_08401674
+_08121650:
+ ldrh r1, [r2, 0x2]
+_08121652:
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, _0812165C
+ adds r4, r1, r0
+ b _081219E6
+ .align 2, 0
+_0812165C: .4byte gMoveNames
+_08121660:
+ ldr r0, _081216AC
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081216D8
+ ldr r1, _081216B0
+ ldrh r0, [r1]
+ cmp r0, 0xAF
+ bne _081216D4
+ ldr r2, _081216B4
+ ldr r0, _081216B8
+ ldr r5, _081216BC
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _081216C0
+ ldrb r2, [r1]
+ ldrh r0, [r0, 0x18]
+ cmp r0, r2
+ bne _081216CC
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ ldr r0, _081216C4
+ adds r1, r0
+ mov r0, sp
+ bl StringCopy
+ ldr r1, _081216C8
+ mov r0, sp
+ bl StringAppend
+ mov r4, sp
+ b _081219E6
+ .align 2, 0
+_081216AC: .4byte gUnknown_020239F8
+_081216B0: .4byte gUnknown_02024C04
+_081216B4: .4byte gLinkPlayers
+_081216B8: .4byte 0x02000000
+_081216BC: .4byte 0x000160cb
+_081216C0: .4byte gUnknown_02024C0B
+_081216C4: .4byte gEnigmaBerries
+_081216C8: .4byte gUnknown_08400A85
+_081216CC:
+ ldr r4, _081216D0
+ b _081219E6
+ .align 2, 0
+_081216D0: .4byte gUnknown_08400A78
+_081216D4:
+ ldrh r0, [r1]
+ b _081216DC
+_081216D8:
+ ldr r0, _081216E8
+ ldrh r0, [r0]
+_081216DC:
+ mov r1, sp
+ bl itemid_copy_name
+ mov r4, sp
+ b _081219E6
+ .align 2, 0
+_081216E8: .4byte gUnknown_02024C04
+_081216EC:
+ ldr r0, _081216F0
+ b _08121734
+ .align 2, 0
+_081216F0: .4byte byte_2024C06
+_081216F4:
+ ldr r1, _081216FC
+ ldr r0, _08121700
+ b _08121730
+ .align 2, 0
+_081216FC: .4byte gUnknown_0203926C
+_08121700: .4byte gUnknown_02024C07
+_08121704:
+ ldr r1, _0812170C
+ ldr r0, _08121710
+ b _08121730
+ .align 2, 0
+_0812170C: .4byte gUnknown_0203926C
+_08121710: .4byte gUnknown_02024C08
+_08121714:
+ ldr r1, _08121720
+ ldr r0, _08121724
+ ldr r2, _08121728
+ adds r0, r2
+ b _08121730
+ .align 2, 0
+_08121720: .4byte gUnknown_0203926C
+_08121724: .4byte 0x02000000
+_08121728: .4byte 0x00016003
+_0812172C:
+ ldr r1, _08121740
+ ldr r0, _08121744
+_08121730:
+ ldrb r0, [r0]
+ adds r0, r1
+_08121734:
+ ldrb r1, [r0]
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, _08121748
+ adds r4, r1, r0
+ b _081219E6
+ .align 2, 0
+_08121740: .4byte gUnknown_0203926C
+_08121744: .4byte gUnknown_02024C0A
+_08121748: .4byte gAbilityNames
+_0812174C:
+ ldr r3, _08121764
+ ldrh r1, [r3]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ bne _08121768
+ bl GetSecretBaseTrainerNameIndex
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0xD
+ b _081217AE
+ .align 2, 0
+_08121764: .4byte word_202FF5E
+_08121768:
+ ldr r0, _08121784
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _08121788
+ bl get_trainer_class_name_index
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0xD
+ b _081217AE
+ .align 2, 0
+_08121784: .4byte gUnknown_020239F8
+_08121788:
+ movs r0, 0x80
+ lsls r0, 4
+ ands r0, r1
+ cmp r0, 0
+ beq _0812179E
+ bl sub_8135FD8
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0xD
+ b _081217AE
+_0812179E:
+ ldr r2, _081217B8
+ ldrh r1, [r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r1, [r0, 0x1]
+ movs r0, 0xD
+_081217AE:
+ muls r1, r0
+ ldr r0, _081217BC
+ adds r4, r1, r0
+ b _081219E6
+ .align 2, 0
+_081217B8: .4byte gTrainers
+_081217BC: .4byte gTrainerClassNames
+_081217C0:
+ ldr r2, _081217E4
+ ldrh r1, [r2]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ bne _081217EC
+ mov r0, sp
+ movs r1, 0xFF
+ movs r2, 0x8
+ bl memset
+ ldr r1, _081217E8
+ mov r0, sp
+ movs r2, 0x7
+ bl memcpy
+ mov r4, sp
+ b _081219E6
+ .align 2, 0
+_081217E4: .4byte word_202FF5E
+_081217E8: .4byte 0x02017002
+_081217EC:
+ ldr r0, _08121804
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ beq _08121808
+ mov r0, sp
+ bl get_trainer_name
+ mov r4, sp
+ b _081219E6
+ .align 2, 0
+_08121804: .4byte gUnknown_020239F8
+_08121808:
+ movs r0, 0x80
+ lsls r0, 4
+ ands r0, r1
+ cmp r0, 0
+ beq _0812181C
+ mov r0, sp
+ bl sub_8135FF4
+ mov r4, sp
+ b _081219E6
+_0812181C:
+ ldrh r0, [r2]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _0812182C
+ adds r4, r1, r0
+ b _081219E6
+ .align 2, 0
+_0812182C: .4byte gTrainers + 0x4
+_08121830:
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ ldr r1, _0812183C
+ adds r4, r0, r1
+ b _081219E6
+ .align 2, 0
+_0812183C: .4byte gLinkPlayers + 0x8
+_08121840:
+ ldr r4, _08121850
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x18]
+ movs r0, 0x2
+ b _08121876
+ .align 2, 0
+_08121850: .4byte gLinkPlayers
+_08121854:
+ ldr r4, _08121864
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x18]
+ movs r0, 0x1
+ b _08121876
+ .align 2, 0
+_08121864: .4byte gLinkPlayers
+_08121868:
+ ldr r4, _08121888
+ lsls r0, r7, 3
+ subs r0, r7
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r0, 0x18]
+ movs r0, 0x3
+_08121876:
+ eors r0, r1
+ bl sub_803FC34
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r4, 0x8
+ adds r4, r1, r4
+ b _081219E6
+ .align 2, 0
+_08121888: .4byte gLinkPlayers
+_0812188C:
+ ldr r0, _081218A4
+ ldr r3, _081218A8
+ adds r0, r3
+ ldrb r0, [r0]
+ bl sub_803FC34
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ ldr r0, _081218AC
+ adds r4, r1, r0
+ b _081219E6
+ .align 2, 0
+_081218A4: .4byte 0x02000000
+_081218A8: .4byte 0x00016003
+_081218AC: .4byte gLinkPlayers + 0x8
+_081218B0:
+ ldr r4, _081218B4
+ b _081219E6
+ .align 2, 0
+_081218B4: .4byte gSaveBlock2
+_081218B8:
+ bl sub_8082830
+ adds r4, r0, 0
+ b _081219E6
+_081218C0:
+ ldr r5, _08121918
+ ldr r1, _0812191C
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _08121934
+ ldr r0, _08121920
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ ldr r4, _08121924
+ cmp r0, 0
+ beq _081218E2
+ ldr r4, _08121928
+_081218E2:
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ ldr r2, _0812192C
+ mov r12, r2
+ adds r2, r5, 0
+ cmp r0, 0xFF
+ beq _08121902
+_081218F0:
+ mov r3, r8
+ adds r0, r3, r6
+ strb r1, [r0]
+ adds r6, 0x1
+ adds r4, 0x1
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ bne _081218F0
+_08121902:
+ ldr r5, _08121930
+ adds r0, r2, r5
+ ldrb r1, [r0]
+_08121908:
+ movs r0, 0x64
+ muls r0, r1
+ add r0, r12
+_0812190E:
+ movs r1, 0x2
+ mov r2, sp
+ bl GetMonData
+ b _0812194A
+ .align 2, 0
+_08121918: .4byte 0x02000000
+_0812191C: .4byte 0x00016003
+_08121920: .4byte gUnknown_020239F8
+_08121924: .4byte gUnknown_08400791
+_08121928: .4byte gUnknown_08400797
+_0812192C: .4byte gEnemyParty
+_08121930: .4byte 0x0001605e
+_08121934:
+ ldr r1, _08121954
+ adds r0, r5, r1
+ ldrb r1, [r0]
+_0812193A:
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08121958
+_08121940:
+ adds r0, r1
+ movs r1, 0x2
+ mov r2, sp
+ bl GetMonData
+_0812194A:
+ mov r0, sp
+ bl StringGetEnd10
+ mov r4, sp
+ b _081219E6
+ .align 2, 0
+_08121954: .4byte 0x0001605e
+_08121958: .4byte gPlayerParty
+_0812195C:
+ ldr r0, _08121970
+ bl FlagGet
+ lsls r0, 24
+ ldr r4, _08121974
+ cmp r0, 0
+ beq _081219E6
+ ldr r4, _08121978
+ b _081219E6
+ .align 2, 0
+_08121970: .4byte 0x0000084b
+_08121974: .4byte gUnknown_084009ED
+_08121978: .4byte gUnknown_084009F7
+_0812197C:
+ ldr r0, _08121980
+ b _08121986
+ .align 2, 0
+_08121980: .4byte gUnknown_02024C07
+_08121984:
+ ldr r0, _08121998
+_08121986:
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r4, _0812199C
+ cmp r0, 0
+ bne _081219E6
+ ldr r4, _081219A0
+ b _081219E6
+ .align 2, 0
+_08121998: .4byte gUnknown_02024C08
+_0812199C: .4byte gUnknown_084007A7
+_081219A0: .4byte gUnknown_084007AC
+_081219A4:
+ ldr r0, _081219A8
+ b _081219AE
+ .align 2, 0
+_081219A8: .4byte gUnknown_02024C07
+_081219AC:
+ ldr r0, _081219C0
+_081219AE:
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r4, _081219C4
+ cmp r0, 0
+ bne _081219E6
+ ldr r4, _081219C8
+ b _081219E6
+ .align 2, 0
+_081219C0: .4byte gUnknown_02024C08
+_081219C4: .4byte gUnknown_0840079C
+_081219C8: .4byte gUnknown_084007A1
+_081219CC:
+ ldr r0, _081219D0
+ b _081219D6
+ .align 2, 0
+_081219D0: .4byte gUnknown_02024C07
+_081219D4:
+ ldr r0, _08121A24
+_081219D6:
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r4, _08121A28
+ cmp r0, 0
+ bne _081219E6
+ ldr r4, _08121A2C
+_081219E6:
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ mov r3, r9
+ ldrb r2, [r3]
+ adds r3, 0x1
+ cmp r0, 0xFF
+ beq _08121A06
+_081219F4:
+ mov r5, r8
+ adds r0, r5, r6
+ strb r1, [r0]
+ adds r6, 0x1
+ adds r4, 0x1
+ ldrb r1, [r4]
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ bne _081219F4
+_08121A06:
+ lsls r0, r2, 24
+ lsrs r0, 24
+ cmp r0, 0x21
+ bne _08121A3C
+ mov r0, r8
+ adds r1, r0, r6
+ movs r0, 0xFC
+ strb r0, [r1]
+ adds r6, 0x1
+ mov r2, r8
+ adds r1, r2, r6
+ movs r0, 0x9
+ strb r0, [r1]
+ adds r6, 0x1
+ b _08121A3C
+ .align 2, 0
+_08121A24: .4byte gUnknown_02024C08
+_08121A28: .4byte gUnknown_084007B2
+_08121A2C: .4byte gUnknown_084007B7
+_08121A30:
+ mov r3, r8
+ adds r0, r3, r6
+ strb r1, [r0]
+ adds r6, 0x1
+ mov r3, r9
+ adds r3, 0x1
+_08121A3C:
+ mov r9, r3
+ ldrb r1, [r3]
+_08121A40:
+ adds r0, r1, 0
+ cmp r0, 0xFF
+ beq _08121A4A
+ bl _0812101E
+_08121A4A:
+ mov r5, r8
+ adds r1, r5, r6
+ mov r2, r9
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r6, 0x1
+ adds r0, r6, 0
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8120FFC
+
+ thumb_func_start sub_8121A68
+sub_8121A68: @ 8121A68
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ adds r7, r0, 0
+ adds r6, r1, 0
+ movs r5, 0x1
+ movs r0, 0
+ mov r8, r0
+ movs r0, 0xFF
+ strb r0, [r6]
+ ldrb r0, [r7, 0x1]
+ cmp r0, 0xFF
+ bne _08121A86
+ b _08121D0E
+_08121A86:
+ adds r0, r7, r5
+ ldrb r1, [r0]
+ adds r4, r0, 0
+ cmp r1, 0xA
+ bls _08121A92
+ b _08121D04
+_08121A92:
+ lsls r0, r1, 2
+ ldr r1, _08121A9C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08121A9C: .4byte _08121AA0
+ .align 2, 0
+_08121AA0:
+ .4byte _08121ACC
+ .4byte _08121AE8
+ .4byte _08121B3C
+ .4byte _08121B54
+ .4byte _08121B64
+ .4byte _08121BDC
+ .4byte _08121BF0
+ .4byte _08121C02
+ .4byte _08121C48
+ .4byte _08121C5C
+ .4byte _08121C78
+_08121ACC:
+ adds r0, r5, r7
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldr r0, _08121AE4
+ subs r1, 0xC
+ lsls r1, 2
+ adds r1, r0
+ ldr r1, [r1]
+ b _08121CE2
+ .align 2, 0
+_08121AE4: .4byte gUnknown_08400F8C
+_08121AE8:
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x2
+ beq _08121B04
+ cmp r0, 0x2
+ bgt _08121AF8
+ cmp r0, 0x1
+ beq _08121AFE
+ b _08121B26
+_08121AF8:
+ cmp r0, 0x4
+ beq _08121B0C
+ b _08121B26
+_08121AFE:
+ ldrb r4, [r4, 0x3]
+ mov r8, r4
+ b _08121B26
+_08121B04:
+ ldrb r1, [r4, 0x3]
+ ldrb r0, [r4, 0x4]
+ lsls r0, 8
+ b _08121B22
+_08121B0C:
+ ldrb r0, [r4, 0x3]
+ mov r8, r0
+ ldrb r0, [r4, 0x4]
+ lsls r0, 8
+ mov r1, r8
+ orrs r1, r0
+ ldrb r0, [r4, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r4, 0x6]
+ lsls r0, 24
+_08121B22:
+ orrs r1, r0
+ mov r8, r1
+_08121B26:
+ adds r4, r5, r7
+ ldrb r3, [r4, 0x2]
+ adds r0, r6, 0
+ mov r1, r8
+ movs r2, 0
+ bl ConvertIntToDecimalStringN
+ adds r0, r5, 0x3
+ ldrb r4, [r4, 0x1]
+ adds r5, r0, r4
+ b _08121D04
+_08121B3C:
+ adds r0, r5, r7
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, _08121B50
+ adds r1, r0
+ b _08121CE2
+ .align 2, 0
+_08121B50: .4byte gMoveNames
+_08121B54:
+ adds r0, r5, r7
+ ldrb r0, [r0, 0x1]
+ lsls r1, r0, 3
+ subs r1, r0
+ ldr r0, _08121B60
+ b _08121C66
+ .align 2, 0
+_08121B60: .4byte gTypeNames
+_08121B64:
+ ldrb r0, [r4, 0x1]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08121B88
+ ldrb r1, [r4, 0x2]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08121B84
+ adds r0, r1
+ movs r1, 0x2
+ mov r2, sp
+ bl GetMonData
+ b _08121BC4
+ .align 2, 0
+_08121B84: .4byte gPlayerParty
+_08121B88:
+ ldr r0, _08121BA0
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08121BA8
+ ldr r1, _08121BA4
+ adds r0, r6, 0
+ bl StringAppend
+ b _08121BB0
+ .align 2, 0
+_08121BA0: .4byte gUnknown_020239F8
+_08121BA4: .4byte gUnknown_08400797
+_08121BA8:
+ ldr r1, _08121BD4
+ adds r0, r6, 0
+ bl StringAppend
+_08121BB0:
+ adds r0, r5, r7
+ ldrb r1, [r0, 0x2]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08121BD8
+ adds r0, r1
+ movs r1, 0x2
+ mov r2, sp
+ bl GetMonData
+_08121BC4:
+ mov r0, sp
+ bl StringGetEnd10
+ adds r0, r6, 0
+ mov r1, sp
+ bl StringAppend
+ b _08121D02
+ .align 2, 0
+_08121BD4: .4byte gUnknown_08400791
+_08121BD8: .4byte gEnemyParty
+_08121BDC:
+ ldr r1, _08121BEC
+ adds r0, r5, r7
+ ldrb r0, [r0, 0x1]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ b _08121C68
+ .align 2, 0
+_08121BEC: .4byte gUnknown_08400F58
+_08121BF0:
+ adds r0, r5, r7
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ adds r0, r6, 0
+ bl GetSpeciesName
+ b _08121D02
+_08121C02:
+ adds r4, r5, r7
+ ldrb r0, [r4, 0x1]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08121C28
+ ldrb r1, [r4, 0x2]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08121C24
+ adds r0, r1
+ movs r1, 0x2
+ adds r2, r6, 0
+ bl GetMonData
+ b _08121C3A
+ .align 2, 0
+_08121C24: .4byte gPlayerParty
+_08121C28:
+ ldrb r1, [r4, 0x2]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08121C44
+ adds r0, r1
+ movs r1, 0x2
+ adds r2, r6, 0
+ bl GetMonData
+_08121C3A:
+ adds r0, r6, 0
+ bl StringGetEnd10
+ b _08121D02
+ .align 2, 0
+_08121C44: .4byte gEnemyParty
+_08121C48:
+ ldr r1, _08121C58
+ adds r0, r5, r7
+ ldrb r0, [r0, 0x1]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ b _08121C68
+ .align 2, 0
+_08121C58: .4byte gUnknown_08400F78
+_08121C5C:
+ adds r0, r5, r7
+ ldrb r1, [r0, 0x1]
+ movs r0, 0xD
+ muls r1, r0
+ ldr r0, _08121C74
+_08121C66:
+ adds r1, r0
+_08121C68:
+ adds r0, r6, 0
+ bl StringAppend
+ adds r5, 0x2
+ b _08121D04
+ .align 2, 0
+_08121C74: .4byte gAbilityNames
+_08121C78:
+ adds r0, r5, r7
+ ldrb r2, [r0, 0x1]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 8
+ orrs r2, r0
+ ldr r0, _08121CC4
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08121CFA
+ cmp r2, 0xAF
+ bne _08121CF0
+ ldr r2, _08121CC8
+ ldr r0, _08121CCC
+ ldr r1, _08121CD0
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _08121CD4
+ ldrb r2, [r1]
+ ldrh r0, [r0, 0x18]
+ cmp r0, r2
+ bne _08121CE0
+ lsls r1, r2, 3
+ subs r1, r2
+ lsls r1, 2
+ ldr r0, _08121CD8
+ adds r1, r0
+ adds r0, r6, 0
+ bl StringCopy
+ ldr r1, _08121CDC
+ b _08121CE2
+ .align 2, 0
+_08121CC4: .4byte gUnknown_020239F8
+_08121CC8: .4byte gLinkPlayers
+_08121CCC: .4byte 0x02000000
+_08121CD0: .4byte 0x000160cb
+_08121CD4: .4byte gUnknown_02024C0B
+_08121CD8: .4byte gEnigmaBerries
+_08121CDC: .4byte gUnknown_08400A85
+_08121CE0:
+ ldr r1, _08121CEC
+_08121CE2:
+ adds r0, r6, 0
+ bl StringAppend
+ b _08121D02
+ .align 2, 0
+_08121CEC: .4byte gUnknown_08400A78
+_08121CF0:
+ adds r0, r2, 0
+ adds r1, r6, 0
+ bl itemid_copy_name
+ b _08121D02
+_08121CFA:
+ adds r0, r2, 0
+ adds r1, r6, 0
+ bl itemid_copy_name
+_08121D02:
+ adds r5, 0x3
+_08121D04:
+ adds r0, r7, r5
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ beq _08121D0E
+ b _08121A86
+_08121D0E:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8121A68
+
+ thumb_func_start sub_8121D1C
+sub_8121D1C: @ 8121D1C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r2, 0
+ ldr r5, _08121D50
+ ldr r3, _08121D54
+_08121D26:
+ cmp r2, 0x4
+ beq _08121D3C
+ ldrh r1, [r3]
+ cmp r1, 0
+ bne _08121D32
+ adds r2, 0x1
+_08121D32:
+ ldr r0, [r5]
+ adds r3, 0x2
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _08121D26
+_08121D3C:
+ cmp r2, 0
+ blt _08121D68
+ cmp r2, 0x2
+ bgt _08121D5C
+ ldr r1, _08121D58
+ adds r0, r4, 0
+ bl StringCopy
+ b _08121D68
+ .align 2, 0
+_08121D50: .4byte gUnknown_02039270
+_08121D54: .4byte gUnknown_084016BC
+_08121D58: .4byte gUnknown_08400E5E
+_08121D5C:
+ cmp r2, 0x4
+ bgt _08121D68
+ ldr r1, _08121D70
+ adds r0, r4, 0
+ bl StringCopy
+_08121D68:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08121D70: .4byte gUnknown_08400E62
+ thumb_func_end sub_8121D1C
+
+ thumb_func_start sub_8121D74
+sub_8121D74: @ 8121D74
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ movs r4, 0
+ b _08121D7E
+_08121D7C:
+ adds r3, 0x1
+_08121D7E:
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ bne _08121D7C
+ ldr r1, _08121DB4
+ ldr r5, _08121DB8
+ movs r0, 0
+ lsls r0, 1
+ adds r2, r0, r1
+_08121D8E:
+ cmp r4, 0x4
+ beq _08121DA8
+ ldrh r1, [r2]
+ cmp r1, 0
+ bne _08121D9A
+ adds r4, 0x1
+_08121D9A:
+ ldr r0, [r5]
+ adds r2, 0x2
+ ldrh r0, [r0]
+ cmp r1, r0
+ bne _08121D8E
+ cmp r4, 0x4
+ bhi _08121E04
+_08121DA8:
+ lsls r0, r4, 2
+ ldr r1, _08121DBC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08121DB4: .4byte gUnknown_084016BC
+_08121DB8: .4byte gUnknown_02039270
+_08121DBC: .4byte _08121DC0
+ .align 2, 0
+_08121DC0:
+ .4byte _08121DD4
+ .4byte _08121DDC
+ .4byte _08121DE4
+ .4byte _08121DEC
+ .4byte _08121DFC
+_08121DD4:
+ ldr r1, _08121DD8
+ b _08121DEE
+ .align 2, 0
+_08121DD8: .4byte gUnknown_084007C8
+_08121DDC:
+ ldr r1, _08121DE0
+ b _08121DEE
+ .align 2, 0
+_08121DE0: .4byte gUnknown_084007CA
+_08121DE4:
+ ldr r1, _08121DE8
+ b _08121DEE
+ .align 2, 0
+_08121DE8: .4byte gUnknown_084007CC
+_08121DEC:
+ ldr r1, _08121DF8
+_08121DEE:
+ adds r0, r3, 0
+ bl StringCopy
+ b _08121E04
+ .align 2, 0
+_08121DF8: .4byte gUnknown_084007CE
+_08121DFC:
+ ldr r1, _08121E0C
+ adds r0, r3, 0
+ bl StringCopy
+_08121E04:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08121E0C: .4byte gUnknown_084007D0
+ thumb_func_end sub_8121D74
+
+ thumb_func_start sub_8121E10
+sub_8121E10: @ 8121E10
+ push {lr}
+ bl sub_8121E58
+ ldr r0, _08121E2C
+ ldr r1, _08121E30
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x4
+ bl sub_806AFAC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08121E2C: .4byte 0x0201b000
+_08121E30: .4byte 0x00000263
+ thumb_func_end sub_8121E10
+
+ thumb_func_start sub_8121E34
+sub_8121E34: @ 8121E34
+ push {lr}
+ bl sub_8121E58
+ ldr r0, _08121E50
+ ldr r1, _08121E54
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ movs r0, 0x4
+ movs r1, 0
+ bl sub_806AFAC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08121E50: .4byte 0x0201b000
+_08121E54: .4byte 0x00000263
+ thumb_func_end sub_8121E34
+
+ thumb_func_start sub_8121E58
+sub_8121E58: @ 8121E58
+ push {lr}
+ movs r1, 0
+ ldr r3, _08121E74
+ movs r2, 0
+_08121E60:
+ adds r0, r1, r3
+ strb r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x2
+ bls _08121E60
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08121E74: .4byte gUnknown_02039270
+ thumb_func_end sub_8121E58
+
+ thumb_func_start sub_8121E78
+sub_8121E78: @ 8121E78
+ push {r4-r6,lr}
+ ldr r1, _08121E98
+ 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 _08121E8E
+ b _08122026
+_08121E8E:
+ lsls r0, 2
+ ldr r1, _08121E9C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08121E98: .4byte 0x0201b000
+_08121E9C: .4byte _08121EA0
+ .align 2, 0
+_08121EA0:
+ .4byte _08121EC0
+ .4byte _08121F00
+ .4byte _08121F14
+ .4byte _08121F28
+ .4byte _08121F54
+ .4byte _08121F68
+ .4byte _08121F6E
+ .4byte _08121FF8
+_08121EC0:
+ ldr r0, _08121EE8
+ adds r5, r4, r0
+ movs r1, 0
+ ldrsh r3, [r5, r1]
+ ldr r0, _08121EEC
+ ldrb r0, [r0]
+ cmp r3, r0
+ bge _08121EF4
+ movs r2, 0x98
+ lsls r2, 2
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ ldrb r1, [r5]
+ movs r2, 0x64
+ muls r2, r3
+ ldr r3, _08121EF0
+ adds r2, r3
+ bl sub_806D90C
+ b _08122020
+ .align 2, 0
+_08121EE8: .4byte 0x00000266
+_08121EEC: .4byte gPlayerPartyCount
+_08121EF0: .4byte gPlayerParty
+_08121EF4:
+ movs r0, 0
+ strh r0, [r5]
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r4, r0
+ b _08121FE8
+_08121F00:
+ bl sub_806DA98
+ ldr r1, _08121F10
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r2
+ b _08121FE8
+ .align 2, 0
+_08121F10: .4byte 0x0201b000
+_08121F14:
+ 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 _08121FE8
+_08121F28:
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ ldr r2, _08121F50
+ adds r5, r4, r2
+ ldrb r1, [r5]
+ bl sub_806BD58
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08122020
+ movs r0, 0
+ strh r0, [r5]
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r4, r0
+ b _08121FE8
+ .align 2, 0
+_08121F50: .4byte 0x00000266
+_08121F54:
+ bl sub_806E334
+ ldr r1, _08121F64
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r2
+ b _08121FE8
+ .align 2, 0
+_08121F64: .4byte 0x0201b000
+_08121F68:
+ bl sub_806E0C4
+ b _08121FE0
+_08121F6E:
+ movs r5, 0
+ b _08121FD8
+_08121F72:
+ movs r4, 0
+ adds r6, r5, 0x1
+ b _08121F7E
+_08121F78:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_08121F7E:
+ cmp r4, 0x2
+ bhi _08121FA0
+ ldr r0, _08121FC4
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ cmp r0, r6
+ bne _08121F78
+ lsls r1, r4, 3
+ subs r1, r4
+ lsls r1, 25
+ movs r2, 0xE0
+ lsls r2, 21
+ adds r1, r2
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl sub_806BC3C
+_08121FA0:
+ cmp r4, 0x3
+ bne _08121FD4
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08121FC8
+ adds r0, r1
+ bl sub_8122030
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08121FCC
+ adds r0, r5, 0
+ movs r1, 0x70
+ bl sub_806BC3C
+ b _08121FD4
+ .align 2, 0
+_08121FC4: .4byte gUnknown_02039270
+_08121FC8: .4byte gPlayerParty
+_08121FCC:
+ adds r0, r5, 0
+ movs r1, 0x7E
+ bl sub_806BC3C
+_08121FD4:
+ lsls r0, r6, 24
+ lsrs r5, r0, 24
+_08121FD8:
+ ldr r0, _08121FF0
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcc _08121F72
+_08121FE0:
+ ldr r1, _08121FF4
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+_08121FE8:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _08122026
+ .align 2, 0
+_08121FF0: .4byte gPlayerPartyCount
+_08121FF4: .4byte 0x0201b000
+_08121FF8:
+ ldr r1, _0812201C
+ adds r5, r4, r1
+ ldrb r0, [r5]
+ bl sub_806B58C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08122020
+ movs r1, 0
+ strh r1, [r5]
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r4, r2
+ strh r1, [r0]
+ movs r0, 0x1
+ b _08122028
+ .align 2, 0
+_0812201C: .4byte 0x00000266
+_08122020:
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_08122026:
+ movs r0, 0
+_08122028:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8121E78
+
+ thumb_func_start sub_8122030
+sub_8122030: @ 8122030
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _0812207C
+ ldr r0, _08122058
+ ldr r1, _0812205C
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08122060
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _0812207C
+ b _081220B6
+ .align 2, 0
+_08122058: .4byte 0x0201b000
+_0812205C: .4byte 0x00000263
+_08122060:
+ ldr r0, _08122080
+ ldr r1, _08122084
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08122088
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ cmp r0, 0x32
+ bls _08122088
+_0812207C:
+ movs r0, 0
+ b _081220B8
+ .align 2, 0
+_08122080: .4byte gSaveBlock2
+_08122084: .4byte 0x00000554
+_08122088:
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r1, _081220C0
+ movs r0, 0
+ lsls r0, 1
+ adds r2, r0, r1
+ ldrh r0, [r2]
+ ldr r1, _081220C4
+ cmp r0, r1
+ beq _081220B6
+ adds r4, r1, 0
+ adds r1, r2, 0
+_081220A8:
+ ldrh r0, [r1]
+ cmp r0, r3
+ beq _0812207C
+ adds r1, 0x2
+ ldrh r0, [r1]
+ cmp r0, r4
+ bne _081220A8
+_081220B6:
+ movs r0, 0x1
+_081220B8:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081220C0: .4byte gBattleTowerBanlist
+_081220C4: .4byte 0x0000ffff
+ thumb_func_end sub_8122030
+
+ thumb_func_start sub_81220C8
+sub_81220C8: @ 81220C8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r1, _081220EC
+ ldr r2, _081220F0
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081221A2
+ ldr r0, _081220F4
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0
+ bne _08122100
+ movs r0, 0x11
+ b _081221A4
+ .align 2, 0
+_081220EC: .4byte 0x0201b000
+_081220F0: .4byte 0x00000263
+_081220F4: .4byte gUnknown_02039270
+_081220F8:
+ movs r0, 0x12
+ b _081221A4
+_081220FC:
+ movs r0, 0x13
+ b _081221A4
+_08122100:
+ movs r5, 0
+_08122102:
+ ldr r4, _081221B4
+ adds r4, r5, r4
+ ldrb r0, [r4]
+ movs r1, 0x64
+ muls r0, r1
+ ldr r2, _081221B8
+ adds r0, r2
+ movs r1, 0xB
+ bl GetMonData
+ ldr r1, _081221BC
+ ldr r2, _081221C0
+ adds r6, r1, r2
+ strh r0, [r6]
+ ldrb r0, [r4]
+ movs r1, 0x64
+ muls r0, r1
+ ldr r2, _081221B8
+ adds r0, r2
+ movs r1, 0xC
+ bl GetMonData
+ ldr r1, _081221C4
+ strh r0, [r1]
+ adds r1, r5, 0x1
+ lsls r0, r1, 24
+ lsrs r5, r0, 24
+ mov r10, r1
+ cmp r5, 0x2
+ bhi _08122198
+ ldr r2, _081221C8
+ adds r2, r6
+ mov r9, r2
+ movs r0, 0x64
+ mov r8, r0
+ ldr r7, _081221B8
+_0812214A:
+ ldr r0, _081221C0
+ add r0, r9
+ movs r1, 0
+ ldrsh r4, [r0, r1]
+ ldr r0, _081221B4
+ adds r6, r5, r0
+ ldrb r0, [r6]
+ mov r2, r8
+ muls r2, r0
+ adds r0, r2, 0
+ adds r0, r7
+ movs r1, 0xB
+ bl GetMonData
+ cmp r4, r0
+ beq _081220F8
+ movs r1, 0xA0
+ lsls r1, 2
+ add r1, r9
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _0812218E
+ adds r4, r0, 0
+ ldrb r0, [r6]
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r0, r7
+ movs r1, 0xC
+ bl GetMonData
+ cmp r4, r0
+ beq _081220FC
+_0812218E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _0812214A
+_08122198:
+ mov r2, r10
+ lsls r0, r2, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x1
+ bls _08122102
+_081221A2:
+ movs r0, 0xFF
+_081221A4:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081221B4: .4byte gUnknown_02039270
+_081221B8: .4byte gUnknown_030042FC
+_081221BC: .4byte 0x0201b000
+_081221C0: .4byte 0x00000282
+_081221C4: .4byte 0x0201b280
+_081221C8: .4byte 0xfffffd7e
+ thumb_func_end sub_81220C8
+
+ thumb_func_start sub_81221CC
+sub_81221CC: @ 81221CC
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ ldr r3, _081221E4
+_081221D6:
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _081221E8
+ movs r0, 0x1
+ b _081221F4
+ .align 2, 0
+_081221E4: .4byte gUnknown_02039270
+_081221E8:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x2
+ bls _081221D6
+ movs r0, 0
+_081221F4:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81221CC
+
+ thumb_func_start sub_81221F8
+sub_81221F8: @ 81221F8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x5
+ movs r1, 0x1
+ bl sub_806D538
+ ldr r5, _08122248
+ ldrb r1, [r5]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0812224C
+ adds r0, r1
+ bl sub_8122030
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08122284
+ ldrb r0, [r5]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_81221CC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x1
+ bne _0812225C
+ ldr r1, _08122250
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0x10]
+ ldr r1, _08122254
+ ldr r2, _08122258
+ movs r0, 0x1
+ b _08122270
+ .align 2, 0
+_08122248: .4byte gUnknown_03005CE0
+_0812224C: .4byte gPlayerParty
+_08122250: .4byte gTasks
+_08122254: .4byte gUnknown_084017D8
+_08122258: .4byte gUnknown_084017B0
+_0812225C:
+ ldr r1, _08122278
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x10]
+ ldr r1, _0812227C
+ ldr r2, _08122280
+ movs r0, 0
+_08122270:
+ movs r3, 0
+ bl sub_806E750
+ b _0812229E
+ .align 2, 0
+_08122278: .4byte gTasks
+_0812227C: .4byte gUnknown_084017D8
+_08122280: .4byte gUnknown_084017B0
+_08122284:
+ ldr r1, _081222A4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0, 0x10]
+ ldr r1, _081222A8
+ ldr r2, _081222AC
+ movs r0, 0x2
+ movs r3, 0
+ bl sub_806E750
+_0812229E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081222A4: .4byte gTasks
+_081222A8: .4byte gUnknown_084017D8
+_081222AC: .4byte gUnknown_084017B0
+ thumb_func_end sub_81221F8
+
+ thumb_func_start sub_81222B0
+sub_81222B0: @ 81222B0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _081222DC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _0812237C
+ adds r0, r4, 0
+ bl sub_806BE38
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ beq _081222E0
+ cmp r0, 0x2
+ beq _08122354
+ b _0812237C
+ .align 2, 0
+_081222DC: .4byte gPaletteFade
+_081222E0:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_806CA38
+ ldr r1, _08122320
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ beq _08122334
+ ldrb r1, [r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08122324
+ adds r0, r1
+ ldr r1, _08122328
+ bl GetMonNickname
+ adds r0, r4, 0
+ bl sub_81221F8
+ ldr r1, _0812232C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08122330
+ str r1, [r0]
+ b _08122342
+ .align 2, 0
+_08122320: .4byte gUnknown_03005CE0
+_08122324: .4byte gPlayerParty
+_08122328: .4byte gStringVar1
+_0812232C: .4byte gTasks
+_08122330: .4byte sub_812238C
+_08122334:
+ ldr r0, _0812234C
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08122350
+ str r0, [r1]
+_08122342:
+ adds r0, r4, 0
+ bl sub_808B5B4
+ b _0812237C
+ .align 2, 0
+_0812234C: .4byte gTasks
+_08122350: .4byte sub_81224A8
+_08122354:
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8121E58
+ movs r0, 0x1
+ negs r0, r0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _08122384
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08122388
+ str r1, [r0]
+_0812237C:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08122384: .4byte gTasks
+_08122388: .4byte sub_8122450
+ thumb_func_end sub_81222B0
+
+ thumb_func_start sub_812238C
+sub_812238C: @ 812238C
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r4, r7, 0
+ ldr r0, _081223C8
+ ldrb r1, [r0, 0x7]
+ movs r3, 0x80
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0812244A
+ ldr r2, _081223CC
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _081223D0
+ bl GetMenuCursorPos
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812244A
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _0812244A
+ .align 2, 0
+_081223C8: .4byte gPaletteFade
+_081223CC: .4byte gMain
+_081223D0:
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _081223F2
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _0812244A
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _0812244A
+_081223F2:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0812243C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _08122430
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrb r4, [r0, 0x10]
+ ldr r5, _08122434
+ ldr r6, _08122438
+ 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 _0812244A
+ .align 2, 0
+_08122430: .4byte gTasks
+_08122434: .4byte gUnknown_084017D8
+_08122438: .4byte gUnknown_084017B0
+_0812243C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0812244A
+ adds r0, r4, 0
+ bl sub_8122838
+_0812244A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812238C
+
+ thumb_func_start sub_8122450
+sub_8122450: @ 8122450
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08122478
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08122470
+ ldr r0, _0812247C
+ ldr r0, [r0, 0x8]
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_08122470:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08122478: .4byte gPaletteFade
+_0812247C: .4byte gMain
+ thumb_func_end sub_8122450
+
+ thumb_func_start sub_8122480
+sub_8122480: @ 8122480
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _081224A4
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0812249A
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081224A0
+_0812249A:
+ adds r0, r2, 0
+ bl sub_8122838
+_081224A0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081224A4: .4byte gMain
+ thumb_func_end sub_8122480
+
+ thumb_func_start sub_81224A8
+sub_81224A8: @ 81224A8
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl sub_81220C8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _081224D0
+ movs r1, 0
+ bl sub_806D538
+ ldr r0, _081224CC
+ lsls r1, r4, 2
+ adds r1, r4
+ b _08122518
+ .align 2, 0
+_081224CC: .4byte gTasks
+_081224D0:
+ ldr r0, _081224F8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08122504
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _081224FC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08122500
+ str r1, [r0]
+ b _08122520
+ .align 2, 0
+_081224F8: .4byte gUnknown_02039270
+_081224FC: .4byte gTasks
+_08122500: .4byte sub_8122450
+_08122504:
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0xE
+ movs r1, 0
+ bl sub_806D538
+ ldr r0, _08122528
+ lsls r1, r5, 2
+ adds r1, r5
+_08122518:
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0812252C
+ str r0, [r1]
+_08122520:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08122528: .4byte gTasks
+_0812252C: .4byte sub_8122480
+ thumb_func_end sub_81224A8
+
+ thumb_func_start sub_8122530
+sub_8122530: @ 8122530
+ push {r4,r5,lr}
+ ldr r5, _08122578
+ ldr r4, _0812257C
+_08122536:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08122590
+ ldrb r0, [r5]
+ ldrb r1, [r4]
+ bl sub_806C994
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_806C658
+ ldrb r1, [r4]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08122580
+ adds r0, r1
+ ldr r1, _08122584
+ bl GetMonNickname
+ ldr r1, _08122588
+ ldrb r0, [r4]
+ strb r0, [r1]
+ ldrb r0, [r5]
+ bl sub_81221F8
+ ldr r0, _0812258C
+ bl SetMainCallback2
+ b _0812259C
+ .align 2, 0
+_08122578: .4byte 0x0201b260
+_0812257C: .4byte gUnknown_020384F0
+_08122580: .4byte gPlayerParty
+_08122584: .4byte gStringVar1
+_08122588: .4byte gUnknown_03005CE0
+_0812258C: .4byte sub_806AEDC
+_08122590:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08122536
+_0812259C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8122530
+
+ thumb_func_start sub_81225A4
+sub_81225A4: @ 81225A4
+ push {lr}
+ ldr r2, _081225C8
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r2, _081225CC
+ movs r0, 0x4
+ movs r1, 0xFF
+ movs r3, 0x5
+ bl sub_806AF4C
+ ldr r0, _081225D0
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081225C8: .4byte gPaletteFade
+_081225CC: .4byte sub_812238C
+_081225D0: .4byte sub_8122530
+ thumb_func_end sub_81225A4
+
+ thumb_func_start sub_81225D4
+sub_81225D4: @ 81225D4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0812263C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _08122632
+ ldr r2, _08122640
+ ldr r1, _08122644
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0xE]
+ lsls r1, 16
+ asrs r1, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r4, [r0, 0x2E]
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r3, 0
+ bl DestroyTask
+ ldr r0, _08122648
+ ldr r1, _0812264C
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08122650
+ ldr r1, _08122654
+ ldrb r2, [r1]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _08122658
+ str r5, [sp]
+ adds r1, r4, 0
+ bl sub_809D8BC
+_08122632:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812263C: .4byte gPaletteFade
+_08122640: .4byte gSprites
+_08122644: .4byte gTasks
+_08122648: .4byte 0x0201b000
+_0812264C: .4byte 0x00000262
+_08122650: .4byte gPlayerParty
+_08122654: .4byte gPlayerPartyCount
+_08122658: .4byte sub_81225A4
+ thumb_func_end sub_81225D4
+
+ thumb_func_start sub_812265C
+sub_812265C: @ 812265C
+ 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, _0812268C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08122690
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812268C: .4byte gTasks
+_08122690: .4byte sub_81225D4
+ thumb_func_end sub_812265C
+
+ thumb_func_start sub_8122694
+sub_8122694: @ 8122694
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r3, _081226D4
+ ldr r2, _081226D8
+_081226A0:
+ adds r1, r4, r3
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _081226DC
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldrb r0, [r2]
+ lsls r1, r4, 3
+ subs r1, r4
+ lsls r1, 25
+ movs r2, 0xE0
+ lsls r2, 21
+ adds r1, r2
+ lsrs r1, 24
+ bl sub_806BC3C
+ cmp r4, 0x2
+ bne _081226CC
+ adds r0, r5, 0
+ bl sub_806C890
+_081226CC:
+ adds r0, r5, 0
+ bl sub_8122838
+ b _08122716
+ .align 2, 0
+_081226D4: .4byte gUnknown_02039270
+_081226D8: .4byte gUnknown_03005CE0
+_081226DC:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _081226A0
+ movs r0, 0x20
+ bl PlaySE
+ movs r0, 0x14
+ movs r1, 0xA
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_8072DEC
+ bl sub_806D5A4
+ ldr r0, _0812271C
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _08122720
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08122724
+ str r1, [r0]
+_08122716:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812271C: .4byte gOtherText_NoMoreThreePoke
+_08122720: .4byte gTasks
+_08122724: .4byte sub_8122728
+ thumb_func_end sub_8122694
+
+ thumb_func_start sub_8122728
+sub_8122728: @ 8122728
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08122768
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08122760
+ ldr r0, _0812276C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0812274A
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08122760
+_0812274A:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_8072DEC
+ adds r0, r4, 0
+ bl sub_8122838
+_08122760:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08122768: .4byte gUnknown_0202E8F6
+_0812276C: .4byte gMain
+ thumb_func_end sub_8122728
+
+ thumb_func_start sub_8122770
+sub_8122770: @ 8122770
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ ldr r5, _08122798
+ ldr r3, _0812279C
+_0812277C:
+ adds r2, r4, r3
+ ldrb r1, [r2]
+ ldrb r0, [r5]
+ adds r0, 0x1
+ cmp r1, r0
+ bne _081227B4
+ movs r1, 0
+ strb r1, [r2]
+ cmp r4, 0
+ beq _081227A0
+ cmp r4, 0x1
+ beq _081227AC
+ b _081227BE
+ .align 2, 0
+_08122798: .4byte gUnknown_03005CE0
+_0812279C: .4byte gUnknown_02039270
+_081227A0:
+ ldrb r0, [r3, 0x1]
+ strb r0, [r3]
+ ldrb r0, [r3, 0x2]
+ strb r0, [r3, 0x1]
+ strb r4, [r3, 0x2]
+ b _081227BE
+_081227AC:
+ ldrb r0, [r3, 0x2]
+ strb r0, [r3, 0x1]
+ strb r1, [r3, 0x2]
+ b _081227BE
+_081227B4:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _0812277C
+_081227BE:
+ ldrb r0, [r5]
+ movs r1, 0x70
+ bl sub_806BC3C
+ ldr r4, _081227F8
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _081227DA
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1C
+ bl sub_806BC3C
+_081227DA:
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _081227EC
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2A
+ bl sub_806BC3C
+_081227EC:
+ adds r0, r6, 0
+ bl sub_8122838
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081227F8: .4byte gUnknown_02039270
+ thumb_func_end sub_8122770
+
+ thumb_func_start sub_81227FC
+sub_81227FC: @ 81227FC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x14
+ movs r1, 0xA
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ bl sub_806D538
+ ldr r1, _08122830
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08122834
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08122830: .4byte gTasks
+_08122834: .4byte sub_81222B0
+ thumb_func_end sub_81227FC
+
+ thumb_func_start sub_8122838
+sub_8122838: @ 8122838
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_81227FC
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8122838
+
+ thumb_func_start sub_8122854
+sub_8122854: @ 8122854
+ push {r4,lr}
+ ldr r1, _08122874
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r1, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ adds r4, r1, 0
+ cmp r0, 0x4
+ bhi _081228E0
+ lsls r0, 2
+ ldr r1, _08122878
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08122874: .4byte 0x0201b000
+_08122878: .4byte _0812287C
+ .align 2, 0
+_0812287C:
+ .4byte _08122890
+ .4byte _081228A4
+ .4byte _081228AA
+ .4byte _081228BE
+ .4byte _081228D8
+_08122890:
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_81228E8
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r4, r2
+ b _081228CA
+_081228A4:
+ bl sub_806DA98
+ b _081228C2
+_081228AA:
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ bl sub_8122950
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r4, r2
+ b _081228CA
+_081228BE:
+ bl sub_81229B8
+_081228C2:
+ ldr r1, _081228D4
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+_081228CA:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _081228E0
+ .align 2, 0
+_081228D4: .4byte 0x0201b000
+_081228D8:
+ bl sub_806B908
+ movs r0, 0x1
+ b _081228E2
+_081228E0:
+ movs r0, 0
+_081228E2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8122854
+
+ thumb_func_start sub_81228E8
+sub_81228E8: @ 81228E8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+_081228F0:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08122948
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _08122912
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r2, 0x3
+ adds r3, r4, 0
+ bl sub_806D880
+_08122912:
+ ldr r0, _0812294C
+ lsls r1, r5, 5
+ adds r3, r1, r0
+ ldrh r0, [r3]
+ cmp r0, 0
+ beq _08122936
+ adds r4, r5, 0x3
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0x3
+ bl sub_806D99C
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_806D50C
+_08122936:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _081228F0
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08122948: .4byte gPlayerParty
+_0812294C: .4byte gUnknown_02023A00
+ thumb_func_end sub_81228E8
+
+ thumb_func_start sub_8122950
+sub_8122950: @ 8122950
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+_08122958:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _081229B0
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _08122984
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_806DCD4
+_08122984:
+ ldr r0, _081229B4
+ lsls r1, r5, 5
+ adds r2, r1, r0
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _0812299E
+ adds r1, r5, 0x3
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r2, 0x2]
+ adds r0, r6, 0
+ bl sub_806DCD4
+_0812299E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _08122958
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081229B0: .4byte gPlayerParty
+_081229B4: .4byte gUnknown_02023A00
+ thumb_func_end sub_8122950
+
+ thumb_func_start sub_81229B8
+sub_81229B8: @ 81229B8
+ push {r4-r7,lr}
+ movs r5, 0
+ movs r7, 0x64
+ ldr r6, _08122A00
+_081229C0:
+ adds r0, r5, 0
+ muls r0, r7
+ adds r4, r0, r6
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _08122A36
+ adds r0, r5, 0
+ movs r1, 0x3
+ adds r2, r4, 0
+ bl sub_806E4A4
+ adds r0, r4, 0
+ bl sub_80A1CD8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08122A04
+ cmp r0, 0x6
+ beq _08122A04
+ subs r2, r0, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_806E104
+ b _08122A12
+ .align 2, 0
+_08122A00: .4byte gPlayerParty
+_08122A04:
+ adds r2, r5, 0
+ muls r2, r7
+ adds r2, r6
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_806E294
+_08122A12:
+ adds r4, r5, 0
+ muls r4, r7
+ adds r4, r6
+ adds r0, r5, 0
+ movs r1, 0x3
+ adds r2, r4, 0
+ bl sub_806E3C0
+ adds r0, r5, 0
+ movs r1, 0x3
+ adds r2, r4, 0
+ bl sub_806E050
+ adds r0, r5, 0
+ movs r1, 0x3
+ adds r2, r4, 0
+ bl sub_806E630
+_08122A36:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _081229C0
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81229B8
+
+ thumb_func_start sub_8122A48
+sub_8122A48: @ 8122A48
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _08122AA0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08122A98
+ ldr r0, _08122AA4
+ lsls r4, r6, 2
+ adds r4, r6
+ lsls r4, 3
+ adds r4, r0
+ movs r0, 0x1E
+ strh r0, [r4, 0x8]
+ ldr r5, _08122AA8
+ ldrh r1, [r5]
+ adds r0, r6, 0
+ movs r2, 0
+ bl sub_806D4AC
+ ldrh r1, [r5, 0x20]
+ adds r0, r6, 0
+ movs r2, 0x1
+ bl sub_806D4AC
+ adds r5, 0x40
+ ldrh r1, [r5]
+ adds r0, r6, 0
+ movs r2, 0x2
+ bl sub_806D4AC
+ ldr r0, _08122AAC
+ str r0, [r4]
+ ldr r0, _08122AB0
+ ldr r1, _08122AB4
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+_08122A98:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08122AA0: .4byte gPaletteFade
+_08122AA4: .4byte gTasks
+_08122AA8: .4byte gUnknown_02023A00
+_08122AAC: .4byte sub_8122AB8
+_08122AB0: .4byte 0x0201b000
+_08122AB4: .4byte 0x00000261
+ thumb_func_end sub_8122A48
+
+ thumb_func_start sub_8122AB8
+sub_8122AB8: @ 8122AB8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08122AFC
+ ldrh r1, [r0, 0x20]
+ adds r0, 0x40
+ ldrh r2, [r0]
+ adds r0, r4, 0
+ bl sub_806D3B4
+ ldr r1, _08122B00
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08122AF4
+ ldr r0, _08122B04
+ str r0, [r1]
+ ldr r0, _08122B08
+ ldr r1, _08122B0C
+ adds r0, r1
+ movs r1, 0x2
+ strb r1, [r0]
+ movs r0, 0x78
+ bl PlaySE
+_08122AF4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08122AFC: .4byte gUnknown_02023A00
+_08122B00: .4byte gTasks
+_08122B04: .4byte sub_8122B10
+_08122B08: .4byte 0x0201b000
+_08122B0C: .4byte 0x00000261
+ thumb_func_end sub_8122AB8
+
+ thumb_func_start sub_8122B10
+sub_8122B10: @ 8122B10
+ 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
+ str r0, [sp, 0x4]
+ movs r0, 0
+ mov r8, r0
+ ldr r1, _08122B5C
+ mov r10, r1
+ ldr r2, _08122B60
+ mov r9, r2
+_08122B2E:
+ mov r1, r8
+ lsls r0, r1, 5
+ mov r2, r10
+ adds r6, r0, r2
+ ldrh r1, [r6]
+ adds r7, r0, 0
+ cmp r1, 0
+ beq _08122BDA
+ mov r4, r8
+ adds r4, 0x3
+ lsls r0, r4, 24
+ lsrs r5, r0, 24
+ ldrh r2, [r6, 0x10]
+ ldrh r3, [r6, 0x12]
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_806E420
+ ldrh r0, [r6, 0x10]
+ cmp r0, 0
+ bne _08122B64
+ movs r2, 0x7
+ b _08122B76
+ .align 2, 0
+_08122B5C: .4byte gUnknown_02023A00
+_08122B60: .4byte gStringVar1
+_08122B64:
+ ldr r1, _08122B88
+ adds r0, r7, r1
+ ldr r0, [r0]
+ bl pokemon_ailments_get_primary
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _08122B8C
+_08122B76:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ movs r1, 0x3
+ bl sub_806E104
+ b _08122B96
+ .align 2, 0
+_08122B88: .4byte gUnknown_02023A14
+_08122B8C:
+ ldrb r2, [r6, 0xF]
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_806E1F4
+_08122B96:
+ mov r2, r10
+ adds r6, r7, r2
+ ldrh r0, [r6]
+ ldrb r1, [r6, 0x1C]
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r2, _08122C0C
+ adds r5, r7, r2
+ str r5, [sp]
+ movs r2, 0x3
+ adds r3, r4, 0
+ bl sub_806E35C
+ mov r0, r9
+ adds r1, r5, 0
+ bl StringCopy
+ mov r0, r9
+ bl StringGetEnd10
+ mov r0, r9
+ bl sub_814A568
+ adds r0, r4, 0
+ movs r1, 0x3
+ mov r2, r9
+ bl box_print
+ ldrh r2, [r6, 0x10]
+ ldrh r3, [r6, 0x12]
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl sub_806E574
+_08122BDA:
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x2
+ bls _08122B2E
+ ldr r1, _08122C10
+ ldr r2, [sp, 0x4]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08122C14
+ str r1, [r0]
+ movs r1, 0
+ strh r1, [r0, 0x8]
+ 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
+_08122C0C: .4byte gUnknown_02023A04
+_08122C10: .4byte gTasks
+_08122C14: .4byte sub_8122C18
+ thumb_func_end sub_8122B10
+
+ thumb_func_start sub_8122C18
+sub_8122C18: @ 8122C18
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08122C58
+ 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
+ movs r1, 0x80
+ lsls r1, 17
+ cmp r0, r1
+ bne _08122C4E
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _08122C5C
+ str r0, [r4]
+_08122C4E:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08122C58: .4byte gTasks
+_08122C5C: .4byte sub_8122450
+ thumb_func_end sub_8122C18
+
+ thumb_func_start unref_sub_8122C60
+unref_sub_8122C60: @ 8122C60
+ push {r4,r5,lr}
+ ldr r1, _08122C80
+ 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 _08122C76
+ b _08122D8A
+_08122C76:
+ lsls r0, 2
+ ldr r1, _08122C84
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08122C80: .4byte 0x0201b000
+_08122C84: .4byte _08122C88
+ .align 2, 0
+_08122C88:
+ .4byte _08122CA8
+ .4byte _08122CE8
+ .4byte _08122CEE
+ .4byte _08122D02
+ .4byte _08122D2C
+ .4byte _08122D32
+ .4byte _08122D44
+ .4byte _08122D5C
+_08122CA8:
+ ldr r0, _08122CD0
+ adds r5, r4, r0
+ movs r1, 0
+ ldrsh r3, [r5, r1]
+ ldr r0, _08122CD4
+ ldrb r0, [r0]
+ cmp r3, r0
+ bge _08122CDC
+ movs r2, 0x98
+ lsls r2, 2
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ ldrb r1, [r5]
+ movs r2, 0x64
+ muls r2, r3
+ ldr r3, _08122CD8
+ adds r2, r3
+ bl sub_806D90C
+ b _08122D84
+ .align 2, 0
+_08122CD0: .4byte 0x00000266
+_08122CD4: .4byte gPlayerPartyCount
+_08122CD8: .4byte gPlayerParty
+_08122CDC:
+ movs r0, 0
+ strh r0, [r5]
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r4, r0
+ b _08122D50
+_08122CE8:
+ bl sub_806DA98
+ b _08122D48
+_08122CEE:
+ 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 _08122D50
+_08122D02:
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ ldr r2, _08122D28
+ adds r5, r4, r2
+ ldrb r1, [r5]
+ bl sub_806BD58
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08122D84
+ movs r0, 0
+ strh r0, [r5]
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r4, r0
+ b _08122D50
+ .align 2, 0
+_08122D28: .4byte 0x00000266
+_08122D2C:
+ bl sub_806E334
+ b _08122D48
+_08122D32:
+ bl sub_806E0C4
+ ldr r1, _08122D40
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+ b _08122D50
+ .align 2, 0
+_08122D40: .4byte 0x0201b000
+_08122D44:
+ bl sub_806BCE8
+_08122D48:
+ ldr r1, _08122D58
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r2
+_08122D50:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _08122D8A
+ .align 2, 0
+_08122D58: .4byte 0x0201b000
+_08122D5C:
+ ldr r0, _08122D80
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ bl sub_806B58C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08122D84
+ movs r1, 0
+ strh r1, [r5]
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r4, r2
+ strh r1, [r0]
+ movs r0, 0x1
+ b _08122D8C
+ .align 2, 0
+_08122D80: .4byte 0x00000266
+_08122D84:
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_08122D8A:
+ movs r0, 0
+_08122D8C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_8122C60
+
+ thumb_func_start sub_8122D94
+sub_8122D94: @ 8122D94
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08122DCC
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08122DD0
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ adds r2, r0, 0
+ cmp r2, 0
+ bne _08122DE0
+ ldr r1, _08122DD4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0x10]
+ ldr r1, _08122DD8
+ ldr r2, _08122DDC
+ movs r0, 0
+ movs r3, 0
+ bl sub_806E750
+ b _08122DFA
+ .align 2, 0
+_08122DCC: .4byte gUnknown_03005CE0
+_08122DD0: .4byte gPlayerParty
+_08122DD4: .4byte gTasks
+_08122DD8: .4byte gUnknown_08401810
+_08122DDC: .4byte gUnknown_084017F0
+_08122DE0:
+ ldr r1, _08122E00
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x1
+ strh r1, [r0, 0x10]
+ ldr r1, _08122E04
+ ldr r2, _08122E08
+ movs r0, 0x1
+ movs r3, 0
+ bl sub_806E750
+_08122DFA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08122E00: .4byte gTasks
+_08122E04: .4byte gUnknown_08401810
+_08122E08: .4byte gUnknown_084017F0
+ thumb_func_end sub_8122D94
+
+ thumb_func_start sub_8122E0C
+sub_8122E0C: @ 8122E0C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08122E34
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08122E9C
+ adds r0, r4, 0
+ bl sub_806BD80
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ beq _08122E38
+ cmp r0, 0x2
+ beq _08122E84
+ b _08122E9C
+ .align 2, 0
+_08122E34: .4byte gPaletteFade
+_08122E38:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_806CA38
+ ldr r1, _08122E70
+ strb r0, [r1]
+ ldrb r1, [r1]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08122E74
+ adds r0, r1
+ ldr r1, _08122E78
+ bl GetMonNickname
+ adds r0, r4, 0
+ bl sub_8122D94
+ ldr r1, _08122E7C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08122E80
+ str r1, [r0]
+ b _08122E9C
+ .align 2, 0
+_08122E70: .4byte gUnknown_03005CE0
+_08122E74: .4byte gPlayerParty
+_08122E78: .4byte gStringVar1
+_08122E7C: .4byte gTasks
+_08122E80: .4byte sub_8122EAC
+_08122E84:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _08122EA4
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r1, _08122EA8
+ movs r0, 0xFF
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl sub_8123138
+_08122E9C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08122EA4: .4byte gUnknown_03005CE0
+_08122EA8: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_8122E0C
+
+ thumb_func_start sub_8122EAC
+sub_8122EAC: @ 8122EAC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r4, r7, 0
+ ldr r0, _08122EE8
+ ldrb r1, [r0, 0x7]
+ movs r3, 0x80
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08122F6A
+ ldr r2, _08122EEC
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08122EF0
+ bl GetMenuCursorPos
+ lsls r0, 24
+ cmp r0, 0
+ beq _08122F6A
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _08122F6A
+ .align 2, 0
+_08122EE8: .4byte gPaletteFade
+_08122EEC: .4byte gMain
+_08122EF0:
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08122F12
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ beq _08122F6A
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _08122F6A
+_08122F12:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08122F5C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, _08122F50
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrb r4, [r0, 0x10]
+ ldr r5, _08122F54
+ ldr r6, _08122F58
+ 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 _08122F6A
+ .align 2, 0
+_08122F50: .4byte gTasks
+_08122F54: .4byte gUnknown_08401810
+_08122F58: .4byte gUnknown_084017F0
+_08122F5C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08122F6A
+ adds r0, r4, 0
+ bl sub_81230F4
+_08122F6A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8122EAC
+
+ thumb_func_start sub_8122F70
+sub_8122F70: @ 8122F70
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08122F88
+ ldr r1, _08122F8C
+ ldrb r1, [r1]
+ strh r1, [r2]
+ bl sub_8123138
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08122F88: .4byte gUnknown_0202E8CC
+_08122F8C: .4byte gUnknown_03005CE0
+ thumb_func_end sub_8122F70
+
+ thumb_func_start sub_8122F90
+sub_8122F90: @ 8122F90
+ push {r4,r5,lr}
+ ldr r5, _08122FD8
+ ldr r4, _08122FDC
+_08122F96:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08122FF0
+ ldrb r0, [r5]
+ ldrb r1, [r4]
+ bl sub_806C994
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_806BF74
+ ldrb r1, [r4]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08122FE0
+ adds r0, r1
+ ldr r1, _08122FE4
+ bl GetMonNickname
+ ldr r1, _08122FE8
+ ldrb r0, [r4]
+ strb r0, [r1]
+ ldrb r0, [r5]
+ bl sub_8122D94
+ ldr r0, _08122FEC
+ bl SetMainCallback2
+ b _08122FFC
+ .align 2, 0
+_08122FD8: .4byte 0x0201b260
+_08122FDC: .4byte gUnknown_020384F0
+_08122FE0: .4byte gPlayerParty
+_08122FE4: .4byte gStringVar1
+_08122FE8: .4byte gUnknown_03005CE0
+_08122FEC: .4byte sub_806AEDC
+_08122FF0:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08122F96
+_08122FFC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8122F90
+
+ thumb_func_start sub_8123004
+sub_8123004: @ 8123004
+ push {lr}
+ ldr r2, _08123028
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r2, _0812302C
+ movs r0, 0x6
+ movs r1, 0xFF
+ movs r3, 0x5
+ bl sub_806AF4C
+ ldr r0, _08123030
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08123028: .4byte gPaletteFade
+_0812302C: .4byte sub_8122EAC
+_08123030: .4byte sub_8122F90
+ thumb_func_end sub_8123004
+
+ thumb_func_start sub_8123034
+sub_8123034: @ 8123034
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0812309C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _08123092
+ ldr r2, _081230A0
+ ldr r1, _081230A4
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0xE]
+ lsls r1, 16
+ asrs r1, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r4, [r0, 0x2E]
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r3, 0
+ bl DestroyTask
+ ldr r0, _081230A8
+ ldr r1, _081230AC
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _081230B0
+ ldr r1, _081230B4
+ ldrb r2, [r1]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _081230B8
+ str r5, [sp]
+ adds r1, r4, 0
+ bl sub_809D8BC
+_08123092:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812309C: .4byte gPaletteFade
+_081230A0: .4byte gSprites
+_081230A4: .4byte gTasks
+_081230A8: .4byte 0x0201b000
+_081230AC: .4byte 0x00000262
+_081230B0: .4byte gPlayerParty
+_081230B4: .4byte gPlayerPartyCount
+_081230B8: .4byte sub_8123004
+ thumb_func_end sub_8123034
+
+ thumb_func_start sub_81230BC
+sub_81230BC: @ 81230BC
+ 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, _081230EC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _081230F0
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081230EC: .4byte gTasks
+_081230F0: .4byte sub_8123034
+ thumb_func_end sub_81230BC
+
+ thumb_func_start sub_81230F4
+sub_81230F4: @ 81230F4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x14
+ movs r1, 0xA
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_8072DEC
+ movs r0, 0xF
+ movs r1, 0
+ bl sub_806D538
+ ldr r1, _08123130
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08123134
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08123130: .4byte gTasks
+_08123134: .4byte sub_8122E0C
+ thumb_func_end sub_81230F4
+
+ thumb_func_start sub_8123138
+sub_8123138: @ 8123138
+ 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, _08123168
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0812316C
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08123168: .4byte gTasks
+_0812316C: .4byte sub_8123170
+ thumb_func_end sub_8123138
+
+ thumb_func_start sub_8123170
+sub_8123170: @ 8123170
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0812319C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08123194
+ ldr r0, _081231A0
+ ldr r1, _081231A4
+ str r1, [r0]
+ ldr r0, _081231A8
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_08123194:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812319C: .4byte gPaletteFade
+_081231A0: .4byte gUnknown_0300485C
+_081231A4: .4byte sub_81231AC
+_081231A8: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end sub_8123170
+
+ thumb_func_start sub_81231AC
+sub_81231AC: @ 81231AC
+ push {lr}
+ bl pal_fill_black
+ ldr r0, _081231C0
+ movs r1, 0xA
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081231C0: .4byte sub_81231C4
+ thumb_func_end sub_81231AC
+
+ thumb_func_start sub_81231C4
+sub_81231C4: @ 81231C4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081231E4
+ adds r0, r4, 0
+ bl DestroyTask
+ bl ScriptContext2_Disable
+ bl EnableBothScriptContexts
+_081231E4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81231C4
+
+ thumb_func_start sub_81231EC
+sub_81231EC: @ 81231EC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08123210
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0812320A
+ ldr r0, _08123214
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_0812320A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08123210: .4byte gPaletteFade
+_08123214: .4byte sub_8123244
+ thumb_func_end sub_81231EC
+
+ thumb_func_start sub_8123218
+sub_8123218: @ 8123218
+ push {lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ ldr r0, _08123240
+ movs r1, 0x1
+ 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
+_08123240: .4byte sub_81231EC
+ thumb_func_end sub_8123218
+
+ thumb_func_start sub_8123244
+sub_8123244: @ 8123244
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ ldr r1, _08123268
+ ldr r2, _0812326C
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ mov r9, r1
+ cmp r0, 0x8
+ bhi _08123298
+ lsls r0, 2
+ ldr r1, _08123270
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08123268: .4byte gMain
+_0812326C: .4byte 0x0000043c
+_08123270: .4byte _08123274
+ .align 2, 0
+_08123274:
+ .4byte _08123298
+ .4byte _08123384
+ .4byte _081233E8
+ .4byte _08123484
+ .4byte _081234A0
+ .4byte _08123504
+ .4byte _08123598
+ .4byte _08123678
+ .4byte _081236B0
+_08123298:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl remove_some_task
+ movs r3, 0xC0
+ lsls r3, 19
+ movs r4, 0xC0
+ lsls r4, 9
+ add r0, sp, 0xC
+ mov r9, r0
+ add r2, sp, 0x8
+ movs r6, 0
+ ldr r1, _08123368
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r7, _0812336C
+ movs r0, 0x81
+ lsls r0, 24
+ mov r8, r0
+_081232C0:
+ strh r6, [r2]
+ add r0, sp, 0x8
+ 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 _081232C0
+ strh r6, [r2]
+ add r2, sp, 0x8
+ str r2, [r1]
+ str r3, [r1, 0x4]
+ lsrs r0, r4, 1
+ mov r2, r8
+ 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, 0xC]
+ ldr r2, _08123368
+ mov r1, r9
+ 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, 0x8
+ strh r4, [r0]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ lsrs r3, 1
+ movs r4, 0x81
+ lsls r4, 24
+ orrs r3, r4
+ str r3, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r1, _08123370
+ ldr r0, _08123374
+ str r0, [r1]
+ adds r3, r0, 0
+ ldr r5, _08123378
+ ldr r0, _0812337C
+ mov r9, r0
+ add r1, sp, 0x8
+ movs r7, 0
+ movs r6, 0x80
+ lsls r6, 5
+ ldr r0, _0812336C
+ mov r8, r0
+_08123338:
+ strh r7, [r1]
+ add r0, sp, 0x8
+ str r0, [r2]
+ str r3, [r2, 0x4]
+ mov r0, r8
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ adds r3, r6
+ subs r5, r6
+ cmp r5, r6
+ bhi _08123338
+ strh r7, [r1]
+ add r1, sp, 0x8
+ str r1, [r2]
+ str r3, [r2, 0x4]
+ lsrs r0, r5, 1
+ orrs r0, r4
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r1, _08123380
+ add r1, r9
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _0812370C
+ .align 2, 0
+_08123368: .4byte 0x040000d4
+_0812336C: .4byte 0x81000800
+_08123370: .4byte gUnknown_02039274
+_08123374: .4byte 0x02017000
+_08123378: .4byte 0x000010fc
+_0812337C: .4byte gMain
+_08123380: .4byte 0x0000043c
+_08123384:
+ bl ResetSpriteData
+ bl ResetTasks
+ bl FreeAllSpritePalettes
+ bl ResetPaletteFade
+ bl sub_807C828
+ movs r4, 0
+ ldr r0, _081233D4
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0xF0
+ movs r2, 0
+_081233A4:
+ lsls r0, r4, 2
+ adds r0, r1, r0
+ str r2, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x13
+ bls _081233A4
+ bl InitMapMusic
+ bl ResetMapMusic
+ ldr r2, _081233D8
+ ldr r1, _081233DC
+ movs r0, 0
+ strh r0, [r1]
+ strh r0, [r2]
+ ldr r1, _081233E0
+ ldr r2, _081233E4
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _0812370C
+ .align 2, 0
+_081233D4: .4byte gUnknown_08396FC4
+_081233D8: .4byte gSpriteCoordOffsetX
+_081233DC: .4byte gSpriteCoordOffsetY
+_081233E0: .4byte gMain
+_081233E4: .4byte 0x0000043c
+_081233E8:
+ movs r4, 0
+ ldr r5, _08123454
+_081233EC:
+ lsls r0, r4, 3
+ adds r0, r5
+ bl LoadCompressedObjectPic
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _081233EC
+ ldr r0, _08123458
+ bl LoadSpritePalettes
+ ldr r0, _0812345C
+ ldr r4, _08123460
+ adds r1, r4, 0
+ bl sub_800D238
+ ldr r0, _08123464
+ movs r2, 0xB4
+ lsls r2, 1
+ adds r1, r4, r2
+ bl sub_800D238
+ ldr r0, _08123468
+ movs r2, 0xA5
+ lsls r2, 3
+ adds r1, r4, r2
+ bl sub_800D238
+ ldr r0, _0812346C
+ ldr r1, _08123470
+ adds r4, r1
+ adds r1, r4, 0
+ bl sub_800D238
+ ldr r0, _08123474
+ movs r1, 0
+ movs r2, 0x80
+ bl LoadPalette
+ ldr r0, _08123478
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r1, _0812347C
+ ldr r2, _08123480
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _0812370C
+ .align 2, 0
+_08123454: .4byte gUnknown_08401CF8
+_08123458: .4byte gUnknown_08401D18
+_0812345C: .4byte gCableCarMtChimneyTilemap
+_08123460: .4byte 0x02019000
+_08123464: .4byte gCableCarTreeTilemap
+_08123468: .4byte gCableCarMountainTilemap
+_0812346C: .4byte gCableCarPylonStemTilemap
+_08123470: .4byte 0x000009d8
+_08123474: .4byte gCableCarBG_Pal
+_08123478: .4byte gCableCarBG_Gfx
+_0812347C: .4byte gMain
+_08123480: .4byte 0x0000043c
+_08123484:
+ bl sub_8124118
+ bl RunTasks
+ ldr r1, _08123498
+ ldr r0, _0812349C
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _0812370C
+ .align 2, 0
+_08123498: .4byte gMain
+_0812349C: .4byte 0x0000043c
+_081234A0:
+ ldr r0, _081234B4
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x2]
+ cmp r0, 0x7
+ bne _081234BC
+ ldr r1, _081234B8
+ add r1, r9
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _0812370C
+ .align 2, 0
+_081234B4: .4byte gUnknown_02039274
+_081234B8: .4byte 0x0000043c
+_081234BC:
+ ldr r0, _081234FC
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0xF0
+ ldr r0, [r1]
+ cmp r0, 0
+ bne _081234CC
+ b _0812370E
+_081234CC:
+ movs r4, 0
+ adds r3, r1, 0
+ movs r5, 0xD
+ negs r5, r5
+_081234D4:
+ lsls r0, r4, 2
+ adds r0, r3, r0
+ ldr r2, [r0]
+ cmp r2, 0
+ beq _081234E6
+ ldrb r1, [r2, 0x5]
+ adds r0, r5, 0
+ ands r0, r1
+ strb r0, [r2, 0x5]
+_081234E6:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x13
+ bls _081234D4
+ ldr r1, _08123500
+ add r1, r9
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _0812370C
+ .align 2, 0
+_081234FC: .4byte gUnknown_08396FC4
+_08123500: .4byte 0x0000043c
+_08123504:
+ ldr r0, _08123578
+ ldr r5, _0812357C
+ movs r1, 0x20
+ str r1, [sp]
+ movs r1, 0xF
+ str r1, [sp, 0x4]
+ adds r1, r5, 0
+ movs r2, 0
+ movs r3, 0x11
+ bl sub_8124F08
+ ldr r0, _08123580
+ movs r2, 0xF0
+ lsls r2, 2
+ adds r1, r5, r2
+ movs r2, 0x1E
+ str r2, [sp]
+ movs r2, 0x14
+ mov r9, r2
+ str r2, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8124F08
+ ldr r0, _08123584
+ mov r8, r0
+ ldr r0, [r0]
+ ldr r6, _08123588
+ adds r0, r6
+ ldr r1, _0812358C
+ movs r2, 0x5
+ str r2, [sp]
+ movs r4, 0x2
+ str r4, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8124F08
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, r6
+ movs r2, 0x87
+ lsls r2, 4
+ adds r5, r2
+ str r4, [sp]
+ mov r1, r9
+ str r1, [sp, 0x4]
+ adds r1, r5, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl sub_8124F08
+ ldr r1, _08123590
+ ldr r2, _08123594
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _0812370C
+ .align 2, 0
+_08123578: .4byte 0x0600e800
+_0812357C: .4byte 0x02019168
+_08123580: .4byte 0x0600f000
+_08123584: .4byte gUnknown_02039274
+_08123588: .4byte 0x000008fc
+_0812358C: .4byte gCableCarPylonHookTilemapEntries
+_08123590: .4byte gMain
+_08123594: .4byte 0x0000043c
+_08123598:
+ ldr r0, _08123664
+ ldrb r0, [r0]
+ bl sub_81248AC
+ ldr r0, _08123668
+ mov r8, r0
+ ldr r0, [r0]
+ adds r0, 0xFC
+ ldr r4, _0812366C
+ movs r6, 0xC
+ str r6, [sp]
+ movs r5, 0x3
+ str r5, [sp, 0x4]
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0xE
+ bl sub_8124F08
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0xFC
+ adds r1, r4, 0
+ adds r1, 0x48
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ movs r2, 0xC
+ movs r3, 0x11
+ bl sub_8124F08
+ mov r2, r8
+ ldr r0, [r2]
+ adds r0, 0xFC
+ adds r1, r4, 0
+ adds r1, 0x90
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ movs r2, 0x18
+ movs r3, 0x14
+ bl sub_8124F08
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0xFC
+ movs r2, 0x90
+ negs r2, r2
+ adds r2, r4
+ mov r9, r2
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ mov r1, r9
+ movs r2, 0
+ movs r3, 0x11
+ bl sub_8124F08
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0xFC
+ subs r4, 0x48
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x14
+ bl sub_8124F08
+ mov r2, r8
+ ldr r0, [r2]
+ adds r0, 0xFC
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ mov r1, r9
+ movs r2, 0xC
+ movs r3, 0x14
+ bl sub_8124F08
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0xFC
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ adds r1, r4, 0
+ movs r2, 0xC
+ movs r3, 0x17
+ bl sub_8124F08
+ mov r2, r8
+ ldr r0, [r2]
+ adds r0, 0xFC
+ str r6, [sp]
+ str r5, [sp, 0x4]
+ mov r1, r9
+ movs r2, 0x18
+ movs r3, 0x17
+ bl sub_8124F08
+ ldr r1, _08123670
+ ldr r0, _08123674
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _0812370C
+ .align 2, 0
+_08123664: .4byte gUnknown_0202E8CC
+_08123668: .4byte gUnknown_02039274
+_0812366C: .4byte 0x02019090
+_08123670: .4byte gMain
+_08123674: .4byte 0x0000043c
+_08123678:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x3
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _081236A4
+ movs r1, 0x1
+ bl FadeInNewBGM
+ movs r0, 0x1
+ bl sub_8123FBC
+ ldr r1, _081236A8
+ ldr r2, _081236AC
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _0812370C
+ .align 2, 0
+_081236A4: .4byte 0x000001a9
+_081236A8: .4byte gMain
+_081236AC: .4byte 0x0000043c
+_081236B0:
+ ldr r3, _081236E4
+ ldrh r2, [r3]
+ movs r0, 0
+ strh r0, [r3]
+ ldr r4, _081236E8
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r0, _081236EC
+ bl SetVBlankCallback
+ ldr r0, _081236F0
+ bl SetMainCallback2
+ ldr r0, _081236F4
+ movs r1, 0
+ bl CreateTask
+ ldr r0, _081236F8
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08123700
+ ldr r0, _081236FC
+ b _08123702
+ .align 2, 0
+_081236E4: .4byte 0x04000208
+_081236E8: .4byte 0x04000200
+_081236EC: .4byte sub_8123C40
+_081236F0: .4byte mainloop
+_081236F4: .4byte sub_8123878
+_081236F8: .4byte gUnknown_0202E8CC
+_081236FC: .4byte sub_81239E4
+_08123700:
+ ldr r0, _0812371C
+_08123702:
+ movs r1, 0x1
+ bl CreateTask
+ ldr r1, _08123720
+ ldr r1, [r1]
+_0812370C:
+ strb r0, [r1]
+_0812370E:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812371C: .4byte sub_8123AF8
+_08123720: .4byte gUnknown_02039274
+ thumb_func_end sub_8123244
+
+ thumb_func_start mainloop
+mainloop: @ 8123724
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ bl MapMusicMain
+ pop {r0}
+ bx r0
+ thumb_func_end mainloop
+
+ thumb_func_start sub_8123740
+sub_8123740: @ 8123740
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ movs r4, 0
+ movs r0, 0
+ bl sub_8123FBC
+ ldr r0, _08123854
+ strh r4, [r0]
+ movs r0, 0
+ bl sub_807C9B4
+ add r7, sp, 0x4
+ ldr r0, _08123858
+ ldr r0, [r0]
+ adds r1, r0, 0
+ adds r1, 0xF0
+ movs r2, 0
+_08123766:
+ lsls r0, r4, 2
+ adds r0, r1, r0
+ str r2, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x13
+ bls _08123766
+ bl ResetTasks
+ bl ResetSpriteData
+ bl ResetPaletteFade
+ ldr r2, _0812385C
+ movs r3, 0x80
+ lsls r3, 10
+ movs r5, 0
+ ldr r1, _08123860
+ movs r4, 0x80
+ lsls r4, 5
+ ldr r6, _08123864
+ movs r0, 0x85
+ lsls r0, 24
+ mov r12, r0
+_08123798:
+ 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 _08123798
+ str r5, [sp]
+ mov r0, sp
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ lsrs r0, r3, 2
+ mov r2, r12
+ orrs r0, r2
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r1, _08123868
+ movs r0, 0
+ str r0, [r1]
+ movs r3, 0xC0
+ lsls r3, 19
+ movs r4, 0xC0
+ lsls r4, 9
+ adds r2, r7, 0
+ movs r6, 0
+ ldr r1, _08123860
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r0, _0812386C
+ mov r12, r0
+ movs r0, 0x81
+ lsls r0, 24
+ mov r8, r0
+_081237E0:
+ strh r6, [r2]
+ str r2, [r1]
+ str r3, [r1, 0x4]
+ mov r0, r12
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r3, r5
+ subs r4, r5
+ cmp r4, r5
+ bhi _081237E0
+ strh r6, [r7]
+ str r7, [r1]
+ str r3, [r1, 0x4]
+ lsrs r0, r4, 1
+ mov r2, r8
+ 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]
+ ldr r2, _08123860
+ mov r1, sp
+ 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 r0, 0xA0
+ lsls r0, 19
+ strh r4, [r7]
+ str r7, [r2]
+ str r0, [r2, 0x4]
+ lsrs r3, 1
+ movs r0, 0x81
+ lsls r0, 24
+ orrs r3, r0
+ str r3, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ bl warp_in
+ ldr r0, _08123870
+ str r4, [r0]
+ ldr r0, _08123874
+ bl SetMainCallback2
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08123854: .4byte gSpriteCoordOffsetX
+_08123858: .4byte gUnknown_08396FC4
+_0812385C: .4byte 0x02000000
+_08123860: .4byte 0x040000d4
+_08123864: .4byte 0x85000400
+_08123868: .4byte gUnknown_02039274
+_0812386C: .4byte 0x81000800
+_08123870: .4byte gUnknown_0300485C
+_08123874: .4byte CB2_LoadMap
+ thumb_func_end sub_8123740
+
+ thumb_func_start sub_8123878
+sub_8123878: @ 8123878
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ ldr r5, _081238A4
+ ldr r3, [r5]
+ ldrh r0, [r3, 0x6]
+ adds r0, 0x1
+ strh r0, [r3, 0x6]
+ ldrb r2, [r3, 0x1]
+ adds r7, r5, 0
+ cmp r2, 0x2
+ beq _0812397E
+ cmp r2, 0x2
+ bgt _081238A8
+ cmp r2, 0
+ beq _081238B6
+ cmp r2, 0x1
+ beq _081238D0
+ b _081239D6
+ .align 2, 0
+_081238A4: .4byte gUnknown_02039274
+_081238A8:
+ cmp r2, 0x3
+ bne _081238AE
+ b _081239A4
+_081238AE:
+ cmp r2, 0xFF
+ bne _081238B4
+ b _081239BC
+_081238B4:
+ b _081239D6
+_081238B6:
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r3, 0x4]
+ cmp r0, r1
+ beq _081238C2
+ b _081239D6
+_081238C2:
+ ldrb r0, [r3, 0x2]
+ bl sub_807C91C
+ ldr r1, [r5]
+ movs r0, 0x1
+ strb r0, [r1, 0x1]
+ b _081239D6
+_081238D0:
+ ldrb r0, [r3, 0x2]
+ cmp r0, 0x2
+ beq _08123924
+ cmp r0, 0x7
+ beq _081238DC
+ b _081239D6
+_081238DC:
+ ldr r0, _08123920
+ ldr r0, [r0]
+ adds r2, r0, 0
+ adds r2, 0xF0
+ ldr r0, [r2]
+ cmp r0, 0
+ beq _081239D6
+ ldrb r1, [r0, 0x5]
+ movs r0, 0xC
+ ands r0, r1
+ cmp r0, 0
+ beq _081239D6
+ adds r3, r2, 0
+ movs r5, 0xD
+ negs r5, r5
+_081238FA:
+ lsls r0, r4, 2
+ adds r0, r3, r0
+ ldr r2, [r0]
+ cmp r2, 0
+ beq _0812390C
+ ldrb r1, [r2, 0x5]
+ adds r0, r5, 0
+ ands r0, r1
+ strb r0, [r2, 0x5]
+_0812390C:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x13
+ bls _081238FA
+ ldr r1, [r7]
+ movs r0, 0x2
+ strb r0, [r1, 0x1]
+ b _081239D6
+ .align 2, 0
+_08123920: .4byte gUnknown_08396FC4
+_08123924:
+ ldr r0, _08123938
+ ldr r2, [r0]
+ movs r1, 0xDA
+ lsls r1, 3
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0812393C
+ strb r0, [r3, 0x1]
+ b _081239D6
+ .align 2, 0
+_08123938: .4byte gUnknown_08396FC4
+_0812393C:
+ ldrh r1, [r3, 0x6]
+ ldrh r0, [r3, 0x4]
+ adds r0, 0x8
+ cmp r1, r0
+ blt _081239D6
+ adds r6, r2, 0
+ adds r6, 0xF0
+ movs r5, 0x1
+ movs r7, 0x5
+ negs r7, r7
+_08123950:
+ lsls r0, r4, 2
+ adds r0, r6, r0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08123972
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r2, [r3]
+ lsls r1, r2, 29
+ lsrs r1, 31
+ eors r1, r5
+ ands r1, r5
+ lsls r1, 2
+ adds r0, r7, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_08123972:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x13
+ bls _08123950
+ b _081239D6
+_0812397E:
+ lsls r1, r0, 16
+ ldr r0, _081239A0
+ cmp r1, r0
+ bne _081239D6
+ movs r0, 0x3
+ strb r0, [r3, 0x1]
+ subs r0, 0x4
+ str r4, [sp]
+ movs r1, 0x3
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r0, 0x4
+ bl FadeOutBGM
+ b _081239D6
+ .align 2, 0
+_081239A0: .4byte 0x023a0000
+_081239A4:
+ ldr r0, _081239B8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081239D6
+ movs r0, 0xFF
+ strb r0, [r3, 0x1]
+ b _081239D6
+ .align 2, 0
+_081239B8: .4byte gPaletteFade
+_081239BC:
+ movs r0, 0
+ bl SetVBlankCallback
+ adds r0, r6, 0
+ bl DestroyTask
+ ldr r0, [r5]
+ ldrb r0, [r0]
+ bl DestroyTask
+ ldr r0, _081239E0
+ bl SetMainCallback2
+_081239D6:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081239E0: .4byte sub_8123740
+ thumb_func_end sub_8123878
+
+ thumb_func_start sub_81239E4
+sub_81239E4: @ 81239E4
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r6, _08123A38
+ ldr r1, [r6]
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0xFF
+ beq _08123AC0
+ ldrb r0, [r1, 0x14]
+ subs r0, 0x1
+ strb r0, [r1, 0x14]
+ ldr r1, [r6]
+ ldrh r0, [r1, 0x6]
+ movs r3, 0x1
+ ands r0, r3
+ cmp r0, 0
+ bne _08123A0A
+ ldrb r0, [r1, 0x15]
+ subs r0, 0x1
+ strb r0, [r1, 0x15]
+_08123A0A:
+ ldr r2, [r6]
+ ldrh r0, [r2, 0x6]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _08123A24
+ ldrb r0, [r2, 0xC]
+ subs r0, 0x1
+ strb r0, [r2, 0xC]
+ ldr r1, [r6]
+ ldrb r0, [r1, 0xD]
+ subs r0, 0x1
+ strb r0, [r1, 0xD]
+_08123A24:
+ ldr r0, [r6]
+ ldrb r1, [r0, 0x14]
+ cmp r1, 0x20
+ beq _08123A74
+ cmp r1, 0x20
+ bgt _08123A3C
+ cmp r1, 0x10
+ beq _08123A90
+ b _08123AC0
+ .align 2, 0
+_08123A38: .4byte gUnknown_02039274
+_08123A3C:
+ cmp r1, 0x28
+ beq _08123A60
+ cmp r1, 0xAF
+ bne _08123AC0
+ ldr r1, _08123A5C
+ adds r0, r1
+ movs r1, 0x2
+ str r1, [sp]
+ movs r1, 0xA
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x16
+ bl sub_8124E7C
+ b _08123AC0
+ .align 2, 0
+_08123A5C: .4byte 0x000008fc
+_08123A60:
+ ldr r1, _08123A70
+ adds r0, r1
+ movs r1, 0x2
+ str r1, [sp]
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x3
+ b _08123A82
+ .align 2, 0
+_08123A70: .4byte 0x000008fc
+_08123A74:
+ ldr r1, _08123A8C
+ adds r0, r1
+ str r3, [sp]
+ movs r1, 0x2
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x2
+_08123A82:
+ movs r3, 0
+ bl sub_8124E7C
+ b _08123AC0
+ .align 2, 0
+_08123A8C: .4byte 0x000008fc
+_08123A90:
+ ldr r5, _08123AE8
+ adds r0, r5
+ ldr r1, _08123AEC
+ movs r2, 0x5
+ str r2, [sp]
+ movs r4, 0x2
+ str r4, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8124F08
+ ldr r0, [r6]
+ adds r0, r5
+ ldr r1, _08123AF0
+ str r4, [sp]
+ movs r2, 0x1E
+ str r2, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0x2
+ bl sub_8124F08
+ ldr r1, [r6]
+ movs r0, 0x40
+ strb r0, [r1, 0x15]
+_08123AC0:
+ bl sub_812453C
+ ldr r3, _08123AF4
+ movs r0, 0
+ ldrsh r2, [r3, r0]
+ adds r1, r2, 0x1
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _08123AD6
+ adds r0, r2, 0
+ adds r0, 0x80
+_08123AD6:
+ asrs r0, 7
+ lsls r0, 7
+ subs r0, r1, r0
+ strh r0, [r3]
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08123AE8: .4byte 0x000008fc
+_08123AEC: .4byte gCableCarPylonHookTilemapEntries
+_08123AF0: .4byte 0x020199d8
+_08123AF4: .4byte gSpriteCoordOffsetX
+ thumb_func_end sub_81239E4
+
+ thumb_func_start sub_8123AF8
+sub_8123AF8: @ 8123AF8
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r6, _08123B4C
+ ldr r1, [r6]
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0xFF
+ beq _08123BEE
+ ldrb r0, [r1, 0x14]
+ adds r0, 0x1
+ strb r0, [r1, 0x14]
+ ldr r2, [r6]
+ ldrh r0, [r2, 0x6]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08123B1E
+ ldrb r0, [r2, 0x15]
+ adds r0, 0x1
+ strb r0, [r2, 0x15]
+_08123B1E:
+ ldr r2, [r6]
+ ldrh r0, [r2, 0x6]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _08123B38
+ ldrb r0, [r2, 0xC]
+ adds r0, 0x1
+ strb r0, [r2, 0xC]
+ ldr r1, [r6]
+ ldrb r0, [r1, 0xD]
+ adds r0, 0x1
+ strb r0, [r1, 0xD]
+_08123B38:
+ ldr r3, [r6]
+ ldrb r0, [r3, 0x14]
+ cmp r0, 0x20
+ beq _08123BB0
+ cmp r0, 0x20
+ bgt _08123B50
+ cmp r0, 0x10
+ beq _08123B78
+ b _08123BEE
+ .align 2, 0
+_08123B4C: .4byte gUnknown_02039274
+_08123B50:
+ cmp r0, 0x28
+ beq _08123BDC
+ cmp r0, 0xB0
+ bne _08123BEE
+ ldr r1, _08123B70
+ adds r0, r3, r1
+ ldr r1, _08123B74
+ movs r2, 0x2
+ str r2, [sp]
+ movs r2, 0x1E
+ str r2, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0x2
+ bl sub_8124F08
+ b _08123BEE
+ .align 2, 0
+_08123B70: .4byte 0x000008fc
+_08123B74: .4byte 0x020199d8
+_08123B78:
+ ldr r5, _08123BAC
+ adds r0, r3, r5
+ movs r1, 0x3
+ str r1, [sp]
+ movs r4, 0x2
+ str r4, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0x2
+ movs r3, 0
+ bl sub_8124E7C
+ ldr r0, [r6]
+ adds r0, r5
+ str r4, [sp]
+ movs r1, 0xA
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x16
+ bl sub_8124E7C
+ ldr r1, [r6]
+ movs r0, 0xC0
+ strb r0, [r1, 0x15]
+ b _08123BEE
+ .align 2, 0
+_08123BAC: .4byte 0x000008fc
+_08123BB0:
+ ldr r1, _08123BD4
+ ldrh r2, [r1]
+ movs r4, 0x90
+ lsls r4, 4
+ adds r0, r3, r4
+ strh r2, [r0]
+ ldrh r2, [r1, 0x2]
+ adds r4, 0x2
+ adds r0, r3, r4
+ strh r2, [r0]
+ ldrh r2, [r1, 0xA]
+ adds r4, 0x3E
+ adds r0, r3, r4
+ strh r2, [r0]
+ ldrh r1, [r1, 0xC]
+ ldr r2, _08123BD8
+ b _08123BEA
+ .align 2, 0
+_08123BD4: .4byte gCableCarPylonHookTilemapEntries + 0x4
+_08123BD8: .4byte 0x00000942
+_08123BDC:
+ ldr r2, _08123C08
+ ldrh r1, [r2]
+ ldr r4, _08123C0C
+ adds r0, r3, r4
+ strh r1, [r0]
+ ldrh r1, [r2, 0xA]
+ ldr r2, _08123C10
+_08123BEA:
+ adds r0, r3, r2
+ strh r1, [r0]
+_08123BEE:
+ bl sub_8124598
+ ldr r0, _08123C14
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x6]
+ ldrh r1, [r1, 0x4]
+ cmp r0, r1
+ bcs _08123C1C
+ ldr r4, _08123C18
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ b _08123C26
+ .align 2, 0
+_08123C08: .4byte gCableCarPylonHookTilemapEntries + 0x8
+_08123C0C: .4byte 0x00000904
+_08123C10: .4byte 0x00000944
+_08123C14: .4byte gUnknown_02039274
+_08123C18: .4byte gSpriteCoordOffsetX
+_08123C1C:
+ ldr r0, _08123C38
+ ldr r4, [r0]
+ ldr r2, _08123C3C
+ adds r4, r2
+ ldrh r0, [r4]
+_08123C26:
+ adds r0, 0xF7
+ movs r1, 0xF8
+ bl __modsi3
+ strh r0, [r4]
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08123C38: .4byte gUnknown_08396FC4
+_08123C3C: .4byte 0x000006fc
+ thumb_func_end sub_8123AF8
+
+ thumb_func_start sub_8123C40
+sub_8123C40: @ 8123C40
+ push {r4,lr}
+ ldr r1, _08123C9C
+ ldr r0, _08123CA0
+ ldr r2, [r0]
+ adds r0, r2, 0
+ adds r0, 0xFC
+ str r0, [r1]
+ ldr r0, _08123CA4
+ str r0, [r1, 0x4]
+ ldr r3, _08123CA8
+ str r3, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r4, _08123CAC
+ adds r0, r2, r4
+ str r0, [r1]
+ ldr r0, _08123CB0
+ str r0, [r1, 0x4]
+ str r3, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ subs r1, 0xB8
+ ldrb r0, [r2, 0x14]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrb r0, [r2, 0x15]
+ strh r0, [r1]
+ subs r1, 0xA
+ ldrb r0, [r2, 0xC]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrb r0, [r2, 0xD]
+ strh r0, [r1]
+ subs r1, 0x6
+ ldrb r0, [r2, 0x8]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrb r0, [r2, 0x9]
+ strh r0, [r1]
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08123C9C: .4byte 0x040000d4
+_08123CA0: .4byte gUnknown_02039274
+_08123CA4: .4byte 0x0600e000
+_08123CA8: .4byte 0x80000400
+_08123CAC: .4byte 0x000008fc
+_08123CB0: .4byte 0x0600f800
+ thumb_func_end sub_8123C40
+
+ thumb_func_start nullsub_76
+nullsub_76: @ 8123CB4
+ bx lr
+ thumb_func_end nullsub_76
+
+ thumb_func_start sub_8123CB8
+sub_8123CB8: @ 8123CB8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, _08123D20
+ ldr r6, [r0]
+ ldrb r0, [r6, 0x1]
+ cmp r0, 0xFF
+ beq _08123D84
+ ldr r0, _08123D24
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08123D34
+ movs r0, 0x6
+ ldrsh r4, [r6, r0]
+ adds r0, r4, 0
+ bl __floatsisf
+ cmp r4, 0
+ bge _08123CE2
+ ldr r1, _08123D28
+ bl __addsf3
+_08123CE2:
+ ldr r1, _08123D2C
+ bl __mulsf3
+ bl __fixunssfsi
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x2E]
+ subs r1, r0
+ strh r1, [r5, 0x20]
+ movs r1, 0x6
+ ldrsh r4, [r6, r1]
+ adds r0, r4, 0
+ bl __floatsisf
+ cmp r4, 0
+ bge _08123D0A
+ ldr r1, _08123D28
+ bl __addsf3
+_08123D0A:
+ ldr r1, _08123D30
+ bl __mulsf3
+ bl __fixunssfsi
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x30]
+ subs r1, r0
+ strh r1, [r5, 0x22]
+ b _08123D84
+ .align 2, 0
+_08123D20: .4byte gUnknown_02039274
+_08123D24: .4byte gUnknown_0202E8CC
+_08123D28: .4byte 0x47800000
+_08123D2C: .4byte 0x3e0f5c29
+_08123D30: .4byte 0x3d89374c
+_08123D34:
+ movs r0, 0x6
+ ldrsh r4, [r6, r0]
+ adds r0, r4, 0
+ bl __floatsisf
+ cmp r4, 0
+ bge _08123D48
+ ldr r1, _08123D8C
+ bl __addsf3
+_08123D48:
+ ldr r1, _08123D90
+ bl __mulsf3
+ bl __fixunssfsi
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x2E]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ movs r0, 0x6
+ ldrsh r4, [r6, r0]
+ adds r0, r4, 0
+ bl __floatsisf
+ cmp r4, 0
+ bge _08123D70
+ ldr r1, _08123D8C
+ bl __addsf3
+_08123D70:
+ ldr r1, _08123D94
+ bl __mulsf3
+ bl __fixunssfsi
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x30]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+_08123D84:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08123D8C: .4byte 0x47800000
+_08123D90: .4byte 0x3e0f5c29
+_08123D94: .4byte 0x3d89374c
+ thumb_func_end sub_8123CB8
+
+ thumb_func_start sub_8123D98
+sub_8123D98: @ 8123D98
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, _08123E04
+ ldr r6, [r0]
+ ldrb r0, [r6, 0x1]
+ cmp r0, 0xFF
+ bne _08123DA8
+ b _08123EB0
+_08123DA8:
+ ldr r0, _08123E08
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08123E18
+ movs r0, 0x6
+ ldrsh r4, [r6, r0]
+ adds r0, r4, 0
+ bl __floatsisf
+ cmp r4, 0
+ bge _08123DC4
+ ldr r1, _08123E0C
+ bl __addsf3
+_08123DC4:
+ ldr r1, _08123E10
+ bl __mulsf3
+ bl __fixunssfsi
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x2E]
+ subs r1, r0
+ strh r1, [r5, 0x20]
+ movs r1, 0x6
+ ldrsh r4, [r6, r1]
+ adds r0, r4, 0
+ bl __floatsisf
+ cmp r4, 0
+ bge _08123DEC
+ ldr r1, _08123E0C
+ bl __addsf3
+_08123DEC:
+ ldr r1, _08123E14
+ bl __mulsf3
+ bl __fixunssfsi
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x30]
+ subs r1, r0
+ strh r1, [r5, 0x22]
+ b _08123E68
+ .align 2, 0
+_08123E04: .4byte gUnknown_02039274
+_08123E08: .4byte gUnknown_0202E8CC
+_08123E0C: .4byte 0x47800000
+_08123E10: .4byte 0x3e0f5c29
+_08123E14: .4byte 0x3d89374c
+_08123E18:
+ movs r0, 0x6
+ ldrsh r4, [r6, r0]
+ adds r0, r4, 0
+ bl __floatsisf
+ cmp r4, 0
+ bge _08123E2C
+ ldr r1, _08123E8C
+ bl __addsf3
+_08123E2C:
+ ldr r1, _08123E90
+ bl __mulsf3
+ bl __fixunssfsi
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x2E]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ movs r0, 0x6
+ ldrsh r4, [r6, r0]
+ adds r0, r4, 0
+ bl __floatsisf
+ cmp r4, 0
+ bge _08123E54
+ ldr r1, _08123E8C
+ bl __addsf3
+_08123E54:
+ ldr r1, _08123E94
+ bl __mulsf3
+ bl __fixunssfsi
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x30]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+_08123E68:
+ movs r0, 0x32
+ ldrsh r2, [r5, r0]
+ cmp r2, 0
+ bne _08123E98
+ movs r0, 0x11
+ strh r0, [r5, 0x26]
+ ldrh r0, [r5, 0x34]
+ adds r1, r0, 0x1
+ strh r1, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ ble _08123EB0
+ strh r2, [r5, 0x34]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ strh r0, [r5, 0x32]
+ b _08123EB0
+ .align 2, 0
+_08123E8C: .4byte 0x47800000
+_08123E90: .4byte 0x3e0f5c29
+_08123E94: .4byte 0x3d89374c
+_08123E98:
+ movs r2, 0
+ movs r0, 0x10
+ strh r0, [r5, 0x26]
+ ldrh r0, [r5, 0x34]
+ adds r1, r0, 0x1
+ strh r1, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ ble _08123EB0
+ strh r2, [r5, 0x34]
+ strh r2, [r5, 0x32]
+_08123EB0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8123D98
+
+ thumb_func_start sub_8123EB8
+sub_8123EB8: @ 8123EB8
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _08123EE8
+ adds r0, r2, 0
+ adds r0, 0x28
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ lsls r0, 1
+ ldrh r3, [r2, 0x20]
+ adds r0, r3
+ strh r0, [r2, 0x20]
+ ldrh r1, [r2, 0x22]
+ adds r1, 0x10
+ adds r0, r2, 0
+ adds r0, 0x29
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, r1
+ strh r0, [r2, 0x22]
+_08123EE8:
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x32
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ blt _08123F3E
+ movs r0, 0x30
+ ldrsh r1, [r2, r0]
+ cmp r1, 0
+ beq _08123F08
+ cmp r1, 0x1
+ beq _08123F12
+ b _08123F30
+_08123F08:
+ ldrh r0, [r2, 0x20]
+ adds r0, 0x1
+ strh r0, [r2, 0x20]
+ ldrh r0, [r2, 0x2E]
+ b _08123F22
+_08123F12:
+ ldrh r0, [r2, 0x2E]
+ ands r0, r1
+ cmp r0, 0
+ beq _08123F30
+ ldrh r0, [r2, 0x20]
+ adds r0, 0x1
+ strh r0, [r2, 0x20]
+ ldrh r0, [r2, 0x20]
+_08123F22:
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08123F30
+ ldrh r0, [r2, 0x22]
+ adds r0, 0x1
+ strh r0, [r2, 0x22]
+_08123F30:
+ movs r1, 0x22
+ ldrsh r0, [r2, r1]
+ cmp r0, 0xA0
+ ble _08123F3E
+ adds r0, r2, 0
+ bl DestroySprite
+_08123F3E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8123EB8
+
+ thumb_func_start sub_8123F44
+sub_8123F44: @ 8123F44
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _08123F62
+ ldrh r1, [r2, 0x22]
+ adds r1, 0x10
+ adds r0, r2, 0
+ adds r0, 0x29
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ adds r0, r1
+ strh r0, [r2, 0x22]
+_08123F62:
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x32
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ blt _08123FB8
+ movs r0, 0x30
+ ldrsh r1, [r2, r0]
+ cmp r1, 0
+ beq _08123F82
+ cmp r1, 0x1
+ beq _08123F8C
+ b _08123FAA
+_08123F82:
+ ldrh r0, [r2, 0x20]
+ subs r0, 0x1
+ strh r0, [r2, 0x20]
+ ldrh r0, [r2, 0x2E]
+ b _08123F9C
+_08123F8C:
+ ldrh r0, [r2, 0x2E]
+ ands r0, r1
+ cmp r0, 0
+ beq _08123FAA
+ ldrh r0, [r2, 0x20]
+ subs r0, 0x1
+ strh r0, [r2, 0x20]
+ ldrh r0, [r2, 0x20]
+_08123F9C:
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08123FAA
+ ldrh r0, [r2, 0x22]
+ subs r0, 0x1
+ strh r0, [r2, 0x22]
+_08123FAA:
+ movs r1, 0x22
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x4F
+ bgt _08123FB8
+ adds r0, r2, 0
+ bl DestroySprite
+_08123FB8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8123F44
+
+ thumb_func_start sub_8123FBC
+sub_8123FBC: @ 8123FBC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08123FCA
+ cmp r0, 0x1
+ beq _08124024
+_08123FCA:
+ ldr r1, _08124020
+ movs r0, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ subs r1, 0xA
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ subs r1, 0x46
+ strh r0, [r1]
+ adds r1, 0xE
+ strh r0, [r1]
+ subs r1, 0x2
+ strh r0, [r1]
+ subs r1, 0x2
+ strh r0, [r1]
+ subs r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x14
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ subs r1, 0x6
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ subs r1, 0x6
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ subs r1, 0x6
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r1, 0x3E
+ strh r0, [r1]
+ b _081240EE
+ .align 2, 0
+_08124020: .4byte REG_WININ
+_08124024:
+ ldr r0, _08124060
+ movs r3, 0
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+ subs r0, 0xA
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+ adds r0, 0x2
+ strh r3, [r0]
+ ldr r0, _08124064
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0812406C
+ ldr r1, _08124068
+ ldr r2, [r1]
+ movs r0, 0xB0
+ strb r0, [r2, 0x14]
+ ldr r2, [r1]
+ movs r0, 0x10
+ strb r0, [r2, 0x15]
+ ldr r0, [r1]
+ strb r3, [r0, 0xC]
+ ldr r2, [r1]
+ movs r0, 0x50
+ b _08124082
+ .align 2, 0
+_08124060: .4byte REG_WININ
+_08124064: .4byte gUnknown_0202E8CC
+_08124068: .4byte gUnknown_02039274
+_0812406C:
+ ldr r1, _081240F4
+ ldr r2, [r1]
+ movs r0, 0x60
+ strb r0, [r2, 0x14]
+ ldr r2, [r1]
+ movs r0, 0xE8
+ strb r0, [r2, 0x15]
+ ldr r0, [r1]
+ strb r3, [r0, 0xC]
+ ldr r2, [r1]
+ movs r0, 0x4
+_08124082:
+ strb r0, [r2, 0xD]
+ ldr r0, [r1]
+ strb r3, [r0, 0x9]
+ ldr r0, [r1]
+ strb r3, [r0, 0x9]
+ adds r2, r1, 0
+ ldr r1, _081240F8
+ ldr r2, [r2]
+ ldrb r0, [r2, 0x14]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrb r0, [r2, 0x15]
+ strh r0, [r1]
+ ldr r0, _081240FC
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r1, _08124100
+ ldrb r0, [r2, 0xC]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrb r0, [r2, 0xD]
+ strh r0, [r1]
+ subs r1, 0x6
+ ldrb r0, [r2, 0x8]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrb r0, [r2, 0x9]
+ strh r0, [r1]
+ subs r1, 0xA
+ ldr r2, _08124104
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r3, _08124108
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0812410C
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08124110
+ movs r3, 0xFC
+ lsls r3, 6
+ adds r2, r3, 0
+ strh r2, [r0]
+ subs r1, 0xC
+ movs r3, 0xFA
+ lsls r3, 5
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _08124114
+ strh r2, [r0]
+_081240EE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081240F4: .4byte gUnknown_02039274
+_081240F8: .4byte REG_BG3HOFS
+_081240FC: .4byte REG_BG2HOFS
+_08124100: .4byte REG_BG1HOFS
+_08124104: .4byte 0x00003c01
+_08124108: .4byte 0x00003d02
+_0812410C: .4byte 0x00003e03
+_08124110: .4byte REG_BG3CNT
+_08124114: .4byte REG_BLDCNT
+ thumb_func_end sub_8123FBC
+
+ thumb_func_start sub_8124118
+sub_8124118: @ 8124118
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ ldr r1, _0812422C
+ add r0, sp, 0x8
+ movs r2, 0x2
+ bl memcpy
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ add r6, sp, 0xC
+ ldr r1, _08124230
+ adds r0, r6, 0
+ movs r2, 0x4
+ bl memcpy
+ add r5, sp, 0x10
+ ldr r1, _08124234
+ adds r0, r5, 0
+ movs r2, 0x8
+ bl memcpy
+ add r4, sp, 0x18
+ ldr r1, _08124238
+ adds r0, r4, 0
+ movs r2, 0x4
+ bl memcpy
+ ldr r0, _0812423C
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [sp, 0x1C]
+ str r1, [sp, 0x20]
+ ldr r0, _08124240
+ ldrh r0, [r0]
+ mov r8, r6
+ mov r10, r5
+ cmp r0, 0
+ beq _08124176
+ cmp r0, 0x1
+ beq _08124258
+_08124176:
+ ldr r0, _08124244
+ ldrb r0, [r0, 0x8]
+ add r0, sp
+ adds r0, 0x8
+ ldrb r0, [r0]
+ ldr r1, _08124248
+ movs r2, 0x66
+ str r2, [sp]
+ movs r2, 0xC8
+ movs r3, 0x49
+ bl AddPseudoFieldObject
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x40
+ beq _081241BE
+ ldr r0, _0812424C
+ lsls r1, r6, 4
+ adds r1, r6
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ movs r2, 0x8
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ movs r0, 0x8
+ strh r0, [r1, 0x24]
+ movs r0, 0x10
+ strh r0, [r1, 0x26]
+ movs r0, 0xC8
+ strh r0, [r1, 0x2E]
+ movs r0, 0x49
+ strh r0, [r1, 0x30]
+_081241BE:
+ ldr r4, _08124250
+ adds r0, r4, 0
+ movs r1, 0xB0
+ movs r2, 0x2B
+ movs r3, 0x67
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r5, _0812424C
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x20
+ strh r1, [r0, 0x26]
+ strh r1, [r0, 0x24]
+ movs r1, 0xB0
+ strh r1, [r0, 0x2E]
+ movs r1, 0x2B
+ strh r1, [r0, 0x30]
+ adds r4, 0x18
+ adds r0, r4, 0
+ movs r1, 0xC8
+ movs r2, 0x63
+ movs r3, 0x65
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x8
+ strh r1, [r0, 0x24]
+ movs r1, 0x4
+ strh r1, [r0, 0x26]
+ movs r1, 0xC8
+ strh r1, [r0, 0x2E]
+ movs r1, 0x63
+ strh r1, [r0, 0x30]
+ ldr r2, _08124254
+ ldr r1, [r2]
+ movs r0, 0x7
+ strb r0, [r1, 0x2]
+ ldr r1, [r2]
+ movs r0, 0xAF
+ lsls r0, 1
+ strh r0, [r1, 0x4]
+ movs r0, 0x2
+ bl sub_807C9B4
+ b _0812431E
+ .align 2, 0
+_0812422C: .4byte gCableCarPlayerGraphicsIDs
+_08124230: .4byte gMtChimneyHikerGraphicsIDs
+_08124234: .4byte gMtChimneyHikerCoords
+_08124238: .4byte gMtChimneyHikerMovementDelayTable
+_0812423C: .4byte gUnknown_08401D9C
+_08124240: .4byte gUnknown_0202E8CC
+_08124244: .4byte gSaveBlock2
+_08124248: .4byte sub_8123D98
+_0812424C: .4byte gSprites
+_08124250: .4byte gSpriteTemplate_8401D40
+_08124254: .4byte gUnknown_02039274
+_08124258:
+ ldr r7, _081243EC
+ ldr r0, [r7]
+ adds r0, 0xFC
+ ldr r1, _081243F0
+ movs r2, 0xC
+ str r2, [sp]
+ movs r2, 0x3
+ str r2, [sp, 0x4]
+ movs r2, 0x18
+ movs r3, 0x1A
+ bl sub_8124F08
+ ldr r0, _081243F4
+ ldrb r0, [r0, 0x8]
+ add r0, sp
+ adds r0, 0x8
+ ldrb r0, [r0]
+ ldr r1, _081243F8
+ movs r2, 0x66
+ str r2, [sp]
+ movs r2, 0x80
+ movs r3, 0x27
+ bl AddPseudoFieldObject
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x40
+ beq _081242B8
+ ldr r0, _081243FC
+ lsls r1, r6, 4
+ adds r1, r6
+ lsls r1, 2
+ adds r1, r0
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ movs r2, 0x8
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ movs r0, 0x8
+ strh r0, [r1, 0x24]
+ movs r0, 0x10
+ strh r0, [r1, 0x26]
+ movs r0, 0x80
+ strh r0, [r1, 0x2E]
+ movs r0, 0x27
+ strh r0, [r1, 0x30]
+_081242B8:
+ ldr r4, _08124400
+ adds r0, r4, 0
+ movs r1, 0x68
+ movs r2, 0x9
+ movs r3, 0x67
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r5, _081243FC
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x20
+ strh r1, [r0, 0x26]
+ strh r1, [r0, 0x24]
+ movs r1, 0x68
+ strh r1, [r0, 0x2E]
+ movs r1, 0x9
+ strh r1, [r0, 0x30]
+ adds r4, 0x18
+ adds r0, r4, 0
+ movs r1, 0x80
+ movs r2, 0x41
+ movs r3, 0x65
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x8
+ strh r1, [r0, 0x24]
+ movs r1, 0x4
+ strh r1, [r0, 0x26]
+ movs r1, 0x80
+ strh r1, [r0, 0x2E]
+ movs r1, 0x41
+ strh r1, [r0, 0x30]
+ ldr r1, [r7]
+ movs r0, 0x2
+ strb r0, [r1, 0x2]
+ ldr r1, [r7]
+ ldr r0, _08124404
+ strh r0, [r1, 0x4]
+ movs r0, 0x7
+ bl sub_807C9B4
+_0812431E:
+ movs r4, 0
+ ldr r5, _081243FC
+_08124322:
+ lsls r1, r4, 20
+ movs r0, 0xC0
+ lsls r0, 15
+ adds r1, r0
+ asrs r1, 16
+ lsls r2, r4, 19
+ ldr r3, _08124408
+ adds r2, r3
+ asrs r2, 16
+ ldr r0, _0812440C
+ movs r3, 0x68
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x8
+ strh r1, [r0, 0x24]
+ strh r1, [r0, 0x26]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x8
+ bls _08124322
+ movs r0, 0x3F
+ mov r4, r9
+ ands r0, r4
+ cmp r0, 0
+ bne _08124458
+ mov r0, r9
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ add r0, r8
+ ldrb r0, [r0]
+ ldr r5, _08124410
+ ldrh r4, [r5]
+ lsls r4, 2
+ add r1, sp, 0x1C
+ adds r1, r4, r1
+ ldr r1, [r1]
+ mov r3, r10
+ adds r2, r3, r4
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ mov r3, sp
+ adds r3, 0x12
+ adds r3, r4
+ movs r4, 0
+ ldrsh r3, [r3, r4]
+ movs r4, 0x6A
+ str r4, [sp]
+ bl AddPseudoFieldObject
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x40
+ beq _08124458
+ ldr r1, _081243FC
+ lsls r2, r6, 4
+ adds r0, r2, r6
+ lsls r0, 2
+ adds r4, r0, r1
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ adds r0, r4, 0
+ adds r0, 0x28
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x24]
+ adds r0, r4, 0
+ adds r0, 0x29
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r0, [r5]
+ mov r8, r2
+ cmp r0, 0
+ bne _0812441A
+ movs r7, 0x1
+ mov r5, r9
+ ands r5, r7
+ cmp r5, 0
+ beq _08124414
+ adds r0, r4, 0
+ movs r1, 0x6
+ b _08124428
+ .align 2, 0
+_081243EC: .4byte gUnknown_02039274
+_081243F0: .4byte 0x02019048
+_081243F4: .4byte gSaveBlock2
+_081243F8: .4byte sub_8123D98
+_081243FC: .4byte gSprites
+_08124400: .4byte gSpriteTemplate_8401D40
+_08124404: .4byte 0x00000109
+_08124408: .4byte 0xfff80000
+_0812440C: .4byte gSpriteTemplate_8401D70
+_08124410: .4byte gUnknown_0202E8CC
+_08124414:
+ adds r0, r4, 0
+ movs r1, 0x7
+ b _0812443A
+_0812441A:
+ movs r7, 0x1
+ mov r5, r9
+ ands r5, r7
+ cmp r5, 0
+ beq _08124436
+ adds r0, r4, 0
+ movs r1, 0x7
+_08124428:
+ bl StartSpriteAnim
+ strh r7, [r4, 0x30]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x2
+ strh r0, [r4, 0x22]
+ b _08124440
+_08124436:
+ adds r0, r4, 0
+ movs r1, 0x6
+_0812443A:
+ bl StartSpriteAnim
+ strh r5, [r4, 0x30]
+_08124440:
+ ldr r0, _08124468
+ mov r2, r8
+ adds r1, r2, r6
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0x3
+ mov r3, r9
+ ands r0, r3
+ add r0, sp
+ adds r0, 0x18
+ ldrb r0, [r0]
+ strh r0, [r1, 0x32]
+_08124458:
+ 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
+_08124468: .4byte gSprites
+ thumb_func_end sub_8124118
+
+ thumb_func_start sub_812446C
+sub_812446C: @ 812446C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r3, 0
+ mov r9, r3
+ ldr r2, _08124530
+ ldr r0, [r2]
+ ldrb r1, [r0, 0x1B]
+ adds r1, 0x2
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 26
+ lsrs r0, 24
+ mov r12, r0
+_0812448E:
+ movs r6, 0
+ lsls r0, r3, 1
+ adds r1, r3, 0x3
+ adds r2, r3, 0x6
+ adds r4, r3, 0x1
+ str r4, [sp]
+ adds r0, r3
+ lsls r0, 3
+ mov r10, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ mov r8, r0
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ str r0, [sp, 0x4]
+_081244B0:
+ ldr r7, _08124530
+ ldr r5, [r7]
+ lsls r3, r6, 1
+ mov r0, r10
+ adds r2, r3, r0
+ adds r4, r5, 0
+ adds r4, 0x22
+ adds r2, r4, r2
+ mov r1, r12
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ lsls r1, 1
+ ldr r7, _08124534
+ adds r1, r7
+ ldrh r0, [r1]
+ strh r0, [r2]
+ mov r0, r8
+ adds r1, r3, r0
+ adds r1, r4, r1
+ mov r7, r9
+ lsls r2, r7, 1
+ ldr r7, _08124534
+ adds r0, r2, r7
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldr r0, [sp, 0x4]
+ adds r3, r0
+ adds r4, r3
+ ldr r1, _08124538
+ adds r2, r1
+ ldrh r0, [r2]
+ strh r0, [r4]
+ mov r0, r9
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xB
+ bls _081244B0
+ ldr r4, [sp]
+ lsls r0, r4, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x2
+ bls _0812448E
+ ldrb r0, [r5, 0x1B]
+ adds r0, 0x1
+ movs r1, 0x3
+ bl __modsi3
+ strb r0, [r5, 0x1B]
+ 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
+_08124530: .4byte gUnknown_02039274
+_08124534: .4byte 0x02019000
+_08124538: .4byte 0x02019048
+ thumb_func_end sub_812446C
+
+ thumb_func_start sub_812453C
+sub_812453C: @ 812453C
+ push {r4,r5,lr}
+ ldr r5, _08124594
+ ldr r4, [r5]
+ ldrb r0, [r4, 0x1C]
+ adds r0, 0x1
+ movs r1, 0x60
+ bl __modsi3
+ strb r0, [r4, 0x1C]
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x1F]
+ ldrb r2, [r1, 0x1D]
+ subs r0, r2
+ strb r0, [r1, 0x8]
+ ldr r2, [r5]
+ adds r0, r2, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ ldrb r1, [r2, 0x1E]
+ subs r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x1D]
+ adds r0, 0x1
+ strb r0, [r1, 0x1D]
+ ldr r2, [r5]
+ ldrb r0, [r2, 0x1D]
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08124580
+ ldrb r0, [r2, 0x1E]
+ adds r0, 0x1
+ strb r0, [r2, 0x1E]
+_08124580:
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1D]
+ cmp r0, 0x10
+ bls _0812458C
+ bl sub_81245F4
+_0812458C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08124594: .4byte gUnknown_02039274
+ thumb_func_end sub_812453C
+
+ thumb_func_start sub_8124598
+sub_8124598: @ 8124598
+ push {r4,r5,lr}
+ ldr r5, _081245F0
+ ldr r4, [r5]
+ ldrb r0, [r4, 0x1C]
+ adds r0, 0x1
+ movs r1, 0x60
+ bl __modsi3
+ strb r0, [r4, 0x1C]
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x1D]
+ ldrb r2, [r1, 0x1F]
+ adds r0, r2
+ strb r0, [r1, 0x8]
+ ldr r1, [r5]
+ adds r2, r1, 0
+ adds r2, 0x20
+ ldrb r0, [r1, 0x1E]
+ ldrb r2, [r2]
+ adds r0, r2
+ strb r0, [r1, 0x9]
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x1D]
+ adds r0, 0x1
+ strb r0, [r1, 0x1D]
+ ldr r2, [r5]
+ ldrb r0, [r2, 0x1D]
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _081245DC
+ ldrb r0, [r2, 0x1E]
+ adds r0, 0x1
+ strb r0, [r2, 0x1E]
+_081245DC:
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1D]
+ cmp r0, 0x10
+ bls _081245E8
+ bl sub_812476C
+_081245E8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081245F0: .4byte gUnknown_02039274
+ thumb_func_end sub_8124598
+
+ thumb_func_start sub_81245F4
+sub_81245F4: @ 81245F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r0, 0
+ mov r12, r0
+ ldr r2, _0812475C
+ ldr r0, [r2]
+ mov r1, r12
+ strb r1, [r0, 0x1E]
+ strb r1, [r0, 0x1D]
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x8]
+ strb r0, [r1, 0x1F]
+ ldr r0, [r2]
+ ldrb r1, [r0, 0x9]
+ adds r0, 0x20
+ strb r1, [r0]
+ ldr r4, [r2]
+ ldrb r1, [r4, 0x19]
+ adds r3, r1, 0
+ adds r3, 0x1E
+ adds r0, r3, 0
+ mov r9, r2
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r3, r0
+ strb r0, [r4, 0x19]
+ mov r2, r9
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x18]
+ subs r0, 0x2
+ strb r0, [r1, 0x18]
+ ldr r0, [r2]
+ ldrb r1, [r0, 0x1A]
+ adds r2, r1, 0
+ adds r2, 0x17
+ adds r0, r2, 0
+ ldr r3, _08124760
+ mov r10, r3
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r2, r0
+ mov r4, r10
+ strb r0, [r4]
+ ldr r7, _08124764
+ ldr r0, _08124768
+ mov r8, r0
+_08124658:
+ mov r1, r9
+ ldr r3, [r1]
+ ldrb r0, [r3, 0x19]
+ strb r0, [r7]
+ mov r2, r10
+ ldrb r0, [r2]
+ mov r4, r12
+ adds r1, r0, r4
+ adds r0, r1, 0
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r1, r0
+ mov r1, r8
+ strb r0, [r1]
+ ldrb r2, [r7]
+ lsls r2, 1
+ ldrb r0, [r1]
+ lsls r0, 6
+ adds r2, r0
+ adds r6, r3, 0
+ adds r6, 0xFC
+ adds r2, r6, r2
+ ldrb r1, [r3, 0x18]
+ lsls r1, 1
+ mov r4, r12
+ lsls r0, r4, 1
+ add r0, r12
+ lsls r5, r0, 3
+ adds r1, r5
+ adds r4, r3, 0
+ adds r4, 0x22
+ adds r1, r4, r1
+ ldrh r0, [r1]
+ strh r0, [r2]
+ ldrb r1, [r7]
+ adds r2, r1, 0x1
+ adds r0, r2, 0
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r2, r0
+ strb r0, [r7]
+ ldrb r1, [r7]
+ lsls r1, 1
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 6
+ adds r1, r0
+ adds r1, r6, r1
+ ldrb r0, [r3, 0x18]
+ adds r0, 0x1
+ lsls r0, 1
+ adds r0, r5
+ adds r0, r4, r0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ mov r0, r12
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ cmp r0, 0x8
+ bls _08124658
+ ldr r4, _08124764
+ mov r5, r9
+ ldr r3, [r5]
+ ldrb r1, [r3, 0x19]
+ adds r2, r1, 0
+ adds r2, 0x1E
+ adds r0, r2, 0
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r2, r0
+ strb r0, [r4]
+ adds r0, r3, 0
+ adds r0, 0xFC
+ ldrb r2, [r4]
+ movs r1, 0x2
+ str r1, [sp]
+ movs r6, 0x20
+ str r6, [sp, 0x4]
+ movs r1, 0
+ movs r3, 0
+ bl sub_8124E7C
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x18]
+ cmp r0, 0
+ bne _0812474C
+ ldrb r2, [r1, 0x1A]
+ adds r3, r2, 0
+ adds r3, 0x1D
+ adds r0, r3, 0
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r3, r0
+ strb r0, [r1, 0x1A]
+ mov r3, r9
+ ldr r1, [r3]
+ movs r0, 0xC
+ strb r0, [r1, 0x18]
+ bl sub_812446C
+ mov r4, r9
+ ldr r1, [r4]
+ ldrb r3, [r1, 0x1A]
+ adds r4, r3, 0x1
+ adds r0, r4, 0
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r4, r0
+ ldr r2, _08124764
+ strb r0, [r2]
+ adds r0, r1, 0
+ adds r0, 0xFC
+ ldrb r3, [r2]
+ str r6, [sp]
+ movs r1, 0x9
+ str r1, [sp, 0x4]
+ movs r1, 0
+ movs r2, 0
+ bl sub_8124E7C
+_0812474C:
+ 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
+_0812475C: .4byte gUnknown_02039274
+_08124760: .4byte gUnknown_0203927A
+_08124764: .4byte gUnknown_02039278
+_08124768: .4byte gUnknown_02039279
+ thumb_func_end sub_81245F4
+
+ thumb_func_start sub_812476C
+sub_812476C: @ 812476C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r0, 0
+ mov r12, r0
+ ldr r2, _0812489C
+ ldr r0, [r2]
+ mov r1, r12
+ strb r1, [r0, 0x1E]
+ strb r1, [r0, 0x1D]
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x8]
+ strb r0, [r1, 0x1F]
+ ldr r0, [r2]
+ ldrb r1, [r0, 0x9]
+ adds r0, 0x20
+ strb r1, [r0]
+ ldr r4, [r2]
+ ldrb r1, [r4, 0x19]
+ adds r3, r1, 0x2
+ adds r0, r3, 0
+ mov r9, r2
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r3, r0
+ strb r0, [r4, 0x19]
+ mov r2, r9
+ ldr r1, [r2]
+ ldrb r0, [r1, 0x18]
+ adds r0, 0x2
+ strb r0, [r1, 0x18]
+ ldr r1, _081248A0
+ ldr r0, [r2]
+ ldrb r0, [r0, 0x1A]
+ strb r0, [r1]
+ ldr r4, _081248A4
+ mov r10, r4
+ ldr r7, _081248A8
+ mov r8, r10
+_081247C0:
+ mov r0, r9
+ ldr r3, [r0]
+ ldrb r0, [r3, 0x19]
+ strb r0, [r7]
+ ldr r1, _081248A0
+ ldrb r0, [r1]
+ mov r2, r12
+ adds r1, r0, r2
+ adds r0, r1, 0
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r1, r0
+ mov r4, r8
+ strb r0, [r4]
+ ldrb r2, [r7]
+ lsls r2, 1
+ ldrb r0, [r4]
+ lsls r0, 6
+ adds r2, r0
+ adds r6, r3, 0
+ adds r6, 0xFC
+ adds r2, r6, r2
+ ldrb r1, [r3, 0x18]
+ lsls r1, 1
+ mov r4, r12
+ lsls r0, r4, 1
+ add r0, r12
+ lsls r5, r0, 3
+ adds r1, r5
+ adds r4, r3, 0
+ adds r4, 0x22
+ adds r1, r4, r1
+ ldrh r0, [r1]
+ strh r0, [r2]
+ ldrb r1, [r7]
+ adds r2, r1, 0x1
+ adds r0, r2, 0
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r2, r0
+ strb r0, [r7]
+ ldrb r1, [r7]
+ lsls r1, 1
+ mov r2, r8
+ ldrb r0, [r2]
+ lsls r0, 6
+ adds r1, r0
+ adds r1, r6, r1
+ ldrb r0, [r3, 0x18]
+ adds r0, 0x1
+ lsls r0, 1
+ adds r0, r5
+ adds r0, r4, r0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ mov r0, r12
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ cmp r0, 0x8
+ bls _081247C0
+ mov r4, r9
+ ldr r1, [r4]
+ ldrb r2, [r1, 0x1A]
+ adds r3, r2, 0
+ adds r3, 0x17
+ adds r0, r3, 0
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r3, r0
+ mov r2, r10
+ strb r0, [r2]
+ adds r0, r1, 0
+ adds r0, 0xFC
+ ldrb r2, [r1, 0x19]
+ mov r1, r10
+ ldrb r3, [r1]
+ movs r1, 0x2
+ str r1, [sp]
+ movs r1, 0x9
+ str r1, [sp, 0x4]
+ movs r1, 0
+ bl sub_8124E7C
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x18]
+ cmp r0, 0xA
+ bne _0812488C
+ ldrb r2, [r1, 0x1A]
+ adds r3, r2, 0x3
+ adds r0, r3, 0
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r3, r0
+ strb r0, [r1, 0x1A]
+ mov r2, r9
+ ldr r1, [r2]
+ movs r0, 0xFE
+ strb r0, [r1, 0x18]
+ bl sub_812446C
+_0812488C:
+ 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
+_0812489C: .4byte gUnknown_02039274
+_081248A0: .4byte gUnknown_0203927D
+_081248A4: .4byte gUnknown_0203927C
+_081248A8: .4byte gUnknown_0203927B
+ thumb_func_end sub_812476C
+
+ thumb_func_start sub_81248AC
+sub_81248AC: @ 81248AC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _081248BA
+ cmp r0, 0x1
+ beq _081248E4
+_081248BA:
+ ldr r1, _081248E0
+ ldr r2, [r1]
+ movs r3, 0
+ movs r0, 0x2
+ strb r0, [r2, 0x1B]
+ ldr r0, [r1]
+ strb r3, [r0, 0x19]
+ ldr r2, [r1]
+ movs r0, 0x14
+ strb r0, [r2, 0x1A]
+ ldr r1, [r1]
+ movs r0, 0xC
+ strb r0, [r1, 0x18]
+ bl sub_812446C
+ bl sub_81245F4
+ b _08124906
+ .align 2, 0
+_081248E0: .4byte gUnknown_02039274
+_081248E4:
+ ldr r1, _08124914
+ ldr r2, [r1]
+ movs r0, 0x2
+ strb r0, [r2, 0x1B]
+ ldr r2, [r1]
+ movs r0, 0x1C
+ strb r0, [r2, 0x19]
+ ldr r2, [r1]
+ movs r0, 0x14
+ strb r0, [r2, 0x1A]
+ ldr r1, [r1]
+ movs r0, 0x4
+ strb r0, [r1, 0x18]
+ bl sub_812446C
+ bl sub_812476C
+_08124906:
+ ldr r0, _08124914
+ ldr r1, [r0]
+ movs r0, 0
+ strb r0, [r1, 0x1C]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08124914: .4byte gUnknown_02039274
+ thumb_func_end sub_81248AC
+
+ thumb_func_start sub_8124918
+sub_8124918: @ 8124918
+ push {lr}
+ movs r1, 0
+ strb r1, [r0]
+ strh r1, [r0, 0x2]
+ adds r0, 0x4
+ movs r2, 0xC0
+ bl memset
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8124918
+
+ thumb_func_start sub_812492C
+sub_812492C: @ 812492C
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ lsls r1, 24
+ lsrs r6, r1, 24
+ cmp r6, 0xF
+ bhi _08124948
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 2
+ adds r5, r3, r0
+ ldrb r7, [r5, 0x4]
+ lsrs r0, r7, 7
+ cmp r0, 0
+ beq _0812494C
+_08124948:
+ movs r0, 0xFF
+ b _081249AA
+_0812494C:
+ ldrh r0, [r2]
+ movs r4, 0
+ strh r0, [r5, 0x8]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r5, 0xA]
+ ldrb r0, [r2, 0x4]
+ strb r0, [r5, 0xC]
+ ldrb r0, [r2, 0x5]
+ strb r0, [r5, 0xD]
+ ldrb r0, [r2, 0x6]
+ strb r0, [r5, 0xE]
+ ldrb r3, [r2, 0x7]
+ lsls r0, r3, 27
+ lsrs r0, 27
+ ldrb r2, [r5, 0xF]
+ movs r1, 0x20
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ movs r0, 0x60
+ ands r0, r3
+ movs r2, 0x61
+ negs r2, r2
+ ands r1, r2
+ orrs r1, r0
+ lsls r3, 24
+ asrs r3, 31
+ lsls r3, 7
+ movs r0, 0x7F
+ ands r1, r0
+ orrs r1, r3
+ strb r1, [r5, 0xF]
+ subs r0, 0xFF
+ ands r0, r7
+ movs r2, 0x80
+ orrs r0, r2
+ strb r0, [r5, 0x4]
+ strb r4, [r5, 0x6]
+ strb r4, [r5, 0x5]
+ lsls r1, 24
+ cmp r1, 0
+ bge _081249A4
+ movs r0, 0xFF
+ b _081249A6
+_081249A4:
+ movs r0, 0x1
+_081249A6:
+ strb r0, [r5, 0x7]
+ adds r0, r6, 0
+_081249AA:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_812492C
+
+ thumb_func_start unref_sub_81249B0
+unref_sub_81249B0: @ 81249B0
+ push {r4,lr}
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r4, r1, 0
+ cmp r4, 0xF
+ bhi _081249DC
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r1, r2, r0
+ ldrb r0, [r1, 0x4]
+ lsrs r0, 7
+ cmp r0, 0
+ beq _081249DC
+ adds r0, r1, 0x4
+ movs r1, 0
+ movs r2, 0xC
+ bl memset
+ adds r0, r4, 0
+ b _081249DE
+_081249DC:
+ movs r0, 0xFF
+_081249DE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_81249B0
+
+ thumb_func_start sub_81249E4
+sub_81249E4: @ 81249E4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r5, r0, 0
+ movs r0, 0
+ mov r12, r0
+ ldrb r1, [r5, 0x8]
+ cmp r12, r1
+ bcc _081249FC
+ b _08124B94
+_081249FC:
+ movs r7, 0x1F
+ ldr r0, _08124A2C
+ mov r10, r0
+ movs r1, 0x7D
+ negs r1, r1
+ mov r9, r1
+ movs r0, 0x1F
+ mov r8, r0
+_08124A0C:
+ ldrh r0, [r5, 0x6]
+ add r0, r12
+ lsls r0, 1
+ ldr r1, _08124A30
+ adds r3, r0, r1
+ ldr r1, _08124A34
+ adds r6, r0, r1
+ ldrb r0, [r5]
+ lsls r0, 25
+ lsrs r0, 25
+ cmp r0, 0x1
+ beq _08124A38
+ cmp r0, 0x2
+ beq _08124A96
+ b _08124B82
+ .align 2, 0
+_08124A2C: .4byte 0xfffffc1f
+_08124A30: .4byte gPlttBufferFaded
+_08124A34: .4byte gPlttBufferUnfaded
+_08124A38:
+ ldr r0, [r3]
+ lsls r2, r0, 27
+ lsrs r0, r2, 27
+ movs r1, 0x3
+ ldrsb r1, [r5, r1]
+ adds r0, r1
+ cmp r0, 0x1F
+ bhi _08124A5A
+ lsrs r0, r2, 27
+ adds r0, r1
+ ands r0, r7
+ ldrb r2, [r3]
+ movs r1, 0x20
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3]
+_08124A5A:
+ ldr r0, [r3]
+ lsls r2, r0, 22
+ lsrs r0, r2, 27
+ movs r1, 0x3
+ ldrsb r1, [r5, r1]
+ adds r0, r1
+ cmp r0, 0x1F
+ bhi _08124A7E
+ lsrs r0, r2, 27
+ adds r0, r1
+ mov r1, r8
+ ands r0, r1
+ lsls r0, 5
+ ldrh r2, [r3]
+ mov r1, r10
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r3]
+_08124A7E:
+ ldr r0, [r3]
+ lsls r2, r0, 17
+ lsrs r0, r2, 27
+ movs r1, 0x3
+ ldrsb r1, [r5, r1]
+ adds r0, r1
+ cmp r0, 0x1F
+ bls _08124A90
+ b _08124B82
+_08124A90:
+ lsrs r0, r2, 27
+ adds r0, r1
+ b _08124B74
+_08124A96:
+ movs r0, 0x3
+ ldrsb r0, [r5, r0]
+ cmp r0, 0
+ bge _08124B08
+ ldr r0, [r3]
+ lsls r4, r0, 27
+ lsrs r1, r4, 27
+ movs r2, 0x3
+ ldrsb r2, [r5, r2]
+ adds r1, r2
+ ldr r0, [r6]
+ lsls r0, 27
+ lsrs r0, 27
+ cmp r1, r0
+ blt _08124AC6
+ lsrs r0, r4, 27
+ adds r0, r2
+ ands r0, r7
+ ldrb r2, [r3]
+ movs r1, 0x20
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3]
+_08124AC6:
+ ldr r0, [r3]
+ lsls r4, r0, 22
+ lsrs r1, r4, 27
+ movs r2, 0x3
+ ldrsb r2, [r5, r2]
+ adds r1, r2
+ ldr r0, [r6]
+ lsls r0, 22
+ lsrs r0, 27
+ cmp r1, r0
+ blt _08124AF0
+ lsrs r0, r4, 27
+ adds r0, r2
+ mov r1, r8
+ ands r0, r1
+ lsls r0, 5
+ ldrh r2, [r3]
+ mov r1, r10
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r3]
+_08124AF0:
+ ldr r0, [r3]
+ lsls r4, r0, 17
+ lsrs r1, r4, 27
+ movs r2, 0x3
+ ldrsb r2, [r5, r2]
+ adds r1, r2
+ ldr r0, [r6]
+ lsls r0, 17
+ lsrs r0, 27
+ cmp r1, r0
+ blt _08124B82
+ b _08124B70
+_08124B08:
+ ldr r0, [r3]
+ lsls r4, r0, 27
+ lsrs r1, r4, 27
+ movs r2, 0x3
+ ldrsb r2, [r5, r2]
+ adds r1, r2
+ ldr r0, [r6]
+ lsls r0, 27
+ lsrs r0, 27
+ cmp r1, r0
+ bgt _08124B30
+ lsrs r0, r4, 27
+ adds r0, r2
+ ands r0, r7
+ ldrb r2, [r3]
+ movs r1, 0x20
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3]
+_08124B30:
+ ldr r0, [r3]
+ lsls r4, r0, 22
+ lsrs r1, r4, 27
+ movs r2, 0x3
+ ldrsb r2, [r5, r2]
+ adds r1, r2
+ ldr r0, [r6]
+ lsls r0, 22
+ lsrs r0, 27
+ cmp r1, r0
+ bgt _08124B5A
+ lsrs r0, r4, 27
+ adds r0, r2
+ mov r1, r8
+ ands r0, r1
+ lsls r0, 5
+ ldrh r2, [r3]
+ mov r1, r10
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r3]
+_08124B5A:
+ ldr r0, [r3]
+ lsls r4, r0, 17
+ lsrs r1, r4, 27
+ movs r2, 0x3
+ ldrsb r2, [r5, r2]
+ adds r1, r2
+ ldr r0, [r6]
+ lsls r0, 17
+ lsrs r0, 27
+ cmp r1, r0
+ bgt _08124B82
+_08124B70:
+ lsrs r0, r4, 27
+ adds r0, r2
+_08124B74:
+ ands r0, r7
+ lsls r0, 2
+ ldrb r2, [r3, 0x1]
+ mov r1, r9
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x1]
+_08124B82:
+ mov r0, r12
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ ldrb r0, [r5, 0x8]
+ cmp r12, r0
+ bcs _08124B94
+ b _08124A0C
+_08124B94:
+ ldrb r1, [r5, 0x2]
+ adds r0, r1, 0x1
+ strb r0, [r5, 0x2]
+ ldrb r0, [r5, 0xB]
+ lsls r0, 27
+ lsls r1, 24
+ asrs r0, 3
+ cmp r1, r0
+ beq _08124BAA
+ movs r0, 0
+ b _08124BDE
+_08124BAA:
+ movs r0, 0
+ strb r0, [r5, 0x2]
+ movs r0, 0x3
+ ldrsb r0, [r5, r0]
+ negs r0, r0
+ strb r0, [r5, 0x3]
+ ldrb r2, [r5]
+ movs r1, 0x7F
+ movs r0, 0x7F
+ ands r0, r2
+ cmp r0, 0x1
+ bne _08124BCA
+ lsls r0, r2, 25
+ lsrs r0, 25
+ adds r0, 0x1
+ b _08124BD0
+_08124BCA:
+ lsls r0, r2, 25
+ lsrs r0, 25
+ subs r0, 0x1
+_08124BD0:
+ ands r0, r1
+ movs r1, 0x80
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5]
+ movs r0, 0x1
+_08124BDE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81249E4
+
+ thumb_func_start sub_8124BEC
+sub_8124BEC: @ 8124BEC
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ movs r2, 0
+ ldrb r0, [r3]
+ lsls r0, 25
+ lsrs r0, 25
+ cmp r0, 0x1
+ beq _08124C02
+ cmp r0, 0x2
+ beq _08124C30
+ b _08124C6A
+_08124C02:
+ ldrb r0, [r3, 0x8]
+ cmp r2, r0
+ bcs _08124C22
+ ldr r4, _08124C2C
+_08124C0A:
+ ldrh r0, [r3, 0x6]
+ adds r0, r2
+ lsls r0, 1
+ adds r0, r4
+ ldrh r1, [r3, 0x4]
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldrb r0, [r3, 0x8]
+ cmp r2, r0
+ bcc _08124C0A
+_08124C22:
+ ldrb r2, [r3]
+ lsls r1, r2, 25
+ lsrs r1, 25
+ adds r1, 0x1
+ b _08124C5C
+ .align 2, 0
+_08124C2C: .4byte gPlttBufferFaded
+_08124C30:
+ ldrb r0, [r3, 0x8]
+ cmp r2, r0
+ bcs _08124C54
+ ldr r5, _08124C74
+ ldr r4, _08124C78
+_08124C3A:
+ ldrh r0, [r3, 0x6]
+ adds r0, r2
+ lsls r0, 1
+ adds r1, r0, r5
+ adds r0, r4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldrb r0, [r3, 0x8]
+ cmp r2, r0
+ bcc _08124C3A
+_08124C54:
+ ldrb r2, [r3]
+ lsls r1, r2, 25
+ lsrs r1, 25
+ subs r1, 0x1
+_08124C5C:
+ movs r0, 0x7F
+ ands r1, r0
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+_08124C6A:
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08124C74: .4byte gPlttBufferFaded
+_08124C78: .4byte gPlttBufferUnfaded
+ thumb_func_end sub_8124BEC
+
+ thumb_func_start task_tutorial_controls_fadein
+task_tutorial_controls_fadein: @ 8124C7C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r5, 0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08124CE0
+_08124C88:
+ ldrh r0, [r4, 0x2]
+ asrs r0, r5
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08124CD6
+ lsls r1, r5, 1
+ adds r0, r1, r5
+ lsls r3, r0, 2
+ adds r2, r4, r3
+ ldrb r0, [r2, 0x5]
+ subs r0, 0x1
+ strb r0, [r2, 0x5]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r1, 0
+ cmp r0, 0xFF
+ bne _08124CD6
+ ldrh r0, [r2, 0x8]
+ movs r2, 0x80
+ lsls r2, 8
+ adds r1, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08124CC4
+ adds r0, r3, 0x4
+ adds r0, r4, r0
+ bl sub_81249E4
+ b _08124CCC
+_08124CC4:
+ adds r0, r3, 0x4
+ adds r0, r4, r0
+ bl sub_8124BEC
+_08124CCC:
+ adds r0, r6, r5
+ lsls r0, 2
+ adds r0, r4, r0
+ ldrb r1, [r0, 0xD]
+ strb r1, [r0, 0x5]
+_08124CD6:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xF
+ bls _08124C88
+_08124CE0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end task_tutorial_controls_fadein
+
+ thumb_func_start sub_8124CE8
+sub_8124CE8: @ 8124CE8
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ movs r4, 0
+ ldrb r0, [r3]
+ adds r0, 0x1
+ strb r0, [r3]
+ movs r5, 0x1
+ movs r7, 0x80
+ negs r7, r7
+_08124CFE:
+ adds r0, r6, 0
+ asrs r0, r4
+ ands r0, r5
+ cmp r0, 0
+ beq _08124D2C
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ adds r2, r3, r0
+ ldrb r0, [r2, 0x4]
+ lsrs r0, 7
+ cmp r0, 0
+ beq _08124D2C
+ adds r0, r5, 0
+ lsls r0, r4
+ ldrh r1, [r3, 0x2]
+ orrs r0, r1
+ strh r0, [r3, 0x2]
+ ldrb r1, [r2, 0x4]
+ adds r0, r7, 0
+ ands r0, r1
+ orrs r0, r5
+ strb r0, [r2, 0x4]
+_08124D2C:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xF
+ bls _08124CFE
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8124CE8
+
+ thumb_func_start sub_8124D3C
+sub_8124D3C: @ 8124D3C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r7, r1, 16
+ movs r5, 0
+ movs r3, 0x1
+_08124D4A:
+ ldrh r0, [r6, 0x2]
+ asrs r0, r5
+ ands r0, r3
+ cmp r0, 0
+ beq _08124DB2
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 2
+ adds r4, r6, r0
+ ldrb r0, [r4, 0x4]
+ lsrs r0, 7
+ cmp r0, 0
+ beq _08124DB2
+ adds r0, r7, 0
+ asrs r0, r5
+ ands r0, r3
+ cmp r0, 0
+ beq _08124DB2
+ ldrh r1, [r4, 0xA]
+ lsls r1, 1
+ ldr r0, _08124DA8
+ adds r0, r1, r0
+ ldr r2, _08124DAC
+ adds r1, r2
+ ldrb r2, [r4, 0xC]
+ lsls r2, 1
+ str r3, [sp]
+ bl memcpy
+ ldrb r0, [r4, 0x4]
+ movs r2, 0x80
+ negs r2, r2
+ adds r1, r2, 0
+ ands r0, r1
+ strb r0, [r4, 0x4]
+ movs r0, 0
+ strb r0, [r4, 0x6]
+ strb r0, [r4, 0x5]
+ ldrb r0, [r4, 0xF]
+ lsls r0, 24
+ ldr r3, [sp]
+ cmp r0, 0
+ bge _08124DB0
+ movs r0, 0xFF
+ strb r0, [r4, 0x7]
+ b _08124DB2
+ .align 2, 0
+_08124DA8: .4byte gPlttBufferFaded
+_08124DAC: .4byte gPlttBufferUnfaded
+_08124DB0:
+ strb r3, [r4, 0x7]
+_08124DB2:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xF
+ bls _08124D4A
+ ldr r0, _08124DC8
+ cmp r7, r0
+ bne _08124DCC
+ movs r0, 0
+ strb r0, [r6]
+ b _08124DD0
+ .align 2, 0
+_08124DC8: .4byte 0x0000ffff
+_08124DCC:
+ ldrh r0, [r6, 0x2]
+ bics r0, r7
+_08124DD0:
+ strh r0, [r6, 0x2]
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8124D3C
+
+ thumb_func_start sub_8124DDC
+sub_8124DDC: @ 8124DDC
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r0, [sp, 0x14]
+ ldr r4, [sp, 0x18]
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ movs r1, 0
+ lsrs r3, 19
+ adds r3, r2
+ lsls r3, 1
+ adds r6, r3
+ cmp r1, r4
+ bcs _08124E26
+_08124E04:
+ lsls r0, r1, 6
+ adds r2, r6, r0
+ movs r0, 0
+ adds r3, r1, 0x1
+ cmp r0, r5
+ bcs _08124E1E
+_08124E10:
+ strh r7, [r2]
+ adds r2, 0x2
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r5
+ bcc _08124E10
+_08124E1E:
+ lsls r0, r3, 24
+ lsrs r1, r0, 24
+ cmp r1, r4
+ bcc _08124E04
+_08124E26:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8124DDC
+
+ thumb_func_start sub_8124E2C
+sub_8124E2C: @ 8124E2C
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ ldr r0, [sp, 0x14]
+ ldr r4, [sp, 0x18]
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r4, 24
+ lsrs r6, r4, 24
+ movs r4, 0
+ lsrs r3, 19
+ adds r3, r2
+ lsls r3, 1
+ adds r7, r3
+ cmp r4, r6
+ bcs _08124E76
+_08124E50:
+ lsls r0, r4, 6
+ adds r2, r7, r0
+ movs r3, 0
+ adds r4, 0x1
+ cmp r3, r5
+ bcs _08124E6E
+_08124E5C:
+ ldrh r0, [r1]
+ strh r0, [r2]
+ adds r1, 0x2
+ adds r2, 0x2
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, r5
+ bcc _08124E5C
+_08124E6E:
+ lsls r0, r4, 24
+ lsrs r4, r0, 24
+ cmp r4, r6
+ bcc _08124E50
+_08124E76:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8124E2C
+
+ thumb_func_start sub_8124E7C
+sub_8124E7C: @ 8124E7C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r10, r0
+ ldr r0, [sp, 0x24]
+ ldr r4, [sp, 0x28]
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp]
+ lsls r3, 24
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ mov r8, r4
+ movs r0, 0
+ lsrs r4, r3, 24
+ cmp r0, r8
+ bcs _08124EF6
+_08124EAE:
+ ldr r2, [sp]
+ movs r3, 0
+ adds r6, r4, 0x1
+ adds r0, 0x1
+ mov r12, r0
+ cmp r3, r7
+ bcs _08124EE0
+ lsls r5, r4, 6
+_08124EBE:
+ lsls r0, r2, 1
+ adds r0, r5
+ add r0, r10
+ mov r1, r9
+ strh r1, [r0]
+ adds r1, r2, 0x1
+ adds r0, r1, 0
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r1, r0
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, r7
+ bcc _08124EBE
+_08124EE0:
+ adds r0, r6, 0
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r6, r0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r1, r12
+ lsls r0, r1, 24
+ lsrs r0, 24
+ cmp r0, r8
+ bcc _08124EAE
+_08124EF6:
+ 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_8124E7C
+
+ thumb_func_start sub_8124F08
+sub_8124F08: @ 8124F08
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r10, r0
+ ldr r0, [sp, 0x24]
+ ldr r4, [sp, 0x28]
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp]
+ lsls r3, 24
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r9, r4
+ movs r0, 0
+ adds r5, r1, 0
+ lsrs r4, r3, 24
+ cmp r0, r9
+ bcs _08124F82
+_08124F38:
+ ldr r2, [sp]
+ movs r3, 0
+ adds r7, r4, 0x1
+ adds r0, 0x1
+ mov r8, r0
+ cmp r3, r12
+ bcs _08124F6C
+ lsls r6, r4, 6
+_08124F48:
+ lsls r0, r2, 1
+ adds r0, r6
+ add r0, r10
+ ldrh r1, [r5]
+ strh r1, [r0]
+ adds r5, 0x2
+ adds r1, r2, 0x1
+ adds r0, r1, 0
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r1, r0
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, r12
+ bcc _08124F48
+_08124F6C:
+ adds r0, r7, 0
+ asrs r0, 5
+ lsls r0, 5
+ subs r0, r7, r0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r1, r8
+ lsls r0, r1, 24
+ lsrs r0, 24
+ cmp r0, r9
+ bcc _08124F38
+_08124F82:
+ 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_8124F08
+
+ thumb_func_start unref_sub_8124F94
+unref_sub_8124F94: @ 8124F94
+ sub sp, 0x4
+ movs r3, 0
+ strb r3, [r0, 0x1]
+ strb r3, [r0]
+ strh r3, [r0, 0x2]
+ movs r1, 0xC0
+ lsls r1, 19
+ str r1, [r0, 0x4]
+ mov r1, sp
+ strh r3, [r1]
+ ldr r2, _08124FCC
+ str r1, [r2]
+ adds r1, r0, 0
+ adds r1, 0x8
+ str r1, [r2, 0x4]
+ ldr r1, _08124FD0
+ str r1, [r2, 0x8]
+ ldr r1, [r2, 0x8]
+ mov r1, sp
+ strh r3, [r1]
+ str r1, [r2]
+ adds r0, 0x88
+ str r0, [r2, 0x4]
+ ldr r0, _08124FD4
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ add sp, 0x4
+ bx lr
+ .align 2, 0
+_08124FCC: .4byte 0x040000d4
+_08124FD0: .4byte 0x81000040
+_08124FD4: .4byte 0x810000c0
+ thumb_func_end unref_sub_8124F94
+
+ thumb_func_start unref_sub_8124FD8
+unref_sub_8124FD8: @ 8124FD8
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r7, _08124FE4
+ b _0812508A
+ .align 2, 0
+_08124FE4: .4byte 0x040000d4
+_08124FE8:
+ ldrb r0, [r4, 0x1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r0, r4, 0
+ adds r0, 0x88
+ adds r0, r1
+ str r3, [r0]
+ ldrb r1, [r4, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4, r0
+ ldrb r1, [r5, 0x6]
+ adds r0, 0x8E
+ strb r1, [r0]
+ ldrb r1, [r4, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4, r0
+ ldrb r1, [r5, 0x4]
+ adds r0, 0x8C
+ strb r1, [r0]
+ ldrb r1, [r4, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4, r0
+ ldrb r1, [r5, 0x5]
+ adds r0, 0x8D
+ strb r1, [r0]
+ ldrb r1, [r5, 0x4]
+ ldrb r0, [r5, 0x5]
+ adds r6, r1, 0
+ muls r6, r0
+ ldrh r2, [r4, 0x2]
+ adds r1, r2, r6
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ ble _08125040
+ movs r0, 0x2
+ b _0812509C
+_08125040:
+ ldrh r0, [r5, 0x8]
+ cmp r0, 0
+ bne _08125060
+ str r3, [r7]
+ ldrh r1, [r4, 0x2]
+ lsls r1, 6
+ ldr r0, [r4, 0x4]
+ adds r0, r1
+ str r0, [r7, 0x4]
+ lsls r0, r6, 4
+ movs r1, 0x80
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r7, 0x8]
+ ldr r0, [r7, 0x8]
+ b _0812506C
+_08125060:
+ lsls r0, r2, 6
+ ldr r1, [r4, 0x4]
+ adds r1, r0
+ adds r0, r3, 0
+ bl sub_800D238
+_0812506C:
+ ldrb r1, [r4, 0x1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4, r0
+ ldrh r1, [r4, 0x2]
+ adds r0, 0x90
+ strh r1, [r0]
+ ldrh r0, [r4, 0x2]
+ adds r0, r6, r0
+ strh r0, [r4, 0x2]
+ ldrb r0, [r4, 0x1]
+ adds r0, 0x1
+ strb r0, [r4, 0x1]
+ adds r5, 0xC
+_0812508A:
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x1F
+ bhi _0812509A
+ ldr r3, [r5]
+ cmp r3, 0
+ bne _08124FE8
+ movs r0, 0
+ b _0812509C
+_0812509A:
+ movs r0, 0x1
+_0812509C:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_8124FD8
+
+ thumb_func_start unref_sub_81250A4
+unref_sub_81250A4: @ 81250A4
+ push {r4,r5,lr}
+ sub sp, 0x20
+ adds r4, r0, 0
+ adds r5, r1, 0
+ b _081250FC
+_081250AE:
+ ldrb r1, [r4]
+ lsls r1, 3
+ adds r0, r4, 0
+ adds r0, 0x8
+ adds r0, r1
+ str r2, [r0]
+ ldrb r0, [r4]
+ lsls r0, 3
+ adds r0, r4, r0
+ ldrb r1, [r5, 0x4]
+ strb r1, [r0, 0xC]
+ ldrb r0, [r5, 0x5]
+ cmp r0, 0
+ bne _081250D8
+ ldrb r1, [r4]
+ lsls r1, 4
+ adds r0, r2, 0
+ movs r2, 0x20
+ bl LoadPalette
+ b _081250EC
+_081250D8:
+ adds r0, r2, 0
+ mov r1, sp
+ bl sub_800D238
+ ldrb r1, [r4]
+ lsls r1, 4
+ mov r0, sp
+ movs r2, 0x20
+ bl LoadPalette
+_081250EC:
+ ldrb r0, [r4]
+ lsls r1, r0, 3
+ adds r1, r4, r1
+ strb r0, [r1, 0xD]
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ adds r5, 0x8
+_081250FC:
+ ldrb r0, [r4]
+ cmp r0, 0xF
+ bhi _0812510C
+ ldr r2, [r5]
+ cmp r2, 0
+ bne _081250AE
+ movs r0, 0
+ b _0812510E
+_0812510C:
+ movs r0, 0x1
+_0812510E:
+ add sp, 0x20
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_81250A4
+
+ thumb_func_start unref_sub_8125118
+unref_sub_8125118: @ 8125118
+ push {r4-r7,lr}
+ ldr r4, _0812514C
+ add sp, r4
+ adds r5, r0, 0
+ adds r6, r1, 0
+ movs r2, 0x80
+ lsls r2, 2
+ mov r0, sp
+ movs r1, 0
+ bl memset
+ ldrb r7, [r6, 0x5]
+ ldr r0, [r6]
+ mov r1, sp
+ bl sub_800D238
+ ldrb r4, [r5]
+ cmp r4, r7
+ bcs _08125186
+_0812513E:
+ ldrb r0, [r5]
+ adds r0, r4
+ cmp r0, 0xF
+ ble _08125150
+ movs r0, 0x1
+ b _08125188
+ .align 2, 0
+_0812514C: .4byte 0xfffffe00
+_08125150:
+ lsls r2, r4, 3
+ adds r0, r5, 0
+ adds r0, 0x8
+ adds r0, r2
+ ldr r1, [r6]
+ str r1, [r0]
+ adds r2, r5, r2
+ ldrb r0, [r6, 0x4]
+ adds r0, r4, r0
+ strb r0, [r2, 0xC]
+ ldrb r0, [r5]
+ strb r0, [r2, 0xD]
+ lsls r0, r4, 5
+ add r0, sp
+ ldrb r1, [r5]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadPalette
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r7
+ bcc _0812513E
+_08125186:
+ movs r0, 0
+_08125188:
+ movs r3, 0x80
+ lsls r3, 2
+ add sp, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_8125118
+
+ thumb_func_start calls_flash_erase_block
+calls_flash_erase_block: @ 8125194
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _081251B4
+_0812519A:
+ ldr r1, [r5]
+ adds r0, r4, 0
+ bl _call_via_r1
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1F
+ bls _0812519A
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081251B4: .4byte EraseFlashSector
+ thumb_func_end calls_flash_erase_block
+
+ thumb_func_start sub_81251B8
+sub_81251B8: @ 81251B8
+ ldr r0, _081251C8
+ movs r1, 0
+ str r1, [r0]
+ ldr r0, _081251CC
+ strh r1, [r0]
+ ldr r0, _081251D0
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_081251C8: .4byte gUnknown_03005EAC
+_081251CC: .4byte gUnknown_03005E9C
+_081251D0: .4byte gUnknown_03005EA8
+ thumb_func_end sub_81251B8
+
+ thumb_func_start sub_81251D4
+sub_81251D4: @ 81251D4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r3, r1, 24
+ movs r4, 0
+ cmp r0, 0x1
+ beq _08125208
+ cmp r0, 0x1
+ bgt _081251EE
+ cmp r0, 0
+ beq _081251F4
+ b _0812522C
+_081251EE:
+ cmp r0, 0x2
+ beq _0812521C
+ b _0812522C
+_081251F4:
+ ldr r2, _08125204
+ movs r1, 0x1
+ lsls r1, r3
+ ldr r0, [r2]
+ orrs r0, r1
+ str r0, [r2]
+ b _0812522C
+ .align 2, 0
+_08125204: .4byte gUnknown_03005EA8
+_08125208:
+ ldr r2, _08125218
+ adds r1, r0, 0
+ lsls r1, r3
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+ b _0812522C
+ .align 2, 0
+_08125218: .4byte gUnknown_03005EA8
+_0812521C:
+ ldr r0, _08125234
+ movs r1, 0x1
+ lsls r1, r3
+ ldr r0, [r0]
+ ands r0, r1
+ cmp r0, 0
+ beq _0812522C
+ movs r4, 0x1
+_0812522C:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08125234: .4byte gUnknown_03005EA8
+ thumb_func_end sub_81251D4
+
+ thumb_func_start save_write_to_flash
+save_write_to_flash: @ 8125238
+ push {r4-r7,lr}
+ adds r7, r1, 0
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r1, _0812525C
+ ldr r0, _08125260
+ str r0, [r1]
+ ldr r0, _08125264
+ cmp r2, r0
+ beq _08125268
+ adds r0, r2, 0
+ adds r1, r7, 0
+ bl sub_81252D8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ b _081252BA
+ .align 2, 0
+_0812525C: .4byte gUnknown_03005EB0
+_08125260: .4byte 0x02000000
+_08125264: .4byte 0x0000ffff
+_08125268:
+ ldr r1, _081252C4
+ ldr r5, _081252C8
+ ldrh r0, [r5]
+ strh r0, [r1]
+ ldr r1, _081252CC
+ ldr r6, _081252D0
+ ldr r4, [r6]
+ str r4, [r1]
+ adds r0, 0x1
+ strh r0, [r5]
+ ldrh r0, [r5]
+ movs r1, 0xE
+ bl __umodsi3
+ strh r0, [r5]
+ adds r4, 0x1
+ str r4, [r6]
+ movs r5, 0x1
+ movs r4, 0
+_0812528E:
+ adds r0, r4, 0
+ adds r1, r7, 0
+ bl sub_81252D8
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xD
+ bls _0812528E
+ ldr r0, _081252D4
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _081252BA
+ movs r5, 0xFF
+ ldr r1, _081252C8
+ ldr r0, _081252C4
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldr r1, _081252D0
+ ldr r0, _081252CC
+ ldr r0, [r0]
+ str r0, [r1]
+_081252BA:
+ adds r0, r5, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081252C4: .4byte gUnknown_03005EA4
+_081252C8: .4byte gUnknown_03005E9C
+_081252CC: .4byte gUnknown_03005EA0
+_081252D0: .4byte gUnknown_03005EAC
+_081252D4: .4byte gUnknown_03005EA8
+ thumb_func_end save_write_to_flash
+
+ thumb_func_start sub_81252D8
+sub_81252D8: @ 81252D8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r4, r1, 0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _081253A4
+ ldrh r0, [r0]
+ adds r0, r6, r0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r5, 0
+ movs r1, 0xE
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r2, _081253A8
+ ldr r1, [r2]
+ movs r0, 0x1
+ ands r1, r0
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 1
+ adds r0, r5, r0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r0, r6, 3
+ adds r0, r4
+ ldr r1, [r0]
+ mov r10, r1
+ ldrh r4, [r0, 0x4]
+ movs r3, 0
+ mov r9, r2
+ ldr r2, _081253AC
+ mov r12, r2
+ mov r8, r12
+ movs r2, 0
+ ldr r1, _081253B0
+_0812532A:
+ mov r7, r8
+ ldr r0, [r7]
+ adds r0, r3
+ strb r2, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r1
+ bls _0812532A
+ mov r0, r12
+ ldr r1, [r0]
+ ldr r2, _081253B4
+ adds r0, r1, r2
+ strh r6, [r0]
+ ldr r3, _081253B8
+ adds r2, r1, r3
+ ldr r0, _081253BC
+ str r0, [r2]
+ ldr r6, _081253C0
+ adds r1, r6
+ mov r7, r9
+ ldr r0, [r7]
+ str r0, [r1]
+ movs r3, 0
+ lsls r5, 24
+ cmp r3, r4
+ bcs _08125378
+ mov r2, r12
+_08125362:
+ ldr r1, [r2]
+ adds r1, r3
+ mov r6, r10
+ adds r0, r6, r3
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r4
+ bcc _08125362
+_08125378:
+ mov r0, r10
+ adds r1, r4, 0
+ bl sub_8125C10
+ ldr r1, _081253AC
+ ldr r1, [r1]
+ ldr r7, _081253C4
+ adds r2, r1, r7
+ strh r0, [r2]
+ lsrs r0, r5, 24
+ bl sub_8125440
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081253A4: .4byte gUnknown_03005E9C
+_081253A8: .4byte gUnknown_03005EAC
+_081253AC: .4byte gUnknown_03005EB0
+_081253B0: .4byte 0x00000fff
+_081253B4: .4byte 0x00000ff4
+_081253B8: .4byte 0x00000ff8
+_081253BC: .4byte 0x08012025 @ TODO: figure out what this represents
+_081253C0: .4byte 0x00000ffc
+_081253C4: .4byte 0x00000ff6
+ thumb_func_end sub_81252D8
+
+ thumb_func_start sub_81253C8
+sub_81253C8: @ 81253C8
+ push {r4-r7,lr}
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r4, _0812542C
+ movs r3, 0
+ movs r6, 0
+ ldr r1, _08125430
+_081253DC:
+ adds r0, r4, r3
+ strb r6, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r1
+ bls _081253DC
+ ldr r0, _08125434
+ adds r1, r4, r0
+ ldr r0, _08125438
+ str r0, [r1]
+ movs r3, 0
+ cmp r3, r2
+ bcs _0812540A
+_081253F8:
+ adds r1, r4, r3
+ adds r0, r5, r3
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r2
+ bcc _081253F8
+_0812540A:
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl sub_8125C10
+ ldr r2, _0812543C
+ adds r1, r4, r2
+ strh r0, [r1]
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl sub_8125440
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0812542C: .4byte 0x02000000
+_08125430: .4byte 0x00000fff
+_08125434: .4byte 0x00000ff8
+_08125438: .4byte 0x08012025 @ TODO: figure out what this represents
+_0812543C: .4byte 0x00000ff4
+ thumb_func_end sub_81253C8
+
+ thumb_func_start sub_8125440
+sub_8125440: @ 8125440
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl ProgramFlashSectorAndVerify
+ cmp r0, 0
+ bne _0812545C
+ movs r0, 0x1
+ adds r1, r4, 0
+ bl sub_81251D4
+ movs r0, 0x1
+ b _08125466
+_0812545C:
+ movs r0, 0
+ adds r1, r4, 0
+ bl sub_81251D4
+ movs r0, 0xFF
+_08125466:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8125440
+
+ thumb_func_start sub_812546C
+sub_812546C: @ 812546C
+ push {r4-r6,lr}
+ ldr r1, _081254A8
+ ldr r0, _081254AC
+ str r0, [r1]
+ ldr r1, _081254B0
+ ldr r5, _081254B4
+ ldrh r0, [r5]
+ strh r0, [r1]
+ ldr r1, _081254B8
+ ldr r6, _081254BC
+ ldr r4, [r6]
+ str r4, [r1]
+ adds r0, 0x1
+ strh r0, [r5]
+ ldrh r0, [r5]
+ movs r1, 0xE
+ bl __umodsi3
+ strh r0, [r5]
+ adds r4, 0x1
+ str r4, [r6]
+ ldr r1, _081254C0
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _081254C4
+ movs r0, 0
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081254A8: .4byte gUnknown_03005EB0
+_081254AC: .4byte 0x02000000
+_081254B0: .4byte gUnknown_03005EA4
+_081254B4: .4byte gUnknown_03005E9C
+_081254B8: .4byte gUnknown_03005EA0
+_081254BC: .4byte gUnknown_03005EAC
+_081254C0: .4byte gUnknown_03005EB4
+_081254C4: .4byte gUnknown_03005EA8
+ thumb_func_end sub_812546C
+
+ thumb_func_start sub_81254C8
+sub_81254C8: @ 81254C8
+ ldr r1, _081254EC
+ ldr r0, _081254F0
+ str r0, [r1]
+ ldr r1, _081254F4
+ ldr r0, _081254F8
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldr r1, _081254FC
+ ldr r0, _08125500
+ ldr r0, [r0]
+ str r0, [r1]
+ ldr r1, _08125504
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _08125508
+ movs r0, 0
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_081254EC: .4byte gUnknown_03005EB0
+_081254F0: .4byte 0x02000000
+_081254F4: .4byte gUnknown_03005EA4
+_081254F8: .4byte gUnknown_03005E9C
+_081254FC: .4byte gUnknown_03005EA0
+_08125500: .4byte gUnknown_03005EAC
+_08125504: .4byte gUnknown_03005EB4
+_08125508: .4byte gUnknown_03005EA8
+ thumb_func_end sub_81254C8
+
+ thumb_func_start sub_812550C
+sub_812550C: @ 812550C
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _08125548
+ ldrh r2, [r4]
+ subs r0, 0x1
+ cmp r2, r0
+ bge _08125560
+ movs r5, 0x1
+ adds r0, r2, 0
+ bl sub_81252D8
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ ldr r0, _0812554C
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08125562
+ movs r5, 0xFF
+ ldr r1, _08125550
+ ldr r0, _08125554
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldr r1, _08125558
+ ldr r0, _0812555C
+ ldr r0, [r0]
+ str r0, [r1]
+ b _08125562
+ .align 2, 0
+_08125548: .4byte gUnknown_03005EB4
+_0812554C: .4byte gUnknown_03005EA8
+_08125550: .4byte gUnknown_03005E9C
+_08125554: .4byte gUnknown_03005EA4
+_08125558: .4byte gUnknown_03005EAC
+_0812555C: .4byte gUnknown_03005EA0
+_08125560:
+ movs r5, 0xFF
+_08125562:
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_812550C
+
+ thumb_func_start sub_812556C
+sub_812556C: @ 812556C
+ push {r4,lr}
+ lsls r0, 16
+ movs r4, 0x1
+ ldr r2, _081255A0
+ adds r0, r2
+ lsrs r0, 16
+ bl sub_81255B8
+ ldr r0, _081255A4
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08125596
+ movs r4, 0xFF
+ ldr r1, _081255A8
+ ldr r0, _081255AC
+ ldrh r0, [r0]
+ strh r0, [r1]
+ ldr r1, _081255B0
+ ldr r0, _081255B4
+ ldr r0, [r0]
+ str r0, [r1]
+_08125596:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081255A0: .4byte 0xffff0000
+_081255A4: .4byte gUnknown_03005EA8
+_081255A8: .4byte gUnknown_03005E9C
+_081255AC: .4byte gUnknown_03005EA4
+_081255B0: .4byte gUnknown_03005EAC
+_081255B4: .4byte gUnknown_03005EA0
+ thumb_func_end sub_812556C
+
+ thumb_func_start sub_81255B8
+sub_81255B8: @ 81255B8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r4, r1, 0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _08125684
+ ldrh r0, [r0]
+ adds r0, r6, r0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r5, 0
+ movs r1, 0xE
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r2, _08125688
+ ldr r1, [r2]
+ movs r0, 0x1
+ ands r1, r0
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 1
+ adds r0, r5, r0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r0, r6, 3
+ adds r0, r4
+ ldr r1, [r0]
+ mov r10, r1
+ ldrh r3, [r0, 0x4]
+ movs r4, 0
+ mov r9, r2
+ ldr r2, _0812568C
+ mov r12, r2
+ mov r8, r12
+ movs r2, 0
+ ldr r1, _08125690
+_0812560A:
+ mov r7, r8
+ ldr r0, [r7]
+ adds r0, r4
+ strb r2, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r1
+ bls _0812560A
+ mov r0, r12
+ ldr r1, [r0]
+ ldr r2, _08125694
+ adds r0, r1, r2
+ strh r6, [r0]
+ ldr r6, _08125698
+ adds r2, r1, r6
+ ldr r0, _0812569C
+ str r0, [r2]
+ ldr r7, _081256A0
+ adds r1, r7
+ mov r2, r9
+ ldr r0, [r2]
+ str r0, [r1]
+ movs r4, 0
+ lsls r6, r5, 24
+ mov r8, r6
+ cmp r4, r3
+ bcs _0812565A
+ mov r2, r12
+_08125644:
+ ldr r1, [r2]
+ adds r1, r4
+ mov r7, r10
+ adds r0, r7, r4
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r3
+ bcc _08125644
+_0812565A:
+ mov r0, r10
+ adds r1, r3, 0
+ bl sub_8125C10
+ ldr r1, _0812568C
+ ldr r1, [r1]
+ ldr r2, _081256A4
+ adds r1, r2
+ strh r0, [r1]
+ ldr r0, _081256A8
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl _call_via_r1
+ movs r6, 0x1
+ movs r4, 0
+ ldr r7, _081256AC
+ mov r9, r7
+ ldr r7, _081256B0
+ b _081256BA
+ .align 2, 0
+_08125684: .4byte gUnknown_03005E9C
+_08125688: .4byte gUnknown_03005EAC
+_0812568C: .4byte gUnknown_03005EB0
+_08125690: .4byte 0x00000fff
+_08125694: .4byte 0x00000ff4
+_08125698: .4byte 0x00000ff8
+_0812569C: .4byte 0x08012025 @ TODO: figure out what this represents
+_081256A0: .4byte 0x00000ffc
+_081256A4: .4byte 0x00000ff6
+_081256A8: .4byte EraseFlashSector
+_081256AC: .4byte 0x00000ff7
+_081256B0: .4byte ProgramFlashByte
+_081256B4:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_081256BA:
+ cmp r4, r9
+ bhi _081256D8
+ ldr r0, _081256E4
+ ldr r0, [r0]
+ adds r0, r4
+ ldrb r2, [r0]
+ ldr r3, [r7]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl _call_via_r3
+ lsls r0, 16
+ cmp r0, 0
+ beq _081256B4
+ movs r6, 0xFF
+_081256D8:
+ cmp r6, 0xFF
+ bne _081256E8
+ mov r0, r8
+ lsrs r1, r0, 24
+ b _08125740
+ .align 2, 0
+_081256E4: .4byte gUnknown_03005EB0
+_081256E8:
+ movs r6, 0x1
+ movs r4, 0
+ ldr r1, _081256F4
+ mov r9, r1
+ ldr r7, _081256F8
+ b _08125702
+ .align 2, 0
+_081256F4: .4byte ProgramFlashByte
+_081256F8: .4byte 0x00000ff9
+_081256FC:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_08125702:
+ cmp r4, 0x6
+ bhi _08125724
+ adds r1, r4, r7
+ ldr r0, _08125738
+ ldr r0, [r0]
+ adds r0, r4, r0
+ adds r0, r7
+ ldrb r2, [r0]
+ mov r0, r9
+ ldr r3, [r0]
+ adds r0, r5, 0
+ bl _call_via_r3
+ lsls r0, 16
+ cmp r0, 0
+ beq _081256FC
+ movs r6, 0xFF
+_08125724:
+ cmp r6, 0xFF
+ beq _0812573C
+ mov r2, r8
+ lsrs r1, r2, 24
+ movs r0, 0x1
+ bl sub_81251D4
+ movs r0, 0x1
+ b _08125748
+ .align 2, 0
+_08125738: .4byte gUnknown_03005EB0
+_0812573C:
+ mov r6, r8
+ lsrs r1, r6, 24
+_08125740:
+ movs r0, 0
+ bl sub_81251D4
+ movs r0, 0xFF
+_08125748:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81255B8
+
+ thumb_func_start sub_8125758
+sub_8125758: @ 8125758
+ push {r4-r6,lr}
+ lsls r0, 16
+ ldr r6, _081257B4
+ lsrs r0, 16
+ ldrh r1, [r6]
+ adds r0, r1
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ movs r1, 0xE
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r5, _081257B8
+ ldr r1, [r5]
+ movs r0, 0x1
+ ands r1, r0
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 1
+ adds r0, r4, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r3, _081257BC
+ ldr r1, _081257C0
+ ldr r0, _081257C4
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r3, [r3]
+ adds r0, r4, 0
+ bl _call_via_r3
+ lsls r0, 16
+ cmp r0, 0
+ bne _081257C8
+ lsls r1, r4, 24
+ lsrs r1, 24
+ movs r0, 0x1
+ bl sub_81251D4
+ movs r0, 0x1
+ b _081257E0
+ .align 2, 0
+_081257B4: .4byte gUnknown_03005E9C
+_081257B8: .4byte gUnknown_03005EAC
+_081257BC: .4byte ProgramFlashByte
+_081257C0: .4byte 0x00000ff8
+_081257C4: .4byte gUnknown_03005EB0
+_081257C8:
+ lsls r1, r4, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_81251D4
+ ldr r0, _081257E8
+ ldrh r0, [r0]
+ strh r0, [r6]
+ ldr r0, _081257EC
+ ldr r0, [r0]
+ str r0, [r5]
+ movs r0, 0xFF
+_081257E0:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081257E8: .4byte gUnknown_03005EA4
+_081257EC: .4byte gUnknown_03005EA0
+ thumb_func_end sub_8125758
+
+ thumb_func_start sub_81257F0
+sub_81257F0: @ 81257F0
+ push {r4-r6,lr}
+ lsls r0, 16
+ ldr r6, _08125844
+ lsrs r0, 16
+ ldrh r1, [r6]
+ adds r0, r1
+ subs r0, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ movs r1, 0xE
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r5, _08125848
+ ldr r1, [r5]
+ movs r0, 0x1
+ ands r1, r0
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 1
+ adds r0, r4, r0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _0812584C
+ ldr r1, _08125850
+ ldr r3, [r0]
+ adds r0, r4, 0
+ movs r2, 0x25
+ bl _call_via_r3
+ lsls r0, 16
+ cmp r0, 0
+ bne _08125854
+ lsls r1, r4, 24
+ lsrs r1, 24
+ movs r0, 0x1
+ bl sub_81251D4
+ movs r0, 0x1
+ b _0812586C
+ .align 2, 0
+_08125844: .4byte gUnknown_03005E9C
+_08125848: .4byte gUnknown_03005EAC
+_0812584C: .4byte ProgramFlashByte
+_08125850: .4byte 0x00000ff8
+_08125854:
+ lsls r1, r4, 24
+ lsrs r1, 24
+ movs r0, 0
+ bl sub_81251D4
+ ldr r0, _08125874
+ ldrh r0, [r0]
+ strh r0, [r6]
+ ldr r0, _08125878
+ ldr r0, [r0]
+ str r0, [r5]
+ movs r0, 0xFF
+_0812586C:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08125874: .4byte gUnknown_03005EA4
+_08125878: .4byte gUnknown_03005EA0
+ thumb_func_end sub_81257F0
+
+ thumb_func_start sub_812587C
+sub_812587C: @ 812587C
+ push {r4-r6,lr}
+ adds r6, r1, 0
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r1, _08125894
+ ldr r0, _08125898
+ str r0, [r1]
+ ldr r0, _0812589C
+ cmp r4, r0
+ beq _081258A0
+ movs r5, 0xFF
+ b _081258B2
+ .align 2, 0
+_08125894: .4byte gUnknown_03005EB0
+_08125898: .4byte 0x02000000
+_0812589C: .4byte 0x0000ffff
+_081258A0:
+ adds r0, r6, 0
+ bl sub_8125974
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_81258BC
+_081258B2:
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_812587C
+
+ thumb_func_start sub_81258BC
+sub_81258BC: @ 81258BC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r1
+ ldr r0, _08125958
+ ldr r1, [r0]
+ movs r0, 0x1
+ ands r1, r0
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 17
+ lsrs r7, r0, 16
+ movs r5, 0
+ ldr r6, _0812595C
+_081258D8:
+ adds r0, r5, r7
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [r6]
+ bl sub_8125BF8
+ ldr r0, [r6]
+ ldr r1, _08125960
+ adds r0, r1
+ ldrh r1, [r0]
+ cmp r1, 0
+ bne _081258F4
+ ldr r0, _08125964
+ strh r5, [r0]
+_081258F4:
+ ldr r0, [r6]
+ lsls r1, 3
+ mov r2, r8
+ adds r4, r1, r2
+ ldrh r1, [r4, 0x4]
+ bl sub_8125C10
+ lsls r0, 16
+ lsrs r3, r0, 16
+ ldr r2, [r6]
+ ldr r1, _08125968
+ adds r0, r2, r1
+ ldr r1, [r0]
+ ldr r0, _0812596C
+ adds r5, 0x1
+ cmp r1, r0
+ bne _08125944
+ ldr r1, _08125970
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ cmp r0, r3
+ bne _08125944
+ movs r2, 0
+ ldrh r0, [r4, 0x4]
+ cmp r2, r0
+ bcs _08125944
+ adds r3, r4, 0
+ ldr r4, _0812595C
+_0812592C:
+ ldr r1, [r3]
+ adds r1, r2
+ ldr r0, [r4]
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrh r1, [r3, 0x4]
+ cmp r2, r1
+ bcc _0812592C
+_08125944:
+ lsls r0, r5, 16
+ lsrs r5, r0, 16
+ cmp r5, 0xD
+ bls _081258D8
+ movs r0, 0x1
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08125958: .4byte gUnknown_03005EAC
+_0812595C: .4byte gUnknown_03005EB0
+_08125960: .4byte 0x00000ff4
+_08125964: .4byte gUnknown_03005E9C
+_08125968: .4byte 0x00000ff8
+_0812596C: .4byte 0x08012025 @ TODO: figure out what this represents
+_08125970: .4byte 0x00000ff6
+ thumb_func_end sub_81258BC
+
+ thumb_func_start sub_8125974
+sub_8125974: @ 8125974
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r10, r0
+ movs r0, 0
+ mov r8, r0
+ mov r9, r0
+ movs r6, 0
+ movs r5, 0
+ movs r4, 0
+ ldr r7, _08125A00
+_08125990:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ ldr r1, [r7]
+ bl sub_8125BF8
+ ldr r2, [r7]
+ ldr r1, _08125A04
+ adds r0, r2, r1
+ ldr r1, [r0]
+ ldr r0, _08125A08
+ cmp r1, r0
+ bne _081259E0
+ movs r5, 0x1
+ ldr r3, _08125A0C
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ lsls r0, 3
+ add r0, r10
+ ldrh r1, [r0, 0x4]
+ adds r0, r2, 0
+ bl sub_8125C10
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r1, [r7]
+ ldr r3, _08125A10
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ cmp r0, r2
+ bne _081259E0
+ ldr r2, _08125A14
+ adds r0, r1, r2
+ ldr r0, [r0]
+ mov r8, r0
+ subs r3, 0x2
+ adds r1, r3
+ adds r0, r5, 0
+ ldrh r1, [r1]
+ lsls r0, r1
+ orrs r6, r0
+_081259E0:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xD
+ bls _08125990
+ cmp r5, 0
+ beq _08125A1C
+ ldr r0, _08125A18
+ movs r1, 0xFF
+ str r1, [sp]
+ cmp r6, r0
+ bne _08125A20
+ movs r2, 0x1
+ str r2, [sp]
+ b _08125A20
+ .align 2, 0
+_08125A00: .4byte gUnknown_03005EB0
+_08125A04: .4byte 0x00000ff8
+_08125A08: .4byte 0x08012025 @ TODO: figure out what this represents
+_08125A0C: .4byte 0x00000ff4
+_08125A10: .4byte 0x00000ff6
+_08125A14: .4byte 0x00000ffc
+_08125A18: .4byte 0x00003fff
+_08125A1C:
+ movs r3, 0
+ str r3, [sp]
+_08125A20:
+ movs r6, 0
+ movs r5, 0
+ movs r4, 0
+ ldr r7, _08125A98
+_08125A28:
+ adds r0, r4, 0
+ adds r0, 0xE
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [r7]
+ bl sub_8125BF8
+ ldr r2, [r7]
+ ldr r1, _08125A9C
+ adds r0, r2, r1
+ ldr r1, [r0]
+ ldr r0, _08125AA0
+ cmp r1, r0
+ bne _08125A7C
+ movs r5, 0x1
+ ldr r3, _08125AA4
+ adds r0, r2, r3
+ ldrh r0, [r0]
+ lsls r0, 3
+ add r0, r10
+ ldrh r1, [r0, 0x4]
+ adds r0, r2, 0
+ bl sub_8125C10
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldr r1, [r7]
+ ldr r3, _08125AA8
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ cmp r0, r2
+ bne _08125A7C
+ ldr r2, _08125AAC
+ adds r0, r1, r2
+ ldr r0, [r0]
+ mov r9, r0
+ subs r3, 0x2
+ adds r1, r3
+ adds r0, r5, 0
+ ldrh r1, [r1]
+ lsls r0, r1
+ orrs r6, r0
+_08125A7C:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xD
+ bls _08125A28
+ cmp r5, 0
+ beq _08125AB4
+ ldr r0, _08125AB0
+ movs r1, 0xFF
+ cmp r6, r0
+ bne _08125AB6
+ movs r1, 0x1
+ b _08125AB6
+ .align 2, 0
+_08125A98: .4byte gUnknown_03005EB0
+_08125A9C: .4byte 0x00000ff8
+_08125AA0: .4byte 0x08012025 @ TODO: figure out what this represents
+_08125AA4: .4byte 0x00000ff4
+_08125AA8: .4byte 0x00000ff6
+_08125AAC: .4byte 0x00000ffc
+_08125AB0: .4byte 0x00003fff
+_08125AB4:
+ movs r1, 0
+_08125AB6:
+ ldr r0, [sp]
+ cmp r0, 0x1
+ bne _08125B28
+ cmp r1, 0x1
+ bne _08125B18
+ movs r0, 0x1
+ negs r0, r0
+ cmp r8, r0
+ bne _08125ACE
+ mov r1, r9
+ cmp r1, 0
+ beq _08125AD8
+_08125ACE:
+ mov r2, r8
+ cmp r2, 0
+ bne _08125AFC
+ cmp r9, r0
+ bne _08125AFC
+_08125AD8:
+ mov r1, r8
+ adds r1, 0x1
+ mov r0, r9
+ adds r0, 0x1
+ cmp r1, r0
+ bcs _08125AF0
+ ldr r0, _08125AEC
+ mov r3, r9
+ b _08125B10
+ .align 2, 0
+_08125AEC: .4byte gUnknown_03005EAC
+_08125AF0:
+ ldr r0, _08125AF8
+ mov r1, r8
+ str r1, [r0]
+ b _08125B40
+ .align 2, 0
+_08125AF8: .4byte gUnknown_03005EAC
+_08125AFC:
+ cmp r8, r9
+ bcs _08125B0C
+ ldr r0, _08125B08
+ mov r2, r9
+ str r2, [r0]
+ b _08125B40
+ .align 2, 0
+_08125B08: .4byte gUnknown_03005EAC
+_08125B0C:
+ ldr r0, _08125B14
+ mov r3, r8
+_08125B10:
+ str r3, [r0]
+ b _08125B40
+ .align 2, 0
+_08125B14: .4byte gUnknown_03005EAC
+_08125B18:
+ ldr r0, _08125B24
+ mov r2, r8
+ str r2, [r0]
+ cmp r1, 0xFF
+ beq _08125B38
+ b _08125B40
+ .align 2, 0
+_08125B24: .4byte gUnknown_03005EAC
+_08125B28:
+ cmp r1, 0x1
+ bne _08125B44
+ ldr r0, _08125B3C
+ mov r3, r9
+ str r3, [r0]
+ ldr r0, [sp]
+ cmp r0, 0xFF
+ bne _08125B40
+_08125B38:
+ movs r0, 0xFF
+ b _08125B70
+ .align 2, 0
+_08125B3C: .4byte gUnknown_03005EAC
+_08125B40:
+ movs r0, 0x1
+ b _08125B70
+_08125B44:
+ ldr r2, [sp]
+ cmp r2, 0
+ bne _08125B64
+ cmp r1, 0
+ bne _08125B64
+ ldr r0, _08125B5C
+ str r1, [r0]
+ ldr r0, _08125B60
+ strh r1, [r0]
+ movs r0, 0
+ b _08125B70
+ .align 2, 0
+_08125B5C: .4byte gUnknown_03005EAC
+_08125B60: .4byte gUnknown_03005E9C
+_08125B64:
+ ldr r0, _08125B80
+ movs r1, 0
+ str r1, [r0]
+ ldr r0, _08125B84
+ strh r1, [r0]
+ movs r0, 0x2
+_08125B70:
+ 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
+_08125B80: .4byte gUnknown_03005EAC
+_08125B84: .4byte gUnknown_03005E9C
+ thumb_func_end sub_8125974
+
+ thumb_func_start sub_8125B88
+sub_8125B88: @ 8125B88
+ push {r4-r6,lr}
+ adds r6, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, 16
+ lsrs r4, r2, 16
+ ldr r5, _08125BDC
+ adds r1, r5, 0
+ bl sub_8125BF8
+ ldr r1, _08125BE0
+ adds r0, r5, r1
+ ldr r1, [r0]
+ ldr r0, _08125BE4
+ cmp r1, r0
+ bne _08125BF0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8125C10
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _08125BE8
+ adds r1, r5, r2
+ ldrh r1, [r1]
+ cmp r1, r0
+ bne _08125BEC
+ movs r2, 0
+ cmp r2, r4
+ bcs _08125BD6
+_08125BC4:
+ adds r1, r6, r2
+ adds r0, r5, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r4
+ bcc _08125BC4
+_08125BD6:
+ movs r0, 0x1
+ b _08125BF2
+ .align 2, 0
+_08125BDC: .4byte 0x02000000
+_08125BE0: .4byte 0x00000ff8
+_08125BE4: .4byte 0x08012025 @ TODO: figure out what this represents
+_08125BE8: .4byte 0x00000ff4
+_08125BEC:
+ movs r0, 0x2
+ b _08125BF2
+_08125BF0:
+ movs r0, 0
+_08125BF2:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8125B88
+
+ thumb_func_start sub_8125BF8
+sub_8125BF8: @ 8125BF8
+ push {lr}
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0x80
+ lsls r3, 5
+ movs r1, 0
+ bl ReadFlash
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8125BF8
+
+ thumb_func_start sub_8125C10
+sub_8125C10: @ 8125C10
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 16
+ movs r2, 0
+ movs r3, 0
+ lsrs r1, 18
+ cmp r2, r1
+ bcs _08125C2E
+_08125C20:
+ ldm r4!, {r0}
+ adds r2, r0
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r1
+ bcc _08125C20
+_08125C2E:
+ lsrs r0, r2, 16
+ adds r0, r2
+ lsls r0, 16
+ lsrs r0, 16
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8125C10
+
+ thumb_func_start sub_8125C3C
+sub_8125C3C: @ 8125C3C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bhi _08125CB6
+ lsls r0, 2
+ ldr r1, _08125C50
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08125C50: .4byte _08125C54
+ .align 2, 0
+_08125C54:
+ .4byte _08125CB6
+ .4byte _08125CD8
+ .4byte _08125CF8
+ .4byte _08125C82
+ .4byte _08125D0C
+ .4byte _08125C6C
+_08125C6C:
+ movs r4, 0x1C
+ ldr r5, _08125CC4
+_08125C70:
+ ldr r1, [r5]
+ adds r0, r4, 0
+ bl _call_via_r1
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1F
+ bls _08125C70
+_08125C82:
+ movs r0, 0xA
+ bl sub_8053108
+ ldr r1, _08125CC8
+ cmp r0, r1
+ bhi _08125C94
+ movs r0, 0xA
+ bl sav12_xor_increment
+_08125C94:
+ movs r4, 0
+ ldr r5, _08125CCC
+_08125C98:
+ adds r0, r4, 0
+ adds r0, 0x1C
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r4, 3
+ adds r2, r5
+ ldr r1, [r2]
+ ldrh r2, [r2, 0x4]
+ bl sub_81253C8
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bls _08125C98
+_08125CB6:
+ bl save_serialize_game
+ ldr r0, _08125CD0
+ ldr r1, _08125CD4
+ bl save_write_to_flash
+ b _08125D2E
+ .align 2, 0
+_08125CC4: .4byte EraseFlashSector
+_08125CC8: .4byte 0x000003e6
+_08125CCC: .4byte gUnknown_08401E14
+_08125CD0: .4byte 0x0000ffff
+_08125CD4: .4byte gUnknown_08401DA4
+_08125CD8:
+ bl save_serialize_game
+ movs r4, 0
+_08125CDE:
+ adds r0, r4, 0
+ ldr r1, _08125CF4
+ bl save_write_to_flash
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x4
+ bls _08125CDE
+ b _08125D2E
+ .align 2, 0
+_08125CF4: .4byte gUnknown_08401DA4
+_08125CF8:
+ bl save_serialize_game
+ ldr r1, _08125D08
+ movs r0, 0
+ bl save_write_to_flash
+ b _08125D2E
+ .align 2, 0
+_08125D08: .4byte gUnknown_08401DA4
+_08125D0C:
+ movs r4, 0x1C
+ ldr r5, _08125D38
+_08125D10:
+ ldr r1, [r5]
+ adds r0, r4, 0
+ bl _call_via_r1
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1F
+ bls _08125D10
+ bl save_serialize_game
+ ldr r0, _08125D3C
+ ldr r1, _08125D40
+ bl save_write_to_flash
+_08125D2E:
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08125D38: .4byte EraseFlashSector
+_08125D3C: .4byte 0x0000ffff
+_08125D40: .4byte gUnknown_08401DA4
+ thumb_func_end sub_8125C3C
+
+ thumb_func_start sub_8125D44
+sub_8125D44: @ 8125D44
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08125D58
+ ldr r0, [r0]
+ cmp r0, 0x1
+ beq _08125D5C
+ movs r0, 0xFF
+ b _08125D7A
+ .align 2, 0
+_08125D58: .4byte gUnknown_3004820
+_08125D5C:
+ adds r0, r4, 0
+ bl sub_8125C3C
+ ldr r0, _08125D74
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08125D78
+ adds r0, r4, 0
+ bl fullscreen_save_activate
+ movs r0, 0xFF
+ b _08125D7A
+ .align 2, 0
+_08125D74: .4byte gUnknown_03005EA8
+_08125D78:
+ movs r0, 0x1
+_08125D7A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8125D44
+
+ thumb_func_start sub_8125D80
+sub_8125D80: @ 8125D80
+ push {lr}
+ ldr r0, _08125D98
+ ldr r0, [r0]
+ cmp r0, 0x1
+ bne _08125DA0
+ bl save_serialize_game
+ ldr r0, _08125D9C
+ bl sub_812546C
+ movs r0, 0
+ b _08125DA2
+ .align 2, 0
+_08125D98: .4byte gUnknown_3004820
+_08125D9C: .4byte gUnknown_08401DA4
+_08125DA0:
+ movs r0, 0x1
+_08125DA2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8125D80
+
+ thumb_func_start sub_8125DA8
+sub_8125DA8: @ 8125DA8
+ push {r4,lr}
+ ldr r1, _08125DCC
+ movs r0, 0xE
+ bl sub_812550C
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08125DD0
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08125DC4
+ movs r0, 0
+ bl fullscreen_save_activate
+_08125DC4:
+ cmp r4, 0xFF
+ beq _08125DD4
+ movs r0, 0
+ b _08125DD6
+ .align 2, 0
+_08125DCC: .4byte gUnknown_08401DA4
+_08125DD0: .4byte gUnknown_03005EA8
+_08125DD4:
+ movs r0, 0x1
+_08125DD6:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8125DA8
+
+ thumb_func_start sub_8125DDC
+sub_8125DDC: @ 8125DDC
+ push {lr}
+ ldr r1, _08125DFC
+ movs r0, 0xE
+ bl sub_812556C
+ ldr r0, _08125E00
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08125DF4
+ movs r0, 0
+ bl fullscreen_save_activate
+_08125DF4:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08125DFC: .4byte gUnknown_08401DA4
+_08125E00: .4byte gUnknown_03005EA8
+ thumb_func_end sub_8125DDC
+
+ thumb_func_start sub_8125E04
+sub_8125E04: @ 8125E04
+ push {lr}
+ ldr r1, _08125E24
+ movs r0, 0xE
+ bl sub_8125758
+ ldr r0, _08125E28
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08125E1C
+ movs r0, 0
+ bl fullscreen_save_activate
+_08125E1C:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08125E24: .4byte gUnknown_08401DA4
+_08125E28: .4byte gUnknown_03005EA8
+ thumb_func_end sub_8125E04
+
+ thumb_func_start sub_8125E2C
+sub_8125E2C: @ 8125E2C
+ push {r4,lr}
+ ldr r0, _08125E58
+ ldr r0, [r0]
+ cmp r0, 0x1
+ bne _08125E64
+ bl save_serialize_game
+ ldr r4, _08125E5C
+ adds r0, r4, 0
+ bl sub_81254C8
+ ldr r0, _08125E60
+ ldrh r0, [r0]
+ adds r0, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0
+ bl sub_812556C
+ movs r0, 0
+ b _08125E66
+ .align 2, 0
+_08125E58: .4byte gUnknown_3004820
+_08125E5C: .4byte gUnknown_08401DA4
+_08125E60: .4byte gUnknown_03005EB4
+_08125E64:
+ movs r0, 0x1
+_08125E66:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8125E2C
+
+ thumb_func_start sub_8125E6C
+sub_8125E6C: @ 8125E6C
+ push {r4-r6,lr}
+ movs r6, 0
+ ldr r0, _08125E98
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+ lsls r0, r1, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x4
+ bhi _08125EA0
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _08125E9C
+ adds r1, r4, 0
+ bl sub_812556C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_81257F0
+ b _08125EAA
+ .align 2, 0
+_08125E98: .4byte gUnknown_03005EB4
+_08125E9C: .4byte gUnknown_08401DA4
+_08125EA0:
+ ldr r1, _08125EC0
+ adds r0, r5, 0
+ bl sub_81257F0
+ movs r6, 0x1
+_08125EAA:
+ ldr r0, _08125EC4
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08125EB8
+ movs r0, 0x1
+ bl fullscreen_save_activate
+_08125EB8:
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08125EC0: .4byte gUnknown_08401DA4
+_08125EC4: .4byte gUnknown_03005EA8
+ thumb_func_end sub_8125E6C
+
+ thumb_func_start sub_8125EC8
+sub_8125EC8: @ 8125EC8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _08125EE0
+ ldr r0, [r0]
+ cmp r0, 0x1
+ beq _08125EE8
+ ldr r1, _08125EE4
+ movs r0, 0x4
+ strh r0, [r1]
+ movs r0, 0xFF
+ b _08125F40
+ .align 2, 0
+_08125EE0: .4byte gUnknown_3004820
+_08125EE4: .4byte gSaveFileStatus
+_08125EE8:
+ cmp r1, 0
+ beq _08125EF0
+ cmp r1, 0x3
+ beq _08125F1C
+_08125EF0:
+ ldr r0, _08125F0C
+ ldr r1, _08125F10
+ bl sub_812587C
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl save_deserialize_game
+ ldr r0, _08125F14
+ strh r4, [r0]
+ ldr r1, _08125F18
+ movs r0, 0
+ str r0, [r1]
+ b _08125F3E
+ .align 2, 0
+_08125F0C: .4byte 0x0000ffff
+_08125F10: .4byte gUnknown_08401DA4
+_08125F14: .4byte gSaveFileStatus
+_08125F18: .4byte gUnknown_03005EBC
+_08125F1C:
+ ldr r5, _08125F48
+ ldr r1, [r5]
+ ldrh r2, [r5, 0x4]
+ movs r0, 0x1C
+ bl sub_8125B88
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bne _08125F3E
+ ldr r1, [r5, 0x8]
+ ldrh r2, [r5, 0xC]
+ movs r0, 0x1D
+ bl sub_8125B88
+ lsls r0, 24
+ lsrs r4, r0, 24
+_08125F3E:
+ adds r0, r4, 0
+_08125F40:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08125F48: .4byte gUnknown_08401E14
+ thumb_func_end sub_8125EC8
+
+ thumb_func_start unref_sub_8125F4C
+unref_sub_8125F4C: @ 8125F4C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r2, r4, 0
+ movs r1, 0
+ ldr r6, _08125F88
+ movs r5, 0
+ ldr r3, _08125F8C
+_08125F5A:
+ adds r0, r2, r1
+ strb r5, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r3
+ bls _08125F5A
+ ldrb r0, [r6]
+ movs r3, 0x80
+ lsls r3, 5
+ movs r1, 0
+ adds r2, r4, 0
+ bl ReadFlash
+ ldr r1, _08125F90
+ adds r0, r4, r1
+ ldr r1, [r0]
+ ldr r0, _08125F94
+ cmp r1, r0
+ bne _08125F98
+ movs r0, 0x1
+ b _08125F9A
+ .align 2, 0
+_08125F88: .4byte gUnknown_08401E24
+_08125F8C: .4byte 0x00000fff
+_08125F90: .4byte 0x00000ff4
+_08125F94: .4byte 0x08012025 @ TODO: figure out what this represents
+_08125F98:
+ movs r0, 0
+_08125F9A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_8125F4C
+
+ thumb_func_start unref_sub_8125FA0
+unref_sub_8125FA0: @ 8125FA0
+ push {r4-r7,lr}
+ movs r0, 0
+ bl sub_8125D44
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r7, _08125FD0
+ ldr r6, _08125FD4
+_08125FB2:
+ adds r0, r4, r6
+ ldrb r0, [r0]
+ ldr r1, [r7]
+ bl _call_via_r1
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x1
+ bls _08125FB2
+ cmp r5, 0xFF
+ bne _08125FD8
+ movs r0, 0x3
+ b _08125FE8
+ .align 2, 0
+_08125FD0: .4byte EraseFlashSector
+_08125FD4: .4byte gUnknown_08401E24
+_08125FD8:
+ cmp r5, 0x3
+ beq _08125FE6
+ movs r0, 0
+ bl sub_8125EC8
+ movs r0, 0x1
+ b _08125FE8
+_08125FE6:
+ movs r0, 0x2
+_08125FE8:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_8125FA0
+
+ thumb_func_start unref_sub_8125FF0
+unref_sub_8125FF0: @ 8125FF0
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r3, r1, 16
+ ldr r4, _08126048
+ movs r2, 0
+ ldr r7, _0812604C
+ movs r5, 0
+ ldr r1, _08126050
+_08126002:
+ adds r0, r4, r2
+ strb r5, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r1
+ bls _08126002
+ ldr r0, _08126054
+ adds r1, r4, r0
+ ldr r0, _08126058
+ str r0, [r1]
+ movs r2, 0
+ cmp r2, r3
+ bcs _08126030
+_0812601E:
+ adds r1, r4, r2
+ adds r0, r6, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r3
+ bcc _0812601E
+_08126030:
+ ldrb r0, [r7]
+ movs r2, 0x80
+ lsls r2, 5
+ adds r1, r4, 0
+ bl ProgramFlashSectorAndVerifyNBytes
+ ldr r1, _0812605C
+ str r0, [r1]
+ cmp r0, 0
+ bne _08126060
+ movs r0, 0x1
+ b _08126062
+ .align 2, 0
+_08126048: .4byte 0x02000000
+_0812604C: .4byte gUnknown_08401E24
+_08126050: .4byte 0x00000fff
+_08126054: .4byte 0x00000ff4
+_08126058: .4byte 0x08012025 @ TODO: figure out what this represents
+_0812605C: .4byte gUnknown_02039284
+_08126060:
+ movs r0, 0xFF
+_08126062:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_8125FF0
+
+ thumb_func_start unref_sub_8126068
+unref_sub_8126068: @ 8126068
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl ProgramFlashSectorAndVerify
+ cmp r0, 0
+ bne _0812607A
+ movs r0, 0x1
+ b _0812607C
+_0812607A:
+ movs r0, 0xFF
+_0812607C:
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_8126068
+
+ thumb_func_start unref_sub_8126080
+unref_sub_8126080: @ 8126080
+ push {lr}
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0x80
+ lsls r3, 5
+ movs r1, 0
+ bl ReadFlash
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_8126080
+
+ thumb_func_start sub_8126098
+sub_8126098: @ 8126098
+ push {r4,lr}
+ adds r4, r3, 0
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r2, 16
+ lsrs r2, 16
+ movs r3, 0x2
+ ands r0, r3
+ cmp r0, 0
+ beq _081260C6
+ ands r1, r3
+ cmp r1, 0
+ beq _081260C6
+ movs r0, 0x4
+ ands r2, r0
+ cmp r2, 0
+ beq _081260C6
+ movs r0, 0x80
+ .ifdef SAPPHIRE
+ lsls r0, 1 @ unknown difference
+ .endif
+ ands r0, r4
+ cmp r0, 0
+ beq _081260C6
+ movs r0, 0x1
+ b _081260C8
+_081260C6:
+ movs r0, 0
+_081260C8:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8126098
+
+ thumb_func_start sub_81260D0
+sub_81260D0: @ 81260D0
+ push {lr}
+ ldr r0, _081260E4
+ ldr r1, _081260E8
+ bl StringExpandPlaceholders
+ movs r0, 0x3
+ bl sub_8126160
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081260E4: .4byte gStringVar4
+_081260E8: .4byte gOtherText_DataCannotUseVersion
+ thumb_func_end sub_81260D0
+
+ thumb_func_start sub_81260EC
+sub_81260EC: @ 81260EC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r1, _08126114
+ ldr r2, _08126118
+ bl InitScriptContext
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl SetupBytecodeScript
+ str r5, [r4, 0x64]
+ movs r0, 0
+ str r0, [r4, 0x68]
+ str r0, [r4, 0x6C]
+ str r0, [r4, 0x70]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08126114: .4byte gScriptFuncs
+_08126118: .4byte gScriptFuncs_End
+ thumb_func_end sub_81260EC
+
+ thumb_func_start sub_812611C
+sub_812611C: @ 812611C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl RunScript
+ lsls r0, 24
+ cmp r0, 0
+ beq _08126134
+ ldr r0, [r4, 0x70]
+ cmp r0, 0
+ beq _08126134
+ movs r0, 0x1
+ b _08126136
+_08126134:
+ movs r0, 0
+_08126136:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_812611C
+
+ thumb_func_start sub_812613C
+sub_812613C: @ 812613C
+ push {r4,lr}
+ adds r1, r0, 0
+ ldr r4, _0812615C
+ adds r0, r4, 0
+ bl sub_81260EC
+_08126148:
+ adds r0, r4, 0
+ bl sub_812611C
+ cmp r0, 0
+ bne _08126148
+ ldr r0, [r4, 0x6C]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0812615C: .4byte gUnknown_02039288
+ thumb_func_end sub_812613C
+
+ thumb_func_start sub_8126160
+sub_8126160: @ 8126160
+ ldr r1, _08126168
+ str r0, [r1, 0x6C]
+ bx lr
+ .align 2, 0
+_08126168: .4byte gUnknown_02039288
+ thumb_func_end sub_8126160
+
+ thumb_func_start sub_812616C
+sub_812616C: @ 812616C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r3, 0
+ movs r2, 0
+ cmp r3, r1
+ bcs _08126184
+_08126178:
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ adds r3, r0
+ adds r2, 0x1
+ cmp r2, r1
+ bcc _08126178
+_08126184:
+ adds r0, r3, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_812616C
+
+ thumb_func_start sub_812618C
+sub_812618C: @ 812618C
+ adds r2, r0, 0
+ ldrb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ lsls r1, 8
+ orrs r0, r1
+ ldrb r1, [r2, 0x2]
+ lsls r1, 16
+ orrs r0, r1
+ ldrb r1, [r2, 0x3]
+ lsls r1, 24
+ orrs r0, r1
+ bx lr
+ thumb_func_end sub_812618C
+
+ thumb_func_start sub_81261A4
+sub_81261A4: @ 81261A4
+ 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
+ thumb_func_end sub_81261A4
+
+ thumb_func_start unref_sub_81261B4
+unref_sub_81261B4: @ 81261B4
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r7, r1, 0
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ bne _08126204
+ ldrb r0, [r5, 0x11]
+ cmp r0, 0xF
+ bne _08126204
+ adds r6, r5, 0
+ adds r6, 0x12
+ adds r0, r6, 0
+ bl sub_812618C
+ cmp r0, 0
+ bne _08126204
+ adds r0, r5, 0
+ adds r0, 0x16
+ bl sub_812618C
+ adds r4, r0, 0
+ subs r4, r7
+ adds r4, r5
+ adds r0, r5, 0
+ adds r0, 0x1A
+ bl sub_812618C
+ adds r1, r0, 0
+ subs r1, r7
+ adds r1, r5
+ subs r1, r4
+ adds r0, r4, 0
+ bl sub_812616C
+ adds r1, r0, 0
+ adds r0, r6, 0
+ bl sub_81261A4
+ movs r0, 0x1
+ b _08126206
+_08126204:
+ movs r0, 0
+_08126206:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_81261B4
+
+ thumb_func_start unref_sub_812620C
+unref_sub_812620C: @ 812620C
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r7, r1, 0
+ ldrb r0, [r5]
+ cmp r0, 0x1
+ bne _08126260
+ ldrb r0, [r5, 0x11]
+ cmp r0, 0x10
+ bne _08126260
+ adds r6, r5, 0
+ adds r6, 0x12
+ adds r0, r6, 0
+ bl sub_812618C
+ cmp r0, 0
+ bne _08126260
+ adds r0, r5, 0
+ adds r0, 0x16
+ bl sub_812618C
+ adds r4, r0, 0
+ subs r4, r7
+ adds r4, r5
+ adds r0, r5, 0
+ adds r0, 0x1A
+ bl sub_812618C
+ adds r1, r0, 0
+ subs r1, r7
+ adds r1, r5
+ subs r1, r4
+ adds r0, r4, 0
+ bl sub_8041174
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r6, 0
+ bl sub_81261A4
+ movs r0, 0x1
+ b _08126262
+_08126260:
+ movs r0, 0
+_08126262:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_812620C
+
+ thumb_func_start sub_8126268
+sub_8126268: @ 8126268
+ push {lr}
+ movs r2, 0
+ ldr r3, _08126284
+ movs r1, 0
+_08126270:
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ adds r2, r0
+ adds r1, 0x1
+ cmp r1, 0xB
+ bls _08126270
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08126284: .4byte gSaveBlock1 + 0x3A80
+ thumb_func_end sub_8126268
+
+ thumb_func_start sub_8126288
+sub_8126288: @ 8126288
+ push {r4,lr}
+ ldr r4, _081262B4
+ bl sub_8126268
+ adds r1, r0, 0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _081262B0
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _081262B0
+ ldrh r0, [r4, 0x2]
+ cmp r0, 0
+ beq _081262B0
+ cmp r1, 0
+ beq _081262B0
+ subs r0, r4, 0x4
+ ldr r0, [r0]
+ cmp r1, r0
+ beq _081262B8
+_081262B0:
+ movs r0, 0
+ b _081262BA
+ .align 2, 0
+_081262B4: .4byte gSaveBlock1 + 0x3A80
+_081262B8:
+ movs r0, 0x1
+_081262BA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8126288
+
+ thumb_func_start sub_81262C0
+sub_81262C0: @ 81262C0
+ push {lr}
+ sub sp, 0x4
+ mov r1, sp
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _081262DC
+ ldr r2, _081262E0
+ mov r0, sp
+ bl CpuSet
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081262DC: .4byte gSaveBlock1 + 0x3A7C
+_081262E0: .4byte 0x01000008
+ thumb_func_end sub_81262C0
+
+ thumb_func_start sub_81262E4
+sub_81262E4: @ 81262E4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r5, r1, 0
+ lsls r2, 16
+ lsrs r2, 16
+ adds r6, r2, 0
+ cmp r3, 0
+ beq _08126304
+ cmp r1, 0
+ beq _08126304
+ cmp r2, 0
+ bne _0812630A
+_08126304:
+ bl sub_81262C0
+ b _0812632A
+_0812630A:
+ ldr r4, _08126330
+ movs r1, 0xEA
+ lsls r1, 6
+ adds r0, r4, r1
+ strb r3, [r0]
+ adds r1, 0x1
+ adds r0, r4, r1
+ strb r5, [r0]
+ adds r1, 0x1
+ adds r0, r4, r1
+ strh r6, [r0]
+ bl sub_8126268
+ ldr r1, _08126334
+ adds r4, r1
+ str r0, [r4]
+_0812632A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08126330: .4byte gSaveBlock1
+_08126334: .4byte 0x00003a7c
+ thumb_func_end sub_81262E4
+
+ thumb_func_start sub_8126338
+sub_8126338: @ 8126338
+ push {r4,r5,lr}
+ ldr r4, _0812634C
+ bl sub_8126288
+ cmp r0, 0
+ bne _08126350
+ bl sub_81262C0
+ movs r0, 0
+ b _0812636E
+ .align 2, 0
+_0812634C: .4byte gSaveBlock1 + 0x3A80
+_08126350:
+ ldrh r5, [r4, 0x2]
+ ldrb r0, [r4, 0x1]
+ subs r0, 0x1
+ strb r0, [r4, 0x1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08126364
+ bl sub_81262C0
+ b _0812636C
+_08126364:
+ bl sub_8126268
+ subs r1, r4, 0x4
+ str r0, [r1]
+_0812636C:
+ adds r0, r5, 0
+_0812636E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8126338
+
+ thumb_func_start script_status_stop_and_ret_1
+script_status_stop_and_ret_1: @ 8126374
+ push {lr}
+ bl StopScript
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end script_status_stop_and_ret_1
+
+ thumb_func_start sub_8126380
+sub_8126380: @ 8126380
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ bl ScriptReadWord
+ str r0, [r7, 0x68]
+ adds r0, r7, 0
+ bl ScriptReadHalfword
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r7, 0
+ bl ScriptReadWord
+ adds r6, r0, 0
+ adds r0, r7, 0
+ bl ScriptReadHalfword
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r7, 0
+ bl ScriptReadWord
+ adds r3, r0, 0
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_8126098
+ cmp r0, 0x1
+ bne _081263C4
+ str r0, [r7, 0x70]
+ b _081263C8
+_081263C4:
+ bl sub_81260D0
+_081263C8:
+ movs r0, 0x1
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8126380
+
+ thumb_func_start sub_81263D0
+sub_81263D0: @ 81263D0
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_81263D0
+
+ thumb_func_start sub_81263D4
+sub_81263D4: @ 81263D4
+ ldr r1, [r0, 0x8]
+ ldrb r2, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ str r2, [r0, 0x6C]
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_81263D4
+
+ thumb_func_start sub_81263E4
+sub_81263E4: @ 81263E4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r0, [r4, 0x8]
+ ldrb r5, [r0]
+ adds r0, 0x1
+ str r0, [r4, 0x8]
+ adds r0, r4, 0
+ bl ScriptReadWord
+ ldr r1, [r4, 0x68]
+ subs r0, r1
+ ldr r1, [r4, 0x64]
+ adds r1, r0, r1
+ cmp r5, 0xFF
+ beq _08126408
+ ldr r0, [r4, 0x6C]
+ cmp r5, r0
+ bne _0812640E
+_08126408:
+ ldr r0, _08126418
+ bl StringExpandPlaceholders
+_0812640E:
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08126418: .4byte gStringVar4
+ thumb_func_end sub_81263E4
+
+ thumb_func_start sub_812641C
+sub_812641C: @ 812641C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl ScriptReadWord
+ ldr r1, [r4, 0x68]
+ subs r0, r1
+ ldr r1, [r4, 0x64]
+ adds r0, r1
+ bl ScriptContext2_RunNewScript
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_812641C
+
+ thumb_func_start sub_8126438
+sub_8126438: @ 8126438
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ bl sub_80B4940
+ mov r8, r0
+ adds r0, r7, 0
+ bl ScriptReadWord
+ adds r4, r0, 0
+ ldr r0, [r7, 0x68]
+ subs r4, r0
+ ldr r0, [r7, 0x64]
+ adds r4, r0
+ ldr r6, _08126484
+ ldr r5, _08126488
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r2, 0x7
+ bl StringCopyN
+ adds r0, r4, 0
+ bl sub_80B48A8
+ ldr r4, _0812648C
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x7
+ bl StringCopyN
+ mov r0, r8
+ cmp r0, 0
+ bne _08126498
+ ldr r0, _08126490
+ ldr r1, _08126494
+ b _081264B8
+ .align 2, 0
+_08126484: .4byte gStringVar1
+_08126488: .4byte gSaveBlock1 + 0x3160
+_0812648C: .4byte gStringVar2
+_08126490: .4byte gStringVar4
+_08126494: .4byte gOtherText_BerryObtainedDadHasIt
+_08126498:
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl StringCompare
+ cmp r0, 0
+ beq _081264B4
+ ldr r0, _081264AC
+ ldr r1, _081264B0
+ b _081264B8
+ .align 2, 0
+_081264AC: .4byte gStringVar4
+_081264B0: .4byte gOtherText_BerryTransformed
+_081264B4:
+ ldr r0, _081264D4
+ ldr r1, _081264D8
+_081264B8:
+ bl StringExpandPlaceholders
+ movs r0, 0x2
+ str r0, [r7, 0x6C]
+ bl sub_80B4940
+ cmp r0, 0x1
+ bne _081264E0
+ ldr r0, _081264DC
+ movs r1, 0x1
+ bl VarSet
+ b _081264E4
+ .align 2, 0
+_081264D4: .4byte gStringVar4
+_081264D8: .4byte gOtherText_BerryAlreadyObtained
+_081264DC: .4byte 0x0000402d
+_081264E0:
+ movs r0, 0x1
+ str r0, [r7, 0x6C]
+_081264E4:
+ movs r0, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8126438
+
+ thumb_func_start sub_81264F0
+sub_81264F0: @ 81264F0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r2, [r4, 0x8]
+ ldrb r0, [r2]
+ adds r2, 0x1
+ str r2, [r4, 0x8]
+ ldrb r1, [r2]
+ adds r2, 0x1
+ str r2, [r4, 0x8]
+ bl sub_80C5C38
+ ldr r0, _0812651C
+ ldr r1, _08126520
+ bl StringExpandPlaceholders
+ movs r0, 0x2
+ str r0, [r4, 0x6C]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0812651C: .4byte gStringVar4
+_08126520: .4byte gOtherText_SpecialRibbonReceived
+ thumb_func_end sub_81264F0
+
+ thumb_func_start sub_8126524
+sub_8126524: @ 8126524
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldr r0, [r4, 0x8]
+ ldrb r1, [r0]
+ mov r9, r1
+ adds r0, 0x1
+ str r0, [r4, 0x8]
+ ldrb r1, [r0]
+ mov r8, r1
+ adds r1, r0, 0x1
+ str r1, [r4, 0x8]
+ ldrb r6, [r0, 0x1]
+ adds r1, 0x1
+ str r1, [r4, 0x8]
+ adds r0, r4, 0
+ bl ScriptReadWord
+ adds r5, r0, 0
+ ldr r0, [r4, 0x68]
+ subs r5, r0
+ ldr r0, [r4, 0x64]
+ adds r5, r0
+ adds r0, r4, 0
+ bl ScriptReadWord
+ adds r1, r0, 0
+ ldr r0, [r4, 0x68]
+ subs r1, r0
+ ldr r0, [r4, 0x64]
+ adds r1, r0
+ subs r1, r5
+ lsls r1, 16
+ lsrs r1, 16
+ str r6, [sp]
+ adds r0, r5, 0
+ mov r2, r9
+ mov r3, r8
+ bl InitRamScript
+ movs r0, 0
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8126524
+
+ thumb_func_start sub_812658C
+sub_812658C: @ 812658C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80690F0
+ ldr r0, _081265A8
+ ldr r1, _081265AC
+ bl StringExpandPlaceholders
+ movs r0, 0x2
+ str r0, [r4, 0x6C]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081265A8: .4byte gStringVar4
+_081265AC: .4byte gOtherText_DexUpgraded
+ thumb_func_end sub_812658C
+
+ thumb_func_start sub_81265B0
+sub_81265B0: @ 81265B0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, [r4, 0x8]
+ ldrb r0, [r1]
+ adds r1, 0x1
+ str r1, [r4, 0x8]
+ bl sub_80EB890
+ ldr r0, _081265D4
+ ldr r1, _081265D8
+ bl StringExpandPlaceholders
+ movs r0, 0x2
+ str r0, [r4, 0x6C]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081265D4: .4byte gStringVar4
+_081265D8: .4byte gOtherText_RareWordAdded
+ thumb_func_end sub_81265B0
+
+ thumb_func_start sub_81265DC
+sub_81265DC: @ 81265DC
+ push {r4,r5,lr}
+ ldr r1, [r0, 0x8]
+ ldrb r5, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ ldrb r4, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ bl ScriptReadHalfword
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_81262E4
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81265DC
+
+ thumb_func_start sub_8126608
+sub_8126608: @ 8126608
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x88
+ adds r6, r0, 0
+ bl ScriptReadWord
+ ldr r1, [r6, 0x68]
+ subs r0, r1
+ ldr r1, [r6, 0x64]
+ adds r5, r0, r1
+ movs r0, 0x64
+ adds r0, r5
+ mov r8, r0
+ add r4, sp, 0x24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ bne _08126658
+ ldr r0, _08126650
+ ldr r1, _08126654
+ movs r2, 0xB
+ bl StringCopyN
+ b _08126662
+ .align 2, 0
+_08126650: .4byte gStringVar1
+_08126654: .4byte gSystemText_Egg
+_08126658:
+ ldr r0, _08126678
+ ldr r1, _0812667C
+ movs r2, 0xB
+ bl StringCopyN
+_08126662:
+ ldr r0, _08126680
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bne _0812668C
+ ldr r0, _08126684
+ ldr r1, _08126688
+ bl StringExpandPlaceholders
+ movs r0, 0x3
+ b _081266F6
+ .align 2, 0
+_08126678: .4byte gStringVar1
+_0812667C: .4byte gSystemText_Pokemon2
+_08126680: .4byte gPlayerPartyCount
+_08126684: .4byte gStringVar4
+_08126688: .4byte gOtherText_PartyIsFull
+_0812668C:
+ ldr r7, _08126708
+ adds r0, r7, 0
+ adds r1, r5, 0
+ movs r2, 0x64
+ bl memcpy
+ mov r0, sp
+ mov r1, r8
+ movs r2, 0x24
+ bl memcpy
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ beq _081266C6
+ adds r0, r4, 0
+ bl SpeciesToNationalPokedexNum
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl sub_8090D90
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl sub_8090D90
+_081266C6:
+ adds r0, r7, 0
+ movs r1, 0xC
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _081266E4
+ adds r0, r7, 0
+ mov r1, sp
+ bl sub_80A2D88
+_081266E4:
+ bl party_compaction
+ bl CalculatePlayerPartyCount
+ ldr r0, _0812670C
+ ldr r1, _08126710
+ bl StringExpandPlaceholders
+ movs r0, 0x2
+_081266F6:
+ str r0, [r6, 0x6C]
+ movs r0, 0
+ add sp, 0x88
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08126708: .4byte gUnknown_03004554
+_0812670C: .4byte gStringVar4
+_08126710: .4byte gOtherText_PokeWasSentOver
+ thumb_func_end sub_8126608
+
+ thumb_func_start sub_8126714
+sub_8126714: @ 8126714
+ push {r4,lr}
+ adds r4, r0, 0
+ bl ScriptReadWord
+ adds r1, r0, 0
+ ldr r0, [r4, 0x68]
+ subs r1, r0
+ ldr r0, [r4, 0x64]
+ adds r1, r0
+ ldr r0, _08126748
+ movs r2, 0xBC
+ bl memcpy
+ bl sub_813601C
+ ldr r0, _0812674C
+ ldr r1, _08126750
+ bl StringExpandPlaceholders
+ movs r0, 0x2
+ str r0, [r4, 0x6C]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08126748: .4byte gSaveBlock2 + 0x498
+_0812674C: .4byte gStringVar4
+_08126750: .4byte gOtherText_NewTrainerInHoenn
+ thumb_func_end sub_8126714
+
+ thumb_func_start sub_8126754
+sub_8126754: @ 8126754
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80691BC
+ ldr r0, _08126770
+ ldr r1, _08126774
+ bl StringExpandPlaceholders
+ movs r0, 0x2
+ str r0, [r4, 0x6C]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08126770: .4byte gStringVar4
+_08126774: .4byte gSystemText_ClockAdjustmentUsable
+ thumb_func_end sub_8126754
+
+ thumb_func_start sub_8126778
+sub_8126778: @ 8126778
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl ScriptReadWord
+ adds r5, r0, 0
+ adds r0, r6, 0
+ bl ScriptReadWord
+ adds r4, r0, 0
+ ldr r0, [r6, 0x68]
+ subs r4, r0
+ ldr r0, [r6, 0x64]
+ adds r4, r0
+ adds r0, r6, 0
+ bl ScriptReadWord
+ adds r1, r0, 0
+ ldr r0, [r6, 0x68]
+ subs r1, r0
+ ldr r0, [r6, 0x64]
+ adds r1, r0
+ subs r1, r4
+ adds r0, r4, 0
+ bl sub_812616C
+ cmp r5, r0
+ beq _081267B6
+ movs r0, 0
+ str r0, [r6, 0x70]
+ movs r0, 0x1
+ str r0, [r6, 0x6C]
+_081267B6:
+ movs r0, 0x1
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8126778
+
+ thumb_func_start sub_81267C0
+sub_81267C0: @ 81267C0
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl ScriptReadWord
+ adds r5, r0, 0
+ adds r0, r6, 0
+ bl ScriptReadWord
+ adds r4, r0, 0
+ ldr r0, [r6, 0x68]
+ subs r4, r0
+ ldr r0, [r6, 0x64]
+ adds r4, r0
+ adds r0, r6, 0
+ bl ScriptReadWord
+ adds r1, r0, 0
+ ldr r0, [r6, 0x68]
+ subs r1, r0
+ ldr r0, [r6, 0x64]
+ adds r1, r0
+ subs r1, r4
+ adds r0, r4, 0
+ bl sub_8041174
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r5, r0
+ beq _08126802
+ movs r0, 0
+ str r0, [r6, 0x70]
+ movs r0, 0x1
+ str r0, [r6, 0x6C]
+_08126802:
+ movs r0, 0x1
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81267C0
+
+ thumb_func_start SetUpReflection
+SetUpReflection: @ 812680C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ lsls r5, r2, 24
+ lsrs r5, 24
+ movs r0, 0x20
+ ldrsh r1, [r4, r0]
+ movs r0, 0x22
+ ldrsh r2, [r4, r0]
+ adds r0, r4, 0
+ movs r3, 0x98
+ bl obj_unfreeze
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _081268BC
+ adds r7, r1, r0
+ ldr r0, _081268C0
+ str r0, [r7, 0x1C]
+ ldrb r1, [r7, 0x5]
+ movs r0, 0xC
+ orrs r1, r0
+ strb r1, [r7, 0x5]
+ ldr r2, _081268C4
+ lsrs r0, r1, 4
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 4
+ movs r2, 0xF
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r7, 0x5]
+ movs r1, 0x3F
+ adds r1, r7
+ mov r8, r1
+ ldrb r0, [r1]
+ movs r1, 0x40
+ orrs r0, r1
+ mov r1, r8
+ strb r0, [r1]
+ ldr r0, _081268C8
+ str r0, [r7, 0x8]
+ adds r0, r7, 0
+ movs r1, 0
+ bl StartSpriteAnim
+ ldr r0, _081268CC
+ str r0, [r7, 0x10]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x8
+ orrs r0, r1
+ mov r1, r8
+ strb r0, [r1]
+ adds r2, r7, 0
+ adds r2, 0x42
+ ldrb r1, [r2]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x2E]
+ strh r0, [r7, 0x2E]
+ ldrb r0, [r6, 0x8]
+ strh r0, [r7, 0x30]
+ strh r5, [r7, 0x3C]
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl npc_pal_op
+ cmp r5, 0
+ bne _081268B2
+ ldrb r0, [r7, 0x1]
+ movs r1, 0x4
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x1
+ orrs r1, r0
+ strb r1, [r7, 0x1]
+_081268B2:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081268BC: .4byte gSprites
+_081268C0: .4byte sub_81269E0
+_081268C4: .4byte gUnknown_0830FD14
+_081268C8: .4byte gDummySpriteAnimTable
+_081268CC: .4byte gDummySpriteAffineAnimTable
+ thumb_func_end SetUpReflection
+
+ thumb_func_start sub_81268D0
+sub_81268D0: @ 81268D0
+ push {lr}
+ ldrb r0, [r0, 0x5]
+ bl GetFieldObjectGraphicsInfo
+ ldrh r0, [r0, 0xA]
+ subs r0, 0x2
+ lsls r0, 16
+ asrs r0, 16
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81268D0
+
+ thumb_func_start npc_pal_op
+npc_pal_op: @ 81268E4
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldr r1, _0812693C
+ mov r0, sp
+ movs r2, 0x6
+ bl memcpy
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ ldrb r0, [r5, 0x5]
+ bl GetFieldObjectGraphicsInfo
+ ldrb r1, [r0, 0xC]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08126940
+ ldrb r0, [r5, 0x1F]
+ bl sub_8057450
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _08126926
+ ldrb r0, [r5, 0x1E]
+ bl sub_8057450
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08126940
+_08126926:
+ subs r0, 0x1
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x32]
+ ldrb r1, [r4, 0x5]
+ lsrs r1, 4
+ adds r0, r5, 0
+ bl npc_pal_op_A
+ b _0812694A
+ .align 2, 0
+_0812693C: .4byte gUnknown_08401E2C
+_08126940:
+ ldrb r1, [r4, 0x5]
+ lsrs r1, 4
+ adds r0, r5, 0
+ bl npc_pal_op_B
+_0812694A:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end npc_pal_op
+
+ thumb_func_start npc_pal_op_B
+npc_pal_op_B: @ 8126954
+ push {r4,lr}
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldrb r0, [r0, 0x5]
+ bl GetFieldObjectGraphicsInfo
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x4]
+ ldr r0, _08126980
+ cmp r1, r0
+ beq _081269A8
+ ldrb r0, [r2, 0xC]
+ movs r1, 0xF
+ ands r1, r0
+ cmp r1, 0
+ bne _08126984
+ ldrh r0, [r2, 0x2]
+ adds r1, r4, 0
+ bl npc_load_two_palettes__no_record
+ b _081269A2
+ .align 2, 0
+_08126980: .4byte 0x000011ff
+_08126984:
+ cmp r1, 0xA
+ bne _08126992
+ ldrh r0, [r2, 0x2]
+ adds r1, r4, 0
+ bl npc_load_two_palettes__and_record
+ b _081269A2
+_08126992:
+ adds r0, r4, 0
+ bl npc_paltag_by_palslot
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0
+ bl pal_patch_for_npc
+_081269A2:
+ adds r0, r4, 0
+ bl sub_807D78C
+_081269A8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end npc_pal_op_B
+
+ thumb_func_start npc_pal_op_A
+npc_pal_op_A: @ 81269B0
+ push {r4,lr}
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldrb r0, [r0, 0x5]
+ bl GetFieldObjectGraphicsInfo
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x4]
+ ldr r0, _081269DC
+ cmp r1, r0
+ beq _081269D4
+ adds r0, r1, 0
+ adds r1, r4, 0
+ bl pal_patch_for_npc
+ adds r0, r4, 0
+ bl sub_807D78C
+_081269D4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081269DC: .4byte 0x000011ff
+ thumb_func_end npc_pal_op_A
+
+ thumb_func_start sub_81269E0
+sub_81269E0: @ 81269E0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r4, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08126A28
+ adds r7, r0, r1
+ ldrb r1, [r7, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08126A2C
+ adds r5, r0, r1
+ ldr r0, [r7]
+ ldr r1, _08126A30
+ ands r0, r1
+ cmp r0, r1
+ bne _08126A18
+ ldrb r1, [r7, 0x8]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ beq _08126A34
+_08126A18:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ b _08126B3E
+ .align 2, 0
+_08126A28: .4byte gMapObjects
+_08126A2C: .4byte gSprites
+_08126A30: .4byte 0x00020001
+_08126A34:
+ ldr r1, _08126B4C
+ ldrb r0, [r5, 0x5]
+ lsrs r0, 4
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r1, 4
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ ldrb r1, [r5, 0x1]
+ lsrs r1, 6
+ lsls r1, 6
+ ldrb r2, [r4, 0x1]
+ movs r3, 0x3F
+ adds r0, r3, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r5, 0x3]
+ lsrs r0, 6
+ lsls r0, 6
+ ldrb r2, [r4, 0x3]
+ adds r1, r3, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x3]
+ ldrb r0, [r5, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ movs r2, 0x10
+ orrs r0, r2
+ lsls r0, 1
+ subs r2, 0x4F
+ mov r9, r2
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x3]
+ ldrh r1, [r5, 0x4]
+ lsls r1, 22
+ lsrs r1, 22
+ ldrh r2, [r4, 0x4]
+ ldr r0, _08126B50
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ ldr r0, [r5, 0x18]
+ str r0, [r4, 0x18]
+ adds r0, r5, 0
+ adds r0, 0x42
+ ldrb r0, [r0]
+ lsls r0, 26
+ lsrs r0, 26
+ adds r2, r4, 0
+ adds r2, 0x42
+ ands r3, r0
+ ldrb r1, [r2]
+ movs r0, 0x40
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2]
+ movs r0, 0x3E
+ adds r0, r5
+ mov r8, r0
+ ldrb r0, [r0]
+ adds r6, r4, 0
+ adds r6, 0x3E
+ movs r1, 0x4
+ ands r1, r0
+ ldrb r2, [r6]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r4, 0x20]
+ adds r0, r7, 0
+ bl sub_81268D0
+ ldrh r1, [r5, 0x22]
+ adds r0, r1
+ ldrh r1, [r4, 0x32]
+ adds r1, r0
+ strh r1, [r4, 0x22]
+ adds r0, r5, 0
+ adds r0, 0x28
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ adds r0, 0x28
+ strb r1, [r0]
+ adds r0, r5, 0
+ adds r0, 0x29
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ adds r1, 0x29
+ strb r0, [r1]
+ ldrh r0, [r5, 0x24]
+ strh r0, [r4, 0x24]
+ ldrh r0, [r5, 0x26]
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ mov r2, r8
+ ldrb r0, [r2]
+ movs r1, 0x2
+ ands r1, r0
+ ldrb r2, [r6]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08126B3E
+ ldrb r0, [r4, 0x3]
+ mov r2, r9
+ ands r2, r0
+ strb r2, [r4, 0x3]
+ ldrb r0, [r5, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ movs r1, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08126B3E
+ movs r1, 0x2
+ adds r0, r2, 0
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+_08126B3E:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08126B4C: .4byte gUnknown_0830FD14
+_08126B50: .4byte 0xfffffc00
+ thumb_func_end sub_81269E0
+
+ thumb_func_start sub_8126B54
+sub_8126B54: @ 8126B54
+ push {r4,lr}
+ ldr r0, _08126B9C
+ ldr r0, [r0, 0x20]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x52
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ cmp r0, 0x40
+ beq _08126B92
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08126BA0
+ adds r1, r0
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ movs r3, 0x4
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x2
+ orrs r0, r2
+ orrs r0, r3
+ strb r0, [r1]
+_08126B92:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08126B9C: .4byte gFieldEffectObjectTemplatePointers
+_08126BA0: .4byte gSprites
+ thumb_func_end sub_8126B54
+
+ thumb_func_start objid_set_invisible
+objid_set_invisible: @ 8126BA4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08126BC0
+ 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]
+ bx lr
+ .align 2, 0
+_08126BC0: .4byte gSprites
+ thumb_func_end objid_set_invisible
+
+ thumb_func_start sub_8126BC4
+sub_8126BC4: @ 8126BC4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r2, 16
+ lsrs r7, r2, 16
+ lsls r3, 16
+ lsrs r6, r3, 16
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ ldr r1, _08126C68
+ adds r2, r0, r1
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _08126C0E
+ movs r0, 0x2E
+ ldrsh r1, [r2, r0]
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r1, r0
+ bne _08126C0E
+ movs r0, 0x30
+ ldrsh r1, [r2, r0]
+ lsls r0, r6, 16
+ asrs r0, 16
+ cmp r1, r0
+ beq _08126C5A
+_08126C0E:
+ lsls r0, r7, 16
+ asrs r0, 16
+ lsls r1, r6, 16
+ asrs r1, 16
+ mov r4, sp
+ adds r4, 0x2
+ mov r2, sp
+ adds r3, r4, 0
+ bl sub_80603CC
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ ldr r1, _08126C68
+ adds r2, r0, r1
+ mov r0, sp
+ ldrh r0, [r0]
+ adds r0, 0x8
+ strh r0, [r2, 0x20]
+ ldrh r0, [r4]
+ adds r0, 0x8
+ strh r0, [r2, 0x22]
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ strh r7, [r2, 0x2E]
+ strh r6, [r2, 0x30]
+ mov r1, r8
+ subs r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r2, 0
+ bl StartSpriteAnim
+_08126C5A:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08126C68: .4byte gSprites
+ thumb_func_end sub_8126BC4
+
+ thumb_func_start oei_shadow
+oei_shadow: @ 8126C6C
+ push {r4,r5,lr}
+ ldr r5, _08126CF8
+ ldrb r0, [r5]
+ ldrb r1, [r5, 0x4]
+ ldrb r2, [r5, 0x8]
+ bl GetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08126CFC
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x5]
+ bl GetFieldObjectGraphicsInfo
+ adds r4, r0, 0
+ ldr r2, _08126D00
+ ldr r1, _08126D04
+ ldrb r0, [r4, 0xC]
+ lsls r0, 26
+ lsrs r0, 30
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x94
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _08126CF0
+ ldr r0, _08126D08
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ adds r2, r0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ ldr r0, [r5]
+ strh r0, [r2, 0x2E]
+ ldr r0, [r5, 0x4]
+ strh r0, [r2, 0x30]
+ ldr r0, [r5, 0x8]
+ strh r0, [r2, 0x32]
+ ldrh r1, [r4, 0xA]
+ lsls r1, 16
+ asrs r1, 17
+ ldr r3, _08126D0C
+ ldrb r0, [r4, 0xC]
+ lsls r0, 26
+ lsrs r0, 30
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ subs r1, r0
+ strh r1, [r2, 0x34]
+_08126CF0:
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08126CF8: .4byte gUnknown_0202FF84
+_08126CFC: .4byte gMapObjects
+_08126D00: .4byte gFieldEffectObjectTemplatePointers
+_08126D04: .4byte gUnknown_08401E32
+_08126D08: .4byte gSprites
+_08126D0C: .4byte gUnknown_08401E36
+ thumb_func_end oei_shadow
+
+ thumb_func_start oamc_shadow
+oamc_shadow: @ 8126D10
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r5, 0x32]
+ lsls r2, 24
+ lsrs r2, 24
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ cmp r0, 0
+ beq _08126D3E
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl FieldEffectStop
+ b _08126DC4
+_08126D3E:
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08126DCC
+ adds r4, r0, r1
+ ldrb r0, [r4, 0x4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08126DD0
+ adds r1, r0
+ ldrb r0, [r1, 0x5]
+ movs r2, 0xC
+ ands r2, r0
+ ldrb r3, [r5, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r5, 0x5]
+ ldrh r0, [r1, 0x20]
+ strh r0, [r5, 0x20]
+ ldrh r0, [r5, 0x34]
+ ldrh r1, [r1, 0x22]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ ldr r0, [r4]
+ ldr r1, _08126DD4
+ ands r0, r1
+ cmp r0, r1
+ bne _08126DBC
+ ldrb r0, [r4, 0x1E]
+ bl sub_8056E14
+ lsls r0, 24
+ cmp r0, 0
+ bne _08126DBC
+ ldrb r0, [r4, 0x1E]
+ bl MetatileBehavior_IsSurfableWaterOrUnderwater
+ lsls r0, 24
+ cmp r0, 0
+ bne _08126DBC
+ ldrb r0, [r4, 0x1F]
+ bl MetatileBehavior_IsSurfableWaterOrUnderwater
+ lsls r0, 24
+ cmp r0, 0
+ bne _08126DBC
+ ldrb r0, [r4, 0x1E]
+ bl MetatileBehavior_IsReflective
+ lsls r0, 24
+ cmp r0, 0
+ bne _08126DBC
+ ldrb r0, [r4, 0x1F]
+ bl MetatileBehavior_IsReflective
+ lsls r0, 24
+ cmp r0, 0
+ beq _08126DC4
+_08126DBC:
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl FieldEffectStop
+_08126DC4:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08126DCC: .4byte gMapObjects
+_08126DD0: .4byte gSprites
+_08126DD4: .4byte 0x00400001
+ thumb_func_end oamc_shadow
+
+ thumb_func_start oei_grass_normal
+oei_grass_normal: @ 8126DD8
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _08126E70
+ ldrh r1, [r5]
+ mov r0, sp
+ strh r1, [r0]
+ ldrh r0, [r5, 0x4]
+ mov r4, sp
+ adds r4, 0x2
+ strh r0, [r4]
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _08126E74
+ ldr r0, [r0, 0x10]
+ 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 r1, r0, 24
+ cmp r1, 0x40
+ beq _08126E64
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08126E78
+ adds r3, r0, r1
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x3
+ ldrb r1, [r5, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r2, [r3, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x5]
+ ldr r0, [r5, 0x8]
+ strh r0, [r3, 0x2E]
+ ldr r0, [r5]
+ strh r0, [r3, 0x30]
+ ldr r0, [r5, 0x4]
+ strh r0, [r3, 0x32]
+ ldr r0, [r5, 0x10]
+ strh r0, [r3, 0x34]
+ ldr r0, [r5, 0x14]
+ strh r0, [r3, 0x36]
+ ldr r0, [r5, 0x18]
+ strh r0, [r3, 0x38]
+ ldr r0, [r5, 0x1C]
+ cmp r0, 0
+ beq _08126E64
+ adds r0, r3, 0
+ movs r1, 0x4
+ bl SeekSpriteAnim
+_08126E64:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08126E70: .4byte gUnknown_0202FF84
+_08126E74: .4byte gFieldEffectObjectTemplatePointers
+_08126E78: .4byte gSprites
+ thumb_func_end oei_grass_normal
+
+ thumb_func_start unc_grass_normal
+unc_grass_normal: @ 8126E7C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x38]
+ lsrs r4, r0, 8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r3, _08126F24
+ ldrb r1, [r3]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08126EC6
+ ldr r2, _08126F28
+ movs r0, 0x5
+ ldrsb r0, [r2, r0]
+ cmp r0, r4
+ bne _08126EAC
+ movs r0, 0x4
+ ldrsb r0, [r2, r0]
+ cmp r0, r7
+ beq _08126EC6
+_08126EAC:
+ ldr r1, [r3, 0x4]
+ ldrh r0, [r5, 0x30]
+ subs r0, r1
+ strh r0, [r5, 0x30]
+ ldr r1, [r3, 0x8]
+ ldrh r0, [r5, 0x32]
+ subs r0, r1
+ strh r0, [r5, 0x32]
+ ldrb r1, [r2, 0x5]
+ lsls r1, 8
+ ldrb r0, [r2, 0x4]
+ orrs r0, r1
+ strh r0, [r5, 0x38]
+_08126EC6:
+ ldrh r0, [r5, 0x34]
+ lsrs r1, r0, 8
+ mov r8, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrh r0, [r5, 0x36]
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r2, 0x30
+ ldrsh r0, [r5, r2]
+ movs r2, 0x32
+ ldrsh r1, [r5, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r0, r8
+ adds r1, r4, 0
+ adds r2, r7, 0
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ cmp r0, 0
+ bne _08126F1A
+ adds r0, r6, 0
+ bl MetatileBehavior_IsTallGrass
+ lsls r0, 24
+ cmp r0, 0
+ beq _08126F1A
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _08126F2C
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08126F2C
+_08126F1A:
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl FieldEffectStop
+ b _08126F70
+ .align 2, 0
+_08126F24: .4byte gUnknown_0202E844
+_08126F28: .4byte gSaveBlock1
+_08126F2C:
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08126F7C
+ adds r2, r0, r1
+ ldr r0, [r2, 0x10]
+ ldr r1, [r5, 0x30]
+ cmp r0, r1
+ beq _08126F4C
+ ldr r0, [r2, 0x14]
+ cmp r0, r1
+ beq _08126F4C
+ movs r0, 0x1
+ strh r0, [r5, 0x3C]
+_08126F4C:
+ movs r6, 0
+ adds r0, r5, 0
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08126F5A
+ movs r6, 0x4
+_08126F5A:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_806487C
+ ldrh r1, [r5, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ adds r2, r6, 0
+ bl sub_812882C
+_08126F70:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08126F7C: .4byte gMapObjects
+ thumb_func_end unc_grass_normal
+
+ thumb_func_start sub_8126F80
+sub_8126F80: @ 8126F80
+ push {r4,lr}
+ ldr r4, _08126FE4
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0xC
+ bl sub_8060470
+ ldr r0, _08126FE8
+ ldr r0, [r0, 0x28]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _08126FDC
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _08126FEC
+ adds r2, r0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x3
+ ldrb r1, [r4, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldr r0, [r4, 0x8]
+ strh r0, [r2, 0x2E]
+ movs r0, 0xC
+ strh r0, [r2, 0x30]
+_08126FDC:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08126FE4: .4byte gUnknown_0202FF84
+_08126FE8: .4byte gFieldEffectObjectTemplatePointers
+_08126FEC: .4byte gSprites
+ thumb_func_end sub_8126F80
+
+ thumb_func_start sub_8126FF0
+sub_8126FF0: @ 8126FF0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, [sp, 0x18]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ movs r5, 0
+ ldr r0, _08127060
+ mov r8, r0
+ lsls r3, 16
+ asrs r3, 16
+ lsls r4, 16
+ asrs r4, 16
+_08127014:
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ mov r1, r8
+ adds r2, r0, r1
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 31
+ cmp r0, 0
+ beq _08127068
+ ldr r1, [r2, 0x1C]
+ ldr r0, _08127064
+ cmp r1, r0
+ bne _08127068
+ movs r1, 0x30
+ ldrsh r0, [r2, r1]
+ cmp r3, r0
+ bne _08127068
+ movs r1, 0x32
+ ldrsh r0, [r2, r1]
+ cmp r4, r0
+ bne _08127068
+ ldrh r1, [r2, 0x34]
+ lsrs r0, r1, 8
+ cmp r12, r0
+ bne _08127068
+ movs r0, 0xFF
+ ands r0, r1
+ cmp r7, r0
+ bne _08127068
+ movs r1, 0x36
+ ldrsh r0, [r2, r1]
+ cmp r6, r0
+ bne _08127068
+ adds r0, r5, 0
+ b _08127074
+ .align 2, 0
+_08127060: .4byte gSprites
+_08127064: .4byte unc_grass_normal
+_08127068:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3F
+ bls _08127014
+ movs r0, 0x40
+_08127074:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8126FF0
+
+ thumb_func_start sub_8127080
+sub_8127080: @ 8127080
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _0812711C
+ ldrh r1, [r5]
+ mov r0, sp
+ strh r1, [r0]
+ ldrh r0, [r5, 0x4]
+ mov r4, sp
+ adds r4, 0x2
+ strh r0, [r4]
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _08127120
+ ldr r0, [r0, 0x3C]
+ 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 r1, r0, 24
+ cmp r1, 0x40
+ beq _08127110
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08127124
+ adds r4, r0, r1
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ ldrb r0, [r5, 0x8]
+ bl ZCoordToPriority
+ 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 r0, [r5, 0x8]
+ strh r0, [r4, 0x2E]
+ ldr r0, [r5]
+ strh r0, [r4, 0x30]
+ ldr r0, [r5, 0x4]
+ strh r0, [r4, 0x32]
+ ldr r0, [r5, 0x10]
+ strh r0, [r4, 0x34]
+ ldr r0, [r5, 0x14]
+ strh r0, [r4, 0x36]
+ ldr r0, [r5, 0x18]
+ strh r0, [r4, 0x38]
+ ldr r0, [r5, 0x1C]
+ cmp r0, 0
+ beq _08127110
+ adds r0, r4, 0
+ movs r1, 0x6
+ bl SeekSpriteAnim
+_08127110:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0812711C: .4byte gUnknown_0202FF84
+_08127120: .4byte gFieldEffectObjectTemplatePointers
+_08127124: .4byte gSprites
+ thumb_func_end sub_8127080
+
+ thumb_func_start unc_grass_tall
+unc_grass_tall: @ 8127128
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x38]
+ lsrs r7, r0, 8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r3, _081271D0
+ ldrb r1, [r3]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08127172
+ ldr r2, _081271D4
+ movs r0, 0x5
+ ldrsb r0, [r2, r0]
+ cmp r0, r7
+ bne _08127158
+ movs r0, 0x4
+ ldrsb r0, [r2, r0]
+ cmp r0, r6
+ beq _08127172
+_08127158:
+ ldr r1, [r3, 0x4]
+ ldrh r0, [r5, 0x30]
+ subs r0, r1
+ strh r0, [r5, 0x30]
+ ldr r1, [r3, 0x8]
+ ldrh r0, [r5, 0x32]
+ subs r0, r1
+ strh r0, [r5, 0x32]
+ ldrb r1, [r2, 0x5]
+ lsls r1, 8
+ ldrb r0, [r2, 0x4]
+ orrs r0, r1
+ strh r0, [r5, 0x38]
+_08127172:
+ ldrh r0, [r5, 0x34]
+ lsrs r1, r0, 8
+ mov r8, r1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrh r0, [r5, 0x36]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r2, 0x30
+ ldrsh r0, [r5, r2]
+ movs r2, 0x32
+ ldrsh r1, [r5, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r0, r8
+ adds r1, r7, 0
+ adds r2, r6, 0
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ cmp r0, 0
+ bne _081271C6
+ adds r0, r4, 0
+ bl MetatileBehavior_IsLongGrass
+ lsls r0, 24
+ cmp r0, 0
+ beq _081271C6
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _081271D8
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _081271D8
+_081271C6:
+ adds r0, r5, 0
+ movs r1, 0x11
+ bl FieldEffectStop
+ b _0812720E
+ .align 2, 0
+_081271D0: .4byte gUnknown_0202E844
+_081271D4: .4byte gSaveBlock1
+_081271D8:
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0812721C
+ adds r2, r0, r1
+ ldr r0, [r2, 0x10]
+ ldr r1, [r5, 0x30]
+ cmp r0, r1
+ beq _081271F8
+ ldr r0, [r2, 0x14]
+ cmp r0, r1
+ beq _081271F8
+ movs r0, 0x1
+ strh r0, [r5, 0x3C]
+_081271F8:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_806487C
+ ldrh r1, [r5, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ movs r2, 0
+ bl sub_812882C
+_0812720E:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812721C: .4byte gMapObjects
+ thumb_func_end unc_grass_tall
+
+ thumb_func_start sub_8127220
+sub_8127220: @ 8127220
+ push {r4,lr}
+ ldr r4, _08127284
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _08127288
+ ldr r0, [r0, 0x40]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0812727C
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _0812728C
+ adds r2, r0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x3
+ ldrb r1, [r4, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldr r0, [r4, 0x8]
+ strh r0, [r2, 0x2E]
+ movs r0, 0x12
+ strh r0, [r2, 0x30]
+_0812727C:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08127284: .4byte gUnknown_0202FF84
+_08127288: .4byte gFieldEffectObjectTemplatePointers
+_0812728C: .4byte gSprites
+ thumb_func_end sub_8127220
+
+ thumb_func_start sub_8127290
+sub_8127290: @ 8127290
+ push {r4-r6,lr}
+ ldr r6, _08127324
+ ldrb r0, [r6]
+ ldrb r1, [r6, 0x4]
+ ldrb r2, [r6, 0x8]
+ bl GetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08127328
+ adds r5, r1, r0
+ ldr r0, _0812732C
+ ldr r0, [r0, 0x78]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0812731C
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r4, _08127330
+ adds r2, r4
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x5]
+ movs r1, 0xC
+ ands r1, r0
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldr r0, [r6]
+ strh r0, [r2, 0x2E]
+ ldr r0, [r6, 0x4]
+ strh r0, [r2, 0x30]
+ ldr r0, [r6, 0x8]
+ strh r0, [r2, 0x32]
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r0, [r0, 0x20]
+ strh r0, [r2, 0x34]
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r0, [r0, 0x22]
+ strh r0, [r2, 0x36]
+_0812731C:
+ movs r0, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08127324: .4byte gUnknown_0202FF84
+_08127328: .4byte gMapObjects
+_0812732C: .4byte gFieldEffectObjectTemplatePointers
+_08127330: .4byte gSprites
+ thumb_func_end sub_8127290
+
+ thumb_func_start sub_8127334
+sub_8127334: @ 8127334
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r4, 0x32]
+ lsls r2, 24
+ lsrs r2, 24
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ cmp r0, 0
+ bne _08127372
+ ldr r5, _0812737C
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r5
+ ldrb r0, [r1, 0x2]
+ lsls r0, 29
+ cmp r0, 0
+ blt _08127380
+_08127372:
+ adds r0, r4, 0
+ movs r1, 0x29
+ bl FieldEffectStop
+ b _08127416
+ .align 2, 0
+_0812737C: .4byte gMapObjects
+_08127380:
+ ldrb r0, [r1, 0x5]
+ bl GetFieldObjectGraphicsInfo
+ mov r8, r0
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08127424
+ adds r6, r0, r1
+ ldrh r5, [r6, 0x22]
+ ldrh r7, [r6, 0x20]
+ movs r0, 0x20
+ ldrsh r1, [r6, r0]
+ movs r2, 0x34
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _081273BC
+ lsls r0, r5, 16
+ asrs r0, 16
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ beq _081273D6
+_081273BC:
+ strh r7, [r4, 0x34]
+ strh r5, [r4, 0x36]
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _081273D6
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnim
+_081273D6:
+ strh r7, [r4, 0x20]
+ strh r5, [r4, 0x22]
+ mov r1, r8
+ ldrh r0, [r1, 0xA]
+ lsls r0, 16
+ asrs r0, 17
+ subs r0, 0x8
+ strh r0, [r4, 0x26]
+ adds r0, r6, 0
+ adds r0, 0x43
+ ldrb r0, [r0]
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrb r0, [r6, 0x5]
+ movs r1, 0xC
+ ands r1, r0
+ ldrb r2, [r4, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+ adds r0, r6, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ lsls r1, 29
+ lsrs r1, 31
+ adds r0, r4, 0
+ bl sub_806487C
+_08127416:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08127424: .4byte gSprites
+ thumb_func_end sub_8127334
+
+ thumb_func_start sub_8127428
+sub_8127428: @ 8127428
+ push {r4,lr}
+ ldr r4, _08127490
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _08127494
+ ldr r0, [r0, 0x2C]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ ldrb r3, [r4, 0x8]
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _08127486
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08127498
+ adds r0, r1
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r3]
+ movs r1, 0x3
+ ldrb r2, [r4, 0xC]
+ ands r2, r1
+ lsls r2, 2
+ ldrb r3, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ movs r1, 0xD
+ strh r1, [r0, 0x3C]
+ ldrb r1, [r4, 0x10]
+ bl StartSpriteAnim
+_08127486:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08127490: .4byte gUnknown_0202FF84
+_08127494: .4byte gFieldEffectObjectTemplatePointers
+_08127498: .4byte gSprites
+ thumb_func_end sub_8127428
+
+ thumb_func_start sub_812749C
+sub_812749C: @ 812749C
+ push {r4,r5,lr}
+ ldr r4, _08127504
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _08127508
+ ldr r0, [r0, 0x5C]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ ldrb r3, [r4, 0x8]
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r5, r1, 0
+ cmp r1, 0x40
+ beq _081274FC
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0812750C
+ adds r0, r1
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r3]
+ movs r1, 0x3
+ ldrb r2, [r4, 0xC]
+ ands r2, r1
+ lsls r2, 2
+ ldrb r3, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ movs r1, 0x18
+ strh r1, [r0, 0x3C]
+ ldrb r1, [r4, 0x10]
+ bl StartSpriteAnim
+_081274FC:
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08127504: .4byte gUnknown_0202FF84
+_08127508: .4byte gFieldEffectObjectTemplatePointers
+_0812750C: .4byte gSprites
+ thumb_func_end sub_812749C
+
+ thumb_func_start sub_8127510
+sub_8127510: @ 8127510
+ push {r4,r5,lr}
+ ldr r4, _08127578
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _0812757C
+ ldr r0, [r0, 0x6C]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ ldrb r3, [r4, 0x8]
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r1, r0, 24
+ adds r5, r1, 0
+ cmp r1, 0x40
+ beq _08127570
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08127580
+ adds r0, r1
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r3]
+ movs r1, 0x3
+ ldrb r2, [r4, 0xC]
+ ands r2, r1
+ lsls r2, 2
+ ldrb r3, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ movs r1, 0x23
+ strh r1, [r0, 0x3C]
+ ldrb r1, [r4, 0x10]
+ bl StartSpriteAnim
+_08127570:
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08127578: .4byte gUnknown_0202FF84
+_0812757C: .4byte gFieldEffectObjectTemplatePointers
+_08127580: .4byte gSprites
+ thumb_func_end sub_8127510
+
+ thumb_func_start sub_8127584
+sub_8127584: @ 8127584
+ push {lr}
+ ldr r2, _0812759C
+ movs r3, 0x2E
+ ldrsh r1, [r0, r3]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812759C: .4byte gUnknown_08401E40
+ thumb_func_end sub_8127584
+
+ thumb_func_start sub_81275A0
+sub_81275A0: @ 81275A0
+ 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, 0x28
+ ble _081275B6
+ movs r0, 0x1
+ strh r0, [r1, 0x2E]
+_081275B6:
+ adds r0, r1, 0
+ movs r1, 0
+ bl sub_806487C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81275A0
+
+ thumb_func_start sub_81275C4
+sub_81275C4: @ 81275C4
+ push {r4,lr}
+ adds r4, r0, 0
+ 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]
+ ldrb r1, [r3]
+ lsls r1, 29
+ lsrs r1, 31
+ adds r0, r4, 0
+ bl sub_806487C
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x38
+ ble _08127608
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl FieldEffectStop
+_08127608:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81275C4
+
+ thumb_func_start sub_8127610
+sub_8127610: @ 8127610
+ push {r4-r6,lr}
+ ldr r6, _081276A4
+ ldrb r0, [r6]
+ ldrb r1, [r6, 0x4]
+ ldrb r2, [r6, 0x8]
+ bl GetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _081276A8
+ adds r5, r1, r0
+ ldr r0, _081276AC
+ ldr r0, [r0, 0x34]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x40
+ beq _0812769A
+ ldrb r0, [r5, 0x5]
+ bl GetFieldObjectGraphicsInfo
+ lsls r3, r4, 4
+ adds r3, r4
+ lsls r3, 2
+ ldr r4, _081276B0
+ adds r3, r4
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ ldrb r1, [r1]
+ movs r2, 0x2
+ orrs r1, r2
+ mov r2, r12
+ strb r1, [r2]
+ ldrb r2, [r5, 0x4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrb r1, [r1, 0x5]
+ movs r2, 0xC
+ ands r2, r1
+ ldrb r4, [r3, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r4
+ orrs r1, r2
+ strb r1, [r3, 0x5]
+ ldr r1, [r6]
+ strh r1, [r3, 0x2E]
+ ldr r1, [r6, 0x4]
+ strh r1, [r3, 0x30]
+ ldr r1, [r6, 0x8]
+ strh r1, [r3, 0x32]
+ ldrh r0, [r0, 0xA]
+ lsls r0, 16
+ asrs r0, 17
+ subs r0, 0x4
+ strh r0, [r3, 0x26]
+ movs r0, 0x46
+ bl PlaySE
+_0812769A:
+ movs r0, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081276A4: .4byte gUnknown_0202FF84
+_081276A8: .4byte gMapObjects
+_081276AC: .4byte gFieldEffectObjectTemplatePointers
+_081276B0: .4byte gSprites
+ thumb_func_end sub_8127610
+
+ thumb_func_start sub_81276B4
+sub_81276B4: @ 81276B4
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _081276E4
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r4, 0x32]
+ lsls r2, 24
+ lsrs r2, 24
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ cmp r0, 0
+ beq _081276EE
+_081276E4:
+ adds r0, r4, 0
+ movs r1, 0xF
+ bl FieldEffectStop
+ b _0812772E
+_081276EE:
+ ldr r3, _08127738
+ ldr r2, _0812773C
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x20]
+ strh r0, [r4, 0x20]
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x22]
+ strh r0, [r4, 0x22]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806487C
+_0812772E:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08127738: .4byte gSprites
+_0812773C: .4byte gMapObjects
+ thumb_func_end sub_81276B4
+
+ thumb_func_start sub_8127740
+sub_8127740: @ 8127740
+ push {r4,lr}
+ ldr r4, _081277A4
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0xC
+ bl sub_8060470
+ ldr r0, _081277A8
+ ldr r0, [r0, 0x38]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0812779C
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _081277AC
+ adds r2, r0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x3
+ ldrb r1, [r4, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldr r0, [r4, 0x8]
+ strh r0, [r2, 0x2E]
+ movs r0, 0x10
+ strh r0, [r2, 0x30]
+_0812779C:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081277A4: .4byte gUnknown_0202FF84
+_081277A8: .4byte gFieldEffectObjectTemplatePointers
+_081277AC: .4byte gSprites
+ thumb_func_end sub_8127740
+
+ thumb_func_start oei_water_drop_tall
+oei_water_drop_tall: @ 81277B0
+ push {r4,lr}
+ ldr r4, _08127814
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _08127818
+ ldr r0, [r0, 0x30]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0812780C
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _0812781C
+ adds r2, r0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x3
+ ldrb r1, [r4, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldr r0, [r4, 0x8]
+ strh r0, [r2, 0x2E]
+ movs r0, 0xE
+ strh r0, [r2, 0x30]
+_0812780C:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08127814: .4byte gUnknown_0202FF84
+_08127818: .4byte gFieldEffectObjectTemplatePointers
+_0812781C: .4byte gSprites
+ thumb_func_end oei_water_drop_tall
+
+ thumb_func_start sub_8127820
+sub_8127820: @ 8127820
+ push {r4-r7,lr}
+ ldr r7, _081278C0
+ ldrb r0, [r7]
+ ldrb r1, [r7, 0x4]
+ ldrb r2, [r7, 0x8]
+ bl GetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _081278C4
+ adds r6, r1, r0
+ ldr r0, _081278C8
+ ldr r0, [r0, 0x34]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x40
+ beq _081278B6
+ ldrb r0, [r6, 0x5]
+ bl GetFieldObjectGraphicsInfo
+ adds r4, r0, 0
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ ldr r3, _081278CC
+ adds r0, r3
+ ldr r1, _081278D0
+ str r1, [r0, 0x1C]
+ adds r5, r0, 0
+ adds r5, 0x3E
+ ldrb r1, [r5]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r5]
+ ldrb r2, [r6, 0x4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r3
+ ldrb r1, [r1, 0x5]
+ movs r2, 0xC
+ ands r2, r1
+ ldrb r3, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldr r1, [r7]
+ strh r1, [r0, 0x2E]
+ ldr r1, [r7, 0x4]
+ strh r1, [r0, 0x30]
+ ldr r1, [r7, 0x8]
+ strh r1, [r0, 0x32]
+ ldr r1, _081278D4
+ strh r1, [r0, 0x34]
+ movs r1, 0x1
+ negs r1, r1
+ strh r1, [r0, 0x36]
+ ldrh r1, [r4, 0xA]
+ lsls r1, 16
+ asrs r1, 17
+ subs r1, 0x4
+ strh r1, [r0, 0x26]
+ movs r1, 0x1
+ bl StartSpriteAnim
+_081278B6:
+ movs r0, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081278C0: .4byte gUnknown_0202FF84
+_081278C4: .4byte gMapObjects
+_081278C8: .4byte gFieldEffectObjectTemplatePointers
+_081278CC: .4byte gSprites
+_081278D0: .4byte sub_81278D8
+_081278D4: .4byte 0x0000ffff
+ thumb_func_end sub_8127820
+
+ thumb_func_start sub_81278D8
+sub_81278D8: @ 81278D8
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r4, 0x32]
+ lsls r2, 24
+ lsrs r2, 24
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ cmp r0, 0
+ bne _08127912
+ ldr r2, _0812791C
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r5, r0, r2
+ ldrb r0, [r5, 0x2]
+ lsls r0, 28
+ cmp r0, 0
+ blt _08127920
+_08127912:
+ adds r0, r4, 0
+ movs r1, 0x22
+ bl FieldEffectStop
+ b _0812796A
+ .align 2, 0
+_0812791C: .4byte gMapObjects
+_08127920:
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08127974
+ adds r0, r1
+ ldrh r1, [r0, 0x20]
+ strh r1, [r4, 0x20]
+ ldrh r1, [r0, 0x22]
+ strh r1, [r4, 0x22]
+ adds r0, 0x43
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806487C
+ ldr r1, [r5, 0x10]
+ ldr r0, [r4, 0x34]
+ cmp r1, r0
+ beq _0812796A
+ ldrh r0, [r5, 0x10]
+ strh r0, [r4, 0x34]
+ ldrh r0, [r5, 0x12]
+ strh r0, [r4, 0x36]
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _0812796A
+ movs r0, 0x46
+ bl PlaySE
+_0812796A:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08127974: .4byte gSprites
+ thumb_func_end sub_81278D8
+
+ thumb_func_start oei_ripples
+oei_ripples: @ 8127978
+ push {r4,lr}
+ ldr r0, _081279CC
+ ldr r0, [r0, 0x14]
+ ldr r4, _081279D0
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ ldrb r3, [r4, 0x8]
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _081279C4
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _081279D4
+ adds r2, r0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x3
+ ldrb r1, [r4, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ movs r0, 0x5
+ strh r0, [r2, 0x2E]
+_081279C4:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081279CC: .4byte gFieldEffectObjectTemplatePointers
+_081279D0: .4byte gUnknown_0202FF84
+_081279D4: .4byte gSprites
+ thumb_func_end oei_ripples
+
+ thumb_func_start sub_81279D8
+sub_81279D8: @ 81279D8
+ push {r4-r6,lr}
+ ldr r6, _08127A6C
+ ldrb r0, [r6]
+ ldrb r1, [r6, 0x4]
+ ldrb r2, [r6, 0x8]
+ bl GetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08127A70
+ adds r5, r1, r0
+ ldr r0, _08127A74
+ ldr r0, [r0, 0x7C]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _08127A64
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r4, _08127A78
+ adds r2, r4
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x5]
+ movs r1, 0xC
+ ands r1, r0
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldr r0, [r6]
+ strh r0, [r2, 0x2E]
+ ldr r0, [r6, 0x4]
+ strh r0, [r2, 0x30]
+ ldr r0, [r6, 0x8]
+ strh r0, [r2, 0x32]
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r0, [r0, 0x20]
+ strh r0, [r2, 0x34]
+ ldrb r1, [r5, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r0, [r0, 0x22]
+ strh r0, [r2, 0x36]
+_08127A64:
+ movs r0, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08127A6C: .4byte gUnknown_0202FF84
+_08127A70: .4byte gMapObjects
+_08127A74: .4byte gFieldEffectObjectTemplatePointers
+_08127A78: .4byte gSprites
+ thumb_func_end sub_81279D8
+
+ thumb_func_start sub_8127A7C
+sub_8127A7C: @ 8127A7C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r4, 0x32]
+ lsls r2, 24
+ lsrs r2, 24
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ cmp r0, 0
+ bne _08127AB6
+ ldr r5, _08127AC0
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r5
+ ldrb r0, [r1, 0x2]
+ lsls r0, 26
+ cmp r0, 0
+ blt _08127AC4
+_08127AB6:
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl FieldEffectStop
+ b _08127B08
+ .align 2, 0
+_08127AC0: .4byte gMapObjects
+_08127AC4:
+ ldrb r0, [r1, 0x5]
+ bl GetFieldObjectGraphicsInfo
+ mov r1, sp
+ ldrb r2, [r1]
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1, 0x4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ ldr r2, _08127B10
+ adds r1, r2
+ ldrh r2, [r1, 0x20]
+ strh r2, [r4, 0x20]
+ ldrh r0, [r0, 0xA]
+ lsls r0, 16
+ asrs r0, 17
+ ldrh r2, [r1, 0x22]
+ adds r0, r2
+ subs r0, 0x8
+ strh r0, [r4, 0x22]
+ adds r1, 0x43
+ ldrb r0, [r1]
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806487C
+_08127B08:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08127B10: .4byte gSprites
+ thumb_func_end sub_8127A7C
+
+ thumb_func_start sub_8127B14
+sub_8127B14: @ 8127B14
+ push {r4,lr}
+ ldr r4, _08127B74
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _08127B78
+ ldr r0, [r0, 0x44]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ ldrb r3, [r4, 0x8]
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _08127B6C
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _08127B7C
+ adds r2, r0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x3
+ ldrb r1, [r4, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ movs r0, 0x13
+ strh r0, [r2, 0x2E]
+_08127B6C:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08127B74: .4byte gUnknown_0202FF84
+_08127B78: .4byte gFieldEffectObjectTemplatePointers
+_08127B7C: .4byte gSprites
+ thumb_func_end sub_8127B14
+
+ thumb_func_start sub_8127B80
+sub_8127B80: @ 8127B80
+ push {r4,lr}
+ ldr r4, _08127BE0
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _08127BE4
+ ldr r0, [r0, 0x48]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ ldrb r3, [r4, 0x8]
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _08127BD8
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _08127BE8
+ adds r2, r0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x3
+ ldrb r1, [r4, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ movs r0, 0x14
+ strh r0, [r2, 0x2E]
+_08127BD8:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08127BE0: .4byte gUnknown_0202FF84
+_08127BE4: .4byte gFieldEffectObjectTemplatePointers
+_08127BE8: .4byte gSprites
+ thumb_func_end sub_8127B80
+
+ thumb_func_start sub_8127BEC
+sub_8127BEC: @ 8127BEC
+ push {r4,lr}
+ ldr r4, _08127C4C
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _08127C50
+ ldr r0, [r0, 0x4C]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ ldrb r3, [r4, 0x8]
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _08127C44
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _08127C54
+ adds r2, r0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x3
+ ldrb r1, [r4, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ movs r0, 0x15
+ strh r0, [r2, 0x2E]
+_08127C44:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08127C4C: .4byte gUnknown_0202FF84
+_08127C50: .4byte gFieldEffectObjectTemplatePointers
+_08127C54: .4byte gSprites
+ thumb_func_end sub_8127BEC
+
+ thumb_func_start sub_8127C58
+sub_8127C58: @ 8127C58
+ push {r4,lr}
+ ldr r4, _08127CB8
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _08127CBC
+ ldr r0, [r0, 0x50]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ ldrb r3, [r4, 0x8]
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _08127CB0
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _08127CC0
+ adds r2, r0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x3
+ ldrb r1, [r4, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ movs r0, 0x16
+ strh r0, [r2, 0x2E]
+_08127CB0:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08127CB8: .4byte gUnknown_0202FF84
+_08127CBC: .4byte gFieldEffectObjectTemplatePointers
+_08127CC0: .4byte gSprites
+ thumb_func_end sub_8127C58
+
+ thumb_func_start ash
+ash: @ 8127CC4
+ push {r4,lr}
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r4, _08127CF4
+ lsls r0, 16
+ asrs r0, 16
+ str r0, [r4]
+ lsls r1, 16
+ asrs r1, 16
+ str r1, [r4, 0x4]
+ movs r0, 0x52
+ str r0, [r4, 0x8]
+ movs r0, 0x1
+ str r0, [r4, 0xC]
+ str r2, [r4, 0x10]
+ lsls r3, 16
+ asrs r3, 16
+ str r3, [r4, 0x14]
+ movs r0, 0x7
+ bl FieldEffectStart
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08127CF4: .4byte gUnknown_0202FF84
+ thumb_func_end ash
+
+ thumb_func_start oei_ash
+oei_ash: @ 8127CF8
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _08127D78
+ ldrh r1, [r5]
+ mov r0, sp
+ strh r1, [r0]
+ ldrh r0, [r5, 0x4]
+ mov r4, sp
+ adds r4, 0x2
+ strh r0, [r4]
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _08127D7C
+ ldr r0, [r0, 0x18]
+ mov r1, sp
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ movs r3, 0
+ ldrsh r2, [r4, r3]
+ ldrb r3, [r5, 0x8]
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _08127D6E
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _08127D80
+ adds r2, r0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x3
+ ldrb r1, [r5, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldr r0, [r5]
+ strh r0, [r2, 0x30]
+ ldr r0, [r5, 0x4]
+ strh r0, [r2, 0x32]
+ ldr r0, [r5, 0x10]
+ strh r0, [r2, 0x34]
+ ldr r0, [r5, 0x14]
+ strh r0, [r2, 0x36]
+_08127D6E:
+ movs r0, 0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08127D78: .4byte gUnknown_0202FF84
+_08127D7C: .4byte gFieldEffectObjectTemplatePointers
+_08127D80: .4byte gSprites
+ thumb_func_end oei_ash
+
+ thumb_func_start sub_8127D84
+sub_8127D84: @ 8127D84
+ push {lr}
+ ldr r2, _08127D9C
+ movs r3, 0x2E
+ ldrsh r1, [r0, r3]
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08127D9C: .4byte gUnknown_08401E48
+ thumb_func_end sub_8127D84
+
+ thumb_func_start sub_8127DA0
+sub_8127DA0: @ 8127DA0
+ 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]
+ subs r2, 0x12
+ ldrb r0, [r2]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r3, 0x36]
+ subs r0, 0x1
+ strh r0, [r3, 0x36]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08127DCA
+ movs r0, 0x1
+ strh r0, [r3, 0x2E]
+_08127DCA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8127DA0
+
+ thumb_func_start sub_8127DD0
+sub_8127DD0: @ 8127DD0
+ 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]
+ subs r2, 0x12
+ ldrb r1, [r2]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ ldrh r2, [r4, 0x34]
+ bl MapGridSetMetatileIdAt
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl CurrentMapDrawMetatileAt
+ ldr r2, _08127E28
+ ldr r0, _08127E2C
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ movs r0, 0x2
+ strh r0, [r4, 0x2E]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08127E28: .4byte gMapObjects
+_08127E2C: .4byte gPlayerAvatar
+ thumb_func_end sub_8127DD0
+
+ thumb_func_start sub_8127E30
+sub_8127E30: @ 8127E30
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_806487C
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08127E50
+ adds r0, r4, 0
+ movs r1, 0x7
+ bl FieldEffectStop
+_08127E50:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8127E30
+
+ thumb_func_start sub_8127E58
+sub_8127E58: @ 8127E58
+ push {r4,r5,lr}
+ ldr r4, _08127EC0
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _08127EC4
+ ldr r0, [r0, 0x1C]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ movs r3, 0x96
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ cmp r0, 0x40
+ beq _08127EB2
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08127EC8
+ adds r1, r0
+ adds r3, r1, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r3]
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ strb r0, [r1, 0x5]
+ ldr r0, [r4, 0x8]
+ strh r0, [r1, 0x32]
+ ldr r0, _08127ECC
+ strh r0, [r1, 0x34]
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r1, 0x3A]
+ strh r0, [r1, 0x3C]
+_08127EB2:
+ movs r0, 0x8
+ bl FieldEffectActiveListRemove
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08127EC0: .4byte gUnknown_0202FF84
+_08127EC4: .4byte gFieldEffectObjectTemplatePointers
+_08127EC8: .4byte gSprites
+_08127ECC: .4byte 0x0000ffff
+ thumb_func_end sub_8127E58
+
+ thumb_func_start sub_8127ED0
+sub_8127ED0: @ 8127ED0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ ldr r3, _08127EF8
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldrh r0, [r2, 0x2E]
+ movs r3, 0x10
+ negs r3, r3
+ ands r3, r0
+ movs r0, 0xF0
+ lsls r0, 20
+ ands r0, r1
+ lsrs r0, 24
+ orrs r0, r3
+ strh r0, [r2, 0x2E]
+ bx lr
+ .align 2, 0
+_08127EF8: .4byte gSprites
+ thumb_func_end sub_8127ED0
+
+ thumb_func_start sub_8127EFC
+sub_8127EFC: @ 8127EFC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ ldr r3, _08127F24
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r3
+ ldrh r0, [r2, 0x2E]
+ movs r3, 0xF1
+ negs r3, r3
+ ands r3, r0
+ movs r0, 0xF0
+ lsls r0, 20
+ ands r0, r1
+ lsrs r0, 20
+ orrs r3, r0
+ strh r3, [r2, 0x2E]
+ bx lr
+ .align 2, 0
+_08127F24: .4byte gSprites
+ thumb_func_end sub_8127EFC
+
+ thumb_func_start sub_8127F28
+sub_8127F28: @ 8127F28
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ ldr r4, _08127F54
+ lsls r3, r0, 4
+ adds r3, r0
+ lsls r3, 2
+ adds r3, r4
+ ldrh r0, [r3, 0x2E]
+ ldr r4, _08127F58
+ ands r4, r0
+ movs r0, 0xF0
+ lsls r0, 20
+ ands r0, r1
+ lsrs r0, 16
+ orrs r4, r0
+ strh r4, [r3, 0x2E]
+ strh r2, [r3, 0x30]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08127F54: .4byte gSprites
+_08127F58: .4byte 0xfffff0ff
+ thumb_func_end sub_8127F28
+
+ thumb_func_start sub_8127F5C
+sub_8127F5C: @ 8127F5C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF
+ ands r0, r1
+ bx lr
+ thumb_func_end sub_8127F5C
+
+ thumb_func_start sub_8127F64
+sub_8127F64: @ 8127F64
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF0
+ ands r0, r1
+ lsrs r0, 4
+ bx lr
+ thumb_func_end sub_8127F64
+
+ thumb_func_start sub_8127F70
+sub_8127F70: @ 8127F70
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0xF0
+ lsls r0, 4
+ ands r0, r1
+ lsrs r0, 8
+ bx lr
+ thumb_func_end sub_8127F70
+
+ thumb_func_start sub_8127F7C
+sub_8127F7C: @ 8127F7C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r6, r1]
+ lsls r4, r0, 3
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _08127FCC
+ adds r4, r0
+ ldrb r0, [r4, 0x4]
+ lsls r5, r0, 4
+ adds r5, r0
+ lsls r5, 2
+ ldr r0, _08127FD0
+ adds r5, r0
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_8127FD4
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_812800C
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_81280A0
+ ldrb r0, [r5, 0x5]
+ movs r1, 0xC
+ ands r1, r0
+ ldrb r2, [r6, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6, 0x5]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08127FCC: .4byte gMapObjects
+_08127FD0: .4byte gSprites
+ thumb_func_end sub_8127F7C
+
+ thumb_func_start sub_8127FD4
+sub_8127FD4: @ 8127FD4
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldr r1, _08128008
+ mov r0, sp
+ movs r2, 0x5
+ bl memcpy
+ adds r0, r4, 0
+ bl sub_8127F64
+ lsls r0, 24
+ cmp r0, 0
+ bne _08128000
+ ldrb r0, [r5, 0x18]
+ lsrs r0, 4
+ add r0, sp
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl StartSpriteAnimIfDifferent
+_08128000:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08128008: .4byte gUnknown_08401E54
+ thumb_func_end sub_8127FD4
+
+ thumb_func_start sub_812800C
+sub_812800C: @ 812800C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r4, r1, 0
+ ldrh r2, [r0, 0x10]
+ mov r1, sp
+ strh r2, [r1]
+ ldrh r1, [r0, 0x12]
+ mov r0, sp
+ adds r0, 0x2
+ strh r1, [r0]
+ movs r2, 0x26
+ ldrsh r3, [r4, r2]
+ mov r8, r0
+ cmp r3, 0
+ bne _08128094
+ mov r0, sp
+ movs r5, 0
+ ldrsh r2, [r0, r5]
+ movs r5, 0x3A
+ ldrsh r0, [r4, r5]
+ cmp r2, r0
+ bne _08128048
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r5, 0x3C
+ ldrsh r1, [r4, r5]
+ cmp r0, r1
+ beq _08128094
+_08128048:
+ strh r3, [r4, 0x38]
+ strh r2, [r4, 0x3A]
+ mov r1, r8
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ strh r0, [r4, 0x3C]
+ movs r5, 0x1
+ mov r7, r8
+ mov r6, sp
+_0812805A:
+ adds r0, r5, 0
+ mov r1, sp
+ adds r2, r7, 0
+ bl MoveCoords
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ movs r2, 0
+ ldrsh r1, [r7, r2]
+ bl MapGridGetZCoordAt
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bne _08128080
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ b _08128094
+_08128080:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrh r0, [r4, 0x3A]
+ strh r0, [r6]
+ ldrh r0, [r4, 0x3C]
+ mov r1, r8
+ strh r0, [r1]
+ cmp r5, 0x4
+ bls _0812805A
+_08128094:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812800C
+
+ thumb_func_start sub_81280A0
+sub_81280A0: @ 81280A0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r1, 0
+ adds r4, r2, 0
+ ldr r1, _08128104
+ mov r0, sp
+ movs r2, 0x4
+ bl memcpy
+ adds r0, r4, 0
+ bl sub_8127F5C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ cmp r2, 0
+ beq _0812811A
+ ldrh r1, [r4, 0x36]
+ adds r1, 0x1
+ strh r1, [r4, 0x36]
+ movs r3, 0x38
+ ldrsh r0, [r4, r3]
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ bne _081280E0
+ ldrh r0, [r4, 0x34]
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+_081280E0:
+ ldrh r1, [r4, 0x36]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0
+ bne _081280F0
+ ldrh r0, [r4, 0x34]
+ negs r0, r0
+ strh r0, [r4, 0x34]
+_081280F0:
+ cmp r2, 0x2
+ beq _0812811A
+ adds r0, r4, 0
+ bl sub_8127F70
+ lsls r0, 24
+ cmp r0, 0
+ bne _08128108
+ ldrh r0, [r4, 0x26]
+ b _0812810E
+ .align 2, 0
+_08128104: .4byte gUnknown_08401E5A
+_08128108:
+ ldrh r0, [r4, 0x26]
+ ldrh r3, [r4, 0x30]
+ adds r0, r3
+_0812810E:
+ strh r0, [r5, 0x26]
+ ldrh r0, [r5, 0x20]
+ strh r0, [r4, 0x20]
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x8
+ strh r0, [r4, 0x22]
+_0812811A:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81280A0
+
+ thumb_func_start sub_8128124
+sub_8128124: @ 8128124
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08128168
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0xFF
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r1, _0812816C
+ adds r2, r1
+ ldr r1, _08128170
+ str r1, [r2, 0x1C]
+ movs r1, 0x3E
+ adds r1, r2
+ mov r12, r1
+ ldrb r1, [r1]
+ movs r3, 0x4
+ orrs r1, r3
+ mov r3, r12
+ strb r1, [r3]
+ strh r4, [r2, 0x2E]
+ movs r1, 0x1
+ strh r1, [r2, 0x30]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08128168: .4byte gDummySpriteTemplate
+_0812816C: .4byte gSprites
+_08128170: .4byte sub_8128174
+ thumb_func_end sub_8128124
+
+ thumb_func_start sub_8128174
+sub_8128174: @ 8128174
+ push {lr}
+ adds r2, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _081281B0
+ adds r3, r0, r1
+ ldrh r1, [r2, 0x32]
+ adds r0, r1, 0x1
+ strh r0, [r2, 0x32]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _0812819C
+ ldrh r0, [r2, 0x30]
+ ldrh r1, [r3, 0x26]
+ adds r0, r1
+ strh r0, [r3, 0x26]
+_0812819C:
+ ldrh r1, [r2, 0x32]
+ movs r0, 0xF
+ ands r0, r1
+ cmp r0, 0
+ bne _081281AC
+ ldrh r0, [r2, 0x30]
+ negs r0, r0
+ strh r0, [r2, 0x30]
+_081281AC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081281B0: .4byte gSprites
+ thumb_func_end sub_8128174
+
+ thumb_func_start sub_81281B4
+sub_81281B4: @ 81281B4
+ push {r4,lr}
+ ldr r4, _08128218
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0xC
+ bl sub_8060470
+ ldr r0, _0812821C
+ ldr r0, [r0, 0x24]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _08128210
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _08128220
+ adds r2, r0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x3
+ ldrb r1, [r4, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ ldr r0, [r4, 0x8]
+ strh r0, [r2, 0x2E]
+ movs r0, 0xA
+ strh r0, [r2, 0x30]
+_08128210:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08128218: .4byte gUnknown_0202FF84
+_0812821C: .4byte gFieldEffectObjectTemplatePointers
+_08128220: .4byte gSprites
+ thumb_func_end sub_81281B4
+
+ thumb_func_start sub_8128224
+sub_8128224: @ 8128224
+ push {r4-r7,lr}
+ ldr r7, _081282D0
+ ldrb r0, [r7]
+ ldrb r1, [r7, 0x4]
+ ldrb r2, [r7, 0x8]
+ bl GetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _081282D4
+ adds r6, r1, r0
+ ldr r0, _081282D8
+ ldr r0, [r0, 0x74]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x40
+ beq _081282C8
+ ldrb r0, [r6, 0x5]
+ bl GetFieldObjectGraphicsInfo
+ adds r5, r0, 0
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ ldr r4, _081282DC
+ adds r0, r4
+ adds r3, r0, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r2, 0x2
+ orrs r1, r2
+ strb r1, [r3]
+ ldrb r2, [r6, 0x4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrb r1, [r1, 0x5]
+ movs r2, 0xC
+ ands r2, r1
+ ldrb r3, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldr r1, [r7]
+ strh r1, [r0, 0x2E]
+ ldr r1, [r7, 0x4]
+ strh r1, [r0, 0x30]
+ ldr r1, [r7, 0x8]
+ strh r1, [r0, 0x32]
+ ldrb r2, [r6, 0x4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x20]
+ strh r1, [r0, 0x34]
+ ldrb r2, [r6, 0x4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x22]
+ strh r1, [r0, 0x36]
+ ldrh r1, [r5, 0xA]
+ lsls r1, 16
+ asrs r1, 17
+ subs r1, 0x2
+ strh r1, [r0, 0x26]
+ movs r1, 0x2
+ bl SeekSpriteAnim
+_081282C8:
+ movs r0, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081282D0: .4byte gUnknown_0202FF84
+_081282D4: .4byte gMapObjects
+_081282D8: .4byte gFieldEffectObjectTemplatePointers
+_081282DC: .4byte gSprites
+ thumb_func_end sub_8128224
+
+ thumb_func_start sub_81282E0
+sub_81282E0: @ 81282E0
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r4, 0x32]
+ lsls r2, 24
+ lsrs r2, 24
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812831A
+ ldr r2, _08128324
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ ldrb r0, [r1, 0x2]
+ lsls r0, 27
+ cmp r0, 0
+ blt _08128328
+_0812831A:
+ adds r0, r4, 0
+ movs r1, 0x27
+ bl FieldEffectStop
+ b _0812839A
+ .align 2, 0
+_08128324: .4byte gMapObjects
+_08128328:
+ ldr r2, _081283A4
+ ldrb r1, [r1, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r5, [r0, 0x22]
+ ldrh r6, [r0, 0x20]
+ movs r2, 0x20
+ ldrsh r1, [r0, r2]
+ movs r2, 0x34
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _08128350
+ lsls r0, r5, 16
+ asrs r0, 16
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ beq _0812836A
+_08128350:
+ strh r6, [r4, 0x34]
+ strh r5, [r4, 0x36]
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0812836A
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnim
+_0812836A:
+ strh r6, [r4, 0x20]
+ strh r5, [r4, 0x22]
+ ldr r3, _081283A4
+ ldr r2, _081283A8
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x43
+ ldrb r0, [r0]
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806487C
+_0812839A:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081283A4: .4byte gSprites
+_081283A8: .4byte gMapObjects
+ thumb_func_end sub_81282E0
+
+ thumb_func_start sub_81283AC
+sub_81283AC: @ 81283AC
+ push {r4,lr}
+ ldr r4, _08128404
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0
+ bl sub_8060470
+ ldr r0, _08128408
+ adds r0, 0x88
+ ldr r0, [r0]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ movs r3, 0x52
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _081283FC
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0812840C
+ adds r1, r0
+ adds r3, r1, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r3]
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r2
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+_081283FC:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08128404: .4byte gUnknown_0202FF84
+_08128408: .4byte gFieldEffectObjectTemplatePointers
+_0812840C: .4byte gSprites
+ thumb_func_end sub_81283AC
+
+ thumb_func_start sub_8128410
+sub_8128410: @ 8128410
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x80
+ movs r1, 0x80
+ lsls r1, 1
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x22]
+ subs r1, r0
+ strh r1, [r4, 0x22]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806487C
+ ldrh r1, [r4, 0x3E]
+ ldr r0, _0812844C
+ ands r0, r1
+ cmp r0, 0
+ beq _08128444
+ adds r0, r4, 0
+ movs r1, 0x35
+ bl FieldEffectStop
+_08128444:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812844C: .4byte 0x00001004
+ thumb_func_end sub_8128410
+
+ thumb_func_start sub_8128450
+sub_8128450: @ 8128450
+ push {r4,lr}
+ ldr r4, _081284B8
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0x4
+ bl sub_8060470
+ ldr r0, _081284BC
+ ldr r0, [r0, 0x58]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ ldrb r3, [r4, 0x8]
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _081284B0
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _081284C0
+ adds r2, r0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r0, 0x3
+ ldrb r1, [r4, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r3, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ movs r1, 0xF
+ ands r0, r1
+ movs r1, 0x50
+ orrs r0, r1
+ strb r0, [r2, 0x5]
+ movs r0, 0x17
+ strh r0, [r2, 0x2E]
+_081284B0:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081284B8: .4byte gUnknown_0202FF84
+_081284BC: .4byte gFieldEffectObjectTemplatePointers
+_081284C0: .4byte gSprites
+ thumb_func_end sub_8128450
+
+ thumb_func_start ShowTreeDisguiseFieldEffect
+ShowTreeDisguiseFieldEffect: @ 81284C4
+ push {lr}
+ movs r0, 0x1C
+ movs r1, 0x18
+ movs r2, 0x4
+ bl ShowDisguiseFieldEffect
+ pop {r1}
+ bx r1
+ thumb_func_end ShowTreeDisguiseFieldEffect
+
+ thumb_func_start ShowMountainDisguiseFieldEffect
+ShowMountainDisguiseFieldEffect: @ 81284D4
+ push {lr}
+ movs r0, 0x1D
+ movs r1, 0x19
+ movs r2, 0x3
+ bl ShowDisguiseFieldEffect
+ pop {r1}
+ bx r1
+ thumb_func_end ShowMountainDisguiseFieldEffect
+
+ thumb_func_start ShowSandDisguiseFieldEffect
+ShowSandDisguiseFieldEffect: @ 81284E4
+ push {lr}
+ movs r0, 0x24
+ movs r1, 0x1C
+ movs r2, 0x2
+ bl ShowDisguiseFieldEffect
+ pop {r1}
+ bx r1
+ thumb_func_end ShowSandDisguiseFieldEffect
+
+ thumb_func_start ShowDisguiseFieldEffect
+ShowDisguiseFieldEffect: @ 81284F4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r8, r4
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r2, 24
+ lsrs r7, r2, 24
+ ldr r5, _08128528
+ ldrb r0, [r5]
+ ldrb r1, [r5, 0x4]
+ ldrb r2, [r5, 0x8]
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812852C
+ adds r0, r4, 0
+ bl FieldEffectActiveListRemove
+ movs r0, 0x40
+ b _08128598
+ .align 2, 0
+_08128528: .4byte gUnknown_0202FF84
+_0812852C:
+ ldr r1, _081285A4
+ lsls r0, r6, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ mov r1, sp
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _08128594
+ mov r0, sp
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ ldr r0, _081285A8
+ adds r2, r0
+ movs r0, 0x3E
+ adds r0, r2
+ mov r12, r0
+ ldrb r3, [r0]
+ lsls r1, r3, 30
+ lsrs r1, 31
+ adds r1, 0x1
+ movs r0, 0x1
+ ands r1, r0
+ lsls r1, 1
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ lsls r3, r7, 4
+ ldrb r1, [r2, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ orrs r0, r3
+ strb r0, [r2, 0x5]
+ mov r0, r8
+ strh r0, [r2, 0x30]
+ ldr r0, [r5]
+ strh r0, [r2, 0x32]
+ ldr r0, [r5, 0x4]
+ strh r0, [r2, 0x34]
+ ldr r0, [r5, 0x8]
+ strh r0, [r2, 0x36]
+_08128594:
+ mov r0, sp
+ ldrb r0, [r0]
+_08128598:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081285A4: .4byte gFieldEffectObjectTemplatePointers
+_081285A8: .4byte gSprites
+ thumb_func_end ShowDisguiseFieldEffect
+
+ thumb_func_start sub_81285AC
+sub_81285AC: @ 81285AC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x34]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r5, 0x36]
+ lsls r2, 24
+ lsrs r2, 24
+ mov r3, sp
+ bl TryGetFieldObjectIdByLocalIdAndMap
+ lsls r0, 24
+ cmp r0, 0
+ beq _081285DC
+ ldrh r1, [r5, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl FieldEffectStop
+_081285DC:
+ ldr r4, _08128694
+ mov r0, sp
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x5]
+ bl GetFieldObjectGraphicsInfo
+ mov r1, sp
+ ldrb r2, [r1]
+ lsls r1, r2, 3
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrb r1, [r1, 0x4]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ ldr r1, _08128698
+ adds r2, r1
+ adds r1, r2, 0
+ adds r1, 0x3E
+ ldrb r1, [r1]
+ movs r3, 0x3E
+ adds r3, r5
+ mov r12, r3
+ movs r3, 0x4
+ ands r3, r1
+ mov r1, r12
+ ldrb r4, [r1]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r4
+ orrs r1, r3
+ mov r3, r12
+ strb r1, [r3]
+ ldrh r1, [r2, 0x20]
+ strh r1, [r5, 0x20]
+ ldrh r0, [r0, 0xA]
+ lsls r0, 16
+ asrs r0, 17
+ ldrh r1, [r2, 0x22]
+ adds r0, r1
+ subs r0, 0x10
+ strh r0, [r5, 0x22]
+ adds r2, 0x43
+ ldrb r0, [r2]
+ subs r0, 0x1
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldrh r1, [r5, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x1
+ bne _0812865C
+ adds r0, r1, 0x1
+ strh r0, [r5, 0x2E]
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+_0812865C:
+ movs r3, 0x2E
+ ldrsh r0, [r5, r3]
+ ldrh r2, [r5, 0x2E]
+ cmp r0, 0x2
+ bne _08128678
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08128678
+ movs r0, 0x1
+ strh r0, [r5, 0x3C]
+_08128678:
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _0812868C
+ ldrh r1, [r5, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl FieldEffectStop
+_0812868C:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08128694: .4byte gMapObjects
+_08128698: .4byte gSprites
+ thumb_func_end sub_81285AC
+
+ thumb_func_start sub_812869C
+sub_812869C: @ 812869C
+ push {lr}
+ adds r1, r0, 0
+ adds r0, 0x21
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _081286BA
+ ldr r2, _081286C0
+ ldrb r1, [r1, 0x1A]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x2E]
+ adds r1, 0x1
+ strh r1, [r0, 0x2E]
+_081286BA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081286C0: .4byte gSprites
+ thumb_func_end sub_812869C
+
+ thumb_func_start sub_81286C4
+sub_81286C4: @ 81286C4
+ push {lr}
+ adds r2, r0, 0
+ adds r2, 0x21
+ ldrb r1, [r2]
+ cmp r1, 0x2
+ beq _081286FA
+ cmp r1, 0
+ beq _081286FA
+ ldrb r1, [r0, 0x1A]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _081286EC
+ adds r1, r0, r1
+ movs r3, 0x3C
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _081286F0
+ movs r0, 0
+ b _081286FC
+ .align 2, 0
+_081286EC: .4byte gSprites
+_081286F0:
+ movs r0, 0x2
+ strb r0, [r2]
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+_081286FA:
+ movs r0, 0x1
+_081286FC:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81286C4
+
+ thumb_func_start sub_8128700
+sub_8128700: @ 8128700
+ push {r4,lr}
+ ldr r4, _08128768
+ ldr r0, [r4]
+ adds r0, 0x7
+ str r0, [r4]
+ ldr r0, [r4, 0x4]
+ adds r0, 0x7
+ str r0, [r4, 0x4]
+ adds r1, r4, 0x4
+ adds r0, r4, 0
+ movs r2, 0x8
+ movs r3, 0x8
+ bl sub_8060470
+ ldr r0, _0812876C
+ adds r0, 0x8C
+ ldr r0, [r0]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ movs r3, 0x52
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _08128760
+ ldr r0, _08128770
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0x3
+ ldrb r2, [r4, 0x8]
+ 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]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x2
+ orrs r0, r2
+ strb r0, [r1]
+_08128760:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08128768: .4byte gUnknown_0202FF84
+_0812876C: .4byte gFieldEffectObjectTemplatePointers
+_08128770: .4byte gSprites
+ thumb_func_end sub_8128700
+
+ thumb_func_start sub_8128774
+sub_8128774: @ 8128774
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _081287A8
+ adds r0, r2, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _081287A0
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+_081287A0:
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _081287BE
+_081287A8:
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x22
+ ble _081287BE
+ adds r0, r2, 0
+ movs r1, 0x36
+ bl FieldEffectStop
+_081287BE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128774
+
+ thumb_func_start sub_81287C4
+sub_81287C4: @ 81287C4
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _081287E2
+ ldrh r1, [r4, 0x30]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl FieldEffectStop
+ b _081287F8
+_081287E2:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806487C
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ movs r2, 0
+ bl SetObjectSubpriorityByZCoord
+_081287F8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81287C4
+
+ thumb_func_start sub_8128800
+sub_8128800: @ 8128800
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0812881E
+ ldrh r1, [r2, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r2, 0
+ bl FieldEffectStop
+ b _08128826
+_0812881E:
+ adds r0, r2, 0
+ movs r1, 0
+ bl sub_806487C
+_08128826:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128800
+
+ thumb_func_start sub_812882C
+sub_812882C: @ 812882C
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r0, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, 24
+ lsrs r2, 24
+ adds r1, r6, 0
+ bl SetObjectSubpriorityByZCoord
+ movs r7, 0
+_08128842:
+ lsls r0, r7, 3
+ adds r0, r7
+ lsls r0, 2
+ ldr r1, _081288DC
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ lsls r0, 31
+ cmp r0, 0
+ beq _081288E4
+ ldrb r0, [r4, 0x5]
+ bl GetFieldObjectGraphicsInfo
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _081288E0
+ adds r5, r0, r1
+ adds r0, r6, 0
+ adds r0, 0x28
+ movs r2, 0
+ ldrsb r2, [r0, r2]
+ ldrh r0, [r6, 0x20]
+ adds r1, r0, r2
+ subs r0, r2
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ movs r0, 0x20
+ ldrsh r2, [r5, r0]
+ cmp r1, r2
+ bge _081288E4
+ lsls r0, r4, 16
+ asrs r0, 16
+ cmp r0, r2
+ ble _081288E4
+ adds r0, r5, 0
+ adds r0, 0x29
+ movs r3, 0
+ ldrsb r3, [r0, r3]
+ ldrh r2, [r5, 0x22]
+ adds r2, r3
+ ldrh r4, [r5, 0x22]
+ adds r0, r6, 0
+ adds r0, 0x29
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ ldrh r0, [r6, 0x22]
+ subs r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ adds r3, r0, r3
+ lsls r2, 16
+ asrs r2, 16
+ lsls r3, 16
+ asrs r3, 16
+ cmp r2, r3
+ blt _081288BC
+ cmp r2, r0
+ bge _081288E4
+_081288BC:
+ lsls r0, r4, 16
+ asrs r0, 16
+ cmp r0, r3
+ ble _081288E4
+ adds r2, r6, 0
+ adds r2, 0x43
+ adds r0, r5, 0
+ adds r0, 0x43
+ ldrb r1, [r0]
+ ldrb r0, [r2]
+ cmp r0, r1
+ bhi _081288E4
+ adds r0, r1, 0x2
+ strb r0, [r2]
+ b _081288EE
+ .align 2, 0
+_081288DC: .4byte gMapObjects
+_081288E0: .4byte gSprites
+_081288E4:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0xF
+ bls _08128842
+_081288EE:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812882C
+
+ thumb_func_start sub_81288F4
+sub_81288F4: @ 81288F4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _0812893C
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x44
+ bl memset
+ movs r3, 0x64
+ adds r2, r4, 0
+ movs r1, 0x3
+ adds r0, r2, 0
+ adds r0, 0x8
+_08128910:
+ strb r3, [r0]
+ subs r0, 0x1
+ subs r1, 0x1
+ cmp r1, 0
+ bge _08128910
+ adds r3, r2, 0
+ adds r3, 0x41
+ movs r1, 0
+ strb r5, [r3]
+ adds r0, r2, 0
+ adds r0, 0x40
+ strb r1, [r0]
+ ldr r1, _08128940
+ ldrb r0, [r3]
+ lsls r0, 6
+ adds r1, 0x18
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2, 0x14]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812893C: .4byte 0x020192e4
+_08128940: .4byte gUnknown_02038570
+ thumb_func_end sub_81288F4
+
+ thumb_func_start sub_8128944
+sub_8128944: @ 8128944
+ push {r4-r6,lr}
+ ldr r1, _081289A8
+ ldr r0, [r1, 0x14]
+ cmp r0, 0
+ beq _08128974
+ adds r4, r1, 0
+ movs r5, 0
+_08128952:
+ ldr r0, [r4, 0x14]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08128962
+ strb r5, [r4]
+ bl sub_81289AC
+_08128962:
+ ldr r1, [r4, 0x14]
+ lsrs r1, 1
+ str r1, [r4, 0x14]
+ ldrb r0, [r4, 0x10]
+ adds r0, 0x1
+ strb r0, [r4, 0x10]
+ strb r5, [r4, 0x4]
+ cmp r1, 0
+ bne _08128952
+_08128974:
+ movs r6, 0x3
+ ldr r5, _081289A8
+_08128978:
+ bl Random
+ adds r4, r0, 0
+ ands r4, r6
+ adds r3, r5, 0x5
+ adds r0, r4, r3
+ ldrb r2, [r0]
+ movs r1, 0
+ ldrb r0, [r5, 0x5]
+ cmp r2, r0
+ bcc _0812899C
+_0812898E:
+ adds r1, 0x1
+ cmp r1, 0x3
+ bgt _0812899C
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r2, r0
+ bcs _0812898E
+_0812899C:
+ cmp r1, 0x4
+ bne _08128978
+ adds r0, r4, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081289A8: .4byte 0x020192e4
+ thumb_func_end sub_8128944
+
+ thumb_func_start sub_81289AC
+sub_81289AC: @ 81289AC
+ push {r4-r6,lr}
+ ldr r1, _081289F4
+ ldrb r0, [r1]
+ adds r2, r1, 0
+ cmp r0, 0x2
+ beq _08128A76
+ adds r4, r1, 0
+ ldr r5, _081289F8
+ ldr r6, _081289FC
+_081289BE:
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ beq _08128A0E
+ cmp r0, 0x1
+ bgt _08128A6E
+ cmp r0, 0
+ bne _08128A6E
+ ldr r1, _08128A00
+ ldrb r0, [r4, 0x10]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r5]
+ ldrb r1, [r4, 0x4]
+ lsls r1, 1
+ adds r0, r4, 0
+ adds r0, 0x41
+ ldrb r0, [r0]
+ lsls r0, 6
+ adds r1, r0
+ adds r1, r6
+ ldrh r1, [r1]
+ adds r0, r1, 0
+ cmp r0, 0
+ bne _08128A04
+ strh r0, [r4, 0x2]
+ b _08128A06
+ .align 2, 0
+_081289F4: .4byte 0x020192e4
+_081289F8: .4byte gUnknown_02039238
+_081289FC: .4byte gUnknown_0203858E
+_08128A00: .4byte gContestAIs
+_08128A04:
+ strh r1, [r4, 0x2]
+_08128A06:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _08128A6E
+_08128A0E:
+ ldrh r1, [r1, 0x2]
+ cmp r1, 0
+ beq _08128A2C
+ ldr r1, _08128A28
+ ldr r0, [r5]
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ b _08128A3C
+ .align 2, 0
+_08128A28: .4byte gUnknown_08401E60
+_08128A2C:
+ adds r0, r4, 0x5
+ ldrb r2, [r4, 0x4]
+ adds r0, r2
+ strb r1, [r0]
+ ldrb r1, [r4, 0x9]
+ movs r0, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x9]
+_08128A3C:
+ ldr r2, _08128A5C
+ ldrb r1, [r2, 0x9]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08128A6E
+ ldrb r0, [r2, 0x4]
+ adds r0, 0x1
+ movs r1, 0
+ strb r0, [r2, 0x4]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bhi _08128A60
+ strb r1, [r2]
+ b _08128A66
+ .align 2, 0
+_08128A5C: .4byte 0x020192e4
+_08128A60:
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+_08128A66:
+ ldrb r1, [r4, 0x9]
+ movs r0, 0xFE
+ ands r0, r1
+ strb r0, [r4, 0x9]
+_08128A6E:
+ adds r1, r2, 0
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bne _081289BE
+_08128A76:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81289AC
+
+ thumb_func_start sub_8128A7C
+sub_8128A7C: @ 8128A7C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ ldr r3, _08128AA4
+ ldrb r0, [r3]
+ cmp r0, r2
+ beq _08128A9A
+_08128A8C:
+ adds r1, 0x1
+ cmp r1, 0x3
+ bgt _08128A9A
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _08128A8C
+_08128A9A:
+ lsls r0, r1, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08128AA4: .4byte 0x020192d0
+ thumb_func_end sub_8128A7C
+
+ thumb_func_start sub_8128AA8
+sub_8128AA8: @ 8128AA8
+ push {lr}
+ ldr r2, _08128AD0
+ adds r1, r2, 0x5
+ ldrb r0, [r2, 0x4]
+ adds r1, r0
+ ldr r3, _08128AD4
+ ldr r0, [r3]
+ ldrb r0, [r0, 0x1]
+ lsls r0, 24
+ asrs r0, 24
+ ldrb r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _08128AD8
+ movs r1, 0xFF
+ b _08128ADE
+ .align 2, 0
+_08128AD0: .4byte 0x020192e4
+_08128AD4: .4byte gUnknown_02039238
+_08128AD8:
+ cmp r0, 0
+ bge _08128ADE
+ movs r1, 0
+_08128ADE:
+ adds r0, r2, 0x5
+ ldrb r2, [r2, 0x4]
+ adds r0, r2
+ strb r1, [r0]
+ ldr r0, [r3]
+ adds r0, 0x2
+ str r0, [r3]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128AA8
+
+ thumb_func_start contest_ai_get_turn
+contest_ai_get_turn: @ 8128AF0
+ ldr r1, _08128B04
+ adds r0, r1, 0
+ subs r0, 0xE0
+ ldrb r0, [r0, 0x1]
+ strh r0, [r1, 0x18]
+ ldr r1, _08128B08
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08128B04: .4byte 0x020192e4
+_08128B08: .4byte gUnknown_02039238
+ thumb_func_end contest_ai_get_turn
+
+ thumb_func_start sub_8128B0C
+sub_8128B0C: @ 8128B0C
+ push {lr}
+ bl contest_ai_get_turn
+ ldr r0, _08128B3C
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128B40
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bge _08128B44
+ 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 _08128B48
+ .align 2, 0
+_08128B3C: .4byte 0x020192e4
+_08128B40: .4byte gUnknown_02039238
+_08128B44:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128B48:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128B0C
+
+ thumb_func_start sub_8128B4C
+sub_8128B4C: @ 8128B4C
+ push {lr}
+ bl contest_ai_get_turn
+ ldr r0, _08128B7C
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128B80
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ ble _08128B84
+ 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 _08128B88
+ .align 2, 0
+_08128B7C: .4byte 0x020192e4
+_08128B80: .4byte gUnknown_02039238
+_08128B84:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128B88:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128B4C
+
+ thumb_func_start sub_8128B8C
+sub_8128B8C: @ 8128B8C
+ push {lr}
+ bl contest_ai_get_turn
+ ldr r0, _08128BBC
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128BC0
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _08128BC4
+ 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 _08128BC8
+ .align 2, 0
+_08128BBC: .4byte 0x020192e4
+_08128BC0: .4byte gUnknown_02039238
+_08128BC4:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128BC8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128B8C
+
+ thumb_func_start sub_8128BCC
+sub_8128BCC: @ 8128BCC
+ push {lr}
+ bl contest_ai_get_turn
+ ldr r0, _08128BFC
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128C00
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _08128C04
+ 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 _08128C08
+ .align 2, 0
+_08128BFC: .4byte 0x020192e4
+_08128C00: .4byte gUnknown_02039238
+_08128C04:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128C08:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128BCC
+
+ thumb_func_start contest_ai_get_excitement
+contest_ai_get_excitement: @ 8128C0C
+ ldr r1, _08128C24
+ adds r0, r1, 0
+ subs r0, 0xE0
+ ldrb r0, [r0, 0x13]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r1, 0x18]
+ ldr r1, _08128C28
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08128C24: .4byte 0x020192e4
+_08128C28: .4byte gUnknown_02039238
+ thumb_func_end contest_ai_get_excitement
+
+ thumb_func_start sub_8128C2C
+sub_8128C2C: @ 8128C2C
+ push {lr}
+ bl contest_ai_get_excitement
+ ldr r0, _08128C5C
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128C60
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bge _08128C64
+ 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 _08128C68
+ .align 2, 0
+_08128C5C: .4byte 0x020192e4
+_08128C60: .4byte gUnknown_02039238
+_08128C64:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128C68:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128C2C
+
+ thumb_func_start sub_8128C6C
+sub_8128C6C: @ 8128C6C
+ push {lr}
+ bl contest_ai_get_excitement
+ ldr r0, _08128C9C
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128CA0
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ ble _08128CA4
+ 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 _08128CA8
+ .align 2, 0
+_08128C9C: .4byte 0x020192e4
+_08128CA0: .4byte gUnknown_02039238
+_08128CA4:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128CA8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128C6C
+
+ thumb_func_start sub_8128CAC
+sub_8128CAC: @ 8128CAC
+ push {lr}
+ bl contest_ai_get_excitement
+ ldr r0, _08128CDC
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128CE0
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _08128CE4
+ 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 _08128CE8
+ .align 2, 0
+_08128CDC: .4byte 0x020192e4
+_08128CE0: .4byte gUnknown_02039238
+_08128CE4:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128CE8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128CAC
+
+ thumb_func_start sub_8128CEC
+sub_8128CEC: @ 8128CEC
+ push {lr}
+ bl contest_ai_get_excitement
+ ldr r0, _08128D1C
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128D20
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _08128D24
+ 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 _08128D28
+ .align 2, 0
+_08128D1C: .4byte 0x020192e4
+_08128D20: .4byte gUnknown_02039238
+_08128D24:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128D28:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128CEC
+
+ thumb_func_start contest_ai_get_user_order
+contest_ai_get_user_order: @ 8128D2C
+ ldr r1, _08128D48
+ adds r2, r1, 0
+ adds r2, 0x41
+ adds r0, r1, 0
+ subs r0, 0x14
+ ldrb r2, [r2]
+ adds r0, r2
+ ldrb r0, [r0]
+ strh r0, [r1, 0x18]
+ ldr r1, _08128D4C
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08128D48: .4byte 0x020192e4
+_08128D4C: .4byte gUnknown_02039238
+ thumb_func_end contest_ai_get_user_order
+
+ thumb_func_start sub_8128D50
+sub_8128D50: @ 8128D50
+ push {lr}
+ bl contest_ai_get_user_order
+ ldr r0, _08128D80
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128D84
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bge _08128D88
+ 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 _08128D8C
+ .align 2, 0
+_08128D80: .4byte 0x020192e4
+_08128D84: .4byte gUnknown_02039238
+_08128D88:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128D8C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128D50
+
+ thumb_func_start sub_8128D90
+sub_8128D90: @ 8128D90
+ push {lr}
+ bl contest_ai_get_user_order
+ ldr r0, _08128DC0
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128DC4
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ ble _08128DC8
+ 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 _08128DCC
+ .align 2, 0
+_08128DC0: .4byte 0x020192e4
+_08128DC4: .4byte gUnknown_02039238
+_08128DC8:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128DCC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128D90
+
+ thumb_func_start sub_8128DD0
+sub_8128DD0: @ 8128DD0
+ push {lr}
+ bl contest_ai_get_user_order
+ ldr r0, _08128E00
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128E04
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _08128E08
+ 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 _08128E0C
+ .align 2, 0
+_08128E00: .4byte 0x020192e4
+_08128E04: .4byte gUnknown_02039238
+_08128E08:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128E0C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128DD0
+
+ thumb_func_start sub_8128E10
+sub_8128E10: @ 8128E10
+ push {lr}
+ bl contest_ai_get_user_order
+ ldr r0, _08128E40
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128E44
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _08128E48
+ 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 _08128E4C
+ .align 2, 0
+_08128E40: .4byte 0x020192e4
+_08128E44: .4byte gUnknown_02039238
+_08128E48:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128E4C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128E10
+
+ thumb_func_start contest_ai_get_user_condition_maybe
+contest_ai_get_user_condition_maybe: @ 8128E50
+ push {r4,lr}
+ ldr r4, _08128E88
+ adds r0, r4, 0
+ adds r0, 0x41
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r4, 0
+ subs r1, 0x84
+ adds r0, r1
+ ldrb r0, [r0, 0xD]
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0xA
+ bl __divsi3
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r4, 0x18]
+ ldr r1, _08128E8C
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08128E88: .4byte 0x020192e4
+_08128E8C: .4byte gUnknown_02039238
+ thumb_func_end contest_ai_get_user_condition_maybe
+
+ thumb_func_start sub_8128E90
+sub_8128E90: @ 8128E90
+ push {lr}
+ bl contest_ai_get_user_condition_maybe
+ ldr r0, _08128EC0
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128EC4
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bge _08128EC8
+ 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 _08128ECC
+ .align 2, 0
+_08128EC0: .4byte 0x020192e4
+_08128EC4: .4byte gUnknown_02039238
+_08128EC8:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128ECC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128E90
+
+ thumb_func_start sub_8128ED0
+sub_8128ED0: @ 8128ED0
+ push {lr}
+ bl contest_ai_get_user_condition_maybe
+ ldr r0, _08128F00
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128F04
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ ble _08128F08
+ 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 _08128F0C
+ .align 2, 0
+_08128F00: .4byte 0x020192e4
+_08128F04: .4byte gUnknown_02039238
+_08128F08:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128F0C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128ED0
+
+ thumb_func_start sub_8128F10
+sub_8128F10: @ 8128F10
+ push {lr}
+ bl contest_ai_get_user_condition_maybe
+ ldr r0, _08128F40
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128F44
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _08128F48
+ 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 _08128F4C
+ .align 2, 0
+_08128F40: .4byte 0x020192e4
+_08128F44: .4byte gUnknown_02039238
+_08128F48:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128F4C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128F10
+
+ thumb_func_start sub_8128F50
+sub_8128F50: @ 8128F50
+ push {lr}
+ bl contest_ai_get_user_condition_maybe
+ ldr r0, _08128F80
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08128F84
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _08128F88
+ 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 _08128F8C
+ .align 2, 0
+_08128F80: .4byte 0x020192e4
+_08128F84: .4byte gUnknown_02039238
+_08128F88:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08128F8C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128F50
+
+ thumb_func_start sub_8128F90
+sub_8128F90: @ 8128F90
+ ldr r2, _08128FB4
+ adds r0, r2, 0
+ adds r0, 0x41
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r1, r2, 0
+ subs r1, 0x84
+ adds r0, r1
+ ldrh r0, [r0, 0x4]
+ strh r0, [r2, 0x18]
+ ldr r1, _08128FB8
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08128FB4: .4byte 0x020192e4
+_08128FB8: .4byte gUnknown_02039238
+ thumb_func_end sub_8128F90
+
+ thumb_func_start sub_8128FBC
+sub_8128FBC: @ 8128FBC
+ push {r4,r5,lr}
+ bl sub_8128F90
+ ldr r2, _08128FF4
+ ldr r4, _08128FF8
+ ldr r3, [r4]
+ ldrb r1, [r3]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ movs r5, 0x18
+ ldrsh r0, [r2, r5]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r0, r1
+ bge _08128FFC
+ 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 _08129000
+ .align 2, 0
+_08128FF4: .4byte 0x020192e4
+_08128FF8: .4byte gUnknown_02039238
+_08128FFC:
+ adds r0, r3, 0x6
+ str r0, [r4]
+_08129000:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8128FBC
+
+ thumb_func_start sub_8129008
+sub_8129008: @ 8129008
+ push {r4,r5,lr}
+ bl sub_8128F90
+ ldr r2, _08129040
+ ldr r4, _08129044
+ ldr r3, [r4]
+ ldrb r1, [r3]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ movs r5, 0x18
+ ldrsh r0, [r2, r5]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r0, r1
+ ble _08129048
+ 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 _0812904C
+ .align 2, 0
+_08129040: .4byte 0x020192e4
+_08129044: .4byte gUnknown_02039238
+_08129048:
+ adds r0, r3, 0x6
+ str r0, [r4]
+_0812904C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129008
+
+ thumb_func_start sub_8129054
+sub_8129054: @ 8129054
+ push {r4,r5,lr}
+ bl sub_8128F90
+ ldr r2, _0812908C
+ ldr r4, _08129090
+ ldr r3, [r4]
+ ldrb r1, [r3]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ movs r5, 0x18
+ ldrsh r0, [r2, r5]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r0, r1
+ bne _08129094
+ 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 _08129098
+ .align 2, 0
+_0812908C: .4byte 0x020192e4
+_08129090: .4byte gUnknown_02039238
+_08129094:
+ adds r0, r3, 0x6
+ str r0, [r4]
+_08129098:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129054
+
+ thumb_func_start sub_81290A0
+sub_81290A0: @ 81290A0
+ push {r4,r5,lr}
+ bl sub_8128F90
+ ldr r2, _081290D8
+ ldr r4, _081290DC
+ ldr r3, [r4]
+ ldrb r1, [r3]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ movs r5, 0x18
+ ldrsh r0, [r2, r5]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r0, r1
+ beq _081290E0
+ 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 _081290E4
+ .align 2, 0
+_081290D8: .4byte 0x020192e4
+_081290DC: .4byte gUnknown_02039238
+_081290E0:
+ adds r0, r3, 0x6
+ str r0, [r4]
+_081290E4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81290A0
+
+ thumb_func_start sub_81290EC
+sub_81290EC: @ 81290EC
+ ldr r2, _08129108
+ ldr r1, _0812910C
+ adds r0, r2, 0
+ adds r0, 0x41
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2, 0x18]
+ ldr r1, _08129110
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08129108: .4byte 0x020192e4
+_0812910C: .4byte gUnknown_02038670
+_08129110: .4byte gUnknown_02039238
+ thumb_func_end sub_81290EC
+
+ thumb_func_start sub_8129114
+sub_8129114: @ 8129114
+ push {r4,r5,lr}
+ bl sub_81290EC
+ ldr r2, _0812914C
+ ldr r4, _08129150
+ ldr r3, [r4]
+ ldrb r1, [r3]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ movs r5, 0x18
+ ldrsh r0, [r2, r5]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r0, r1
+ bge _08129154
+ 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 _08129158
+ .align 2, 0
+_0812914C: .4byte 0x020192e4
+_08129150: .4byte gUnknown_02039238
+_08129154:
+ adds r0, r3, 0x6
+ str r0, [r4]
+_08129158:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129114
+
+ thumb_func_start sub_8129160
+sub_8129160: @ 8129160
+ push {r4,r5,lr}
+ bl sub_81290EC
+ ldr r2, _08129198
+ ldr r4, _0812919C
+ ldr r3, [r4]
+ ldrb r1, [r3]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ movs r5, 0x18
+ ldrsh r0, [r2, r5]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r0, r1
+ ble _081291A0
+ 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 _081291A4
+ .align 2, 0
+_08129198: .4byte 0x020192e4
+_0812919C: .4byte gUnknown_02039238
+_081291A0:
+ adds r0, r3, 0x6
+ str r0, [r4]
+_081291A4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129160
+
+ thumb_func_start sub_81291AC
+sub_81291AC: @ 81291AC
+ push {r4,r5,lr}
+ bl sub_81290EC
+ ldr r2, _081291E4
+ ldr r4, _081291E8
+ ldr r3, [r4]
+ ldrb r1, [r3]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ movs r5, 0x18
+ ldrsh r0, [r2, r5]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r0, r1
+ bne _081291EC
+ 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 _081291F0
+ .align 2, 0
+_081291E4: .4byte 0x020192e4
+_081291E8: .4byte gUnknown_02039238
+_081291EC:
+ adds r0, r3, 0x6
+ str r0, [r4]
+_081291F0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81291AC
+
+ thumb_func_start sub_81291F8
+sub_81291F8: @ 81291F8
+ push {r4,r5,lr}
+ bl sub_81290EC
+ ldr r2, _08129230
+ ldr r4, _08129234
+ ldr r3, [r4]
+ ldrb r1, [r3]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ movs r5, 0x18
+ ldrsh r0, [r2, r5]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r0, r1
+ beq _08129238
+ 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 _0812923C
+ .align 2, 0
+_08129230: .4byte 0x020192e4
+_08129234: .4byte gUnknown_02039238
+_08129238:
+ adds r0, r3, 0x6
+ str r0, [r4]
+_0812923C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81291F8
+
+ thumb_func_start contest_ai_get_contest_type
+contest_ai_get_contest_type: @ 8129244
+ ldr r1, _08129258
+ ldr r0, _0812925C
+ ldrh r0, [r0]
+ strh r0, [r1, 0x18]
+ ldr r1, _08129260
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08129258: .4byte 0x020192e4
+_0812925C: .4byte gUnknown_0203869C
+_08129260: .4byte gUnknown_02039238
+ thumb_func_end contest_ai_get_contest_type
+
+ thumb_func_start sub_8129264
+sub_8129264: @ 8129264
+ push {lr}
+ bl contest_ai_get_contest_type
+ ldr r0, _08129294
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08129298
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _0812929C
+ 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 _081292A0
+ .align 2, 0
+_08129294: .4byte 0x020192e4
+_08129298: .4byte gUnknown_02039238
+_0812929C:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_081292A0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129264
+
+ thumb_func_start sub_81292A4
+sub_81292A4: @ 81292A4
+ push {lr}
+ bl contest_ai_get_contest_type
+ ldr r0, _081292D4
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _081292D8
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _081292DC
+ 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 _081292E0
+ .align 2, 0
+_081292D4: .4byte 0x020192e4
+_081292D8: .4byte gUnknown_02039238
+_081292DC:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_081292E0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81292A4
+
+ thumb_func_start contest_ai_get_move_excitement
+contest_ai_get_move_excitement: @ 81292E4
+ push {r4,lr}
+ ldr r2, _08129318
+ ldr r4, _0812931C
+ ldrb r1, [r4, 0x4]
+ lsls r1, 1
+ adds r0, r4, 0
+ adds r0, 0x41
+ ldrb r0, [r0]
+ lsls r0, 6
+ adds r1, r0
+ adds r2, 0x1E
+ adds r1, r2
+ ldrh r0, [r1]
+ bl contest_get_move_excitement
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r4, 0x18]
+ ldr r1, _08129320
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129318: .4byte gUnknown_02038570
+_0812931C: .4byte 0x020192e4
+_08129320: .4byte gUnknown_02039238
+ thumb_func_end contest_ai_get_move_excitement
+
+ thumb_func_start sub_8129324
+sub_8129324: @ 8129324
+ push {r4,lr}
+ bl contest_ai_get_move_excitement
+ ldr r0, _08129354
+ ldr r3, _08129358
+ ldr r2, [r3]
+ movs r4, 0x18
+ ldrsh r1, [r0, r4]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ bge _0812935C
+ 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 _08129360
+ .align 2, 0
+_08129354: .4byte 0x020192e4
+_08129358: .4byte gUnknown_02039238
+_0812935C:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08129360:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129324
+
+ thumb_func_start sub_8129368
+sub_8129368: @ 8129368
+ push {r4,lr}
+ bl contest_ai_get_move_excitement
+ ldr r0, _08129398
+ ldr r3, _0812939C
+ ldr r2, [r3]
+ movs r4, 0x18
+ ldrsh r1, [r0, r4]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ ble _081293A0
+ 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 _081293A4
+ .align 2, 0
+_08129398: .4byte 0x020192e4
+_0812939C: .4byte gUnknown_02039238
+_081293A0:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_081293A4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129368
+
+ thumb_func_start sub_81293AC
+sub_81293AC: @ 81293AC
+ push {r4,lr}
+ bl contest_ai_get_move_excitement
+ ldr r0, _081293DC
+ ldr r3, _081293E0
+ ldr r2, [r3]
+ movs r4, 0x18
+ ldrsh r1, [r0, r4]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ bne _081293E4
+ 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 _081293E8
+ .align 2, 0
+_081293DC: .4byte 0x020192e4
+_081293E0: .4byte gUnknown_02039238
+_081293E4:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_081293E8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81293AC
+
+ thumb_func_start sub_81293F0
+sub_81293F0: @ 81293F0
+ push {r4,lr}
+ bl contest_ai_get_move_excitement
+ ldr r0, _08129420
+ ldr r3, _08129424
+ ldr r2, [r3]
+ movs r4, 0x18
+ ldrsh r1, [r0, r4]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ beq _08129428
+ 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 _0812942C
+ .align 2, 0
+_08129420: .4byte 0x020192e4
+_08129424: .4byte gUnknown_02039238
+_08129428:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812942C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81293F0
+
+ thumb_func_start contest_ai_get_move_effect
+contest_ai_get_move_effect: @ 8129434
+ ldr r2, _08129460
+ ldr r3, _08129464
+ ldrb r1, [r3, 0x4]
+ lsls r1, 1
+ adds r0, r3, 0
+ adds r0, 0x41
+ ldrb r0, [r0]
+ lsls r0, 6
+ adds r1, r0
+ adds r2, 0x1E
+ adds r1, r2
+ ldrh r0, [r1]
+ ldr r1, _08129468
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r3, 0x18]
+ ldr r1, _0812946C
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08129460: .4byte gUnknown_02038570
+_08129464: .4byte 0x020192e4
+_08129468: .4byte gContestMoves
+_0812946C: .4byte gUnknown_02039238
+ thumb_func_end contest_ai_get_move_effect
+
+ thumb_func_start sub_8129470
+sub_8129470: @ 8129470
+ push {lr}
+ bl contest_ai_get_move_effect
+ ldr r0, _081294A0
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _081294A4
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _081294A8
+ 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 _081294AC
+ .align 2, 0
+_081294A0: .4byte 0x020192e4
+_081294A4: .4byte gUnknown_02039238
+_081294A8:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_081294AC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129470
+
+ thumb_func_start sub_81294B0
+sub_81294B0: @ 81294B0
+ push {lr}
+ bl contest_ai_get_move_effect
+ ldr r0, _081294E0
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _081294E4
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _081294E8
+ 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 _081294EC
+ .align 2, 0
+_081294E0: .4byte 0x020192e4
+_081294E4: .4byte gUnknown_02039238
+_081294E8:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_081294EC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81294B0
+
+ thumb_func_start contest_ai_get_move_effect_type
+contest_ai_get_move_effect_type: @ 81294F0
+ ldr r2, _08129524
+ ldr r3, _08129528
+ ldrb r1, [r3, 0x4]
+ lsls r1, 1
+ adds r0, r3, 0
+ adds r0, 0x41
+ ldrb r0, [r0]
+ lsls r0, 6
+ adds r1, r0
+ adds r2, 0x1E
+ adds r1, r2
+ ldrh r0, [r1]
+ ldr r2, _0812952C
+ ldr r1, _08129530
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ strh r0, [r3, 0x18]
+ ldr r1, _08129534
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08129524: .4byte gUnknown_02038570
+_08129528: .4byte 0x020192e4
+_0812952C: .4byte gContestEffects
+_08129530: .4byte gContestMoves
+_08129534: .4byte gUnknown_02039238
+ thumb_func_end contest_ai_get_move_effect_type
+
+ thumb_func_start sub_8129538
+sub_8129538: @ 8129538
+ push {lr}
+ bl contest_ai_get_move_effect_type
+ ldr r0, _08129568
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812956C
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _08129570
+ 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 _08129574
+ .align 2, 0
+_08129568: .4byte 0x020192e4
+_0812956C: .4byte gUnknown_02039238
+_08129570:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08129574:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129538
+
+ thumb_func_start sub_8129578
+sub_8129578: @ 8129578
+ push {lr}
+ bl contest_ai_get_move_effect_type
+ ldr r0, _081295A8
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _081295AC
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _081295B0
+ 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 _081295B4
+ .align 2, 0
+_081295A8: .4byte 0x020192e4
+_081295AC: .4byte gUnknown_02039238
+_081295B0:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_081295B4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129578
+
+ thumb_func_start contest_ai_check_move_has_highest_appeal
+contest_ai_check_move_has_highest_appeal: @ 81295B8
+ push {r4-r7,lr}
+ ldr r2, _08129610
+ ldr r3, _08129614
+ ldrb r0, [r3, 0x4]
+ lsls r0, 1
+ adds r1, r3, 0
+ adds r1, 0x41
+ ldrb r1, [r1]
+ lsls r1, 6
+ adds r0, r1
+ adds r2, 0x1E
+ adds r0, r2
+ ldrh r0, [r0]
+ ldr r4, _08129618
+ ldr r5, _0812961C
+ lsls r0, 3
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r4
+ ldrb r7, [r0, 0x1]
+ movs r6, 0
+ ldr r0, _08129620
+ mov r12, r0
+ adds r1, r2
+_081295EA:
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _08129600
+ lsls r0, 3
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x1]
+ cmp r7, r0
+ bcc _08129608
+_08129600:
+ adds r1, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _081295EA
+_08129608:
+ cmp r6, 0x4
+ bne _08129624
+ movs r0, 0x1
+ b _08129626
+ .align 2, 0
+_08129610: .4byte gUnknown_02038570
+_08129614: .4byte 0x020192e4
+_08129618: .4byte gContestEffects
+_0812961C: .4byte gContestMoves
+_08129620: .4byte gUnknown_02039238
+_08129624:
+ movs r0, 0
+_08129626:
+ strh r0, [r3, 0x18]
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end contest_ai_check_move_has_highest_appeal
+
+ thumb_func_start sub_8129638
+sub_8129638: @ 8129638
+ push {lr}
+ bl contest_ai_check_move_has_highest_appeal
+ ldr r0, _08129664
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0812966C
+ ldr r3, _08129668
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129674
+ .align 2, 0
+_08129664: .4byte 0x020192e4
+_08129668: .4byte gUnknown_02039238
+_0812966C:
+ ldr r1, _08129678
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_08129674:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129678: .4byte gUnknown_02039238
+ thumb_func_end sub_8129638
+
+ thumb_func_start sub_812967C
+sub_812967C: @ 812967C
+ push {r4-r7,lr}
+ ldr r2, _081296D4
+ ldr r3, _081296D8
+ ldrb r0, [r3, 0x4]
+ lsls r0, 1
+ adds r1, r3, 0
+ adds r1, 0x41
+ ldrb r1, [r1]
+ lsls r1, 6
+ adds r0, r1
+ adds r2, 0x1E
+ adds r0, r2
+ ldrh r0, [r0]
+ ldr r4, _081296DC
+ ldr r5, _081296E0
+ lsls r0, 3
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r4
+ ldrb r7, [r0, 0x2]
+ movs r6, 0
+ ldr r0, _081296E4
+ mov r12, r0
+ adds r1, r2
+_081296AE:
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _081296C4
+ lsls r0, 3
+ adds r0, r5
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x2]
+ cmp r7, r0
+ bcc _081296CC
+_081296C4:
+ adds r1, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _081296AE
+_081296CC:
+ cmp r6, 0x4
+ bne _081296E8
+ movs r0, 0x1
+ b _081296EA
+ .align 2, 0
+_081296D4: .4byte gUnknown_02038570
+_081296D8: .4byte 0x020192e4
+_081296DC: .4byte gContestEffects
+_081296E0: .4byte gContestMoves
+_081296E4: .4byte gUnknown_02039238
+_081296E8:
+ movs r0, 0
+_081296EA:
+ strh r0, [r3, 0x18]
+ mov r1, r12
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812967C
+
+ thumb_func_start sub_81296FC
+sub_81296FC: @ 81296FC
+ push {lr}
+ bl sub_812967C
+ ldr r0, _08129728
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08129730
+ ldr r3, _0812972C
+ 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 _08129738
+ .align 2, 0
+_08129728: .4byte 0x020192e4
+_0812972C: .4byte gUnknown_02039238
+_08129730:
+ ldr r1, _0812973C
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08129738:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812973C: .4byte gUnknown_02039238
+ thumb_func_end sub_81296FC
+
+ thumb_func_start sub_8129740
+sub_8129740: @ 8129740
+ push {r4,lr}
+ ldr r2, _08129784
+ ldr r4, _08129788
+ ldrb r1, [r4, 0x4]
+ lsls r1, 1
+ adds r0, r4, 0
+ adds r0, 0x41
+ ldrb r0, [r0]
+ lsls r0, 6
+ adds r1, r0
+ adds r2, 0x1E
+ adds r1, r2
+ ldrh r0, [r1]
+ ldr r2, _0812978C
+ ldr r1, _08129790
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x18]
+ ldr r1, _08129794
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129784: .4byte gUnknown_02038570
+_08129788: .4byte 0x020192e4
+_0812978C: .4byte gContestEffects
+_08129790: .4byte gContestMoves
+_08129794: .4byte gUnknown_02039238
+ thumb_func_end sub_8129740
+
+ thumb_func_start sub_8129798
+sub_8129798: @ 8129798
+ push {lr}
+ bl sub_8129740
+ ldr r0, _081297C8
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _081297CC
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bge _081297D0
+ 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 _081297D4
+ .align 2, 0
+_081297C8: .4byte 0x020192e4
+_081297CC: .4byte gUnknown_02039238
+_081297D0:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_081297D4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129798
+
+ thumb_func_start sub_81297D8
+sub_81297D8: @ 81297D8
+ push {lr}
+ bl sub_8129740
+ ldr r0, _08129808
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812980C
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ ble _08129810
+ 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 _08129814
+ .align 2, 0
+_08129808: .4byte 0x020192e4
+_0812980C: .4byte gUnknown_02039238
+_08129810:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08129814:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81297D8
+
+ thumb_func_start sub_8129818
+sub_8129818: @ 8129818
+ push {lr}
+ bl sub_8129740
+ ldr r0, _08129848
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812984C
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _08129850
+ 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 _08129854
+ .align 2, 0
+_08129848: .4byte 0x020192e4
+_0812984C: .4byte gUnknown_02039238
+_08129850:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08129854:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129818
+
+ thumb_func_start sub_8129858
+sub_8129858: @ 8129858
+ push {lr}
+ bl sub_8129740
+ ldr r0, _08129888
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812988C
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _08129890
+ 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 _08129894
+ .align 2, 0
+_08129888: .4byte 0x020192e4
+_0812988C: .4byte gUnknown_02039238
+_08129890:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08129894:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129858
+
+ thumb_func_start sub_8129898
+sub_8129898: @ 8129898
+ push {r4,lr}
+ ldr r2, _081298DC
+ ldr r4, _081298E0
+ ldrb r1, [r4, 0x4]
+ lsls r1, 1
+ adds r0, r4, 0
+ adds r0, 0x41
+ ldrb r0, [r0]
+ lsls r0, 6
+ adds r1, r0
+ adds r2, 0x1E
+ adds r1, r2
+ ldrh r0, [r1]
+ ldr r2, _081298E4
+ ldr r1, _081298E8
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x18]
+ ldr r1, _081298EC
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081298DC: .4byte gUnknown_02038570
+_081298E0: .4byte 0x020192e4
+_081298E4: .4byte gContestEffects
+_081298E8: .4byte gContestMoves
+_081298EC: .4byte gUnknown_02039238
+ thumb_func_end sub_8129898
+
+ thumb_func_start sub_81298F0
+sub_81298F0: @ 81298F0
+ push {lr}
+ bl sub_8129898
+ ldr r0, _08129920
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08129924
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bge _08129928
+ 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 _0812992C
+ .align 2, 0
+_08129920: .4byte 0x020192e4
+_08129924: .4byte gUnknown_02039238
+_08129928:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812992C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81298F0
+
+ thumb_func_start sub_8129930
+sub_8129930: @ 8129930
+ push {lr}
+ bl sub_8129898
+ ldr r0, _08129960
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08129964
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ ble _08129968
+ 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 _0812996C
+ .align 2, 0
+_08129960: .4byte 0x020192e4
+_08129964: .4byte gUnknown_02039238
+_08129968:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812996C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129930
+
+ thumb_func_start sub_8129970
+sub_8129970: @ 8129970
+ push {lr}
+ bl sub_8129898
+ ldr r0, _081299A0
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _081299A4
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _081299A8
+ 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 _081299AC
+ .align 2, 0
+_081299A0: .4byte 0x020192e4
+_081299A4: .4byte gUnknown_02039238
+_081299A8:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_081299AC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129970
+
+ thumb_func_start sub_81299B0
+sub_81299B0: @ 81299B0
+ push {lr}
+ bl sub_8129898
+ ldr r0, _081299E0
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _081299E4
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _081299E8
+ 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 _081299EC
+ .align 2, 0
+_081299E0: .4byte 0x020192e4
+_081299E4: .4byte gUnknown_02039238
+_081299E8:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_081299EC:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81299B0
+
+ thumb_func_start contest_ai_get_move_used_count
+contest_ai_get_move_used_count: @ 81299F0
+ push {r4,lr}
+ ldr r3, _08129A20
+ ldr r4, _08129A24
+ ldrb r0, [r4, 0x4]
+ lsls r0, 1
+ adds r1, r4, 0
+ adds r1, 0x41
+ ldrb r2, [r1]
+ lsls r1, r2, 6
+ adds r0, r1
+ adds r3, 0x1E
+ adds r0, r3
+ ldrh r3, [r0]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r1, r4, 0
+ subs r1, 0x84
+ adds r0, r1
+ ldrh r1, [r0, 0x8]
+ cmp r3, r1
+ beq _08129A28
+ movs r0, 0
+ b _08129A30
+ .align 2, 0
+_08129A20: .4byte gUnknown_02038570
+_08129A24: .4byte 0x020192e4
+_08129A28:
+ ldrb r0, [r0, 0xB]
+ lsls r0, 25
+ lsrs r0, 29
+ adds r0, 0x1
+_08129A30:
+ strh r0, [r4, 0x18]
+ ldr r1, _08129A40
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129A40: .4byte gUnknown_02039238
+ thumb_func_end contest_ai_get_move_used_count
+
+ thumb_func_start sub_8129A44
+sub_8129A44: @ 8129A44
+ push {lr}
+ bl contest_ai_get_move_used_count
+ ldr r0, _08129A74
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08129A78
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bge _08129A7C
+ 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 _08129A80
+ .align 2, 0
+_08129A74: .4byte 0x020192e4
+_08129A78: .4byte gUnknown_02039238
+_08129A7C:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08129A80:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129A44
+
+ thumb_func_start sub_8129A84
+sub_8129A84: @ 8129A84
+ push {lr}
+ bl contest_ai_get_move_used_count
+ ldr r0, _08129AB4
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08129AB8
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ ble _08129ABC
+ 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 _08129AC0
+ .align 2, 0
+_08129AB4: .4byte 0x020192e4
+_08129AB8: .4byte gUnknown_02039238
+_08129ABC:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08129AC0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129A84
+
+ thumb_func_start sub_8129AC4
+sub_8129AC4: @ 8129AC4
+ push {lr}
+ bl contest_ai_get_move_used_count
+ ldr r0, _08129AF4
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08129AF8
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _08129AFC
+ 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 _08129B00
+ .align 2, 0
+_08129AF4: .4byte 0x020192e4
+_08129AF8: .4byte gUnknown_02039238
+_08129AFC:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08129B00:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129AC4
+
+ thumb_func_start sub_8129B04
+sub_8129B04: @ 8129B04
+ push {lr}
+ bl contest_ai_get_move_used_count
+ ldr r0, _08129B34
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08129B38
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _08129B3C
+ 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 _08129B40
+ .align 2, 0
+_08129B34: .4byte 0x020192e4
+_08129B38: .4byte gUnknown_02039238
+_08129B3C:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08129B40:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129B04
+
+ thumb_func_start contest_ai_check_combo_starter
+contest_ai_check_combo_starter: @ 8129B44
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r5, 0
+ ldr r3, _08129BAC
+ ldr r2, _08129BB0
+ ldrb r1, [r2, 0x4]
+ lsls r1, 1
+ adds r2, 0x41
+ ldrb r0, [r2]
+ lsls r0, 6
+ adds r1, r0
+ adds r3, 0x1E
+ adds r1, r3
+ ldrh r6, [r1]
+ movs r4, 0
+ mov r8, r2
+ adds r7, r3, 0
+_08129B68:
+ lsls r0, r4, 1
+ mov r2, r8
+ ldrb r1, [r2]
+ lsls r1, 6
+ adds r0, r1
+ adds r1, r0, r7
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _08129B8A
+ adds r1, r0, 0
+ adds r0, r6, 0
+ bl AreMovesContestCombo
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _08129B94
+_08129B8A:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08129B68
+ cmp r5, 0
+ beq _08129B96
+_08129B94:
+ movs r5, 0x1
+_08129B96:
+ ldr r0, _08129BB0
+ strh r5, [r0, 0x18]
+ ldr r1, _08129BB4
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129BAC: .4byte gUnknown_02038570
+_08129BB0: .4byte 0x020192e4
+_08129BB4: .4byte gUnknown_02039238
+ thumb_func_end contest_ai_check_combo_starter
+
+ thumb_func_start sub_8129BB8
+sub_8129BB8: @ 8129BB8
+ push {lr}
+ bl contest_ai_check_combo_starter
+ ldr r0, _08129BE4
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08129BEC
+ ldr r3, _08129BE8
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129BF4
+ .align 2, 0
+_08129BE4: .4byte 0x020192e4
+_08129BE8: .4byte gUnknown_02039238
+_08129BEC:
+ ldr r1, _08129BF8
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_08129BF4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129BF8: .4byte gUnknown_02039238
+ thumb_func_end sub_8129BB8
+
+ thumb_func_start sub_8129BFC
+sub_8129BFC: @ 8129BFC
+ push {lr}
+ bl contest_ai_check_combo_starter
+ ldr r0, _08129C28
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08129C30
+ ldr r3, _08129C2C
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129C38
+ .align 2, 0
+_08129C28: .4byte 0x020192e4
+_08129C2C: .4byte gUnknown_02039238
+_08129C30:
+ ldr r1, _08129C3C
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_08129C38:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129C3C: .4byte gUnknown_02039238
+ thumb_func_end sub_8129BFC
+
+ thumb_func_start contest_ai_check_combo_finisher
+contest_ai_check_combo_finisher: @ 8129C40
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r5, 0
+ ldr r3, _08129CA8
+ ldr r2, _08129CAC
+ ldrb r1, [r2, 0x4]
+ lsls r1, 1
+ adds r2, 0x41
+ ldrb r0, [r2]
+ lsls r0, 6
+ adds r1, r0
+ adds r3, 0x1E
+ adds r1, r3
+ ldrh r6, [r1]
+ movs r4, 0
+ mov r8, r2
+ adds r7, r3, 0
+_08129C64:
+ lsls r0, r4, 1
+ mov r2, r8
+ ldrb r1, [r2]
+ lsls r1, 6
+ adds r0, r1
+ adds r1, r0, r7
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _08129C84
+ adds r1, r6, 0
+ bl AreMovesContestCombo
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _08129C8E
+_08129C84:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08129C64
+ cmp r5, 0
+ beq _08129C90
+_08129C8E:
+ movs r5, 0x1
+_08129C90:
+ ldr r0, _08129CAC
+ strh r5, [r0, 0x18]
+ ldr r1, _08129CB0
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129CA8: .4byte gUnknown_02038570
+_08129CAC: .4byte 0x020192e4
+_08129CB0: .4byte gUnknown_02039238
+ thumb_func_end contest_ai_check_combo_finisher
+
+ thumb_func_start sub_8129CB4
+sub_8129CB4: @ 8129CB4
+ push {lr}
+ bl contest_ai_check_combo_finisher
+ ldr r0, _08129CE0
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08129CE8
+ ldr r3, _08129CE4
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129CF0
+ .align 2, 0
+_08129CE0: .4byte 0x020192e4
+_08129CE4: .4byte gUnknown_02039238
+_08129CE8:
+ ldr r1, _08129CF4
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_08129CF0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129CF4: .4byte gUnknown_02039238
+ thumb_func_end sub_8129CB4
+
+ thumb_func_start sub_8129CF8
+sub_8129CF8: @ 8129CF8
+ push {lr}
+ bl contest_ai_check_combo_finisher
+ ldr r0, _08129D24
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08129D2C
+ ldr r3, _08129D28
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129D34
+ .align 2, 0
+_08129D24: .4byte 0x020192e4
+_08129D28: .4byte gUnknown_02039238
+_08129D2C:
+ ldr r1, _08129D38
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_08129D34:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129D38: .4byte gUnknown_02039238
+ thumb_func_end sub_8129CF8
+
+ thumb_func_start contest_ai_check_would_finish_combo
+contest_ai_check_would_finish_combo: @ 8129D3C
+ push {r4,r5,lr}
+ movs r5, 0
+ ldr r3, _08129D8C
+ ldr r4, _08129D90
+ ldrb r0, [r4, 0x4]
+ lsls r0, 1
+ adds r1, r4, 0
+ adds r1, 0x41
+ ldrb r2, [r1]
+ lsls r1, r2, 6
+ adds r0, r1
+ adds r3, 0x1E
+ adds r0, r3
+ ldrh r3, [r0]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r1, r4, 0
+ subs r1, 0x84
+ adds r1, r0, r1
+ ldrh r0, [r1, 0x8]
+ cmp r0, 0
+ beq _08129D74
+ adds r1, r3, 0
+ bl AreMovesContestCombo
+ lsls r0, 24
+ lsrs r5, r0, 24
+_08129D74:
+ cmp r5, 0
+ beq _08129D7A
+ movs r5, 0x1
+_08129D7A:
+ strh r5, [r4, 0x18]
+ ldr r1, _08129D94
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129D8C: .4byte gUnknown_02038570
+_08129D90: .4byte 0x020192e4
+_08129D94: .4byte gUnknown_02039238
+ thumb_func_end contest_ai_check_would_finish_combo
+
+ thumb_func_start sub_8129D98
+sub_8129D98: @ 8129D98
+ push {lr}
+ bl contest_ai_check_would_finish_combo
+ ldr r0, _08129DC4
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08129DCC
+ ldr r3, _08129DC8
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129DD4
+ .align 2, 0
+_08129DC4: .4byte 0x020192e4
+_08129DC8: .4byte gUnknown_02039238
+_08129DCC:
+ ldr r1, _08129DD8
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_08129DD4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129DD8: .4byte gUnknown_02039238
+ thumb_func_end sub_8129D98
+
+ thumb_func_start sub_8129DDC
+sub_8129DDC: @ 8129DDC
+ push {lr}
+ bl contest_ai_check_would_finish_combo
+ ldr r0, _08129E08
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08129E10
+ ldr r3, _08129E0C
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08129E18
+ .align 2, 0
+_08129E08: .4byte 0x020192e4
+_08129E0C: .4byte gUnknown_02039238
+_08129E10:
+ ldr r1, _08129E1C
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_08129E18:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129E1C: .4byte gUnknown_02039238
+ thumb_func_end sub_8129DDC
+
+ thumb_func_start contest_ai_get_condition
+contest_ai_get_condition: @ 8129E20
+ push {r4,r5,lr}
+ ldr r4, _08129E5C
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8128A7C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _08129E60
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r0, r5, 0
+ subs r0, 0x84
+ adds r1, r0
+ movs r0, 0xD
+ ldrsb r0, [r1, r0]
+ movs r1, 0xA
+ bl __divsi3
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r5, 0x18]
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129E5C: .4byte gUnknown_02039238
+_08129E60: .4byte 0x020192e4
+ thumb_func_end contest_ai_get_condition
+
+ thumb_func_start sub_8129E64
+sub_8129E64: @ 8129E64
+ push {lr}
+ bl contest_ai_get_condition
+ ldr r0, _08129E94
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08129E98
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bge _08129E9C
+ 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 _08129EA0
+ .align 2, 0
+_08129E94: .4byte 0x020192e4
+_08129E98: .4byte gUnknown_02039238
+_08129E9C:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08129EA0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129E64
+
+ thumb_func_start sub_8129EA4
+sub_8129EA4: @ 8129EA4
+ push {lr}
+ bl contest_ai_get_condition
+ ldr r0, _08129ED4
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08129ED8
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ ble _08129EDC
+ 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 _08129EE0
+ .align 2, 0
+_08129ED4: .4byte 0x020192e4
+_08129ED8: .4byte gUnknown_02039238
+_08129EDC:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08129EE0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129EA4
+
+ thumb_func_start sub_8129EE4
+sub_8129EE4: @ 8129EE4
+ push {lr}
+ bl contest_ai_get_condition
+ ldr r0, _08129F14
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08129F18
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _08129F1C
+ 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 _08129F20
+ .align 2, 0
+_08129F14: .4byte 0x020192e4
+_08129F18: .4byte gUnknown_02039238
+_08129F1C:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08129F20:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129EE4
+
+ thumb_func_start sub_8129F24
+sub_8129F24: @ 8129F24
+ push {lr}
+ bl contest_ai_get_condition
+ ldr r0, _08129F54
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08129F58
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _08129F5C
+ 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 _08129F60
+ .align 2, 0
+_08129F54: .4byte 0x020192e4
+_08129F58: .4byte gUnknown_02039238
+_08129F5C:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08129F60:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129F24
+
+ thumb_func_start contest_ai_get_used_combo_starter
+contest_ai_get_used_combo_starter: @ 8129F64
+ push {r4-r6,lr}
+ movs r6, 0
+ ldr r5, _08129FAC
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8128A7C
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80B214C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08129F9C
+ ldr r2, _08129FB0
+ lsls r0, r4, 3
+ subs r0, r4
+ lsls r0, 2
+ ldr r1, _08129FB4
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ lsls r0, 3
+ adds r0, r2
+ ldrb r1, [r0, 0x2]
+ negs r0, r1
+ orrs r0, r1
+ lsrs r6, r0, 31
+_08129F9C:
+ ldr r0, _08129FB8
+ strh r6, [r0, 0x18]
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08129FAC: .4byte gUnknown_02039238
+_08129FB0: .4byte gContestMoves
+_08129FB4: .4byte 0x02019260
+_08129FB8: .4byte 0x020192e4
+ thumb_func_end contest_ai_get_used_combo_starter
+
+ thumb_func_start sub_8129FBC
+sub_8129FBC: @ 8129FBC
+ push {lr}
+ bl contest_ai_get_used_combo_starter
+ ldr r0, _08129FEC
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _08129FF0
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bge _08129FF4
+ 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 _08129FF8
+ .align 2, 0
+_08129FEC: .4byte 0x020192e4
+_08129FF0: .4byte gUnknown_02039238
+_08129FF4:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_08129FF8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129FBC
+
+ thumb_func_start sub_8129FFC
+sub_8129FFC: @ 8129FFC
+ push {lr}
+ bl contest_ai_get_used_combo_starter
+ ldr r0, _0812A02C
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812A030
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ ble _0812A034
+ 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 _0812A038
+ .align 2, 0
+_0812A02C: .4byte 0x020192e4
+_0812A030: .4byte gUnknown_02039238
+_0812A034:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812A038:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8129FFC
+
+ thumb_func_start sub_812A03C
+sub_812A03C: @ 812A03C
+ push {lr}
+ bl contest_ai_get_used_combo_starter
+ ldr r0, _0812A06C
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812A070
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _0812A074
+ 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 _0812A078
+ .align 2, 0
+_0812A06C: .4byte 0x020192e4
+_0812A070: .4byte gUnknown_02039238
+_0812A074:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812A078:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A03C
+
+ thumb_func_start sub_812A07C
+sub_812A07C: @ 812A07C
+ push {lr}
+ bl contest_ai_get_used_combo_starter
+ ldr r0, _0812A0AC
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812A0B0
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _0812A0B4
+ 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 _0812A0B8
+ .align 2, 0
+_0812A0AC: .4byte 0x020192e4
+_0812A0B0: .4byte gUnknown_02039238
+_0812A0B4:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812A0B8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A07C
+
+ thumb_func_start contest_ai_check_can_participate
+contest_ai_check_can_participate: @ 812A0BC
+ push {lr}
+ ldr r0, _0812A0DC
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ bl sub_8128A7C
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80AF59C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812A0E4
+ ldr r1, _0812A0E0
+ movs r0, 0
+ b _0812A0E8
+ .align 2, 0
+_0812A0DC: .4byte gUnknown_02039238
+_0812A0E0: .4byte 0x020192e4
+_0812A0E4:
+ ldr r1, _0812A0F8
+ movs r0, 0x1
+_0812A0E8:
+ strh r0, [r1, 0x18]
+ ldr r1, _0812A0FC
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A0F8: .4byte 0x020192e4
+_0812A0FC: .4byte gUnknown_02039238
+ thumb_func_end contest_ai_check_can_participate
+
+ thumb_func_start sub_812A100
+sub_812A100: @ 812A100
+ push {lr}
+ bl contest_ai_check_can_participate
+ ldr r0, _0812A12C
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0812A134
+ ldr r3, _0812A130
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A13C
+ .align 2, 0
+_0812A12C: .4byte 0x020192e4
+_0812A130: .4byte gUnknown_02039238
+_0812A134:
+ ldr r1, _0812A140
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812A13C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A140: .4byte gUnknown_02039238
+ thumb_func_end sub_812A100
+
+ thumb_func_start sub_812A144
+sub_812A144: @ 812A144
+ push {lr}
+ bl contest_ai_check_can_participate
+ ldr r0, _0812A170
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0812A178
+ ldr r3, _0812A174
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A180
+ .align 2, 0
+_0812A170: .4byte 0x020192e4
+_0812A174: .4byte gUnknown_02039238
+_0812A178:
+ ldr r1, _0812A184
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812A180:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A184: .4byte gUnknown_02039238
+ thumb_func_end sub_812A144
+
+ thumb_func_start contest_ai_get_val_812A188
+contest_ai_get_val_812A188: @ 812A188
+ push {r4,lr}
+ ldr r4, _0812A1BC
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8128A7C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0812A1C0
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r0, r2, 0
+ subs r0, 0x84
+ adds r1, r0
+ ldrb r0, [r1, 0x15]
+ lsls r0, 28
+ lsrs r0, 31
+ strh r0, [r2, 0x18]
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A1BC: .4byte gUnknown_02039238
+_0812A1C0: .4byte 0x020192e4
+ thumb_func_end contest_ai_get_val_812A188
+
+ thumb_func_start sub_812A1C4
+sub_812A1C4: @ 812A1C4
+ push {lr}
+ bl contest_ai_get_val_812A188
+ ldr r0, _0812A1F0
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0812A1F8
+ ldr r3, _0812A1F4
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A200
+ .align 2, 0
+_0812A1F0: .4byte 0x020192e4
+_0812A1F4: .4byte gUnknown_02039238
+_0812A1F8:
+ ldr r1, _0812A204
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812A200:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A204: .4byte gUnknown_02039238
+ thumb_func_end sub_812A1C4
+
+ thumb_func_start sub_812A208
+sub_812A208: @ 812A208
+ push {lr}
+ bl contest_ai_get_val_812A188
+ ldr r0, _0812A234
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0812A23C
+ ldr r3, _0812A238
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A244
+ .align 2, 0
+_0812A234: .4byte 0x020192e4
+_0812A238: .4byte gUnknown_02039238
+_0812A23C:
+ ldr r1, _0812A248
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812A244:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A248: .4byte gUnknown_02039238
+ thumb_func_end sub_812A208
+
+ thumb_func_start sub_812A24C
+sub_812A24C: @ 812A24C
+ push {r4,r5,lr}
+ ldr r5, _0812A28C
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8128A7C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0812A290
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r4, r3, 0
+ subs r4, 0x84
+ adds r1, r4
+ adds r0, r3, 0
+ adds r0, 0x41
+ ldrb r2, [r0]
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r1, 0x4]
+ ldrh r0, [r0, 0x4]
+ subs r1, r0
+ strh r1, [r3, 0x18]
+ ldr r0, [r5]
+ adds r0, 0x2
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A28C: .4byte gUnknown_02039238
+_0812A290: .4byte 0x020192e4
+ thumb_func_end sub_812A24C
+
+ thumb_func_start sub_812A294
+sub_812A294: @ 812A294
+ push {lr}
+ bl sub_812A24C
+ ldr r0, _0812A2C0
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _0812A2C8
+ ldr r3, _0812A2C4
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A2D0
+ .align 2, 0
+_0812A2C0: .4byte 0x020192e4
+_0812A2C4: .4byte gUnknown_02039238
+_0812A2C8:
+ ldr r1, _0812A2D4
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812A2D0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A2D4: .4byte gUnknown_02039238
+ thumb_func_end sub_812A294
+
+ thumb_func_start sub_812A2D8
+sub_812A2D8: @ 812A2D8
+ push {lr}
+ bl sub_812A24C
+ ldr r0, _0812A304
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ ble _0812A30C
+ ldr r3, _0812A308
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A314
+ .align 2, 0
+_0812A304: .4byte 0x020192e4
+_0812A308: .4byte gUnknown_02039238
+_0812A30C:
+ ldr r1, _0812A318
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812A314:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A318: .4byte gUnknown_02039238
+ thumb_func_end sub_812A2D8
+
+ thumb_func_start sub_812A31C
+sub_812A31C: @ 812A31C
+ push {lr}
+ bl sub_812A24C
+ ldr r0, _0812A348
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0812A350
+ ldr r3, _0812A34C
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A358
+ .align 2, 0
+_0812A348: .4byte 0x020192e4
+_0812A34C: .4byte gUnknown_02039238
+_0812A350:
+ ldr r1, _0812A35C
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812A358:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A35C: .4byte gUnknown_02039238
+ thumb_func_end sub_812A31C
+
+ thumb_func_start sub_812A360
+sub_812A360: @ 812A360
+ push {lr}
+ bl sub_812A24C
+ ldr r0, _0812A38C
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0812A394
+ ldr r3, _0812A390
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A39C
+ .align 2, 0
+_0812A38C: .4byte 0x020192e4
+_0812A390: .4byte gUnknown_02039238
+_0812A394:
+ ldr r1, _0812A3A0
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812A39C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A3A0: .4byte gUnknown_02039238
+ thumb_func_end sub_812A360
+
+ thumb_func_start sub_812A3A4
+sub_812A3A4: @ 812A3A4
+ push {r4,lr}
+ ldr r4, _0812A3D8
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8128A7C
+ lsls r0, 24
+ ldr r3, _0812A3DC
+ ldr r2, _0812A3E0
+ lsrs r0, 23
+ adds r0, r2
+ adds r1, r3, 0
+ adds r1, 0x41
+ ldrb r1, [r1]
+ lsls r1, 1
+ adds r1, r2
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ subs r0, r1
+ strh r0, [r3, 0x18]
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A3D8: .4byte gUnknown_02039238
+_0812A3DC: .4byte 0x020192e4
+_0812A3E0: .4byte gUnknown_02038670
+ thumb_func_end sub_812A3A4
+
+ thumb_func_start sub_812A3E4
+sub_812A3E4: @ 812A3E4
+ push {lr}
+ bl sub_812A3A4
+ ldr r0, _0812A410
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _0812A418
+ ldr r3, _0812A414
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A420
+ .align 2, 0
+_0812A410: .4byte 0x020192e4
+_0812A414: .4byte gUnknown_02039238
+_0812A418:
+ ldr r1, _0812A424
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812A420:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A424: .4byte gUnknown_02039238
+ thumb_func_end sub_812A3E4
+
+ thumb_func_start sub_812A428
+sub_812A428: @ 812A428
+ push {lr}
+ bl sub_812A3A4
+ ldr r0, _0812A454
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ ble _0812A45C
+ ldr r3, _0812A458
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A464
+ .align 2, 0
+_0812A454: .4byte 0x020192e4
+_0812A458: .4byte gUnknown_02039238
+_0812A45C:
+ ldr r1, _0812A468
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812A464:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A468: .4byte gUnknown_02039238
+ thumb_func_end sub_812A428
+
+ thumb_func_start sub_812A46C
+sub_812A46C: @ 812A46C
+ push {lr}
+ bl sub_812A3A4
+ ldr r0, _0812A498
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0812A4A0
+ ldr r3, _0812A49C
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A4A8
+ .align 2, 0
+_0812A498: .4byte 0x020192e4
+_0812A49C: .4byte gUnknown_02039238
+_0812A4A0:
+ ldr r1, _0812A4AC
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812A4A8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A4AC: .4byte gUnknown_02039238
+ thumb_func_end sub_812A46C
+
+ thumb_func_start sub_812A4B0
+sub_812A4B0: @ 812A4B0
+ push {lr}
+ bl sub_812A3A4
+ ldr r0, _0812A4DC
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0812A4E4
+ ldr r3, _0812A4E0
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812A4EC
+ .align 2, 0
+_0812A4DC: .4byte 0x020192e4
+_0812A4E0: .4byte gUnknown_02039238
+_0812A4E4:
+ ldr r1, _0812A4F0
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812A4EC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A4F0: .4byte gUnknown_02039238
+ thumb_func_end sub_812A4B0
+
+ thumb_func_start sub_812A4F4
+sub_812A4F4: @ 812A4F4
+ push {r4,lr}
+ ldr r4, _0812A52C
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8128A7C
+ lsls r0, 24
+ ldr r3, [r4]
+ ldrb r1, [r3, 0x2]
+ ldr r2, _0812A530
+ lsrs r0, 23
+ lsls r1, 3
+ adds r0, r1
+ adds r1, r2, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r2, 0xE0
+ ldr r1, _0812A534
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r2, 0x18]
+ adds r3, 0x3
+ str r3, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A52C: .4byte gUnknown_02039238
+_0812A530: .4byte 0x02019204
+_0812A534: .4byte gContestMoves
+ thumb_func_end sub_812A4F4
+
+ thumb_func_start sub_812A538
+sub_812A538: @ 812A538
+ push {lr}
+ bl sub_812A4F4
+ ldr r0, _0812A568
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812A56C
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bge _0812A570
+ 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 _0812A574
+ .align 2, 0
+_0812A568: .4byte 0x020192e4
+_0812A56C: .4byte gUnknown_02039238
+_0812A570:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812A574:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A538
+
+ thumb_func_start sub_812A578
+sub_812A578: @ 812A578
+ push {lr}
+ bl sub_812A4F4
+ ldr r0, _0812A5A8
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812A5AC
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ ble _0812A5B0
+ 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 _0812A5B4
+ .align 2, 0
+_0812A5A8: .4byte 0x020192e4
+_0812A5AC: .4byte gUnknown_02039238
+_0812A5B0:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812A5B4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A578
+
+ thumb_func_start sub_812A5B8
+sub_812A5B8: @ 812A5B8
+ push {lr}
+ bl sub_812A4F4
+ ldr r0, _0812A5E8
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812A5EC
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _0812A5F0
+ 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 _0812A5F4
+ .align 2, 0
+_0812A5E8: .4byte 0x020192e4
+_0812A5EC: .4byte gUnknown_02039238
+_0812A5F0:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812A5F4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A5B8
+
+ thumb_func_start sub_812A5F8
+sub_812A5F8: @ 812A5F8
+ push {lr}
+ bl sub_812A4F4
+ ldr r0, _0812A628
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812A62C
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _0812A630
+ 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 _0812A634
+ .align 2, 0
+_0812A628: .4byte 0x020192e4
+_0812A62C: .4byte gUnknown_02039238
+_0812A630:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812A634:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A5F8
+
+ thumb_func_start sub_812A638
+sub_812A638: @ 812A638
+ push {r4,lr}
+ ldr r4, _0812A66C
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ bl sub_8128A7C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, [r4]
+ ldrb r1, [r3, 0x2]
+ ldr r2, _0812A670
+ lsls r1, 2
+ adds r0, r1
+ adds r1, r2, 0
+ adds r1, 0x44
+ adds r0, r1
+ adds r2, 0xE0
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r2, 0x18]
+ adds r3, 0x3
+ str r3, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A66C: .4byte gUnknown_02039238
+_0812A670: .4byte 0x02019204
+ thumb_func_end sub_812A638
+
+ thumb_func_start sub_812A674
+sub_812A674: @ 812A674
+ push {lr}
+ bl sub_812A638
+ ldr r0, _0812A6A4
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812A6A8
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bge _0812A6AC
+ 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 _0812A6B0
+ .align 2, 0
+_0812A6A4: .4byte 0x020192e4
+_0812A6A8: .4byte gUnknown_02039238
+_0812A6AC:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812A6B0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A674
+
+ thumb_func_start sub_812A6B4
+sub_812A6B4: @ 812A6B4
+ push {lr}
+ bl sub_812A638
+ ldr r0, _0812A6E4
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812A6E8
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ ble _0812A6EC
+ 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 _0812A6F0
+ .align 2, 0
+_0812A6E4: .4byte 0x020192e4
+_0812A6E8: .4byte gUnknown_02039238
+_0812A6EC:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812A6F0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A6B4
+
+ thumb_func_start sub_812A6F4
+sub_812A6F4: @ 812A6F4
+ push {lr}
+ bl sub_812A638
+ ldr r0, _0812A724
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812A728
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _0812A72C
+ 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 _0812A730
+ .align 2, 0
+_0812A724: .4byte 0x020192e4
+_0812A728: .4byte gUnknown_02039238
+_0812A72C:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812A730:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A6F4
+
+ thumb_func_start sub_812A734
+sub_812A734: @ 812A734
+ push {lr}
+ bl sub_812A638
+ ldr r0, _0812A764
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812A768
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _0812A76C
+ 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 _0812A770
+ .align 2, 0
+_0812A764: .4byte 0x020192e4
+_0812A768: .4byte gUnknown_02039238
+_0812A76C:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812A770:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A734
+
+ thumb_func_start sub_812A774
+sub_812A774: @ 812A774
+ push {r4,r5,lr}
+ ldr r5, _0812A7B4
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1]
+ bl sub_8128A7C
+ lsls r0, 24
+ ldr r3, [r5]
+ ldrb r1, [r3, 0x2]
+ ldr r2, _0812A7B8
+ lsrs r0, 23
+ lsls r1, 3
+ adds r0, r1
+ adds r1, r2, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r2, 0xE0
+ ldr r4, _0812A7BC
+ ldr r1, _0812A7C0
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0]
+ strh r0, [r2, 0x18]
+ adds r3, 0x3
+ str r3, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A7B4: .4byte gUnknown_02039238
+_0812A7B8: .4byte 0x02019204
+_0812A7BC: .4byte gContestEffects
+_0812A7C0: .4byte gContestMoves
+ thumb_func_end sub_812A774
+
+ thumb_func_start sub_812A7C4
+sub_812A7C4: @ 812A7C4
+ push {lr}
+ bl sub_812A774
+ ldr r0, _0812A7F4
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812A7F8
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ bne _0812A7FC
+ 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 _0812A800
+ .align 2, 0
+_0812A7F4: .4byte 0x020192e4
+_0812A7F8: .4byte gUnknown_02039238
+_0812A7FC:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812A800:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A7C4
+
+ thumb_func_start sub_812A804
+sub_812A804: @ 812A804
+ push {lr}
+ bl sub_812A774
+ ldr r0, _0812A834
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ ldr r3, _0812A838
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ cmp r0, r1
+ beq _0812A83C
+ 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 _0812A840
+ .align 2, 0
+_0812A834: .4byte 0x020192e4
+_0812A838: .4byte gUnknown_02039238
+_0812A83C:
+ adds r0, r2, 0x5
+ str r0, [r3]
+_0812A840:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A804
+
+ thumb_func_start sub_812A844
+sub_812A844: @ 812A844
+ push {r4,lr}
+ ldr r3, _0812A864
+ ldr r4, _0812A868
+ ldr r2, [r4]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 1
+ adds r1, r3, 0
+ adds r1, 0x1A
+ adds r0, r1
+ ldrh r1, [r3, 0x18]
+ strh r1, [r0]
+ adds r2, 0x2
+ str r2, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A864: .4byte 0x020192e4
+_0812A868: .4byte gUnknown_02039238
+ thumb_func_end sub_812A844
+
+ thumb_func_start sub_812A86C
+sub_812A86C: @ 812A86C
+ push {r4,lr}
+ ldr r0, _0812A890
+ ldr r4, _0812A894
+ ldr r3, [r4]
+ ldrb r2, [r3, 0x1]
+ lsls r2, 1
+ adds r0, 0x1A
+ adds r2, r0
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ adds r3, 0x4
+ str r3, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A890: .4byte 0x020192e4
+_0812A894: .4byte gUnknown_02039238
+ thumb_func_end sub_812A86C
+
+ thumb_func_start sub_812A898
+sub_812A898: @ 812A898
+ push {r4,lr}
+ ldr r0, _0812A8C4
+ ldr r4, _0812A8C8
+ ldr r3, [r4]
+ ldrb r2, [r3, 0x1]
+ lsls r2, 1
+ adds r0, 0x1A
+ adds r2, r0
+ movs r1, 0x2
+ ldrsb r1, [r3, r1]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrh r0, [r2]
+ adds r1, r0
+ strh r1, [r2]
+ adds r3, 0x4
+ str r3, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A8C4: .4byte 0x020192e4
+_0812A8C8: .4byte gUnknown_02039238
+ thumb_func_end sub_812A898
+
+ thumb_func_start sub_812A8CC
+sub_812A8CC: @ 812A8CC
+ push {r4,lr}
+ ldr r2, _0812A8F4
+ ldr r4, _0812A8F8
+ ldr r3, [r4]
+ ldrb r1, [r3, 0x1]
+ lsls r1, 1
+ adds r2, 0x1A
+ adds r1, r2
+ ldrb r0, [r3, 0x2]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+ adds r3, 0x3
+ str r3, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A8F4: .4byte 0x020192e4
+_0812A8F8: .4byte gUnknown_02039238
+ thumb_func_end sub_812A8CC
+
+ thumb_func_start sub_812A8FC
+sub_812A8FC: @ 812A8FC
+ push {r4,lr}
+ ldr r2, _0812A924
+ ldr r4, _0812A928
+ ldr r3, [r4]
+ ldrb r1, [r3, 0x1]
+ lsls r1, 1
+ adds r2, 0x1A
+ adds r1, r2
+ ldrb r0, [r3, 0x2]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ ldrh r2, [r1]
+ adds r0, r2
+ strh r0, [r1]
+ adds r3, 0x3
+ str r3, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812A924: .4byte 0x020192e4
+_0812A928: .4byte gUnknown_02039238
+ thumb_func_end sub_812A8FC
+
+ thumb_func_start sub_812A92C
+sub_812A92C: @ 812A92C
+ push {r4,lr}
+ ldr r1, _0812A964
+ ldr r4, _0812A968
+ ldr r3, [r4]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 1
+ adds r1, 0x1A
+ adds r0, r1
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ cmp r2, r1
+ bge _0812A96C
+ ldrb r1, [r3, 0x4]
+ ldrb r0, [r3, 0x5]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x6]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x7]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _0812A972
+ .align 2, 0
+_0812A964: .4byte 0x020192e4
+_0812A968: .4byte gUnknown_02039238
+_0812A96C:
+ adds r0, r3, 0
+ adds r0, 0x8
+ str r0, [r4]
+_0812A972:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A92C
+
+ thumb_func_start sub_812A978
+sub_812A978: @ 812A978
+ push {r4,lr}
+ ldr r1, _0812A9B0
+ ldr r4, _0812A9B4
+ ldr r3, [r4]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 1
+ adds r1, 0x1A
+ adds r0, r1
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ cmp r2, r1
+ ble _0812A9B8
+ ldrb r1, [r3, 0x4]
+ ldrb r0, [r3, 0x5]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x6]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x7]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _0812A9BE
+ .align 2, 0
+_0812A9B0: .4byte 0x020192e4
+_0812A9B4: .4byte gUnknown_02039238
+_0812A9B8:
+ adds r0, r3, 0
+ adds r0, 0x8
+ str r0, [r4]
+_0812A9BE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A978
+
+ thumb_func_start sub_812A9C4
+sub_812A9C4: @ 812A9C4
+ push {r4,lr}
+ ldr r1, _0812A9FC
+ ldr r4, _0812AA00
+ ldr r3, [r4]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 1
+ adds r1, 0x1A
+ adds r0, r1
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ cmp r2, r1
+ bne _0812AA04
+ ldrb r1, [r3, 0x4]
+ ldrb r0, [r3, 0x5]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x6]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x7]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _0812AA0A
+ .align 2, 0
+_0812A9FC: .4byte 0x020192e4
+_0812AA00: .4byte gUnknown_02039238
+_0812AA04:
+ adds r0, r3, 0
+ adds r0, 0x8
+ str r0, [r4]
+_0812AA0A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812A9C4
+
+ thumb_func_start sub_812AA10
+sub_812AA10: @ 812AA10
+ push {r4,lr}
+ ldr r1, _0812AA48
+ ldr r4, _0812AA4C
+ ldr r3, [r4]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 1
+ adds r1, 0x1A
+ adds r0, r1
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ cmp r2, r1
+ beq _0812AA50
+ ldrb r1, [r3, 0x4]
+ ldrb r0, [r3, 0x5]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x6]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x7]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _0812AA56
+ .align 2, 0
+_0812AA48: .4byte 0x020192e4
+_0812AA4C: .4byte gUnknown_02039238
+_0812AA50:
+ adds r0, r3, 0
+ adds r0, 0x8
+ str r0, [r4]
+_0812AA56:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812AA10
+
+ thumb_func_start sub_812AA5C
+sub_812AA5C: @ 812AA5C
+ push {r4,lr}
+ ldr r2, _0812AA98
+ ldr r4, _0812AA9C
+ ldr r3, [r4]
+ ldrb r1, [r3, 0x1]
+ lsls r1, 1
+ adds r2, 0x1A
+ adds r1, r2
+ ldrb r0, [r3, 0x2]
+ lsls r0, 1
+ adds r0, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r1, r0
+ bge _0812AAA0
+ ldrb r1, [r3, 0x3]
+ ldrb r0, [r3, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _0812AAA4
+ .align 2, 0
+_0812AA98: .4byte 0x020192e4
+_0812AA9C: .4byte gUnknown_02039238
+_0812AAA0:
+ adds r0, r3, 0x7
+ str r0, [r4]
+_0812AAA4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812AA5C
+
+ thumb_func_start sub_812AAAC
+sub_812AAAC: @ 812AAAC
+ push {r4,lr}
+ ldr r2, _0812AAE8
+ ldr r4, _0812AAEC
+ ldr r3, [r4]
+ ldrb r1, [r3, 0x1]
+ lsls r1, 1
+ adds r2, 0x1A
+ adds r1, r2
+ ldrb r0, [r3, 0x2]
+ lsls r0, 1
+ adds r0, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r1, r0
+ ble _0812AAF0
+ ldrb r1, [r3, 0x3]
+ ldrb r0, [r3, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _0812AAF4
+ .align 2, 0
+_0812AAE8: .4byte 0x020192e4
+_0812AAEC: .4byte gUnknown_02039238
+_0812AAF0:
+ adds r0, r3, 0x7
+ str r0, [r4]
+_0812AAF4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812AAAC
+
+ thumb_func_start sub_812AAFC
+sub_812AAFC: @ 812AAFC
+ push {r4,lr}
+ ldr r2, _0812AB38
+ ldr r4, _0812AB3C
+ ldr r3, [r4]
+ ldrb r1, [r3, 0x1]
+ lsls r1, 1
+ adds r2, 0x1A
+ adds r1, r2
+ ldrb r0, [r3, 0x2]
+ lsls r0, 1
+ adds r0, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r1, r0
+ bne _0812AB40
+ ldrb r1, [r3, 0x3]
+ ldrb r0, [r3, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _0812AB44
+ .align 2, 0
+_0812AB38: .4byte 0x020192e4
+_0812AB3C: .4byte gUnknown_02039238
+_0812AB40:
+ adds r0, r3, 0x7
+ str r0, [r4]
+_0812AB44:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812AAFC
+
+ thumb_func_start sub_812AB4C
+sub_812AB4C: @ 812AB4C
+ push {r4,lr}
+ ldr r2, _0812AB88
+ ldr r4, _0812AB8C
+ ldr r3, [r4]
+ ldrb r1, [r3, 0x1]
+ lsls r1, 1
+ adds r2, 0x1A
+ adds r1, r2
+ ldrb r0, [r3, 0x2]
+ lsls r0, 1
+ adds r0, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r1, r0
+ beq _0812AB90
+ ldrb r1, [r3, 0x3]
+ ldrb r0, [r3, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _0812AB94
+ .align 2, 0
+_0812AB88: .4byte 0x020192e4
+_0812AB8C: .4byte gUnknown_02039238
+_0812AB90:
+ adds r0, r3, 0x7
+ str r0, [r4]
+_0812AB94:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812AB4C
+
+ thumb_func_start sub_812AB9C
+sub_812AB9C: @ 812AB9C
+ push {r4,lr}
+ bl Random
+ movs r2, 0xFF
+ ands r2, r0
+ ldr r1, _0812ABD4
+ ldr r4, _0812ABD8
+ ldr r3, [r4]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 1
+ adds r1, 0x1A
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r2, r0
+ bge _0812ABDC
+ 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 _0812ABE0
+ .align 2, 0
+_0812ABD4: .4byte 0x020192e4
+_0812ABD8: .4byte gUnknown_02039238
+_0812ABDC:
+ adds r0, r3, 0x6
+ str r0, [r4]
+_0812ABE0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812AB9C
+
+ thumb_func_start sub_812ABE8
+sub_812ABE8: @ 812ABE8
+ push {r4,lr}
+ bl Random
+ movs r2, 0xFF
+ ands r2, r0
+ ldr r1, _0812AC20
+ ldr r4, _0812AC24
+ ldr r3, [r4]
+ ldrb r0, [r3, 0x1]
+ lsls r0, 1
+ adds r1, 0x1A
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r2, r0
+ ble _0812AC28
+ 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 _0812AC2C
+ .align 2, 0
+_0812AC20: .4byte 0x020192e4
+_0812AC24: .4byte gUnknown_02039238
+_0812AC28:
+ adds r0, r3, 0x6
+ str r0, [r4]
+_0812AC2C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812ABE8
+
+ thumb_func_start sub_812AC34
+sub_812AC34: @ 812AC34
+ ldr r3, _0812AC50
+ 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
+_0812AC50: .4byte gUnknown_02039238
+ thumb_func_end sub_812AC34
+
+ thumb_func_start sub_812AC54
+sub_812AC54: @ 812AC54
+ push {r4,lr}
+ ldr r4, _0812AC80
+ ldr r0, [r4]
+ adds r0, 0x5
+ bl sub_812ACA4
+ 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
+_0812AC80: .4byte gUnknown_02039238
+ thumb_func_end sub_812AC54
+
+ thumb_func_start sub_812AC84
+sub_812AC84: @ 812AC84
+ push {lr}
+ bl sub_812ACC8
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812AC9A
+ ldr r2, _0812ACA0
+ ldrb r1, [r2, 0x9]
+ movs r0, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x9]
+_0812AC9A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812ACA0: .4byte 0x020192e4
+ thumb_func_end sub_812AC84
+
+ thumb_func_start sub_812ACA4
+sub_812ACA4: @ 812ACA4
+ push {r4,lr}
+ ldr r3, _0812ACC4
+ adds r4, r3, 0
+ adds r4, 0x40
+ ldrb r1, [r4]
+ adds r2, r1, 0x1
+ strb r2, [r4]
+ lsls r1, 24
+ lsrs r1, 22
+ adds r3, 0x20
+ adds r1, r3
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812ACC4: .4byte 0x020192e4
+ thumb_func_end sub_812ACA4
+
+ thumb_func_start sub_812ACC8
+sub_812ACC8: @ 812ACC8
+ push {lr}
+ ldr r1, _0812ACDC
+ adds r3, r1, 0
+ adds r3, 0x40
+ ldrb r0, [r3]
+ cmp r0, 0
+ bne _0812ACE0
+ movs r0, 0
+ b _0812ACF4
+ .align 2, 0
+_0812ACDC: .4byte 0x020192e4
+_0812ACE0:
+ subs r0, 0x1
+ strb r0, [r3]
+ ldr r2, _0812ACF8
+ ldrb r0, [r3]
+ lsls r0, 2
+ adds r1, 0x20
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ movs r0, 0x1
+_0812ACF4:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0812ACF8: .4byte gUnknown_02039238
+ thumb_func_end sub_812ACC8
+
+ thumb_func_start contest_ai_check_for_exciting_move
+contest_ai_check_for_exciting_move: @ 812ACFC
+ push {r4-r7,lr}
+ movs r5, 0
+ movs r4, 0
+ ldr r7, _0812AD28
+ ldr r6, _0812AD2C
+_0812AD06:
+ lsls r0, r4, 1
+ ldrb r1, [r7]
+ lsls r1, 6
+ adds r0, r1
+ adds r1, r0, r6
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _0812AD30
+ bl contest_get_move_excitement
+ lsls r0, 24
+ asrs r0, 24
+ cmp r0, 0x1
+ bne _0812AD30
+ movs r5, 0x1
+ b _0812AD36
+ .align 2, 0
+_0812AD28: .4byte 0x02019325
+_0812AD2C: .4byte gUnknown_0203858E
+_0812AD30:
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0812AD06
+_0812AD36:
+ ldr r0, _0812AD48
+ strh r5, [r0, 0x18]
+ ldr r1, _0812AD4C
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812AD48: .4byte 0x020192e4
+_0812AD4C: .4byte gUnknown_02039238
+ thumb_func_end contest_ai_check_for_exciting_move
+
+ thumb_func_start sub_812AD50
+sub_812AD50: @ 812AD50
+ push {lr}
+ bl contest_ai_check_for_exciting_move
+ ldr r0, _0812AD7C
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0812AD84
+ ldr r3, _0812AD80
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812AD8C
+ .align 2, 0
+_0812AD7C: .4byte 0x020192e4
+_0812AD80: .4byte gUnknown_02039238
+_0812AD84:
+ ldr r1, _0812AD90
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812AD8C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812AD90: .4byte gUnknown_02039238
+ thumb_func_end sub_812AD50
+
+ thumb_func_start sub_812AD94
+sub_812AD94: @ 812AD94
+ push {lr}
+ bl contest_ai_check_for_exciting_move
+ ldr r0, _0812ADC0
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0812ADC8
+ ldr r3, _0812ADC4
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812ADD0
+ .align 2, 0
+_0812ADC0: .4byte 0x020192e4
+_0812ADC4: .4byte gUnknown_02039238
+_0812ADC8:
+ ldr r1, _0812ADD4
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812ADD0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812ADD4: .4byte gUnknown_02039238
+ thumb_func_end sub_812AD94
+
+ thumb_func_start sub_812ADD8
+sub_812ADD8: @ 812ADD8
+ push {r4-r7,lr}
+ movs r6, 0
+ ldr r2, _0812AE08
+ ldr r0, [r2]
+ ldrb r4, [r0, 0x1]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 8
+ orrs r4, r0
+ movs r3, 0
+ ldr r0, _0812AE0C
+ mov r12, r0
+ ldr r5, _0812AE10
+ adds r0, r5, 0
+ adds r0, 0x41
+ ldrb r0, [r0]
+ lsls r0, 6
+ mov r1, r12
+ adds r1, 0x1E
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r7, r2, 0
+ mov r2, r12
+ mov r12, r5
+ b _0812AE2E
+ .align 2, 0
+_0812AE08: .4byte gUnknown_02039238
+_0812AE0C: .4byte gUnknown_02038570
+_0812AE10: .4byte 0x020192e4
+_0812AE14:
+ adds r3, 0x1
+ cmp r3, 0x3
+ bgt _0812AE34
+ lsls r1, r3, 1
+ mov r0, r12
+ adds r0, 0x41
+ ldrb r0, [r0]
+ lsls r0, 6
+ adds r1, r0
+ adds r0, r2, 0
+ adds r0, 0x1E
+ adds r1, r0
+ ldrh r0, [r1]
+_0812AE2E:
+ cmp r0, r4
+ bne _0812AE14
+ movs r6, 0x1
+_0812AE34:
+ mov r0, r12
+ strh r6, [r0, 0x18]
+ ldr r0, [r7]
+ adds r0, 0x3
+ str r0, [r7]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812ADD8
+
+ thumb_func_start sub_812AE44
+sub_812AE44: @ 812AE44
+ push {lr}
+ bl sub_812ADD8
+ ldr r0, _0812AE70
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0812AE78
+ ldr r3, _0812AE74
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812AE80
+ .align 2, 0
+_0812AE70: .4byte 0x020192e4
+_0812AE74: .4byte gUnknown_02039238
+_0812AE78:
+ ldr r1, _0812AE84
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812AE80:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812AE84: .4byte gUnknown_02039238
+ thumb_func_end sub_812AE44
+
+ thumb_func_start sub_812AE88
+sub_812AE88: @ 812AE88
+ push {lr}
+ bl sub_812ADD8
+ ldr r0, _0812AEB4
+ movs r1, 0x18
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0812AEBC
+ ldr r3, _0812AEB8
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ ldrb r0, [r2, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x2]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0812AEC4
+ .align 2, 0
+_0812AEB4: .4byte 0x020192e4
+_0812AEB8: .4byte gUnknown_02039238
+_0812AEBC:
+ ldr r1, _0812AEC8
+ ldr r0, [r1]
+ adds r0, 0x4
+ str r0, [r1]
+_0812AEC4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812AEC8: .4byte gUnknown_02039238
+ thumb_func_end sub_812AE88
+
+ thumb_func_start unref_sub_812AECC
+unref_sub_812AECC: @ 812AECC
+ push {lr}
+ bl sub_812613C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r0, 0
+ cmp r0, 0x1
+ beq _0812AEEA
+ cmp r0, 0x1
+ ble _0812AF08
+ cmp r1, 0x2
+ beq _0812AEF4
+ cmp r1, 0x3
+ beq _0812AEFA
+ b _0812AF08
+_0812AEEA:
+ movs r0, 0x16
+ bl PlaySE
+ movs r0, 0x1
+ b _0812AF0A
+_0812AEF4:
+ bl sub_812AF10
+ b _0812AF08
+_0812AEFA:
+ movs r0, 0x16
+ bl PlaySE
+ bl sub_812AF10
+ movs r0, 0x1
+ b _0812AF0A
+_0812AF08:
+ movs r0, 0
+_0812AF0A:
+ pop {r1}
+ bx r1
+ thumb_func_end unref_sub_812AECC
+
+ thumb_func_start sub_812AF10
+sub_812AF10: @ 812AF10
+ push {lr}
+ movs r0, 0x2
+ movs r1, 0xE
+ movs r2, 0x1B
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _0812AF2C
+ movs r1, 0x3
+ movs r2, 0xF
+ bl MenuPrint
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812AF2C: .4byte gStringVar4
+ thumb_func_end sub_812AF10
+
+ thumb_func_start sub_812AF30
+sub_812AF30: @ 812AF30
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0812AF8C
+ lsls r6, r0, 2
+ adds r6, r0
+ lsls r6, 3
+ adds r6, r1
+ ldr r1, _0812AF90
+ ldrh r0, [r1]
+ strh r0, [r6, 0x8]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r6, 0xA]
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r5, r0, 0
+ lsls r4, 24
+ asrs r4, 24
+ lsls r5, 24
+ asrs r5, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x2
+ bl sub_807712C
+ strh r4, [r6, 0xC]
+ strh r5, [r6, 0xE]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r6, 0x10]
+ movs r0, 0xA
+ strh r0, [r6, 0x1C]
+ ldr r0, _0812AF94
+ str r0, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812AF8C: .4byte gTasks
+_0812AF90: .4byte gUnknown_03004B00
+_0812AF94: .4byte sub_812AF98
+ thumb_func_end sub_812AF30
+
+ thumb_func_start sub_812AF98
+sub_812AF98: @ 812AF98
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0812AFC8
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r5, [r4, 0xC]
+ ldrb r6, [r4, 0x10]
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6F
+ bne _0812AFD0
+ movs r0, 0x5
+ strh r0, [r4, 0x1C]
+ strh r1, [r4, 0x1E]
+ ldr r0, _0812AFCC
+ str r0, [r4]
+ b _0812AFFE
+ .align 2, 0
+_0812AFC8: .4byte gTasks
+_0812AFCC: .4byte sub_812B004
+_0812AFD0:
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ bne _0812AFEA
+ strh r1, [r4, 0x1C]
+ ldrh r0, [r4, 0x8]
+ lsls r1, r5, 24
+ asrs r1, 24
+ bl PlaySE12WithPanning
+_0812AFEA:
+ lsls r1, r6, 24
+ asrs r1, 24
+ lsls r0, r5, 16
+ asrs r0, 16
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_8077104
+ strh r0, [r4, 0xC]
+_0812AFFE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812AF98
+
+ thumb_func_start sub_812B004
+sub_812B004: @ 812B004
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0812B054
+ lsls r0, r5, 2
+ adds r0, r5
+ 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, 0x6
+ bne _0812B04C
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r1, r0, 0
+ ldrh r0, [r4, 0xA]
+ lsls r1, 24
+ asrs r1, 24
+ bl PlaySE12WithPanning
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x1
+ strh r0, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _0812B04C
+ adds r0, r5, 0
+ bl move_anim_related_task_del
+_0812B04C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B054: .4byte gTasks
+ thumb_func_end sub_812B004
+
+ thumb_func_start sub_812B058
+sub_812B058: @ 812B058
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r8, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _0812B0FC
+ ldrh r1, [r0]
+ str r1, [sp]
+ ldrb r5, [r0, 0x4]
+ ldrb r6, [r0, 0x6]
+ ldrb r3, [r0, 0x8]
+ mov r10, r3
+ ldrb r7, [r0, 0xA]
+ ldrb r1, [r0, 0xC]
+ mov r9, r1
+ ldrb r0, [r0, 0x2]
+ lsls r0, 24
+ asrs r0, 24
+ bl sub_8076F98
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ asrs r5, 24
+ adds r0, r5, 0
+ bl sub_8076F98
+ adds r5, r0, 0
+ lsls r4, 24
+ asrs r4, 24
+ lsls r5, 24
+ asrs r5, 24
+ lsls r6, 24
+ asrs r6, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_807712C
+ ldr r2, _0812B100
+ mov r3, r8
+ lsls r1, r3, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ mov r6, sp
+ ldrh r6, [r6]
+ strh r6, [r1, 0x8]
+ strh r4, [r1, 0xA]
+ strh r5, [r1, 0xC]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r1, 0xE]
+ mov r0, r10
+ strh r0, [r1, 0x10]
+ strh r7, [r1, 0x12]
+ mov r3, r9
+ strh r3, [r1, 0x14]
+ strh r2, [r1, 0x1C]
+ strh r4, [r1, 0x1E]
+ strh r3, [r1, 0x20]
+ ldr r2, _0812B104
+ str r2, [r1]
+ mov r0, r8
+ bl _call_via_r2
+ 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
+_0812B0FC: .4byte gUnknown_03004B00
+_0812B100: .4byte gTasks
+_0812B104: .4byte sub_812B108
+ thumb_func_end sub_812B058
+
+ thumb_func_start sub_812B108
+sub_812B108: @ 812B108
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0812B14C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x20]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x14
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _0812B150
+ movs r0, 0
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x8]
+ movs r1, 0x1E
+ ldrsb r1, [r4, r1]
+ bl PlaySE12WithPanning
+ ldrh r0, [r4, 0x10]
+ subs r0, 0x1
+ strh r0, [r4, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0812B150
+ adds r0, r5, 0
+ bl move_anim_related_task_del
+ b _0812B182
+ .align 2, 0
+_0812B14C: .4byte gTasks
+_0812B150:
+ ldr r1, _0812B188
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ bne _0812B182
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r0, [r4, 0xE]
+ ldrh r1, [r4, 0x1E]
+ adds r0, r1
+ strh r0, [r4, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r4, r2]
+ bl sub_8077104
+ strh r0, [r4, 0x1E]
+_0812B182:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B188: .4byte gTasks
+ thumb_func_end sub_812B108
+
+ thumb_func_start sub_812B18C
+sub_812B18C: @ 812B18C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812B1CC
+ ldr r0, _0812B1BC
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0812B1C4
+ ldr r0, _0812B1C0
+ ldrh r4, [r0]
+ b _0812B272
+ .align 2, 0
+_0812B1BC: .4byte gUnknown_03004B00
+_0812B1C0: .4byte 0x02019348
+_0812B1C4:
+ adds r0, r5, 0
+ bl move_anim_task_del
+ b _0812B272
+_0812B1CC:
+ ldr r0, _0812B1E0
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r2, r0, 0
+ cmp r1, 0
+ bne _0812B1E8
+ ldr r0, _0812B1E4
+ ldrb r4, [r0]
+ b _0812B20E
+ .align 2, 0
+_0812B1E0: .4byte gUnknown_03004B00
+_0812B1E4: .4byte gUnknown_0202F7C8
+_0812B1E8:
+ cmp r1, 0x1
+ bne _0812B1F8
+ ldr r0, _0812B1F4
+ ldrb r4, [r0]
+ b _0812B20E
+ .align 2, 0
+_0812B1F4: .4byte gUnknown_0202F7C9
+_0812B1F8:
+ cmp r1, 0x2
+ bne _0812B204
+ ldr r0, _0812B200
+ b _0812B206
+ .align 2, 0
+_0812B200: .4byte gUnknown_0202F7C8
+_0812B204:
+ ldr r0, _0812B230
+_0812B206:
+ ldrb r1, [r0]
+ movs r0, 0x2
+ adds r4, r0, 0
+ eors r4, r1
+_0812B20E:
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ beq _0812B21A
+ cmp r0, 0x3
+ bne _0812B234
+_0812B21A:
+ adds r0, r4, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812B234
+ adds r0, r5, 0
+ bl move_anim_task_del
+ b _0812B2B0
+ .align 2, 0
+_0812B230: .4byte gUnknown_0202F7C9
+_0812B234:
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812B258
+ ldr r1, _0812B250
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0812B254
+ b _0812B266
+ .align 2, 0
+_0812B250: .4byte gUnknown_02024A6A
+_0812B254: .4byte gEnemyParty
+_0812B258:
+ ldr r1, _0812B290
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0812B294
+_0812B266:
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0812B272:
+ cmp r4, 0
+ beq _0812B2AA
+ ldr r0, _0812B298
+ ldrh r2, [r0, 0x2]
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ cmp r0, 0xFF
+ bne _0812B29C
+ lsls r1, r6, 24
+ asrs r1, 24
+ adds r0, r4, 0
+ bl PlayCry1
+ b _0812B2AA
+ .align 2, 0
+_0812B290: .4byte gUnknown_02024A6A
+_0812B294: .4byte gPlayerParty
+_0812B298: .4byte gUnknown_03004B00
+_0812B29C:
+ lsls r1, r6, 24
+ asrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ bl PlayCry3
+_0812B2AA:
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0812B2B0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B18C
+
+ thumb_func_start sub_812B2B8
+sub_812B2B8: @ 812B2B8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812B2DC
+ ldr r0, _0812B2D8
+ b _0812B2E6
+ .align 2, 0
+_0812B2D8: .4byte 0x02019348
+_0812B2DC:
+ ldr r1, _0812B304
+ ldr r0, _0812B308
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+_0812B2E6:
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0812B2F6
+ lsls r1, r4, 24
+ asrs r1, 24
+ movs r2, 0x4
+ bl PlayCry3
+_0812B2F6:
+ adds r0, r5, 0
+ bl move_anim_task_del
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B304: .4byte gUnknown_0202F7CA
+_0812B308: .4byte gUnknown_0202F7C8
+ thumb_func_end sub_812B2B8
+
+ thumb_func_start sub_812B30C
+sub_812B30C: @ 812B30C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0812B33C
+ ldrh r5, [r0]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 24
+ asrs r0, 24
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, r5, 0
+ bl PlaySE1WithPanning
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B33C: .4byte gUnknown_03004B00
+ thumb_func_end sub_812B30C
+
+ thumb_func_start sub_812B340
+sub_812B340: @ 812B340
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0812B370
+ ldrh r5, [r0]
+ ldrb r0, [r0, 0x2]
+ lsls r0, 24
+ asrs r0, 24
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, r5, 0
+ bl PlaySE2WithPanning
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B370: .4byte gUnknown_03004B00
+ thumb_func_end sub_812B340
+
+ thumb_func_start sub_812B374
+sub_812B374: @ 812B374
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ mov r8, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _0812B3F8
+ ldrb r5, [r0, 0x2]
+ ldrb r6, [r0, 0x4]
+ ldrh r1, [r0, 0x6]
+ mov r9, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ bl sub_8076F98
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ asrs r5, 24
+ adds r0, r5, 0
+ bl sub_8076F98
+ adds r5, r0, 0
+ lsls r4, 24
+ asrs r4, 24
+ lsls r5, 24
+ asrs r5, 24
+ lsls r6, 24
+ asrs r6, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_807712C
+ ldr r2, _0812B3FC
+ mov r3, r8
+ lsls r1, r3, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0
+ strh r4, [r1, 0xA]
+ strh r5, [r1, 0xC]
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r1, 0xE]
+ mov r0, r9
+ strh r0, [r1, 0x12]
+ strh r2, [r1, 0x1C]
+ strh r4, [r1, 0x1E]
+ ldr r2, _0812B400
+ str r2, [r1]
+ mov r0, r8
+ bl _call_via_r2
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B3F8: .4byte gUnknown_03004B00
+_0812B3FC: .4byte gTasks
+_0812B400: .4byte sub_812B404
+ thumb_func_end sub_812B374
+
+ thumb_func_start sub_812B404
+sub_812B404: @ 812B404
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _0812B45C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r2, [r4, 0xE]
+ ldrh r0, [r4, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ movs r3, 0x12
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bne _0812B43E
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ adds r0, r2, r1
+ strh r0, [r4, 0x1E]
+ movs r2, 0x1E
+ ldrsh r0, [r4, r2]
+ bl sub_8077104
+ strh r0, [r4, 0x1E]
+_0812B43E:
+ ldr r1, _0812B460
+ ldrh r0, [r4, 0x1E]
+ strb r0, [r1]
+ movs r3, 0x1E
+ ldrsh r1, [r4, r3]
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _0812B456
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0812B456:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B45C: .4byte gTasks
+_0812B460: .4byte gUnknown_0202F7D2
+ thumb_func_end sub_812B404
+
+ thumb_func_start unref_sub_812B464
+unref_sub_812B464: @ 812B464
+ bx lr
+ thumb_func_end unref_sub_812B464
+
+ thumb_func_start sub_812B468
+sub_812B468: @ 812B468
+ ldr r1, _0812B478
+ ldr r0, _0812B47C
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0812B480
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_0812B478: .4byte gUnknown_03004330
+_0812B47C: .4byte gUnknown_02024A60
+_0812B480: .4byte sub_812B484
+ thumb_func_end sub_812B468
+
+ thumb_func_start sub_812B484
+sub_812B484: @ 812B484
+ push {lr}
+ ldr r2, _0812B4B8
+ ldr r1, _0812B4BC
+ ldr r0, _0812B4C0
+ ldrb r3, [r0]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r2]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0812B4D0
+ ldr r0, _0812B4C4
+ lsls r1, r3, 9
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x38
+ bhi _0812B4CC
+ ldr r0, _0812B4C8
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+ b _0812B4D0
+ .align 2, 0
+_0812B4B8: .4byte gUnknown_02024A64
+_0812B4BC: .4byte gBitTable
+_0812B4C0: .4byte gUnknown_02024A60
+_0812B4C4: .4byte gUnknown_02023A60
+_0812B4C8: .4byte gUnknown_08402080
+_0812B4CC:
+ bl dp01_tbl6_exec_completed
+_0812B4D0:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B484
+
+ thumb_func_start bx_battle_menu_t6_2
+bx_battle_menu_t6_2: @ 812B4D4
+ push {r4,r5,lr}
+ ldr r0, _0812B508
+ ldrh r1, [r0, 0x2E]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0812B546
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_814A7FC
+ ldr r1, _0812B50C
+ ldr r0, _0812B510
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0812B524
+ cmp r0, 0x1
+ bgt _0812B514
+ cmp r0, 0
+ beq _0812B51E
+ b _0812B540
+ .align 2, 0
+_0812B508: .4byte gMain
+_0812B50C: .4byte gUnknown_02024E60
+_0812B510: .4byte gUnknown_02024A60
+_0812B514:
+ cmp r0, 0x2
+ beq _0812B52A
+ cmp r0, 0x3
+ beq _0812B536
+ b _0812B540
+_0812B51E:
+ movs r0, 0x1
+ movs r1, 0x5
+ b _0812B52E
+_0812B524:
+ movs r0, 0x1
+ movs r1, 0x6
+ b _0812B52E
+_0812B52A:
+ movs r0, 0x1
+ movs r1, 0x7
+_0812B52E:
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ b _0812B540
+_0812B536:
+ movs r0, 0x1
+ movs r1, 0x8
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+_0812B540:
+ bl dp01_tbl6_exec_completed
+ b _0812B64E
+_0812B546:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0812B584
+ ldr r5, _0812B57C
+ ldr r4, _0812B580
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0812B64E
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl nullsub_8
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r2, 0x1
+ b _0812B5F2
+ .align 2, 0
+_0812B57C: .4byte gUnknown_02024E60
+_0812B580: .4byte gUnknown_02024A60
+_0812B584:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0812B5C0
+ ldr r5, _0812B5B8
+ ldr r4, _0812B5BC
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0812B64E
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl nullsub_8
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r2, 0x1
+ b _0812B5F2
+ .align 2, 0
+_0812B5B8: .4byte gUnknown_02024E60
+_0812B5BC: .4byte gUnknown_02024A60
+_0812B5C0:
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0812B60C
+ ldr r5, _0812B604
+ ldr r4, _0812B608
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0812B64E
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl nullsub_8
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r2, 0x2
+_0812B5F2:
+ eors r0, r2
+ strb r0, [r1]
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_802E3E4
+ b _0812B64E
+ .align 2, 0
+_0812B604: .4byte gUnknown_02024E60
+_0812B608: .4byte gUnknown_02024A60
+_0812B60C:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0812B64E
+ ldr r5, _0812B654
+ ldr r4, _0812B658
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0812B64E
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl nullsub_8
+ ldrb r1, [r4]
+ adds r1, r5
+ ldrb r0, [r1]
+ movs r2, 0x2
+ eors r0, r2
+ strb r0, [r1]
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_802E3E4
+_0812B64E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B654: .4byte gUnknown_02024E60
+_0812B658: .4byte gUnknown_02024A60
+ thumb_func_end bx_battle_menu_t6_2
+
+ thumb_func_start sub_812B65C
+sub_812B65C: @ 812B65C
+ push {lr}
+ ldr r2, _0812B684
+ ldr r1, _0812B688
+ ldr r0, _0812B68C
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _0812B690
+ cmp r1, r0
+ bne _0812B680
+ bl dp01_tbl6_exec_completed
+_0812B680:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B684: .4byte gSprites
+_0812B688: .4byte gUnknown_02024BE0
+_0812B68C: .4byte gUnknown_02024A60
+_0812B690: .4byte SpriteCallbackDummy
+ thumb_func_end sub_812B65C
+
+ thumb_func_start sub_812B694
+sub_812B694: @ 812B694
+ push {lr}
+ ldr r0, _0812B6A8
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ bne _0812B6A2
+ bl dp01_tbl6_exec_completed
+_0812B6A2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B6A8: .4byte gUnknown_03004210
+ thumb_func_end sub_812B694
+
+ thumb_func_start sub_812B6AC
+sub_812B6AC: @ 812B6AC
+ push {lr}
+ ldr r0, _0812B6DC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0812B6D6
+ ldr r2, _0812B6E0
+ ldr r0, _0812B6E4
+ adds r3, r2, r0
+ ldrb r1, [r3]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldr r0, _0812B6E8
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r0, [r2, 0x8]
+ bl SetMainCallback2
+_0812B6D6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B6DC: .4byte gPaletteFade
+_0812B6E0: .4byte gMain
+_0812B6E4: .4byte 0x0000043d
+_0812B6E8: .4byte gUnknown_030042D0
+ thumb_func_end sub_812B6AC
+
+ thumb_func_start bx_wait_t6
+bx_wait_t6: @ 812B6EC
+ push {lr}
+ ldr r0, _0812B718
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0812B70E
+ ldr r0, _0812B71C
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0812B720
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _0812B712
+_0812B70E:
+ bl dp01_tbl6_exec_completed
+_0812B712:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B718: .4byte gUnknown_02024E6D
+_0812B71C: .4byte gUnknown_02024A60
+_0812B720: .4byte 0x02017810
+ thumb_func_end bx_wait_t6
+
+ thumb_func_start sub_812B724
+sub_812B724: @ 812B724
+ push {lr}
+ ldr r0, _0812B748
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0812B744
+ ldr r1, _0812B74C
+ ldr r0, _0812B750
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0812B754
+ str r1, [r0]
+ bl sub_810BADC
+_0812B744:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B748: .4byte gPaletteFade
+_0812B74C: .4byte gUnknown_03004330
+_0812B750: .4byte gUnknown_02024A60
+_0812B754: .4byte sub_812B758
+ thumb_func_end sub_812B724
+
+ thumb_func_start sub_812B758
+sub_812B758: @ 812B758
+ push {lr}
+ ldr r0, _0812B784
+ ldr r1, [r0, 0x4]
+ ldr r0, _0812B788
+ cmp r1, r0
+ bne _0812B77E
+ ldr r0, _0812B78C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0812B77E
+ ldr r0, _0812B790
+ ldrh r1, [r0]
+ movs r0, 0x1
+ bl dp01_build_cmdbuf_x23_aa_0
+ bl dp01_tbl6_exec_completed
+_0812B77E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B784: .4byte gMain
+_0812B788: .4byte sub_800F808
+_0812B78C: .4byte gPaletteFade
+_0812B790: .4byte word_203855E
+ thumb_func_end sub_812B758
+
+ thumb_func_start sub_812B794
+sub_812B794: @ 812B794
+ push {lr}
+ ldr r0, _0812B7B8
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0812B7BC
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0812B7B2
+ bl dp01_tbl6_exec_completed
+_0812B7B2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B7B8: .4byte gUnknown_02024A60
+_0812B7BC: .4byte 0x02017810
+ thumb_func_end sub_812B794
+
+ thumb_func_start dp01_tbl6_exec_completed
+dp01_tbl6_exec_completed: @ 812B7C0
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _0812B800
+ ldr r4, _0812B804
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0812B808
+ str r1, [r0]
+ ldr r0, _0812B80C
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0812B814
+ bl GetMultiplayerId
+ mov r1, sp
+ strb r0, [r1]
+ movs r0, 0x2
+ movs r1, 0x4
+ mov r2, sp
+ bl dp01_prepare_buffer_wireless_probably
+ ldr r1, _0812B810
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r0, r1
+ movs r1, 0x38
+ strb r1, [r0]
+ b _0812B826
+ .align 2, 0
+_0812B800: .4byte gUnknown_03004330
+_0812B804: .4byte gUnknown_02024A60
+_0812B808: .4byte sub_812B484
+_0812B80C: .4byte gUnknown_020239F8
+_0812B810: .4byte gUnknown_02023A60
+_0812B814:
+ ldr r2, _0812B830
+ ldr r1, _0812B834
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+_0812B826:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B830: .4byte gUnknown_02024A64
+_0812B834: .4byte gBitTable
+ thumb_func_end dp01_tbl6_exec_completed
+
+ thumb_func_start unref_sub_812B838
+unref_sub_812B838: @ 812B838
+ push {lr}
+ ldr r0, _0812B85C
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0812B860
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0812B856
+ bl dp01_tbl6_exec_completed
+_0812B856:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B85C: .4byte gUnknown_02024A60
+_0812B860: .4byte 0x02017810
+ thumb_func_end unref_sub_812B838
+
+ thumb_func_start sub_812B864
+sub_812B864: @ 812B864
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B864
+
+ thumb_func_start sub_812B870
+sub_812B870: @ 812B870
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B870
+
+ thumb_func_start sub_812B87C
+sub_812B87C: @ 812B87C
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B87C
+
+ thumb_func_start sub_812B888
+sub_812B888: @ 812B888
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B888
+
+ thumb_func_start sub_812B894
+sub_812B894: @ 812B894
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B894
+
+ thumb_func_start sub_812B8A0
+sub_812B8A0: @ 812B8A0
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B8A0
+
+ thumb_func_start sub_812B8AC
+sub_812B8AC: @ 812B8AC
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B8AC
+
+ thumb_func_start sub_812B8B8
+sub_812B8B8: @ 812B8B8
+ push {r4-r6,lr}
+ ldr r4, _0812B96C
+ ldrb r0, [r4, 0x8]
+ ldr r5, _0812B970
+ ldrb r1, [r5]
+ bl sub_8031AF4
+ ldrb r6, [r4, 0x8]
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl GetMonSpriteTemplate_803C5A0
+ ldr r0, _0812B974
+ ldr r2, _0812B978
+ ldrb r1, [r4, 0x8]
+ lsls r1, 2
+ adds r1, r2
+ 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, 0x50
+ movs r3, 0x1E
+ bl CreateSprite
+ ldr r6, _0812B97C
+ ldrb r1, [r5]
+ adds r1, r6
+ strb r0, [r1]
+ ldr r4, _0812B980
+ ldrb r3, [r5]
+ adds r0, r3, r6
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ lsls r3, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0xF0
+ strh r1, [r0, 0x24]
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _0812B984
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, 0x1C
+ adds r0, r4
+ ldr r1, _0812B988
+ str r1, [r0]
+ ldr r1, _0812B98C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0812B990
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812B96C: .4byte gSaveBlock2
+_0812B970: .4byte gUnknown_02024A60
+_0812B974: .4byte gUnknown_02024E8C
+_0812B978: .4byte gTrainerBackPicCoords
+_0812B97C: .4byte gUnknown_02024BE0
+_0812B980: .4byte gSprites
+_0812B984: .4byte 0x0000fffe
+_0812B988: .4byte sub_80313A0
+_0812B98C: .4byte gUnknown_03004330
+_0812B990: .4byte sub_812B65C
+ thumb_func_end sub_812B8B8
+
+ thumb_func_start sub_812B994
+sub_812B994: @ 812B994
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B994
+
+ thumb_func_start sub_812B9A0
+sub_812B9A0: @ 812B9A0
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B9A0
+
+ thumb_func_start sub_812B9AC
+sub_812B9AC: @ 812B9AC
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B9AC
+
+ thumb_func_start sub_812B9B8
+sub_812B9B8: @ 812B9B8
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812B9B8
+
+ thumb_func_start sub_812B9C4
+sub_812B9C4: @ 812B9C4
+ push {r4,r5,lr}
+ ldr r1, _0812BA00
+ movs r0, 0x4
+ strb r0, [r1, 0x8]
+ ldr r1, _0812BA04
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r5, _0812BA08
+ ldrb r4, [r5]
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ adds r1, r4, 0
+ movs r3, 0x4
+ bl move_anim_start_t4
+ ldr r1, _0812BA0C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0812BA10
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BA00: .4byte 0x02017840
+_0812BA04: .4byte gUnknown_02024E6D
+_0812BA08: .4byte gUnknown_02024A60
+_0812BA0C: .4byte gUnknown_03004330
+_0812BA10: .4byte bx_wait_t6
+ thumb_func_end sub_812B9C4
+
+ thumb_func_start sub_812BA14
+sub_812BA14: @ 812BA14
+ push {r4,r5,lr}
+ ldr r1, _0812BA58
+ ldr r5, _0812BA5C
+ ldrb r0, [r5]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r0, _0812BA60
+ strb r1, [r0, 0x8]
+ ldr r1, _0812BA64
+ movs r0, 0x1
+ strb r0, [r1]
+ ldrb r4, [r5]
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ adds r1, r4, 0
+ movs r3, 0x4
+ bl move_anim_start_t4
+ ldr r1, _0812BA68
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0812BA6C
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BA58: .4byte gUnknown_02023A60
+_0812BA5C: .4byte gUnknown_02024A60
+_0812BA60: .4byte 0x02017840
+_0812BA64: .4byte gUnknown_02024E6D
+_0812BA68: .4byte gUnknown_03004330
+_0812BA6C: .4byte bx_wait_t6
+ thumb_func_end sub_812BA14
+
+ thumb_func_start sub_812BA70
+sub_812BA70: @ 812BA70
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BA70
+
+ thumb_func_start sub_812BA7C
+sub_812BA7C: @ 812BA7C
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BA7C
+
+ thumb_func_start dp01t_10_6_message
+dp01t_10_6_message: @ 812BA88
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _0812BACC
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _0812BAD0
+ strh r1, [r0]
+ ldr r4, _0812BAD4
+ ldrb r0, [r4]
+ lsls r0, 9
+ ldr r1, _0812BAD8
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_8120AA8
+ ldr r0, _0812BADC
+ ldr r1, _0812BAE0
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _0812BAE4
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0812BAE8
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BACC: .4byte gUnknown_030042A4
+_0812BAD0: .4byte gUnknown_030042A0
+_0812BAD4: .4byte gUnknown_02024A60
+_0812BAD8: .4byte gUnknown_02023A62
+_0812BADC: .4byte gUnknown_03004210
+_0812BAE0: .4byte gUnknown_020238CC
+_0812BAE4: .4byte gUnknown_03004330
+_0812BAE8: .4byte sub_812B694
+ thumb_func_end dp01t_10_6_message
+
+ thumb_func_start dp01t_11_6_message_for_player_only
+dp01t_11_6_message_for_player_only: @ 812BAEC
+ push {lr}
+ ldr r0, _0812BB04
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812BB08
+ bl dp01t_10_6_message
+ b _0812BB0C
+ .align 2, 0
+_0812BB04: .4byte gUnknown_02024A60
+_0812BB08:
+ bl dp01_tbl6_exec_completed
+_0812BB0C:
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_11_6_message_for_player_only
+
+ thumb_func_start sub_812BB10
+sub_812BB10: @ 812BB10
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r0, _0812BBCC
+ movs r2, 0
+ strh r2, [r0]
+ ldr r1, _0812BBD0
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r4, _0812BBD4
+ movs r5, 0
+ strb r2, [r4, 0x6]
+ movs r0, 0x1B
+ str r0, [sp]
+ movs r0, 0x12
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0x2
+ movs r3, 0xF
+ bl FillWindowRect_DefaultPalette
+ movs r0, 0x10
+ str r0, [sp]
+ movs r0, 0x24
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0x2
+ movs r3, 0x23
+ bl FillWindowRect_DefaultPalette
+ ldr r1, _0812BBD8
+ ldr r0, _0812BBDC
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0812BBE0
+ str r1, [r0]
+ ldr r1, _0812BBE4
+ movs r2, 0xC8
+ lsls r2, 1
+ movs r0, 0x23
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x12
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ ldr r1, _0812BBE8
+ ldr r3, _0812BBEC
+ str r5, [sp]
+ movs r0, 0
+ movs r2, 0xC
+ bl sub_814A5C0
+ movs r4, 0
+_0812BB84:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl nullsub_8
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0812BB84
+ ldr r1, _0812BBF0
+ ldr r0, _0812BBDC
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_802E3E4
+ ldr r0, _0812BBF4
+ bl get_battle_strings_
+ ldr r4, _0812BBD4
+ ldr r1, _0812BBF8
+ movs r2, 0xDC
+ lsls r2, 1
+ movs r0, 0x23
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x2
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BBCC: .4byte gUnknown_030042A4
+_0812BBD0: .4byte gUnknown_030042A0
+_0812BBD4: .4byte gUnknown_03004210
+_0812BBD8: .4byte gUnknown_03004330
+_0812BBDC: .4byte gUnknown_02024A60
+_0812BBE0: .4byte bx_battle_menu_t6_2
+_0812BBE4: .4byte gUnknown_08400D15
+_0812BBE8: .4byte 0x0000ffff
+_0812BBEC: .4byte 0x00002d9f
+_0812BBF0: .4byte gUnknown_02024E60
+_0812BBF4: .4byte gUnknown_08400CBB
+_0812BBF8: .4byte gUnknown_020238CC
+ thumb_func_end sub_812BB10
+
+ thumb_func_start sub_812BBFC
+sub_812BBFC: @ 812BBFC
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BBFC
+
+ thumb_func_start sub_812BC08
+sub_812BC08: @ 812BC08
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BC08
+
+ thumb_func_start sub_812BC14
+sub_812BC14: @ 812BC14
+ 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, _0812BC44
+ ldr r2, _0812BC48
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _0812BC4C
+ str r1, [r0]
+ ldr r1, _0812BC50
+ ldrb r0, [r2]
+ strb r0, [r1]
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BC44: .4byte gUnknown_03004330
+_0812BC48: .4byte gUnknown_02024A60
+_0812BC4C: .4byte sub_812B724
+_0812BC50: .4byte gUnknown_02024E6C
+ thumb_func_end sub_812BC14
+
+ thumb_func_start sub_812BC54
+sub_812BC54: @ 812BC54
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BC54
+
+ thumb_func_start sub_812BC60
+sub_812BC60: @ 812BC60
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BC60
+
+ thumb_func_start sub_812BC6C
+sub_812BC6C: @ 812BC6C
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BC6C
+
+ thumb_func_start sub_812BC78
+sub_812BC78: @ 812BC78
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BC78
+
+ thumb_func_start sub_812BC84
+sub_812BC84: @ 812BC84
+ push {lr}
+ ldr r0, _0812BCB0
+ ldr r1, _0812BCB4
+ ldrb r1, [r1]
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ ldr r2, _0812BCB8
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _0812BCBC
+ adds r1, r2
+ movs r2, 0xB
+ bl sub_8045A5C
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BCB0: .4byte gUnknown_03004340
+_0812BCB4: .4byte gUnknown_02024A60
+_0812BCB8: .4byte gUnknown_02024A6A
+_0812BCBC: .4byte gPlayerParty
+ thumb_func_end sub_812BC84
+
+ thumb_func_start sub_812BCC0
+sub_812BCC0: @ 812BCC0
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BCC0
+
+ thumb_func_start sub_812BCCC
+sub_812BCCC: @ 812BCCC
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BCCC
+
+ thumb_func_start sub_812BCD8
+sub_812BCD8: @ 812BCD8
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BCD8
+
+ thumb_func_start sub_812BCE4
+sub_812BCE4: @ 812BCE4
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BCE4
+
+ thumb_func_start sub_812BCF0
+sub_812BCF0: @ 812BCF0
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BCF0
+
+ thumb_func_start sub_812BCFC
+sub_812BCFC: @ 812BCFC
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BCFC
+
+ thumb_func_start sub_812BD08
+sub_812BD08: @ 812BD08
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD08
+
+ thumb_func_start sub_812BD14
+sub_812BD14: @ 812BD14
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD14
+
+ thumb_func_start sub_812BD20
+sub_812BD20: @ 812BD20
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD20
+
+ thumb_func_start sub_812BD2C
+sub_812BD2C: @ 812BD2C
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD2C
+
+ thumb_func_start sub_812BD38
+sub_812BD38: @ 812BD38
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD38
+
+ thumb_func_start sub_812BD44
+sub_812BD44: @ 812BD44
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD44
+
+ thumb_func_start sub_812BD50
+sub_812BD50: @ 812BD50
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD50
+
+ thumb_func_start sub_812BD5C
+sub_812BD5C: @ 812BD5C
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD5C
+
+ thumb_func_start sub_812BD68
+sub_812BD68: @ 812BD68
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD68
+
+ thumb_func_start sub_812BD74
+sub_812BD74: @ 812BD74
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BD74
+
+ thumb_func_start sub_812BD80
+sub_812BD80: @ 812BD80
+ push {r4,lr}
+ ldr r4, _0812BDBC
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r3, 0x3F
+ cmp r0, 0
+ bne _0812BD94
+ movs r3, 0xC0
+_0812BD94:
+ ldr r2, _0812BDC0
+ ldrb r1, [r4]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ lsls r1, r3, 24
+ asrs r1, 24
+ bl PlaySE12WithPanning
+ bl dp01_tbl6_exec_completed
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BDBC: .4byte gUnknown_02024A60
+_0812BDC0: .4byte gUnknown_02023A60
+ thumb_func_end sub_812BD80
+
+ thumb_func_start sub_812BDC4
+sub_812BDC4: @ 812BDC4
+ push {lr}
+ ldr r2, _0812BDEC
+ ldr r0, _0812BDF0
+ ldrb r1, [r0]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ bl PlayFanfare
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BDEC: .4byte gUnknown_02023A60
+_0812BDF0: .4byte gUnknown_02024A60
+ thumb_func_end sub_812BDC4
+
+ thumb_func_start sub_812BDF4
+sub_812BDF4: @ 812BDF4
+ push {lr}
+ ldr r1, _0812BE24
+ ldr r0, _0812BE28
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0812BE2C
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x19
+ bl PlayCry1
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BE24: .4byte gUnknown_02024A6A
+_0812BE28: .4byte gUnknown_02024A60
+_0812BE2C: .4byte gPlayerParty
+ thumb_func_end sub_812BDF4
+
+ thumb_func_start dp01t_2E_6_battle_intro
+dp01t_2E_6_battle_intro: @ 812BE30
+ push {lr}
+ ldr r1, _0812BE58
+ ldr r0, _0812BE5C
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80E43C0
+ ldr r2, _0812BE60
+ ldrh r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BE58: .4byte gUnknown_02023A60
+_0812BE5C: .4byte gUnknown_02024A60
+_0812BE60: .4byte gUnknown_02024DE8
+ thumb_func_end dp01t_2E_6_battle_intro
+
+ thumb_func_start sub_812BE64
+sub_812BE64: @ 812BE64
+ push {r4,r5,lr}
+ ldr r5, _0812BEA0
+ ldr r4, _0812BEA4
+ ldrb r1, [r4]
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldr r2, _0812BEA8
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _0812BEAC
+ adds r1, r2
+ movs r2, 0xA
+ bl sub_8045A5C
+ ldrb r0, [r4]
+ bl sub_804777C
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ bl dp01_tbl6_exec_completed
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BEA0: .4byte gUnknown_03004340
+_0812BEA4: .4byte gUnknown_02024A60
+_0812BEA8: .4byte gUnknown_02024A6A
+_0812BEAC: .4byte gPlayerParty
+ thumb_func_end sub_812BE64
+
+ thumb_func_start sub_812BEB0
+sub_812BEB0: @ 812BEB0
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BEB0
+
+ thumb_func_start sub_812BEBC
+sub_812BEBC: @ 812BEBC
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BEBC
+
+ thumb_func_start sub_812BEC8
+sub_812BEC8: @ 812BEC8
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BEC8
+
+ thumb_func_start sub_812BED4
+sub_812BED4: @ 812BED4
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BED4
+
+ thumb_func_start sub_812BEE0
+sub_812BEE0: @ 812BEE0
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r5, _0812BF18
+ ldr r6, _0812BF1C
+ ldrb r2, [r6]
+ lsls r1, r2, 9
+ adds r0, r5, 0x1
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ adds r0, r5, 0x2
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r5, 0x3
+ adds r1, r5
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r4, r0
+ str r4, [sp]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ bl move_anim_start_t3
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812BF20
+ bl dp01_tbl6_exec_completed
+ b _0812BF2C
+ .align 2, 0
+_0812BF18: .4byte gUnknown_02023A60
+_0812BF1C: .4byte gUnknown_02024A60
+_0812BF20:
+ ldr r0, _0812BF34
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _0812BF38
+ str r0, [r1]
+_0812BF2C:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BF34: .4byte gUnknown_03004330
+_0812BF38: .4byte sub_812B794
+ thumb_func_end sub_812BEE0
+
+ thumb_func_start sub_812BF3C
+sub_812BF3C: @ 812BF3C
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BF3C
+
+ thumb_func_start sub_812BF48
+sub_812BF48: @ 812BF48
+ push {lr}
+ bl dp01_tbl6_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812BF48
+
+ thumb_func_start sub_812BF54
+sub_812BF54: @ 812BF54
+ push {r4,lr}
+ ldr r2, _0812BF98
+ ldr r1, _0812BF9C
+ ldr r4, _0812BFA0
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ movs r0, 0x5
+ bl FadeOutMapMusic
+ movs r0, 0x3
+ bl BeginFastPaletteFade
+ bl dp01_tbl6_exec_completed
+ ldr r0, _0812BFA4
+ ldrh r1, [r0]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0x2
+ bne _0812BF90
+ ldr r0, _0812BFA8
+ ldrb r1, [r4]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _0812BFAC
+ str r0, [r1]
+_0812BF90:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BF98: .4byte gUnknown_02024D26
+_0812BF9C: .4byte gUnknown_02023A60
+_0812BFA0: .4byte gUnknown_02024A60
+_0812BFA4: .4byte gUnknown_020239F8
+_0812BFA8: .4byte gUnknown_03004330
+_0812BFAC: .4byte sub_812B6AC
+ thumb_func_end sub_812BF54
+
+ thumb_func_start nullsub_78
+nullsub_78: @ 812BFB0
+ bx lr
+ thumb_func_end nullsub_78
+
+ thumb_func_start sub_812BFB4
+sub_812BFB4: @ 812BFB4
+ ldr r1, _0812BFC4
+ ldr r0, _0812BFC8
+ str r0, [r1]
+ ldr r1, _0812BFCC
+ ldr r0, _0812BFD0
+ str r0, [r1]
+ movs r0, 0x1
+ bx lr
+ .align 2, 0
+_0812BFC4: .4byte gUnknown_0300485C
+_0812BFC8: .4byte sub_808AB90
+_0812BFCC: .4byte gUnknown_03005CE4
+_0812BFD0: .4byte sub_812BFD4
+ thumb_func_end sub_812BFB4
+
+ thumb_func_start sub_812BFD4
+sub_812BFD4: @ 812BFD4
+ push {lr}
+ movs r0, 0x33
+ bl FieldEffectStart
+ ldr r0, _0812BFE8
+ ldr r1, _0812BFEC
+ ldrb r1, [r1]
+ str r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812BFE8: .4byte gUnknown_0202FF84
+_0812BFEC: .4byte gUnknown_03005CE0
+ thumb_func_end sub_812BFD4
+
+ thumb_func_start sub_812BFF0
+sub_812BFF0: @ 812BFF0
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0812C014
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _0812C018
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0812C014: .4byte gTasks
+_0812C018: .4byte sub_812C01C
+ thumb_func_end sub_812BFF0
+
+ thumb_func_start sub_812C01C
+sub_812C01C: @ 812C01C
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0xEC
+ bl PlaySE
+ bl GetPlayerAvatarObjectId
+ ldr r2, _0812C078
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r1, [r1, 0x5]
+ lsrs r1, 4
+ adds r1, 0x10
+ movs r0, 0x1
+ lsls r0, r1
+ mvns r0, r0
+ movs r1, 0x1F
+ str r1, [sp]
+ movs r1, 0x4
+ movs r2, 0
+ movs r3, 0x8
+ bl BeginNormalPaletteFade
+ ldr r0, _0812C07C
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0812C080
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ movs r0, 0x33
+ bl FieldEffectActiveListRemove
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C078: .4byte gSprites
+_0812C07C: .4byte sub_812C084
+_0812C080: .4byte gTasks
+ thumb_func_end sub_812C01C
+
+ thumb_func_start sub_812C084
+sub_812C084: @ 812C084
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0812C0C8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _0812C110
+ ldr r0, _0812C0CC
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r4, r1, r0
+ ldrh r1, [r4, 0x8]
+ movs r3, 0x8
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x40
+ bne _0812C10C
+ strh r2, [r4, 0x8]
+ bl sub_80852FC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812C0D0
+ adds r0, r5, 0
+ bl DestroyTask
+ b _0812C110
+ .align 2, 0
+_0812C0C8: .4byte gPaletteFade
+_0812C0CC: .4byte gTasks
+_0812C0D0:
+ ldr r0, _0812C104
+ str r0, [r4]
+ bl GetPlayerAvatarObjectId
+ ldr r2, _0812C108
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r1, [r1, 0x5]
+ lsrs r1, 4
+ adds r1, 0x10
+ movs r0, 0x1
+ lsls r0, r1
+ mvns r0, r0
+ movs r1, 0x1F
+ str r1, [sp]
+ movs r1, 0x4
+ movs r2, 0x8
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _0812C110
+ .align 2, 0
+_0812C104: .4byte sub_812C118
+_0812C108: .4byte gSprites
+_0812C10C:
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x8]
+_0812C110:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812C084
+
+ thumb_func_start sub_812C118
+sub_812C118: @ 812C118
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0812C13C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0812C136
+ ldr r0, _0812C140
+ bl ScriptContext1_SetupScript
+ adds r0, r4, 0
+ bl DestroyTask
+_0812C136:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C13C: .4byte gPaletteFade
+_0812C140: .4byte SweetScentNothingHereScript
+ thumb_func_end sub_812C118
+
+ thumb_func_start sub_812C144
+sub_812C144: @ 812C144
+ push {lr}
+ adds r2, r0, 0
+ ldr r1, _0812C168
+ ldrh r0, [r1]
+ ldrh r3, [r2, 0x20]
+ adds r0, r3
+ strh r0, [r2, 0x20]
+ ldrh r0, [r1, 0x2]
+ ldrh r3, [r2, 0x22]
+ adds r0, r3
+ strh r0, [r2, 0x22]
+ movs r3, 0x6
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _0812C16C
+ ldrh r0, [r1, 0x4]
+ b _0812C170
+ .align 2, 0
+_0812C168: .4byte gUnknown_03004B00
+_0812C16C:
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+_0812C170:
+ strh r0, [r2, 0x2E]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r2, 0x30]
+ ldr r0, _0812C180
+ str r0, [r2, 0x1C]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C180: .4byte sub_812C184
+ thumb_func_end sub_812C144
+
+ thumb_func_start sub_812C184
+sub_812C184: @ 812C184
+ push {lr}
+ adds r3, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ ble _0812C1C4
+ ldrh r1, [r3, 0x32]
+ lsls r0, r1, 16
+ asrs r0, 24
+ strh r0, [r3, 0x24]
+ ldrh r0, [r3, 0x2E]
+ adds r1, r0
+ strh r1, [r3, 0x32]
+ 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, 0x30]
+ subs r0, 0x1
+ strh r0, [r3, 0x30]
+ b _0812C1CA
+_0812C1C4:
+ adds r0, r3, 0
+ bl move_anim_8072740
+_0812C1CA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812C184
+
+ thumb_func_start sub_812C1D0
+sub_812C1D0: @ 812C1D0
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r6, _0812C21C
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 8
+ movs r0, 0x80
+ lsls r0, 12
+ adds r4, r0
+ asrs r4, 16
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 8
+ movs r0, 0x80
+ lsls r0, 12
+ adds r1, r0
+ asrs r1, 16
+ adds r0, r4, 0
+ movs r2, 0
+ bl sub_8046234
+ adds r0, r5, 0
+ bl move_anim_task_del
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C21C: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_812C1D0
+
+ thumb_func_start sub_812C220
+sub_812C220: @ 812C220
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x5A
+ strh r0, [r4, 0x2E]
+ ldr r0, _0812C258
+ str r0, [r4, 0x1C]
+ movs r0, 0x7
+ strh r0, [r4, 0x30]
+ ldr r1, _0812C25C
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r1, _0812C260
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r2, _0812C264
+ ldrh r1, [r4, 0x30]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C258: .4byte sub_80782D8
+_0812C25C: .4byte sub_812C268
+_0812C260: .4byte REG_BLDCNT
+_0812C264: .4byte REG_BLDALPHA
+ thumb_func_end sub_812C220
+
+ thumb_func_start sub_812C268
+sub_812C268: @ 812C268
+ push {lr}
+ adds r3, r0, 0
+ ldr r2, _0812C29C
+ ldrh r1, [r3, 0x30]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r3, 0x30]
+ subs r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0812C296
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0812C2A0
+ str r0, [r3, 0x1C]
+_0812C296:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C29C: .4byte REG_BLDALPHA
+_0812C2A0: .4byte sub_812C2A4
+ thumb_func_end sub_812C268
+
+ thumb_func_start sub_812C2A4
+sub_812C2A4: @ 812C2A4
+ push {lr}
+ ldr r1, _0812C2B8
+ movs r2, 0
+ strh r2, [r1]
+ adds r1, 0x2
+ strh r2, [r1]
+ bl move_anim_8072740
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C2B8: .4byte REG_BLDCNT
+ thumb_func_end sub_812C2A4
+
+ thumb_func_start sub_812C2BC
+sub_812C2BC: @ 812C2BC
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldr r4, _0812C348
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r7, r0, 0
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r6, r0, 0
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8078764
+ ldrh r0, [r5, 0x20]
+ subs r0, r7
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r1, [r5, 0x22]
+ subs r1, r6
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_80790F0
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 23
+ adds r0, r1
+ lsrs r4, r0, 16
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812C31A
+ movs r1, 0x80
+ lsls r1, 7
+ adds r0, r4, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+_0812C31A:
+ movs r3, 0x80
+ lsls r3, 1
+ str r4, [sp]
+ adds r0, r5, 0
+ movs r1, 0
+ adds r2, r3, 0
+ bl sub_8078FDC
+ ldr r0, _0812C34C
+ ldrh r0, [r0, 0x4]
+ strh r0, [r5, 0x2E]
+ strh r7, [r5, 0x32]
+ strh r6, [r5, 0x36]
+ ldr r0, _0812C350
+ str r0, [r5, 0x1C]
+ ldr r1, _0812C354
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C348: .4byte gUnknown_0202F7C9
+_0812C34C: .4byte gUnknown_03004B00
+_0812C350: .4byte sub_8078B34
+_0812C354: .4byte move_anim_8072740
+ thumb_func_end sub_812C2BC
+
+ thumb_func_start sub_812C358
+sub_812C358: @ 812C358
+ ldr r2, _0812C378
+ movs r3, 0xFD
+ lsls r3, 6
+ adds r1, r3, 0
+ strh r1, [r2]
+ adds r2, 0x2
+ movs r3, 0x80
+ lsls r3, 5
+ adds r1, r3, 0
+ strh r1, [r2]
+ movs r1, 0x4
+ strh r1, [r0, 0x2E]
+ ldr r1, _0812C37C
+ str r1, [r0, 0x1C]
+ bx lr
+ .align 2, 0
+_0812C378: .4byte REG_BLDCNT
+_0812C37C: .4byte sub_812C380
+ thumb_func_end sub_812C358
+
+ thumb_func_start sub_812C380
+sub_812C380: @ 812C380
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r2, _0812C3A0
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0812C3A4
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ b _0812C3A8
+ .align 2, 0
+_0812C3A0: .4byte REG_BLDALPHA
+_0812C3A4:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+_0812C3A8:
+ strh r0, [r4, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xF
+ beq _0812C3B6
+ cmp r0, 0x4
+ bne _0812C3BE
+_0812C3B6:
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r4, 0x30]
+_0812C3BE:
+ ldrh r0, [r4, 0x32]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x46
+ ble _0812C3FC
+ ldr r0, _0812C404
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ subs r2, 0x12
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0812C408
+ str r0, [r4, 0x1C]
+_0812C3FC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C404: .4byte REG_BLDCNT
+_0812C408: .4byte sub_812C40C
+ thumb_func_end sub_812C380
+
+ thumb_func_start sub_812C40C
+sub_812C40C: @ 812C40C
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x32]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ ble _0812C448
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ subs r2, 0x12
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ adds r0, r3, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0812C448
+ ldr r0, _0812C44C
+ str r0, [r3, 0x1C]
+_0812C448:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C44C: .4byte sub_812C450
+ thumb_func_end sub_812C40C
+
+ thumb_func_start sub_812C450
+sub_812C450: @ 812C450
+ push {lr}
+ adds r2, r0, 0
+ movs r1, 0x34
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x6
+ bhi _0812C4A8
+ lsls r0, 2
+ ldr r1, _0812C468
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0812C468: .4byte _0812C46C
+ .align 2, 0
+_0812C46C:
+ .4byte _0812C488
+ .4byte _0812C488
+ .4byte _0812C492
+ .4byte _0812C492
+ .4byte _0812C4A0
+ .4byte _0812C4A0
+ .4byte _0812C4A8
+_0812C488:
+ movs r1, 0
+ movs r0, 0x1
+ strh r0, [r2, 0x24]
+ strh r1, [r2, 0x26]
+ b _0812C4B0
+_0812C492:
+ ldr r0, _0812C49C
+ strh r0, [r2, 0x24]
+ movs r0, 0
+ b _0812C4AE
+ .align 2, 0
+_0812C49C: .4byte 0x0000ffff
+_0812C4A0:
+ movs r0, 0
+ strh r0, [r2, 0x24]
+ movs r0, 0x1
+ b _0812C4AE
+_0812C4A8:
+ movs r0, 0
+ strh r0, [r2, 0x24]
+ ldr r0, _0812C4F0
+_0812C4AE:
+ strh r0, [r2, 0x26]
+_0812C4B0:
+ ldrh r0, [r2, 0x34]
+ adds r0, 0x1
+ movs r3, 0
+ strh r0, [r2, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _0812C4C2
+ strh r3, [r2, 0x34]
+_0812C4C2:
+ ldrh r0, [r2, 0x36]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x36]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ ble _0812C4EA
+ movs r0, 0x10
+ strh r0, [r2, 0x2E]
+ strh r3, [r2, 0x30]
+ ldr r1, _0812C4F4
+ 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, _0812C4F8
+ str r0, [r2, 0x1C]
+_0812C4EA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C4F0: .4byte 0x0000ffff
+_0812C4F4: .4byte REG_BLDCNT
+_0812C4F8: .4byte sub_812C4FC
+ thumb_func_end sub_812C450
+
+ thumb_func_start sub_812C4FC
+sub_812C4FC: @ 812C4FC
+ push {r4,lr}
+ adds r2, r0, 0
+ ldr r4, _0812C558
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r4]
+ ldrh r0, [r2, 0x30]
+ adds r1, r0, 0x1
+ strh r1, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0812C526
+ ldrh r0, [r2, 0x2E]
+ subs r0, 0x1
+ movs r1, 0
+ strh r0, [r2, 0x2E]
+ strh r1, [r2, 0x30]
+_0812C526:
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _0812C53A
+ adds r3, r2, 0
+ adds r3, 0x3E
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+_0812C53A:
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bge _0812C550
+ ldr r1, _0812C55C
+ movs r0, 0
+ strh r0, [r1]
+ strh r0, [r4]
+ adds r0, r2, 0
+ bl move_anim_8072740
+_0812C550:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C558: .4byte REG_BLDALPHA
+_0812C55C: .4byte REG_BLDCNT
+ thumb_func_end sub_812C4FC
+
+ thumb_func_start sub_812C560
+sub_812C560: @ 812C560
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0812C57C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _0812C580
+ str r0, [r1]
+ ldr r1, _0812C584
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0812C57C: .4byte gTasks
+_0812C580: .4byte sub_812C588
+_0812C584: .4byte gUnknown_0202F7B2
+ thumb_func_end sub_812C560
+
+ thumb_func_start sub_812C588
+sub_812C588: @ 812C588
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80789BC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r7, _0812C614
+ lsls r5, r4, 2
+ adds r1, r5, r4
+ lsls r1, 3
+ adds r1, r7
+ ldrh r0, [r1, 0x12]
+ adds r0, 0x1
+ strh r0, [r1, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _0812C5F8
+ ldr r0, _0812C618
+ lsls r2, r6, 4
+ adds r1, r2, 0
+ adds r1, 0xB
+ lsls r1, 1
+ adds r1, r0
+ ldrh r3, [r1]
+ mov r8, r3
+ movs r3, 0xA
+ mov r9, r7
+ adds r7, r5, 0
+ mov r12, r0
+ adds r5, r2, 0
+ lsls r0, r6, 5
+ add r0, r12
+ adds r2, r0, 0
+ adds r2, 0x14
+_0812C5D6:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ subs r2, 0x2
+ subs r1, 0x2
+ subs r3, 0x1
+ cmp r3, 0
+ bgt _0812C5D6
+ adds r0, r5, 0x1
+ lsls r0, 1
+ add r0, r12
+ movs r1, 0
+ mov r2, r8
+ strh r2, [r0]
+ adds r0, r7, r4
+ lsls r0, 3
+ add r0, r9
+ strh r1, [r0, 0x12]
+_0812C5F8:
+ ldr r0, _0812C61C
+ ldrh r1, [r0, 0xE]
+ ldr r0, _0812C620
+ cmp r1, r0
+ bne _0812C608
+ adds r0, r4, 0
+ bl DestroyTask
+_0812C608:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C614: .4byte gTasks
+_0812C618: .4byte gPlttBufferFaded
+_0812C61C: .4byte gUnknown_03004B00
+_0812C620: .4byte 0x0000ffff
+ thumb_func_end sub_812C588
+
+ thumb_func_start sub_812C624
+sub_812C624: @ 812C624
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0812C640
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _0812C644
+ str r0, [r1]
+ ldr r1, _0812C648
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0812C640: .4byte gTasks
+_0812C644: .4byte sub_812C64C
+_0812C648: .4byte gUnknown_0202F7B2
+ thumb_func_end sub_812C624
+
+ thumb_func_start sub_812C64C
+sub_812C64C: @ 812C64C
+ 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
+ bl sub_80789BC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r5, _0812C70C
+ mov r0, r8
+ lsls r3, r0, 2
+ adds r1, r3, r0
+ lsls r1, 3
+ adds r1, r5
+ ldrh r0, [r1, 0x12]
+ adds r0, 0x1
+ strh r0, [r1, 0x12]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _0812C6EE
+ ldr r0, _0812C710
+ lsls r2, r7, 4
+ adds r1, r2, 0
+ adds r1, 0xB
+ lsls r1, 1
+ adds r1, r0
+ ldrh r6, [r1]
+ movs r4, 0xA
+ mov r10, r3
+ mov r9, r0
+ adds r5, r2, 0
+ ldr r2, _0812C714
+ mov r12, r2
+ lsls r0, r7, 5
+ add r0, r9
+ adds r3, r0, 0
+ adds r3, 0x14
+_0812C6A0:
+ ldrh r0, [r3]
+ strh r0, [r1]
+ subs r3, 0x2
+ subs r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bgt _0812C6A0
+ adds r0, r5, 0x1
+ lsls r0, 1
+ add r0, r9
+ strh r6, [r0]
+ adds r1, r5, 0
+ adds r1, 0xB
+ lsls r1, 1
+ add r1, r12
+ ldrh r6, [r1]
+ movs r4, 0xA
+ lsls r0, r7, 5
+ add r0, r12
+ adds r2, r0, 0
+ adds r2, 0x14
+_0812C6CA:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ subs r2, 0x2
+ subs r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bgt _0812C6CA
+ adds r0, r5, 0x1
+ lsls r0, 1
+ add r0, r12
+ movs r1, 0
+ strh r6, [r0]
+ mov r0, r10
+ add r0, r8
+ lsls r0, 3
+ ldr r2, _0812C70C
+ adds r0, r2
+ strh r1, [r0, 0x12]
+_0812C6EE:
+ ldr r0, _0812C718
+ ldrh r1, [r0, 0xE]
+ ldr r0, _0812C71C
+ cmp r1, r0
+ bne _0812C6FE
+ mov r0, r8
+ bl DestroyTask
+_0812C6FE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C70C: .4byte gTasks
+_0812C710: .4byte gPlttBufferFaded
+_0812C714: .4byte gPlttBufferUnfaded
+_0812C718: .4byte gUnknown_03004B00
+_0812C71C: .4byte 0x0000ffff
+ thumb_func_end sub_812C64C
+
+ thumb_func_start sub_812C720
+sub_812C720: @ 812C720
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _0812C784
+ ldrb r0, [r0]
+ mov r5, sp
+ adds r5, 0x2
+ movs r1, 0
+ mov r2, sp
+ adds r3, r5, 0
+ bl sub_807A3FC
+ ldr r0, _0812C788
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812C754
+ ldr r1, _0812C78C
+ ldrh r0, [r1, 0x4]
+ negs r0, r0
+ strh r0, [r1, 0x4]
+_0812C754:
+ ldr r1, _0812C78C
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x2E]
+ mov r2, sp
+ ldrh r0, [r1, 0x4]
+ ldrh r2, [r2]
+ adds r0, r2
+ strh r0, [r4, 0x32]
+ ldrh r0, [r1, 0x6]
+ ldrh r5, [r5]
+ adds r0, r5
+ strh r0, [r4, 0x36]
+ ldr r0, _0812C790
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldr r0, _0812C794
+ str r0, [r4, 0x1C]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C784: .4byte gUnknown_0202F7C9
+_0812C788: .4byte gUnknown_0202F7C8
+_0812C78C: .4byte gUnknown_03004B00
+_0812C790: .4byte 0x0000ffce
+_0812C794: .4byte sub_812C798
+ thumb_func_end sub_812C720
+
+ thumb_func_start sub_812C798
+sub_812C798: @ 812C798
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812C7BA
+ movs r1, 0
+ movs r0, 0x1E
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x30]
+ ldr r0, _0812C7C0
+ str r0, [r4, 0x1C]
+ ldr r1, _0812C7C4
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+_0812C7BA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C7C0: .4byte sub_80782D8
+_0812C7C4: .4byte sub_812C7C8
+ thumb_func_end sub_812C798
+
+ thumb_func_start sub_812C7C8
+sub_812C7C8: @ 812C7C8
+ push {lr}
+ adds r3, r0, 0
+ ldrh r1, [r3, 0x30]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0812C7F4
+ 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]
+_0812C7F4:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ bne _0812C808
+ adds r0, r3, 0
+ bl move_anim_8072740
+_0812C808:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812C7C8
+
+ thumb_func_start sub_812C80C
+sub_812C80C: @ 812C80C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl sub_8078650
+ ldr r5, _0812C83C
+ 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, _0812C840
+ str r0, [r4, 0x1C]
+ ldr r1, _0812C844
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C83C: .4byte gUnknown_03004B00
+_0812C840: .4byte sub_8078600
+_0812C844: .4byte move_anim_8072740
+ thumb_func_end sub_812C80C
+
+ thumb_func_start sub_812C848
+sub_812C848: @ 812C848
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812C8A8
+ adds r0, r4, 0
+ bl sub_8078650
+ ldr r5, _0812C884
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ adds r0, r4, 0
+ bl sub_807867C
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812C89C
+ ldr r0, _0812C888
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812C88C
+ ldrh r0, [r5, 0x4]
+ b _0812C8A2
+ .align 2, 0
+_0812C884: .4byte gUnknown_03004B00
+_0812C888: .4byte gUnknown_0202F7C8
+_0812C88C:
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ negs r0, r0
+ strh r0, [r4, 0x30]
+ movs r2, 0x6
+ ldrsh r0, [r5, r2]
+ negs r0, r0
+ b _0812C8A6
+_0812C89C:
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ negs r0, r0
+_0812C8A2:
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x6]
+_0812C8A6:
+ strh r0, [r4, 0x32]
+_0812C8A8:
+ 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 r0, 2
+ movs r3, 0xFF
+ ldrh r1, [r4, 0x30]
+ ldrh r2, [r4, 0x34]
+ adds r1, r2
+ strh r1, [r4, 0x34]
+ ldrh r1, [r4, 0x32]
+ ldrh r2, [r4, 0x36]
+ adds r1, r2
+ strh r1, [r4, 0x36]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ lsrs r2, r1, 31
+ adds r1, r2
+ asrs r1, 1
+ strh r1, [r4, 0x24]
+ ands r0, r3
+ movs r1, 0x5
+ bl Sin
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ lsrs r2, r1, 31
+ adds r1, r2
+ asrs r1, 1
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xF0
+ bls _0812C900
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812C900:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812C848
+
+ thumb_func_start sub_812C908
+sub_812C908: @ 812C908
+ push {lr}
+ adds r2, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0812C91E
+ adds r0, r2, 0
+ bl move_anim_8072740
+_0812C91E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812C908
+
+ thumb_func_start sub_812C924
+sub_812C924: @ 812C924
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0812C940
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812C948
+ ldr r1, _0812C944
+ movs r0, 0
+ b _0812C94C
+ .align 2, 0
+_0812C940: .4byte gUnknown_0202F7C9
+_0812C944: .4byte gUnknown_03004B00
+_0812C948:
+ ldr r1, _0812C95C
+ movs r0, 0x1
+_0812C94C:
+ strh r0, [r1, 0xE]
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C95C: .4byte gUnknown_03004B00
+ thumb_func_end sub_812C924
+
+ thumb_func_start sub_812C960
+sub_812C960: @ 812C960
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0812C974
+ ldr r0, [r0]
+ cmp r0, 0
+ ble _0812C97C
+ ldr r1, _0812C978
+ movs r0, 0
+ b _0812C980
+ .align 2, 0
+_0812C974: .4byte gUnknown_0202F7B8
+_0812C978: .4byte gUnknown_03004B00
+_0812C97C:
+ ldr r1, _0812C98C
+ movs r0, 0x1
+_0812C980:
+ strh r0, [r1, 0xE]
+ adds r0, r2, 0
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C98C: .4byte gUnknown_03004B00
+ thumb_func_end sub_812C960
+
+ thumb_func_start sub_812C990
+sub_812C990: @ 812C990
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _0812C9EC
+ ldr r2, _0812C9F0
+ 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 r0, _0812C9F4
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _0812C9F8
+ strh r1, [r0]
+ ldr r0, _0812C9FC
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8078764
+ ldrb r1, [r4, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0812CA00
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812C9EC: .4byte REG_WINOUT
+_0812C9F0: .4byte 0x00001f3f
+_0812C9F4: .4byte gUnknown_030042C4
+_0812C9F8: .4byte gUnknown_03004240
+_0812C9FC: .4byte REG_WIN0H
+_0812CA00: .4byte sub_812CA04
+ thumb_func_end sub_812C990
+
+ thumb_func_start sub_812CA04
+sub_812CA04: @ 812CA04
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bhi _0812CAC4
+ lsls r0, 2
+ ldr r1, _0812CA1C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0812CA1C: .4byte _0812CA20
+ .align 2, 0
+_0812CA20:
+ .4byte _0812CA38
+ .4byte _0812CA56
+ .4byte _0812CA76
+ .4byte _0812CA56
+ .4byte _0812CA96
+ .4byte _0812CAA6
+_0812CA38:
+ 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
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0812CAC4
+ b _0812CA9E
+_0812CA56:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x75
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x15
+ bne _0812CAC4
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ b _0812CA9E
+_0812CA76:
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x75
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x29
+ bne _0812CAC4
+ movs r0, 0
+ strh r0, [r4, 0x32]
+ b _0812CA9E
+_0812CA96:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+_0812CA9E:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _0812CAC4
+_0812CAA6:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0812CAC4
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0812CACC
+ str r0, [r4, 0x1C]
+_0812CAC4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812CACC: .4byte sub_812CAD0
+ thumb_func_end sub_812CA04
+
+ thumb_func_start sub_812CAD0
+sub_812CAD0: @ 812CAD0
+ push {r4,lr}
+ ldr r2, _0812CAF4
+ ldr r3, _0812CAF8
+ adds r1, r3, 0
+ strh r1, [r2]
+ movs r3, 0x80
+ lsls r3, 19
+ ldrh r1, [r3]
+ movs r4, 0x80
+ lsls r4, 8
+ adds r2, r4, 0
+ eors r1, r2
+ strh r1, [r3]
+ bl move_anim_8072740
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812CAF4: .4byte REG_WINOUT
+_0812CAF8: .4byte 0x00003f3f
+ thumb_func_end sub_812CAD0
+
+ thumb_func_start sub_812CAFC
+sub_812CAFC: @ 812CAFC
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _0812CB70
+ movs r1, 0x6
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _0812CB28
+ ldr r4, _0812CB74
+ 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]
+_0812CB28:
+ ldrh r0, [r6]
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ movs r3, 0
+ strh r0, [r5, 0x20]
+ ldrh r0, [r6, 0x2]
+ ldrh r4, [r5, 0x22]
+ adds r0, r4
+ strh r0, [r5, 0x22]
+ ldrh r2, [r5, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x10
+ ldr r4, _0812CB78
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r0, _0812CB7C
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x4]
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _0812CB84
+ ldrb r1, [r5, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x10
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+ ldr r0, _0812CB80
+ strh r0, [r5, 0x24]
+ movs r0, 0x2
+ b _0812CB8A
+ .align 2, 0
+_0812CB70: .4byte gUnknown_03004B00
+_0812CB74: .4byte gUnknown_0202F7C8
+_0812CB78: .4byte 0x000003ff
+_0812CB7C: .4byte 0xfffffc00
+_0812CB80: .4byte 0x0000fff4
+_0812CB84:
+ movs r0, 0xC
+ strh r0, [r5, 0x24]
+ ldr r0, _0812CBA8
+_0812CB8A:
+ strh r0, [r5, 0x30]
+ ldr r1, _0812CBAC
+ ldrh r0, [r1, 0x8]
+ strh r0, [r5, 0x2E]
+ movs r2, 0x34
+ ldrsh r0, [r5, r2]
+ cmp r0, 0xFF
+ beq _0812CB9E
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x34]
+_0812CB9E:
+ ldr r0, _0812CBB0
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812CBA8: .4byte 0x0000fffe
+_0812CBAC: .4byte gUnknown_03004B00
+_0812CBB0: .4byte sub_812CBB4
+ thumb_func_end sub_812CAFC
+
+ thumb_func_start sub_812CBB4
+sub_812CBB4: @ 812CBB4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x32]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812CBF2
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0812CC12
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x32]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812CC12
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xDE
+ bl PlaySE1WithPanning
+ b _0812CC12
+_0812CBF2:
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x30]
+ subs r0, r1
+ strh r0, [r4, 0x24]
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _0812CC04
+ negs r0, r0
+_0812CC04:
+ cmp r0, 0xC
+ bne _0812CC12
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ subs r0, r2, 0x1
+ strh r0, [r4, 0x32]
+_0812CC12:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812CC20
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812CC20:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812CBB4
+
+ thumb_func_start sub_812CC28
+sub_812CC28: @ 812CC28
+ push {lr}
+ ldrb r2, [r0, 0x1]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ movs r1, 0xFF
+ strh r1, [r0, 0x34]
+ bl sub_812CAFC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812CC28
+
+ thumb_func_start sub_812CC44
+sub_812CC44: @ 812CC44
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812CC7A
+ ldr r1, _0812CC88
+ ldr r2, _0812CC8C
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _0812CC90
+ ldr r2, _0812CC94
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _0812CC98
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r1, _0812CC9C
+ ldr r0, _0812CCA0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r1, 0x4
+ ldr r0, _0812CCA4
+ ldrh r0, [r0]
+ strh r0, [r1]
+_0812CC7A:
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812CC88: .4byte REG_WININ
+_0812CC8C: .4byte 0x00001f3f
+_0812CC90: .4byte gUnknown_03004200
+_0812CC94: .4byte 0x000098f0
+_0812CC98: .4byte gUnknown_03004244
+_0812CC9C: .4byte REG_WIN1H
+_0812CCA0: .4byte gUnknown_030042C4
+_0812CCA4: .4byte gUnknown_03004240
+ thumb_func_end sub_812CC44
+
+ thumb_func_start sub_812CCA8
+sub_812CCA8: @ 812CCA8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812CCCA
+ ldr r1, _0812CCD8
+ ldr r2, _0812CCDC
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0812CCE0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _0812CCE4
+ strh r1, [r0]
+_0812CCCA:
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812CCD8: .4byte REG_WININ
+_0812CCDC: .4byte 0x00003f3f
+_0812CCE0: .4byte gUnknown_03004200
+_0812CCE4: .4byte gUnknown_03004244
+ thumb_func_end sub_812CCA8
+
+ thumb_func_start sub_812CCE8
+sub_812CCE8: @ 812CCE8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _0812CCFC
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _0812CD04
+ ldr r4, _0812CD00
+ b _0812CD06
+ .align 2, 0
+_0812CCFC: .4byte gUnknown_03004B00
+_0812CD00: .4byte gUnknown_0202F7C8
+_0812CD04:
+ ldr r4, _0812CD58
+_0812CD06:
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r6, [r6, 0x2]
+ adds r0, r6
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ ldr r2, _0812CD5C
+ ldrh r0, [r2, 0x4]
+ strh r0, [r5, 0x26]
+ movs r3, 0
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r4, [r2, 0x6]
+ movs r6, 0x6
+ ldrsh r1, [r2, r6]
+ cmp r0, r1
+ ble _0812CD3E
+ movs r3, 0x1
+_0812CD3E:
+ strh r3, [r5, 0x2E]
+ movs r0, 0
+ strh r0, [r5, 0x30]
+ ldrh r0, [r2, 0x8]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r2, 0xA]
+ strh r0, [r5, 0x34]
+ strh r4, [r5, 0x36]
+ ldr r0, _0812CD60
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812CD58: .4byte gUnknown_0202F7C9
+_0812CD5C: .4byte gUnknown_03004B00
+_0812CD60: .4byte sub_812CD64
+ thumb_func_end sub_812CCE8
+
+ thumb_func_start sub_812CD64
+sub_812CD64: @ 812CD64
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x32]
+ ldrh r1, [r2, 0x30]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r2, 0x30]
+ ldr r1, _0812CDAC
+ movs r3, 0x30
+ ldrsh r0, [r2, r3]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 20
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x34]
+ ldrh r3, [r2, 0x26]
+ adds r1, r0, r3
+ strh r1, [r2, 0x26]
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _0812CDB0
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r3, 0x36
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bge _0812CDC2
+ adds r0, r2, 0
+ bl move_anim_8072740
+ b _0812CDC2
+ .align 2, 0
+_0812CDAC: .4byte gSineTable
+_0812CDB0:
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r3, 0x36
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ ble _0812CDC2
+ adds r0, r2, 0
+ bl move_anim_8072740
+_0812CDC2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812CD64
+
+ thumb_func_start sub_812CDC8
+sub_812CDC8: @ 812CDC8
+ push {r4-r7,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _0812CDE8
+ adds r5, r1, r0
+ ldr r0, _0812CDEC
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0812CDF4
+ ldr r4, _0812CDF0
+ b _0812CDF6
+ .align 2, 0
+_0812CDE8: .4byte gTasks
+_0812CDEC: .4byte gUnknown_03004B00
+_0812CDF0: .4byte gUnknown_0202F7C8
+_0812CDF4:
+ ldr r4, _0812CE3C
+_0812CDF6:
+ ldrb r0, [r4]
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrb r0, [r4]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r6, 0
+ adds r1, r0, 0
+ adds r1, 0x24
+ movs r2, 0
+ strh r1, [r5, 0x8]
+ strh r1, [r5, 0xA]
+ subs r0, 0x21
+ strh r0, [r5, 0xC]
+ cmp r0, 0
+ bge _0812CE20
+ strh r2, [r5, 0xC]
+_0812CE20:
+ ldrh r0, [r5, 0x8]
+ strh r0, [r5, 0xE]
+ movs r0, 0x8
+ strh r0, [r5, 0x10]
+ ldr r1, _0812CE40
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x12]
+ strh r2, [r5, 0x14]
+ strh r2, [r5, 0x16]
+ cmp r7, 0x1
+ bne _0812CE48
+ ldr r0, _0812CE44
+ b _0812CE4A
+ .align 2, 0
+_0812CE3C: .4byte gUnknown_0202F7C9
+_0812CE40: .4byte gUnknown_03004B00
+_0812CE44: .4byte gUnknown_030042C0
+_0812CE48:
+ ldr r0, _0812CE68
+_0812CE4A:
+ ldrh r2, [r0]
+ strh r2, [r5, 0x18]
+ adds r3, r2, 0
+ adds r3, 0xF0
+ strh r3, [r5, 0x1A]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x1C]
+ movs r4, 0x4
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ bne _0812CE6C
+ strh r3, [r5, 0x1E]
+ ldrh r3, [r5, 0x18]
+ b _0812CE70
+ .align 2, 0
+_0812CE68: .4byte gUnknown_03004288
+_0812CE6C:
+ strh r2, [r5, 0x1E]
+ ldrh r3, [r5, 0x1A]
+_0812CE70:
+ movs r0, 0
+ strh r0, [r5, 0x26]
+ ldrh r1, [r5, 0xC]
+ lsls r2, r1, 16
+ asrs r1, r2, 16
+ movs r6, 0xE
+ ldrsh r0, [r5, r6]
+ cmp r1, r0
+ bgt _0812CEA6
+ ldr r4, _0812CEB0
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r0, r4
+ mov r12, r0
+_0812CE8C:
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r0, r1, r4
+ strh r3, [r0]
+ add r1, r12
+ strh r3, [r1]
+ adds r2, 0x1
+ lsls r2, 16
+ asrs r1, r2, 16
+ movs r6, 0xE
+ ldrsh r0, [r5, r6]
+ cmp r1, r0
+ ble _0812CE8C
+_0812CEA6:
+ cmp r7, 0x1
+ bne _0812CEB8
+ ldr r0, _0812CEB4
+ b _0812CEBA
+ .align 2, 0
+_0812CEB0: .4byte gUnknown_03004DE0
+_0812CEB4: .4byte REG_BG1HOFS
+_0812CEB8:
+ ldr r0, _0812CEE4
+_0812CEBA:
+ str r0, [sp]
+ ldr r0, _0812CEE8
+ 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, _0812CEEC
+ str r0, [r5]
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812CEE4: .4byte REG_BG2HOFS
+_0812CEE8: .4byte 0xa2600001
+_0812CEEC: .4byte sub_812CEF0
+ thumb_func_end sub_812CDC8
+
+ thumb_func_start sub_812CEF0
+sub_812CEF0: @ 812CEF0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, _0812CF40
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x8]
+ ldrh r1, [r4, 0x12]
+ subs r0, r1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r4, 0xC]
+ movs r3, 0xC
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bge _0812CF18
+ strh r2, [r4, 0x8]
+_0812CF18:
+ ldrh r1, [r4, 0x10]
+ movs r2, 0x10
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0812CF44
+ ldrh r0, [r4, 0xA]
+ ldrh r1, [r4, 0x12]
+ subs r0, r1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r2, [r4, 0xC]
+ movs r3, 0xC
+ ldrsh r1, [r4, r3]
+ cmp r0, r1
+ bge _0812CF48
+ strh r2, [r4, 0xA]
+ movs r0, 0x1
+ strh r0, [r4, 0x26]
+ b _0812CF48
+ .align 2, 0
+_0812CF40: .4byte gTasks
+_0812CF44:
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x10]
+_0812CF48:
+ ldrh r0, [r4, 0x14]
+ adds r0, 0x1
+ strh r0, [r4, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0812CF74
+ movs r0, 0
+ strh r0, [r4, 0x14]
+ movs r1, 0
+ movs r2, 0x16
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0812CF66
+ movs r1, 0x1
+_0812CF66:
+ strh r1, [r4, 0x16]
+ cmp r1, 0
+ beq _0812CF70
+ ldrh r0, [r4, 0x18]
+ b _0812CF72
+_0812CF70:
+ ldrh r0, [r4, 0x1A]
+_0812CF72:
+ strh r0, [r4, 0x20]
+_0812CF74:
+ ldrh r1, [r4, 0x8]
+ lsls r3, r1, 16
+ asrs r1, r3, 16
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bge _0812CFA8
+ ldr r5, _0812D000
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+_0812CF8A:
+ asrs r3, 16
+ lsls r1, r3, 1
+ adds r2, r1, r5
+ ldrh r0, [r4, 0x20]
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r4, 0x20]
+ strh r0, [r1]
+ adds r3, 0x1
+ lsls r3, 16
+ asrs r1, r3, 16
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ blt _0812CF8A
+_0812CFA8:
+ ldrh r1, [r4, 0xA]
+ lsls r3, r1, 16
+ asrs r1, r3, 16
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bgt _0812CFDC
+ ldr r5, _0812D000
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r6, r5, r0
+_0812CFBE:
+ asrs r3, 16
+ lsls r1, r3, 1
+ adds r2, r1, r5
+ ldrh r0, [r4, 0x1E]
+ strh r0, [r2]
+ adds r1, r6
+ ldrh r0, [r4, 0x1E]
+ strh r0, [r1]
+ adds r3, 0x1
+ lsls r3, 16
+ asrs r1, r3, 16
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ ble _0812CFBE
+_0812CFDC:
+ movs r3, 0x26
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _0812CFF8
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0812CFF2
+ ldr r1, _0812D004
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+_0812CFF2:
+ adds r0, r7, 0
+ bl move_anim_task_del
+_0812CFF8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812D000: .4byte gUnknown_03004DE0
+_0812D004: .4byte gUnknown_03004DC0
+ thumb_func_end sub_812CEF0
+
+ thumb_func_start sub_812D008
+sub_812D008: @ 812D008
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _0812D05C
+ adds r4, r0
+ movs r5, 0
+ strh r5, [r4, 0x8]
+ strh r5, [r4, 0xA]
+ ldr r6, _0812D060
+ ldrb r0, [r6]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xC]
+ ldrb r0, [r6]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0xE]
+ movs r0, 0x20
+ strh r0, [r4, 0x10]
+ ldr r0, _0812D064
+ strh r0, [r4, 0x12]
+ strh r5, [r4, 0x14]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, _0812D068
+ str r0, [r4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812D05C: .4byte gTasks
+_0812D060: .4byte gUnknown_0202F7C8
+_0812D064: .4byte 0x0000ffec
+_0812D068: .4byte sub_812D06C
+ thumb_func_end sub_812D008
+
+ thumb_func_start sub_812D06C
+sub_812D06C: @ 812D06C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _0812D098
+ adds r6, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x5
+ bls _0812D08C
+ b _0812D246
+_0812D08C:
+ lsls r0, 2
+ ldr r1, _0812D09C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0812D098: .4byte gTasks
+_0812D09C: .4byte _0812D0A0
+ .align 2, 0
+_0812D0A0:
+ .4byte _0812D0B8
+ .4byte _0812D178
+ .4byte _0812D1A6
+ .4byte _0812D1BA
+ .4byte _0812D1D0
+ .4byte _0812D238
+_0812D0B8:
+ movs r0, 0xC
+ ldrsh r2, [r6, r0]
+ ldrh r1, [r6, 0xA]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0812D0CE
+ movs r1, 0x10
+ ldrsh r0, [r6, r1]
+ subs r0, r2, r0
+ b _0812D0D4
+_0812D0CE:
+ movs r1, 0x10
+ ldrsh r0, [r6, r1]
+ adds r0, r2, r0
+_0812D0D4:
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldrh r2, [r6, 0x12]
+ ldrh r0, [r6, 0xE]
+ adds r2, r0
+ ldr r0, _0812D168
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ ldrb r4, [r6, 0xA]
+ movs r3, 0x6
+ subs r3, r4
+ lsls r3, 24
+ lsrs r3, 24
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xBA
+ bl PlaySE12WithPanning
+ cmp r4, 0x40
+ beq _0812D138
+ ldr r5, _0812D16C
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r3, r1, r5
+ ldrh r0, [r6, 0xA]
+ movs r2, 0x1
+ ands r2, r0
+ adds r3, 0x3F
+ ldrb r4, [r3]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r4
+ orrs r0, r2
+ strb r0, [r3]
+ adds r5, 0x1C
+ adds r1, r5
+ ldr r0, _0812D170
+ str r0, [r1]
+_0812D138:
+ ldrh r1, [r6, 0xA]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0812D150
+ ldrh r0, [r6, 0x10]
+ subs r0, 0x6
+ strh r0, [r6, 0x10]
+ ldrh r0, [r6, 0x12]
+ subs r0, 0x6
+ strh r0, [r6, 0x12]
+_0812D150:
+ ldrh r1, [r6, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0812D174
+ adds r0, r6, 0
+ bl sub_80798F4
+ ldrh r0, [r6, 0xA]
+ adds r0, 0x1
+ strh r0, [r6, 0xA]
+ strh r4, [r6, 0x8]
+ b _0812D246
+ .align 2, 0
+_0812D168: .4byte gBattleAnimSpriteTemplate_83D7220
+_0812D16C: .4byte gSprites
+_0812D170: .4byte SpriteCallbackDummy
+_0812D174: .4byte gUnknown_08402400
+_0812D178:
+ adds r0, r6, 0
+ bl sub_807992C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0812D246
+ movs r2, 0xA
+ ldrsh r1, [r6, r2]
+ cmp r1, 0x6
+ bne _0812D198
+ movs r0, 0x8
+ strh r0, [r6, 0x14]
+ movs r0, 0x3
+ strh r0, [r6, 0x8]
+ b _0812D246
+_0812D198:
+ cmp r1, 0x2
+ bgt _0812D19E
+ movs r0, 0xA
+_0812D19E:
+ strh r0, [r6, 0x14]
+ movs r0, 0x2
+ strh r0, [r6, 0x8]
+ b _0812D246
+_0812D1A6:
+ ldrh r0, [r6, 0x14]
+ movs r2, 0x14
+ ldrsh r1, [r6, r2]
+ cmp r1, 0
+ beq _0812D1B6
+ subs r0, 0x1
+ strh r0, [r6, 0x14]
+ b _0812D246
+_0812D1B6:
+ strh r1, [r6, 0x8]
+ b _0812D246
+_0812D1BA:
+ ldrh r1, [r6, 0x14]
+ movs r2, 0x14
+ ldrsh r0, [r6, r2]
+ cmp r0, 0
+ beq _0812D1CA
+ subs r0, r1, 0x1
+ strh r0, [r6, 0x14]
+ b _0812D246
+_0812D1CA:
+ movs r0, 0x4
+ strh r0, [r6, 0x8]
+ b _0812D246
+_0812D1D0:
+ movs r5, 0
+ movs r7, 0
+ ldr r3, _0812D22C
+ movs r0, 0x1C
+ adds r0, r3
+ mov r8, r0
+_0812D1DC:
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r4, r0, 2
+ adds r0, r3, 0
+ adds r0, 0x14
+ adds r0, r4, r0
+ ldr r1, [r0]
+ ldr r0, _0812D230
+ cmp r1, r0
+ bne _0812D218
+ adds r0, r4, r3
+ strh r2, [r0, 0x2E]
+ movs r1, 0x6
+ strh r1, [r0, 0x30]
+ movs r1, 0x2
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ bl StartSpriteAnim
+ mov r0, r8
+ adds r1, r4, r0
+ ldr r0, _0812D234
+ str r0, [r1]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r2, [sp]
+ ldr r3, [sp, 0x4]
+ cmp r7, 0x6
+ beq _0812D222
+_0812D218:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x3F
+ bls _0812D1DC
+_0812D222:
+ strh r7, [r6, 0x14]
+ movs r0, 0x5
+ strh r0, [r6, 0x8]
+ b _0812D246
+ .align 2, 0
+_0812D22C: .4byte gSprites
+_0812D230: .4byte gBattleAnimSpriteTemplate_83D7220
+_0812D234: .4byte sub_812D254
+_0812D238:
+ movs r1, 0x14
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _0812D246
+ adds r0, r2, 0
+ bl move_anim_task_del
+_0812D246:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812D06C
+
+ thumb_func_start sub_812D254
+sub_812D254: @ 812D254
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0812D288
+ ldr r3, _0812D290
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x2E
+ 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
+_0812D288:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812D290: .4byte gTasks
+ thumb_func_end sub_812D254
+
+ thumb_func_start sub_812D294
+sub_812D294: @ 812D294
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0812D2A8
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_80787B0
+_0812D2A8:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x27
+ bgt _0812D2DA
+ ldrh r0, [r5, 0x2E]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0812D2CC
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ b _0812D2D8
+_0812D2CC:
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+_0812D2D8:
+ strb r0, [r2]
+_0812D2DA:
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x1E
+ ble _0812D2F0
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_0812D2F0:
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x3D
+ bne _0812D33C
+ ldr r1, _0812D344
+ adds r0, r5, 0
+ bl oamt_set_x3A_32
+ ldrh r0, [r5, 0x24]
+ ldrh r2, [r5, 0x20]
+ adds r0, r2
+ 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, 0x24]
+ strh r1, [r5, 0x26]
+ movs r0, 0x14
+ strh r0, [r5, 0x2E]
+ ldr r4, _0812D348
+ 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, _0812D34C
+ str r0, [r5, 0x1C]
+_0812D33C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812D344: .4byte move_anim_8072740
+_0812D348: .4byte gUnknown_0202F7C9
+_0812D34C: .4byte sub_8078B34
+ thumb_func_end sub_812D294
+
+ thumb_func_start sub_812D350
+sub_812D350: @ 812D350
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0812D370
+ 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 _0812D374
+ cmp r0, 0x1
+ beq _0812D394
+ b _0812D3A6
+ .align 2, 0
+_0812D370: .4byte gTasks
+_0812D374:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0812D390
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812D3A6
+ .align 2, 0
+_0812D390: .4byte gUnknown_084024B0
+_0812D394:
+ adds r0, r4, 0
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812D3A6
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0812D3A6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812D350
+
+ thumb_func_start sub_812D3AC
+sub_812D3AC: @ 812D3AC
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _0812D40C
+ cmp r0, 0x1
+ bgt _0812D3CC
+ cmp r0, 0
+ beq _0812D3D6
+ b _0812D4AE
+_0812D3CC:
+ cmp r0, 0x2
+ beq _0812D43C
+ cmp r0, 0x3
+ beq _0812D490
+ b _0812D4AE
+_0812D3D6:
+ ldr r4, _0812D408
+ 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, r6, 0
+ movs r1, 0
+ bl sub_8078E70
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r5, 0x30]
+ strh r0, [r5, 0x32]
+ b _0812D484
+ .align 2, 0
+_0812D408: .4byte gUnknown_0202F7C8
+_0812D40C:
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x60
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ subs r0, 0x1A
+ strh r0, [r5, 0x32]
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ movs r0, 0x32
+ ldrsh r2, [r5, r0]
+ adds r0, r6, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _0812D43C
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+_0812D43C:
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x60
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x30
+ strh r0, [r5, 0x32]
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ movs r0, 0x32
+ ldrsh r2, [r5, r0]
+ adds r0, r6, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bne _0812D4AE
+ movs r0, 0
+ strh r0, [r5, 0x34]
+ ldr r1, _0812D48C
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r6, 0
+ bl sub_8078F40
+_0812D484:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _0812D4AE
+ .align 2, 0
+_0812D48C: .4byte gSprites
+_0812D490:
+ ldrh r0, [r5, 0x26]
+ subs r0, 0x6
+ strh r0, [r5, 0x26]
+ movs r1, 0x22
+ ldrsh r0, [r5, r1]
+ movs r2, 0x26
+ ldrsh r1, [r5, r2]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ bge _0812D4AE
+ adds r0, r5, 0
+ bl move_anim_8072740
+_0812D4AE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812D3AC
+
+ thumb_func_start sub_812D4B4
+sub_812D4B4: @ 812D4B4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _0812D4CC
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812D4D4
+ ldr r0, _0812D4D0
+ b _0812D4D8
+ .align 2, 0
+_0812D4CC: .4byte gUnknown_0202F7C8
+_0812D4D0: .4byte 0x0000fff0
+_0812D4D4:
+ movs r0, 0x80
+ lsls r0, 1
+_0812D4D8:
+ strh r0, [r4, 0x20]
+ movs r0, 0
+ strh r0, [r4, 0x22]
+ ldr r0, _0812D4E8
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812D4E8: .4byte sub_812D4EC
+ thumb_func_end sub_812D4B4
+
+ thumb_func_start sub_812D4EC
+sub_812D4EC: @ 812D4EC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x48
+ strh r0, [r4, 0x2E]
+ ldr r0, _0812D50C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812D510
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 20
+ b _0812D518
+ .align 2, 0
+_0812D50C: .4byte gUnknown_0202F7C8
+_0812D510:
+ ldrh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 20
+ negs r0, r0
+_0812D518:
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x10
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ adds r5, r0, r1
+ strh r5, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x3
+ bl __modsi3
+ lsls r0, 16
+ cmp r0, 0
+ bne _0812D564
+ ldr r0, _0812D584
+ ldrh r1, [r4, 0x24]
+ ldrh r2, [r4, 0x20]
+ adds r1, r2
+ lsls r1, 16
+ asrs r1, 16
+ ldrh r2, [r4, 0x22]
+ adds r2, r5
+ lsls r2, 16
+ asrs r2, 16
+ adds r3, r4, 0
+ adds r3, 0x43
+ ldrb r3, [r3]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ bl CreateSpriteAndAnimate
+_0812D564:
+ 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
+ bls _0812D57E
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812D57E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812D584: .4byte gSpriteTemplate_8402500
+ thumb_func_end sub_812D4EC
+
+ thumb_func_start sub_812D588
+sub_812D588: @ 812D588
+ push {r4,lr}
+ adds r4, r0, 0
+ bl Random
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _0812D5A2
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x4
+ b _0812D5AA
+_0812D5A2:
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x5
+_0812D5AA:
+ ldr r3, _0812D5DC
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _0812D5E0
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ bl Random
+ movs r1, 0x7
+ ands r0, r1
+ adds r1, r0, 0
+ cmp r1, 0x3
+ ble _0812D5CC
+ negs r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+_0812D5CC:
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r4, 0x26]
+ ldr r0, _0812D5E4
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812D5DC: .4byte 0x000003ff
+_0812D5E0: .4byte 0xfffffc00
+_0812D5E4: .4byte sub_812D5E8
+ thumb_func_end sub_812D588
+
+ thumb_func_start sub_812D5E8
+sub_812D5E8: @ 812D5E8
+ 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, 0x1D
+ bgt _0812D62A
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _0812D65E
+ 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]
+ movs r0, 0
+ b _0812D65C
+_0812D62A:
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x2
+ bne _0812D640
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_0812D640:
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x3
+ bne _0812D658
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0812D670
+ strh r0, [r3, 0x30]
+_0812D658:
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+_0812D65C:
+ strh r0, [r3, 0x30]
+_0812D65E:
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x3C
+ ble _0812D66C
+ adds r0, r3, 0
+ bl DestroySprite
+_0812D66C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812D670: .4byte 0x0000ffff
+ thumb_func_end sub_812D5E8
+
+ thumb_func_start sub_812D674
+sub_812D674: @ 812D674
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _0812D6AC
+ 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 _0812D6B4
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0812D6B0
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812D6C6
+ .align 2, 0
+_0812D6AC: .4byte gTasks
+_0812D6B0: .4byte gUnknown_08402518
+_0812D6B4:
+ adds r0, r4, 0
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812D6C6
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0812D6C6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812D674
+
+ thumb_func_start sub_812D6CC
+sub_812D6CC: @ 812D6CC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _0812D704
+ 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 _0812D70C
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0812D708
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812D71E
+ .align 2, 0
+_0812D704: .4byte gTasks
+_0812D708: .4byte gUnknown_08402540
+_0812D70C:
+ adds r0, r4, 0
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812D71E
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0812D71E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812D6CC
+
+ thumb_func_start sub_812D724
+sub_812D724: @ 812D724
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0812D736
+ cmp r0, 0x1
+ beq _0812D760
+ b _0812D788
+_0812D736:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80787B0
+ movs r0, 0x90
+ lsls r0, 4
+ strh r0, [r4, 0x30]
+ ldr r0, _0812D75C
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _0812D788
+ .align 2, 0
+_0812D75C: .4byte gUnknown_0202F7C8
+_0812D760:
+ ldrh r2, [r4, 0x30]
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x26]
+ subs r0, r1
+ strh r0, [r4, 0x26]
+ subs r2, 0x60
+ strh r2, [r4, 0x30]
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ ble _0812D788
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812D788:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812D724
+
+ thumb_func_start sub_812D790
+sub_812D790: @ 812D790
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _0812D7C8
+ 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 _0812D7D0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0812D7CC
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812D7E2
+ .align 2, 0
+_0812D7C8: .4byte gTasks
+_0812D7CC: .4byte gUnknown_08402590
+_0812D7D0:
+ adds r0, r4, 0
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812D7E2
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0812D7E2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812D790
+
+ thumb_func_start sub_812D7E8
+sub_812D7E8: @ 812D7E8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, _0812D818
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r3, r1, 0
+ cmp r0, 0x4
+ bls _0812D80E
+ b _0812DAFA
+_0812D80E:
+ lsls r0, 2
+ ldr r1, _0812D81C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0812D818: .4byte gTasks
+_0812D81C: .4byte _0812D820
+ .align 2, 0
+_0812D820:
+ .4byte _0812D834
+ .4byte _0812D888
+ .4byte _0812D8C4
+ .4byte _0812DA48
+ .4byte _0812DA84
+_0812D834:
+ ldr r1, _0812D850
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _0812D854
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812D85C
+ ldr r0, _0812D858
+ b _0812D85E
+ .align 2, 0
+_0812D850: .4byte REG_MOSAIC
+_0812D854: .4byte gUnknown_0202F7C8
+_0812D858: .4byte REG_BG1CNT
+_0812D85C:
+ ldr r0, _0812D87C
+_0812D85E:
+ ldrb r1, [r0]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r0]
+ ldr r0, _0812D880
+ mov r6, r8
+ lsls r1, r6, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0812D884
+ ldrh r0, [r0]
+ strh r0, [r1, 0x1C]
+ b _0812DA2A
+ .align 2, 0
+_0812D87C: .4byte REG_BG2CNT
+_0812D880: .4byte gTasks
+_0812D884: .4byte gUnknown_03004B00
+_0812D888:
+ mov r1, r8
+ lsls r0, r1, 2
+ add r0, r8
+ lsls r0, 3
+ adds r4, r0, r3
+ ldrh r0, [r4, 0xC]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bgt _0812D8A2
+ b _0812DAFA
+_0812D8A2:
+ movs r0, 0
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ ldrh r2, [r4, 0xA]
+ ldr r1, _0812D8C0
+ lsls r0, r2, 4
+ orrs r0, r2
+ strh r0, [r1]
+ cmp r2, 0xF
+ beq _0812D8BC
+ b _0812DAFA
+_0812D8BC:
+ b _0812DA78
+ .align 2, 0
+_0812D8C0: .4byte REG_MOSAIC
+_0812D8C4:
+ ldr r5, _0812D8F4
+ ldrb r0, [r5]
+ ldr r1, _0812D8F8
+ ldrb r1, [r1]
+ mov r2, r8
+ lsls r4, r2, 2
+ adds r2, r4, r2
+ lsls r2, 3
+ adds r2, r3
+ ldrb r2, [r2, 0x1C]
+ bl sub_8031FC4
+ ldrb r1, [r5]
+ mov r0, sp
+ bl sub_8078954
+ bl sub_8076BE0
+ lsls r0, 24
+ mov r9, r4
+ cmp r0, 0
+ beq _0812D8FC
+ movs r1, 0
+ b _0812D906
+ .align 2, 0
+_0812D8F4: .4byte gUnknown_0202F7C8
+_0812D8F8: .4byte gUnknown_0202F7C9
+_0812D8FC:
+ ldrb r0, [r5]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r1, r0, 24
+_0812D906:
+ ldr r0, _0812D9CC
+ lsls r1, 2
+ adds r1, r0
+ ldr r2, _0812D9D0
+ ldr r0, _0812D9D4
+ ldrb r0, [r0]
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 11
+ ldr r1, [r1]
+ adds r1, r0
+ ldr r2, [sp]
+ ldr r0, _0812D9D8
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _0812D9DC
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812DA20
+ ldr r5, _0812D9E0
+ ldrh r0, [r5]
+ bl sub_80AEB1C
+ adds r4, r0, 0
+ ldrh r0, [r5, 0x2]
+ bl sub_80AEB1C
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ beq _0812D9A2
+ ldr r6, [sp, 0x4]
+ movs r5, 0
+ movs r0, 0x7
+ mov r12, r0
+ movs r7, 0
+_0812D956:
+ movs r4, 0
+ adds r3, r7, r6
+ mov r1, r12
+ lsls r0, r1, 1
+ adds r2, r0, r6
+_0812D960:
+ ldrh r1, [r3]
+ ldrh r0, [r2]
+ strh r0, [r3]
+ strh r1, [r2]
+ adds r3, 0x2
+ subs r2, 0x2
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0812D960
+ movs r2, 0x20
+ add r12, r2
+ adds r7, 0x40
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _0812D956
+ movs r5, 0
+ movs r0, 0x80
+ lsls r0, 3
+ adds r3, r0, 0
+_0812D986:
+ adds r2, r5, 0x1
+ lsls r0, r5, 6
+ adds r1, r0, r6
+ movs r4, 0x7
+_0812D98E:
+ ldrh r0, [r1]
+ eors r0, r3
+ strh r0, [r1]
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _0812D98E
+ adds r5, r2, 0
+ cmp r5, 0x7
+ ble _0812D986
+_0812D9A2:
+ ldr r0, _0812D9E0
+ ldrh r0, [r0, 0x2]
+ bl sub_80AEB1C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812D9F0
+ ldr r3, _0812D9E4
+ ldr r4, _0812D9E8
+ ldr r2, _0812D9D4
+ ldrb r0, [r2]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x10
+ adds r0, r1
+ ldr r1, _0812D9EC
+ b _0812DA0A
+ .align 2, 0
+_0812D9CC: .4byte gUnknown_081FAF4C
+_0812D9D0: .4byte gUnknown_02024E84
+_0812D9D4: .4byte gUnknown_0202F7C8
+_0812D9D8: .4byte 0x040000d4
+_0812D9DC: .4byte 0x84000200
+_0812D9E0: .4byte 0x02019348
+_0812D9E4: .4byte gSprites
+_0812D9E8: .4byte gUnknown_02024BE0
+_0812D9EC: .4byte gSpriteAffineAnimTable_81E7C18
+_0812D9F0:
+ ldr r3, _0812DA34
+ ldr r4, _0812DA38
+ ldr r2, _0812DA3C
+ ldrb r0, [r2]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x10
+ adds r0, r1
+ ldr r1, _0812DA40
+_0812DA0A:
+ str r1, [r0]
+ ldrb r0, [r2]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0
+ bl StartSpriteAffineAnim
+_0812DA20:
+ ldr r0, _0812DA44
+ mov r1, r9
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+_0812DA2A:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0812DAFA
+ .align 2, 0
+_0812DA34: .4byte gSprites
+_0812DA38: .4byte gUnknown_02024BE0
+_0812DA3C: .4byte gUnknown_0202F7C8
+_0812DA40: .4byte gSpriteAffineAnimTable_81E7BEC
+_0812DA44: .4byte gTasks
+_0812DA48:
+ mov r1, r8
+ lsls r0, r1, 2
+ add r0, r8
+ lsls r0, 3
+ adds r4, r0, r3
+ ldrh r0, [r4, 0xC]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0812DAFA
+ movs r0, 0
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ ldrh r2, [r4, 0xA]
+ ldr r1, _0812DA80
+ lsls r0, r2, 4
+ orrs r0, r2
+ strh r0, [r1]
+ cmp r2, 0
+ bne _0812DAFA
+_0812DA78:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812DAFA
+ .align 2, 0
+_0812DA80: .4byte REG_MOSAIC
+_0812DA84:
+ ldr r1, _0812DAA0
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _0812DAA4
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812DAAC
+ ldr r2, _0812DAA8
+ b _0812DAAE
+ .align 2, 0
+_0812DAA0: .4byte REG_MOSAIC
+_0812DAA4: .4byte gUnknown_0202F7C8
+_0812DAA8: .4byte REG_BG1CNT
+_0812DAAC:
+ ldr r2, _0812DB08
+_0812DAAE:
+ ldrb r1, [r2]
+ movs r0, 0x41
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812DAF4
+ ldr r4, _0812DB0C
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812DAF4
+ ldr r0, _0812DB10
+ mov r2, r8
+ lsls r1, r2, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r6, 0x1C
+ ldrsh r0, [r1, r6]
+ cmp r0, 0
+ bne _0812DAF4
+ ldrb r0, [r4]
+ lsls r1, r0, 2
+ ldr r2, _0812DB14
+ adds r1, r2
+ ldrh r1, [r1, 0x2]
+ bl sub_8032984
+_0812DAF4:
+ mov r0, r8
+ bl move_anim_task_del
+_0812DAFA:
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812DB08: .4byte REG_BG2CNT
+_0812DB0C: .4byte gUnknown_0202F7C8
+_0812DB10: .4byte gTasks
+_0812DB14: .4byte 0x02017800
+ thumb_func_end sub_812D7E8
+
+ thumb_func_start c3_80DFBE4
+c3_80DFBE4: @ 812DB18
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _0812DB48
+ ldr r3, _0812DB4C
+ ldr r2, _0812DB50
+ ldr r1, _0812DB54
+ ldrb r1, [r1]
+ adds r1, r2
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r3
+ adds r1, 0x3E
+ ldrb r1, [r1]
+ lsls r1, 29
+ lsrs r1, 31
+ strh r1, [r4, 0xE]
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812DB48: .4byte gUnknown_03004B00
+_0812DB4C: .4byte gSprites
+_0812DB50: .4byte gUnknown_02024BE0
+_0812DB54: .4byte gUnknown_0202F7C8
+ thumb_func_end c3_80DFBE4
+
+ thumb_func_start sub_812DB58
+sub_812DB58: @ 812DB58
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0812DB7C
+ ldrb r0, [r0]
+ ldr r1, _0812DB80
+ ldrb r1, [r1]
+ movs r2, 0x1
+ bl sub_8031FC4
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812DB7C: .4byte gUnknown_0202F7C8
+_0812DB80: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_812DB58
+
+ thumb_func_start sub_812DB84
+sub_812DB84: @ 812DB84
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _0812DBB4
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bls _0812DBA8
+ b _0812DE80
+_0812DBA8:
+ lsls r0, 2
+ ldr r1, _0812DBB8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0812DBB4: .4byte gTasks
+_0812DBB8: .4byte _0812DBBC
+ .align 2, 0
+_0812DBBC:
+ .4byte _0812DBD0
+ .4byte _0812DCFC
+ .4byte _0812DD4C
+ .4byte _0812DDB6
+ .4byte _0812DDEA
+_0812DBD0:
+ ldr r1, _0812DC70
+ ldr r4, _0812DC74
+ adds r0, r4, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _0812DC78
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812DC12
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_0812DC12:
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0xC]
+ ldr r2, _0812DC7C
+ add r0, sp, 0xC
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _0812DC80
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _0812DC84
+ bl LZDecompressVram
+ ldr r0, _0812DC88
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _0812DC8C
+ 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 _0812DC9C
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+ ldr r1, _0812DC90
+ ldr r2, _0812DC94
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0812DC98
+ strh r4, [r0]
+ b _0812DCCE
+ .align 2, 0
+_0812DC70: .4byte REG_BLDCNT
+_0812DC74: .4byte 0x00003f42
+_0812DC78: .4byte REG_BG1CNT
+_0812DC7C: .4byte 0x040000d4
+_0812DC80: .4byte 0x85000400
+_0812DC84: .4byte gUnknown_08D2AA98
+_0812DC88: .4byte gUnknown_08D2A9E0
+_0812DC8C: .4byte gUnknown_08D2AA80
+_0812DC90: .4byte gUnknown_030042C0
+_0812DC94: .4byte 0x0000ffc8
+_0812DC98: .4byte gUnknown_030041B4
+_0812DC9C:
+ ldr r0, _0812DCB4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812DCC0
+ ldr r1, _0812DCB8
+ ldr r4, _0812DCBC
+ adds r0, r4, 0
+ b _0812DCC6
+ .align 2, 0
+_0812DCB4: .4byte gUnknown_0202F7C8
+_0812DCB8: .4byte gUnknown_030042C0
+_0812DCBC: .4byte 0x0000ff79
+_0812DCC0:
+ ldr r1, _0812DCEC
+ ldr r2, _0812DCF0
+ adds r0, r2, 0
+_0812DCC6:
+ strh r0, [r1]
+ ldr r1, _0812DCF4
+ movs r0, 0
+ strh r0, [r1]
+_0812DCCE:
+ ldr r0, _0812DCF8
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0812DCEC
+ ldrh r0, [r0]
+ strh r0, [r1, 0x1C]
+ ldr r0, _0812DCF4
+ ldrh r0, [r0]
+ strh r0, [r1, 0x1E]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ b _0812DDD2
+ .align 2, 0
+_0812DCEC: .4byte gUnknown_030042C0
+_0812DCF0: .4byte 0x0000fff6
+_0812DCF4: .4byte gUnknown_030041B4
+_0812DCF8: .4byte gTasks
+_0812DCFC:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x10]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x10]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _0812DD12
+ b _0812DE80
+_0812DD12:
+ movs r0, 0
+ strh r0, [r3, 0x10]
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _0812DD28
+ movs r0, 0xC
+ strh r0, [r3, 0xA]
+_0812DD28:
+ ldr r2, _0812DD48
+ ldrh r1, [r3, 0xA]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r2]
+ movs r4, 0xA
+ ldrsh r0, [r3, r4]
+ cmp r0, 0xC
+ beq _0812DD40
+ b _0812DE80
+_0812DD40:
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ b _0812DE80
+ .align 2, 0
+_0812DD48: .4byte REG_BLDALPHA
+_0812DD4C:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0xA]
+ subs r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0812DD64
+ movs r0, 0
+ strh r0, [r3, 0xA]
+_0812DD64:
+ ldr r2, _0812DDA4
+ ldrh r1, [r3, 0xA]
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _0812DD7C
+ b _0812DE80
+_0812DD7C:
+ ldr r2, _0812DDA8
+ ldr r1, _0812DDAC
+ movs r4, 0xC
+ ldrsh r0, [r3, r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r1, [r3, 0x1C]
+ adds r0, r1
+ strh r0, [r2]
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _0812DDB0
+ strh r0, [r3, 0x8]
+ b _0812DE80
+ .align 2, 0
+_0812DDA4: .4byte REG_BLDALPHA
+_0812DDA8: .4byte gUnknown_030042C0
+_0812DDAC: .4byte gUnknown_084025C0
+_0812DDB0:
+ movs r0, 0x3
+ strh r0, [r3, 0x8]
+ b _0812DE80
+_0812DDB6:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r0, [r1, 0xE]
+ adds r0, 0x1
+ strh r0, [r1, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _0812DE80
+ movs r0, 0
+ strh r0, [r1, 0xE]
+ movs r0, 0x1
+_0812DDD2:
+ strh r0, [r1, 0x8]
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xE4
+ bl PlaySE12WithPanning
+ b _0812DE80
+_0812DDEA:
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp]
+ movs r3, 0x80
+ lsls r3, 6
+ add r5, sp, 0xC
+ movs r6, 0
+ ldr r1, _0812DE90
+ movs r4, 0x80
+ lsls r4, 5
+ mov r8, r5
+ ldr r0, _0812DE94
+ mov r12, r0
+ movs r0, 0x85
+ lsls r0, 24
+ mov r9, r0
+_0812DE0C:
+ str r6, [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 _0812DE0C
+ str r6, [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 r4, 0
+ str r4, [sp, 0xC]
+ ldr r0, _0812DE90
+ str r5, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _0812DE98
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812DE5A
+ ldr r2, _0812DE9C
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_0812DE5A:
+ ldr r2, _0812DE9C
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0812DEA0
+ strh r4, [r0]
+ ldr r0, _0812DEA4
+ strh r4, [r0]
+ ldr r0, _0812DEA8
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, r7, 0
+ bl move_anim_task_del
+_0812DE80:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812DE90: .4byte 0x040000d4
+_0812DE94: .4byte 0x85000400
+_0812DE98: .4byte 0x85000200
+_0812DE9C: .4byte REG_BG1CNT
+_0812DEA0: .4byte gUnknown_030042C0
+_0812DEA4: .4byte gUnknown_030041B4
+_0812DEA8: .4byte REG_BLDCNT
+ thumb_func_end sub_812DB84
+
+ thumb_func_start sub_812DEAC
+sub_812DEAC: @ 812DEAC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r7, r0, 0
+ bl Random
+ lsls r0, 16
+ movs r1, 0xFC
+ lsls r1, 14
+ ands r1, r0
+ lsrs r5, r1, 16
+ adds r1, r5, 0
+ cmp r1, 0x1F
+ ble _0812DED6
+ movs r0, 0x20
+ subs r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_0812DED6:
+ ldr r4, _0812DFD0
+ ldrb r0, [r4]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r5
+ strh r0, [r7, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x20
+ strh r0, [r7, 0x22]
+ ldr r1, _0812DFD4
+ ldrh r0, [r1]
+ strh r0, [r7, 0x30]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r7, 0x32]
+ ldr r4, _0812DFD8
+ movs r0, 0x20
+ ldrsh r1, [r7, r0]
+ movs r0, 0x22
+ ldrsh r2, [r7, r0]
+ adds r5, r7, 0
+ adds r5, 0x43
+ ldrb r3, [r5]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ bl CreateSprite
+ mov r9, r0
+ mov r1, r9
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ movs r0, 0x20
+ ldrsh r1, [r7, r0]
+ movs r0, 0x22
+ ldrsh r2, [r7, r0]
+ ldrb r3, [r5]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ bl CreateSprite
+ mov r8, r0
+ mov r1, r8
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ mov r0, r9
+ lsls r2, r0, 4
+ add r2, r9
+ lsls r2, 2
+ ldr r1, _0812DFDC
+ mov r10, r1
+ adds r5, r2, r1
+ adds r0, r5, 0
+ movs r1, 0x1
+ str r2, [sp]
+ bl StartSpriteAnim
+ mov r0, r8
+ lsls r6, r0, 4
+ add r6, r8
+ lsls r6, 2
+ mov r1, r10
+ adds r4, r6, r1
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ ldr r1, _0812DFD4
+ ldrh r0, [r1]
+ strh r0, [r5, 0x30]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x32]
+ ldrh r0, [r1]
+ strh r0, [r4, 0x30]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x32]
+ ldr r0, _0812DFE0
+ strh r0, [r5, 0x3C]
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r4, 0x3C]
+ adds r5, 0x3E
+ ldrb r0, [r5]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r5]
+ adds r4, 0x3E
+ ldrb r0, [r4]
+ orrs r0, r1
+ strb r0, [r4]
+ movs r0, 0x1C
+ add r10, r0
+ ldr r2, [sp]
+ add r2, r10
+ ldr r0, _0812DFE4
+ str r0, [r2]
+ add r6, r10
+ str r0, [r6]
+ mov r1, r9
+ strh r1, [r7, 0x3A]
+ mov r0, r8
+ strh r0, [r7, 0x3C]
+ ldr r0, _0812DFE8
+ str r0, [r7, 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
+_0812DFD0: .4byte gUnknown_0202F7C8
+_0812DFD4: .4byte gUnknown_03004B00
+_0812DFD8: .4byte gBattleAnimSpriteTemplate_84025EC
+_0812DFDC: .4byte gSprites
+_0812DFE0: .4byte 0x0000ffff
+_0812DFE4: .4byte sub_812E0F8
+_0812DFE8: .4byte sub_812DFEC
+ thumb_func_end sub_812DEAC
+
+ thumb_func_start sub_812DFEC
+sub_812DFEC: @ 812DFEC
+ push {lr}
+ adds r3, r0, 0
+ ldrh r2, [r3, 0x32]
+ ldrh r0, [r3, 0x34]
+ adds r2, r0
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r1, [r3, 0x26]
+ subs r1, r0
+ strh r1, [r3, 0x26]
+ movs r0, 0xFF
+ ands r2, r0
+ strh r2, [r3, 0x34]
+ movs r2, 0x36
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bne _0812E03A
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r1, 0x8
+ negs r1, r1
+ cmp r0, r1
+ bge _0812E03A
+ ldr r2, _0812E094
+ movs r0, 0x3A
+ ldrsh r1, [r3, 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, [r3, 0x36]
+ adds r0, 0x1
+ strh r0, [r3, 0x36]
+_0812E03A:
+ movs r1, 0x36
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x1
+ bne _0812E06E
+ movs r2, 0x26
+ ldrsh r1, [r3, r2]
+ movs r0, 0x10
+ negs r0, r0
+ cmp r1, r0
+ bge _0812E06E
+ ldr r2, _0812E094
+ movs r0, 0x3C
+ ldrsh r1, [r3, 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, [r3, 0x36]
+ adds r0, 0x1
+ strh r0, [r3, 0x36]
+_0812E06E:
+ ldrh r0, [r3, 0x30]
+ subs r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0812E090
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0812E098
+ str r0, [r3, 0x1C]
+_0812E090:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812E094: .4byte gSprites
+_0812E098: .4byte sub_812E09C
+ thumb_func_end sub_812DFEC
+
+ thumb_func_start sub_812E09C
+sub_812E09C: @ 812E09C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r5, _0812E0F0
+ movs r0, 0x3A
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r3, r0, 2
+ adds r6, r5, 0
+ adds r6, 0x1C
+ adds r0, r3, r6
+ ldr r2, [r0]
+ ldr r0, _0812E0F4
+ cmp r2, r0
+ bne _0812E0E8
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldr r0, [r1]
+ cmp r0, r2
+ bne _0812E0E8
+ adds r0, r3, r5
+ bl DestroySprite
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812E0E8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812E0F0: .4byte gSprites
+_0812E0F4: .4byte SpriteCallbackDummy
+ thumb_func_end sub_812E09C
+
+ thumb_func_start sub_812E0F8
+sub_812E0F8: @ 812E0F8
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _0812E144
+ ldrh r2, [r3, 0x32]
+ ldrh r1, [r3, 0x34]
+ adds r2, r1
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r3, 0x26]
+ subs r0, r1
+ strh r0, [r3, 0x26]
+ movs r0, 0xFF
+ ands r2, r0
+ strh r2, [r3, 0x34]
+ ldrh r0, [r3, 0x30]
+ subs r0, 0x1
+ strh r0, [r3, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0812E144
+ mov r1, r12
+ ldrb r0, [r1]
+ movs r1, 0x4
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ ldr r0, _0812E148
+ str r0, [r3, 0x1C]
+_0812E144:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812E148: .4byte SpriteCallbackDummy
+ thumb_func_end sub_812E0F8
+
+ thumb_func_start sub_812E14C
+sub_812E14C: @ 812E14C
+ push {r4-r6,lr}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _0812E174
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r4, r1, 0
+ cmp r0, 0x5
+ bls _0812E16A
+ b _0812E476
+_0812E16A:
+ lsls r0, 2
+ ldr r1, _0812E178
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0812E174: .4byte gTasks
+_0812E178: .4byte _0812E17C
+ .align 2, 0
+_0812E17C:
+ .4byte _0812E194
+ .4byte _0812E300
+ .4byte _0812E388
+ .4byte _0812E3BC
+ .4byte _0812E3E8
+ .4byte _0812E420
+_0812E194:
+ ldr r1, _0812E230
+ ldr r3, _0812E234
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0812E238
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _0812E23C
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r1, [r4]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812E1D4
+ ldrb r0, [r4]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4]
+_0812E1D4:
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0xC]
+ ldr r2, _0812E240
+ add r0, sp, 0xC
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _0812E244
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _0812E248
+ bl LZDecompressVram
+ ldr r0, _0812E24C
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _0812E250
+ 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 _0812E260
+ mov r0, sp
+ ldrb r0, [r0, 0x8]
+ ldr r1, [sp, 0x4]
+ movs r2, 0
+ movs r3, 0
+ bl sub_80763FC
+ ldr r1, _0812E254
+ ldr r3, _0812E258
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _0812E25C
+ strh r4, [r0]
+ b _0812E2D2
+ .align 2, 0
+_0812E230: .4byte REG_BLDCNT
+_0812E234: .4byte 0x00003f42
+_0812E238: .4byte 0x00000d03
+_0812E23C: .4byte REG_BG1CNT
+_0812E240: .4byte 0x040000d4
+_0812E244: .4byte 0x85000400
+_0812E248: .4byte gUnknown_08D2AA98
+_0812E24C: .4byte gUnknown_08D2A9E0
+_0812E250: .4byte gUnknown_08D2AA80
+_0812E254: .4byte gUnknown_030042C0
+_0812E258: .4byte 0x0000ffc8
+_0812E25C: .4byte gUnknown_030041B4
+_0812E260:
+ ldr r0, _0812E2A0
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812E2B4
+ ldr r1, _0812E2A4
+ cmp r4, 0x1
+ bne _0812E284
+ ldr r2, _0812E2A8
+ adds r0, r2, 0
+ strh r0, [r1]
+_0812E284:
+ cmp r4, 0x3
+ bne _0812E28E
+ ldr r3, _0812E2AC
+ adds r0, r3, 0
+ strh r0, [r1]
+_0812E28E:
+ cmp r4, 0
+ bne _0812E296
+ movs r0, 0xE
+ strh r0, [r1]
+_0812E296:
+ cmp r4, 0x2
+ bne _0812E2CC
+ ldr r1, _0812E2A4
+ ldr r2, _0812E2B0
+ b _0812E2C8
+ .align 2, 0
+_0812E2A0: .4byte gUnknown_0202F7C9
+_0812E2A4: .4byte gUnknown_030042C0
+_0812E2A8: .4byte 0x0000ff65
+_0812E2AC: .4byte 0x0000ff8d
+_0812E2B0: .4byte 0x0000ffec
+_0812E2B4:
+ cmp r4, 0x1
+ bne _0812E2C0
+ ldr r1, _0812E2EC
+ ldr r3, _0812E2F0
+ adds r0, r3, 0
+ strh r0, [r1]
+_0812E2C0:
+ cmp r4, 0
+ bne _0812E2CC
+ ldr r1, _0812E2EC
+ ldr r2, _0812E2F4
+_0812E2C8:
+ adds r0, r2, 0
+ strh r0, [r1]
+_0812E2CC:
+ ldr r1, _0812E2F8
+ movs r0, 0
+ strh r0, [r1]
+_0812E2D2:
+ ldr r0, _0812E2FC
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0812E2EC
+ ldrh r0, [r0]
+ strh r0, [r1, 0x1C]
+ ldr r0, _0812E2F8
+ ldrh r0, [r0]
+ strh r0, [r1, 0x1E]
+ b _0812E380
+ .align 2, 0
+_0812E2EC: .4byte gUnknown_030042C0
+_0812E2F0: .4byte 0x0000ff79
+_0812E2F4: .4byte 0x0000fff6
+_0812E2F8: .4byte gUnknown_030041B4
+_0812E2FC: .4byte gTasks
+_0812E300:
+ ldr r1, _0812E334
+ lsls r4, r6, 2
+ adds r0, r4, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r0, 0
+ strh r0, [r5, 0xE]
+ ldr r0, _0812E338
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812E344
+ ldr r2, _0812E33C
+ ldr r1, _0812E340
+ movs r3, 0xC
+ ldrsh r0, [r5, r3]
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrh r5, [r5, 0x1C]
+ adds r0, r5
+ b _0812E356
+ .align 2, 0
+_0812E334: .4byte gTasks
+_0812E338: .4byte gUnknown_0202F7C9
+_0812E33C: .4byte gUnknown_030042C0
+_0812E340: .4byte gUnknown_08402604
+_0812E344:
+ ldr r2, _0812E374
+ ldr r1, _0812E378
+ movs r3, 0xC
+ ldrsh r0, [r5, r3]
+ adds r0, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ ldrh r0, [r5, 0x1C]
+ subs r0, r1
+_0812E356:
+ strh r0, [r2]
+ ldr r0, _0812E37C
+ adds r1, r4, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ adds r0, 0x1
+ strh r0, [r1, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _0812E380
+ strh r0, [r1, 0x8]
+ b _0812E476
+ .align 2, 0
+_0812E374: .4byte gUnknown_030042C0
+_0812E378: .4byte gUnknown_08402604
+_0812E37C: .4byte gTasks
+_0812E380:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0812E476
+_0812E388:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r4
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bgt _0812E3A2
+ movs r0, 0x5
+ strh r0, [r4, 0xA]
+_0812E3A2:
+ ldr r2, _0812E3B8
+ ldrh r0, [r4, 0xA]
+ lsls r0, 8
+ movs r1, 0x3
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bne _0812E476
+ b _0812E3DC
+ .align 2, 0
+_0812E3B8: .4byte REG_BLDALPHA
+_0812E3BC:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r4
+ ldrh r1, [r4, 0xE]
+ adds r1, 0x1
+ strh r1, [r4, 0xE]
+ lsls r1, 16
+ asrs r1, 16
+ ldr r2, _0812E3E4
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r1, r0
+ ble _0812E476
+_0812E3DC:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812E476
+ .align 2, 0
+_0812E3E4: .4byte gUnknown_08402608
+_0812E3E8:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r4
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ ble _0812E402
+ movs r0, 0xD
+ strh r0, [r4, 0xA]
+_0812E402:
+ ldr r2, _0812E41C
+ ldrh r0, [r4, 0xA]
+ lsls r0, 8
+ movs r1, 0x3
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xD
+ bne _0812E476
+ movs r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812E476
+ .align 2, 0
+_0812E41C: .4byte REG_BLDALPHA
+_0812E420:
+ mov r0, sp
+ bl sub_8078914
+ ldr r2, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0xC]
+ ldr r1, _0812E480
+ add r0, sp, 0xC
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _0812E484
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812E450
+ ldr r2, _0812E488
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_0812E450:
+ ldr r2, _0812E488
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0812E48C
+ strh r4, [r0]
+ ldr r0, _0812E490
+ strh r4, [r0]
+ ldr r0, _0812E494
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, r6, 0
+ bl move_anim_task_del
+_0812E476:
+ add sp, 0x10
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812E480: .4byte 0x040000d4
+_0812E484: .4byte 0x85000200
+_0812E488: .4byte REG_BG1CNT
+_0812E48C: .4byte gUnknown_030042C0
+_0812E490: .4byte gUnknown_030041B4
+_0812E494: .4byte REG_BLDCNT
+ thumb_func_end sub_812E14C
+
+ thumb_func_start sub_812E498
+sub_812E498: @ 812E498
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _0812E4D0
+ 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 _0812E4D8
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0812E4D4
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812E4EA
+ .align 2, 0
+_0812E4D0: .4byte gTasks
+_0812E4D4: .4byte gUnknown_08402610
+_0812E4D8:
+ adds r0, r4, 0
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812E4EA
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0812E4EA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812E498
+
+ thumb_func_start sub_812E4F0
+sub_812E4F0: @ 812E4F0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ bne _0812E50E
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_80787B0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _0812E562
+_0812E50E:
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ cmp r1, 0x14
+ ble _0812E562
+ ldrh r0, [r4, 0x30]
+ adds r0, 0xA0
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x80
+ strh r0, [r4, 0x32]
+ ldr r0, _0812E53C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812E540
+ ldrh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ negs r0, r0
+ b _0812E546
+ .align 2, 0
+_0812E53C: .4byte gUnknown_0202F7C8
+_0812E540:
+ ldrh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+_0812E546:
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x40
+ ble _0812E562
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812E562:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812E4F0
+
+ thumb_func_start sub_812E568
+sub_812E568: @ 812E568
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _0812E58C
+ adds r4, r0, r1
+ ldr r5, _0812E590
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0812E594
+ adds r0, r2, 0
+ bl move_anim_task_del
+ b _0812E628
+ .align 2, 0
+_0812E58C: .4byte gTasks
+_0812E590: .4byte gUnknown_03004B00
+_0812E594:
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bge _0812E5A0
+ movs r0, 0
+ strh r0, [r5, 0x4]
+_0812E5A0:
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x2
+ ble _0812E5AC
+ movs r0, 0x2
+ strh r0, [r5, 0x4]
+_0812E5AC:
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ movs r0, 0x4
+ ldrsh r1, [r5, r0]
+ lsls r1, 1
+ movs r0, 0x8
+ subs r0, r1
+ strh r0, [r4, 0xE]
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ lsls r0, 7
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1
+ strh r0, [r4, 0x10]
+ ldrh r0, [r5, 0x4]
+ adds r0, 0x2
+ strh r0, [r4, 0x12]
+ ldrh r0, [r5, 0x2]
+ subs r0, 0x1
+ strh r0, [r4, 0x14]
+ ldrb r0, [r5]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0812E5F8
+ ldr r0, _0812E5F4
+ b _0812E5FA
+ .align 2, 0
+_0812E5F4: .4byte gUnknown_0202F7C8
+_0812E5F8:
+ ldr r0, _0812E630
+_0812E5FA:
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812E618
+ movs r1, 0x10
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4, 0x10]
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ strh r0, [r4, 0x12]
+_0812E618:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_8078E70
+ ldr r0, _0812E634
+ str r0, [r4]
+_0812E628:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812E630: .4byte gUnknown_0202F7C9
+_0812E634: .4byte sub_812E638
+ thumb_func_end sub_812E568
+
+ thumb_func_start sub_812E638
+sub_812E638: @ 812E638
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _0812E65C
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r6, [r4, r0]
+ cmp r6, 0x1
+ beq _0812E6C0
+ cmp r6, 0x1
+ bgt _0812E660
+ cmp r6, 0
+ beq _0812E66C
+ b _0812E798
+ .align 2, 0
+_0812E65C: .4byte gTasks
+_0812E660:
+ cmp r6, 0x2
+ beq _0812E718
+ cmp r6, 0x3
+ bne _0812E66A
+ b _0812E788
+_0812E66A:
+ b _0812E798
+_0812E66C:
+ ldr r2, _0812E6BC
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x12]
+ ldrh r2, [r0, 0x24]
+ adds r1, r2
+ strh r1, [r0, 0x24]
+ ldrh r0, [r4, 0xC]
+ ldrh r1, [r4, 0x10]
+ subs r0, r1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0xC]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F9C
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _0812E798
+ strh r6, [r4, 0xA]
+ b _0812E780
+ .align 2, 0
+_0812E6BC: .4byte gSprites
+_0812E6C0:
+ ldr r2, _0812E714
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x24]
+ ldrh r2, [r4, 0x12]
+ subs r1, r2
+ strh r1, [r0, 0x24]
+ ldrh r0, [r4, 0x10]
+ ldrh r1, [r4, 0xC]
+ adds r0, r1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0xC]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F9C
+ ldrh r1, [r4, 0xA]
+ adds r1, 0x1
+ strh r1, [r4, 0xA]
+ lsls r1, 16
+ asrs r1, 16
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ lsls r0, 1
+ cmp r1, r0
+ blt _0812E798
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ b _0812E780
+ .align 2, 0
+_0812E714: .4byte gSprites
+_0812E718:
+ ldr r2, _0812E77C
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r4, 0x12]
+ ldrh r2, [r0, 0x24]
+ adds r1, r2
+ movs r5, 0
+ strh r1, [r0, 0x24]
+ ldrh r0, [r4, 0xC]
+ ldrh r1, [r4, 0x10]
+ subs r0, r1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r4, 0xC]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F9C
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0xE
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _0812E798
+ ldrh r1, [r4, 0x14]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0812E780
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x14]
+ strh r5, [r4, 0xA]
+ strh r5, [r4, 0x8]
+ b _0812E798
+ .align 2, 0
+_0812E77C: .4byte gSprites
+_0812E780:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812E798
+_0812E788:
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F40
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0812E798:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812E638
+
+ thumb_func_start sub_812E7A0
+sub_812E7A0: @ 812E7A0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _0812E7BC
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _0812E7C4
+ strh r0, [r4, 0x20]
+ ldr r1, _0812E7C0
+ ldrh r0, [r1]
+ b _0812E7CE
+ .align 2, 0
+_0812E7BC: .4byte gUnknown_0202F7C8
+_0812E7C0: .4byte gUnknown_03004B00
+_0812E7C4:
+ movs r0, 0xF0
+ strh r0, [r4, 0x20]
+ ldr r1, _0812E7E8
+ ldrh r0, [r1]
+ subs r0, 0x1E
+_0812E7CE:
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x32]
+ ldrb r1, [r1, 0x2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, _0812E7EC
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812E7E8: .4byte gUnknown_03004B00
+_0812E7EC: .4byte sub_812E7F0
+ thumb_func_end sub_812E7A0
+
+ thumb_func_start sub_812E7F0
+sub_812E7F0: @ 812E7F0
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x3
+ strh r0, [r4, 0x2E]
+ ldr r0, _0812E830
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812E834
+ ldrh r1, [r4, 0x20]
+ adds r1, 0x5
+ strh r1, [r4, 0x20]
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x1
+ strh r0, [r4, 0x22]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0xF0
+ ble _0812E822
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812E822:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0xFF
+ ands r0, r1
+ movs r1, 0x10
+ bl Sin
+ b _0812E858
+ .align 2, 0
+_0812E830: .4byte gUnknown_0202F7C8
+_0812E834:
+ ldrh r1, [r4, 0x20]
+ subs r1, 0x5
+ strh r1, [r4, 0x20]
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+ lsls r1, 16
+ cmp r1, 0
+ bge _0812E84C
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812E84C:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0xFF
+ ands r0, r1
+ movs r1, 0x10
+ bl Cos
+_0812E858:
+ strh r0, [r4, 0x26]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812E7F0
+
+ thumb_func_start sub_812E860
+sub_812E860: @ 812E860
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _0812E8A8
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ strh r0, [r4, 0xE]
+ movs r0, 0x20
+ strh r0, [r4, 0x20]
+ movs r0, 0x40
+ strh r0, [r4, 0x22]
+ movs r0, 0x80
+ lsls r0, 4
+ strh r0, [r4, 0x24]
+ ldr r0, _0812E8AC
+ ldrb r0, [r0]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ movs r1, 0
+ bl sub_8078E70
+ ldr r0, _0812E8B0
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812E8A8: .4byte gTasks
+_0812E8AC: .4byte gUnknown_03004B00
+_0812E8B0: .4byte sub_812E8B4
+ thumb_func_end sub_812E860
+
+ thumb_func_start sub_812E8B4
+sub_812E8B4: @ 812E8B4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _0812E8E0
+ adds r7, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ mov r8, r0
+ cmp r0, 0x1
+ beq _0812E950
+ cmp r0, 0x1
+ bgt _0812E8E4
+ cmp r0, 0
+ beq _0812E8EC
+ b _0812E9CA
+ .align 2, 0
+_0812E8E0: .4byte gTasks
+_0812E8E4:
+ mov r2, r8
+ cmp r2, 0x2
+ beq _0812E9B8
+ b _0812E9CA
+_0812E8EC:
+ movs r3, 0x80
+ lsls r3, 2
+ adds r0, r3, 0
+ ldrh r1, [r7, 0xC]
+ adds r2, r0, r1
+ strh r2, [r7, 0xC]
+ lsls r0, r2, 16
+ asrs r0, 16
+ ldrh r3, [r7, 0x24]
+ mov r8, r3
+ movs r3, 0x24
+ ldrsh r1, [r7, r3]
+ cmp r0, r1
+ blt _0812E9CA
+ mov r0, r8
+ subs r5, r0, r2
+ lsls r5, 16
+ asrs r5, 16
+ adds r6, r1, 0
+ lsls r6, 1
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl __divsi3
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl __modsi3
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, 16
+ asrs r4, 16
+ movs r1, 0x1
+ ands r4, r1
+ cmp r4, 0
+ bne _0812E944
+ lsls r0, 16
+ asrs r0, 16
+ mov r2, r8
+ subs r0, r2, r0
+ b _0812E9A2
+_0812E944:
+ lsls r0, 16
+ asrs r0, 16
+ mov r3, r8
+ subs r0, r3
+ strh r0, [r7, 0xC]
+ b _0812E9CA
+_0812E950:
+ ldr r1, _0812E9A8
+ adds r0, r1, 0
+ ldrh r2, [r7, 0xC]
+ adds r1, r0, r2
+ strh r1, [r7, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r7, r3]
+ movs r2, 0x24
+ ldrsh r6, [r7, r2]
+ cmn r0, r6
+ bgt _0812E9CA
+ ldrh r3, [r7, 0x24]
+ mov r9, r3
+ mov r0, r9
+ subs r4, r0, r1
+ lsls r4, 16
+ asrs r4, 16
+ lsls r6, 1
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl __divsi3
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl __modsi3
+ lsls r0, 16
+ lsrs r2, r0, 16
+ mov r1, r8
+ ands r1, r5
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ cmp r1, 0
+ bne _0812E9AC
+ lsls r0, r2, 16
+ asrs r0, 16
+ mov r2, r9
+ subs r0, r2
+_0812E9A2:
+ strh r0, [r7, 0xC]
+ strh r1, [r7, 0x8]
+ b _0812E9CA
+ .align 2, 0
+_0812E9A8: .4byte 0xfffffe00
+_0812E9AC:
+ lsls r0, r2, 16
+ asrs r0, 16
+ mov r3, r9
+ subs r0, r3, r0
+ strh r0, [r7, 0xC]
+ b _0812E9CA
+_0812E9B8:
+ ldrh r0, [r7, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F40
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _0812EA40
+_0812E9CA:
+ ldrh r0, [r7, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x80
+ lsls r2, 1
+ ldrh r3, [r7, 0xC]
+ adds r1, r2, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r7, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8078F9C
+ ldr r2, _0812EA38
+ movs r0, 0x26
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ movs r2, 0xC
+ ldrsh r0, [r7, r2]
+ cmp r0, 0
+ bge _0812E9FE
+ adds r0, 0x3F
+_0812E9FE:
+ asrs r0, 6
+ negs r0, r0
+ strh r0, [r1, 0x24]
+ ldrh r0, [r7, 0xA]
+ adds r0, 0x1
+ strh r0, [r7, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _0812EA40
+ ldrh r1, [r7, 0x20]
+ movs r3, 0x20
+ ldrsh r0, [r7, r3]
+ cmp r0, 0
+ beq _0812EA3C
+ subs r0, r1, 0x1
+ strh r0, [r7, 0x20]
+ ldrh r0, [r7, 0x24]
+ ldrh r1, [r7, 0x22]
+ subs r0, r1
+ strh r0, [r7, 0x24]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bgt _0812EA40
+ movs r0, 0x10
+ strh r0, [r7, 0x24]
+ b _0812EA40
+ .align 2, 0
+_0812EA38: .4byte gSprites
+_0812EA3C:
+ movs r0, 0x2
+ strh r0, [r7, 0x8]
+_0812EA40:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812E8B4
+
+ thumb_func_start sub_812EA4C
+sub_812EA4C: @ 812EA4C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0812EAAC
+ ldr r6, _0812EAA4
+ movs r2, 0x4
+ ldrsh r0, [r6, r2]
+ cmp r0, 0
+ bne _0812EA80
+ ldr r4, _0812EAA8
+ 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]
+_0812EA80:
+ ldrh r0, [r6]
+ ldrh r1, [r5, 0x20]
+ adds r0, r1
+ strh r0, [r5, 0x20]
+ ldrh r1, [r6, 0x2]
+ ldrh r2, [r5, 0x22]
+ adds r0, r1, r2
+ strh r0, [r5, 0x22]
+ movs r0, 0x80
+ strh r0, [r5, 0x30]
+ movs r0, 0xC0
+ lsls r0, 2
+ strh r0, [r5, 0x32]
+ strh r1, [r5, 0x34]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _0812EB0A
+ .align 2, 0
+_0812EAA4: .4byte gUnknown_03004B00
+_0812EAA8: .4byte gUnknown_0202F7C8
+_0812EAAC:
+ ldrh r1, [r5, 0x30]
+ lsls r0, r1, 16
+ asrs r0, 24
+ strh r0, [r5, 0x24]
+ ldrh r0, [r5, 0x32]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r2, [r5, 0x26]
+ adds r0, r2
+ strh r0, [r5, 0x26]
+ movs r2, 0x36
+ ldrsh r0, [r5, r2]
+ adds r4, r1, 0
+ cmp r0, 0
+ bne _0812EAEA
+ movs r0, 0x26
+ ldrsh r1, [r5, r0]
+ movs r2, 0x34
+ ldrsh r0, [r5, r2]
+ cmn r1, r0
+ ble _0812EAEA
+ movs r0, 0x1
+ strh r0, [r5, 0x36]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ negs r0, r0
+ movs r1, 0x3
+ bl __divsi3
+ lsls r0, 1
+ strh r0, [r5, 0x32]
+_0812EAEA:
+ adds r0, r4, 0
+ adds r0, 0xC0
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x80
+ strh r0, [r5, 0x32]
+ adds r0, r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0812EB0A
+ adds r0, r5, 0
+ bl move_anim_8072740
+_0812EB0A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812EA4C
+
+ thumb_func_start sub_812EB10
+sub_812EB10: @ 812EB10
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r7, r0, 0
+ ldr r1, _0812EB40
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _0812EC1C
+ ldr r0, _0812EB44
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ mov r8, r0
+ cmp r1, 0
+ bne _0812EB4C
+ ldr r0, _0812EB48
+ b _0812EB4E
+ .align 2, 0
+_0812EB40: .4byte gTasks
+_0812EB44: .4byte gUnknown_03004B00
+_0812EB48: .4byte gUnknown_0202F7C8
+_0812EB4C:
+ ldr r0, _0812EB88
+_0812EB4E:
+ ldrb r0, [r0]
+ strh r0, [r2, 0x1E]
+ mov r1, r8
+ ldrb r0, [r1]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0812EB8C
+ lsls r4, r7, 2
+ adds r0, r4, r7
+ lsls r0, 3
+ adds r6, r0, r1
+ strh r5, [r6, 0x1C]
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8078E70
+ mov r2, r8
+ movs r3, 0x2
+ ldrsh r0, [r2, r3]
+ cmp r0, 0x1
+ beq _0812EBB0
+ cmp r0, 0x1
+ bgt _0812EB90
+ cmp r0, 0
+ beq _0812EB98
+ lsls r2, r5, 4
+ b _0812EBF8
+ .align 2, 0
+_0812EB88: .4byte gUnknown_0202F7C9
+_0812EB8C: .4byte gTasks
+_0812EB90:
+ cmp r0, 0x2
+ beq _0812EBBA
+ lsls r2, r5, 4
+ b _0812EBF8
+_0812EB98:
+ movs r2, 0xA0
+ lsls r2, 1
+ adds r0, r5, 0
+ movs r1, 0xE0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ adds r0, r5, 0
+ bl sub_8079A64
+ lsls r2, r5, 4
+ b _0812EBF8
+_0812EBB0:
+ movs r2, 0x98
+ lsls r2, 1
+ movs r3, 0xF0
+ lsls r3, 4
+ b _0812EBC2
+_0812EBBA:
+ movs r2, 0x98
+ lsls r2, 1
+ movs r3, 0xF1
+ lsls r3, 8
+_0812EBC2:
+ adds r0, r5, 0
+ movs r1, 0xD0
+ bl obj_id_set_rotscale
+ adds r0, r5, 0
+ bl sub_8079A64
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812EBE8
+ ldrb r0, [r6, 0x1E]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsls r2, r5, 4
+ cmp r0, 0
+ bne _0812EBF8
+_0812EBE8:
+ ldr r0, _0812EC14
+ lsls r2, r5, 4
+ adds r1, r2, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x10
+ strh r0, [r1, 0x26]
+_0812EBF8:
+ ldr r1, _0812EC14
+ adds r0, r2, r5
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x2
+ strh r1, [r0, 0x24]
+ ldr r0, _0812EC18
+ adds r1, r4, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0812EC68
+ .align 2, 0
+_0812EC14: .4byte gSprites
+_0812EC18: .4byte gTasks
+_0812EC1C:
+ ldrb r5, [r2, 0x1C]
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ movs r4, 0
+ strh r0, [r2, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _0812EC40
+ strh r4, [r2, 0xC]
+ ldr r0, _0812EC74
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x24]
+ negs r0, r0
+ strh r0, [r1, 0x24]
+_0812EC40:
+ ldrh r0, [r2, 0xA]
+ adds r0, 0x1
+ strh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ bne _0812EC68
+ adds r0, r5, 0
+ bl sub_8078F40
+ ldr r1, _0812EC74
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ strh r4, [r0, 0x24]
+ strh r4, [r0, 0x26]
+ adds r0, r7, 0
+ bl move_anim_task_del
+_0812EC68:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812EC74: .4byte gSprites
+ thumb_func_end sub_812EB10
+
+ thumb_func_start sub_812EC78
+sub_812EC78: @ 812EC78
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xC
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, r0
+ ldr r3, _0812ECC4
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _0812ECC8
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ bl Random
+ ldr r5, _0812ECCC
+ ands r5, r0
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ movs r0, 0x1
+ ands r0, r5
+ cmp r0, 0
+ beq _0812ECD0
+ movs r2, 0xBC
+ lsls r2, 3
+ adds r0, r5, r2
+ b _0812ECD8
+ .align 2, 0
+_0812ECC4: .4byte 0x000003ff
+_0812ECC8: .4byte 0xfffffc00
+_0812ECCC: .4byte 0x000001ff
+_0812ECD0:
+ movs r3, 0xBC
+ lsls r3, 3
+ adds r0, r3, 0
+ subs r0, r5
+_0812ECD8:
+ strh r0, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0812ECEA
+ movs r2, 0x90
+ lsls r2, 3
+ adds r0, r1, r2
+ b _0812ECF2
+_0812ECEA:
+ movs r3, 0x90
+ lsls r3, 3
+ adds r0, r3, 0
+ subs r0, r1
+_0812ECF2:
+ strh r0, [r4, 0x30]
+ ldr r0, _0812ED04
+ ldrh r0, [r0]
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0812ED0C
+ ldr r0, _0812ED08
+ b _0812ED0E
+ .align 2, 0
+_0812ED04: .4byte gUnknown_03004B00
+_0812ED08: .4byte 0x0000fff8
+_0812ED0C:
+ movs r0, 0xF8
+_0812ED0E:
+ strh r0, [r4, 0x20]
+ movs r0, 0x68
+ strh r0, [r4, 0x22]
+ ldr r0, _0812ED20
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812ED20: .4byte sub_812ED24
+ thumb_func_end sub_812EC78
+
+ thumb_func_start sub_812ED24
+sub_812ED24: @ 812ED24
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812ED3C
+ ldrh r3, [r4, 0x2E]
+ lsls r0, r3, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ b _0812ED46
+_0812ED3C:
+ ldrh r3, [r4, 0x2E]
+ lsls r1, r3, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x24]
+ subs r0, r1
+_0812ED46:
+ 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]
+ adds r0, r3, 0
+ subs r0, 0x16
+ strh r0, [r4, 0x2E]
+ adds r1, r2, 0
+ subs r1, 0x30
+ strh r1, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0812ED6A
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+_0812ED6A:
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _0812ED7E
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812ED7E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812ED24
+
+ thumb_func_start sub_812ED84
+sub_812ED84: @ 812ED84
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _0812EDE4
+ ldr r2, _0812EDE8
+ 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 r0, _0812EDEC
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _0812EDF0
+ strh r1, [r0]
+ ldr r0, _0812EDF4
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ ldr r0, _0812EDF8
+ ldrh r0, [r0, 0x4]
+ strh r0, [r4, 0x2E]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8078764
+ ldrb r1, [r4, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0812EDFC
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812EDE4: .4byte REG_WINOUT
+_0812EDE8: .4byte 0x00001f3f
+_0812EDEC: .4byte gUnknown_030042C4
+_0812EDF0: .4byte gUnknown_03004240
+_0812EDF4: .4byte REG_WIN0H
+_0812EDF8: .4byte gUnknown_03004B00
+_0812EDFC: .4byte sub_812EE00
+ thumb_func_end sub_812ED84
+
+ thumb_func_start sub_812EE00
+sub_812EE00: @ 812EE00
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _0812EE3E
+ cmp r0, 0x1
+ bgt _0812EE16
+ cmp r0, 0
+ beq _0812EE20
+ b _0812EE94
+_0812EE16:
+ cmp r0, 0x2
+ beq _0812EE54
+ cmp r0, 0x3
+ beq _0812EE76
+ b _0812EE94
+_0812EE20:
+ 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
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0812EE94
+ b _0812EE6E
+_0812EE3E:
+ ldrh r0, [r4, 0x2E]
+ subs r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0812EE94
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+ b _0812EE6E
+_0812EE54:
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0812EE94
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_0812EE6E:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ b _0812EE94
+_0812EE76:
+ ldr r1, _0812EE9C
+ ldr r2, _0812EEA0
+ 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
+ eors r0, r1
+ strh r0, [r2]
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812EE94:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812EE9C: .4byte REG_WINOUT
+_0812EEA0: .4byte 0x00003f3f
+ thumb_func_end sub_812EE00
+
+ thumb_func_start sub_812EEA4
+sub_812EEA4: @ 812EEA4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _0812EEE0
+ 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, _0812EEE4
+ ldrh r0, [r1]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x30]
+ ldr r1, _0812EEE8
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812EEE0: .4byte gUnknown_0202F7C8
+_0812EEE4: .4byte gUnknown_03004B00
+_0812EEE8: .4byte sub_812EEEC
+ thumb_func_end sub_812EEA4
+
+ thumb_func_start sub_812EEEC
+sub_812EEEC: @ 812EEEC
+ 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 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]
+ lsls r1, r0, 16
+ cmp r0, 0x3F
+ bls _0812EF26
+ asrs r0, r1, 16
+ cmp r0, 0xC3
+ ble _0812EF38
+_0812EF26:
+ ldr r0, _0812EF34
+ ldrb r0, [r0]
+ bl sub_8079E90
+ subs r0, 0x1
+ b _0812EF42
+ .align 2, 0
+_0812EF34: .4byte gUnknown_0202F7C8
+_0812EF38:
+ ldr r0, _0812EF84
+ ldrb r0, [r0]
+ bl sub_8079E90
+ adds r0, 0x1
+_0812EF42:
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ movs r3, 0x38
+ ldrsh r2, [r4, r3]
+ cmp r2, 0
+ bne _0812EF88
+ movs r1, 0x80
+ lsls r1, 3
+ adds r0, r1, 0
+ ldrh r3, [r4, 0x32]
+ adds r0, r3
+ strh r0, [r4, 0x32]
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1, 0
+ ldrh r3, [r4, 0x34]
+ adds r0, r3
+ 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 _0812EFB8
+ strh r2, [r4, 0x36]
+ movs r0, 0x1
+ strh r0, [r4, 0x38]
+ b _0812EFB8
+ .align 2, 0
+_0812EF84: .4byte gUnknown_0202F7C8
+_0812EF88:
+ cmp r2, 0x1
+ bne _0812EFB8
+ ldr r1, _0812EFC0
+ adds r0, r1, 0
+ ldrh r2, [r4, 0x32]
+ adds r0, r2
+ strh r0, [r4, 0x32]
+ ldr r3, _0812EFC4
+ 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 _0812EFB8
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0812EFB8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812EFC0: .4byte 0xfffffc00
+_0812EFC4: .4byte 0xffffff00
+ thumb_func_end sub_812EEEC
+
+ thumb_func_start sub_812EFC8
+sub_812EFC8: @ 812EFC8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x10]
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812F004
+ movs r0, 0x1
+ str r0, [sp, 0x14]
+ ldr r0, _0812F000
+ ldr r1, [r0, 0x10]
+ mov r9, r1
+ ldr r2, [r0, 0xC]
+ mov r8, r2
+ ldrh r6, [r0, 0x2]
+ movs r3, 0x14
+ b _0812F13C
+ .align 2, 0
+_0812F000: .4byte 0x02019348
+_0812F004:
+ ldr r0, _0812F070
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812F0AC
+ movs r0, 0
+ str r0, [sp, 0x14]
+ ldr r6, _0812F074
+ ldr r4, _0812F078
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r7, _0812F07C
+ adds r0, r7
+ movs r1, 0
+ bl GetMonData
+ mov r9, r0
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ adds r0, r7
+ movs r1, 0x1
+ bl GetMonData
+ mov r8, r0
+ ldrb r2, [r4]
+ lsls r1, r2, 2
+ ldr r0, _0812F080
+ adds r1, r0
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _0812F0A4
+ adds r0, r2, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812F084
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ adds r0, r7
+ b _0812F092
+ .align 2, 0
+_0812F070: .4byte gUnknown_0202F7C8
+_0812F074: .4byte gUnknown_02024A6A
+_0812F078: .4byte gUnknown_0202F7C9
+_0812F07C: .4byte gPlayerParty
+_0812F080: .4byte 0x02017800
+_0812F084:
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ ldr r1, _0812F0A0
+ adds r0, r1
+_0812F092:
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ b _0812F0A6
+ .align 2, 0
+_0812F0A0: .4byte gEnemyParty
+_0812F0A4:
+ ldrh r6, [r1, 0x2]
+_0812F0A6:
+ movs r1, 0x14
+ mov r10, r1
+ b _0812F13E
+_0812F0AC:
+ movs r2, 0x1
+ str r2, [sp, 0x14]
+ ldr r6, _0812F10C
+ ldr r4, _0812F110
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r7, _0812F114
+ adds r0, r7
+ movs r1, 0
+ bl GetMonData
+ mov r9, r0
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ adds r0, r7
+ movs r1, 0x1
+ bl GetMonData
+ mov r8, r0
+ ldrb r2, [r4]
+ lsls r1, r2, 2
+ ldr r0, _0812F118
+ adds r1, r0
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _0812F138
+ adds r0, r2, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812F120
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ ldr r1, _0812F11C
+ adds r0, r1
+ b _0812F12C
+ .align 2, 0
+_0812F10C: .4byte gUnknown_02024A6A
+_0812F110: .4byte gUnknown_0202F7C9
+_0812F114: .4byte gEnemyParty
+_0812F118: .4byte 0x02017800
+_0812F11C: .4byte gPlayerParty
+_0812F120:
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ adds r0, r7
+_0812F12C:
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ b _0812F13A
+_0812F138:
+ ldrh r6, [r1, 0x2]
+_0812F13A:
+ ldr r3, _0812F218
+_0812F13C:
+ mov r10, r3
+_0812F13E:
+ ldr r0, _0812F21C
+ ldrb r0, [r0]
+ bl sub_8079ED4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r5, _0812F21C
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ mov r2, r10
+ lsls r1, r2, 16
+ asrs r1, 16
+ adds r4, r1
+ lsls r4, 16
+ asrs r4, 16
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0x5
+ str r0, [sp, 0x4]
+ mov r3, r9
+ str r3, [sp, 0x8]
+ mov r0, r8
+ str r0, [sp, 0xC]
+ adds r0, r6, 0
+ ldr r1, [sp, 0x14]
+ movs r2, 0
+ adds r3, r4, 0
+ bl sub_8079F44
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _0812F220
+ lsls r5, r6, 4
+ adds r5, r6
+ lsls r5, 2
+ adds r5, r0
+ movs r0, 0x3
+ ands r7, r0
+ lsls r7, 2
+ mov r8, r7
+ ldrb r0, [r5, 0x5]
+ movs r4, 0xD
+ negs r4, r4
+ adds r1, r4, 0
+ ands r1, r0
+ mov r2, r8
+ orrs r1, r2
+ strb r1, [r5, 0x5]
+ ldrb r2, [r5, 0x1]
+ adds r0, r4, 0
+ ands r0, r2
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r5, 0x1]
+ ldr r0, _0812F224
+ lsrs r1, 4
+ lsls r1, 4
+ movs r3, 0x80
+ lsls r3, 1
+ adds r2, r3, 0
+ orrs r1, r2
+ movs r2, 0x20
+ bl FillPalette
+ ldrb r0, [r5, 0x5]
+ ands r4, r0
+ mov r0, r8
+ orrs r4, r0
+ strb r4, [r5, 0x5]
+ ldr r1, _0812F228
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r3, _0812F22C
+ ldr r0, _0812F230
+ ldr r2, [sp, 0x10]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xA]
+ movs r0, 0x10
+ subs r0, r2
+ lsls r0, 8
+ orrs r0, r2
+ strh r0, [r3]
+ strh r6, [r1, 0x8]
+ ldr r0, _0812F234
+ str r0, [r1]
+ 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
+_0812F218: .4byte 0x0000ffec
+_0812F21C: .4byte gUnknown_0202F7C8
+_0812F220: .4byte gSprites
+_0812F224: .4byte 0x00007fff
+_0812F228: .4byte REG_BLDCNT
+_0812F22C: .4byte REG_BLDALPHA
+_0812F230: .4byte gTasks
+_0812F234: .4byte sub_812F238
+ thumb_func_end sub_812EFC8
+
+ thumb_func_start sub_812F238
+sub_812F238: @ 812F238
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0812F284
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, r1, r2
+ ldrh r0, [r3, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r3, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0812F280
+ movs r0, 0
+ strh r0, [r3, 0x1C]
+ ldrh r1, [r3, 0xA]
+ adds r1, 0x1
+ strh r1, [r3, 0xA]
+ ldr r2, _0812F288
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ cmp r0, 0xA
+ bne _0812F280
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r3, 0x1C]
+ strh r0, [r3, 0x1E]
+ ldr r0, _0812F28C
+ str r0, [r3]
+_0812F280:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812F284: .4byte gTasks
+_0812F288: .4byte REG_BLDALPHA
+_0812F28C: .4byte sub_812F290
+ thumb_func_end sub_812F238
+
+ thumb_func_start sub_812F290
+sub_812F290: @ 812F290
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0812F308
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r5, r1, r2
+ ldrb r2, [r5, 0x8]
+ ldrh r0, [r5, 0x1C]
+ subs r0, 0x10
+ movs r4, 0
+ strh r0, [r5, 0x1C]
+ ldrh r0, [r5, 0x1E]
+ adds r0, 0x80
+ strh r0, [r5, 0x1E]
+ ldr r1, _0812F30C
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r6, r0, r1
+ ldrb r2, [r6, 0x1]
+ lsls r1, r2, 30
+ lsrs r1, 30
+ movs r0, 0x2
+ orrs r1, r0
+ subs r0, 0x6
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r6, 0x1]
+ movs r0, 0x1C
+ ldrsh r2, [r5, r0]
+ movs r0, 0x1E
+ ldrsh r3, [r5, r0]
+ str r4, [sp]
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_8078FDC
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x1
+ strh r0, [r5, 0x20]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bne _0812F2FE
+ adds r0, r6, 0
+ bl sub_8079098
+ adds r0, r6, 0
+ bl sub_807A0F4
+ ldr r0, _0812F310
+ str r0, [r5]
+_0812F2FE:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812F308: .4byte gTasks
+_0812F30C: .4byte gSprites
+_0812F310: .4byte sub_8078634
+ thumb_func_end sub_812F290
+
+ thumb_func_start sub_812F314
+sub_812F314: @ 812F314
+ push {r4-r7,lr}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _0812F334
+ adds r4, r1, r0
+ ldr r0, _0812F338
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0812F340
+ ldr r0, _0812F33C
+ b _0812F342
+ .align 2, 0
+_0812F334: .4byte gTasks
+_0812F338: .4byte gUnknown_03004B00
+_0812F33C: .4byte gUnknown_0202F7C8
+_0812F340:
+ ldr r0, _0812F3C0
+_0812F342:
+ ldrb r5, [r0]
+ movs r6, 0
+ strh r6, [r4, 0x8]
+ strh r6, [r4, 0xA]
+ strh r6, [r4, 0xC]
+ movs r0, 0x10
+ strh r0, [r4, 0xE]
+ strh r6, [r4, 0x10]
+ strh r5, [r4, 0x12]
+ movs r0, 0x20
+ strh r0, [r4, 0x14]
+ strh r6, [r4, 0x16]
+ movs r0, 0x18
+ strh r0, [r4, 0x18]
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812F374
+ movs r2, 0x18
+ ldrsh r0, [r4, r2]
+ negs r0, r0
+ strh r0, [r4, 0x18]
+_0812F374:
+ adds r0, r5, 0
+ bl sub_8077FC0
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x22
+ strh r0, [r4, 0x22]
+ cmp r0, 0
+ bge _0812F388
+ strh r6, [r4, 0x22]
+_0812F388:
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x42
+ strh r0, [r4, 0x24]
+ ldr r0, _0812F3C4
+ ldrb r0, [r0]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x26]
+ adds r0, r5, 0
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812F3DC
+ ldr r0, _0812F3C8
+ str r0, [sp]
+ ldr r1, _0812F3CC
+ ldr r2, _0812F3D0
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0812F3D4
+ ldrh r5, [r0]
+ ldr r0, _0812F3D8
+ b _0812F3EE
+ .align 2, 0
+_0812F3C0: .4byte gUnknown_0202F7C9
+_0812F3C4: .4byte gUnknown_03004B00
+_0812F3C8: .4byte REG_BG1HOFS
+_0812F3CC: .4byte REG_BLDCNT
+_0812F3D0: .4byte 0x00003f42
+_0812F3D4: .4byte gUnknown_030042C0
+_0812F3D8: .4byte gUnknown_030041B4
+_0812F3DC:
+ ldr r0, _0812F454
+ str r0, [sp]
+ ldr r1, _0812F458
+ ldr r2, _0812F45C
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0812F460
+ ldrh r5, [r0]
+ ldr r0, _0812F464
+_0812F3EE:
+ ldrh r3, [r0]
+ movs r7, 0
+ movs r2, 0
+ ldr r6, _0812F468
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r0, r6
+ mov r12, r0
+_0812F3FE:
+ lsls r2, 16
+ asrs r2, 16
+ lsls r1, r2, 1
+ adds r0, r1, r6
+ strh r5, [r0]
+ add r1, r12
+ strh r5, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 1
+ adds r1, r0, r6
+ strh r3, [r1]
+ add r0, r12
+ strh r3, [r0]
+ lsls r0, r7, 16
+ movs r1, 0x80
+ lsls r1, 9
+ adds r0, r1
+ adds r2, 0x2
+ lsls r2, 16
+ lsrs r2, 16
+ lsrs r7, r0, 16
+ asrs r0, 16
+ cmp r0, 0x9F
+ ble _0812F3FE
+ ldr r0, _0812F46C
+ 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, _0812F470
+ str r0, [r4]
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812F454: .4byte REG_BG2HOFS
+_0812F458: .4byte REG_BLDCNT
+_0812F45C: .4byte 0x00003f44
+_0812F460: .4byte gUnknown_03004288
+_0812F464: .4byte gUnknown_03004280
+_0812F468: .4byte gUnknown_03004DE0
+_0812F46C: .4byte 0xa6600001
+_0812F470: .4byte sub_812F474
+ thumb_func_end sub_812F314
+
+ thumb_func_start sub_812F474
+sub_812F474: @ 812F474
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _0812F4A8
+ adds r6, r0, r1
+ ldrb r0, [r6, 0x12]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0812F4B4
+ ldr r0, _0812F4AC
+ ldrh r0, [r0]
+ str r0, [sp, 0x4]
+ ldr r0, _0812F4B0
+ b _0812F4BC
+ .align 2, 0
+_0812F4A8: .4byte gTasks
+_0812F4AC: .4byte gUnknown_030042C0
+_0812F4B0: .4byte gUnknown_030041B4
+_0812F4B4:
+ ldr r0, _0812F4D4
+ ldrh r0, [r0]
+ str r0, [sp, 0x4]
+ ldr r0, _0812F4D8
+_0812F4BC:
+ ldrh r0, [r0]
+ str r0, [sp, 0x8]
+ movs r1, 0x8
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x1
+ bne _0812F4CA
+ b _0812F6A6
+_0812F4CA:
+ cmp r0, 0x1
+ bgt _0812F4DC
+ cmp r0, 0
+ beq _0812F4EA
+ b _0812F712
+ .align 2, 0
+_0812F4D4: .4byte gUnknown_03004288
+_0812F4D8: .4byte gUnknown_03004280
+_0812F4DC:
+ cmp r0, 0x2
+ bne _0812F4E2
+ b _0812F6C4
+_0812F4E2:
+ cmp r0, 0x3
+ bne _0812F4E8
+ b _0812F70C
+_0812F4E8:
+ b _0812F712
+_0812F4EA:
+ movs r2, 0x24
+ ldrsh r0, [r6, r2]
+ lsls r0, 17
+ lsrs r5, r0, 16
+ movs r3, 0
+ str r3, [sp]
+ mov r9, r3
+ movs r4, 0
+ ldrh r0, [r6, 0xA]
+ adds r0, 0x2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r6, 0xA]
+ ldrh r7, [r6, 0xA]
+ mov r8, r7
+ movs r0, 0x14
+ ldrsh r1, [r6, r0]
+ movs r0, 0xFC
+ lsls r0, 3
+ bl __divsi3
+ strh r0, [r6, 0x1A]
+ movs r1, 0x16
+ ldrsh r0, [r6, r1]
+ lsls r0, 1
+ movs r2, 0x1A
+ ldrsh r1, [r6, r2]
+ bl __divsi3
+ negs r0, r0
+ strh r0, [r6, 0x1C]
+ ldrh r0, [r6, 0x16]
+ strh r0, [r6, 0x1E]
+ lsls r0, 16
+ asrs r0, 21
+ lsls r0, 16
+ lsrs r7, r0, 16
+ strh r7, [r6, 0x20]
+ ldrh r2, [r6, 0x24]
+ lsls r3, r2, 16
+ mov r12, r3
+ asrs r1, r3, 16
+ movs r3, 0x22
+ ldrsh r0, [r6, r3]
+ cmp r1, r0
+ ble _0812F60A
+ ldr r0, _0812F660
+ mov r10, r0
+ ldr r1, [sp, 0x4]
+ lsls r0, r1, 16
+ asrs r0, 16
+ str r0, [sp, 0x10]
+ ldr r2, [sp, 0x8]
+ lsls r0, r2, 16
+ asrs r0, 16
+ str r0, [sp, 0xC]
+_0812F55A:
+ lsls r5, 16
+ asrs r5, 16
+ adds r2, r5, 0x1
+ lsls r2, 1
+ mov r3, r10
+ ldrb r1, [r3, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r2, r0
+ ldr r0, _0812F664
+ adds r2, r0
+ lsls r4, 16
+ asrs r4, 16
+ mov r1, r9
+ lsls r0, r1, 16
+ asrs r0, 16
+ subs r0, r4, r0
+ ldr r3, [sp, 0xC]
+ adds r0, r3, r0
+ strh r0, [r2]
+ lsls r3, r5, 1
+ mov r0, r10
+ ldrb r1, [r0, 0x14]
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 7
+ adds r3, r0
+ ldr r1, _0812F664
+ adds r3, r1
+ lsls r1, r7, 16
+ asrs r1, 16
+ ldr r2, [sp, 0x10]
+ adds r1, r2, r1
+ mov r7, r8
+ lsls r2, r7, 16
+ asrs r2, 16
+ lsls r0, r2, 1
+ ldr r7, _0812F668
+ adds r0, r7
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 21
+ adds r1, r0
+ strh r1, [r3]
+ adds r2, 0xA
+ mov r8, r2
+ movs r0, 0xFF
+ mov r1, r8
+ ands r1, r0
+ mov r8, r1
+ ldrh r0, [r6, 0x1C]
+ ldrh r2, [r6, 0x1E]
+ adds r0, r2
+ strh r0, [r6, 0x1E]
+ lsls r0, 16
+ asrs r0, 21
+ lsls r0, 16
+ lsrs r7, r0, 16
+ strh r7, [r6, 0x20]
+ adds r4, 0x1
+ lsls r4, 16
+ lsrs r4, 16
+ subs r5, 0x2
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r3, [sp]
+ lsls r0, r3, 16
+ asrs r0, 16
+ ldrh r1, [r6, 0x14]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ str r2, [sp]
+ asrs r0, 21
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ ldr r0, _0812F66C
+ add r0, r12
+ lsrs r2, r0, 16
+ lsls r3, r2, 16
+ mov r12, r3
+ asrs r1, r3, 16
+ movs r3, 0x22
+ ldrsh r0, [r6, r3]
+ cmp r1, r0
+ bgt _0812F55A
+_0812F60A:
+ lsls r1, r2, 17
+ cmp r1, 0
+ blt _0812F636
+ ldr r4, _0812F664
+ ldr r7, [sp, 0x4]
+ lsls r0, r7, 16
+ asrs r0, 16
+ adds r3, r0, 0
+ adds r3, 0xF0
+ movs r0, 0xF0
+ lsls r0, 3
+ adds r5, r4, r0
+_0812F622:
+ asrs r2, r1, 16
+ lsls r1, r2, 1
+ adds r0, r1, r4
+ strh r3, [r0]
+ adds r1, r5
+ strh r3, [r1]
+ subs r2, 0x2
+ lsls r1, r2, 16
+ cmp r1, 0
+ bge _0812F622
+_0812F636:
+ ldrh r0, [r6, 0x14]
+ adds r0, 0x1
+ strh r0, [r6, 0x14]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3F
+ ble _0812F69C
+ movs r0, 0x40
+ strh r0, [r6, 0x14]
+ ldrh r0, [r6, 0xC]
+ adds r0, 0x1
+ strh r0, [r6, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0812F670
+ ldrh r0, [r6, 0xE]
+ subs r0, 0x1
+ strh r0, [r6, 0xE]
+ b _0812F676
+ .align 2, 0
+_0812F660: .4byte gUnknown_03004DC0
+_0812F664: .4byte gUnknown_03004DE0
+_0812F668: .4byte gSineTable
+_0812F66C: .4byte 0xffff0000
+_0812F670:
+ ldrh r0, [r6, 0x10]
+ adds r0, 0x1
+ strh r0, [r6, 0x10]
+_0812F676:
+ ldr r0, _0812F698
+ ldrh r1, [r6, 0x10]
+ lsls r1, 8
+ ldrh r2, [r6, 0xE]
+ orrs r1, r2
+ strh r1, [r0]
+ movs r2, 0xE
+ ldrsh r1, [r6, r2]
+ cmp r1, 0
+ bne _0812F712
+ movs r3, 0x10
+ ldrsh r0, [r6, r3]
+ cmp r0, 0x10
+ bne _0812F712
+ strh r1, [r6, 0xC]
+ strh r1, [r6, 0xE]
+ b _0812F700
+ .align 2, 0
+_0812F698: .4byte REG_BLDALPHA
+_0812F69C:
+ ldrh r0, [r6, 0x18]
+ ldrh r7, [r6, 0x16]
+ adds r0, r7
+ strh r0, [r6, 0x16]
+ b _0812F712
+_0812F6A6:
+ ldrh r0, [r6, 0xC]
+ adds r0, 0x1
+ strh r0, [r6, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ ble _0812F712
+ ldr r1, _0812F6C0
+ movs r0, 0x3
+ strb r0, [r1, 0x15]
+ movs r0, 0
+ strh r0, [r6, 0xC]
+ b _0812F700
+ .align 2, 0
+_0812F6C0: .4byte gUnknown_03004DC0
+_0812F6C4:
+ ldrh r0, [r6, 0xC]
+ adds r0, 0x1
+ strh r0, [r6, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0812F6DA
+ ldrh r0, [r6, 0xE]
+ adds r0, 0x1
+ strh r0, [r6, 0xE]
+ b _0812F6E0
+_0812F6DA:
+ ldrh r0, [r6, 0x10]
+ subs r0, 0x1
+ strh r0, [r6, 0x10]
+_0812F6E0:
+ ldr r2, _0812F708
+ ldrh r0, [r6, 0x10]
+ lsls r0, 8
+ ldrh r1, [r6, 0xE]
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0xE
+ ldrsh r0, [r6, r1]
+ cmp r0, 0x10
+ bne _0812F712
+ movs r2, 0x10
+ ldrsh r0, [r6, r2]
+ cmp r0, 0
+ bne _0812F712
+ strh r0, [r6, 0xC]
+ strh r0, [r6, 0xE]
+_0812F700:
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ b _0812F712
+ .align 2, 0
+_0812F708: .4byte REG_BLDALPHA
+_0812F70C:
+ adds r0, r4, 0
+ bl move_anim_task_del
+_0812F712:
+ 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_812F474
+
+ thumb_func_start sub_812F724
+sub_812F724: @ 812F724
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _0812F75C
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldr r0, _0812F760
+ ldrb r0, [r0]
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ strh r1, [r4, 0x26]
+ ldr r2, _0812F764
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _0812F768
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812F75C: .4byte gTasks
+_0812F760: .4byte gUnknown_03004B00
+_0812F764: .4byte gUnknown_08402750
+_0812F768: .4byte sub_812F76C
+ thumb_func_end sub_812F724
+
+ thumb_func_start sub_812F76C
+sub_812F76C: @ 812F76C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r2, _0812F7C4
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x8]
+ adds r1, r0, 0x1
+ movs r5, 0
+ strh r1, [r3, 0x8]
+ subs r0, 0x14
+ lsls r0, 16
+ lsrs r0, 16
+ adds r6, r2, 0
+ cmp r0, 0x16
+ bhi _0812F7D0
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0812F7E0
+ strh r5, [r3, 0xA]
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ movs r5, 0x1
+ ands r0, r5
+ cmp r0, 0
+ bne _0812F7D0
+ ldr r2, _0812F7C8
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _0812F7CC
+ strh r1, [r0, 0x24]
+ b _0812F7E0
+ .align 2, 0
+_0812F7C4: .4byte gTasks
+_0812F7C8: .4byte gSprites
+_0812F7CC: .4byte 0x0000ffff
+_0812F7D0:
+ ldr r2, _0812F800
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x24]
+_0812F7E0:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r6
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0812F7F8
+ adds r0, r4, 0
+ bl move_anim_task_del
+_0812F7F8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812F800: .4byte gSprites
+ thumb_func_end sub_812F76C
+
+ thumb_func_start sub_812F804
+sub_812F804: @ 812F804
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ mov r8, r0
+ adds r5, r2, 0
+ adds r0, r3, 0
+ ldr r4, [sp, 0x14]
+ ldr r6, [sp, 0x18]
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r5, 16
+ lsrs r5, 16
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r6, 16
+ lsrs r6, 16
+ mov r2, r8
+ strh r1, [r2, 0x20]
+ strh r5, [r2, 0x22]
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, r1, 4
+ mov r3, r8
+ strh r2, [r3, 0x36]
+ lsls r5, 16
+ asrs r5, 16
+ lsls r2, r5, 4
+ strh r2, [r3, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ subs r0, r1
+ lsls r0, 4
+ adds r1, r6, 0
+ bl __divsi3
+ mov r1, r8
+ strh r0, [r1, 0x3A]
+ lsls r4, 16
+ asrs r4, 16
+ subs r4, r5
+ lsls r4, 4
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl __divsi3
+ mov r2, r8
+ strh r0, [r2, 0x3C]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812F804
+
+ thumb_func_start sub_812F86C
+sub_812F86C: @ 812F86C
+ ldrh r1, [r0, 0x3A]
+ ldrh r2, [r0, 0x36]
+ adds r1, r2
+ strh r1, [r0, 0x36]
+ ldrh r2, [r0, 0x3C]
+ ldrh r3, [r0, 0x38]
+ adds r2, r3
+ strh r2, [r0, 0x38]
+ lsls r1, 16
+ asrs r1, 20
+ strh r1, [r0, 0x20]
+ lsls r2, 16
+ asrs r2, 20
+ strh r2, [r0, 0x22]
+ bx lr
+ thumb_func_end sub_812F86C
+
+ thumb_func_start sub_812F88C
+sub_812F88C: @ 812F88C
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldrh r6, [r4, 0x20]
+ ldrh r5, [r4, 0x22]
+ bl sub_8078650
+ ldr r0, _0812F8D4
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl StartSpriteAffineAnim
+ movs r0, 0x20
+ ldrsh r1, [r4, r0]
+ movs r0, 0x22
+ ldrsh r2, [r4, r0]
+ lsls r6, 16
+ asrs r6, 16
+ lsls r5, 16
+ asrs r5, 16
+ str r5, [sp]
+ movs r0, 0x40
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ adds r3, r6, 0
+ bl sub_812F804
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _0812F8D8
+ str r0, [r4, 0x1C]
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812F8D4: .4byte gUnknown_03004B00
+_0812F8D8: .4byte sub_812F8DC
+ thumb_func_end sub_812F88C
+
+ thumb_func_start sub_812F8DC
+sub_812F8DC: @ 812F8DC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ movs r0, 0x2E
+ ldrsh r4, [r5, r0]
+ lsls r4, 3
+ movs r0, 0xFF
+ ands r4, r0
+ adds r0, r5, 0
+ bl sub_812F86C
+ adds r0, r4, 0
+ movs r1, 0x8
+ bl Sin
+ strh r0, [r5, 0x26]
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x3A
+ ble _0812F942
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0812F942
+ movs r0, 0
+ strh r0, [r5, 0x30]
+ ldrh r1, [r5, 0x32]
+ adds r1, 0x1
+ strh r1, [r5, 0x32]
+ movs r0, 0x1
+ ands r1, r0
+ adds r3, r5, 0
+ adds r3, 0x3E
+ lsls r1, 2
+ ldrb r2, [r3]
+ subs r0, 0x6
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r1, 0x32
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x3
+ ble _0812F942
+ adds r0, r5, 0
+ bl move_anim_8074EE0
+_0812F942:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812F8DC
+
+ thumb_func_start sub_812F948
+sub_812F948: @ 812F948
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _0812F9A0
+ ldrh r0, [r6, 0x6]
+ strh r0, [r5, 0x2E]
+ ldrb r1, [r6]
+ adds r0, r5, 0
+ bl StartSpriteAffineAnim
+ ldr r0, _0812F9A4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812F96E
+ ldrh r0, [r6, 0x2]
+ negs r0, r0
+ strh r0, [r6, 0x2]
+_0812F96E:
+ ldr r4, _0812F9A8
+ 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]
+ ldr r0, _0812F9AC
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812F9A0: .4byte gUnknown_03004B00
+_0812F9A4: .4byte gUnknown_0202F7C9
+_0812F9A8: .4byte gUnknown_0202F7C8
+_0812F9AC: .4byte sub_80DA48C
+ thumb_func_end sub_812F948
+
+ thumb_func_start sub_812F9B0
+sub_812F9B0: @ 812F9B0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r7, 0
+ ldr r2, _0812FA00
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x8]
+ subs r0, 0x1
+ strh r0, [r3, 0x8]
+ movs r1, 0x14
+ ldrsh r0, [r3, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ mov r8, r2
+ cmp r0, 0
+ beq _0812FA32
+ ldrh r0, [r3, 0xA]
+ subs r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0812FA32
+ movs r2, 0x1A
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bne _0812FA04
+ ldrh r0, [r3, 0x10]
+ strh r0, [r3, 0x1A]
+ negs r0, r0
+ strh r0, [r3, 0x10]
+ b _0812FA06
+ .align 2, 0
+_0812FA00: .4byte gTasks
+_0812FA04:
+ strh r7, [r3, 0x1A]
+_0812FA06:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ mov r2, r8
+ adds r1, r0, r2
+ movs r2, 0x1C
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _0812FA22
+ ldrh r0, [r1, 0x12]
+ strh r0, [r1, 0x1C]
+ negs r0, r0
+ strh r0, [r1, 0x12]
+ b _0812FA26
+_0812FA22:
+ movs r0, 0
+ strh r0, [r1, 0x1C]
+_0812FA26:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ add r0, r8
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0xA]
+_0812FA32:
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 3
+ mov r1, r8
+ adds r4, r0, r1
+ ldrh r6, [r4, 0x16]
+ ldrh r7, [r4, 0x18]
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ mov r12, r2
+ cmp r0, 0
+ beq _0812FA70
+ ldr r3, _0812FA6C
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ lsrs r2, r6, 8
+ ldrh r0, [r4, 0x1A]
+ subs r0, r2
+ strh r0, [r1, 0x24]
+ adds r2, r3, 0
+ b _0812FA86
+ .align 2, 0
+_0812FA6C: .4byte gSprites
+_0812FA70:
+ ldr r2, _0812FAB4
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ lsrs r1, r6, 8
+ ldrh r4, [r4, 0x1A]
+ adds r1, r4
+ strh r1, [r0, 0x24]
+_0812FA86:
+ mov r1, r12
+ adds r0, r1, r5
+ lsls r0, 3
+ mov r1, r8
+ adds r4, r0, r1
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _0812FAB8
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ lsrs r2, r7, 8
+ ldrh r0, [r4, 0x1C]
+ subs r0, r2
+ b _0812FACA
+ .align 2, 0
+_0812FAB4: .4byte gSprites
+_0812FAB8:
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ lsrs r0, r7, 8
+ ldrh r4, [r4, 0x1C]
+ adds r0, r4
+_0812FACA:
+ strh r0, [r1, 0x26]
+ mov r2, r12
+ adds r0, r2, r5
+ lsls r0, 3
+ add r0, r8
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bgt _0812FAEA
+ adds r0, r5, 0
+ bl DestroyTask
+ ldr r1, _0812FAF4
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_0812FAEA:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812FAF4: .4byte gUnknown_0202F7B2
+ thumb_func_end sub_812F9B0
+
+ thumb_func_start sub_812FAF8
+sub_812FAF8: @ 812FAF8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r7, 0
+ ldr r2, _0812FB4C
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x8]
+ subs r0, 0x1
+ strh r0, [r3, 0x8]
+ movs r1, 0x14
+ ldrsh r0, [r3, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ mov r8, r2
+ cmp r0, 0
+ beq _0812FB7E
+ ldrh r0, [r3, 0xA]
+ subs r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0812FB7E
+ movs r2, 0x1A
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bne _0812FB50
+ ldrh r0, [r3, 0x10]
+ strh r0, [r3, 0x1A]
+ negs r0, r0
+ strh r0, [r3, 0x10]
+ b _0812FB52
+ .align 2, 0
+_0812FB4C: .4byte gTasks
+_0812FB50:
+ strh r7, [r3, 0x1A]
+_0812FB52:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ mov r2, r8
+ adds r1, r0, r2
+ movs r2, 0x1C
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _0812FB6E
+ ldrh r0, [r1, 0x12]
+ strh r0, [r1, 0x1C]
+ negs r0, r0
+ strh r0, [r1, 0x12]
+ b _0812FB72
+_0812FB6E:
+ movs r0, 0
+ strh r0, [r1, 0x1C]
+_0812FB72:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ add r0, r8
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0xA]
+_0812FB7E:
+ lsls r3, r6, 2
+ adds r0, r3, r6
+ lsls r0, 3
+ mov r1, r8
+ adds r4, r0, r1
+ ldrh r2, [r4, 0xC]
+ ldr r1, _0812FBD0
+ adds r0, r1, 0
+ ands r0, r2
+ ldrh r2, [r4, 0x16]
+ adds r0, r2
+ lsls r5, r0, 16
+ lsrs r0, r5, 16
+ mov r9, r0
+ ldrh r0, [r4, 0xE]
+ ands r1, r0
+ ldrh r2, [r4, 0x18]
+ adds r1, r2
+ lsls r1, 16
+ lsrs r7, r1, 16
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ mov r12, r3
+ cmp r0, 0
+ beq _0812FBD8
+ ldr r3, _0812FBD4
+ movs r2, 0x26
+ ldrsh r0, [r4, r2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ lsrs r2, r5, 24
+ ldrh r0, [r4, 0x1A]
+ subs r0, r2
+ strh r0, [r1, 0x24]
+ adds r2, r3, 0
+ b _0812FBEE
+ .align 2, 0
+_0812FBD0: .4byte 0x00007fff
+_0812FBD4: .4byte gSprites
+_0812FBD8:
+ ldr r2, _0812FC1C
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ lsrs r1, r5, 24
+ ldrh r4, [r4, 0x1A]
+ adds r1, r4
+ strh r1, [r0, 0x24]
+_0812FBEE:
+ mov r1, r12
+ adds r0, r1, r6
+ lsls r0, 3
+ mov r1, r8
+ adds r4, r0, r1
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _0812FC20
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ lsrs r2, r7, 8
+ ldrh r0, [r4, 0x1C]
+ subs r0, r2
+ b _0812FC32
+ .align 2, 0
+_0812FC1C: .4byte gSprites
+_0812FC20:
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ lsrs r0, r7, 8
+ ldrh r4, [r4, 0x1C]
+ adds r0, r4
+_0812FC32:
+ strh r0, [r1, 0x26]
+ mov r2, r12
+ adds r0, r2, r6
+ lsls r0, 3
+ mov r1, r8
+ adds r2, r0, r1
+ mov r0, r9
+ strh r0, [r2, 0x16]
+ strh r7, [r2, 0x18]
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bgt _0812FC58
+ movs r0, 0x1E
+ strh r0, [r2, 0x8]
+ movs r0, 0
+ strh r0, [r2, 0x22]
+ ldr r0, _0812FC64
+ str r0, [r2]
+_0812FC58:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812FC64: .4byte sub_812F9B0
+ thumb_func_end sub_812FAF8
+
+ thumb_func_start sub_812FC68
+sub_812FC68: @ 812FC68
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _0812FCC8
+ mov r8, r0
+ lsls r7, r6, 2
+ adds r0, r7, r6
+ lsls r0, 3
+ mov r1, r8
+ adds r4, r0, r1
+ ldr r1, _0812FCCC
+ ldr r2, _0812FCD0
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r4, 0x26]
+ ldr r5, _0812FCD4
+ ldrh r0, [r5]
+ strh r0, [r4, 0x24]
+ ldrh r0, [r5]
+ strh r0, [r4, 0x8]
+ ldrh r0, [r5, 0xC]
+ strh r0, [r4, 0x22]
+ movs r3, 0x6
+ ldrsh r0, [r5, r3]
+ cmp r0, 0
+ beq _0812FCAC
+ ldrh r0, [r4, 0x14]
+ ldr r3, _0812FCD8
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r4, 0x14]
+_0812FCAC:
+ ldrb r0, [r2]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _0812FCDC
+ ldrh r0, [r5, 0x2]
+ strh r0, [r4, 0xC]
+ ldrh r0, [r5, 0x4]
+ strh r0, [r4, 0xE]
+ mov r3, r8
+ adds r4, r7, 0
+ b _0812FD4C
+ .align 2, 0
+_0812FCC8: .4byte gTasks
+_0812FCCC: .4byte gUnknown_02024BE0
+_0812FCD0: .4byte gUnknown_0202F7C8
+_0812FCD4: .4byte gUnknown_03004B00
+_0812FCD8: .4byte 0xffff8000
+_0812FCDC:
+ movs r7, 0x2
+ ldrsh r0, [r5, r7]
+ movs r1, 0x80
+ lsls r1, 8
+ ands r0, r1
+ cmp r0, 0
+ beq _0812FCF8
+ ldrh r1, [r5, 0x2]
+ ldr r0, _0812FCF4
+ ands r0, r1
+ b _0812FD00
+ .align 2, 0
+_0812FCF4: .4byte 0x00007fff
+_0812FCF8:
+ ldrh r0, [r5, 0x2]
+ ldr r2, _0812FD28
+ adds r1, r2, 0
+ orrs r0, r1
+_0812FD00:
+ strh r0, [r4, 0xC]
+ ldr r0, _0812FD2C
+ movs r3, 0x4
+ ldrsh r1, [r0, r3]
+ movs r2, 0x80
+ lsls r2, 8
+ ands r1, r2
+ adds r5, r0, 0
+ cmp r1, 0
+ beq _0812FD38
+ ldr r3, _0812FD30
+ lsls r4, r6, 2
+ adds r1, r4, r6
+ lsls r1, 3
+ adds r1, r3
+ ldrh r2, [r5, 0x4]
+ ldr r0, _0812FD34
+ ands r0, r2
+ b _0812FD4A
+ .align 2, 0
+_0812FD28: .4byte 0xffff8000
+_0812FD2C: .4byte gUnknown_03004B00
+_0812FD30: .4byte gTasks
+_0812FD34: .4byte 0x00007fff
+_0812FD38:
+ ldr r3, _0812FD70
+ lsls r4, r6, 2
+ adds r1, r4, r6
+ lsls r1, 3
+ adds r1, r3
+ ldrh r2, [r5, 0x4]
+ ldr r7, _0812FD74
+ adds r0, r7, 0
+ orrs r0, r2
+_0812FD4A:
+ strh r0, [r1, 0xE]
+_0812FD4C:
+ adds r0, r4, r6
+ lsls r0, 3
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x18]
+ strh r1, [r0, 0x16]
+ ldrh r1, [r5, 0x8]
+ strh r1, [r0, 0x10]
+ ldrh r1, [r5, 0xA]
+ strh r1, [r0, 0x12]
+ ldr r1, _0812FD78
+ str r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812FD70: .4byte gTasks
+_0812FD74: .4byte 0xffff8000
+_0812FD78: .4byte sub_812FAF8
+ thumb_func_end sub_812FC68
+
+ thumb_func_start sub_812FD7C
+sub_812FD7C: @ 812FD7C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _0812FDB4
+ adds r5, r0, r1
+ ldr r4, _0812FDB8
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812FD9C
+ adds r0, r2, 0
+ bl move_anim_task_del
+_0812FD9C:
+ movs r0, 0
+ strh r0, [r5, 0x8]
+ strh r0, [r5, 0xA]
+ strh r0, [r5, 0xC]
+ ldrh r0, [r4, 0x2]
+ strh r0, [r5, 0xE]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812FDC0
+ ldr r0, _0812FDBC
+ b _0812FDC2
+ .align 2, 0
+_0812FDB4: .4byte gTasks
+_0812FDB8: .4byte gUnknown_03004B00
+_0812FDBC: .4byte gUnknown_0202F7C8
+_0812FDC0:
+ ldr r0, _0812FE10
+_0812FDC2:
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x10]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x12]
+ adds r0, r4, 0
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x14]
+ ldr r0, _0812FE14
+ ldrb r0, [r0]
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ strh r1, [r5, 0x26]
+ ldr r2, _0812FE18
+ adds r0, r5, 0
+ bl sub_80798F4
+ ldr r0, _0812FE1C
+ str r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812FE10: .4byte gUnknown_0202F7C9
+_0812FE14: .4byte gUnknown_03004B00
+_0812FE18: .4byte gUnknown_084028AC
+_0812FE1C: .4byte sub_812FE20
+ thumb_func_end sub_812FD7C
+
+ thumb_func_start sub_812FE20
+sub_812FE20: @ 812FE20
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _0812FE40
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0812FE44
+ cmp r0, 0x1
+ beq _0812FEA4
+ b _0812FEB2
+ .align 2, 0
+_0812FE40: .4byte gTasks
+_0812FE44:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _0812FE5A
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_812FEB8
+_0812FE5A:
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x12
+ bne _0812FE6A
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_812FEB8
+_0812FE6A:
+ adds r0, r4, 0
+ bl sub_807992C
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _0812FEB2
+ ldrh r0, [r4, 0xE]
+ subs r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0812FE8C
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0812FEB2
+_0812FE8C:
+ strh r1, [r4, 0xA]
+ ldrh r1, [r4, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0812FEA0
+ adds r0, r4, 0
+ bl sub_80798F4
+ b _0812FEB2
+ .align 2, 0
+_0812FEA0: .4byte gUnknown_084028AC
+_0812FEA4:
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0812FEB2
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0812FEB2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_812FE20
+
+ thumb_func_start sub_812FEB8
+sub_812FEB8: @ 812FEB8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r2, _0812FEDC
+ adds r4, r0, r2
+ cmp r1, 0
+ bne _0812FEE0
+ movs r1, 0x12
+ movs r3, 0xEC
+ b _0812FEE4
+ .align 2, 0
+_0812FEDC: .4byte gTasks
+_0812FEE0:
+ movs r1, 0x1E
+ movs r3, 0x14
+_0812FEE4:
+ mov r2, sp
+ ldrh r0, [r4, 0x10]
+ subs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r4, 0x10]
+ subs r0, r1
+ subs r0, 0x4
+ strh r0, [r2, 0x2]
+ ldrh r0, [r4, 0x10]
+ adds r0, r1
+ strh r0, [r2, 0x4]
+ ldrh r0, [r4, 0x10]
+ adds r0, r1
+ adds r0, 0x4
+ strh r0, [r2, 0x6]
+ add r2, sp, 0x8
+ lsls r1, r3, 24
+ asrs r1, 24
+ ldrh r0, [r4, 0x12]
+ adds r0, r1
+ strh r0, [r2]
+ ldrh r0, [r4, 0x12]
+ adds r0, r1
+ adds r0, 0x6
+ strh r0, [r2, 0x2]
+ movs r5, 0
+ mov r8, r2
+ ldr r7, _0812FF88
+_0812FF1C:
+ lsls r0, r5, 1
+ add r0, sp
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r0, 0x1
+ ands r0, r5
+ lsls r0, 1
+ add r0, r8
+ movs r3, 0
+ ldrsh r2, [r0, r3]
+ ldrb r3, [r4, 0x14]
+ subs r3, 0x5
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, _0812FF8C
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _0812FF70
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r7
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ movs r0, 0x2
+ cmp r5, 0x1
+ bhi _0812FF5E
+ movs r2, 0x2
+ negs r2, r2
+ adds r0, r2, 0
+_0812FF5E:
+ strh r0, [r1, 0x30]
+ ldr r0, _0812FF90
+ strh r0, [r1, 0x32]
+ strh r6, [r1, 0x34]
+ movs r0, 0x2
+ strh r0, [r1, 0x36]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+_0812FF70:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _0812FF1C
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812FF88: .4byte gSprites
+_0812FF8C: .4byte gSpriteTemplate_84028CC
+_0812FF90: .4byte 0x0000ffff
+ thumb_func_end sub_812FEB8
+
+ thumb_func_start sub_812FF94
+sub_812FF94: @ 812FF94
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ ble _0812FFDA
+ ldr r3, _0812FFE0
+ movs r0, 0x36
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ movs r0, 0x34
+ 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
+_0812FFDA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0812FFE0: .4byte gTasks
+ thumb_func_end sub_812FF94
+
+ thumb_func_start sub_812FFE4
+sub_812FFE4: @ 812FFE4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0813002C
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldr r1, _08130030
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0xA]
+ ldrb r0, [r1]
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08130034
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r0, [r1, 0x5]
+ lsrs r0, 4
+ lsls r0, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ adds r0, r1
+ strh r0, [r4, 0xC]
+ ldr r0, _08130038
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813002C: .4byte gTasks
+_08130030: .4byte gUnknown_03004B00
+_08130034: .4byte gSprites
+_08130038: .4byte sub_813003C
+ thumb_func_end sub_812FFE4
+
+ thumb_func_start sub_813003C
+sub_813003C: @ 813003C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08130084
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0813008C
+ ldrh r0, [r4, 0xC]
+ ldr r2, _08130088
+ movs r3, 0x8
+ ldrsh r1, [r4, r3]
+ lsls r1, 1
+ adds r1, r2
+ ldrh r3, [r1]
+ movs r1, 0x10
+ movs r2, 0x8
+ bl BlendPalette
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x17
+ ble _0813007C
+ movs r0, 0
+ strh r0, [r4, 0x8]
+_0813007C:
+ ldrh r0, [r4, 0xA]
+ subs r0, 0x1
+ strh r0, [r4, 0xA]
+ b _0813009E
+ .align 2, 0
+_08130084: .4byte gTasks
+_08130088: .4byte gUnknown_084028E4
+_0813008C:
+ ldrh r0, [r4, 0xC]
+ movs r1, 0x10
+ movs r2, 0
+ movs r3, 0
+ bl BlendPalette
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0813009E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813003C
+
+ thumb_func_start sub_81300A4
+sub_81300A4: @ 81300A4
+ push {lr}
+ sub sp, 0x1C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0xD0
+ lsls r2, 1
+ ldr r1, _081300E0
+ ldrb r3, [r1]
+ ldr r1, _081300E4
+ ldrb r1, [r1]
+ str r1, [sp]
+ movs r1, 0xA
+ str r1, [sp, 0x4]
+ movs r1, 0x2
+ str r1, [sp, 0x8]
+ movs r1, 0x1E
+ str r1, [sp, 0xC]
+ ldr r1, _081300E8
+ str r1, [sp, 0x10]
+ ldr r1, _081300EC
+ str r1, [sp, 0x14]
+ ldr r1, _081300F0
+ str r1, [sp, 0x18]
+ movs r1, 0
+ bl sub_80E3C4C
+ add sp, 0x1C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081300E0: .4byte gUnknown_0202F7C8
+_081300E4: .4byte gUnknown_03004B00
+_081300E8: .4byte gUnknown_08D2E014
+_081300EC: .4byte gUnknown_08D2E170
+_081300F0: .4byte gUnknown_08D2E150
+ thumb_func_end sub_81300A4
+
+ thumb_func_start sub_81300F4
+sub_81300F4: @ 81300F4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r6, _0813014C
+ ldrb r0, [r6]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08130110
+ ldr r1, _08130150
+ ldrh r0, [r1]
+ negs r0, r0
+ strh r0, [r1]
+_08130110:
+ ldrb r0, [r6]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r4, _08130150
+ 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 r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r5, 0x22]
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _08130158
+ movs r0, 0xA0
+ lsls r0, 2
+ strh r0, [r5, 0x2E]
+ ldr r0, _08130154
+ strh r0, [r5, 0x30]
+ b _08130180
+ .align 2, 0
+_0813014C: .4byte gUnknown_0202F7C8
+_08130150: .4byte gUnknown_03004B00
+_08130154: .4byte 0x0000fd80
+_08130158:
+ cmp r0, 0x1
+ bne _08130172
+ adds r2, r5, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0xA0
+ lsls r0, 2
+ strh r0, [r5, 0x2E]
+ strh r0, [r5, 0x30]
+ b _08130180
+_08130172:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ movs r0, 0xA0
+ lsls r0, 2
+ strh r0, [r5, 0x2E]
+_08130180:
+ ldr r0, _081301AC
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _081301A0
+ ldrh r0, [r5, 0x2E]
+ negs r0, r0
+ strh r0, [r5, 0x2E]
+ adds r2, r5, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2]
+_081301A0:
+ ldr r0, _081301B0
+ str r0, [r5, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081301AC: .4byte gUnknown_0202F7C8
+_081301B0: .4byte sub_81301B4
+ thumb_func_end sub_81300F4
+
+ thumb_func_start sub_81301B4
+sub_81301B4: @ 81301B4
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x2E]
+ ldrh r1, [r2, 0x3A]
+ adds r0, r1
+ strh r0, [r2, 0x3A]
+ ldrh r1, [r2, 0x30]
+ ldrh r3, [r2, 0x3C]
+ adds r1, r3
+ strh r1, [r2, 0x3C]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r2, 0x24]
+ lsls r1, 16
+ asrs r1, 24
+ strh r1, [r2, 0x26]
+ ldrh r0, [r2, 0x38]
+ adds r0, 0x1
+ strh r0, [r2, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xE
+ bne _081301E8
+ adds r0, r2, 0
+ bl move_anim_8072740
+_081301E8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81301B4
+
+ thumb_func_start sub_81301EC
+sub_81301EC: @ 81301EC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08130218
+ adds r6, r1, r0
+ bl sub_8076BE0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _0813021C
+ movs r0, 0x8
+ strh r0, [r6, 0x12]
+ movs r0, 0x3
+ strh r0, [r6, 0x14]
+ movs r0, 0x1
+ strh r0, [r6, 0x16]
+ b _08130226
+ .align 2, 0
+_08130218: .4byte gTasks
+_0813021C:
+ movs r0, 0xC
+ strh r0, [r6, 0x12]
+ movs r0, 0x3
+ strh r0, [r6, 0x14]
+ strh r1, [r6, 0x16]
+_08130226:
+ ldr r5, _0813025C
+ ldrb r0, [r5]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08130260
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_807A100
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _08130254
+ adds r0, 0x3
+_08130254:
+ asrs r0, 2
+ adds r0, r4, r0
+ b _08130284
+ .align 2, 0
+_0813025C: .4byte gUnknown_0202F7C8
+_08130260:
+ ldrb r0, [r5]
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r4, r0, 0
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_807A100
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _08130280
+ adds r0, 0x3
+_08130280:
+ asrs r0, 2
+ subs r0, r4, r0
+_08130284:
+ strh r0, [r6, 0x1E]
+ ldr r5, _081302D8
+ ldrb r0, [r5]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r4, r0, 0
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_807A100
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _081302A8
+ adds r0, 0x3
+_081302A8:
+ asrs r0, 2
+ subs r0, r4, r0
+ strh r0, [r6, 0x20]
+ ldr r4, _081302DC
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x22]
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x24]
+ ldr r0, _081302E0
+ str r0, [r6]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081302D8: .4byte gUnknown_0202F7C8
+_081302DC: .4byte gUnknown_0202F7C9
+_081302E0: .4byte sub_81302E4
+ thumb_func_end sub_81301EC
+
+ thumb_func_start sub_81302E4
+sub_81302E4: @ 81302E4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, _0813030C
+ adds r5, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r5, r0]
+ cmp r1, 0
+ beq _08130310
+ cmp r1, 0x1
+ bne _08130308
+ b _08130408
+_08130308:
+ b _08130416
+ .align 2, 0
+_0813030C: .4byte gTasks
+_08130310:
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ ble _08130416
+ strh r1, [r5, 0xA]
+ movs r1, 0x1E
+ ldrsh r0, [r5, r1]
+ movs r2, 0x20
+ ldrsh r1, [r5, r2]
+ movs r3, 0x22
+ ldrsh r2, [r5, r3]
+ movs r4, 0x24
+ ldrsh r3, [r5, r4]
+ ldrb r4, [r5, 0x12]
+ str r4, [sp]
+ ldrb r4, [r5, 0xC]
+ str r4, [sp, 0x4]
+ add r4, sp, 0x10
+ str r4, [sp, 0x8]
+ adds r4, 0x2
+ str r4, [sp, 0xC]
+ bl sub_8130424
+ movs r6, 0
+ mov r8, r4
+ ldr r4, _08130384
+_0813034A:
+ add r0, sp, 0x10
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ mov r3, r8
+ movs r0, 0
+ ldrsh r2, [r3, r0]
+ ldr r0, _08130388
+ movs r3, 0x23
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x40
+ beq _081303DE
+ movs r1, 0x16
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0813039E
+ cmp r6, 0
+ bne _0813038C
+ lsls r2, r3, 4
+ adds r1, r2, r3
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r5, 0x14]
+ negs r0, r0
+ strh r0, [r1, 0x26]
+ strh r0, [r1, 0x24]
+ b _081303C6
+ .align 2, 0
+_08130384: .4byte gSprites
+_08130388: .4byte gSpriteTemplate_840294C
+_0813038C:
+ lsls r2, r3, 4
+ adds r1, r2, r3
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r5, 0x14]
+ strh r0, [r1, 0x26]
+ ldrh r0, [r5, 0x14]
+ strh r0, [r1, 0x24]
+ b _081303C6
+_0813039E:
+ cmp r6, 0
+ bne _081303B4
+ lsls r2, r3, 4
+ adds r1, r2, r3
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r5, 0x14]
+ negs r0, r0
+ strh r0, [r1, 0x24]
+ ldrh r0, [r5, 0x14]
+ b _081303C4
+_081303B4:
+ lsls r2, r3, 4
+ adds r1, r2, r3
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r5, 0x14]
+ strh r0, [r1, 0x24]
+ ldrh r0, [r5, 0x14]
+ negs r0, r0
+_081303C4:
+ strh r0, [r1, 0x26]
+_081303C6:
+ ldr r1, _08130404
+ adds r0, r2, r3
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ strh r7, [r0, 0x30]
+ movs r1, 0xA
+ strh r1, [r0, 0x32]
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+_081303DE:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x1
+ bls _0813034A
+ ldrh r2, [r5, 0xC]
+ movs r3, 0xC
+ ldrsh r1, [r5, r3]
+ movs r4, 0x12
+ ldrsh r0, [r5, r4]
+ cmp r1, r0
+ bne _081303FC
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+_081303FC:
+ adds r0, r2, 0x1
+ strh r0, [r5, 0xC]
+ b _08130416
+ .align 2, 0
+_08130404: .4byte gSprites
+_08130408:
+ movs r1, 0x1C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _08130416
+ adds r0, r7, 0
+ bl move_anim_task_del
+_08130416:
+ add sp, 0x14
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81302E4
+
+ thumb_func_start sub_8130424
+sub_8130424: @ 8130424
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ ldr r4, [sp, 0x28]
+ ldr r5, [sp, 0x2C]
+ ldr r6, [sp, 0x30]
+ mov r9, r6
+ ldr r6, [sp, 0x34]
+ mov r10, r6
+ lsls r0, 16
+ lsrs r0, 16
+ mov r12, r0
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ lsls r2, 16
+ lsrs r2, 16
+ adds r7, r2, 0
+ lsls r3, 16
+ lsrs r3, 16
+ str r3, [sp, 0x4]
+ lsls r4, 24
+ lsrs r6, r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ mov r8, r5
+ cmp r5, 0
+ bne _0813046C
+ mov r2, r9
+ strh r0, [r2]
+ mov r6, r10
+ strh r1, [r6]
+ b _081304CA
+_0813046C:
+ cmp r5, r6
+ bcc _0813047A
+ mov r0, r9
+ strh r2, [r0]
+ mov r1, r10
+ strh r3, [r1]
+ b _081304CA
+_0813047A:
+ subs r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r2, r12
+ lsls r1, r2, 16
+ asrs r1, 16
+ lsls r5, r1, 8
+ lsls r0, r7, 16
+ asrs r0, 16
+ subs r0, r1
+ lsls r0, 8
+ adds r1, r6, 0
+ bl __divsi3
+ mov r1, r8
+ muls r1, r0
+ adds r0, r1, 0
+ adds r5, r0
+ ldr r2, [sp]
+ lsls r1, r2, 16
+ asrs r1, 16
+ lsls r4, r1, 8
+ ldr r2, [sp, 0x4]
+ lsls r0, r2, 16
+ asrs r0, 16
+ subs r0, r1
+ lsls r0, 8
+ adds r1, r6, 0
+ bl __divsi3
+ mov r6, r8
+ muls r6, r0
+ adds r0, r6, 0
+ adds r4, r0
+ asrs r5, 8
+ mov r0, r9
+ strh r5, [r0]
+ asrs r4, 8
+ mov r1, r10
+ strh r4, [r1]
+_081304CA:
+ 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_8130424
+
+ thumb_func_start sub_81304DC
+sub_81304DC: @ 81304DC
+ 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, 0x24
+ ble _08130512
+ ldr r3, _08130518
+ 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 DestroySprite
+_08130512:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08130518: .4byte gTasks
+ thumb_func_end sub_81304DC
+
+ thumb_func_start sub_813051C
+sub_813051C: @ 813051C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _08130548
+ ldrh r0, [r1]
+ strh r0, [r4, 0x20]
+ ldrh r0, [r1, 0x2]
+ strh r0, [r4, 0x22]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x32]
+ ldrh r0, [r1, 0x6]
+ strh r0, [r4, 0x36]
+ ldrh r0, [r1, 0x8]
+ strh r0, [r4, 0x2E]
+ ldr r1, _0813054C
+ adds r0, r4, 0
+ bl oamt_set_x3A_32
+ ldr r0, _08130550
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08130548: .4byte gUnknown_03004B00
+_0813054C: .4byte move_anim_8072740
+_08130550: .4byte sub_8078CC0
+ thumb_func_end sub_813051C
+
+ thumb_func_start sub_8130554
+sub_8130554: @ 8130554
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r0, 2
+ add r0, r9
+ lsls r0, 3
+ ldr r1, _08130674
+ adds r7, r0, r1
+ ldr r0, _08130678
+ mov r10, r0
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r7, 0x1E]
+ mov r1, r10
+ ldrb r0, [r1]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r7, 0x20]
+ ldr r0, _0813067C
+ mov r8, r0
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r7, 0x22]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x3
+ bl sub_8077ABC
+ adds r4, r0, 0
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0
+ bl sub_807A100
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _081305C6
+ adds r0, 0x3
+_081305C6:
+ asrs r0, 2
+ adds r0, r4, r0
+ strh r0, [r7, 0x24]
+ ldr r4, _08130680
+ movs r0, 0x1E
+ ldrsh r5, [r7, r0]
+ movs r1, 0x20
+ ldrsh r6, [r7, r1]
+ mov r1, r8
+ ldrb r0, [r1]
+ bl sub_8079E90
+ adds r3, r0, 0
+ subs r3, 0x5
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r7, 0x26]
+ cmp r0, 0x40
+ beq _08130690
+ ldr r4, _08130684
+ movs r0, 0x26
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x10
+ strh r1, [r0, 0x2E]
+ movs r0, 0x26
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r7, 0x22]
+ strh r1, [r0, 0x32]
+ movs r0, 0x26
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r1, [r7, 0x24]
+ strh r1, [r0, 0x36]
+ movs r0, 0x26
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldr r1, _08130688
+ strh r1, [r0, 0x38]
+ movs r0, 0x26
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl sub_80786EC
+ mov r1, r10
+ ldrb r0, [r1]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0813066E
+ movs r0, 0x26
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_0813066E:
+ ldr r0, _0813068C
+ str r0, [r7]
+ b _08130696
+ .align 2, 0
+_08130674: .4byte gTasks
+_08130678: .4byte gUnknown_0202F7C8
+_0813067C: .4byte gUnknown_0202F7C9
+_08130680: .4byte gSpriteTemplate_84029AC
+_08130684: .4byte gSprites
+_08130688: .4byte 0x0000ffe0
+_0813068C: .4byte sub_81306A4
+_08130690:
+ mov r0, r9
+ bl move_anim_task_del
+_08130696:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8130554
+
+ thumb_func_start sub_81306A4
+sub_81306A4: @ 81306A4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _081306C8
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0x1
+ beq _0813070C
+ cmp r1, 0x1
+ bgt _081306CC
+ cmp r1, 0
+ beq _081306D6
+ b _081307AA
+ .align 2, 0
+_081306C8: .4byte gTasks
+_081306CC:
+ cmp r1, 0x2
+ beq _08130730
+ cmp r1, 0x3
+ beq _081307A4
+ b _081307AA
+_081306D6:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _081307AA
+ strh r1, [r4, 0xA]
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08130708
+ adds r0, r1
+ bl sub_8078718
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _081307AA
+ b _08130796
+ .align 2, 0
+_08130708: .4byte gSprites
+_0813070C:
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0813072C
+ adds r0, r1
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _081307AA
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ b _08130796
+ .align 2, 0
+_0813072C: .4byte gSprites
+_08130730:
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _081307AA
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r2, [r4, 0xC]
+ adds r2, 0x1
+ strh r2, [r4, 0xC]
+ ldr r5, _081307A0
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ movs r0, 0x1
+ ands r2, r0
+ adds r1, 0x3E
+ lsls r2, 2
+ ldrb r3, [r1]
+ subs r0, 0x6
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r1]
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _081307AA
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ 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
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+_08130796:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _081307AA
+ .align 2, 0
+_081307A0: .4byte gSprites
+_081307A4:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_081307AA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81306A4
+
+ thumb_func_start sub_81307B0
+sub_81307B0: @ 81307B0
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ ldr r0, _081307C4
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r6, r0, 0
+ cmp r1, 0
+ bne _081307CC
+ ldr r0, _081307C8
+ b _081307CE
+ .align 2, 0
+_081307C4: .4byte gUnknown_03004B00
+_081307C8: .4byte gUnknown_0202F7C8
+_081307CC:
+ ldr r0, _08130834
+_081307CE:
+ ldrb r5, [r0]
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x10
+ ldr r3, _08130838
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _0813083C
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ adds r1, r6, 0
+ ldrh r0, [r1, 0x4]
+ strh r0, [r4, 0x3A]
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ movs r1, 0x1
+ cmp r0, 0
+ bne _081307FC
+ movs r3, 0x1
+ negs r3, r3
+ adds r1, r3, 0
+_081307FC:
+ strh r1, [r4, 0x3C]
+ adds r0, r5, 0
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x22]
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _08130840
+ ldrb r2, [r4, 0x3]
+ lsls r1, r2, 26
+ lsrs r1, 27
+ movs r0, 0x8
+ orrs r1, r0
+ lsls r1, 1
+ subs r0, 0x47
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ adds r0, r5, 0
+ movs r1, 0x4
+ bl sub_807A100
+ subs r0, 0x8
+ b _0813084A
+ .align 2, 0
+_08130834: .4byte gUnknown_0202F7C9
+_08130838: .4byte 0x000003ff
+_0813083C: .4byte 0xfffffc00
+_08130840:
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl sub_807A100
+ adds r0, 0x8
+_0813084A:
+ strh r0, [r4, 0x20]
+ ldr r0, _08130858
+ str r0, [r4, 0x1C]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08130858: .4byte sub_813085C
+ thumb_func_end sub_81307B0
+
+ thumb_func_start sub_813085C
+sub_813085C: @ 813085C
+ push {lr}
+ adds r2, r0, 0
+ movs r0, 0x2E
+ ldrsh r1, [r2, r0]
+ cmp r1, 0x1
+ beq _081308A4
+ cmp r1, 0x1
+ bgt _08130872
+ cmp r1, 0
+ beq _0813087C
+ b _08130914
+_08130872:
+ cmp r1, 0x2
+ beq _081308B4
+ cmp r1, 0x3
+ beq _081308DA
+ b _08130914
+_0813087C:
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08130914
+ strh r1, [r2, 0x30]
+ ldrh r0, [r2, 0x3C]
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x32]
+ adds r0, 0x1
+ strh r0, [r2, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC
+ bne _08130914
+ b _081308D2
+_081308A4:
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ bne _08130914
+ b _081308CE
+_081308B4:
+ movs r0, 0x3C
+ ldrsh r1, [r2, r0]
+ lsls r1, 2
+ ldrh r0, [r2, 0x24]
+ subs r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _08130914
+_081308CE:
+ movs r0, 0
+ strh r0, [r2, 0x30]
+_081308D2:
+ ldrh r0, [r2, 0x2E]
+ adds r0, 0x1
+ strh r0, [r2, 0x2E]
+ b _08130914
+_081308DA:
+ movs r0, 0x3C
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ ldrh r1, [r2, 0x24]
+ adds r0, r1
+ strh r0, [r2, 0x24]
+ ldrh r0, [r2, 0x30]
+ adds r0, 0x1
+ strh r0, [r2, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ bne _08130914
+ ldrh r0, [r2, 0x3A]
+ subs r0, 0x1
+ strh r0, [r2, 0x3A]
+ lsls r0, 16
+ cmp r0, 0
+ beq _0813090E
+ movs r0, 0
+ strh r0, [r2, 0x30]
+ ldrh r0, [r2, 0x2E]
+ subs r0, 0x1
+ strh r0, [r2, 0x2E]
+ b _08130914
+_0813090E:
+ adds r0, r2, 0
+ bl move_anim_8072740
+_08130914:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813085C
+
+ thumb_func_start sub_8130918
+sub_8130918: @ 8130918
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r2, _08130930
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _08130934
+ adds r0, r1, 0
+ bl move_anim_task_del
+ b _0813095C
+ .align 2, 0
+_08130930: .4byte gUnknown_03004B00
+_08130934:
+ ldr r0, _08130964
+ lsls r4, r1, 2
+ adds r4, r1
+ lsls r4, 3
+ adds r4, r0
+ ldrh r0, [r2, 0x2]
+ strh r0, [r4, 0x8]
+ ldrb r0, [r2]
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ strh r1, [r4, 0x26]
+ ldr r2, _08130968
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _0813096C
+ str r0, [r4]
+_0813095C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08130964: .4byte gTasks
+_08130968: .4byte gUnknown_084029DC
+_0813096C: .4byte sub_8130970
+ thumb_func_end sub_8130918
+
+ thumb_func_start sub_8130970
+sub_8130970: @ 8130970
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _081309B0
+ adds r4, r0, r1
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _081309CA
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r1, [r4, 0xC]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _081309B8
+ ldr r2, _081309B4
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x2
+ b _081309C8
+ .align 2, 0
+_081309B0: .4byte gTasks
+_081309B4: .4byte gSprites
+_081309B8:
+ ldr r2, _08130A10
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _08130A14
+_081309C8:
+ strh r1, [r0, 0x24]
+_081309CA:
+ adds r0, r4, 0
+ bl sub_807992C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _08130A26
+ ldr r2, _08130A10
+ movs r0, 0x26
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x24]
+ ldrh r0, [r4, 0x8]
+ subs r0, 0x1
+ strh r0, [r4, 0x8]
+ lsls r0, 16
+ cmp r0, 0
+ beq _08130A20
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _08130A18
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _08130A1C
+ bl sub_80798F4
+ strh r5, [r4, 0xA]
+ strh r5, [r4, 0xC]
+ b _08130A26
+ .align 2, 0
+_08130A10: .4byte gSprites
+_08130A14: .4byte 0x0000fffe
+_08130A18: .4byte gTasks
+_08130A1C: .4byte gUnknown_084029DC
+_08130A20:
+ adds r0, r6, 0
+ bl move_anim_task_del
+_08130A26:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8130970
+
+ thumb_func_start sub_8130A2C
+sub_8130A2C: @ 8130A2C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _08130A40
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08130A48
+ ldr r4, _08130A44
+ b _08130A4A
+ .align 2, 0
+_08130A40: .4byte gUnknown_03004B00
+_08130A44: .4byte gUnknown_0202F7C8
+_08130A48:
+ ldr r4, _08130A88
+_08130A4A:
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_807A100
+ strh r0, [r5, 0x22]
+ movs r1, 0x22
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x7
+ bgt _08130A6E
+ movs r0, 0x8
+ strh r0, [r5, 0x22]
+_08130A6E:
+ movs r2, 0
+ strh r2, [r5, 0x2E]
+ ldr r1, _08130A8C
+ ldrh r0, [r1, 0x2]
+ strh r0, [r5, 0x30]
+ strh r2, [r5, 0x32]
+ ldrh r0, [r1, 0x4]
+ strh r0, [r5, 0x34]
+ ldr r0, _08130A90
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08130A88: .4byte gUnknown_0202F7C9
+_08130A8C: .4byte gUnknown_03004B00
+_08130A90: .4byte sub_8130A94
+ thumb_func_end sub_8130A2C
+
+ thumb_func_start sub_8130A94
+sub_8130A94: @ 8130A94
+ push {lr}
+ adds r3, r0, 0
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x30
+ ldrsh r1, [r3, r2]
+ cmp r0, r1
+ blt _08130AE8
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ ldrh r1, [r3, 0x32]
+ adds r1, 0x1
+ movs r0, 0x1
+ ands r1, r0
+ strh r1, [r3, 0x32]
+ movs r0, 0x3E
+ adds r0, r3
+ mov r12, r0
+ lsls r1, 2
+ ldrb r2, [r0]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ movs r2, 0x32
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ beq _08130AE8
+ ldrh r0, [r3, 0x34]
+ subs r0, 0x1
+ strh r0, [r3, 0x34]
+ lsls r0, 16
+ cmp r0, 0
+ bne _08130AE8
+ adds r0, r3, 0
+ bl move_anim_8072740
+_08130AE8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8130A94
+
+ thumb_func_start sub_8130AEC
+sub_8130AEC: @ 8130AEC
+ push {lr}
+ adds r3, r0, 0
+ ldr r0, _08130B18
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08130B1C
+ ldrb r2, [r3, 0x3]
+ lsls r1, r2, 26
+ lsrs r1, 27
+ movs r0, 0x8
+ orrs r1, r0
+ lsls r1, 1
+ subs r0, 0x47
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x3]
+ movs r0, 0x64
+ strh r0, [r3, 0x20]
+ movs r0, 0x1
+ b _08130B22
+ .align 2, 0
+_08130B18: .4byte gUnknown_03004B00
+_08130B1C:
+ movs r0, 0x8C
+ strh r0, [r3, 0x20]
+ ldr r0, _08130B30
+_08130B22:
+ strh r0, [r3, 0x3C]
+ movs r0, 0x38
+ strh r0, [r3, 0x22]
+ ldr r0, _08130B34
+ str r0, [r3, 0x1C]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08130B30: .4byte 0x0000ffff
+_08130B34: .4byte sub_8130B38
+ thumb_func_end sub_8130AEC
+
+ thumb_func_start sub_8130B38
+sub_8130B38: @ 8130B38
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x8
+ bls _08130B46
+ b _08130D18
+_08130B46:
+ lsls r0, 2
+ ldr r1, _08130B50
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08130B50: .4byte _08130B54
+ .align 2, 0
+_08130B54:
+ .4byte _08130B78
+ .4byte _08130BAA
+ .4byte _08130BBC
+ .4byte _08130BFC
+ .4byte _08130C0E
+ .4byte _08130C4C
+ .4byte _08130CB0
+ .4byte _08130CD0
+ .4byte _08130CF6
+_08130B78:
+ movs r3, 0x3C
+ ldrsh r0, [r4, r3]
+ lsls r0, 1
+ ldrh r1, [r4, 0x22]
+ subs r1, r0
+ strh r1, [r4, 0x22]
+ ldrh r2, [r4, 0x30]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _08130B9A
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r1, 1
+ ldrh r0, [r4, 0x20]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+_08130B9A:
+ adds r0, r2, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ beq _08130BA8
+ b _08130D18
+_08130BA8:
+ b _08130CEA
+_08130BAA:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ beq _08130BBA
+ b _08130D18
+_08130BBA:
+ b _08130CEA
+_08130BBC:
+ ldrh r2, [r4, 0x30]
+ adds r2, 0x1
+ strh r2, [r4, 0x30]
+ movs r3, 0x3C
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 1
+ adds r0, r1
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r3, _08130BF8
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ ldrh r1, [r4, 0x3C]
+ muls r0, r1
+ strh r0, [r4, 0x24]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0xC
+ beq _08130BF4
+ b _08130D18
+_08130BF4:
+ b _08130CEA
+ .align 2, 0
+_08130BF8: .4byte gSineTable
+_08130BFC:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ beq _08130C0C
+ b _08130D18
+_08130C0C:
+ b _08130CEA
+_08130C0E:
+ ldrh r2, [r4, 0x30]
+ adds r2, 0x1
+ strh r2, [r4, 0x30]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldrh r0, [r4, 0x22]
+ subs r0, r1
+ strh r0, [r4, 0x22]
+ ldr r3, _08130C48
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ ldrh r1, [r4, 0x3C]
+ muls r0, r1
+ strh r0, [r4, 0x24]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0xC
+ bne _08130D18
+ b _08130CEE
+ .align 2, 0
+_08130C48: .4byte gSineTable
+_08130C4C:
+ ldrh r2, [r4, 0x30]
+ adds r2, 0x1
+ strh r2, [r4, 0x30]
+ movs r3, 0x3C
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 1
+ adds r0, r1
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ ldr r3, _08130CA4
+ movs r0, 0x30
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ ldrh r1, [r4, 0x3C]
+ muls r0, r1
+ strh r0, [r4, 0x24]
+ lsls r2, 16
+ asrs r2, 16
+ cmp r2, 0xF
+ bne _08130C98
+ ldrh r2, [r4, 0x4]
+ lsls r1, r2, 22
+ lsrs r1, 22
+ adds r1, 0x10
+ ldr r3, _08130CA8
+ adds r0, r3, 0
+ ands r1, r0
+ ldr r0, _08130CAC
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+_08130C98:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x12
+ bne _08130D18
+ b _08130CEA
+ .align 2, 0
+_08130CA4: .4byte gSineTable
+_08130CA8: .4byte 0x000003ff
+_08130CAC: .4byte 0xfffffc00
+_08130CB0:
+ movs r3, 0x3C
+ ldrsh r0, [r4, r3]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ ldrh r0, [r4, 0x20]
+ adds r1, r0
+ strh r1, [r4, 0x20]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bne _08130D18
+ b _08130CEA
+_08130CD0:
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ lsls r0, 1
+ ldrh r3, [r4, 0x20]
+ adds r0, r3
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _08130D18
+_08130CEA:
+ movs r0, 0
+ strh r0, [r4, 0x30]
+_08130CEE:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _08130D18
+_08130CF6:
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldrh r0, [r4, 0x20]
+ subs r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _08130D18
+ adds r0, r4, 0
+ bl move_anim_8072740
+_08130D18:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8130B38
+
+ thumb_func_start sub_8130D20
+sub_8130D20: @ 8130D20
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08130D7C
+ adds r6, r1, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x26]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08130DA8
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x1
+ bne _08130D8C
+ ldr r5, _08130D80
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r1, [r5]
+ movs r0, 0x2
+ eors r0, r1
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ ble _08130D84
+ strh r7, [r6, 0x24]
+ b _08130DAC
+ .align 2, 0
+_08130D7C: .4byte gTasks
+_08130D80: .4byte gUnknown_0202F7C8
+_08130D84:
+ ldr r0, _08130D88
+ b _08130DAA
+ .align 2, 0
+_08130D88: .4byte 0x0000ffff
+_08130D8C:
+ ldr r0, _08130DA0
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08130DA8
+ ldr r0, _08130DA4
+ b _08130DAA
+ .align 2, 0
+_08130DA0: .4byte gUnknown_0202F7C8
+_08130DA4: .4byte 0x0000ffff
+_08130DA8:
+ movs r0, 0x1
+_08130DAA:
+ strh r0, [r6, 0x24]
+_08130DAC:
+ ldr r0, _08130DB8
+ str r0, [r6]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08130DB8: .4byte sub_8130DBC
+ thumb_func_end sub_8130D20
+
+ thumb_func_start sub_8130DBC
+sub_8130DBC: @ 8130DBC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _08130DE0
+ adds r3, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x8
+ bls _08130DD6
+ b _08130F50
+_08130DD6:
+ lsls r0, 2
+ ldr r1, _08130DE4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08130DE0: .4byte gTasks
+_08130DE4: .4byte _08130DE8
+ .align 2, 0
+_08130DE8:
+ .4byte _08130E0C
+ .4byte _08130E1E
+ .4byte _08130E50
+ .4byte _08130E80
+ .4byte _08130EA6
+ .4byte _08130ED0
+ .4byte _08130EE0
+ .4byte _08130F00
+ .4byte _08130F38
+_08130E0C:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xD
+ beq _08130E1C
+ b _08130F50
+_08130E1C:
+ b _08130F28
+_08130E1E:
+ ldr r2, _08130E4C
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r2, 0x24
+ ldrsh r0, [r3, r2]
+ lsls r2, r0, 1
+ adds r2, r0
+ ldrh r0, [r1, 0x24]
+ subs r0, r2
+ strh r0, [r1, 0x24]
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ beq _08130E4A
+ b _08130F50
+_08130E4A:
+ b _08130F28
+ .align 2, 0
+_08130E4C: .4byte gSprites
+_08130E50:
+ ldr r2, _08130E7C
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0x24
+ ldrsh r2, [r3, r0]
+ lsls r0, r2, 1
+ adds r0, r2
+ ldrh r2, [r1, 0x24]
+ adds r0, r2
+ strh r0, [r1, 0x24]
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _08130F50
+ b _08130F28
+ .align 2, 0
+_08130E7C: .4byte gSprites
+_08130E80:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _08130F50
+ movs r0, 0
+ strh r0, [r3, 0xA]
+ ldrh r1, [r3, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bne _08130F2C
+ adds r0, r1, 0x1
+ strh r0, [r3, 0xC]
+ movs r0, 0x1
+ strh r0, [r3, 0x8]
+ b _08130F50
+_08130EA6:
+ ldr r2, _08130ECC
+ 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]
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3
+ bne _08130F50
+ b _08130F28
+ .align 2, 0
+_08130ECC: .4byte gSprites
+_08130ED0:
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x6
+ bne _08130F50
+ b _08130F28
+_08130EE0:
+ ldr r2, _08130EFC
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r0, 0x24
+ ldrsh r2, [r3, r0]
+ lsls r2, 2
+ ldrh r0, [r1, 0x24]
+ subs r0, r2
+ b _08130F18
+ .align 2, 0
+_08130EFC: .4byte gSprites
+_08130F00:
+ ldr r2, _08130F34
+ movs r1, 0x26
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r2, 0x24
+ ldrsh r0, [r3, r2]
+ lsls r0, 2
+ ldrh r2, [r1, 0x24]
+ adds r0, r2
+_08130F18:
+ strh r0, [r1, 0x24]
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x5
+ bne _08130F50
+_08130F28:
+ movs r0, 0
+ strh r0, [r3, 0xA]
+_08130F2C:
+ ldrh r0, [r3, 0x8]
+ adds r0, 0x1
+ strh r0, [r3, 0x8]
+ b _08130F50
+ .align 2, 0
+_08130F34: .4byte gSprites
+_08130F38:
+ ldr r2, _08130F58
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x24]
+ adds r0, r4, 0
+ bl move_anim_task_del
+_08130F50:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08130F58: .4byte gSprites
+ thumb_func_end sub_8130DBC
+
+ thumb_func_start sub_8130F5C
+sub_8130F5C: @ 8130F5C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _08130F78
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08130F80
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80787B0
+ ldr r0, _08130F7C
+ b _08130F82
+ .align 2, 0
+_08130F78: .4byte gUnknown_03004B00
+_08130F7C: .4byte gUnknown_0202F7C8
+_08130F80:
+ ldr r0, _08130FD8
+_08130F82:
+ ldrb r0, [r0]
+ strh r0, [r4, 0x3C]
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08130FA6
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x10
+ orrs r1, r0
+ strb r1, [r4, 0x3]
+_08130FA6:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8079ED4
+ movs r2, 0x3
+ ands r2, r0
+ lsls r2, 2
+ ldrb r3, [r4, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r3
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ ldrb r0, [r4, 0x1]
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r4, 0x1]
+ ldr r0, _08130FDC
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08130FD8: .4byte gUnknown_0202F7C9
+_08130FDC: .4byte sub_8130FE0
+ thumb_func_end sub_8130F5C
+
+ thumb_func_start sub_8130FE0
+sub_8130FE0: @ 8130FE0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _08130FEE
+ b _081311DE
+_08130FEE:
+ lsls r0, 2
+ ldr r1, _08130FF8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08130FF8: .4byte _08130FFC
+ .align 2, 0
+_08130FFC:
+ .4byte _08131010
+ .4byte _08131110
+ .4byte _08131178
+ .4byte _0813118C
+ .4byte _081311D8
+_08131010:
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x5
+ bhi _08131040
+ lsls r0, 2
+ ldr r1, _08131024
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08131024: .4byte _08131028
+ .align 2, 0
+_08131028:
+ .4byte _08131044
+ .4byte _08131060
+ .4byte _08131082
+ .4byte _0813109E
+ .4byte _08131044
+ .4byte _081310C4
+_08131040:
+ movs r0, 0
+ strh r0, [r4, 0x3A]
+_08131044:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x5
+ bl sub_807A100
+ subs r0, 0x4
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ b _081310B8
+_08131060:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x5
+ bl sub_807A100
+ subs r0, 0x4
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+ bl sub_807A100
+ adds r0, 0x4
+ b _081310BE
+_08131082:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x4
+ bl sub_807A100
+ adds r0, 0x4
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ b _081310B8
+_0813109E:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x4
+ bl sub_807A100
+ adds r0, 0x4
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+_081310B8:
+ bl sub_807A100
+ subs r0, 0x4
+_081310BE:
+ lsls r0, 16
+ lsrs r1, r0, 16
+ b _081310E4
+_081310C4:
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldrh r0, [r4, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r1, r0, 24
+_081310E4:
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x4
+ bne _081310F0
+ movs r0, 0x18
+ b _081310FA
+_081310F0:
+ cmp r0, 0x5
+ bne _081310F8
+ movs r0, 0x6
+ b _081310FA
+_081310F8:
+ movs r0, 0xC
+_081310FA:
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ strh r5, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ strh r1, [r4, 0x36]
+ adds r0, r4, 0
+ bl obj_translate_based_on_private_1_2_3_4
+ b _081311CA
+_08131110:
+ adds r0, r4, 0
+ bl sub_8078B5C
+ lsls r0, 24
+ cmp r0, 0
+ beq _081311DE
+ movs r1, 0x3A
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ beq _08131148
+ cmp r0, 0x5
+ beq _08131168
+ 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, 0x2E]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ b _08131160
+_08131148:
+ 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]
+ strh r1, [r4, 0x38]
+_08131160:
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x1
+ strh r0, [r4, 0x3A]
+ b _081311DE
+_08131168:
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ movs r1, 0x10
+ strh r1, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ movs r0, 0x3
+ strh r0, [r4, 0x38]
+ b _081311DE
+_08131178:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ bne _081311DE
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ b _081311DE
+_0813118C:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0813119E
+ ldrh r0, [r4, 0x30]
+ subs r0, 0x1
+ strh r0, [r4, 0x30]
+ b _081311A4
+_0813119E:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+_081311A4:
+ ldr r2, _081311D4
+ ldrh r0, [r4, 0x32]
+ lsls r0, 8
+ ldrh r1, [r4, 0x30]
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x20
+ bne _081311DE
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_081311CA:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ b _081311DE
+ .align 2, 0
+_081311D4: .4byte REG_BLDALPHA
+_081311D8:
+ adds r0, r4, 0
+ bl move_anim_8072740
+_081311DE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8130FE0
+
+ thumb_func_start sub_81311E4
+sub_81311E4: @ 81311E4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ subs r0, r1
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ muls r0, r1
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ adds r5, r0, 0
+ strh r5, [r4, 0x24]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ subs r0, r1
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ muls r0, r1
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl __divsi3
+ adds r3, r0, 0
+ strh r3, [r4, 0x26]
+ ldrh r1, [r4, 0x38]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08131242
+ ldr r0, _08131260
+ ldrh r1, [r4, 0x20]
+ adds r1, r5
+ lsls r1, 16
+ asrs r1, 16
+ ldrh r2, [r4, 0x22]
+ adds r2, r3
+ lsls r2, 16
+ asrs r2, 16
+ movs r3, 0x5
+ bl CreateSprite
+_08131242:
+ movs r0, 0x38
+ ldrsh r1, [r4, r0]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _08131254
+ adds r0, r4, 0
+ bl move_anim_8072740
+_08131254:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08131260: .4byte gSpriteTemplate_8402500
+ thumb_func_end sub_81311E4
+
+ thumb_func_start sub_8131264
+sub_8131264: @ 8131264
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _081312A0
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ ldrb r0, [r4]
+ movs r1, 0x3
+ bl sub_8077ABC
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _08131290
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _081312A8
+_08131290:
+ ldr r2, _081312A4
+ ldrh r1, [r5, 0x20]
+ ldrh r0, [r2]
+ subs r0, r1, r0
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r2, 0x4]
+ subs r1, r0
+ b _081312B6
+ .align 2, 0
+_081312A0: .4byte gUnknown_0202F7C9
+_081312A4: .4byte gUnknown_03004B00
+_081312A8:
+ ldr r2, _081312DC
+ ldrh r1, [r5, 0x20]
+ ldrh r0, [r2]
+ adds r0, r1, r0
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r2, 0x4]
+ adds r1, r0
+_081312B6:
+ strh r1, [r5, 0x32]
+ adds r3, r2, 0
+ ldrh r1, [r5, 0x22]
+ ldrh r2, [r3, 0x2]
+ adds r2, r1, r2
+ strh r2, [r5, 0x30]
+ ldrh r0, [r3, 0x6]
+ adds r1, r0
+ strh r1, [r5, 0x34]
+ ldrh r0, [r3, 0x8]
+ strh r0, [r5, 0x36]
+ ldrh r0, [r5, 0x2E]
+ strh r0, [r5, 0x20]
+ strh r2, [r5, 0x22]
+ ldr r0, _081312E0
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081312DC: .4byte gUnknown_03004B00
+_081312E0: .4byte sub_81311E4
+ thumb_func_end sub_8131264
+
+ thumb_func_start sub_81312E4
+sub_81312E4: @ 81312E4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r2, r5, 0
+ ldr r0, _08131328
+ mov r9, r0
+ lsls r7, r6, 2
+ adds r0, r7, r6
+ lsls r0, 3
+ mov r8, r0
+ mov r4, r8
+ add r4, r9
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0813132C
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8078E70
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r4, 0xA]
+ strh r0, [r4, 0xC]
+ b _08131378
+ .align 2, 0
+_08131328: .4byte gTasks
+_0813132C:
+ cmp r0, 0x1
+ bne _08131384
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x60
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ subs r0, 0xD
+ strh r0, [r4, 0xC]
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ movs r0, 0xC
+ ldrsh r2, [r4, r0]
+ adds r0, r5, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r4, 0xE]
+ adds r0, 0x1
+ strh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x9
+ bne _081313E8
+ movs r0, 0
+ strh r0, [r4, 0xE]
+ adds r0, r5, 0
+ bl sub_8078F40
+ ldr r1, _08131380
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_08131378:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _081313E8
+ .align 2, 0
+_08131380: .4byte gSprites
+_08131384:
+ ldr r4, _081313F4
+ ldrb r0, [r4]
+ movs r1, 0
+ bl refresh_graphics_maybe
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _081313C6
+ ldr r3, _081313F8
+ ldr r2, _081313FC
+ ldrb r0, [r4]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x10
+ adds r0, r1
+ ldr r1, _08131400
+ str r1, [r0]
+ ldrb r0, [r4]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0
+ bl StartSpriteAffineAnim
+_081313C6:
+ mov r4, r9
+ adds r3, r7, 0
+ ldr r5, _08131404
+ movs r1, 0xF
+ mov r2, r8
+ adds r0, r4, r2
+ adds r0, 0x26
+ movs r2, 0
+_081313D6:
+ strh r2, [r0]
+ subs r0, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _081313D6
+ adds r0, r3, r6
+ lsls r0, 3
+ adds r0, r4
+ str r5, [r0]
+_081313E8:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081313F4: .4byte gUnknown_0202F7C8
+_081313F8: .4byte gSprites
+_081313FC: .4byte gUnknown_02024BE0
+_08131400: .4byte gSpriteAffineAnimTable_81E7C18
+_08131404: .4byte sub_8131408
+ thumb_func_end sub_81312E4
+
+ thumb_func_start sub_8131408
+sub_8131408: @ 8131408
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _08131434
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r5, [r4, r0]
+ cmp r5, 0x1
+ beq _0813146C
+ cmp r5, 0x1
+ bgt _08131438
+ cmp r5, 0
+ beq _08131442
+ b _0813155A
+ .align 2, 0
+_08131434: .4byte gTasks
+_08131438:
+ cmp r5, 0x2
+ beq _081314D8
+ cmp r5, 0x3
+ beq _08131514
+ b _0813155A
+_08131442:
+ ldr r0, _08131464
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _08131468
+ strh r0, [r1, 0x26]
+ movs r0, 0xC8
+ strh r0, [r1, 0x24]
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ subs r0, 0xCD
+ ands r0, r2
+ strb r0, [r1]
+ strh r5, [r4, 0x1C]
+ b _08131506
+ .align 2, 0
+_08131464: .4byte gSprites
+_08131468: .4byte 0x0000ff38
+_0813146C:
+ ldrh r1, [r4, 0x1C]
+ adds r1, 0x70
+ movs r5, 0
+ strh r1, [r4, 0x1C]
+ ldr r2, _081314D0
+ lsls r0, r3, 4
+ adds r0, r3
+ lsls r0, 2
+ adds r2, r0, r2
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r3, [r2, 0x26]
+ adds r1, r3
+ strh r1, [r2, 0x26]
+ 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
+ blt _0813149C
+ strh r5, [r2, 0x24]
+_0813149C:
+ movs r1, 0x26
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ ble _081314A6
+ strh r5, [r2, 0x26]
+_081314A6:
+ movs r3, 0x26
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bne _0813155A
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x7D
+ bl PlaySE12WithPanning
+ ldr r1, _081314D4
+ adds r0, r1, 0
+ ldrh r2, [r4, 0x1C]
+ adds r0, r2
+ strh r0, [r4, 0x1C]
+ b _08131506
+ .align 2, 0
+_081314D0: .4byte gSprites
+_081314D4: .4byte 0xfffff800
+_081314D8:
+ ldrh r0, [r4, 0x1C]
+ subs r0, 0x70
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ cmp r0, 0
+ bge _081314E8
+ movs r0, 0
+ strh r0, [r4, 0x1C]
+_081314E8:
+ ldr r0, _08131510
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrh r2, [r4, 0x1C]
+ lsls r2, 16
+ asrs r2, 24
+ ldrh r0, [r1, 0x26]
+ subs r0, r2
+ strh r0, [r1, 0x26]
+ movs r3, 0x1C
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _0813155A
+_08131506:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0813155A
+ .align 2, 0
+_08131510: .4byte gSprites
+_08131514:
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x70
+ strh r0, [r4, 0x1C]
+ ldr r2, _08131560
+ lsls r1, r3, 4
+ adds r1, r3
+ lsls r1, 2
+ adds r1, r2
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r2, [r1, 0x26]
+ adds r0, r2
+ strh r0, [r1, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ ble _08131538
+ movs r0, 0
+ strh r0, [r1, 0x26]
+_08131538:
+ movs r3, 0x26
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _0813155A
+ movs r0, 0x40
+ negs r0, r0
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x7D
+ bl PlaySE12WithPanning
+ adds r0, r6, 0
+ bl move_anim_task_del
+_0813155A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08131560: .4byte gSprites
+ thumb_func_end sub_8131408
+
+ thumb_func_start sub_8131564
+sub_8131564: @ 8131564
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _08131588
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08131590
+ ldrb r0, [r4]
+ bl sub_8079E90
+ subs r0, 0x2
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldr r4, _0813158C
+ b _081315A0
+ .align 2, 0
+_08131588: .4byte gUnknown_0202F7C9
+_0813158C: .4byte 0x0000ff70
+_08131590:
+ ldrb r0, [r4]
+ bl sub_8079E90
+ adds r0, 0x2
+ adds r1, r5, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ ldr r4, _081315BC
+_081315A0:
+ ldr r0, _081315C0
+ ldrb r0, [r0]
+ movs r1, 0x3
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x22]
+ strh r4, [r5, 0x26]
+ ldr r0, _081315C4
+ str r0, [r5, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081315BC: .4byte 0x0000ffa0
+_081315C0: .4byte gUnknown_0202F7C9
+_081315C4: .4byte sub_81315C8
+ thumb_func_end sub_8131564
+
+ thumb_func_start sub_81315C8
+sub_81315C8: @ 81315C8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bls _081315D6
+ b _081316F2
+_081315D6:
+ lsls r0, 2
+ ldr r1, _081315E0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081315E0: .4byte _081315E4
+ .align 2, 0
+_081315E4:
+ .4byte _081315F8
+ .4byte _0813161C
+ .4byte _0813165C
+ .4byte _0813168C
+ .4byte _081316B8
+_081315F8:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0xA
+ strh r0, [r4, 0x26]
+ lsls r0, 16
+ cmp r0, 0
+ blt _081316F2
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xCD
+ bl PlaySE12WithPanning
+ movs r0, 0
+ strh r0, [r4, 0x26]
+ b _081316B0
+_0813161C:
+ ldrh r1, [r4, 0x30]
+ adds r1, 0x4
+ movs r5, 0
+ strh r1, [r4, 0x30]
+ ldr r2, _08131658
+ movs r3, 0x30
+ ldrsh r0, [r4, r3]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x7F
+ ble _081316F2
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xCD
+ bl PlaySE12WithPanning
+ strh r5, [r4, 0x30]
+ strh r5, [r4, 0x26]
+ b _081316B0
+ .align 2, 0
+_08131658: .4byte gSineTable
+_0813165C:
+ ldrh r1, [r4, 0x30]
+ adds r1, 0x6
+ movs r3, 0
+ strh r1, [r4, 0x30]
+ ldr r2, _08131688
+ movs r5, 0x30
+ ldrsh r0, [r4, r5]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 20
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x7F
+ ble _081316F2
+ strh r3, [r4, 0x30]
+ strh r3, [r4, 0x26]
+ b _081316B0
+ .align 2, 0
+_08131688: .4byte gSineTable
+_0813168C:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _081316F2
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0xC0
+ bl PlaySE12WithPanning
+ movs r0, 0
+ strh r0, [r4, 0x30]
+_081316B0:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _081316F2
+_081316B8:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x8
+ ble _081316F2
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x32]
+ adds r1, 0x1
+ strh r1, [r4, 0x32]
+ movs r0, 0x1
+ ands r1, r0
+ adds r3, r4, 0
+ adds r3, 0x3E
+ lsls r1, 2
+ ldrb r2, [r3]
+ subs r0, 0x6
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7
+ bne _081316F2
+ adds r0, r4, 0
+ bl move_anim_8072740
+_081316F2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81315C8
+
+ thumb_func_start sub_81316F8
+sub_81316F8: @ 81316F8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ mov r10, r4
+ bl sub_8076BE0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0
+ bne _0813173E
+ movs r0, 0x1
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ lsls r0, 16
+ asrs r7, r0, 16
+ cmp r7, 0
+ blt _0813173E
+ movs r0, 0x1
+ bl duplicate_obj_of_side_rel2move_in_transparent_mode
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _0813174C
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ ldr r1, _08131748
+ adds r0, r1
+ bl obj_delete_but_dont_free_vram
+_0813173E:
+ adds r0, r4, 0
+ bl move_anim_task_del
+ b _081317EE
+ .align 2, 0
+_08131748: .4byte gSprites
+_0813174C:
+ ldr r1, _081317FC
+ mov r9, r1
+ lsls r1, r0, 4
+ mov r8, r1
+ add r8, r0
+ mov r0, r8
+ lsls r0, 2
+ mov r8, r0
+ mov r4, r8
+ add r4, r9
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x18
+ strh r0, [r4, 0x24]
+ lsls r6, r7, 4
+ adds r6, r7
+ lsls r6, 2
+ mov r1, r9
+ adds r2, r6, r1
+ ldrh r0, [r2, 0x24]
+ subs r0, 0x18
+ strh r0, [r2, 0x24]
+ strh r5, [r4, 0x2E]
+ strh r5, [r2, 0x2E]
+ strh r5, [r4, 0x30]
+ strh r5, [r2, 0x30]
+ strh r5, [r4, 0x32]
+ strh r5, [r2, 0x32]
+ movs r0, 0x10
+ strh r0, [r4, 0x34]
+ ldr r0, _08131800
+ strh r0, [r2, 0x34]
+ strh r5, [r4, 0x36]
+ movs r0, 0x80
+ strh r0, [r2, 0x36]
+ movs r0, 0x18
+ strh r0, [r4, 0x38]
+ strh r0, [r2, 0x38]
+ mov r0, r10
+ strh r0, [r4, 0x3A]
+ strh r0, [r2, 0x3A]
+ strh r5, [r4, 0x3C]
+ strh r5, [r2, 0x3C]
+ ldr r0, _08131804
+ mov r1, r10
+ lsls r3, r1, 2
+ add r3, r10
+ lsls r3, 3
+ adds r3, r0
+ movs r0, 0x2
+ strh r0, [r3, 0x8]
+ adds r5, r4, 0
+ adds r5, 0x3E
+ ldrb r1, [r5]
+ subs r0, 0x7
+ ands r0, r1
+ strb r0, [r5]
+ adds r5, r2, 0
+ adds r5, 0x3E
+ ldrb r0, [r5]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r5]
+ ldrb r5, [r4, 0x1]
+ movs r1, 0xD
+ negs r1, r1
+ adds r0, r1, 0
+ ands r0, r5
+ strb r0, [r4, 0x1]
+ ldrb r0, [r2, 0x1]
+ ands r1, r0
+ strb r1, [r2, 0x1]
+ movs r0, 0x1C
+ add r9, r0
+ add r8, r9
+ ldr r0, _08131808
+ mov r1, r8
+ str r0, [r1]
+ add r6, r9
+ str r0, [r6]
+ ldr r0, _0813180C
+ str r0, [r3]
+_081317EE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081317FC: .4byte gSprites
+_08131800: .4byte 0x0000fff0
+_08131804: .4byte gTasks
+_08131808: .4byte sub_8131838
+_0813180C: .4byte sub_8131810
+ thumb_func_end sub_81316F8
+
+ thumb_func_start sub_8131810
+sub_8131810: @ 8131810
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _08131834
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0813182E
+ adds r0, r2, 0
+ bl move_anim_task_del
+_0813182E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08131834: .4byte gTasks
+ thumb_func_end sub_8131810
+
+ thumb_func_start sub_8131838
+sub_8131838: @ 8131838
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08131868
+ strh r5, [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]
+_08131868:
+ ldrh r0, [r4, 0x34]
+ ldrh r1, [r4, 0x36]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x36]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08131890
+ cmp r0, 0x1
+ beq _081318A8
+ b _081318E6
+_08131890:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ bne _081318E6
+ strh r5, [r4, 0x32]
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _081318E6
+_081318A8:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ lsls r0, 16
+ cmp r0, 0
+ ble _081318E6
+ strh r5, [r4, 0x32]
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x2
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ cmp r0, 0
+ bge _081318E6
+ ldr r3, _081318EC
+ 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]
+ adds r0, r4, 0
+ bl obj_delete_but_dont_free_vram
+_081318E6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081318EC: .4byte gTasks
+ thumb_func_end sub_8131838
+
+ thumb_func_start sub_81318F0
+sub_81318F0: @ 81318F0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r3, _0813193C
+ movs r2, 0
+ strh r2, [r3, 0xE]
+ ldr r1, _08131940
+ ldrb r0, [r1]
+ ldrb r1, [r1]
+ adds r0, r1, 0
+ subs r0, 0x3D
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r1, 0
+ cmp r0, 0x1E
+ bhi _08131914
+ movs r0, 0x1
+ strh r0, [r3, 0xE]
+_08131914:
+ adds r0, r2, 0
+ subs r0, 0x5C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6C
+ bhi _08131924
+ movs r0, 0x2
+ strh r0, [r3, 0xE]
+_08131924:
+ lsls r0, r1, 24
+ lsrs r0, 24
+ cmp r0, 0xC8
+ bls _08131930
+ movs r0, 0x3
+ strh r0, [r3, 0xE]
+_08131930:
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813193C: .4byte gUnknown_03004B00
+_08131940: .4byte gUnknown_0202F7BE
+ thumb_func_end sub_81318F0
+
+ thumb_func_start sub_8131944
+sub_8131944: @ 8131944
+ 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
+ ldr r1, _08131974
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x4
+ bls _0813196A
+ b _08131EA0
+_0813196A:
+ lsls r0, 2
+ ldr r1, _08131978
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08131974: .4byte gTasks
+_08131978: .4byte _0813197C
+ .align 2, 0
+_0813197C:
+ .4byte _08131990
+ .4byte _08131A44
+ .4byte _08131C20
+ .4byte _08131D40
+ .4byte _08131DC4
+_08131990:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _081319DC
+ mov r2, r8
+ lsls r4, r2, 2
+ adds r0, r4, r2
+ lsls r0, 3
+ adds r6, r0, r1
+ movs r3, 0x80
+ lsls r3, 4
+ adds r0, r3, 0
+ ldrh r1, [r6, 0xA]
+ adds r0, r1
+ strh r0, [r6, 0xA]
+ ldr r0, _081319E0
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ mov r9, r4
+ cmp r0, 0
+ bne _081319E8
+ ldr r2, _081319E4
+ lsls r3, r7, 4
+ adds r1, r3, r7
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r6, 0xA]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r4, [r1, 0x24]
+ adds r0, r4
+ strh r0, [r1, 0x24]
+ b _08131A02
+ .align 2, 0
+_081319DC: .4byte gTasks
+_081319E0: .4byte gUnknown_0202F7C8
+_081319E4: .4byte gSprites
+_081319E8:
+ ldr r3, _08131A3C
+ lsls r4, r7, 4
+ adds r2, r4, r7
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r6, 0xA]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r2, 0x24]
+ subs r0, r1
+ strh r0, [r2, 0x24]
+ adds r2, r3, 0
+ adds r3, r4, 0
+_08131A02:
+ ldr r1, _08131A40
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrb r0, [r4, 0xA]
+ strh r0, [r4, 0xA]
+ adds r1, r3, r7
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x24]
+ ldrh r1, [r1, 0x20]
+ adds r0, r1
+ lsls r0, 16
+ movs r1, 0x80
+ lsls r1, 14
+ adds r0, r1
+ movs r1, 0x98
+ lsls r1, 17
+ cmp r0, r1
+ bhi _08131A2E
+ b _08131EA0
+_08131A2E:
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08131EA0
+ .align 2, 0
+_08131A3C: .4byte gSprites
+_08131A40: .4byte gTasks
+_08131A44:
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08131A74
+ ldr r0, _08131A6C
+ ldr r2, [r0, 0x8]
+ mov r10, r2
+ ldr r3, [r0, 0xC]
+ mov r9, r3
+ ldrh r5, [r0]
+ ldr r0, _08131A70
+ ldrb r0, [r0]
+ bl sub_8079E90
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r7, 0
+ b _08131B92
+ .align 2, 0
+_08131A6C: .4byte 0x02019348
+_08131A70: .4byte gUnknown_0202F7C8
+_08131A74:
+ ldr r4, _08131AD4
+ ldrb r0, [r4]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08131B10
+ ldr r7, _08131AD8
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _08131ADC
+ adds r0, r5
+ movs r1, 0
+ bl GetMonData
+ mov r10, r0
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x1
+ bl GetMonData
+ mov r9, r0
+ ldrb r2, [r4]
+ lsls r1, r2, 2
+ ldr r0, _08131AE0
+ adds r1, r0
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _08131AE4
+ lsls r0, r2, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ b _08131AE6
+ .align 2, 0
+_08131AD4: .4byte gUnknown_0202F7C8
+_08131AD8: .4byte gUnknown_02024A6A
+_08131ADC: .4byte gPlayerParty
+_08131AE0: .4byte 0x02017800
+_08131AE4:
+ ldrh r5, [r1, 0x2]
+_08131AE6:
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ ldr r2, _08131B0C
+ 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
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r7, 0
+ movs r6, 0x88
+ lsls r6, 1
+ b _08131B94
+ .align 2, 0
+_08131B0C: .4byte gSprites
+_08131B10:
+ ldr r7, _08131B64
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _08131B68
+ adds r0, r5
+ movs r1, 0
+ bl GetMonData
+ mov r10, r0
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0x1
+ bl GetMonData
+ mov r9, r0
+ ldrb r2, [r4]
+ lsls r1, r2, 2
+ ldr r0, _08131B6C
+ adds r1, r0
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ bne _08131B70
+ lsls r0, r2, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ b _08131B72
+ .align 2, 0
+_08131B64: .4byte gUnknown_02024A6A
+_08131B68: .4byte gEnemyParty
+_08131B6C: .4byte 0x02017800
+_08131B70:
+ ldrh r5, [r1, 0x2]
+_08131B72:
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ ldr r2, _08131C04
+ 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]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r7, 0x1
+_08131B92:
+ ldr r6, _08131C08
+_08131B94:
+ ldr r0, _08131C0C
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r3, r6, 16
+ asrs r3, 16
+ str r0, [sp]
+ str r4, [sp, 0x4]
+ mov r4, r10
+ str r4, [sp, 0x8]
+ mov r0, r9
+ str r0, [sp, 0xC]
+ adds r0, r5, 0
+ adds r1, r7, 0
+ movs r2, 0
+ bl sub_8079F44
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _08131C10
+ ldrb r0, [r0]
+ lsls r0, 2
+ ldr r1, _08131C14
+ adds r0, r1
+ ldrh r0, [r0, 0x2]
+ cmp r0, 0
+ beq _08131BF2
+ ldr r1, _08131C04
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ lsls r0, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ orrs r0, r1
+ ldr r3, _08131C18
+ movs r1, 0x10
+ movs r2, 0x6
+ bl BlendPalette
+_08131BF2:
+ ldr r0, _08131C1C
+ mov r3, r8
+ lsls r1, r3, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ strh r5, [r1, 0x26]
+ b _08131DB6
+ .align 2, 0
+_08131C04: .4byte gSprites
+_08131C08: .4byte 0x0000ffe0
+_08131C0C: .4byte gUnknown_0202F7C9
+_08131C10: .4byte gUnknown_0202F7C8
+_08131C14: .4byte 0x02017800
+_08131C18: .4byte 0x00007fff
+_08131C1C: .4byte gTasks
+_08131C20:
+ ldr r1, _08131C6C
+ mov r0, r8
+ lsls r4, r0, 2
+ adds r0, r4, r0
+ lsls r0, 3
+ adds r6, r0, r1
+ ldrh r0, [r6, 0x26]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r1, 0x80
+ lsls r1, 4
+ adds r0, r1, 0
+ ldrh r2, [r6, 0xA]
+ adds r0, r2
+ strh r0, [r6, 0xA]
+ ldr r0, _08131C70
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ mov r9, r4
+ cmp r0, 0
+ bne _08131C78
+ ldr r3, _08131C74
+ lsls r4, r5, 4
+ adds r2, r4, r5
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r6, 0xA]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r2, 0x24]
+ subs r0, r1
+ strh r0, [r2, 0x24]
+ adds r2, r3, 0
+ adds r3, r4, 0
+ b _08131C8E
+ .align 2, 0
+_08131C6C: .4byte gTasks
+_08131C70: .4byte gUnknown_0202F7C8
+_08131C74: .4byte gSprites
+_08131C78:
+ ldr r2, _08131CDC
+ lsls r3, r5, 4
+ adds r1, r3, r5
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r6, 0xA]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r4, [r1, 0x24]
+ adds r0, r4
+ strh r0, [r1, 0x24]
+_08131C8E:
+ ldr r1, _08131CE0
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r6, r0, r1
+ ldrb r0, [r6, 0xA]
+ strh r0, [r6, 0xA]
+ adds r1, r3, r5
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x24]
+ ldrh r1, [r1, 0x20]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r1, 0x24
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _08131D0E
+ ldr r0, _08131CE4
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08131CEC
+ lsls r4, r5, 16
+ asrs r4, 16
+ ldr r0, _08131CE8
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bge _08131D0E
+ b _08131D02
+ .align 2, 0
+_08131CDC: .4byte gSprites
+_08131CE0: .4byte gTasks
+_08131CE4: .4byte gUnknown_0202F7C8
+_08131CE8: .4byte gUnknown_0202F7C9
+_08131CEC:
+ lsls r4, r5, 16
+ asrs r4, 16
+ ldr r0, _08131D30
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ ble _08131D0E
+_08131D02:
+ ldrh r0, [r6, 0x24]
+ adds r0, 0x1
+ strh r0, [r6, 0x24]
+ ldr r1, _08131D34
+ ldr r0, _08131D38
+ strh r0, [r1, 0xE]
+_08131D0E:
+ lsls r0, r5, 16
+ movs r2, 0x80
+ lsls r2, 14
+ adds r0, r2
+ movs r1, 0x98
+ lsls r1, 17
+ cmp r0, r1
+ bhi _08131D20
+ b _08131EA0
+_08131D20:
+ ldr r0, _08131D3C
+ mov r1, r9
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1, 0xA]
+ b _08131DB6
+ .align 2, 0
+_08131D30: .4byte gUnknown_0202F7C9
+_08131D34: .4byte gUnknown_03004B00
+_08131D38: .4byte 0x0000ffff
+_08131D3C: .4byte gTasks
+_08131D40:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08131D8C
+ mov r3, r8
+ lsls r4, r3, 2
+ adds r0, r4, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x26]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ ldr r5, _08131D90
+ adds r0, r5
+ bl sub_807A0F4
+ ldr r0, _08131D94
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ mov r9, r4
+ cmp r0, 0
+ bne _08131D98
+ lsls r1, r7, 4
+ adds r1, r7
+ lsls r1, 2
+ adds r1, r5
+ ldrh r0, [r1, 0x20]
+ negs r0, r0
+ subs r0, 0x20
+ strh r0, [r1, 0x24]
+ b _08131DAC
+ .align 2, 0
+_08131D8C: .4byte gTasks
+_08131D90: .4byte gSprites
+_08131D94: .4byte gUnknown_0202F7C8
+_08131D98:
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ adds r0, r5
+ ldrh r2, [r0, 0x20]
+ movs r4, 0x88
+ lsls r4, 1
+ adds r1, r4, 0
+ subs r1, r2
+ strh r1, [r0, 0x24]
+_08131DAC:
+ ldr r0, _08131DC0
+ mov r1, r9
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+_08131DB6:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _08131EA0
+ .align 2, 0
+_08131DC0: .4byte gTasks
+_08131DC4:
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08131E38
+ mov r0, r8
+ lsls r4, r0, 2
+ adds r0, r4, r0
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r1, 0x80
+ lsls r1, 4
+ adds r0, r1, 0
+ ldrh r3, [r2, 0xA]
+ adds r0, r3
+ strh r0, [r2, 0xA]
+ ldr r0, _08131E3C
+ mov r10, r0
+ ldrb r0, [r0]
+ str r2, [sp, 0x10]
+ bl battle_side_get_owner
+ lsls r0, 24
+ mov r9, r4
+ ldr r2, [sp, 0x10]
+ cmp r0, 0
+ bne _08131E44
+ ldr r1, _08131E40
+ lsls r5, r7, 4
+ adds r0, r5, r7
+ lsls r0, 2
+ adds r6, r0, r1
+ ldrh r0, [r2, 0xA]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r1, [r6, 0x24]
+ adds r0, r1
+ strh r0, [r6, 0x24]
+ movs r2, 0x24
+ ldrsh r4, [r6, r2]
+ movs r3, 0x20
+ ldrsh r0, [r6, r3]
+ adds r4, r0
+ mov r1, r10
+ ldrb r0, [r1]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r5, 0
+ cmp r4, r0
+ blt _08131E7C
+ movs r2, 0
+ strh r2, [r6, 0x24]
+ b _08131E7C
+ .align 2, 0
+_08131E38: .4byte gTasks
+_08131E3C: .4byte gUnknown_0202F7C8
+_08131E40: .4byte gSprites
+_08131E44:
+ ldr r1, _08131EB0
+ lsls r5, r7, 4
+ adds r0, r5, r7
+ lsls r0, 2
+ adds r6, r0, r1
+ ldrh r1, [r2, 0xA]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r6, 0x24]
+ subs r0, r1
+ strh r0, [r6, 0x24]
+ movs r3, 0x24
+ ldrsh r4, [r6, r3]
+ movs r1, 0x20
+ ldrsh r0, [r6, r1]
+ adds r4, r0
+ mov r2, r10
+ ldrb r0, [r2]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r5, 0
+ cmp r4, r0
+ bgt _08131E7C
+ movs r4, 0
+ strh r4, [r6, 0x24]
+_08131E7C:
+ ldr r1, _08131EB4
+ mov r0, r9
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0xA]
+ strh r1, [r0, 0xA]
+ ldr r1, _08131EB0
+ adds r0, r3, r7
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x24
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08131EA0
+ mov r0, r8
+ bl move_anim_task_del
+_08131EA0:
+ 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
+_08131EB0: .4byte gSprites
+_08131EB4: .4byte gTasks
+ thumb_func_end sub_8131944
+
+ thumb_func_start sub_8131EB8
+sub_8131EB8: @ 8131EB8
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _08131ECA
+ cmp r0, 0x1
+ beq _08131F72
+ b _08131FF4
+_08131ECA:
+ ldr r0, _08131F50
+ movs r2, 0xE
+ ldrsh r1, [r0, r2]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _08131F64
+ movs r0, 0x3F
+ bl sub_8076F98
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x7A
+ bl PlaySE12WithPanning
+ ldr r0, _08131F54
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ strh r0, [r4, 0x22]
+ ldr r0, _08131F58
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _08131F5C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08131FF4
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08131FF4
+ movs r0, 0x1
+ bl obj_id_for_side_relative_to_move
+ ldr r2, _08131F60
+ 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]
+ subs r0, 0x1
+ adds r1, r4, 0
+ adds r1, 0x43
+ strb r0, [r1]
+ b _08131FF4
+ .align 2, 0
+_08131F50: .4byte gUnknown_03004B00
+_08131F54: .4byte gUnknown_0202F7C9
+_08131F58: .4byte 0x0000ffe0
+_08131F5C: .4byte gUnknown_0202F7C8
+_08131F60: .4byte gSprites
+_08131F64:
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _08131FF4
+_08131F72:
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2E
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r2, [r4, 0x30]
+ adds r0, r2, 0x5
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7F
+ ble _08131FA6
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ adds r0, r2, 0
+ subs r0, 0x7A
+ strh r0, [r4, 0x30]
+_08131FA6:
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldr r0, _08131FD0
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08131FD4
+ ldrh r2, [r4, 0x32]
+ lsls r1, r2, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x24]
+ subs r0, r1
+ strh r0, [r4, 0x24]
+ adds r1, r2, 0
+ b _08131FE0
+ .align 2, 0
+_08131FD0: .4byte gUnknown_0202F7C8
+_08131FD4:
+ ldrh r1, [r4, 0x32]
+ lsls r0, r1, 16
+ asrs r0, 24
+ ldrh r2, [r4, 0x24]
+ adds r0, r2
+ strh r0, [r4, 0x24]
+_08131FE0:
+ movs r0, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x32]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x2
+ bne _08131FF4
+ adds r0, r4, 0
+ bl move_anim_8072740
+_08131FF4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8131EB8
+
+ thumb_func_start sub_8131FFC
+sub_8131FFC: @ 8131FFC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _08132024
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x26
+ ldrsh r0, [r0, r2]
+ adds r3, r1, 0
+ cmp r0, 0x4
+ bls _08132018
+ b _0813216A
+_08132018:
+ lsls r0, 2
+ ldr r1, _08132028
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08132024: .4byte gTasks
+_08132028: .4byte _0813202C
+ .align 2, 0
+_0813202C:
+ .4byte _08132040
+ .4byte _08132090
+ .4byte _081320EC
+ .4byte _08132104
+ .4byte _0813216A
+_08132040:
+ ldr r0, _08132084
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r0, _08132088
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ ldr r1, _0813208C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r0, 0x6
+ strh r0, [r1, 0x8]
+ cmp r5, r2
+ ble _08132076
+ negs r0, r0
+ strh r0, [r1, 0x8]
+_08132076:
+ strh r5, [r1, 0xA]
+ strh r2, [r1, 0xC]
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ b _08132188
+ .align 2, 0
+_08132084: .4byte gUnknown_0202F7C8
+_08132088: .4byte gUnknown_0202F7C9
+_0813208C: .4byte gTasks
+_08132090:
+ ldr r1, _081320CC
+ ldr r0, _081320D0
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r1, _081320D4
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r1
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r3
+ ldrh r0, [r2, 0x8]
+ ldrh r3, [r1, 0x24]
+ adds r0, r3
+ strh r0, [r1, 0x24]
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ ble _081320D8
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ movs r3, 0x24
+ ldrsh r1, [r1, r3]
+ adds r0, r1
+ movs r3, 0xC
+ ldrsh r1, [r2, r3]
+ b _0813215E
+ .align 2, 0
+_081320CC: .4byte gUnknown_02024BE0
+_081320D0: .4byte gUnknown_0202F7C8
+_081320D4: .4byte gSprites
+_081320D8:
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ movs r3, 0x24
+ ldrsh r1, [r1, r3]
+ adds r0, r1
+ movs r3, 0xC
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bgt _08132188
+ b _08132162
+_081320EC:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r3
+ movs r2, 0x8
+ ldrsh r1, [r0, r2]
+ negs r1, r1
+ strh r1, [r0, 0x8]
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x1
+ strh r1, [r0, 0x26]
+ b _08132188
+_08132104:
+ ldr r1, _08132144
+ ldr r0, _08132148
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r1, _0813214C
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r1
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r3
+ ldrh r0, [r2, 0x8]
+ ldrh r3, [r1, 0x24]
+ adds r0, r3
+ strh r0, [r1, 0x24]
+ movs r3, 0x8
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ bge _08132150
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ movs r3, 0x24
+ ldrsh r1, [r1, r3]
+ adds r0, r1
+ movs r3, 0xA
+ ldrsh r1, [r2, r3]
+ cmp r0, r1
+ bgt _08132188
+ b _08132162
+ .align 2, 0
+_08132144: .4byte gUnknown_02024BE0
+_08132148: .4byte gUnknown_0202F7C8
+_0813214C: .4byte gSprites
+_08132150:
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ movs r3, 0x24
+ ldrsh r1, [r1, r3]
+ adds r0, r1
+ movs r3, 0xA
+ ldrsh r1, [r2, r3]
+_0813215E:
+ cmp r0, r1
+ blt _08132188
+_08132162:
+ ldrh r0, [r2, 0x26]
+ adds r0, 0x1
+ strh r0, [r2, 0x26]
+ b _08132188
+_0813216A:
+ ldr r1, _08132190
+ ldr r0, _08132194
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r2, [r0]
+ ldr r1, _08132198
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x24]
+ adds r0, r4, 0
+ bl move_anim_task_del
+_08132188:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08132190: .4byte gUnknown_02024BE0
+_08132194: .4byte gUnknown_0202F7C8
+_08132198: .4byte gSprites
+ thumb_func_end sub_8131FFC
+
+ thumb_func_start sub_813219C
+sub_813219C: @ 813219C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08132204
+ adds r4, r1, r0
+ movs r0, 0
+ bl obj_id_for_side_relative_to_move
+ lsls r0, 24
+ lsrs r0, 24
+ movs r5, 0
+ strh r0, [r4, 0xE]
+ ldr r0, _08132208
+ 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 _081321D0
+ movs r1, 0x1
+_081321D0:
+ strh r1, [r4, 0x10]
+ ldr r2, _0813220C
+ movs r0, 0xE
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x22]
+ strh r0, [r4, 0x14]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x20]
+ strh r0, [r4, 0x12]
+ strh r5, [r4, 0x1A]
+ strh r5, [r4, 0x1E]
+ movs r0, 0x1
+ strh r0, [r4, 0x1C]
+ strh r5, [r4, 0x20]
+ ldr r0, _08132210
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08132204: .4byte gTasks
+_08132208: .4byte gUnknown_0202F7C8
+_0813220C: .4byte gSprites
+_08132210: .4byte sub_8132214
+ thumb_func_end sub_813219C
+
+ thumb_func_start sub_8132214
+sub_8132214: @ 8132214
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ ldr r1, _08132238
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _081322BC
+ cmp r0, 0x1
+ bgt _0813223C
+ cmp r0, 0
+ beq _08132242
+ b _08132312
+ .align 2, 0
+_08132238: .4byte gTasks
+_0813223C:
+ cmp r0, 0x2
+ beq _0813230C
+ b _08132312
+_08132242:
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x8
+ movs r2, 0xFF
+ ands r0, r2
+ strh r0, [r4, 0x1E]
+ ldr r5, _081322B4
+ movs r6, 0xE
+ ldrsh r0, [r4, r6]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldr r3, _081322B8
+ movs r6, 0x1E
+ ldrsh r0, [r4, r6]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 21
+ strh r0, [r1, 0x24]
+ ldrh r0, [r4, 0x1A]
+ adds r0, 0x2
+ ands r0, r2
+ strh r0, [r4, 0x1A]
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r5
+ movs r6, 0x1A
+ ldrsh r0, [r4, r6]
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ ldrh r1, [r4, 0x10]
+ muls r0, r1
+ ldrh r1, [r4, 0x12]
+ adds r0, r1
+ strh r0, [r2, 0x20]
+ movs r6, 0x1A
+ ldrsh r0, [r4, r6]
+ cmp r0, 0
+ bne _08132312
+ movs r0, 0xE
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r1, [r4, 0x12]
+ strh r1, [r0, 0x20]
+ b _081322FC
+ .align 2, 0
+_081322B4: .4byte gSprites
+_081322B8: .4byte gSineTable
+_081322BC:
+ ldrh r0, [r4, 0x1E]
+ adds r0, 0x8
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x1E]
+ ldr r3, _08132304
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldr r2, _08132308
+ movs r5, 0x1E
+ ldrsh r0, [r4, r5]
+ lsls r0, 1
+ adds r0, r2
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 21
+ strh r0, [r1, 0x24]
+ movs r6, 0x1E
+ ldrsh r2, [r4, r6]
+ cmp r2, 0
+ bne _08132312
+ movs r1, 0xE
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ strh r2, [r1, 0x24]
+_081322FC:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08132312
+ .align 2, 0
+_08132304: .4byte gSprites
+_08132308: .4byte gSineTable
+_0813230C:
+ adds r0, r2, 0
+ bl move_anim_task_del
+_08132312:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8132214
+
+ thumb_func_start sub_8132318
+sub_8132318: @ 8132318
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _0813236C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldrh r0, [r4, 0x2E]
+ ldrh r1, [r4, 0x30]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x30]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x14
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x14
+ bl Sin
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0813235E
+ adds r0, r4, 0
+ bl move_anim_8072740
+_0813235E:
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x1
+ strh r0, [r4, 0x32]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813236C: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_8132318
+
+ thumb_func_start sub_8132370
+sub_8132370: @ 8132370
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _081323A8
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _081323B4
+ ldr r2, _081323AC
+ 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]
+ ldr r0, _081323B0
+ strh r0, [r4, 0x2E]
+ movs r0, 0xC0
+ strh r0, [r4, 0x30]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ b _081323CE
+ .align 2, 0
+_081323A8: .4byte gUnknown_0202F7C9
+_081323AC: .4byte gUnknown_03004B00
+_081323B0: .4byte 0x0000fff5
+_081323B4:
+ movs r0, 0xB
+ strh r0, [r4, 0x2E]
+ movs r0, 0xC0
+ strh r0, [r4, 0x30]
+ ldr r1, _081323D8
+ 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]
+_081323CE:
+ ldr r0, _081323DC
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081323D8: .4byte gUnknown_03004B00
+_081323DC: .4byte sub_8132318
+ thumb_func_end sub_8132370
+
+ thumb_func_start sub_81323E0
+sub_81323E0: @ 81323E0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _08132424
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x20]
+ ldrb r0, [r4]
+ movs r1, 0x2
+ bl sub_807A100
+ strh r0, [r5, 0x22]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xF
+ bgt _0813240A
+ movs r0, 0x10
+ strh r0, [r5, 0x22]
+_0813240A:
+ movs r0, 0
+ strh r0, [r5, 0x3A]
+ movs r1, 0x10
+ strh r1, [r5, 0x3C]
+ ldr r0, _08132428
+ str r0, [r5, 0x1C]
+ ldr r0, _0813242C
+ lsls r1, 8
+ strh r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08132424: .4byte gUnknown_0202F7C8
+_08132428: .4byte sub_8132430
+_0813242C: .4byte REG_BLDALPHA
+ thumb_func_end sub_81323E0
+
+ thumb_func_start sub_8132430
+sub_8132430: @ 8132430
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r0, 0x32
+ ldrsh r1, [r3, r0]
+ cmp r1, 0x1
+ beq _081324A8
+ cmp r1, 0x1
+ bgt _08132446
+ cmp r1, 0
+ beq _08132450
+ b _08132522
+_08132446:
+ cmp r1, 0x2
+ beq _081324BE
+ cmp r1, 0x3
+ beq _0813251C
+ b _08132522
+_08132450:
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08132522
+ strh r1, [r3, 0x2E]
+ ldrh r1, [r3, 0x30]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0813247A
+ ldrh r2, [r3, 0x3A]
+ movs r4, 0x3A
+ ldrsh r0, [r3, r4]
+ cmp r0, 0xF
+ bgt _08132488
+ adds r0, r2, 0x1
+ strh r0, [r3, 0x3A]
+ b _08132488
+_0813247A:
+ ldrh r2, [r3, 0x3C]
+ movs r4, 0x3C
+ ldrsh r0, [r3, r4]
+ cmp r0, 0
+ beq _08132488
+ subs r0, r2, 0x1
+ strh r0, [r3, 0x3C]
+_08132488:
+ adds r0, r1, 0x1
+ strh r0, [r3, 0x30]
+ ldr r2, _081324A4
+ ldrh r0, [r3, 0x3C]
+ lsls r0, 8
+ ldrh r1, [r3, 0x3A]
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x3C
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ bne _08132522
+ b _08132510
+ .align 2, 0
+_081324A4: .4byte REG_BLDALPHA
+_081324A8:
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _08132522
+ strh r1, [r3, 0x2E]
+ strh r1, [r3, 0x30]
+ b _08132510
+_081324BE:
+ ldrh r0, [r3, 0x2E]
+ adds r0, 0x1
+ strh r0, [r3, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _08132522
+ movs r0, 0
+ strh r0, [r3, 0x2E]
+ ldrh r1, [r3, 0x30]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _081324EA
+ ldrh r2, [r3, 0x3A]
+ movs r4, 0x3A
+ ldrsh r0, [r3, r4]
+ cmp r0, 0
+ beq _081324F8
+ subs r0, r2, 0x1
+ strh r0, [r3, 0x3A]
+ b _081324F8
+_081324EA:
+ ldrh r2, [r3, 0x3C]
+ movs r4, 0x3C
+ ldrsh r0, [r3, r4]
+ cmp r0, 0xF
+ bgt _081324F8
+ adds r0, r2, 0x1
+ strh r0, [r3, 0x3C]
+_081324F8:
+ adds r0, r1, 0x1
+ strh r0, [r3, 0x30]
+ ldr r2, _08132518
+ ldrh r0, [r3, 0x3C]
+ lsls r0, 8
+ ldrh r1, [r3, 0x3A]
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x3C
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x10
+ bne _08132522
+_08132510:
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x1
+ strh r0, [r3, 0x32]
+ b _08132522
+ .align 2, 0
+_08132518: .4byte REG_BLDALPHA
+_0813251C:
+ adds r0, r3, 0
+ bl move_anim_8074EE0
+_08132522:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8132430
+
+ thumb_func_start sub_8132528
+sub_8132528: @ 8132528
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r2, _08132544
+ movs r0, 0
+ strh r0, [r2, 0xE]
+ ldr r0, _08132548
+ ldrh r1, [r0]
+ movs r0, 0x60
+ ands r0, r1
+ cmp r0, 0
+ beq _0813254C
+ movs r0, 0x1
+ b _0813256E
+ .align 2, 0
+_08132544: .4byte gUnknown_03004B00
+_08132548: .4byte gUnknown_0202F7C0
+_0813254C:
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _08132558
+ movs r0, 0x2
+ b _0813256E
+_08132558:
+ movs r0, 0x18
+ ands r0, r1
+ cmp r0, 0
+ beq _08132564
+ movs r0, 0x3
+ b _0813256E
+_08132564:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08132570
+ movs r0, 0x4
+_0813256E:
+ strh r0, [r2, 0xE]
+_08132570:
+ adds r0, r3, 0
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8132528
+
+ thumb_func_start sub_813257C
+sub_813257C: @ 813257C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r0, _081325B4
+ adds r4, r0
+ movs r0, 0
+ strh r0, [r4, 0x8]
+ ldr r0, _081325B8
+ ldrb r0, [r0]
+ bl obj_id_for_side_relative_to_move
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ strh r1, [r4, 0x26]
+ ldr r2, _081325BC
+ adds r0, r4, 0
+ bl sub_80798F4
+ ldr r0, _081325C0
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081325B4: .4byte gTasks
+_081325B8: .4byte gUnknown_03004B00
+_081325BC: .4byte gUnknown_08402B28
+_081325C0: .4byte sub_81325C4
+ thumb_func_end sub_813257C
+
+ thumb_func_start sub_81325C4
+sub_81325C4: @ 81325C4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r2, _0813261C
+ adds r3, r0, r2
+ ldrh r0, [r3, 0x8]
+ adds r1, r0, 0x1
+ movs r5, 0
+ strh r1, [r3, 0x8]
+ subs r0, 0x10
+ lsls r0, 16
+ lsrs r0, 16
+ adds r6, r2, 0
+ cmp r0, 0x16
+ bhi _08132628
+ ldrh r0, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ ble _08132638
+ strh r5, [r3, 0xA]
+ ldrh r0, [r3, 0xC]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ movs r5, 0x1
+ ands r0, r5
+ cmp r0, 0
+ bne _08132628
+ ldr r2, _08132620
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _08132624
+ strh r1, [r0, 0x24]
+ b _08132638
+ .align 2, 0
+_0813261C: .4byte gTasks
+_08132620: .4byte gSprites
+_08132624: .4byte 0x0000ffff
+_08132628:
+ ldr r2, _08132658
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ strh r5, [r0, 0x24]
+_08132638:
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r6
+ bl sub_807992C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08132650
+ adds r0, r4, 0
+ bl move_anim_task_del
+_08132650:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08132658: .4byte gSprites
+ thumb_func_end sub_81325C4
+
+ thumb_func_start sub_813265C
+sub_813265C: @ 813265C
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813265C
+
+ thumb_func_start sub_8132670
+sub_8132670: @ 8132670
+ push {lr}
+ sub sp, 0x4
+ bl ScriptContext2_Enable
+ ldr r0, _08132698
+ 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
+_08132698: .4byte sub_813269C
+ thumb_func_end sub_8132670
+
+ thumb_func_start sub_813269C
+sub_813269C: @ 813269C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _081326C8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081326C0
+ ldr r0, _081326CC
+ bl SetMainCallback2
+ ldr r1, _081326D0
+ ldr r0, _081326D4
+ str r0, [r1]
+ adds r0, r4, 0
+ bl DestroyTask
+_081326C0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081326C8: .4byte gPaletteFade
+_081326CC: .4byte sub_81326D8
+_081326D0: .4byte gUnknown_0300485C
+_081326D4: .4byte sub_8080990
+ thumb_func_end sub_813269C
+
+ thumb_func_start sub_81326D8
+sub_81326D8: @ 81326D8
+ push {r4,r5,lr}
+ movs r1, 0x80
+ lsls r1, 19
+ movs r0, 0
+ strh r0, [r1]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ ldr r4, _08132778
+ ldr r0, _0813277C
+ str r0, [r4]
+ bl sub_81332A0
+ ldr r1, [r4]
+ ldr r0, _08132780
+ ldrh r0, [r0]
+ ldr r2, _08132784
+ adds r1, r2
+ movs r5, 0
+ strb r0, [r1]
+ bl sub_8133558
+ ldr r0, _08132788
+ bl SetVBlankCallback
+ ldr r4, _0813278C
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ ldr r4, _08132790
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ ldr r0, _08132794
+ strh r5, [r0]
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ strh r5, [r0]
+ ldr r0, _08132798
+ bl LoadSpriteSheet
+ ldr r0, _0813279C
+ bl LoadSpritePalette
+ bl sub_8133358
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x2
+ bl FillPalette
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ ldr r0, _081327A0
+ bl SetMainCallback2
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08132778: .4byte gUnknown_030007B0
+_0813277C: .4byte 0x02017000
+_08132780: .4byte gUnknown_0202E8CC
+_08132784: .4byte 0x000002c5
+_08132788: .4byte sub_813265C
+_0813278C: .4byte gWindowConfig_81E7240
+_08132790: .4byte gWindowConfig_81E6CE4
+_08132794: .4byte REG_BG0VOFS
+_08132798: .4byte gUnknown_08402D80
+_0813279C: .4byte gUnknown_08402D88
+_081327A0: .4byte sub_8132870
+ thumb_func_end sub_81326D8
+
+ thumb_func_start sub_81327A4
+sub_81327A4: @ 81327A4
+ push {r4,r5,lr}
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ ldr r4, _08132844
+ ldr r0, _08132848
+ str r0, [r4]
+ bl sub_8133558
+ ldr r1, [r4]
+ ldr r0, _0813284C
+ ldrh r0, [r0]
+ ldr r2, _08132850
+ adds r1, r2
+ movs r5, 0
+ strb r0, [r1]
+ ldr r0, _08132854
+ bl SetVBlankCallback
+ ldr r4, _08132858
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ ldr r4, _0813285C
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0x9A
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08132860
+ strh r5, [r0]
+ subs r0, 0x2
+ strh r5, [r0]
+ adds r0, 0x4
+ strh r5, [r0]
+ strh r5, [r0]
+ ldr r0, _08132864
+ bl LoadSpriteSheet
+ ldr r0, _08132868
+ bl LoadSpritePalette
+ bl sub_8133358
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x2
+ bl FillPalette
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ ldr r0, _0813286C
+ bl SetMainCallback2
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08132844: .4byte gUnknown_030007B0
+_08132848: .4byte 0x02017000
+_0813284C: .4byte gUnknown_0202E8CE
+_08132850: .4byte 0x000002c6
+_08132854: .4byte sub_813265C
+_08132858: .4byte gWindowConfig_81E7240
+_0813285C: .4byte gWindowConfig_81E6CE4
+_08132860: .4byte REG_BG0VOFS
+_08132864: .4byte gUnknown_08402D80
+_08132868: .4byte gUnknown_08402D88
+_0813286C: .4byte sub_8132870
+ thumb_func_end sub_81327A4
+
+ thumb_func_start sub_8132870
+sub_8132870: @ 8132870
+ push {r4,lr}
+ bl sub_8132908
+ ldr r4, _081328E0
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1D]
+ cmp r0, 0
+ beq _08132896
+ movs r0, 0
+ strb r0, [r1, 0x1D]
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x18]
+ lsls r1, 1
+ adds r1, 0x1
+ lsls r1, 27
+ lsrs r1, 24
+ movs r0, 0x58
+ bl sub_814AD7C
+_08132896:
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1E]
+ cmp r0, 0
+ beq _081328A6
+ movs r0, 0
+ strb r0, [r1, 0x1E]
+ bl sub_8133800
+_081328A6:
+ ldr r1, [r4]
+ ldr r2, _081328E4
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081328C8
+ adds r2, 0x1
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8133AEC
+ ldr r0, [r4]
+ ldr r1, _081328E4
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+_081328C8:
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081328E0: .4byte gUnknown_030007B0
+_081328E4: .4byte 0x000002c3
+ thumb_func_end sub_8132870
+
+ thumb_func_start sub_81328E8
+sub_81328E8: @ 81328E8
+ push {r4,lr}
+ adds r1, r0, 0
+ ldr r4, _08132904
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x3
+ movs r2, 0xF
+ bl MenuPrintMessage
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08132904: .4byte gStringVar4
+ thumb_func_end sub_81328E8
+
+ thumb_func_start sub_8132908
+sub_8132908: @ 8132908
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ ldr r1, _0813292C
+ ldr r0, [r1]
+ ldrb r0, [r0]
+ adds r7, r1, 0
+ cmp r0, 0x21
+ bls _08132920
+ b _08132FD6
+_08132920:
+ lsls r0, 2
+ ldr r1, _08132930
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0813292C: .4byte gUnknown_030007B0
+_08132930: .4byte _08132934
+ .align 2, 0
+_08132934:
+ .4byte _081329BC
+ .4byte _08132A0C
+ .4byte _08132A24
+ .4byte _08132A2C
+ .4byte _08132A60
+ .4byte _08132A66
+ .4byte _08132A98
+ .4byte _08132FD6
+ .4byte _08132AAA
+ .4byte _08132AD0
+ .4byte _08132FD6
+ .4byte _08132FD6
+ .4byte _08132B74
+ .4byte _08132B98
+ .4byte _08132DD8
+ .4byte _08132DF8
+ .4byte _08132BF0
+ .4byte _08132C08
+ .4byte _08132C2C
+ .4byte _08132D40
+ .4byte _08132D68
+ .4byte _08132DB8
+ .4byte _08132DC6
+ .4byte _08132FD6
+ .4byte _08132C74
+ .4byte _08132C8C
+ .4byte _08132CB0
+ .4byte _08132D0C
+ .4byte _08132E18
+ .4byte _08132E7C
+ .4byte _08132F58
+ .4byte _08132F84
+ .4byte _08132FA4
+ .4byte _08132FBC
+_081329BC:
+ ldr r1, [r7]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r4, 0
+ strb r0, [r1]
+ bl sub_8132FEC
+ movs r0, 0
+ bl sub_8133030
+ bl sub_8133800
+ ldr r0, _08132A04
+ adds r0, 0x64
+ movs r1, 0x48
+ strh r1, [r0]
+ ldr r0, [r7]
+ ldr r1, _08132A08
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0x9A
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _08132FD6
+ .align 2, 0
+_08132A04: .4byte gSprites
+_08132A08: .4byte 0x000002c3
+_08132A0C:
+ ldr r0, _08132A20
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08132A1A
+ b _08132FD6
+_08132A1A:
+ ldr r1, [r7]
+ movs r0, 0x4
+ b _08132FD4
+ .align 2, 0
+_08132A20: .4byte gPaletteFade
+_08132A24:
+ ldr r1, [r7]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08132FD4
+_08132A2C:
+ movs r0, 0
+ bl sub_8133030
+ bl sub_8133800
+ ldr r2, _08132A54
+ ldr r0, [r2]
+ ldr r1, _08132A58
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r1, [r2]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r0, _08132A5C
+ adds r0, 0x64
+ movs r1, 0x48
+ strh r1, [r0]
+ b _08132FD6
+ .align 2, 0
+_08132A54: .4byte gUnknown_030007B0
+_08132A58: .4byte 0x000002c3
+_08132A5C: .4byte gSprites
+_08132A60:
+ bl sub_81330E8
+ b _08132A9C
+_08132A66:
+ movs r0, 0
+ bl sub_8133140
+ bl sub_8133800
+ ldr r2, _08132A8C
+ ldr r0, [r2]
+ ldr r1, _08132A90
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08132A94
+ adds r0, 0x64
+ movs r1, 0x48
+ strh r1, [r0]
+ ldr r1, [r2]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08132FD4
+ .align 2, 0
+_08132A8C: .4byte gUnknown_030007B0
+_08132A90: .4byte 0x000002c3
+_08132A94: .4byte gSprites
+_08132A98:
+ bl sub_8133248
+_08132A9C:
+ lsls r0, 24
+ cmp r0, 0
+ beq _08132AA4
+ b _08132FD6
+_08132AA4:
+ bl sub_813362C
+ b _08132FD6
+_08132AAA:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ bne _08132AB6
+ b _08132FD6
+_08132AB6:
+ movs r0, 0x15
+ movs r1, 0x7
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _08132ACC
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08132FD4
+ .align 2, 0
+_08132ACC: .4byte gUnknown_030007B0
+_08132AD0:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _08132B3A
+ bl sub_8133CA4
+ ldr r4, _08132B1C
+ ldr r2, [r4]
+ ldr r1, _08132B20
+ adds r0, r2, r1
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08132B24
+ adds r0, r1
+ ldrb r1, [r2, 0x1B]
+ lsls r1, 1
+ adds r2, 0x20
+ adds r2, r1
+ ldrh r1, [r2]
+ bl GiveMoveToMon
+ lsls r0, 16
+ ldr r1, _08132B28
+ cmp r0, r1
+ beq _08132B34
+ ldr r0, _08132B2C
+ bl sub_81328E8
+ ldr r1, _08132B30
+ movs r0, 0x1
+ strh r0, [r1]
+ ldr r1, [r4]
+ movs r0, 0x1F
+ b _08132FD4
+ .align 2, 0
+_08132B1C: .4byte gUnknown_030007B0
+_08132B20: .4byte 0x000002c5
+_08132B24: .4byte gPlayerParty
+_08132B28: .4byte 0xffff0000
+_08132B2C: .4byte gOtherText_PokeLearnedMove
+_08132B30: .4byte gUnknown_0202E8CC
+_08132B34:
+ ldr r1, [r4]
+ movs r0, 0x10
+ b _08132FD4
+_08132B3A:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08132B48
+ cmp r1, 0x1
+ beq _08132B48
+ b _08132FD6
+_08132B48:
+ bl sub_8133CA4
+ ldr r3, _08132B70
+ ldr r1, [r3]
+ movs r2, 0xB1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08132B60
+ movs r0, 0x3
+ strb r0, [r1]
+_08132B60:
+ ldr r1, [r3]
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08132B6C
+ b _08132FD6
+_08132B6C:
+ movs r0, 0x5
+ b _08132FD4
+ .align 2, 0
+_08132B70: .4byte gUnknown_030007B0
+_08132B74:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ bne _08132B80
+ b _08132FD6
+_08132B80:
+ movs r0, 0x15
+ movs r1, 0x7
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _08132B94
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08132FD4
+ .align 2, 0
+_08132B94: .4byte gUnknown_030007B0
+_08132B98:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r4, r0, 24
+ cmp r4, 0
+ bne _08132BB4
+ bl sub_8133CA4
+ ldr r0, _08132BB0
+ strh r4, [r0]
+ b _08132FCE
+ .align 2, 0
+_08132BB0: .4byte gUnknown_0202E8CC
+_08132BB4:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ beq _08132BC2
+ cmp r4, 0x1
+ beq _08132BC2
+ b _08132FD6
+_08132BC2:
+ bl sub_8133CA4
+ ldr r3, _08132BEC
+ ldr r1, [r3]
+ movs r2, 0xB1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08132BDA
+ movs r0, 0x3
+ strb r0, [r1]
+_08132BDA:
+ ldr r1, [r3]
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08132BE6
+ b _08132FD6
+_08132BE6:
+ movs r0, 0x5
+ b _08132FD4
+ .align 2, 0
+_08132BEC: .4byte gUnknown_030007B0
+_08132BF0:
+ ldr r0, _08132C00
+ bl sub_81328E8
+ ldr r0, _08132C04
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08132FD4
+ .align 2, 0
+_08132C00: .4byte gOtherText_DeleteOlderMove
+_08132C04: .4byte gUnknown_030007B0
+_08132C08:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ bne _08132C14
+ b _08132FD6
+_08132C14:
+ movs r0, 0x15
+ movs r1, 0x7
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r0, _08132C28
+ ldr r1, [r0]
+ movs r0, 0x12
+ b _08132FD4
+ .align 2, 0
+_08132C28: .4byte gUnknown_030007B0
+_08132C2C:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _08132C54
+ bl sub_8133CA4
+ ldr r0, _08132C4C
+ bl sub_81328E8
+ ldr r0, _08132C50
+ ldr r1, [r0]
+ movs r0, 0x13
+ b _08132FD4
+ .align 2, 0
+_08132C4C: .4byte gOtherText_WhichMoveToForget
+_08132C50: .4byte gUnknown_030007B0
+_08132C54:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08132C62
+ cmp r1, 0x1
+ beq _08132C62
+ b _08132FD6
+_08132C62:
+ bl sub_8133CA4
+ ldr r0, _08132C70
+ ldr r1, [r0]
+ movs r0, 0x18
+ b _08132FD4
+ .align 2, 0
+_08132C70: .4byte gUnknown_030007B0
+_08132C74:
+ ldr r0, _08132C84
+ bl sub_81328E8
+ ldr r0, _08132C88
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08132FD4
+ .align 2, 0
+_08132C84: .4byte gOtherText_StopLearningMove
+_08132C88: .4byte gUnknown_030007B0
+_08132C8C:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ bne _08132C98
+ b _08132FD6
+_08132C98:
+ ldr r0, _08132CAC
+ ldr r1, [r0]
+ movs r0, 0x1A
+ strb r0, [r1]
+ movs r0, 0x15
+ movs r1, 0x7
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ b _08132FD6
+ .align 2, 0
+_08132CAC: .4byte gUnknown_030007B0
+_08132CB0:
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _08132CCC
+ bl sub_8133CA4
+ ldr r0, _08132CC8
+ ldr r1, [r0]
+ movs r0, 0x1B
+ b _08132FD4
+ .align 2, 0
+_08132CC8: .4byte gUnknown_030007B0
+_08132CCC:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08132CDA
+ cmp r1, 0x1
+ beq _08132CDA
+ b _08132FD6
+_08132CDA:
+ bl sub_8133CA4
+ ldr r1, _08132D08
+ ldr r2, [r1]
+ movs r3, 0xB1
+ lsls r3, 2
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08132CF2
+ movs r0, 0x3
+ strb r0, [r2]
+_08132CF2:
+ ldr r2, [r1]
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08132D00
+ movs r0, 0x5
+ strb r0, [r2]
+_08132D00:
+ ldr r1, [r1]
+ movs r0, 0x10
+ b _08132FD4
+ .align 2, 0
+_08132D08: .4byte gUnknown_030007B0
+_08132D0C:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ bne _08132D18
+ b _08132FD6
+_08132D18:
+ ldr r3, _08132D3C
+ ldr r1, [r3]
+ movs r2, 0xB1
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08132D2C
+ movs r0, 0x3
+ strb r0, [r1]
+_08132D2C:
+ ldr r1, [r3]
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08132D38
+ b _08132FD6
+_08132D38:
+ movs r0, 0x5
+ b _08132FD4
+ .align 2, 0
+_08132D3C: .4byte gUnknown_030007B0
+_08132D40:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ bne _08132D4C
+ b _08132FD6
+_08132D4C:
+ ldr r0, _08132D64
+ ldr r1, [r0]
+ movs r2, 0
+ movs r0, 0x14
+ strb r0, [r1]
+ subs r0, 0x15
+ str r2, [sp]
+ movs r1, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _08132FD6
+ .align 2, 0
+_08132D64: .4byte gUnknown_030007B0
+_08132D68:
+ ldr r0, _08132DA4
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08132D76
+ b _08132FD6
+_08132D76:
+ ldr r0, _08132DA8
+ ldr r5, [r7]
+ ldr r2, _08132DAC
+ adds r1, r5, r2
+ ldrb r1, [r1]
+ ldr r2, _08132DB0
+ ldrb r2, [r2]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _08132DB4
+ ldrb r4, [r5, 0x1B]
+ lsls r4, 1
+ adds r5, 0x20
+ adds r5, r4
+ ldrh r4, [r5]
+ str r4, [sp]
+ bl sub_809D9F0
+ ldr r1, [r7]
+ movs r0, 0x1C
+ b _08132FD4
+ .align 2, 0
+_08132DA4: .4byte gPaletteFade
+_08132DA8: .4byte gPlayerParty
+_08132DAC: .4byte 0x000002c5
+_08132DB0: .4byte gPlayerPartyCount
+_08132DB4: .4byte sub_81327A4
+_08132DB8:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ bne _08132DC4
+ b _08132FD6
+_08132DC4:
+ b _08132FCE
+_08132DC6:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _08132FD6
+_08132DD8:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _08132DF4
+ ldr r1, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ b _08132FD4
+ .align 2, 0
+_08132DF4: .4byte gUnknown_030007B0
+_08132DF8:
+ ldr r0, _08132E10
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08132E06
+ b _08132FD6
+_08132E06:
+ ldr r0, _08132E14
+ bl SetMainCallback2
+ b _08132FD6
+ .align 2, 0
+_08132E10: .4byte gPaletteFade
+_08132E14: .4byte c2_exit_to_overworld_2_switch
+_08132E18:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r5, _08132E74
+ ldr r1, [r5]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ bl sub_8132FEC
+ bl sub_8133800
+ ldr r0, [r5]
+ movs r4, 0xB1
+ lsls r4, 2
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08132E4E
+ movs r0, 0x1
+ bl sub_8133030
+_08132E4E:
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08132E66
+ ldr r0, _08132E78
+ adds r0, 0x64
+ movs r1, 0x48
+ strh r1, [r0]
+ movs r0, 0x1
+ bl sub_8133140
+_08132E66:
+ ldr r0, [r5]
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_8133AEC
+ b _08132FD6
+ .align 2, 0
+_08132E74: .4byte gUnknown_030007B0
+_08132E78: .4byte gSprites
+_08132E7C:
+ ldr r0, _08132E9C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08132E8A
+ b _08132FD6
+_08132E8A:
+ ldr r1, [r7]
+ ldr r0, _08132EA0
+ adds r2, r1, r0
+ ldrb r0, [r2]
+ cmp r0, 0x4
+ bne _08132EA4
+ movs r0, 0x18
+ b _08132FD4
+ .align 2, 0
+_08132E9C: .4byte gPaletteFade
+_08132EA0: .4byte 0x000002c6
+_08132EA4:
+ ldr r4, _08132F38
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _08132F3C
+ adds r0, r5
+ ldrb r1, [r2]
+ adds r1, 0xD
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _08132F40
+ movs r1, 0xD
+ mov r9, r1
+ mov r1, r9
+ muls r1, r0
+ ldr r0, _08132F44
+ mov r8, r0
+ add r1, r8
+ adds r0, r2, 0
+ bl StringCopy
+ ldr r1, [r7]
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ muls r0, r6
+ adds r0, r5
+ ldr r2, _08132F48
+ adds r1, r2
+ ldrb r1, [r1]
+ bl RemoveMonPPBonus
+ ldr r3, [r7]
+ adds r4, r3, r4
+ ldrb r0, [r4]
+ muls r0, r6
+ adds r0, r5
+ ldrb r2, [r3, 0x1B]
+ lsls r2, 1
+ adds r1, r3, 0
+ adds r1, 0x20
+ adds r1, r2
+ ldrh r1, [r1]
+ ldr r2, _08132F48
+ adds r3, r2
+ ldrb r2, [r3]
+ bl SetMonMoveSlot
+ ldr r0, _08132F4C
+ ldr r1, [r7]
+ ldrb r2, [r1, 0x1B]
+ lsls r2, 1
+ adds r1, 0x20
+ adds r1, r2
+ ldrh r1, [r1]
+ mov r2, r9
+ muls r2, r1
+ adds r1, r2, 0
+ add r1, r8
+ bl StringCopy
+ ldr r0, _08132F50
+ bl sub_81328E8
+ ldr r1, [r7]
+ movs r0, 0x1E
+ strb r0, [r1]
+ ldr r1, _08132F54
+ movs r0, 0x1
+ strh r0, [r1]
+ b _08132FD6
+ .align 2, 0
+_08132F38: .4byte 0x000002c5
+_08132F3C: .4byte gPlayerParty
+_08132F40: .4byte gStringVar3
+_08132F44: .4byte gMoveNames
+_08132F48: .4byte 0x000002c6
+_08132F4C: .4byte gStringVar2
+_08132F50: .4byte gOtherText_ForgotMove123
+_08132F54: .4byte gUnknown_0202E8CC
+_08132F58:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ beq _08132FD6
+ ldr r0, _08132F78
+ bl sub_81328E8
+ ldr r0, _08132F7C
+ ldr r1, [r0]
+ movs r0, 0x1F
+ strb r0, [r1]
+ ldr r0, _08132F80
+ bl PlayFanfare
+ b _08132FD6
+ .align 2, 0
+_08132F78: .4byte gOtherText_ForgotOrDidNotLearnMove
+_08132F7C: .4byte gUnknown_030007B0
+_08132F80: .4byte 0x0000016f
+_08132F84:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ beq _08132FD6
+ ldr r0, _08132F9C
+ bl PlayFanfare
+ ldr r0, _08132FA0
+ ldr r1, [r0]
+ movs r0, 0x20
+ b _08132FD4
+ .align 2, 0
+_08132F9C: .4byte 0x0000016f
+_08132FA0: .4byte gUnknown_030007B0
+_08132FA4:
+ bl IsFanfareTaskInactive
+ lsls r0, 24
+ cmp r0, 0
+ beq _08132FD6
+ ldr r0, _08132FB8
+ ldr r1, [r0]
+ movs r0, 0x21
+ b _08132FD4
+ .align 2, 0
+_08132FB8: .4byte gUnknown_030007B0
+_08132FBC:
+ ldr r0, _08132FE4
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08132FD6
+ movs r0, 0x5
+ bl PlaySE
+_08132FCE:
+ ldr r0, _08132FE8
+ ldr r1, [r0]
+ movs r0, 0xE
+_08132FD4:
+ strb r0, [r1]
+_08132FD6:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08132FE4: .4byte gMain
+_08132FE8: .4byte gUnknown_030007B0
+ thumb_func_end sub_8132908
+
+ thumb_func_start sub_8132FEC
+sub_8132FEC: @ 8132FEC
+ push {r4-r6,lr}
+ ldr r0, _08133024
+ bl BasicInitMenuWindow
+ movs r5, 0
+ ldr r4, _08133028
+ adds r6, r4, 0
+_08132FFA:
+ lsls r3, r5, 2
+ ldrb r0, [r4]
+ adds r1, r6, 0x1
+ adds r1, r3, r1
+ ldrb r1, [r1]
+ adds r2, r6, 0x2
+ adds r3, r2
+ ldrb r2, [r3]
+ ldrb r3, [r4, 0x3]
+ bl MenuDrawTextWindow
+ adds r4, 0x4
+ adds r5, 0x1
+ cmp r5, 0x3
+ bls _08132FFA
+ ldr r0, _0813302C
+ bl BasicInitMenuWindow
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08133024: .4byte gWindowConfig_81E7240
+_08133028: .4byte gUnknown_08402CF8
+_0813302C: .4byte gWindowConfig_81E6CE4
+ thumb_func_end sub_8132FEC
+
+ thumb_func_start sub_8133030
+sub_8133030: @ 8133030
+ push {r4-r7,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r4, _081330D4
+ ldr r5, _081330D8
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x4]
+ 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]
+ movs r2, 0
+ ldr r6, _081330DC
+ movs r3, 0x4
+_08133070:
+ ldr r0, [r5]
+ adds r0, r2
+ ldrb r1, [r0, 0x7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r3
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0xF
+ ble _08133070
+ ldr r0, [r6]
+ cmp r0, 0
+ beq _081330B4
+ ldr r5, _081330E0
+ adds r4, r6, 0
+_08133096:
+ ldr r1, [r4]
+ adds r0, r5, 0
+ movs r2, 0x40
+ movs r3, 0x2
+ bl sub_8072C74
+ ldrb r1, [r4, 0x4]
+ ldrb r2, [r4, 0x5]
+ adds r0, r5, 0
+ bl MenuPrint
+ adds r4, 0x8
+ ldr r0, [r4]
+ cmp r0, 0
+ bne _08133096
+_081330B4:
+ cmp r7, 0
+ bne _081330CC
+ ldr r0, _081330E4
+ movs r1, 0x20
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ movs r1, 0x18
+ movs r2, 0x78
+ movs r3, 0xC0
+ bl sub_8072AB0
+_081330CC:
+ add sp, 0x8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081330D4: .4byte gSprites
+_081330D8: .4byte gUnknown_030007B0
+_081330DC: .4byte gUnknown_08402D08
+_081330E0: .4byte gTileBuffer
+_081330E4: .4byte gOtherText_TeachWhichMove
+ thumb_func_end sub_8133030
+
+ thumb_func_start sub_81330E8
+sub_81330E8: @ 81330E8
+ push {r4,lr}
+ ldr r0, _08133134
+ ldrh r2, [r0, 0x2E]
+ movs r1, 0x30
+ ands r1, r2
+ negs r0, r1
+ orrs r0, r1
+ lsrs r4, r0, 31
+ ldr r0, _08133138
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _0813310C
+ movs r0, 0xC0
+ lsls r0, 2
+ ands r0, r2
+ cmp r0, 0
+ beq _0813310C
+ adds r4, 0x1
+_0813310C:
+ cmp r4, 0
+ beq _0813312A
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _0813313C
+ ldr r1, [r2]
+ movs r0, 0x5
+ strb r0, [r1]
+ ldr r0, [r2]
+ movs r1, 0xB1
+ lsls r1, 2
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+_0813312A:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08133134: .4byte gMain
+_08133138: .4byte gSaveBlock2
+_0813313C: .4byte gUnknown_030007B0
+ thumb_func_end sub_81330E8
+
+ thumb_func_start sub_8133140
+sub_8133140: @ 8133140
+ 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
+ str r0, [sp, 0x8]
+ ldr r4, _08133234
+ ldr r5, _08133238
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x3]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r3, 0x5
+ negs r3, r3
+ adds r0, r3, 0
+ ands r0, r2
+ strb r0, [r1]
+ ldr r0, [r5]
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ adds r1, r3, 0
+ ands r1, r2
+ strb r1, [r0]
+ movs r6, 0
+ ldr r7, _0813323C
+_0813318A:
+ ldr r0, [r5]
+ adds r0, r6
+ ldrb r0, [r0, 0x7]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r3, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r6, 0x1
+ cmp r6, 0xF
+ ble _0813318A
+ movs r6, 0
+ ldr r0, [r7]
+ cmp r0, 0
+ beq _08133208
+ mov r9, r7
+ mov r10, r6
+ movs r0, 0x24
+ add r0, r9
+ mov r8, r0
+_081331BA:
+ mov r0, r9
+ adds r0, 0x20
+ add r0, r10
+ ldr r1, [r0]
+ ldr r0, _08133240
+ movs r2, 0x40
+ movs r3, 0x2
+ bl sub_8072C74
+ mov r0, r8
+ ldrb r5, [r0]
+ ldrb r4, [r0, 0x1]
+ ldr r0, _08133240
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl MenuPrint
+ cmp r6, 0
+ beq _081331F8
+ adds r1, r4, 0x2
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r5, 0x7
+ lsls r2, 24
+ lsrs r2, 24
+ adds r3, r4, 0x3
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r5, 0
+ bl MenuZeroFillWindowRect
+_081331F8:
+ movs r0, 0x8
+ add r10, r0
+ add r8, r0
+ adds r7, 0x8
+ adds r6, 0x1
+ ldr r0, [r7]
+ cmp r0, 0
+ bne _081331BA
+_08133208:
+ ldr r0, [sp, 0x8]
+ cmp r0, 0
+ bne _08133222
+ ldr r0, _08133244
+ movs r1, 0x20
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ movs r1, 0x18
+ movs r2, 0x78
+ movs r3, 0xC0
+ bl sub_8072AB0
+_08133222:
+ 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
+_08133234: .4byte gSprites
+_08133238: .4byte gUnknown_030007B0
+_0813323C: .4byte gUnknown_08402D08
+_08133240: .4byte gTileBuffer
+_08133244: .4byte gOtherText_TeachWhichMove
+ thumb_func_end sub_8133140
+
+ thumb_func_start sub_8133248
+sub_8133248: @ 8133248
+ push {r4,lr}
+ ldr r0, _08133294
+ ldrh r2, [r0, 0x2E]
+ movs r1, 0x30
+ ands r1, r2
+ negs r0, r1
+ orrs r0, r1
+ lsrs r4, r0, 31
+ ldr r0, _08133298
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0x1
+ bne _0813326C
+ movs r0, 0xC0
+ lsls r0, 2
+ ands r0, r2
+ cmp r0, 0
+ beq _0813326C
+ adds r4, 0x1
+_0813326C:
+ cmp r4, 0
+ beq _0813328A
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _0813329C
+ ldr r1, [r2]
+ movs r3, 0
+ movs r0, 0x3
+ strb r0, [r1]
+ ldr r0, [r2]
+ movs r1, 0xB1
+ lsls r1, 2
+ adds r0, r1
+ strb r3, [r0]
+_0813328A:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08133294: .4byte gMain
+_08133298: .4byte gSaveBlock2
+_0813329C: .4byte gUnknown_030007B0
+ thumb_func_end sub_8133248
+
+ thumb_func_start sub_81332A0
+sub_81332A0: @ 81332A0
+ push {r4,lr}
+ ldr r2, _081332F8
+ ldr r0, [r2]
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r2]
+ strb r1, [r0, 0x2]
+ ldr r0, [r2]
+ strb r1, [r0, 0x19]
+ ldr r0, [r2]
+ strb r1, [r0, 0x18]
+ ldr r0, [r2]
+ strb r1, [r0, 0x1C]
+ ldr r0, [r2]
+ strb r1, [r0, 0x1A]
+ ldr r0, [r2]
+ strb r1, [r0, 0x1B]
+ ldr r0, [r2]
+ strb r1, [r0, 0x1D]
+ ldr r0, [r2]
+ strb r1, [r0, 0x1E]
+ ldr r0, [r2]
+ ldr r3, _081332FC
+ adds r0, r3
+ strb r1, [r0]
+ ldr r0, [r2]
+ adds r3, 0x1
+ adds r0, r3
+ strb r1, [r0]
+ movs r3, 0
+ adds r4, r2, 0
+ movs r2, 0
+_081332E0:
+ ldr r0, [r4]
+ lsls r1, r3, 1
+ adds r0, 0x20
+ adds r0, r1
+ strh r2, [r0]
+ adds r3, 0x1
+ cmp r3, 0x13
+ ble _081332E0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081332F8: .4byte gUnknown_030007B0
+_081332FC: .4byte 0x000002c3
+ thumb_func_end sub_81332A0
+
+ thumb_func_start sub_8133300
+sub_8133300: @ 8133300
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 1
+ movs r0, 0xFF
+ ands r1, r0
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1
+ beq _08133324
+ cmp r0, 0x1
+ ble _0813334A
+ cmp r0, 0x2
+ beq _08133338
+ b _0813334A
+_08133324:
+ adds r0, r1, 0
+ movs r1, 0x3
+ bl Sin
+ ldrh r1, [r4, 0x32]
+ adds r2, r0, 0
+ muls r2, r1
+ adds r0, r2, 0
+ strh r0, [r4, 0x24]
+ b _0813334A
+_08133338:
+ adds r0, r1, 0
+ movs r1, 0x1
+ bl Sin
+ ldrh r1, [r4, 0x32]
+ adds r2, r0, 0
+ muls r2, r1
+ adds r0, r2, 0
+ strh r0, [r4, 0x26]
+_0813334A:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8133300
+
+ thumb_func_start sub_8133358
+sub_8133358: @ 8133358
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ ldr r6, _0813353C
+ adds r0, r6, 0
+ movs r1, 0x8
+ movs r2, 0x10
+ movs r3, 0
+ bl CreateSprite
+ ldr r4, _08133540
+ ldr r1, [r4]
+ strb r0, [r1, 0x3]
+ ldr r5, _08133544
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x1
+ mov r8, r1
+ mov r1, r8
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r2, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08133548
+ strh r1, [r0, 0x32]
+ adds r0, r6, 0
+ movs r1, 0x48
+ movs r2, 0x10
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r4]
+ strb r0, [r1, 0x4]
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r2, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x32]
+ ldr r0, _0813354C
+ mov r9, r0
+ movs r1, 0xA0
+ movs r2, 0x4
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r4]
+ strb r0, [r1, 0x5]
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r6, 0x2
+ strh r6, [r0, 0x2E]
+ ldrb r1, [r2, 0x5]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x1
+ negs r1, r1
+ strh r1, [r0, 0x32]
+ mov r0, r9
+ movs r1, 0xA0
+ movs r2, 0x3C
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r4]
+ strb r0, [r1, 0x6]
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x2E]
+ ldrb r1, [r2, 0x6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x32]
+ movs r5, 0
+ ldr r6, _08133550
+_0813344E:
+ adds r2, r5, 0
+ cmp r5, 0
+ bge _08133456
+ adds r2, r5, 0x3
+_08133456:
+ asrs r2, 2
+ lsls r1, r2, 2
+ subs r1, r5, r1
+ lsls r1, 19
+ movs r0, 0xE0
+ lsls r0, 13
+ adds r1, r0
+ asrs r1, 16
+ lsls r2, 19
+ movs r0, 0xD0
+ lsls r0, 14
+ adds r2, r0
+ asrs r2, 16
+ adds r0, r6, 0
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r4]
+ adds r2, r5, 0x4
+ adds r1, 0x3
+ adds r1, r2
+ strb r0, [r1]
+ ldr r0, [r4]
+ adds r0, 0x3
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08133544
+ adds r0, r1
+ movs r1, 0x2
+ bl StartSpriteAnim
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _0813344E
+ movs r5, 0
+ ldr r7, _08133550
+ ldr r6, _08133540
+_081334A6:
+ adds r2, r5, 0
+ cmp r5, 0
+ bge _081334AE
+ adds r2, r5, 0x3
+_081334AE:
+ asrs r2, 2
+ lsls r1, r2, 2
+ subs r1, r5, r1
+ lsls r1, 19
+ movs r0, 0xE0
+ lsls r0, 13
+ adds r1, r0
+ asrs r1, 16
+ lsls r2, 19
+ movs r0, 0xB8
+ lsls r0, 15
+ adds r2, r0
+ asrs r2, 16
+ adds r0, r7, 0
+ movs r3, 0
+ bl CreateSprite
+ ldr r1, [r6]
+ adds r2, r5, 0
+ adds r2, 0xC
+ adds r1, 0x3
+ adds r1, r2
+ strb r0, [r1]
+ ldr r0, [r6]
+ adds r0, 0x3
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08133544
+ adds r0, r4
+ movs r1, 0x2
+ bl StartSpriteAnim
+ adds r5, 0x1
+ cmp r5, 0x7
+ ble _081334A6
+ movs r5, 0
+ ldr r3, _08133540
+ movs r2, 0x4
+_08133500:
+ ldr r0, [r3]
+ adds r0, 0x3
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ adds r5, 0x1
+ cmp r5, 0x13
+ ble _08133500
+ ldr r1, _08133548
+ ldr r3, _08133554
+ movs r0, 0x12
+ str r0, [sp]
+ movs r0, 0x10
+ movs r2, 0xC
+ bl sub_814AC58
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813353C: .4byte gSpriteTemplate_8402D90
+_08133540: .4byte gUnknown_030007B0
+_08133544: .4byte gSprites
+_08133548: .4byte 0x0000ffff
+_0813354C: .4byte gSpriteTemplate_8402DC0
+_08133550: .4byte gSpriteTemplate_8402E08
+_08133554: .4byte 0x00002d9f
+ thumb_func_end sub_8133358
+
+ thumb_func_start sub_8133558
+sub_8133558: @ 8133558
+ push {r4-r6,lr}
+ sub sp, 0xC
+ ldr r5, _081335F4
+ ldr r1, [r5]
+ ldr r2, _081335F8
+ adds r0, r1, r2
+ ldrb r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _081335FC
+ adds r0, r2
+ adds r1, 0x20
+ bl sub_80403CC
+ ldr r1, [r5]
+ strb r0, [r1, 0x1A]
+ movs r4, 0
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x1A]
+ cmp r4, r0
+ bge _081335AA
+ adds r6, r5, 0
+ movs r5, 0x52
+_08133586:
+ lsls r2, r4, 1
+ ldr r1, [r6]
+ adds r0, r1, r5
+ adds r1, 0x20
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _08133600
+ adds r1, r2
+ bl StringCopy
+ adds r5, 0x19
+ adds r4, 0x1
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x1A]
+ cmp r4, r0
+ blt _08133586
+_081335AA:
+ ldr r4, _081335F4
+ ldr r0, [r4]
+ ldr r1, _081335F8
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _081335FC
+ adds r0, r1
+ movs r1, 0x2
+ mov r2, sp
+ bl GetMonData
+ ldr r0, _08133604
+ mov r1, sp
+ bl StringCopy10
+ ldr r0, [r4]
+ ldrb r2, [r0, 0x1A]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r2
+ adds r1, 0x52
+ adds r0, r1
+ ldr r1, _08133608
+ bl StringCopy
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1A]
+ adds r0, 0x1
+ strb r0, [r1, 0x1A]
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081335F4: .4byte gUnknown_030007B0
+_081335F8: .4byte 0x000002c5
+_081335FC: .4byte gPlayerParty
+_08133600: .4byte gMoveNames
+_08133604: .4byte gStringVar1
+_08133608: .4byte gUnknownText_Exit
+ thumb_func_end sub_8133558
+
+ thumb_func_start sub_813360C
+sub_813360C: @ 813360C
+ lsls r0, 24
+ ldr r3, _08133628
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x18]
+ strb r1, [r2, 0x1C]
+ ldr r1, [r3]
+ lsrs r0, 24
+ ldrb r2, [r1, 0x18]
+ adds r0, r2
+ strb r0, [r1, 0x18]
+ ldr r1, [r3]
+ movs r0, 0x1
+ strb r0, [r1, 0x1D]
+ bx lr
+ .align 2, 0
+_08133628: .4byte gUnknown_030007B0
+ thumb_func_end sub_813360C
+
+ thumb_func_start sub_813362C
+sub_813362C: @ 813362C
+ push {r4,r5,lr}
+ ldr r2, _08133670
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08133688
+ ldr r4, _08133674
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1B]
+ cmp r0, 0
+ bne _08133646
+ b _08133796
+_08133646:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1B]
+ subs r0, 0x1
+ strb r0, [r1, 0x1B]
+ ldr r0, [r4]
+ ldr r1, _08133678
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x18]
+ cmp r0, 0
+ beq _0813367C
+ movs r0, 0x1
+ negs r0, r0
+ bl sub_813360C
+ b _08133796
+ .align 2, 0
+_08133670: .4byte gMain
+_08133674: .4byte gUnknown_030007B0
+_08133678: .4byte 0x000002c3
+_0813367C:
+ ldrb r0, [r1, 0x19]
+ cmp r0, 0
+ bne _08133684
+ b _08133796
+_08133684:
+ subs r0, 0x1
+ b _081336DC
+_08133688:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081336E8
+ ldr r4, _081336C8
+ ldr r0, [r4]
+ ldrb r1, [r0, 0x1B]
+ ldrb r0, [r0, 0x1A]
+ subs r0, 0x1
+ cmp r1, r0
+ blt _081336A0
+ b _08133796
+_081336A0:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1B]
+ adds r0, 0x1
+ strb r0, [r1, 0x1B]
+ ldr r0, [r4]
+ ldr r3, _081336CC
+ adds r0, r3
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x18]
+ cmp r0, 0x2
+ beq _081336D0
+ movs r0, 0x1
+ bl sub_813360C
+ b _08133796
+ .align 2, 0
+_081336C8: .4byte gUnknown_030007B0
+_081336CC: .4byte 0x000002c3
+_081336D0:
+ ldrb r2, [r1, 0x19]
+ ldrb r0, [r1, 0x1A]
+ subs r0, 0x3
+ cmp r2, r0
+ beq _08133796
+ adds r0, r2, 0x1
+_081336DC:
+ strb r0, [r1, 0x19]
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x1E]
+ adds r0, 0x1
+ strb r0, [r1, 0x1E]
+ b _08133796
+_081336E8:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0813376C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r5, _08133738
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x1B]
+ ldrb r0, [r2, 0x1A]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _08133748
+ movs r0, 0x8
+ strb r0, [r2]
+ ldr r0, _0813373C
+ ldr r1, [r5]
+ ldrb r3, [r1, 0x1B]
+ lsls r2, r3, 1
+ adds r2, r3
+ lsls r2, 3
+ adds r2, r3
+ adds r2, 0x52
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _08133740
+ ldr r1, _08133744
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x3
+ movs r2, 0xF
+ bl MenuPrintMessage
+ b _08133796
+ .align 2, 0
+_08133738: .4byte gUnknown_030007B0
+_0813373C: .4byte gStringVar2
+_08133740: .4byte gStringVar4
+_08133744: .4byte gOtherText_TeachSpecificMove
+_08133748:
+ ldr r4, _08133764
+ ldr r1, _08133768
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x3
+ movs r2, 0xF
+ bl MenuPrintMessage
+ ldr r1, [r5]
+ movs r0, 0xC
+ strb r0, [r1]
+ b _08133796
+ .align 2, 0
+_08133764: .4byte gStringVar4
+_08133768: .4byte gOtherText_GiveUpTeachingMove
+_0813376C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08133796
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _081337D4
+ ldr r1, [r0]
+ movs r0, 0xC
+ strb r0, [r1]
+ ldr r4, _081337D8
+ ldr r1, _081337DC
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x3
+ movs r2, 0xF
+ bl MenuPrintMessage
+_08133796:
+ ldr r0, _081337D4
+ ldr r4, [r0]
+ ldrb r0, [r4, 0x1A]
+ cmp r0, 0x3
+ bls _081337F8
+ ldr r3, _081337E0
+ adds r5, r3, 0
+ adds r5, 0xC6
+ ldrb r0, [r5]
+ movs r1, 0x5
+ negs r1, r1
+ adds r2, r1, 0
+ ands r2, r0
+ strb r2, [r5]
+ movs r0, 0x85
+ lsls r0, 1
+ adds r0, r3
+ mov r12, r0
+ ldrb r0, [r0]
+ adds r3, r1, 0
+ ands r3, r0
+ mov r1, r12
+ strb r3, [r1]
+ ldrb r0, [r4, 0x19]
+ cmp r0, 0
+ bne _081337E4
+ movs r1, 0x4
+ adds r0, r2, 0
+ orrs r0, r1
+ strb r0, [r5]
+ b _081337F8
+ .align 2, 0
+_081337D4: .4byte gUnknown_030007B0
+_081337D8: .4byte gStringVar4
+_081337DC: .4byte gOtherText_GiveUpTeachingMove
+_081337E0: .4byte gSprites
+_081337E4:
+ ldrb r1, [r4, 0x19]
+ ldrb r0, [r4, 0x1A]
+ subs r0, 0x3
+ cmp r1, r0
+ bne _081337F8
+ movs r1, 0x4
+ adds r0, r3, 0
+ orrs r0, r1
+ mov r3, r12
+ strb r0, [r3]
+_081337F8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813362C
+
+ thumb_func_start sub_8133800
+sub_8133800: @ 8133800
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r1, _08133834
+ ldr r0, [r1]
+ ldrb r6, [r0, 0x19]
+ ldr r3, _08133838
+ mov r10, r1
+ ldr r0, _0813383C
+ mov r9, r0
+ movs r1, 0x2
+ mov r8, r1
+_0813381C:
+ mov r4, r10
+ ldr r2, [r4]
+ ldrb r0, [r2, 0x1A]
+ cmp r6, r0
+ bcc _08133844
+ adds r0, r3, 0
+ ldr r1, _08133840
+ movs r2, 0x90
+ movs r3, 0
+ bl sub_8072C74
+ b _081338FA
+ .align 2, 0
+_08133834: .4byte gUnknown_030007B0
+_08133838: .4byte gTileBuffer
+_0813383C: .4byte gBattleMoves
+_08133840: .4byte gEmptyString_81E72B0
+_08133844:
+ ldrb r0, [r2, 0x1A]
+ subs r0, 0x1
+ cmp r6, r0
+ bne _08133860
+ adds r0, r3, 0
+ ldr r1, _0813385C
+ movs r2, 0x90
+ movs r3, 0
+ bl sub_8072C74
+ b _081338FA
+ .align 2, 0
+_0813385C: .4byte gUnknownText_Exit
+_08133860:
+ lsls r1, r6, 1
+ adds r0, r2, 0
+ adds r0, 0x20
+ adds r0, r1
+ ldrh r5, [r0]
+ movs r4, 0xB1
+ lsls r4, 2
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ adds r7, r1, 0
+ cmp r0, 0
+ beq _081338A4
+ ldr r1, _0813389C
+ lsls r0, r5, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ lsls r0, 29
+ lsrs r0, 27
+ ldr r1, _081338A0
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r3, 0
+ movs r2, 0x27
+ movs r3, 0
+ bl sub_8072C74
+ adds r3, r0, 0
+ lsls r4, r5, 1
+ b _081338C2
+ .align 2, 0
+_0813389C: .4byte gContestMoves
+_081338A0: .4byte gUnknown_083CAF70
+_081338A4:
+ lsls r4, r5, 1
+ adds r0, r4, r5
+ lsls r0, 2
+ add r0, r9
+ ldrb r0, [r0, 0x2]
+ lsls r1, r0, 3
+ subs r1, r0
+ ldr r0, _08133938
+ adds r1, r0
+ adds r0, r3, 0
+ movs r2, 0x27
+ movs r3, 0
+ bl sub_8072C74
+ adds r3, r0, 0
+_081338C2:
+ adds r0, r7, r6
+ lsls r0, 3
+ adds r0, r6
+ adds r0, 0x52
+ mov r2, r10
+ ldr r1, [r2]
+ adds r1, r0
+ adds r0, r3, 0
+ movs r2, 0x72
+ movs r3, 0
+ bl sub_8072C74
+ adds r3, r0, 0
+ movs r0, 0xCA
+ strb r0, [r3]
+ strb r0, [r3, 0x1]
+ movs r0, 0xBA
+ strb r0, [r3, 0x2]
+ adds r3, 0x3
+ adds r0, r4, r5
+ lsls r0, 2
+ add r0, r9
+ ldrb r1, [r0, 0x4]
+ adds r0, r3, 0
+ movs r2, 0x90
+ movs r3, 0
+ bl sub_8072C14
+_081338FA:
+ adds r3, r0, 0
+ movs r0, 0xFE
+ strb r0, [r3]
+ adds r3, 0x1
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0x1
+ negs r4, r4
+ add r8, r4
+ mov r0, r8
+ cmp r0, 0
+ blt _08133916
+ b _0813381C
+_08133916:
+ movs r0, 0xFF
+ strb r0, [r3]
+ ldr r0, _0813393C
+ movs r1, 0xB
+ movs r2, 0x1
+ bl MenuPrint
+ movs r0, 0
+ bl sub_813360C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08133938: .4byte gTypeNames
+_0813393C: .4byte gTileBuffer
+ thumb_func_end sub_8133800
+
+ thumb_func_start sub_8133940
+sub_8133940: @ 8133940
+ push {r4-r7,lr}
+ sub sp, 0x34
+ adds r4, r1, 0
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r1, _08133968
+ mov r0, sp
+ bl StringCopy
+ ldrb r0, [r4, 0x2]
+ subs r0, 0x1
+ cmp r0, 0x6
+ bls _0813395C
+ b _08133AE2
+_0813395C:
+ lsls r0, 2
+ ldr r1, _0813396C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08133968: .4byte gExpandedPlaceholder_Empty
+_0813396C: .4byte _08133970
+ .align 2, 0
+_08133970:
+ .4byte _08133AE2
+ .4byte _0813398C
+ .4byte _08133AE2
+ .4byte _081339A4
+ .4byte _08133AE2
+ .4byte _081339E4
+ .4byte _08133A64
+_0813398C:
+ ldr r0, _081339A0
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x1
+ bls _081339B4
+ ldrb r1, [r1, 0x1]
+ b _081339CE
+ .align 2, 0
+_081339A0: .4byte gBattleMoves
+_081339A4:
+ ldr r0, _081339C4
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0
+ bne _081339CC
+_081339B4:
+ ldr r1, _081339C8
+ mov r0, sp
+ movs r2, 0x20
+ movs r3, 0x2
+ bl sub_8072C74
+ b _081339D8
+ .align 2, 0
+_081339C4: .4byte gBattleMoves
+_081339C8: .4byte gOtherText_ThreeDashes2
+_081339CC:
+ ldrb r1, [r1, 0x3]
+_081339CE:
+ mov r0, sp
+ movs r2, 0x20
+ movs r3, 0x2
+ bl sub_8072C14
+_081339D8:
+ ldrb r1, [r4]
+ ldrb r2, [r4, 0x1]
+ mov r0, sp
+ bl MenuPrint
+ b _08133AE2
+_081339E4:
+ ldrb r2, [r4]
+ ldrb r1, [r4, 0x1]
+ adds r3, r1, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r2, 0
+ bl MenuZeroFillWindowRect
+ ldr r2, _08133A34
+ ldr r1, _08133A38
+ lsls r0, r5, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xFF
+ bne _08133A14
+ movs r5, 0
+_08133A14:
+ movs r4, 0
+ ldr r7, _08133A3C
+ ldr r6, _08133A40
+_08133A1A:
+ cmp r4, r5
+ bcs _08133A44
+ ldr r0, [r7]
+ adds r0, r4
+ ldrb r1, [r0, 0x7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x1
+ bl StartSpriteAnim
+ b _08133A58
+ .align 2, 0
+_08133A34: .4byte gContestEffects
+_08133A38: .4byte gContestMoves
+_08133A3C: .4byte gUnknown_030007B0
+_08133A40: .4byte gSprites
+_08133A44:
+ ldr r0, [r7]
+ adds r0, r4
+ ldrb r1, [r0, 0x7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0
+ bl StartSpriteAnim
+_08133A58:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _08133A1A
+ b _08133AE2
+_08133A64:
+ ldrb r2, [r4]
+ ldrb r1, [r4, 0x1]
+ adds r3, r1, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r2, 0
+ bl MenuZeroFillWindowRect
+ ldr r2, _08133AB4
+ ldr r1, _08133AB8
+ lsls r0, r5, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xFF
+ bne _08133A94
+ movs r5, 0
+_08133A94:
+ movs r4, 0
+ ldr r7, _08133ABC
+ ldr r6, _08133AC0
+_08133A9A:
+ cmp r4, r5
+ bcs _08133AC4
+ ldr r0, [r7]
+ adds r0, r4
+ ldrb r1, [r0, 0xF]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x3
+ bl StartSpriteAnim
+ b _08133AD8
+ .align 2, 0
+_08133AB4: .4byte gContestEffects
+_08133AB8: .4byte gContestMoves
+_08133ABC: .4byte gUnknown_030007B0
+_08133AC0: .4byte gSprites
+_08133AC4:
+ ldr r0, [r7]
+ adds r0, r4
+ ldrb r1, [r0, 0xF]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x2
+ bl StartSpriteAnim
+_08133AD8:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _08133A9A
+_08133AE2:
+ add sp, 0x34
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8133940
+
+ thumb_func_start sub_8133AEC
+sub_8133AEC: @ 8133AEC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r6, _08133B88
+ ldr r2, [r6]
+ ldrb r1, [r2, 0x1B]
+ ldrb r0, [r2, 0x1A]
+ subs r0, 0x1
+ cmp r1, r0
+ bne _08133B08
+ b _08133C04
+_08133B08:
+ lsls r1, 1
+ adds r0, r2, 0
+ adds r0, 0x20
+ adds r0, r1
+ ldrh r5, [r0]
+ cmp r3, 0
+ beq _08133BA0
+ movs r4, 0
+ lsls r0, r5, 3
+ mov r8, r0
+ ldr r7, _08133B8C
+ adds r3, r6, 0
+ movs r6, 0x5
+ negs r6, r6
+_08133B24:
+ ldr r0, [r3]
+ adds r0, r4
+ ldrb r0, [r0, 0x7]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ adds r0, r6, 0
+ ands r0, r2
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xF
+ bls _08133B24
+ movs r4, 0
+_08133B48:
+ ldr r0, _08133B90
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldr r0, _08133B94
+ adds r1, r0
+ adds r0, r5, 0
+ bl sub_8133940
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x2
+ bls _08133B48
+ ldr r1, _08133B98
+ ldr r0, _08133B9C
+ add r0, r8
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x20
+ str r1, [sp]
+ movs r1, 0x1
+ str r1, [sp, 0x4]
+ movs r1, 0x58
+ movs r2, 0x48
+ movs r3, 0x90
+ bl sub_8072AB0
+ b _08133C92
+ .align 2, 0
+_08133B88: .4byte gUnknown_030007B0
+_08133B8C: .4byte gSprites
+_08133B90: .4byte gUnknown_08402E3D
+_08133B94: .4byte gUnknown_08402E24
+_08133B98: .4byte gUnknown_083CADD4
+_08133B9C: .4byte gContestMoves
+_08133BA0:
+ movs r4, 0
+ subs r6, r5, 0x1
+_08133BA4:
+ ldr r0, _08133BF8
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ lsls r1, r0, 1
+ adds r1, r0
+ ldr r0, _08133BFC
+ adds r1, r0
+ adds r0, r5, 0
+ bl sub_8133940
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x3
+ bls _08133BA4
+ ldr r1, _08133C00
+ lsls r0, r6, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0x58
+ movs r2, 0x48
+ movs r3, 0x90
+ bl sub_8072A18
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _08133C92
+ lsls r1, r0, 25
+ movs r0, 0x90
+ lsls r0, 20
+ adds r1, r0
+ lsrs r1, 24
+ movs r0, 0xB
+ movs r2, 0x1C
+ movs r3, 0xC
+ bl MenuFillWindowRectWithBlankTile
+ b _08133C92
+ .align 2, 0
+_08133BF8: .4byte gUnknown_08402E39
+_08133BFC: .4byte gUnknown_08402E24
+_08133C00: .4byte gMoveDescriptions
+_08133C04:
+ cmp r3, 0
+ beq _08133C5C
+ ldr r4, _08133C54
+ ldrb r2, [r4, 0xF]
+ ldrb r1, [r4, 0x10]
+ adds r3, r1, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r2, 0
+ bl MenuZeroFillWindowRect
+ ldrb r2, [r4, 0x12]
+ ldrb r1, [r4, 0x13]
+ adds r3, r1, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ adds r0, r2, 0
+ bl MenuZeroFillWindowRect
+ movs r4, 0
+ ldr r5, _08133C58
+ adds r3, r6, 0
+ movs r2, 0x4
+_08133C32:
+ ldr r0, [r3]
+ adds r0, r4
+ ldrb r1, [r0, 0x7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xF
+ bls _08133C32
+ b _08133C86
+ .align 2, 0
+_08133C54: .4byte gUnknown_08402E24
+_08133C58: .4byte gSprites
+_08133C5C:
+ ldr r4, _08133CA0
+ ldrb r0, [r4, 0x3]
+ ldrb r1, [r4, 0x4]
+ adds r2, r0, 0x3
+ lsls r2, 24
+ lsrs r2, 24
+ adds r3, r1, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ bl MenuZeroFillWindowRect
+ ldrb r0, [r4, 0x9]
+ ldrb r1, [r4, 0xA]
+ adds r2, r0, 0x3
+ lsls r2, 24
+ lsrs r2, 24
+ adds r3, r1, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ bl MenuZeroFillWindowRect
+_08133C86:
+ movs r0, 0xB
+ movs r1, 0x9
+ movs r2, 0x1C
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+_08133C92:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08133CA0: .4byte gUnknown_08402E24
+ thumb_func_end sub_8133AEC
+
+ thumb_func_start sub_8133CA4
+sub_8133CA4: @ 8133CA4
+ push {lr}
+ movs r0, 0x15
+ movs r1, 0x7
+ movs r2, 0x1B
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ ldr r0, _08133CC8
+ ldr r0, [r0]
+ movs r1, 0xB1
+ lsls r1, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_8133AEC
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08133CC8: .4byte gUnknown_030007B0
+ thumb_func_end sub_8133CA4
+
+ thumb_func_start sub_8133CCC
+sub_8133CCC: @ 8133CCC
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r0, _08133D14
+ mov r8, r0
+ ldrb r0, [r0]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r4, _08133D18
+ adds r0, r4
+ movs r1, 0x3A
+ bl GetMonData
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ mov r1, r8
+ ldrb r0, [r1]
+ muls r0, r6
+ adds r0, r4
+ movs r1, 0x39
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r4, r0
+ bcs _08133D1C
+ movs r0, 0
+ b _08133D1E
+ .align 2, 0
+_08133D14: .4byte gUnknown_03005CE0
+_08133D18: .4byte gPlayerParty
+_08133D1C:
+ movs r0, 0x1
+_08133D1E:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8133CCC
+
+ thumb_func_start unref_sub_8133D28
+unref_sub_8133D28: @ 8133D28
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08133D44
+ ldr r2, _08133D48
+ str r2, [r1, 0xC]
+ ldr r2, _08133D4C
+ adds r1, r2
+ movs r2, 0x3
+ strh r2, [r1]
+ bl sub_808A004
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08133D44: .4byte 0x02001000
+_08133D48: .4byte sub_8133D50
+_08133D4C: .4byte 0x0001a272
+ thumb_func_end unref_sub_8133D28
+
+ thumb_func_start sub_8133D50
+sub_8133D50: @ 8133D50
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _08133DA0
+ mov r9, r0
+ ldr r1, _08133DA4
+ mov r10, r1
+ ldrb r1, [r1, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrh r0, [r0, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ mov r2, r10
+ ldrb r1, [r2, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ mov r2, r9
+ adds r1, r0, r2
+ ldrh r0, [r1, 0x2E]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r0, r8
+ cmp r0, 0x5
+ bhi _08133D96
+ cmp r6, 0x5
+ bls _08133DA8
+_08133D96:
+ adds r0, r7, 0
+ bl sub_806CD44
+ b _08133E4E
+ .align 2, 0
+_08133DA0: .4byte gSprites
+_08133DA4: .4byte 0x02001000
+_08133DA8:
+ movs r5, 0xD8
+ lsls r5, 9
+ add r5, r10
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ movs r1, 0x64
+ muls r0, r1
+ ldr r2, _08133DE4
+ adds r0, r2
+ str r0, [r5]
+ movs r1, 0x39
+ bl GetMonData
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0
+ beq _08133DDA
+ cmp r8, r6
+ beq _08133DDA
+ ldr r0, [r5]
+ movs r1, 0x3A
+ bl GetMonData
+ cmp r0, r4
+ bne _08133DE8
+_08133DDA:
+ adds r0, r7, 0
+ bl sub_8133EB8
+ b _08133E4E
+ .align 2, 0
+_08133DE4: .4byte gPlayerParty
+_08133DE8:
+ movs r0, 0x1
+ bl PlaySE
+ mov r0, r10
+ ldrb r1, [r0, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ ldrh r0, [r0, 0x2E]
+ movs r1, 0
+ strb r0, [r5, 0x5]
+ ldrb r0, [r5, 0x5]
+ movs r2, 0x64
+ muls r0, r2
+ ldr r2, _08133E5C
+ adds r0, r2
+ str r0, [r5]
+ strh r1, [r5, 0x6]
+ ldr r1, _08133E60
+ str r1, [r5, 0xC]
+ ldr r1, _08133E64
+ str r1, [r5, 0x10]
+ movs r1, 0x3A
+ bl GetMonData
+ ldr r1, _08133E68
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r1
+ strh r0, [r4, 0x1C]
+ ldr r0, [r5]
+ movs r1, 0x39
+ bl GetMonData
+ strh r0, [r4, 0x1E]
+ movs r1, 0x1C
+ ldrsh r0, [r4, r1]
+ movs r1, 0x5
+ bl __divsi3
+ strh r0, [r4, 0x20]
+ bl sub_806D5A4
+ ldr r0, _08133E6C
+ str r0, [r4]
+ ldrh r1, [r4, 0x1E]
+ ldr r0, _08133E70
+ add r0, r10
+ strh r1, [r0]
+_08133E4E:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08133E5C: .4byte gPlayerParty
+_08133E60: .4byte 0xffff8000
+_08133E64: .4byte sub_8133EF8
+_08133E68: .4byte gTasks
+_08133E6C: .4byte sub_806FA18
+_08133E70: .4byte 0x0001a282
+ thumb_func_end sub_8133D50
+
+ thumb_func_start sub_8133E74
+sub_8133E74: @ 8133E74
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08133EAC
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08133EA4
+ movs r0, 0x3
+ movs r1, 0xE
+ movs r2, 0x1A
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0x3
+ movs r1, 0
+ bl sub_806D538
+ ldr r0, _08133EB0
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08133EB4
+ str r0, [r1]
+_08133EA4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08133EAC: .4byte gUnknown_0202E8F6
+_08133EB0: .4byte gTasks
+_08133EB4: .4byte sub_806CB74
+ thumb_func_end sub_8133E74
+
+ thumb_func_start sub_8133EB8
+sub_8133EB8: @ 8133EB8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _08133EE8
+ movs r0, 0
+ strb r0, [r1]
+ bl sub_806D5A4
+ ldr r0, _08133EEC
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _08133EF0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08133EF4
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08133EE8: .4byte gUnknown_0202E8F4
+_08133EEC: .4byte gOtherText_CantUseOnPoke
+_08133EF0: .4byte gTasks
+_08133EF4: .4byte sub_8133E74
+ thumb_func_end sub_8133EB8
+
+ thumb_func_start sub_8133EF8
+sub_8133EF8: @ 8133EF8
+ push {r4,lr}
+ bl sub_806CCE4
+ ldr r4, _08133F3C
+ ldr r0, _08133F40
+ adds r1, r4, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ ldr r0, _08133F44
+ adds r4, r0
+ ldrb r1, [r4, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08133F48
+ adds r0, r1
+ bl DestroySprite
+ movs r0, 0x3
+ movs r1, 0xE
+ movs r2, 0x1A
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0
+ bl sub_806D538
+ ldrb r0, [r4]
+ bl SwitchTaskToFollowupFunc
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08133F3C: .4byte 0x0201b000
+_08133F40: .4byte 0x00000261
+_08133F44: .4byte 0xfffe6000
+_08133F48: .4byte gSprites
+ thumb_func_end sub_8133EF8
+
+ thumb_func_start sub_8133F4C
+sub_8133F4C: @ 8133F4C
+ push {r4,r5,lr}
+ lsls r0, 24
+ movs r3, 0
+ ldr r1, _08133F7C
+ lsrs r2, r0, 21
+ adds r0, r2, r1
+ ldrb r0, [r0, 0x4]
+ cmp r3, r0
+ bcs _08133F76
+ adds r5, r1, 0
+ movs r4, 0
+_08133F62:
+ adds r0, r2, r5
+ ldr r1, [r0]
+ adds r1, r3
+ strb r4, [r1]
+ adds r1, r3, 0x1
+ lsls r1, 24
+ lsrs r3, r1, 24
+ ldrb r0, [r0, 0x4]
+ cmp r3, r0
+ bcc _08133F62
+_08133F76:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08133F7C: .4byte gUnknown_08402E40
+ thumb_func_end sub_8133F4C
+
+ thumb_func_start sub_8133F80
+sub_8133F80: @ 8133F80
+ push {r4,lr}
+ movs r4, 0
+_08133F84:
+ adds r0, r4, 0
+ bl sub_8133F4C
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _08133F84
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8133F80
+
+ thumb_func_start sub_8133F9C
+sub_8133F9C: @ 8133F9C
+ push {r4,lr}
+ lsls r0, 24
+ movs r2, 0
+ ldr r1, _08133FC8
+ lsrs r0, 21
+ adds r0, r1
+ movs r1, 0x4
+ ldrsb r1, [r0, r1]
+ cmp r2, r1
+ bge _08133FD8
+ adds r4, r0, 0
+ adds r3, r1, 0
+_08133FB4:
+ lsls r0, r2, 24
+ asrs r1, r0, 24
+ ldr r0, [r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08133FCC
+ adds r0, r1, 0
+ b _08133FDC
+ .align 2, 0
+_08133FC8: .4byte gUnknown_08402E40
+_08133FCC:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ asrs r0, 24
+ cmp r0, r3
+ blt _08133FB4
+_08133FD8:
+ movs r0, 0x1
+ negs r0, r0
+_08133FDC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8133F9C
+
+ thumb_func_start sub_8133FE4
+sub_8133FE4: @ 8133FE4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _08134010
+ lsls r0, r3, 5
+ adds r0, r1
+ ldrb r0, [r0, 0x13]
+ movs r2, 0
+ ldr r1, _08134014
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0x4]
+ cmp r2, r1
+ bcs _08134022
+ ldr r4, [r0]
+_08134002:
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ cmp r0, r3
+ bne _08134018
+ movs r0, 0x1
+ b _08134024
+ .align 2, 0
+_08134010: .4byte gDecorations
+_08134014: .4byte gUnknown_08402E40
+_08134018:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r1
+ bcc _08134002
+_08134022:
+ movs r0, 0
+_08134024:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8133FE4
+
+ thumb_func_start IsThereStorageSpaceForDecoration
+IsThereStorageSpaceForDecoration: @ 813402C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _0813406C
+ ldr r1, _08134064
+ lsls r0, r4, 5
+ adds r0, r1
+ ldrb r5, [r0, 0x13]
+ adds r0, r5, 0
+ bl sub_8133F9C
+ lsls r0, 24
+ asrs r2, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r2, r0
+ beq _0813406C
+ ldr r0, _08134068
+ lsls r1, r5, 3
+ adds r1, r0
+ ldr r0, [r1]
+ adds r0, r2
+ strb r4, [r0]
+ movs r0, 0x1
+ b _0813406E
+ .align 2, 0
+_08134064: .4byte gDecorations
+_08134068: .4byte gUnknown_08402E40
+_0813406C:
+ movs r0, 0
+_0813406E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end IsThereStorageSpaceForDecoration
+
+ thumb_func_start sub_8134074
+sub_8134074: @ 8134074
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _081340A0
+ ldr r1, _0813409C
+ lsls r0, 5
+ adds r0, r1
+ ldrb r0, [r0, 0x13]
+ bl sub_8133F9C
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _081340A0
+ movs r0, 0x1
+ b _081340A2
+ .align 2, 0
+_0813409C: .4byte gDecorations
+_081340A0:
+ movs r0, 0
+_081340A2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8134074
+
+ thumb_func_start sub_81340A8
+sub_81340A8: @ 81340A8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0
+ cmp r5, 0
+ bne _081340C4
+ b _081340F2
+_081340B6:
+ movs r0, 0
+ strb r0, [r1]
+ adds r0, r6, 0
+ bl sub_8134104
+ movs r0, 0x1
+ b _081340F4
+_081340C4:
+ ldr r2, _081340FC
+ ldr r1, _08134100
+ lsls r0, r5, 5
+ adds r0, r1
+ ldrb r4, [r0, 0x13]
+ lsls r0, r4, 3
+ adds r0, r2
+ ldrb r1, [r0, 0x4]
+ cmp r3, r1
+ bcs _081340F2
+ adds r6, r4, 0
+ adds r4, r0, 0
+ adds r2, r1, 0
+_081340DE:
+ ldr r0, [r4]
+ adds r1, r0, r3
+ ldrb r0, [r1]
+ cmp r0, r5
+ beq _081340B6
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, r2
+ bcc _081340DE
+_081340F2:
+ movs r0, 0
+_081340F4:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081340FC: .4byte gUnknown_08402E40
+_08134100: .4byte gDecorations
+ thumb_func_end sub_81340A8
+
+ thumb_func_start sub_8134104
+sub_8134104: @ 8134104
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ movs r6, 0
+ ldr r2, _08134190
+ lsrs r1, r0, 21
+ adds r0, r1, r2
+ ldrb r0, [r0, 0x4]
+ cmp r6, r0
+ bcs _08134180
+ adds r7, r1, 0
+ mov r8, r0
+ str r0, [sp]
+_08134126:
+ adds r1, r6, 0x1
+ lsls r0, r1, 24
+ lsrs r3, r0, 24
+ adds r2, r7, 0
+ mov r12, r1
+ cmp r3, r8
+ bcs _08134174
+ ldr r1, _08134190
+ mov r10, r1
+ adds r0, r1, 0
+ mov r9, r0
+_0813413C:
+ mov r1, r10
+ adds r5, r2, r1
+ ldr r1, [r5]
+ adds r0, r1, r3
+ ldrb r4, [r0]
+ adds r2, r4, 0
+ cmp r2, 0
+ beq _08134162
+ adds r0, r1, r6
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _08134158
+ cmp r1, r2
+ bls _08134162
+_08134158:
+ ldrb r1, [r0]
+ strb r4, [r0]
+ ldr r0, [r5]
+ adds r0, r3
+ strb r1, [r0]
+_08134162:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r2, r7, 0
+ mov r1, r9
+ adds r0, r2, r1
+ ldrb r0, [r0, 0x4]
+ cmp r3, r0
+ bcc _0813413C
+_08134174:
+ mov r1, r12
+ lsls r0, r1, 24
+ lsrs r6, r0, 24
+ ldr r0, [sp]
+ cmp r6, r0
+ bcc _08134126
+_08134180:
+ 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
+_08134190: .4byte gUnknown_08402E40
+ thumb_func_end sub_8134104
+
+ thumb_func_start sub_8134194
+sub_8134194: @ 8134194
+ push {r4,r5,lr}
+ lsls r0, 24
+ movs r4, 0
+ movs r3, 0
+ ldr r2, _081341D0
+ lsrs r1, r0, 21
+ adds r0, r1, r2
+ ldrb r0, [r0, 0x4]
+ cmp r4, r0
+ bcs _081341C8
+ adds r5, r2, 0
+_081341AA:
+ adds r2, r1, r5
+ ldr r0, [r2]
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081341BC
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_081341BC:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r2, [r2, 0x4]
+ cmp r3, r2
+ bcc _081341AA
+_081341C8:
+ adds r0, r4, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081341D0: .4byte gUnknown_08402E40
+ thumb_func_end sub_8134194
+
+ thumb_func_start sub_81341D4
+sub_81341D4: @ 81341D4
+ push {r4,r5,lr}
+ movs r5, 0
+ movs r4, 0
+_081341DA:
+ adds r0, r4, 0
+ bl sub_8134194
+ adds r0, r5, r0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _081341DA
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81341D4
+
+ thumb_func_start sub_81341F8
+sub_81341F8: @ 81341F8
+ push {lr}
+ ldr r0, _08134208
+ movs r1, 0
+ movs r2, 0x1C
+ bl memset
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08134208: .4byte gSaveBlock1 + 0x3144
+ thumb_func_end sub_81341F8
+
+ thumb_func_start sub_813420C
+sub_813420C: @ 813420C
+ push {r4-r6,lr}
+ movs r2, 0
+ ldr r6, _08134238
+ ldr r4, _0813423C
+ movs r3, 0
+ adds r5, r4, 0x1
+_08134218:
+ lsls r1, r2, 1
+ adds r0, r1, r4
+ strb r3, [r0]
+ adds r1, r5
+ strb r3, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bls _08134218
+ movs r0, 0
+ strb r0, [r6]
+ strb r0, [r6, 0x1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08134238: .4byte gUnknown_02039302
+_0813423C: .4byte gUnknown_020392FC
+ thumb_func_end sub_813420C
+
+ thumb_func_start sub_8134240
+sub_8134240: @ 8134240
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x10
+ ldr r5, _081342FC
+ .ifdef SAPPHIRE
+ ldr r6, _sub_8134240_Latias
+ .else
+ movs r6, 0xCC
+ lsls r6, 1
+ .endif
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ str r0, [sp, 0xC]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x28
+ movs r3, 0x20
+ bl CreateMon
+ ldr r4, _08134300
+ movs r0, 0
+ mov r8, r0
+ strh r6, [r4, 0x8]
+ movs r0, 0x28
+ strb r0, [r4, 0xC]
+ mov r0, r8
+ strb r0, [r4, 0xD]
+ movs r0, 0x1
+ strb r0, [r4, 0x13]
+ adds r0, r5, 0
+ movs r1, 0x42
+ bl GetMonData
+ str r0, [r4]
+ adds r0, r5, 0
+ movs r1, 0
+ bl GetMonData
+ str r0, [r4, 0x4]
+ adds r0, r5, 0
+ movs r1, 0x3A
+ bl GetMonData
+ strh r0, [r4, 0xA]
+ adds r0, r5, 0
+ movs r1, 0x16
+ bl GetMonData
+ strb r0, [r4, 0xE]
+ adds r0, r5, 0
+ movs r1, 0x17
+ bl GetMonData
+ strb r0, [r4, 0xF]
+ adds r0, r5, 0
+ movs r1, 0x18
+ bl GetMonData
+ strb r0, [r4, 0x10]
+ adds r0, r5, 0
+ movs r1, 0x21
+ bl GetMonData
+ strb r0, [r4, 0x11]
+ adds r0, r5, 0
+ movs r1, 0x2F
+ bl GetMonData
+ strb r0, [r4, 0x12]
+ ldr r4, _08134304
+ mov r0, r8
+ strb r0, [r4]
+ bl Random
+ ldr r5, _08134308
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x14
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ adds r1, r5
+ ldrb r0, [r1]
+ strb r0, [r4, 0x1]
+ add sp, 0x10
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081342FC: .4byte gEnemyParty
+ .ifdef SAPPHIRE
+_sub_8134240_Latias: .4byte 407
+ .endif
+_08134300: .4byte gSaveBlock1 + 0x3144
+_08134304: .4byte gUnknown_02039302
+_08134308: .4byte gUnknown_08402E80
+ thumb_func_end sub_8134240
+
+ thumb_func_start sub_813430C
+sub_813430C: @ 813430C
+ push {lr}
+ bl sub_81341F8
+ bl sub_813420C
+ bl sub_8134240
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813430C
+
+ thumb_func_start mapnumbers_history_shift_sav1_0_2_4_out
+mapnumbers_history_shift_sav1_0_2_4_out: @ 8134320
+ ldr r0, _08134340
+ ldrb r1, [r0, 0x2]
+ strb r1, [r0, 0x4]
+ ldrb r1, [r0, 0x3]
+ strb r1, [r0, 0x5]
+ ldrb r1, [r0]
+ strb r1, [r0, 0x2]
+ ldrb r1, [r0, 0x1]
+ strb r1, [r0, 0x3]
+ ldr r2, _08134344
+ ldrb r1, [r2, 0x4]
+ strb r1, [r0]
+ ldrb r1, [r2, 0x5]
+ strb r1, [r0, 0x1]
+ bx lr
+ .align 2, 0
+_08134340: .4byte gUnknown_020392FC
+_08134344: .4byte gSaveBlock1
+ thumb_func_end mapnumbers_history_shift_sav1_0_2_4_out
+
+ thumb_func_start sub_8134348
+sub_8134348: @ 8134348
+ push {r4,r5,lr}
+ movs r1, 0
+ ldr r0, _08134388
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0
+ beq _08134380
+ ldr r0, _0813438C
+ strb r1, [r0]
+ ldr r5, _08134390
+ adds r4, r0, 0
+_0813435C:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x14
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 1
+ adds r1, r5
+ ldrb r1, [r1]
+ ldrb r0, [r4, 0x1]
+ cmp r0, r1
+ beq _0813435C
+ strb r1, [r4, 0x1]
+_08134380:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08134388: .4byte gSaveBlock1 + 0x3144
+_0813438C: .4byte gUnknown_02039302
+_08134390: .4byte gUnknown_08402E80
+ thumb_func_end sub_8134348
+
+ thumb_func_start sub_8134394
+sub_8134394: @ 8134394
+ push {r4-r7,lr}
+ movs r4, 0
+ bl Random
+ lsls r0, 16
+ movs r1, 0xF0
+ lsls r1, 12
+ ands r1, r0
+ cmp r1, 0
+ bne _081343AE
+ bl sub_8134348
+ b _08134416
+_081343AE:
+ ldr r0, _081343FC
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0
+ beq _08134416
+ ldr r7, _08134400
+ ldr r3, _08134404
+_081343BA:
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r2, r0, 1
+ adds r1, r2, r3
+ ldrb r0, [r7, 0x1]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _0813440C
+ ldr r6, _08134404
+ adds r5, r2, 0x1
+ ldr r4, _08134408
+_081343D0:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x5
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 16
+ adds r0, r5
+ adds r0, r6
+ ldrb r1, [r0]
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ bne _081343F4
+ ldrb r0, [r4, 0x5]
+ cmp r0, r1
+ beq _081343D0
+_081343F4:
+ cmp r1, 0xFF
+ beq _081343D0
+ strb r1, [r7, 0x1]
+ b _08134416
+ .align 2, 0
+_081343FC: .4byte gSaveBlock1 + 0x3144
+_08134400: .4byte gUnknown_02039302
+_08134404: .4byte gUnknown_08402E80
+_08134408: .4byte gUnknown_020392FC
+_0813440C:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x13
+ bls _081343BA
+_08134416:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8134394
+
+ thumb_func_start sub_813441C
+sub_813441C: @ 813441C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _08134440
+ ldrb r0, [r0, 0x13]
+ cmp r0, 0
+ beq _08134448
+ ldr r0, _08134444
+ ldrb r3, [r0]
+ cmp r2, r3
+ bne _08134448
+ ldrb r0, [r0, 0x1]
+ cmp r1, r0
+ bne _08134448
+ movs r0, 0x1
+ b _0813444A
+ .align 2, 0
+_08134440: .4byte gSaveBlock1 + 0x3144
+_08134444: .4byte gUnknown_02039302
+_08134448:
+ movs r0, 0
+_0813444A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_813441C
+
+ thumb_func_start sub_8134450
+sub_8134450: @ 8134450
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r4, _081344C4
+ ldr r5, _081344C8
+ ldrh r1, [r5, 0x8]
+ ldrb r2, [r5, 0xC]
+ ldr r3, [r5]
+ ldr r0, [r5, 0x4]
+ str r0, [sp]
+ adds r0, r4, 0
+ bl CreateMonWithIVsPersonality
+ adds r2, r5, 0
+ adds r2, 0xD
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl SetMonData
+ adds r2, r5, 0
+ adds r2, 0xA
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl SetMonData
+ adds r2, r5, 0
+ adds r2, 0xE
+ adds r0, r4, 0
+ movs r1, 0x16
+ bl SetMonData
+ adds r2, r5, 0
+ adds r2, 0xF
+ adds r0, r4, 0
+ movs r1, 0x17
+ bl SetMonData
+ adds r2, r5, 0
+ adds r2, 0x10
+ adds r0, r4, 0
+ movs r1, 0x18
+ bl SetMonData
+ adds r2, r5, 0
+ adds r2, 0x11
+ adds r0, r4, 0
+ movs r1, 0x21
+ bl SetMonData
+ adds r2, r5, 0
+ adds r2, 0x12
+ adds r0, r4, 0
+ movs r1, 0x2F
+ bl SetMonData
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081344C4: .4byte gEnemyParty
+_081344C8: .4byte gSaveBlock1 + 0x3144
+ thumb_func_end sub_8134450
+
+ thumb_func_start sub_81344CC
+sub_81344CC: @ 81344CC
+ push {lr}
+ ldr r1, _081344F8
+ ldrb r0, [r1, 0x4]
+ ldrb r1, [r1, 0x5]
+ bl sub_813441C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _081344FC
+ bl Random
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r0
+ cmp r1, 0
+ bne _081344FC
+ bl sub_8134450
+ movs r0, 0x1
+ b _081344FE
+ .align 2, 0
+_081344F8: .4byte gSaveBlock1
+_081344FC:
+ movs r0, 0
+_081344FE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81344CC
+
+ thumb_func_start sub_8134504
+sub_8134504: @ 8134504
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x39
+ bl GetMonData
+ ldr r4, _08134528
+ strh r0, [r4, 0xA]
+ adds r0, r5, 0
+ movs r1, 0x37
+ bl GetMonData
+ strb r0, [r4, 0xD]
+ bl sub_8134348
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08134528: .4byte gSaveBlock1 + 0x3144
+ thumb_func_end sub_8134504
+
+ thumb_func_start sub_813452C
+sub_813452C: @ 813452C
+ ldr r1, _08134534
+ movs r0, 0
+ strb r0, [r1, 0x13]
+ bx lr
+ .align 2, 0
+_08134534: .4byte gSaveBlock1 + 0x3144
+ thumb_func_end sub_813452C
+
+ thumb_func_start sub_8134538
+sub_8134538: @ 8134538
+ ldr r3, _08134544
+ ldrb r2, [r3]
+ strb r2, [r0]
+ ldrb r0, [r3, 0x1]
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_08134544: .4byte gUnknown_02039302
+ thumb_func_end sub_8134538
+
+ thumb_func_start sub_8134548
+sub_8134548: @ 8134548
+ push {r4,r5,lr}
+ movs r4, 0
+ movs r5, 0
+_0813454E:
+ ldr r0, _08134568
+ ldr r1, _0813456C
+ adds r0, r1
+ adds r0, r5, r0
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bhi _08134590
+ lsls r0, 2
+ ldr r1, _08134570
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08134568: .4byte gSaveBlock2
+_0813456C: .4byte 0x00000556
+_08134570: .4byte _08134574
+ .align 2, 0
+_08134574:
+ .4byte _08134590
+ .4byte _081345A8
+ .4byte _081345C8
+ .4byte _081345D8
+ .4byte _081345B8
+ .4byte _081345C0
+ .4byte _081345D8
+_08134590:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_813461C
+ cmp r4, 0
+ bne _081345D8
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0x5
+ bl VarSet
+ b _081345D8
+_081345A8:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_813461C
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0x1
+ b _081345CE
+_081345B8:
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0x2
+ b _081345CE
+_081345C0:
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0x3
+ b _081345CE
+_081345C8:
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0x4
+_081345CE:
+ bl VarSet
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_081345D8:
+ adds r5, 0x1
+ cmp r5, 0x1
+ ble _0813454E
+ ldr r1, _08134610
+ ldr r2, _08134614
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _081345EE
+ cmp r0, 0x6
+ bne _08134606
+_081345EE:
+ ldr r2, _08134618
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _081345FC
+ cmp r0, 0x6
+ bne _08134606
+_081345FC:
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0x5
+ bl VarSet
+_08134606:
+ bl sub_8135C44
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08134610: .4byte gSaveBlock2
+_08134614: .4byte 0x00000556
+_08134618: .4byte 0x00000557
+ thumb_func_end sub_8134548
+
+ thumb_func_start sub_813461C
+sub_813461C: @ 813461C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _08134644
+ ldr r2, _08134648
+ adds r1, r3, r2
+ adds r1, r0, r1
+ movs r2, 0
+ strb r2, [r1]
+ lsls r0, 1
+ movs r2, 0xAB
+ lsls r2, 3
+ adds r1, r3, r2
+ adds r1, r0, r1
+ movs r2, 0x1
+ strh r2, [r1]
+ ldr r1, _0813464C
+ adds r3, r1
+ adds r0, r3
+ strh r2, [r0]
+ bx lr
+ .align 2, 0
+_08134644: .4byte gSaveBlock2
+_08134648: .4byte 0x00000556
+_0813464C: .4byte 0x0000055c
+ thumb_func_end sub_813461C
+
+ thumb_func_start sub_8134650
+sub_8134650: @ 8134650
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x2C
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 16
+ lsrs r6, r1, 16
+ add r4, sp, 0x28
+ movs r0, 0
+ strb r0, [r4]
+ bl sub_813601C
+ ldr r0, _08134684
+ ldrh r0, [r0]
+ adds r7, r4, 0
+ cmp r0, 0
+ bne _08134680
+ ldr r1, _08134688
+ ldr r2, _0813468C
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ cmp r0, r6
+ beq _08134690
+_08134680:
+ movs r0, 0
+ b _081346E2
+ .align 2, 0
+_08134684: .4byte gScriptResult
+_08134688: .4byte gSaveBlock2
+_0813468C: .4byte 0x0000049a
+_08134690:
+ movs r6, 0x32
+ cmp r5, 0
+ beq _08134698
+ movs r6, 0x64
+_08134698:
+ movs r4, 0
+ mov r8, r1
+_0813469C:
+ movs r0, 0x2C
+ muls r0, r4
+ mov r3, r8
+ adds r1, r0, r3
+ movs r2, 0x9B
+ lsls r2, 3
+ adds r0, r1, r2
+ ldrb r2, [r0]
+ cmp r2, r6
+ bne _08134680
+ ldr r3, _081346F0
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ adds r3, 0x2
+ adds r1, r3
+ ldrh r1, [r1]
+ str r2, [sp]
+ add r2, sp, 0x10
+ str r2, [sp, 0x4]
+ add r2, sp, 0x1C
+ str r2, [sp, 0x8]
+ str r7, [sp, 0xC]
+ movs r2, 0x1
+ adds r3, r5, 0
+ bl sub_8135200
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _0813469C
+ movs r1, 0
+ ldrb r0, [r7]
+ cmp r0, 0x3
+ bne _081346E0
+ movs r1, 0x1
+_081346E0:
+ adds r0, r1, 0
+_081346E2:
+ add sp, 0x2C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081346F0: .4byte 0x000004cc
+ thumb_func_end sub_8134650
+
+ thumb_func_start sub_81346F4
+sub_81346F4: @ 81346F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ movs r0, 0
+ mov r9, r0
+ ldr r4, _08134738
+ ldr r1, _0813473C
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r7, r0, 31
+ adds r0, r7, 0
+ bl sub_8135D3C
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ adds r0, r7, 0
+ mov r1, r8
+ bl sub_8134650
+ lsls r0, 24
+ adds r1, r4, 0
+ cmp r0, 0
+ beq _08134744
+ ldr r2, _08134740
+ adds r1, r2
+ movs r0, 0xC8
+ strb r0, [r1]
+ b _081347DE
+ .align 2, 0
+_08134738: .4byte gSaveBlock2
+_0813473C: .4byte 0x00000554
+_08134740: .4byte 0x00000564
+_08134744:
+ movs r5, 0
+ movs r3, 0xA4
+ mov r12, r3
+ mov r10, sp
+_0813474C:
+ mov r0, r12
+ muls r0, r5
+ movs r4, 0
+ movs r1, 0
+ movs r2, 0
+ adds r6, r5, 0x1
+ str r6, [sp, 0x14]
+ ldr r6, _081347B4
+ adds r3, r0, r6
+_0813475E:
+ ldm r3!, {r0}
+ orrs r4, r0
+ adds r1, r0
+ adds r2, 0x1
+ cmp r2, 0x27
+ bls _0813475E
+ mov r3, r12
+ muls r3, r5
+ ldr r0, _081347B8
+ adds r2, r3, r0
+ movs r6, 0xA7
+ lsls r6, 1
+ adds r0, r2, r6
+ ldrh r0, [r0]
+ cmp r0, r8
+ bne _081347A4
+ subs r6, 0x2
+ adds r0, r2, r6
+ ldrb r0, [r0]
+ cmp r0, r7
+ bne _081347A4
+ cmp r4, 0
+ beq _081347A4
+ ldr r2, _081347BC
+ adds r0, r3, r2
+ ldr r0, [r0]
+ cmp r0, r1
+ bne _081347A4
+ mov r3, r10
+ adds r3, 0x4
+ mov r10, r3
+ subs r3, 0x4
+ stm r3!, {r5}
+ movs r6, 0x1
+ add r9, r6
+_081347A4:
+ ldr r5, [sp, 0x14]
+ cmp r5, 0x4
+ ble _0813474C
+ mov r0, r9
+ cmp r0, 0
+ bne _081347C0
+ movs r0, 0
+ b _081347E0
+ .align 2, 0
+_081347B4: .4byte gSaveBlock2 + 0x14C
+_081347B8: .4byte gSaveBlock2
+_081347BC: .4byte gSaveBlock2 + 0x1EC
+_081347C0:
+ bl Random
+ ldr r4, _081347F0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r1, r9
+ bl __modsi3
+ lsls r0, 2
+ add r0, sp
+ ldr r0, [r0]
+ adds r0, 0x64
+ ldr r1, _081347F4
+ adds r4, r1
+ strb r0, [r4]
+_081347DE:
+ movs r0, 0x1
+_081347E0:
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081347F0: .4byte gSaveBlock2
+_081347F4: .4byte 0x00000564
+ thumb_func_end sub_81346F4
+
+ thumb_func_start sub_81347F8
+sub_81347F8: @ 81347F8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r5, _08134838
+ ldr r1, _0813483C
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r6, r0, 31
+ bl sub_81346F4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08134848
+ ldr r2, _08134840
+ adds r4, r5, r2
+ ldrb r0, [r4]
+ bl sub_81349FC
+ lsls r0, r6, 1
+ movs r3, 0xAB
+ lsls r3, 3
+ adds r1, r5, r3
+ adds r0, r1
+ ldrh r0, [r0]
+ adds r0, r5, r0
+ ldr r1, _08134844
+ adds r0, r1
+ ldrb r1, [r4]
+ b _081349DC
+ .align 2, 0
+_08134838: .4byte gSaveBlock2
+_0813483C: .4byte 0x00000554
+_08134840: .4byte 0x00000564
+_08134844: .4byte 0x00000569
+_08134848:
+ lsls r0, r6, 1
+ ldr r2, _081348D8
+ adds r1, r5, r2
+ adds r1, r0, r1
+ ldrh r1, [r1]
+ adds r7, r0, 0
+ cmp r1, 0x7
+ bls _0813485A
+ b _0813495C
+_0813485A:
+ movs r3, 0xAB
+ lsls r3, 3
+ adds r0, r5, r3
+ adds r1, r7, r0
+ ldrh r0, [r1]
+ cmp r0, 0x7
+ bne _081348E4
+ adds r6, r5, 0
+ mov r9, r7
+ adds r5, r1, 0
+ ldr r0, _081348DC
+ adds r0, r6
+ mov r10, r0
+ mov r8, r5
+_08134876:
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ lsls r2, r1, 2
+ adds r2, r1
+ ldr r1, _081348D8
+ adds r4, r6, r1
+ mov r3, r9
+ adds r0, r3, r4
+ ldrh r1, [r0]
+ subs r1, 0x1
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 1
+ adds r0, 0x14
+ lsrs r2, 7
+ adds r2, r0
+ lsls r2, 16
+ lsrs r2, 16
+ movs r1, 0
+ ldrh r0, [r5]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _081348C8
+ mov r3, r10
+ ldrb r0, [r3]
+ cmp r0, r2
+ beq _081348C8
+ subs r0, r4, 0x4
+ adds r0, r7, r0
+ ldrh r0, [r0]
+ subs r3, r0, 0x1
+ adds r4, 0xE
+_081348BA:
+ adds r1, 0x1
+ cmp r1, r3
+ bge _081348C8
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _081348BA
+_081348C8:
+ mov r3, r8
+ ldrh r0, [r3]
+ subs r0, 0x1
+ ldr r4, _081348E0
+ cmp r1, r0
+ bne _08134876
+ b _081349B6
+ .align 2, 0
+_081348D8: .4byte 0x0000055c
+_081348DC: .4byte 0x0000056a
+_081348E0: .4byte gSaveBlock2
+_081348E4:
+ adds r6, r5, 0
+ mov r9, r7
+ adds r5, r1, 0
+ ldr r2, _08134950
+ adds r2, r6
+ mov r10, r2
+ mov r8, r5
+_081348F2:
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ lsls r0, r1, 2
+ adds r0, r1
+ lsrs r2, r0, 6
+ ldr r3, _08134954
+ adds r4, r6, r3
+ mov r1, r9
+ adds r0, r1, r4
+ ldrh r1, [r0]
+ subs r1, 0x1
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 1
+ adds r0, r2, r0
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0
+ ldrh r0, [r5]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _08134942
+ mov r3, r10
+ ldrb r0, [r3]
+ cmp r0, r2
+ beq _08134942
+ subs r0, r4, 0x4
+ adds r0, r7, r0
+ ldrh r0, [r0]
+ subs r3, r0, 0x1
+ adds r4, 0xE
+_08134934:
+ adds r1, 0x1
+ cmp r1, r3
+ bge _08134942
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _08134934
+_08134942:
+ mov r3, r8
+ ldrh r0, [r3]
+ subs r0, 0x1
+ ldr r4, _08134958
+ cmp r1, r0
+ bne _081348F2
+ b _081349B6
+ .align 2, 0
+_08134950: .4byte 0x0000056a
+_08134954: .4byte 0x0000055c
+_08134958: .4byte gSaveBlock2
+_0813495C:
+ movs r2, 0xAB
+ lsls r2, 3
+ adds r0, r5, r2
+ adds r6, r7, r0
+ ldr r3, _081349EC
+ adds r3, r5
+ mov r8, r3
+ adds r5, r6, 0
+_0813496C:
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 1
+ asrs r0, 8
+ adds r0, 0x46
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0
+ ldrh r0, [r6]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _081349AC
+ mov r3, r8
+ ldrb r0, [r3]
+ ldr r4, _081349F0
+ cmp r0, r2
+ beq _081349AC
+ ldrh r0, [r5]
+ subs r3, r0, 0x1
+ ldr r0, _081349EC
+ adds r4, r0
+_0813499E:
+ adds r1, 0x1
+ cmp r1, r3
+ bge _081349AC
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, r2
+ bne _0813499E
+_081349AC:
+ ldrh r0, [r6]
+ subs r0, 0x1
+ ldr r4, _081349F0
+ cmp r1, r0
+ bne _0813496C
+_081349B6:
+ ldr r1, _081349F4
+ adds r0, r4, r1
+ strb r2, [r0]
+ ldr r2, _081349F4
+ adds r5, r4, r2
+ ldrb r0, [r5]
+ bl sub_81349FC
+ movs r3, 0xAB
+ lsls r3, 3
+ adds r0, r4, r3
+ adds r1, r7, r0
+ ldrh r0, [r1]
+ cmp r0, 0x6
+ bhi _081349DE
+ adds r0, r4, r0
+ ldr r1, _081349F8
+ adds r0, r1
+ ldrb r1, [r5]
+_081349DC:
+ strb r1, [r0]
+_081349DE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081349EC: .4byte 0x0000056a
+_081349F0: .4byte gSaveBlock2
+_081349F4: .4byte 0x00000564
+_081349F8: .4byte 0x00000569
+ thumb_func_end sub_81347F8
+
+ thumb_func_start sub_81349FC
+sub_81349FC: @ 81349FC
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r1, r2, 0
+ cmp r2, 0x63
+ bhi _08134A18
+ ldr r1, _08134A14
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ b _08134A38
+ .align 2, 0
+_08134A14: .4byte gBattleTowerTrainers
+_08134A18:
+ cmp r1, 0xC7
+ bhi _08134A34
+ ldr r2, _08134A2C
+ subs r1, 0x64
+ movs r0, 0xA4
+ muls r0, r1
+ adds r0, r2
+ ldr r1, _08134A30
+ b _08134A38
+ .align 2, 0
+_08134A2C: .4byte gSaveBlock2
+_08134A30: .4byte 0x0000014d
+_08134A34:
+ ldr r0, _08134A5C
+ ldr r1, _08134A60
+_08134A38:
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r2, 0
+ ldr r3, _08134A64
+ ldrb r0, [r3]
+ cmp r0, r1
+ beq _08134A54
+_08134A46:
+ adds r2, 0x1
+ cmp r2, 0x1D
+ bhi _08134A54
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, r1
+ bne _08134A46
+_08134A54:
+ cmp r2, 0x1E
+ beq _08134A6C
+ ldr r0, _08134A68
+ b _08134A8A
+ .align 2, 0
+_08134A5C: .4byte gSaveBlock2
+_08134A60: .4byte 0x00000499
+_08134A64: .4byte gUnknown_08405E60
+_08134A68: .4byte gUnknown_08405E92
+_08134A6C:
+ movs r2, 0
+ ldr r3, _08134A98
+ ldrb r0, [r3]
+ cmp r0, r1
+ beq _08134A84
+_08134A76:
+ adds r2, 0x1
+ cmp r2, 0x13
+ bhi _08134A84
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, r1
+ bne _08134A76
+_08134A84:
+ cmp r2, 0x14
+ beq _08134AA4
+ ldr r0, _08134A9C
+_08134A8A:
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ ldr r0, _08134AA0
+ bl VarSet
+ b _08134AAC
+ .align 2, 0
+_08134A98: .4byte gUnknown_08405E7E
+_08134A9C: .4byte gUnknown_08405EB0
+_08134AA0: .4byte 0x00004010
+_08134AA4:
+ ldr r0, _08134AB0
+ movs r1, 0x7
+ bl VarSet
+_08134AAC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08134AB0: .4byte 0x00004010
+ thumb_func_end sub_81349FC
+
+ thumb_func_start sub_8134AB4
+sub_8134AB4: @ 8134AB4
+ push {lr}
+ movs r0, 0xC8
+ bl sub_81349FC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8134AB4
+
+ thumb_func_start sub_8134AC0
+sub_8134AC0: @ 8134AC0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ movs r7, 0
+ mov r8, r0
+ movs r5, 0
+ ldr r0, _08134B3C
+ mov r12, r0
+ mov r1, r8
+ ldrb r1, [r1, 0xC]
+ str r1, [sp, 0x18]
+ movs r2, 0xAA
+ lsls r2, 1
+ add r2, r12
+ mov r10, r2
+ mov r9, r5
+_08134AE6:
+ movs r6, 0
+ movs r3, 0
+ ldr r0, _08134B40
+ add r0, r9
+ ldrb r0, [r0]
+ ldr r1, [sp, 0x18]
+ cmp r0, r1
+ bne _08134B14
+ movs r0, 0xA4
+ muls r0, r5
+ ldr r1, _08134B40
+ adds r2, r0, r1
+ mov r4, r8
+ adds r4, 0xC
+_08134B02:
+ adds r2, 0x1
+ adds r3, 0x1
+ cmp r3, 0x3
+ bgt _08134B14
+ adds r1, r4, r3
+ ldrb r0, [r2]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _08134B02
+_08134B14:
+ cmp r3, 0x4
+ bne _08134B54
+ movs r6, 0
+ mov r2, r10
+ ldrb r0, [r2]
+ mov r3, r8
+ ldrb r3, [r3, 0x8]
+ cmp r0, r3
+ bne _08134B54
+ adds r1, r0, 0
+ movs r0, 0xA4
+ muls r0, r5
+ adds r0, 0x4
+ ldr r3, _08134B44
+ adds r2, r0, r3
+_08134B32:
+ cmp r1, 0xFF
+ bne _08134B48
+ movs r6, 0x7
+ b _08134B54
+ .align 2, 0
+_08134B3C: .4byte gSaveBlock2
+_08134B40: .4byte gSaveBlock2 + 0x158
+_08134B44: .4byte gSaveBlock2 + 0x150
+_08134B48:
+ adds r6, 0x1
+ cmp r6, 0x6
+ bgt _08134B54
+ ldrb r0, [r2]
+ cmp r0, r1
+ beq _08134B32
+_08134B54:
+ cmp r6, 0x7
+ beq _08134B64
+ movs r0, 0xA4
+ add r10, r0
+ add r9, r0
+ adds r5, 0x1
+ cmp r5, 0x4
+ ble _08134AE6
+_08134B64:
+ cmp r5, 0x4
+ bgt _08134B76
+ movs r0, 0xA4
+ muls r0, r5
+ add r0, r12
+ movs r1, 0xA6
+ lsls r1, 1
+ adds r0, r1
+ b _08134B9E
+_08134B76:
+ movs r5, 0
+ movs r1, 0xA7
+ lsls r1, 1
+ add r1, r12
+ b _08134B88
+_08134B80:
+ adds r1, 0xA4
+ adds r5, 0x1
+ cmp r5, 0x4
+ bgt _08134BA8
+_08134B88:
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _08134B80
+ cmp r5, 0x4
+ bgt _08134BA8
+ movs r0, 0xA4
+ muls r0, r5
+ add r0, r12
+ movs r2, 0xA6
+ lsls r2, 1
+ adds r0, r2
+_08134B9E:
+ mov r1, r8
+ movs r2, 0xA4
+ bl memcpy
+ b _08134C5E
+_08134BA8:
+ mov r2, sp
+ movs r3, 0xA7
+ lsls r3, 1
+ mov r1, r12
+ adds r0, r1, r3
+ ldrh r0, [r0]
+ movs r1, 0
+ strh r0, [r2]
+ add r0, sp, 0xC
+ strh r1, [r0]
+ adds r7, 0x1
+ movs r5, 0x1
+ add r2, sp, 0xC
+ mov r9, r2
+ mov r10, r3
+_08134BC6:
+ movs r3, 0
+ adds r0, r5, 0x1
+ mov r12, r0
+ cmp r3, r7
+ bge _08134C0A
+ movs r1, 0xA4
+ adds r0, r5, 0
+ muls r0, r1
+ ldr r2, _08134BFC
+ adds r0, r2
+ mov r1, r10
+ adds r4, r0, r1
+ mov r6, sp
+_08134BE0:
+ lsls r0, r3, 1
+ add r0, sp
+ ldrh r2, [r4]
+ adds r1, r2, 0
+ ldrh r0, [r0]
+ cmp r1, r0
+ bcs _08134C00
+ movs r3, 0
+ movs r7, 0x1
+ strh r2, [r6]
+ mov r2, r9
+ strh r5, [r2]
+ b _08134C0A
+ .align 2, 0
+_08134BFC: .4byte gSaveBlock2
+_08134C00:
+ cmp r1, r0
+ bhi _08134C0A
+ adds r3, 0x1
+ cmp r3, r7
+ blt _08134BE0
+_08134C0A:
+ cmp r3, r7
+ bne _08134C2A
+ lsls r1, r7, 1
+ mov r3, sp
+ adds r2, r3, r1
+ movs r3, 0xA4
+ adds r0, r5, 0
+ muls r0, r3
+ ldr r3, _08134C70
+ adds r0, r3
+ add r0, r10
+ ldrh r0, [r0]
+ strh r0, [r2]
+ add r1, r9
+ strh r5, [r1]
+ adds r7, 0x1
+_08134C2A:
+ mov r5, r12
+ cmp r5, 0x4
+ ble _08134BC6
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r7, 0
+ bl __modsi3
+ adds r5, r0, 0
+ ldr r2, _08134C70
+ lsls r0, r5, 1
+ add r0, sp
+ adds r0, 0xC
+ ldrh r1, [r0]
+ movs r0, 0xA4
+ muls r0, r1
+ adds r0, r2
+ movs r1, 0xA6
+ lsls r1, 1
+ adds r0, r1
+ mov r1, r8
+ movs r2, 0xA4
+ bl memcpy
+_08134C5E:
+ 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
+_08134C70: .4byte gSaveBlock2
+ thumb_func_end sub_8134AC0
+
+ thumb_func_start get_trainer_class_pic_index
+get_trainer_class_pic_index: @ 8134C74
+ push {lr}
+ ldr r3, _08134C90
+ ldr r0, _08134C94
+ adds r1, r3, r0
+ ldrb r0, [r1]
+ cmp r0, 0xC8
+ bne _08134CA0
+ ldr r1, _08134C98
+ ldr r2, _08134C9C
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ adds r0, r1
+ b _08134CD2
+ .align 2, 0
+_08134C90: .4byte gSaveBlock2
+_08134C94: .4byte 0x00000564
+_08134C98: .4byte gTrainerClassToPicIndex
+_08134C9C: .4byte 0x00000499
+_08134CA0:
+ cmp r0, 0x63
+ bls _08134CC0
+ ldr r2, _08134CBC
+ ldrb r0, [r1]
+ subs r0, 0x64
+ movs r1, 0xA4
+ muls r0, r1
+ adds r0, r3
+ adds r1, 0xA9
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r0, r2
+ b _08134CD2
+ .align 2, 0
+_08134CBC: .4byte gTrainerClassToPicIndex
+_08134CC0:
+ ldr r3, _08134CD8
+ ldr r2, _08134CDC
+ ldrb r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r0, r3
+_08134CD2:
+ ldrb r0, [r0]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08134CD8: .4byte gTrainerClassToPicIndex
+_08134CDC: .4byte gBattleTowerTrainers
+ thumb_func_end get_trainer_class_pic_index
+
+ thumb_func_start get_trainer_class_name_index
+get_trainer_class_name_index: @ 8134CE0
+ push {lr}
+ ldr r3, _08134CFC
+ ldr r0, _08134D00
+ adds r1, r3, r0
+ ldrb r0, [r1]
+ cmp r0, 0xC8
+ bne _08134D0C
+ ldr r1, _08134D04
+ ldr r2, _08134D08
+ adds r0, r3, r2
+ ldrb r0, [r0]
+ adds r0, r1
+ b _08134D40
+ .align 2, 0
+_08134CFC: .4byte gSaveBlock2
+_08134D00: .4byte 0x00000564
+_08134D04: .4byte gTrainerClassToNameIndex
+_08134D08: .4byte 0x00000499
+_08134D0C:
+ cmp r0, 0x63
+ bhi _08134D2C
+ ldr r3, _08134D24
+ ldr r2, _08134D28
+ ldrb r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r0, r3
+ b _08134D40
+ .align 2, 0
+_08134D24: .4byte gTrainerClassToNameIndex
+_08134D28: .4byte gBattleTowerTrainers
+_08134D2C:
+ ldr r2, _08134D48
+ ldrb r0, [r1]
+ subs r0, 0x64
+ movs r1, 0xA4
+ muls r0, r1
+ adds r0, r3
+ adds r1, 0xA9
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r0, r2
+_08134D40:
+ ldrb r0, [r0]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08134D48: .4byte gTrainerClassToNameIndex
+ thumb_func_end get_trainer_class_name_index
+
+ thumb_func_start get_trainer_name
+get_trainer_name: @ 8134D4C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r2, _08134D74
+ ldr r0, _08134D78
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0xC8
+ bne _08134D80
+ movs r3, 0
+ ldr r5, _08134D7C
+ adds r2, r5
+_08134D62:
+ adds r0, r4, r3
+ adds r1, r3, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r3, 0x1
+ cmp r3, 0x6
+ ble _08134D62
+ b _08134DC8
+ .align 2, 0
+_08134D74: .4byte gSaveBlock2
+_08134D78: .4byte 0x00000564
+_08134D7C: .4byte 0x0000049c
+_08134D80:
+ cmp r0, 0x63
+ bhi _08134DA8
+ movs r3, 0
+ ldr r2, _08134DA4
+ ldrb r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r2, 0x1
+ adds r2, r0, r2
+_08134D94:
+ adds r1, r4, r3
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r2, 0x1
+ adds r3, 0x1
+ cmp r3, 0x6
+ ble _08134D94
+ b _08134DC8
+ .align 2, 0
+_08134DA4: .4byte gBattleTowerTrainers
+_08134DA8:
+ movs r3, 0
+ ldrb r0, [r1]
+ subs r0, 0x64
+ movs r1, 0xA4
+ muls r1, r0
+ movs r5, 0xA8
+ lsls r5, 1
+ adds r0, r2, r5
+ adds r2, r1, r0
+_08134DBA:
+ adds r1, r4, r3
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r2, 0x1
+ adds r3, 0x1
+ cmp r3, 0x6
+ ble _08134DBA
+_08134DC8:
+ adds r1, r4, r3
+ movs r0, 0xFF
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end get_trainer_name
+
+ thumb_func_start sub_8134DD4
+sub_8134DD4: @ 8134DD4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x28
+ movs r0, 0
+ str r0, [sp, 0x18]
+ movs r1, 0x3C
+ str r1, [sp, 0x1C]
+ add r4, sp, 0xC
+ movs r0, 0xFF
+ strb r0, [r4]
+ bl ZeroEnemyPartyMons
+ ldr r1, _08134E04
+ ldr r2, _08134E08
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x13
+ bhi _08134E0C
+ movs r3, 0x6
+ str r3, [sp, 0x14]
+ b _08134ED8
+ .align 2, 0
+_08134E04: .4byte gSaveBlock2
+_08134E08: .4byte 0x00000564
+_08134E0C:
+ cmp r0, 0x1D
+ bhi _08134E1A
+ movs r0, 0x9
+ str r0, [sp, 0x14]
+ movs r1, 0x1E
+ str r1, [sp, 0x18]
+ b _08134ED8
+_08134E1A:
+ cmp r0, 0x27
+ bhi _08134E28
+ movs r2, 0xC
+ str r2, [sp, 0x14]
+ movs r3, 0x3C
+ str r3, [sp, 0x18]
+ b _08134ED8
+_08134E28:
+ cmp r0, 0x31
+ bhi _08134E36
+ movs r0, 0xF
+ str r0, [sp, 0x14]
+ movs r1, 0x5A
+ str r1, [sp, 0x18]
+ b _08134ED8
+_08134E36:
+ cmp r0, 0x3B
+ bhi _08134E44
+ movs r2, 0x12
+ str r2, [sp, 0x14]
+ movs r3, 0x78
+ str r3, [sp, 0x18]
+ b _08134ED8
+_08134E44:
+ cmp r0, 0x45
+ bhi _08134E52
+ movs r0, 0x15
+ str r0, [sp, 0x14]
+ movs r1, 0x96
+ str r1, [sp, 0x18]
+ b _08134ED8
+_08134E52:
+ cmp r0, 0x4F
+ bhi _08134E60
+ movs r2, 0x1F
+ str r2, [sp, 0x14]
+ movs r3, 0xB4
+ str r3, [sp, 0x18]
+ b _08134ED8
+_08134E60:
+ cmp r0, 0x63
+ bhi _08134E72
+ movs r0, 0x1F
+ str r0, [sp, 0x14]
+ movs r1, 0xC8
+ str r1, [sp, 0x18]
+ movs r2, 0x64
+ str r2, [sp, 0x1C]
+ b _08134ED8
+_08134E72:
+ cmp r0, 0xC8
+ bne _08134E9C
+ movs r6, 0
+_08134E78:
+ movs r0, 0x64
+ muls r0, r6
+ ldr r1, _08134E94
+ adds r0, r1
+ movs r1, 0x2C
+ muls r1, r6
+ ldr r2, _08134E98
+ adds r1, r2
+ bl sub_803ADE8
+ adds r6, 0x1
+ cmp r6, 0x2
+ ble _08134E78
+ b _08135082
+ .align 2, 0
+_08134E94: .4byte gEnemyParty
+_08134E98: .4byte gSaveBlock2 + 0x4CC
+_08134E9C:
+ movs r6, 0
+ adds r4, r1, 0
+ ldr r3, _08134ECC
+ adds r5, r4, r3
+_08134EA4:
+ movs r0, 0x64
+ muls r0, r6
+ ldr r1, _08134ED0
+ adds r0, r1
+ ldr r2, _08134ED4
+ adds r1, r4, r2
+ ldrb r2, [r1]
+ movs r1, 0xA4
+ muls r1, r2
+ adds r1, r5
+ movs r2, 0x2C
+ muls r2, r6
+ adds r1, r2
+ bl sub_803ADE8
+ adds r6, 0x1
+ cmp r6, 0x2
+ ble _08134EA4
+ b _08135082
+ .align 2, 0
+_08134ECC: .4byte 0xffffc158
+_08134ED0: .4byte gEnemyParty
+_08134ED4: .4byte 0x00000564
+_08134ED8:
+ ldr r2, _08134EF4
+ ldr r3, _08134EF8
+ adds r0, r2, r3
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ adds r1, r2, 0
+ cmp r0, 0
+ beq _08134F00
+ ldr r0, _08134EFC
+ mov r10, r0
+ movs r2, 0x64
+ str r2, [sp, 0x10]
+ b _08134F08
+ .align 2, 0
+_08134EF4: .4byte gSaveBlock2
+_08134EF8: .4byte 0x00000554
+_08134EFC: .4byte gBattleTowerLevel100Mons
+_08134F00:
+ ldr r3, _08134F54
+ mov r10, r3
+ movs r0, 0x32
+ str r0, [sp, 0x10]
+_08134F08:
+ ldr r2, _08134F58
+ ldr r3, _08134F5C
+ adds r0, r1, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x9]
+ str r0, [sp, 0x20]
+ movs r6, 0
+_08134F1E:
+ bl Random
+ movs r1, 0xFF
+ ands r1, r0
+ ldr r2, [sp, 0x1C]
+ adds r0, r1, 0
+ muls r0, r2
+ asrs r0, 8
+ ldr r3, [sp, 0x18]
+ adds r7, r0, r3
+ ldr r0, [sp, 0x20]
+ cmp r0, 0
+ beq _08134F48
+ lsls r0, r7, 4
+ add r0, r10
+ ldrb r0, [r0, 0x3]
+ ldr r1, [sp, 0x20]
+ ands r0, r1
+ cmp r0, r1
+ beq _08134F48
+ b _0813507C
+_08134F48:
+ movs r5, 0
+ lsls r0, r7, 4
+ mov r2, r10
+ adds r3, r0, r2
+ movs r4, 0
+ b _08134F64
+ .align 2, 0
+_08134F54: .4byte gBattleTowerLevel50Mons
+_08134F58: .4byte gBattleTowerTrainers
+_08134F5C: .4byte 0x00000564
+_08134F60:
+ adds r4, 0x64
+ adds r5, 0x1
+_08134F64:
+ cmp r5, r6
+ bge _08134F7E
+ ldr r1, _08135094
+ adds r0, r4, r1
+ movs r1, 0xB
+ movs r2, 0
+ str r3, [sp, 0x24]
+ bl GetMonData
+ ldr r3, [sp, 0x24]
+ ldrh r2, [r3]
+ cmp r0, r2
+ bne _08134F60
+_08134F7E:
+ cmp r5, r6
+ bne _0813507C
+ movs r5, 0
+ cmp r5, r6
+ bge _08134FCC
+ ldr r3, _08135098
+ mov r9, r3
+ lsls r0, r7, 4
+ add r0, r10
+ mov r8, r0
+ movs r3, 0
+_08134F94:
+ ldr r0, _08135094
+ adds r4, r3, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ movs r2, 0
+ str r3, [sp, 0x24]
+ bl GetMonData
+ ldr r3, [sp, 0x24]
+ cmp r0, 0
+ beq _08134FC4
+ adds r0, r4, 0
+ movs r1, 0xC
+ movs r2, 0
+ bl GetMonData
+ mov r2, r8
+ ldrb r1, [r2, 0x2]
+ lsls r1, 1
+ add r1, r9
+ ldr r3, [sp, 0x24]
+ ldrh r1, [r1]
+ cmp r0, r1
+ beq _08134FCC
+_08134FC4:
+ adds r3, 0x64
+ adds r5, 0x1
+ cmp r5, r6
+ blt _08134F94
+_08134FCC:
+ cmp r5, r6
+ bne _0813507C
+ movs r5, 0
+ cmp r5, r6
+ bge _08134FEE
+ add r0, sp, 0x4
+ ldrh r0, [r0]
+ cmp r0, r7
+ beq _08134FEE
+ add r1, sp, 0x4
+_08134FE0:
+ adds r1, 0x2
+ adds r5, 0x1
+ cmp r5, r6
+ bge _08134FEE
+ ldrh r0, [r1]
+ cmp r0, r7
+ bne _08134FE0
+_08134FEE:
+ cmp r5, r6
+ bne _0813507C
+ lsls r0, r6, 1
+ add r0, sp
+ adds r0, 0x4
+ strh r7, [r0]
+ movs r3, 0x64
+ adds r0, r6, 0
+ muls r0, r3
+ ldr r1, _08135094
+ adds r0, r1
+ lsls r4, r7, 4
+ mov r3, r10
+ adds r2, r4, r3
+ ldrh r1, [r2]
+ ldrb r2, [r2, 0xC]
+ str r2, [sp]
+ ldr r2, [sp, 0x10]
+ ldr r3, [sp, 0x14]
+ bl CreateMonWithEVSpread
+ movs r5, 0
+ adds r0, r6, 0x1
+ mov r9, r0
+ mov r8, r4
+ movs r0, 0x64
+ adds r7, r6, 0
+ muls r7, r0
+ mov r0, r10
+ adds r0, 0x4
+ adds r4, r0
+ ldr r3, _08135094
+_0813502E:
+ ldrh r1, [r4]
+ lsls r2, r5, 24
+ lsrs r2, 24
+ adds r0, r7, r3
+ str r3, [sp, 0x24]
+ bl SetMonMoveSlot
+ ldrh r0, [r4]
+ ldr r3, [sp, 0x24]
+ cmp r0, 0xDA
+ bne _0813504A
+ movs r0, 0
+ mov r1, sp
+ strb r0, [r1, 0xC]
+_0813504A:
+ adds r4, 0x2
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _0813502E
+ movs r2, 0x64
+ adds r4, r6, 0
+ muls r4, r2
+ ldr r3, _08135094
+ adds r4, r3
+ adds r0, r4, 0
+ movs r1, 0x20
+ add r2, sp, 0xC
+ bl SetMonData
+ mov r0, r8
+ add r0, r10
+ ldrb r2, [r0, 0x2]
+ lsls r2, 1
+ ldr r0, _08135098
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+ mov r6, r9
+_0813507C:
+ cmp r6, 0x3
+ beq _08135082
+ b _08134F1E
+_08135082:
+ add sp, 0x28
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135094: .4byte gEnemyParty
+_08135098: .4byte gBattleTowerHeldItems
+ thumb_func_end sub_8134DD4
+
+ thumb_func_start sub_813509C
+sub_813509C: @ 813509C
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r2, _081350D8
+ ldrh r0, [r2]
+ ldr r1, _081350DC
+ cmp r0, r1
+ beq _081350CE
+ adds r6, r1, 0
+ adds r4, r2, 0
+_081350AE:
+ ldrh r0, [r4]
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ beq _081350C6
+ adds r5, 0x1
+_081350C6:
+ adds r4, 0x2
+ ldrh r0, [r4]
+ cmp r0, r6
+ bne _081350AE
+_081350CE:
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081350D8: .4byte gBattleTowerBanlist
+_081350DC: .4byte 0x0000ffff
+ thumb_func_end sub_813509C
+
+ thumb_func_start sub_81350E0
+sub_81350E0: @ 81350E0
+ push {r4-r6,lr}
+ adds r5, r2, 0
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 24
+ lsrs r4, r1, 24
+ adds r0, r6, 0
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ cmp r0, 0
+ beq _081351E6
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ subs r0, r4, 0x1
+ cmp r0, 0xA
+ bhi _081351B0
+ lsls r0, 2
+ ldr r1, _08135118
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08135118: .4byte _0813511C
+ .align 2, 0
+_0813511C:
+ .4byte _08135148
+ .4byte _08135178
+ .4byte _08135148
+ .4byte _081351B0
+ .4byte _08135148
+ .4byte _081351B0
+ .4byte _08135148
+ .4byte _081351B0
+ .4byte _08135148
+ .4byte _081351B0
+ .4byte _08135148
+_08135148:
+ cmp r5, r4
+ bne _08135160
+ ldr r0, _08135158
+ ldr r1, _0813515C
+ bl StringAppend
+ b _081351D8
+ .align 2, 0
+_08135158: .4byte gStringVar1
+_0813515C: .4byte gUnknown_08400E23
+_08135160:
+ cmp r5, r4
+ ble _081351D8
+ ldr r0, _08135170
+ ldr r1, _08135174
+ bl StringAppend
+ b _081351D8
+ .align 2, 0
+_08135170: .4byte gStringVar1
+_08135174: .4byte gUnknown_08400E29
+_08135178:
+ cmp r4, r5
+ bne _08135190
+ ldr r0, _08135188
+ ldr r1, _0813518C
+ bl StringAppend
+ b _08135198
+ .align 2, 0
+_08135188: .4byte gStringVar1
+_0813518C: .4byte gUnknown_08400E23
+_08135190:
+ ldr r0, _081351A4
+ ldr r1, _081351A8
+ bl StringAppend
+_08135198:
+ ldr r0, _081351A4
+ ldr r1, _081351AC
+ bl StringAppend
+ b _081351D8
+ .align 2, 0
+_081351A4: .4byte gStringVar1
+_081351A8: .4byte gUnknown_08400E29
+_081351AC: .4byte gUnknown_08400E30
+_081351B0:
+ cmp r4, r5
+ bne _081351C8
+ ldr r0, _081351C0
+ ldr r1, _081351C4
+ bl StringAppend
+ b _081351D0
+ .align 2, 0
+_081351C0: .4byte gStringVar1
+_081351C4: .4byte gUnknown_08400E23
+_081351C8:
+ ldr r0, _081351F0
+ ldr r1, _081351F4
+ bl StringAppend
+_081351D0:
+ ldr r0, _081351F0
+ ldr r1, _081351F8
+ bl StringAppend
+_081351D8:
+ ldr r0, _081351F0
+ movs r1, 0xB
+ muls r1, r6
+ ldr r2, _081351FC
+ adds r1, r2
+ bl StringAppend
+_081351E6:
+ adds r0, r4, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081351F0: .4byte gStringVar1
+_081351F4: .4byte gUnknown_08400E29
+_081351F8: .4byte gUnknown_08400E2E
+_081351FC: .4byte gSpeciesNames
+ thumb_func_end sub_81350E0
+
+ thumb_func_start sub_8135200
+sub_8135200: @ 8135200
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r2, [sp, 0x20]
+ ldr r4, [sp, 0x24]
+ mov r9, r4
+ ldr r4, [sp, 0x28]
+ mov r10, r4
+ ldr r7, [sp, 0x2C]
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r3, 24
+ lsrs r3, 24
+ mov r12, r3
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ movs r2, 0
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ beq _081352CE
+ cmp r4, 0
+ beq _081352CE
+ ldr r0, _081352DC
+ ldrh r1, [r0]
+ ldr r5, _081352E0
+ adds r3, r0, 0
+ cmp r1, r5
+ beq _08135264
+ cmp r1, r4
+ beq _08135258
+ adds r1, r3, 0
+_0813524A:
+ adds r1, 0x2
+ adds r2, 0x1
+ ldrh r0, [r1]
+ cmp r0, r5
+ beq _08135264
+ cmp r0, r4
+ bne _0813524A
+_08135258:
+ lsls r0, r2, 1
+ adds r0, r3
+ ldrh r1, [r0]
+ ldr r0, _081352E0
+ cmp r1, r0
+ bne _081352CE
+_08135264:
+ mov r0, r12
+ cmp r0, 0
+ bne _08135270
+ mov r1, r8
+ cmp r1, 0x32
+ bhi _081352CE
+_08135270:
+ movs r2, 0
+ ldrb r3, [r7]
+ cmp r2, r3
+ bge _08135290
+ mov r1, r9
+ ldrh r0, [r1]
+ cmp r0, r4
+ beq _08135290
+ adds r5, r3, 0
+_08135282:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, r5
+ bge _08135290
+ ldrh r0, [r1]
+ cmp r0, r4
+ bne _08135282
+_08135290:
+ cmp r2, r3
+ bne _081352CE
+ cmp r6, 0
+ beq _081352BA
+ movs r2, 0
+ cmp r2, r3
+ bge _081352B6
+ mov r1, r10
+ ldrh r0, [r1]
+ cmp r0, r6
+ beq _081352B6
+ adds r5, r3, 0
+_081352A8:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, r5
+ bge _081352B6
+ ldrh r0, [r1]
+ cmp r0, r6
+ bne _081352A8
+_081352B6:
+ cmp r2, r3
+ bne _081352CE
+_081352BA:
+ lsls r0, r3, 1
+ add r0, r9
+ strh r4, [r0]
+ ldrb r0, [r7]
+ lsls r0, 1
+ add r0, r10
+ strh r6, [r0]
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+_081352CE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081352DC: .4byte gBattleTowerBanlist
+_081352E0: .4byte 0x0000ffff
+ thumb_func_end sub_8135200
+
+ thumb_func_start sub_81352E4
+sub_81352E4: @ 81352E4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x2C
+ add r1, sp, 0x28
+ movs r0, 0
+ strb r0, [r1]
+ movs r7, 0
+ mov r9, r1
+ add r0, sp, 0x1C
+ mov r10, r0
+_081352FE:
+ movs r0, 0x64
+ adds r5, r7, 0
+ muls r5, r0
+ ldr r0, _081353C4
+ adds r5, r0
+ adds r0, r5, 0
+ movs r1, 0x41
+ bl GetMonData
+ mov r8, r0
+ mov r1, r8
+ lsls r1, 16
+ lsrs r1, 16
+ mov r8, r1
+ adds r0, r5, 0
+ movs r1, 0xC
+ bl GetMonData
+ adds r6, r0, 0
+ lsls r6, 16
+ lsrs r6, 16
+ adds r0, r5, 0
+ movs r1, 0x38
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl GetMonData
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ ldr r5, _081353C8
+ ldrb r3, [r5]
+ str r4, [sp]
+ add r0, sp, 0x10
+ str r0, [sp, 0x4]
+ mov r1, r10
+ str r1, [sp, 0x8]
+ mov r0, r9
+ str r0, [sp, 0xC]
+ mov r0, r8
+ adds r1, r6, 0
+ bl sub_8135200
+ adds r7, 0x1
+ cmp r7, 0x5
+ ble _081352FE
+ mov r1, r9
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bhi _08135420
+ ldr r1, _081353CC
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r1, _081353D0
+ movs r0, 0x1
+ strh r0, [r1]
+ movs r0, 0
+ mov r1, r9
+ strb r0, [r1]
+ bl sub_813509C
+ adds r6, r0, 0
+ ldr r2, _081353D4
+ ldrh r0, [r2]
+ ldr r1, _081353D8
+ cmp r0, r1
+ beq _081353A8
+ mov r5, r9
+ adds r7, r1, 0
+ adds r4, r2, 0
+_08135394:
+ ldrh r0, [r4]
+ ldrb r1, [r5]
+ adds r2, r6, 0
+ bl sub_81350E0
+ strb r0, [r5]
+ adds r4, 0x2
+ ldrh r0, [r4]
+ cmp r0, r7
+ bne _08135394
+_081353A8:
+ mov r0, r9
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _081353E4
+ ldr r4, _081353CC
+ ldr r1, _081353DC
+ adds r0, r4, 0
+ bl StringAppend
+ ldr r1, _081353E0
+ adds r0, r4, 0
+ bl StringAppend
+ b _0813543E
+ .align 2, 0
+_081353C4: .4byte gPlayerParty
+_081353C8: .4byte gScriptResult
+_081353CC: .4byte gStringVar1
+_081353D0: .4byte gUnknown_0202E8CC
+_081353D4: .4byte gBattleTowerBanlist
+_081353D8: .4byte 0x0000ffff
+_081353DC: .4byte gUnknown_08400E2C
+_081353E0: .4byte gUnknown_08400E32
+_081353E4:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08135400
+ ldr r0, _081353F8
+ ldr r1, _081353FC
+ bl StringAppend
+ b _08135408
+ .align 2, 0
+_081353F8: .4byte gStringVar1
+_081353FC: .4byte gUnknown_08400E2E
+_08135400:
+ ldr r0, _08135414
+ ldr r1, _08135418
+ bl StringAppend
+_08135408:
+ ldr r0, _08135414
+ ldr r1, _0813541C
+ bl StringAppend
+ b _0813543E
+ .align 2, 0
+_08135414: .4byte gStringVar1
+_08135418: .4byte gUnknown_08400E2C
+_0813541C: .4byte gUnknown_08400E36
+_08135420:
+ ldr r1, _08135450
+ movs r0, 0
+ strh r0, [r1]
+ ldr r2, _08135454
+ ldrb r0, [r5]
+ ldr r1, _08135458
+ adds r2, r1
+ movs r1, 0x1
+ ands r1, r0
+ ldrb r3, [r2]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+_0813543E:
+ 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
+_08135450: .4byte gUnknown_0202E8CC
+_08135454: .4byte gSaveBlock2
+_08135458: .4byte 0x00000554
+ thumb_func_end sub_81352E4
+
+ thumb_func_start sub_813545C
+sub_813545C: @ 813545C
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, _08135470
+ movs r2, 0x2
+ movs r3, 0x3
+ bl sub_80EB544
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135470: .4byte gStringVar4
+ thumb_func_end sub_813545C
+
+ thumb_func_start sub_8135474
+sub_8135474: @ 8135474
+ push {lr}
+ ldr r2, _08135490
+ ldr r0, _08135494
+ adds r1, r2, r0
+ ldrb r0, [r1]
+ cmp r0, 0xC8
+ bne _08135498
+ movs r1, 0x95
+ lsls r1, 3
+ adds r0, r2, r1
+ bl sub_813545C
+ b _081354C4
+ .align 2, 0
+_08135490: .4byte gSaveBlock2
+_08135494: .4byte 0x00000564
+_08135498:
+ cmp r0, 0x63
+ bhi _081354B4
+ ldrb r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _081354B0
+ adds r0, r1
+ bl sub_813545C
+ b _081354C4
+ .align 2, 0
+_081354B0: .4byte gBattleTowerTrainers + 0xC
+_081354B4:
+ ldrb r1, [r1]
+ movs r0, 0xA4
+ muls r0, r1
+ ldr r3, _081354C8
+ adds r1, r2, r3
+ adds r0, r1
+ bl sub_813545C
+_081354C4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081354C8: .4byte 0xffffc14c
+ thumb_func_end sub_8135474
+
+ thumb_func_start sub_81354CC
+sub_81354CC: @ 81354CC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r0, _081354E4
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ beq _081354E8
+ cmp r0, 0x1
+ ble _08135520
+ cmp r0, 0x2
+ beq _0813551C
+ b _08135520
+ .align 2, 0
+_081354E4: .4byte gUnknown_0202E8CC
+_081354E8:
+ movs r5, 0
+_081354EA:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08135514
+ adds r0, r4, r0
+ movs r1, 0xC
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1]
+ ldr r0, _08135518
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _081354EA
+ b _08135520
+ .align 2, 0
+_08135514: .4byte gSaveBlock1 + 0x238
+_08135518: .4byte gPlayerParty
+_0813551C:
+ bl sub_81360D0
+_08135520:
+ ldr r0, _08135530
+ bl SetMainCallback2
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135530: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_81354CC
+
+ thumb_func_start sub_8135534
+sub_8135534: @ 8135534
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_811AAE8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08135558
+ ldr r0, _08135560
+ ldr r1, _08135564
+ str r1, [r0, 0x8]
+ ldr r0, _08135568
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_08135558:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135560: .4byte gMain
+_08135564: .4byte sub_81354CC
+_08135568: .4byte sub_800E7C4
+ thumb_func_end sub_8135534
+
+ thumb_func_start sub_813556C
+sub_813556C: @ 813556C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r0, _08135584
+ ldrh r2, [r0]
+ cmp r2, 0x1
+ beq _081355AC
+ cmp r2, 0x1
+ bgt _08135588
+ cmp r2, 0
+ beq _0813558E
+ b _08135648
+ .align 2, 0
+_08135584: .4byte gUnknown_0202E8CC
+_08135588:
+ cmp r2, 0x2
+ beq _08135600
+ b _08135648
+_0813558E:
+ ldr r1, _081355A4
+ movs r3, 0x84
+ lsls r3, 1
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _081355A8
+ strh r2, [r0]
+ bl sub_8134DD4
+ b _081355D6
+ .align 2, 0
+_081355A4: .4byte gUnknown_020239F8
+_081355A8: .4byte word_202FF5E
+_081355AC:
+ movs r5, 0
+_081355AE:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _081355F4
+ adds r0, r4, r0
+ movs r1, 0xC
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1]
+ ldr r0, _081355F8
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl SetMonData
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _081355AE
+_081355D6:
+ ldr r0, _081355FC
+ movs r1, 0x1
+ bl CreateTask
+ movs r0, 0
+ bl current_map_music_set__default_for_battle
+ bl sub_8082138
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_811AABC
+ b _08135648
+ .align 2, 0
+_081355F4: .4byte gPlayerParty
+_081355F8: .4byte gSaveBlock1 + 0x238
+_081355FC: .4byte sub_8135534
+_08135600:
+ bl ZeroEnemyPartyMons
+ movs r5, 0
+_08135606:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08135650
+ adds r0, r1
+ movs r1, 0x2C
+ muls r1, r5
+ ldr r2, _08135654
+ adds r1, r2
+ bl sub_803ADE8
+ adds r5, 0x1
+ cmp r5, 0x2
+ ble _08135606
+ ldr r1, _08135658
+ ldr r2, _0813565C
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _08135660
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _08135664
+ movs r1, 0x1
+ bl CreateTask
+ movs r0, 0
+ bl current_map_music_set__default_for_battle
+ bl sub_8082138
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_811AABC
+_08135648:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135650: .4byte gEnemyParty
+_08135654: .4byte gSaveBlock2 + 0x4CC
+_08135658: .4byte gUnknown_020239F8
+_0813565C: .4byte 0x00000808
+_08135660: .4byte word_202FF5E
+_08135664: .4byte sub_8135534
+ thumb_func_end sub_813556C
+
+ thumb_func_start sub_8135668
+sub_8135668: @ 8135668
+ push {r4,r5,lr}
+ ldr r1, _0813568C
+ ldr r2, _08135690
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r4, r0, 31
+ ldr r0, _08135694
+ ldrh r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0xE
+ bls _08135682
+ b _0813589A
+_08135682:
+ lsls r0, 2
+ ldr r1, _08135698
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0813568C: .4byte gSaveBlock2
+_08135690: .4byte 0x00000554
+_08135694: .4byte gUnknown_0202E8CC
+_08135698: .4byte _0813569C
+ .align 2, 0
+_0813569C:
+ .4byte _081356D8
+ .4byte _08135700
+ .4byte _0813571C
+ .4byte _08135726
+ .4byte _08135740
+ .4byte _08135754
+ .4byte _08135774
+ .4byte _081357D0
+ .4byte _081357FC
+ .4byte _0813589A
+ .4byte _08135820
+ .4byte _08135834
+ .4byte _0813584C
+ .4byte _0813586C
+ .4byte _08135888
+_081356D8:
+ ldr r0, _081356F0
+ ldr r3, _081356F4
+ adds r1, r5, r3
+ adds r1, r4, r1
+ ldrb r2, [r1]
+ ldr r3, _081356F8
+ adds r0, r3
+ strb r2, [r0]
+ ldr r0, _081356FC
+ ldrh r0, [r0]
+ b _08135898
+ .align 2, 0
+_081356F0: .4byte 0x02000000
+_081356F4: .4byte 0x00000556
+_081356F8: .4byte 0x000160fb
+_081356FC: .4byte gUnknown_0202E8CE
+_08135700:
+ ldr r0, _08135714
+ ldrb r0, [r0]
+ ldr r1, _08135718
+ adds r3, r5, r1
+ movs r1, 0x1
+ ands r1, r0
+ ldrb r2, [r3]
+ movs r0, 0x2
+ negs r0, r0
+ b _08135810
+ .align 2, 0
+_08135714: .4byte gUnknown_0202E8CE
+_08135718: .4byte 0x00000554
+_0813571C:
+ lsls r1, r4, 1
+ movs r2, 0xAB
+ lsls r2, 3
+ adds r0, r5, r2
+ b _0813572C
+_08135726:
+ lsls r1, r4, 1
+ ldr r3, _08135738
+ adds r0, r5, r3
+_0813572C:
+ adds r1, r0
+ ldr r0, _0813573C
+ ldrh r0, [r0]
+ strh r0, [r1]
+ b _0813589A
+ .align 2, 0
+_08135738: .4byte 0x0000055c
+_0813573C: .4byte gUnknown_0202E8CE
+_08135740:
+ ldr r0, _0813574C
+ ldrh r1, [r0]
+ ldr r2, _08135750
+ adds r0, r5, r2
+ strb r1, [r0]
+ b _0813589A
+ .align 2, 0
+_0813574C: .4byte gUnknown_0202E8CE
+_08135750: .4byte 0x00000564
+_08135754:
+ movs r2, 0
+ ldr r4, _0813576C
+ ldr r3, _08135770
+_0813575A:
+ adds r0, r2, r4
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x2
+ ble _0813575A
+ b _0813589A
+ .align 2, 0
+_0813576C: .4byte gSaveBlock2 + 0x565
+_08135770: .4byte gUnknown_02039270
+_08135774:
+ ldr r3, _081357C0
+ adds r0, r5, r3
+ ldrb r0, [r0]
+ cmp r0, 0xC8
+ bne _08135788
+ movs r1, 0x93
+ lsls r1, 3
+ adds r0, r5, r1
+ bl sub_81360AC
+_08135788:
+ movs r3, 0xAE
+ lsls r3, 3
+ adds r2, r5, r3
+ ldrh r1, [r2]
+ ldr r0, _081357C4
+ cmp r1, r0
+ bhi _0813579A
+ adds r0, r1, 0x1
+ strh r0, [r2]
+_0813579A:
+ lsls r4, 1
+ movs r1, 0xAB
+ lsls r1, 3
+ adds r0, r5, r1
+ adds r4, r0
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ bl sub_8135A3C
+ ldr r1, _081357C8
+ ldrh r0, [r4]
+ strh r0, [r1]
+ ldr r1, _081357CC
+ adds r0, 0xA1
+ strb r0, [r1]
+ movs r0, 0xFF
+ strb r0, [r1, 0x1]
+ b _0813589A
+ .align 2, 0
+_081357C0: .4byte 0x00000564
+_081357C4: .4byte 0x0000270e
+_081357C8: .4byte gScriptResult
+_081357CC: .4byte gStringVar1
+_081357D0:
+ lsls r0, r4, 1
+ ldr r2, _081357F0
+ adds r1, r5, r2
+ adds r4, r0, r1
+ ldrh r1, [r4]
+ ldr r0, _081357F4
+ cmp r1, r0
+ bhi _081357E4
+ adds r0, r1, 0x1
+ strh r0, [r4]
+_081357E4:
+ bl sub_8135A3C
+ ldr r1, _081357F8
+ ldrh r0, [r4]
+ strh r0, [r1]
+ b _0813589A
+ .align 2, 0
+_081357F0: .4byte 0x0000055c
+_081357F4: .4byte 0x00000595
+_081357F8: .4byte gScriptResult
+_081357FC:
+ ldr r0, _08135818
+ ldrb r0, [r0]
+ ldr r1, _0813581C
+ adds r3, r5, r1
+ movs r1, 0x1
+ ands r1, r0
+ lsls r1, 1
+ ldrb r2, [r3]
+ movs r0, 0x3
+ negs r0, r0
+_08135810:
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ b _0813589A
+ .align 2, 0
+_08135818: .4byte gUnknown_0202E8CE
+_0813581C: .4byte 0x00000554
+_08135820:
+ ldr r2, _08135830
+ adds r0, r5, r2
+ ldrh r1, [r0]
+ movs r0, 0x20
+ bl sav12_xor_set
+ b _0813589A
+ .align 2, 0
+_08135830: .4byte 0x00000572
+_08135834:
+ ldr r3, _08135848
+ adds r0, r5, r3
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ beq _0813589A
+ adds r0, r4, 0
+ bl sub_813461C
+ b _0813589A
+ .align 2, 0
+_08135848: .4byte 0x00000556
+_0813584C:
+ ldr r1, _08135860
+ adds r0, r5, r1
+ adds r0, r4, r0
+ ldr r1, _08135864
+ ldr r2, _08135868
+ adds r1, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _0813589A
+ .align 2, 0
+_08135860: .4byte 0x00000556
+_08135864: .4byte 0x02000000
+_08135868: .4byte 0x000160fb
+_0813586C:
+ adds r0, r4, 0
+ bl sub_8135D3C
+ ldr r1, _08135880
+ lsls r2, r4, 1
+ ldr r3, _08135884
+ adds r1, r3
+ adds r2, r1
+ strh r0, [r2]
+ b _0813589A
+ .align 2, 0
+_08135880: .4byte gSaveBlock2
+_08135884: .4byte 0x00000574
+_08135888:
+ ldr r1, _081358A0
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r0, 31
+ movs r2, 0xAF
+ lsls r2, 3
+ adds r1, r5, r2
+_08135898:
+ strb r0, [r1]
+_0813589A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081358A0: .4byte 0x00000554
+ thumb_func_end sub_8135668
+
+ thumb_func_start sub_81358A4
+sub_81358A4: @ 81358A4
+ push {r4,lr}
+ ldr r1, _081358C8
+ ldr r2, _081358CC
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r4, r0, 31
+ ldr r0, _081358D0
+ ldrh r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0xE
+ bls _081358BE
+ b _08135A0A
+_081358BE:
+ lsls r0, 2
+ ldr r1, _081358D4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081358C8: .4byte gSaveBlock2
+_081358CC: .4byte 0x00000554
+_081358D0: .4byte gUnknown_0202E8CC
+_081358D4: .4byte _081358D8
+ .align 2, 0
+_081358D8:
+ .4byte _08135914
+ .4byte _08135928
+ .4byte _0813593C
+ .4byte _0813594C
+ .4byte _08135964
+ .4byte _08135A0A
+ .4byte _08135A0A
+ .4byte _08135A0A
+ .4byte _08135978
+ .4byte _08135990
+ .4byte _081359A0
+ .4byte _081359B4
+ .4byte _081359BC
+ .4byte _081359DC
+ .4byte _081359F8
+_08135914:
+ ldr r0, _08135920
+ ldr r2, _08135924
+ adds r1, r3, r2
+ adds r1, r4, r1
+ b _0813596A
+ .align 2, 0
+_08135920: .4byte gScriptResult
+_08135924: .4byte 0x00000556
+_08135928:
+ ldr r1, _08135934
+ ldr r4, _08135938
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r0, 31
+ b _08135982
+ .align 2, 0
+_08135934: .4byte gScriptResult
+_08135938: .4byte 0x00000554
+_0813593C:
+ ldr r2, _08135948
+ lsls r0, r4, 1
+ movs r4, 0xAB
+ lsls r4, 3
+ b _08135952
+ .align 2, 0
+_08135948: .4byte gScriptResult
+_0813594C:
+ ldr r2, _0813595C
+ lsls r0, r4, 1
+ ldr r4, _08135960
+_08135952:
+ adds r1, r3, r4
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ b _08135A0A
+ .align 2, 0
+_0813595C: .4byte gScriptResult
+_08135960: .4byte 0x0000055c
+_08135964:
+ ldr r0, _08135970
+ ldr r2, _08135974
+ adds r1, r3, r2
+_0813596A:
+ ldrb r1, [r1]
+ strh r1, [r0]
+ b _08135A0A
+ .align 2, 0
+_08135970: .4byte gScriptResult
+_08135974: .4byte 0x00000564
+_08135978:
+ ldr r1, _08135988
+ ldr r4, _0813598C
+ adds r0, r3, r4
+ ldrb r0, [r0]
+ lsls r0, 30
+_08135982:
+ lsrs r0, 31
+ strh r0, [r1]
+ b _08135A0A
+ .align 2, 0
+_08135988: .4byte gScriptResult
+_0813598C: .4byte 0x00000554
+_08135990:
+ adds r0, r4, 0
+ bl sub_8135D3C
+ ldr r1, _0813599C
+ strh r0, [r1]
+ b _08135A0A
+ .align 2, 0
+_0813599C: .4byte gScriptResult
+_081359A0:
+ ldr r1, _081359B0
+ adds r0, r3, r1
+ ldrh r1, [r0]
+ movs r0, 0x20
+ bl sav12_xor_set
+ b _08135A0A
+ .align 2, 0
+_081359B0: .4byte 0x00000572
+_081359B4:
+ adds r0, r4, 0
+ bl sub_813461C
+ b _08135A0A
+_081359BC:
+ ldr r2, _081359D0
+ adds r0, r3, r2
+ adds r0, r4, r0
+ ldr r1, _081359D4
+ ldr r3, _081359D8
+ adds r1, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ b _08135A0A
+ .align 2, 0
+_081359D0: .4byte 0x00000556
+_081359D4: .4byte 0x02000000
+_081359D8: .4byte 0x000160fb
+_081359DC:
+ adds r0, r4, 0
+ bl sub_8135D3C
+ ldr r1, _081359F0
+ lsls r2, r4, 1
+ ldr r4, _081359F4
+ adds r1, r4
+ adds r2, r1
+ strh r0, [r2]
+ b _08135A0A
+ .align 2, 0
+_081359F0: .4byte gSaveBlock2
+_081359F4: .4byte 0x00000574
+_081359F8:
+ ldr r1, _08135A10
+ adds r0, r3, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r0, 31
+ movs r2, 0xAF
+ lsls r2, 3
+ adds r1, r3, r2
+ strb r0, [r1]
+_08135A0A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135A10: .4byte 0x00000554
+ thumb_func_end sub_81358A4
+
+ thumb_func_start sub_8135A14
+sub_8135A14: @ 8135A14
+ push {r4,lr}
+ movs r2, 0
+ ldr r4, _08135A34
+ ldr r3, _08135A38
+_08135A1C:
+ adds r0, r2, r4
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x2
+ ble _08135A1C
+ bl sub_80C5604
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135A34: .4byte gUnknown_02039270
+_08135A38: .4byte gSaveBlock2 + 0x565
+ thumb_func_end sub_8135A14
+
+ thumb_func_start sub_8135A3C
+sub_8135A3C: @ 8135A3C
+ push {r4-r6,lr}
+ ldr r6, _08135A84
+ ldr r1, _08135A88
+ adds r0, r6, r1
+ ldrb r4, [r0]
+ lsls r4, 31
+ lsrs r4, 31
+ adds r0, r4, 0
+ bl sub_8135D3C
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r4, 1
+ movs r3, 0xAC
+ lsls r3, 3
+ adds r2, r6, r3
+ adds r4, r2
+ ldrh r0, [r4]
+ cmp r0, r5
+ bcs _08135A66
+ strh r5, [r4]
+_08135A66:
+ ldr r0, _08135A8C
+ adds r1, r6, r0
+ ldrh r0, [r2]
+ ldrh r3, [r1]
+ cmp r0, r3
+ bls _08135A94
+ adds r5, r0, 0
+ movs r0, 0x20
+ adds r1, r5, 0
+ bl sav12_xor_set
+ ldr r1, _08135A90
+ cmp r5, r1
+ bhi _08135AA4
+ b _08135AB4
+ .align 2, 0
+_08135A84: .4byte gSaveBlock2
+_08135A88: .4byte 0x00000554
+_08135A8C: .4byte 0x00000562
+_08135A90: .4byte 0x0000270f
+_08135A94:
+ ldrh r5, [r1]
+ movs r0, 0x20
+ adds r1, r5, 0
+ bl sav12_xor_set
+ ldr r1, _08135AAC
+ cmp r5, r1
+ bls _08135AB4
+_08135AA4:
+ ldr r2, _08135AB0
+ adds r0, r6, r2
+ strh r1, [r0]
+ b _08135ABA
+ .align 2, 0
+_08135AAC: .4byte 0x0000270f
+_08135AB0: .4byte 0x00000572
+_08135AB4:
+ ldr r3, _08135AC0
+ adds r0, r6, r3
+ strh r5, [r0]
+_08135ABA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135AC0: .4byte 0x00000572
+ thumb_func_end sub_8135A3C
+
+ thumb_func_start sub_8135AC4
+sub_8135AC4: @ 8135AC4
+ push {r4-r6,lr}
+ ldr r5, _08135AF0
+ adds r2, r5, 0
+ subs r2, 0xA8
+ ldr r1, _08135AF4
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r6, r0, 31
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ beq _08135AFC
+ ldr r4, _08135AF8
+ ldrb r0, [r2, 0xA]
+ ldrb r1, [r2, 0xB]
+ adds r0, r1
+ ldrb r1, [r2, 0xC]
+ adds r0, r1
+ ldrb r1, [r2, 0xD]
+ adds r0, r1
+ movs r1, 0x14
+ b _08135B0E
+ .align 2, 0
+_08135AF0: .4byte gSaveBlock2 + 0xA8
+_08135AF4: .4byte 0x000004ac
+_08135AF8: .4byte gUnknown_08405E7E
+_08135AFC:
+ ldr r4, _08135B84
+ ldrb r0, [r2, 0xA]
+ ldrb r1, [r2, 0xB]
+ adds r0, r1
+ ldrb r1, [r2, 0xC]
+ adds r0, r1
+ ldrb r1, [r2, 0xD]
+ adds r0, r1
+ movs r1, 0x1E
+_08135B0E:
+ bl __umodsi3
+ adds r0, r4
+ ldrb r0, [r0]
+ strb r6, [r5]
+ strb r0, [r5, 0x1]
+ adds r0, r5, 0
+ adds r0, 0xC
+ ldr r4, _08135B88
+ adds r1, r4, 0
+ bl sub_8052D10
+ adds r0, r5, 0x4
+ subs r4, 0xA
+ adds r1, r4, 0
+ bl StringCopy8
+ adds r0, r6, 0
+ bl sub_8135D3C
+ strh r0, [r5, 0x2]
+ ldr r0, _08135B8C
+ ldr r1, _08135B90
+ adds r2, r0, r1
+ adds r1, r5, 0
+ adds r1, 0x10
+ movs r4, 0x5
+_08135B44:
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ adds r1, 0x2
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08135B44
+ movs r4, 0
+ ldr r6, _08135B94
+_08135B56:
+ adds r0, r4, r6
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08135B98
+ adds r0, r1
+ movs r1, 0x2C
+ muls r1, r4
+ adds r1, 0x1C
+ adds r1, r5, r1
+ bl sub_803AF78
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _08135B56
+ ldr r0, _08135B9C
+ bl sub_8135CC4
+ bl sub_8135A3C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135B84: .4byte gUnknown_08405E60
+_08135B88: .4byte gSaveBlock2 + 0xA
+_08135B8C: .4byte gSaveBlock1
+_08135B90: .4byte 0x00002b28
+_08135B94: .4byte gSaveBlock2 + 0x565
+_08135B98: .4byte gUnknown_030042FC
+_08135B9C: .4byte gSaveBlock2 + 0xA8
+ thumb_func_end sub_8135AC4
+
+ thumb_func_start sub_8135BA0
+sub_8135BA0: @ 8135BA0
+ push {r4,r5,lr}
+ ldr r2, _08135C1C
+ ldr r1, _08135C20
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r5, r0, 31
+ ldr r0, _08135C24
+ ldrh r0, [r0]
+ cmp r0, 0x3
+ beq _08135BBA
+ cmp r0, 0
+ bne _08135BD8
+_08135BBA:
+ lsls r1, r5, 1
+ ldr r3, _08135C28
+ adds r0, r2, r3
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bhi _08135BD4
+ subs r3, 0x4
+ adds r0, r2, r3
+ adds r0, r1, r0
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bls _08135BD8
+_08135BD4:
+ bl sub_8135AC4
+_08135BD8:
+ bl sub_8135CFC
+ ldr r4, _08135C1C
+ ldr r0, _08135C2C
+ ldrb r1, [r0]
+ ldr r2, _08135C30
+ adds r0, r4, r2
+ strb r1, [r0]
+ ldr r0, _08135C24
+ ldrh r1, [r0]
+ cmp r1, 0x3
+ beq _08135BF8
+ ldr r3, _08135C34
+ adds r0, r4, r3
+ adds r0, r5, r0
+ strb r1, [r0]
+_08135BF8:
+ movs r0, 0x80
+ lsls r0, 7
+ movs r1, 0
+ bl VarSet
+ ldr r0, _08135C20
+ adds r2, r4, r0
+ ldrb r0, [r2]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0x2
+ bl sub_8125D44
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135C1C: .4byte gSaveBlock2
+_08135C20: .4byte 0x00000554
+_08135C24: .4byte gUnknown_0202E8CC
+_08135C28: .4byte 0x0000055c
+_08135C2C: .4byte gUnknown_02024D26
+_08135C30: .4byte 0x00000555
+_08135C34: .4byte 0x00000556
+ thumb_func_end sub_8135BA0
+
+ thumb_func_start sub_8135C38
+sub_8135C38: @ 8135C38
+ push {lr}
+ bl DoSoftReset
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8135C38
+
+ thumb_func_start sub_8135C44
+sub_8135C44: @ 8135C44
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r3, 0
+ movs r1, 0
+ ldr r2, _08135CBC
+_08135C50:
+ ldm r2!, {r0}
+ adds r3, r0
+ adds r1, 0x1
+ cmp r1, 0x27
+ bls _08135C50
+ ldr r5, _08135CC0
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r5, r1
+ ldr r0, [r0]
+ cmp r0, r3
+ beq _08135C70
+ adds r0, r5, 0
+ adds r0, 0xA8
+ bl sub_8135CE8
+_08135C70:
+ movs r4, 0
+ movs r7, 0xA4
+ movs r0, 0xA6
+ lsls r0, 1
+ adds r6, r5, r0
+ mov r8, r5
+_08135C7C:
+ adds r0, r4, 0
+ muls r0, r7
+ movs r3, 0
+ movs r1, 0
+ adds r5, r4, 0x1
+ adds r2, r0, r6
+_08135C88:
+ ldm r2!, {r0}
+ adds r3, r0
+ adds r1, 0x1
+ cmp r1, 0x27
+ bls _08135C88
+ adds r1, r4, 0
+ muls r1, r7
+ movs r0, 0xF6
+ lsls r0, 1
+ add r0, r8
+ adds r0, r1, r0
+ ldr r0, [r0]
+ cmp r0, r3
+ beq _08135CAA
+ adds r0, r1, r6
+ bl sub_8135CE8
+_08135CAA:
+ adds r4, r5, 0
+ cmp r4, 0x4
+ ble _08135C7C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135CBC: .4byte gSaveBlock2 + 0xA8
+_08135CC0: .4byte gSaveBlock2
+ thumb_func_end sub_8135C44
+
+ thumb_func_start sub_8135CC4
+sub_8135CC4: @ 8135CC4
+ push {r4,lr}
+ adds r2, r0, 0
+ adds r2, 0xA0
+ movs r1, 0
+ str r1, [r2]
+ movs r3, 0
+ adds r4, r0, 0
+_08135CD2:
+ ldr r0, [r2]
+ ldm r4!, {r1}
+ adds r0, r1
+ str r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x27
+ bls _08135CD2
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8135CC4
+
+ thumb_func_start sub_8135CE8
+sub_8135CE8: @ 8135CE8
+ push {lr}
+ movs r1, 0
+ movs r2, 0
+_08135CEE:
+ stm r0!, {r2}
+ adds r1, 0x1
+ cmp r1, 0x28
+ bls _08135CEE
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8135CE8
+
+ thumb_func_start sub_8135CFC
+sub_8135CFC: @ 8135CFC
+ push {r4,lr}
+ ldr r4, _08135D34
+ adds r0, r4, 0
+ bl get_trainer_name
+ ldr r2, _08135D38
+ adds r0, r2, 0
+ adds r0, 0x58
+ ldrh r1, [r0]
+ subs r0, r4, 0x2
+ strh r1, [r0]
+ ldrh r1, [r2]
+ subs r0, r4, 0x4
+ strh r1, [r0]
+ movs r3, 0
+ adds r4, 0x8
+ adds r2, 0x30
+_08135D1E:
+ adds r0, r3, r4
+ adds r1, r3, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r3, 0x1
+ cmp r3, 0x9
+ ble _08135D1E
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135D34: .4byte gSaveBlock2 + 0x484
+_08135D38: .4byte gBattleMons
+ thumb_func_end sub_8135CFC
+
+ thumb_func_start sub_8135D3C
+sub_8135D3C: @ 8135D3C
+ push {lr}
+ lsls r0, 24
+ ldr r3, _08135D74
+ lsrs r0, 23
+ ldr r2, _08135D78
+ adds r1, r3, r2
+ adds r1, r0, r1
+ ldrh r2, [r1]
+ subs r2, 0x1
+ lsls r1, r2, 3
+ subs r1, r2
+ movs r2, 0xAB
+ lsls r2, 3
+ adds r3, r2
+ adds r0, r3
+ ldr r2, _08135D7C
+ adds r1, r2
+ ldrh r0, [r0]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r0, r1, 16
+ ldr r1, _08135D80
+ cmp r0, r1
+ bls _08135D6E
+ adds r0, r1, 0
+_08135D6E:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08135D74: .4byte gSaveBlock2
+_08135D78: .4byte 0x0000055c
+_08135D7C: .4byte 0x0000ffff
+_08135D80: .4byte 0x0000270f
+ thumb_func_end sub_8135D3C
+
+ thumb_func_start sub_8135D84
+sub_8135D84: @ 8135D84
+ push {r4,r5,lr}
+ ldr r5, _08135DB0
+ ldr r1, _08135DB4
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r0, 31
+ lsls r0, 1
+ ldr r2, _08135DB8
+ adds r1, r5, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ subs r0, 0x1
+ cmp r0, 0x5
+ ble _08135DC0
+ bl Random
+ ldr r4, _08135DBC
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x9
+ b _08135DCC
+ .align 2, 0
+_08135DB0: .4byte gSaveBlock2
+_08135DB4: .4byte 0x00000554
+_08135DB8: .4byte 0x0000055c
+_08135DBC: .4byte gUnknown_08405EE6
+_08135DC0:
+ bl Random
+ ldr r4, _08135DE8
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x6
+_08135DCC:
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r0, 15
+ adds r0, r4
+ ldrh r1, [r0]
+ movs r2, 0xAD
+ lsls r2, 3
+ adds r0, r5, r2
+ strh r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135DE8: .4byte gUnknown_08405EDA
+ thumb_func_end sub_8135D84
+
+ thumb_func_start sub_8135DEC
+sub_8135DEC: @ 8135DEC
+ push {r4-r7,lr}
+ ldr r5, _08135E20
+ ldr r1, _08135E24
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r7, r0, 31
+ movs r0, 0xAD
+ lsls r0, 3
+ adds r6, r5, r0
+ ldrh r0, [r6]
+ movs r1, 0x1
+ bl sub_80A9424
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x1
+ bne _08135E30
+ ldrh r0, [r6]
+ ldr r1, _08135E28
+ bl itemid_copy_name
+ ldr r0, _08135E2C
+ strh r4, [r0]
+ b _08135E40
+ .align 2, 0
+_08135E20: .4byte gSaveBlock2
+_08135E24: .4byte 0x00000554
+_08135E28: .4byte gStringVar1
+_08135E2C: .4byte gScriptResult
+_08135E30:
+ ldr r1, _08135E48
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _08135E4C
+ adds r0, r5, r1
+ adds r0, r7, r0
+ movs r1, 0x6
+ strb r1, [r0]
+_08135E40:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135E48: .4byte gScriptResult
+_08135E4C: .4byte 0x00000556
+ thumb_func_end sub_8135DEC
+
+ thumb_func_start sub_8135E50
+sub_8135E50: @ 8135E50
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r6, _08135ED4
+ ldr r1, _08135ED8
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ lsls r0, 31
+ lsrs r0, 31
+ adds r1, r0, 0
+ movs r7, 0x44
+ cmp r1, 0
+ beq _08135E6C
+ movs r7, 0x45
+_08135E6C:
+ ldr r4, _08135EDC
+ movs r0, 0
+ strh r0, [r4]
+ adds r0, r1, 0
+ bl sub_8135D3C
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x37
+ bls _08135EBA
+ movs r5, 0
+ ldr r0, _08135EE0
+ adds r0, r6
+ mov r8, r0
+ adds r6, r4, 0
+_08135E8A:
+ mov r1, r8
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ subs r0, 0x1
+ movs r1, 0x64
+ muls r1, r0
+ ldr r0, _08135EE4
+ adds r4, r1, r0
+ adds r0, r4, 0
+ adds r1, r7, 0
+ bl GetMonData
+ cmp r0, 0
+ bne _08135EB4
+ movs r0, 0x1
+ strh r0, [r6]
+ adds r0, r4, 0
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl SetMonData
+_08135EB4:
+ adds r5, 0x1
+ cmp r5, 0x2
+ ble _08135E8A
+_08135EBA:
+ ldr r0, _08135EDC
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08135EC8
+ movs r0, 0x2A
+ bl sav12_xor_increment
+_08135EC8:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135ED4: .4byte gSaveBlock2
+_08135ED8: .4byte 0x00000554
+_08135EDC: .4byte gScriptResult
+_08135EE0: .4byte 0x00000565
+_08135EE4: .4byte gPlayerParty
+ thumb_func_end sub_8135E50
+
+ thumb_func_start unref_sub_8135EE8
+unref_sub_8135EE8: @ 8135EE8
+ push {r4-r7,lr}
+ ldr r7, _08135F0C
+ ldr r0, _08135F10
+ adds r2, r7, r0
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ beq _08135F18
+ ldr r4, _08135F14
+ ldrb r0, [r2, 0xA]
+ ldrb r1, [r2, 0xB]
+ adds r0, r1
+ ldrb r1, [r2, 0xC]
+ adds r0, r1
+ ldrb r1, [r2, 0xD]
+ adds r0, r1
+ movs r1, 0x14
+ b _08135F2A
+ .align 2, 0
+_08135F0C: .4byte gSaveBlock2 + 0x498
+_08135F10: .4byte 0xfffffb68
+_08135F14: .4byte gUnknown_08405E7E
+_08135F18:
+ ldr r4, _08135FA8
+ ldrb r0, [r2, 0xA]
+ ldrb r1, [r2, 0xB]
+ adds r0, r1
+ ldrb r1, [r2, 0xC]
+ adds r0, r1
+ ldrb r1, [r2, 0xD]
+ adds r0, r1
+ movs r1, 0x1E
+_08135F2A:
+ bl __umodsi3
+ adds r0, r4
+ ldrb r0, [r0]
+ strb r0, [r7, 0x1]
+ adds r0, r7, 0
+ adds r0, 0xC
+ ldr r4, _08135FAC
+ adds r1, r4, 0
+ bl sub_8052D10
+ adds r0, r7, 0x4
+ subs r4, 0xA
+ adds r1, r4, 0
+ bl StringCopy8
+ movs r0, 0x1
+ strh r0, [r7, 0x2]
+ movs r5, 0x7
+ movs r4, 0
+ ldr r0, _08135FB0
+ ldr r1, _08135FB4
+ adds r6, r0, r1
+ adds r3, r7, 0
+ adds r3, 0x10
+ adds r2, r7, 0
+ adds r2, 0x28
+ adds r1, r7, 0
+ adds r1, 0x1C
+_08135F64:
+ ldrh r0, [r6]
+ strh r0, [r3]
+ strh r5, [r1]
+ adds r0, r5, 0x6
+ strh r0, [r2]
+ adds r5, 0x1
+ adds r6, 0x2
+ adds r3, 0x2
+ adds r2, 0x2
+ adds r1, 0x2
+ adds r4, 0x1
+ cmp r4, 0x5
+ ble _08135F64
+ movs r4, 0
+_08135F80:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _08135FB8
+ adds r0, r1
+ movs r1, 0x2C
+ muls r1, r4
+ adds r1, 0x34
+ adds r1, r7, r1
+ bl sub_803AF78
+ adds r4, 0x1
+ cmp r4, 0x2
+ ble _08135F80
+ adds r0, r7, 0
+ bl sub_8136088
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08135FA8: .4byte gUnknown_08405E60
+_08135FAC: .4byte gSaveBlock2 + 0xA
+_08135FB0: .4byte gSaveBlock1
+_08135FB4: .4byte 0x00002b28
+_08135FB8: .4byte gPlayerParty
+ thumb_func_end unref_sub_8135EE8
+
+ thumb_func_start sub_8135FBC
+sub_8135FBC: @ 8135FBC
+ ldr r1, _08135FCC
+ ldr r0, _08135FD0
+ ldr r2, _08135FD4
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_08135FCC: .4byte gTrainerClassToPicIndex
+_08135FD0: .4byte gSaveBlock2
+_08135FD4: .4byte 0x00000499
+ thumb_func_end sub_8135FBC
+
+ thumb_func_start sub_8135FD8
+sub_8135FD8: @ 8135FD8
+ ldr r1, _08135FE8
+ ldr r0, _08135FEC
+ ldr r2, _08135FF0
+ adds r0, r2
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_08135FE8: .4byte gTrainerClassToNameIndex
+_08135FEC: .4byte gSaveBlock2
+_08135FF0: .4byte 0x00000499
+ thumb_func_end sub_8135FD8
+
+ thumb_func_start sub_8135FF4
+sub_8135FF4: @ 8135FF4
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r2, 0
+ ldr r4, _08136018
+_08135FFC:
+ adds r0, r3, r2
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x6
+ ble _08135FFC
+ adds r1, r3, r2
+ movs r0, 0xFF
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136018: .4byte gSaveBlock2 + 0x49C
+ thumb_func_end sub_8135FF4
+
+ thumb_func_start sub_813601C
+sub_813601C: @ 813601C
+ push {r4,r5,lr}
+ ldr r1, _08136044
+ movs r0, 0
+ strh r0, [r1]
+ ldr r5, _08136048
+ movs r3, 0
+ movs r2, 0
+ adds r4, r1, 0
+ adds r1, r5, 0
+_0813602E:
+ ldm r1!, {r0}
+ orrs r3, r0
+ adds r2, 0x1
+ cmp r2, 0x2D
+ bls _0813602E
+ cmp r3, 0
+ bne _0813604C
+ movs r0, 0x1
+ strh r0, [r4]
+ b _08136078
+ .align 2, 0
+_08136044: .4byte gScriptResult
+_08136048: .4byte gSaveBlock2 + 0x498
+_0813604C:
+ movs r3, 0
+ movs r2, 0
+ ldr r4, _08136080
+ adds r1, r5, 0
+_08136054:
+ ldm r1!, {r0}
+ adds r3, r0
+ adds r2, 0x1
+ cmp r2, 0x2D
+ bls _08136054
+ movs r1, 0xAA
+ lsls r1, 3
+ adds r0, r4, r1
+ ldr r0, [r0]
+ cmp r0, r3
+ beq _08136078
+ subs r1, 0xB8
+ adds r0, r4, r1
+ bl sub_81360AC
+ ldr r1, _08136084
+ movs r0, 0x1
+ strh r0, [r1]
+_08136078:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136080: .4byte gSaveBlock2
+_08136084: .4byte gScriptResult
+ thumb_func_end sub_813601C
+
+ thumb_func_start sub_8136088
+sub_8136088: @ 8136088
+ push {r4,lr}
+ adds r2, r0, 0
+ adds r2, 0xB8
+ movs r1, 0
+ str r1, [r2]
+ movs r3, 0
+ adds r4, r0, 0
+_08136096:
+ ldr r0, [r2]
+ ldm r4!, {r1}
+ adds r0, r1
+ str r0, [r2]
+ adds r3, 0x1
+ cmp r3, 0x2D
+ bls _08136096
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8136088
+
+ thumb_func_start sub_81360AC
+sub_81360AC: @ 81360AC
+ push {lr}
+ movs r1, 0
+ movs r2, 0
+_081360B2:
+ stm r0!, {r2}
+ adds r1, 0x1
+ cmp r1, 0x2E
+ bls _081360B2
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81360AC
+
+ thumb_func_start sub_81360C0
+sub_81360C0: @ 81360C0
+ push {lr}
+ ldr r0, _081360CC
+ bl sub_813545C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081360CC: .4byte gSaveBlock2 + 0x4A8
+ thumb_func_end sub_81360C0
+
+ thumb_func_start sub_81360D0
+sub_81360D0: @ 81360D0
+ push {lr}
+ ldr r0, _081360E4
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bne _081360EC
+ ldr r1, _081360E8
+ movs r0, 0xFF
+ strb r0, [r1]
+ b _08136102
+ .align 2, 0
+_081360E4: .4byte gUnknown_02024D26
+_081360E8: .4byte gStringVar4
+_081360EC:
+ cmp r0, 0x1
+ bne _081360FC
+ ldr r0, _081360F8
+ bl sub_813545C
+ b _08136102
+ .align 2, 0
+_081360F8: .4byte gSaveBlock2 + 0x4C0
+_081360FC:
+ ldr r0, _08136108
+ bl sub_813545C
+_08136102:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136108: .4byte gSaveBlock2 + 0x4B4
+ thumb_func_end sub_81360D0
+
+ thumb_func_start sub_813610C
+sub_813610C: @ 813610C
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _0813612C
+_08136112:
+ adds r0, r4, r5
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0813611E
+ bl sub_80BFD20
+_0813611E:
+ adds r4, 0x1
+ cmp r4, 0x1
+ ble _08136112
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813612C: .4byte gSaveBlock2 + 0x556
+ thumb_func_end sub_813610C
+
+ thumb_func_start sub_8136130
+sub_8136130: @ 8136130
+ push {r4,r5,lr}
+ ldr r4, _0813615C
+ ldr r2, _08136160
+ ldr r3, [r2]
+ ldr r5, _08136164
+ adds r2, r3, r5
+ str r2, [r4]
+ str r0, [r2, 0x8]
+ str r1, [r2, 0x4]
+ ldr r0, _08136168
+ adds r3, r0
+ movs r0, 0x2
+ strb r0, [r3]
+ ldr r0, _0813616C
+ bl launch_c3_walk_stairs_and_run_once
+ ldr r0, _08136170
+ bl SetMainCallback2
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813615C: .4byte gUnknown_02039304
+_08136160: .4byte gUnknown_083DFEC4
+_08136164: .4byte 0x0000d164
+_08136168: .4byte 0x0000d162
+_0813616C: .4byte sub_8136294
+_08136170: .4byte sub_8136244
+ thumb_func_end sub_8136130
+
+ thumb_func_start sub_8136174
+sub_8136174: @ 8136174
+ push {r4,r5,lr}
+ ldr r5, _081361C4
+ ldr r1, [r5]
+ ldr r0, _081361C8
+ ldr r0, [r0]
+ str r0, [r1, 0x8]
+ ldr r0, _081361CC
+ ldr r0, [r0]
+ str r0, [r1, 0x4]
+ ldr r4, _081361D0
+ ldrb r0, [r4]
+ bl sub_81370E4
+ strb r0, [r4]
+ ldr r5, [r5]
+ movs r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _0813619E
+ movs r1, 0x1
+_0813619E:
+ adds r0, r5, 0
+ adds r0, 0x56
+ strb r1, [r0]
+ ldr r0, _081361D4
+ ldr r0, [r0]
+ ldr r1, _081361D8
+ adds r0, r1
+ movs r1, 0x2
+ strb r1, [r0]
+ ldr r0, _081361DC
+ bl launch_c3_walk_stairs_and_run_once
+ ldr r0, _081361E0
+ bl SetMainCallback2
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081361C4: .4byte gUnknown_02039304
+_081361C8: .4byte gUnknown_0203930C
+_081361CC: .4byte gUnknown_02039308
+_081361D0: .4byte gUnknown_02039310
+_081361D4: .4byte gUnknown_083DFEC4
+_081361D8: .4byte 0x0000d162
+_081361DC: .4byte sub_8136294
+_081361E0: .4byte sub_81361E4
+ thumb_func_end sub_8136174
+
+ thumb_func_start sub_81361E4
+sub_81361E4: @ 81361E4
+ push {r4,lr}
+ ldr r4, _08136220
+ ldr r0, [r4]
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ ldr r4, [r4]
+ ldr r1, [r4]
+ ldr r0, _08136224
+ cmp r1, r0
+ bne _0813621A
+ movs r0, 0x80
+ lsls r0, 19
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, r4, 0
+ adds r0, 0x50
+ strb r1, [r0]
+ ldr r0, _08136228
+ bl SetMainCallback2
+_0813621A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136220: .4byte gUnknown_02039304
+_08136224: .4byte sub_81365C8
+_08136228: .4byte sub_813622C
+ thumb_func_end sub_81361E4
+
+ thumb_func_start sub_813622C
+sub_813622C: @ 813622C
+ push {lr}
+ bl sub_81368A4
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813622C
+
+ thumb_func_start sub_8136244
+sub_8136244: @ 8136244
+ push {lr}
+ ldr r0, _08136260
+ ldr r0, [r0]
+ ldr r0, [r0]
+ bl _call_via_r0
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136260: .4byte gUnknown_02039304
+ thumb_func_end sub_8136244
+
+ thumb_func_start sub_8136264
+sub_8136264: @ 8136264
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ movs r0, 0x6
+ bl sub_80F5CDC
+ bl sub_8089668
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8136264
+
+ thumb_func_start launch_c3_walk_stairs_and_run_once
+launch_c3_walk_stairs_and_run_once: @ 8136280
+ ldr r1, _08136290
+ ldr r1, [r1]
+ str r0, [r1]
+ adds r1, 0x50
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_08136290: .4byte gUnknown_02039304
+ thumb_func_end launch_c3_walk_stairs_and_run_once
+
+ thumb_func_start sub_8136294
+sub_8136294: @ 8136294
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r1, _081362B4
+ ldr r0, [r1]
+ adds r0, 0x50
+ ldrb r0, [r0]
+ adds r3, r1, 0
+ cmp r0, 0x16
+ bls _081362A8
+ b _0813657A
+_081362A8:
+ lsls r0, 2
+ ldr r1, _081362B8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081362B4: .4byte gUnknown_02039304
+_081362B8: .4byte _081362BC
+ .align 2, 0
+_081362BC:
+ .4byte _08136318
+ .4byte _08136354
+ .4byte _0813635E
+ .4byte _08136366
+ .4byte _08136374
+ .4byte _08136380
+ .4byte _0813638C
+ .4byte _081363B8
+ .4byte _081363C8
+ .4byte _081363DC
+ .4byte _081363EE
+ .4byte _08136404
+ .4byte _08136448
+ .4byte _08136464
+ .4byte _08136488
+ .4byte _08136494
+ .4byte _0813649A
+ .4byte _081364D8
+ .4byte _081364FC
+ .4byte _08136508
+ .4byte _08136520
+ .4byte _08136538
+ .4byte _0813656C
+_08136318:
+ bl is_c1_link_related_active
+ ldr r1, _08136344
+ ldr r1, [r1]
+ ldr r2, _08136348
+ adds r1, r2
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ beq _08136330
+ b _0813657A
+_08136330:
+ ldr r4, _0813634C
+ ldr r0, [r4]
+ adds r0, 0x55
+ strb r1, [r0]
+ ldr r0, _08136350
+ bl launch_c3_walk_stairs_and_run_once
+ ldr r1, [r4]
+ b _08136528
+ .align 2, 0
+_08136344: .4byte gUnknown_083DFEC4
+_08136348: .4byte 0x00006dac
+_0813634C: .4byte gUnknown_02039304
+_08136350: .4byte sub_81365A0
+_08136354:
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ b _08136524
+_0813635E:
+ movs r0, 0
+ bl SetVBlankCallback
+ b _08136524
+_08136366:
+ ldr r0, _08136370
+ bl SetUpWindowConfig
+ b _08136524
+ .align 2, 0
+_08136370: .4byte gWindowConfig_81E7080
+_08136374:
+ ldr r0, _0813637C
+ bl MultistepInitMenuWindowBegin
+ b _08136524
+ .align 2, 0
+_0813637C: .4byte gWindowConfig_81E7080
+_08136380:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ bne _0813638A
+ b _0813657A
+_0813638A:
+ b _08136524
+_0813638C:
+ ldr r0, _081363AC
+ ldr r1, [r0]
+ ldr r4, _081363B0
+ adds r0, r1, r4
+ movs r2, 0
+ strb r2, [r0]
+ ldr r4, _081363B4
+ adds r0, r1, r4
+ str r2, [r0]
+ movs r0, 0xC3
+ lsls r0, 2
+ adds r1, r0
+ movs r0, 0x20
+ strh r0, [r1]
+ ldr r1, [r3]
+ b _08136528
+ .align 2, 0
+_081363AC: .4byte gUnknown_083DFEC4
+_081363B0: .4byte 0x000076aa
+_081363B4: .4byte 0x000087e0
+_081363B8:
+ bl sub_80F2688
+ ldr r0, _081363D8
+ ldr r1, [r0]
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_081363C8:
+ bl sub_80F26BC
+ lsls r0, 24
+ cmp r0, 0
+ beq _081363D4
+ b _0813657A
+_081363D4:
+ b _08136524
+ .align 2, 0
+_081363D8: .4byte gUnknown_02039304
+_081363DC:
+ movs r0, 0x1
+ bl sub_80F2C80
+ ldr r0, _08136400
+ ldr r1, [r0]
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_081363EE:
+ movs r0, 0x1
+ bl sub_80F2CBC
+ lsls r0, 24
+ cmp r0, 0
+ beq _081363FC
+ b _0813657A
+_081363FC:
+ b _08136524
+ .align 2, 0
+_08136400: .4byte gUnknown_02039304
+_08136404:
+ ldr r1, _08136434
+ movs r0, 0x14
+ strh r0, [r1]
+ bl CalculatePlayerPartyCount
+ ldr r1, _08136438
+ ldr r4, [r1]
+ ldr r2, _0813643C
+ adds r1, r4, r2
+ movs r5, 0
+ strb r0, [r1]
+ ldr r1, _08136440
+ adds r0, r4, r1
+ strb r5, [r0]
+ subs r2, 0xC0
+ adds r0, r4, r2
+ str r5, [r0]
+ bl sub_80F4BD0
+ ldr r0, _08136444
+ adds r4, r0
+ strh r5, [r4]
+ b _08136524
+ .align 2, 0
+_08136434: .4byte gKeyRepeatStartDelay
+_08136438: .4byte gUnknown_083DFEC4
+_0813643C: .4byte 0x00008828
+_08136440: .4byte 0x00009344
+_08136444: .4byte 0x0000d160
+_08136448:
+ bl sub_80F1778
+ lsls r0, 24
+ cmp r0, 0
+ beq _08136454
+ b _0813657A
+_08136454:
+ ldr r0, _08136460
+ movs r1, 0x6
+ strh r1, [r0]
+ adds r0, 0x4
+ strh r1, [r0]
+ b _08136524
+ .align 2, 0
+_08136460: .4byte REG_BG2VOFS
+_08136464:
+ movs r0, 0
+ bl sub_80F2E18
+ ldr r0, _0813647C
+ ldr r0, [r0]
+ ldr r1, _08136480
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, _08136484
+ strh r0, [r1, 0x26]
+ b _08136524
+ .align 2, 0
+_0813647C: .4byte gUnknown_083DFEC4
+_08136480: .4byte 0x00008768
+_08136484: .4byte 0x0000ffd8
+_08136488:
+ bl sub_80F170C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813657A
+ b _08136524
+_08136494:
+ bl sub_80F33A8
+ b _08136524
+_0813649A:
+ ldr r1, _081364C4
+ movs r2, 0
+ str r2, [sp]
+ ldr r0, _081364C8
+ mov r4, sp
+ str r4, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _081364CC
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r0, _081364D0
+ strh r2, [r0]
+ subs r0, 0x2
+ strh r2, [r0]
+ ldr r1, _081364D4
+ movs r2, 0xF8
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, [r3]
+ b _08136528
+ .align 2, 0
+_081364C4: .4byte 0x0600f800
+_081364C8: .4byte 0x040000d4
+_081364CC: .4byte 0x85000200
+_081364D0: .4byte REG_BG1VOFS
+_081364D4: .4byte REG_BG1CNT
+_081364D8:
+ ldr r0, _081364F0
+ ldr r1, [r0]
+ ldr r4, _081364F4
+ adds r0, r1, r4
+ ldr r2, _081364F8
+ adds r1, r2
+ bl sub_80F567C
+ bl sub_80F5B38
+ b _08136524
+ .align 2, 0
+_081364F0: .4byte gUnknown_083DFEC4
+_081364F4: .4byte 0x00008ff0
+_081364F8: .4byte 0x00009004
+_081364FC:
+ bl sub_80F5B50
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813657A
+ b _08136524
+_08136508:
+ ldr r0, _08136518
+ ldr r0, [r0]
+ ldr r4, _0813651C
+ adds r0, r4
+ bl sub_80F556C
+ b _08136524
+ .align 2, 0
+_08136518: .4byte gUnknown_083DFEC4
+_0813651C: .4byte 0x00009004
+_08136520:
+ bl sub_80F1934
+_08136524:
+ ldr r0, _08136534
+ ldr r1, [r0]
+_08136528:
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0813657A
+ .align 2, 0
+_08136534: .4byte gUnknown_02039304
+_08136538:
+ ldr r1, _08136584
+ movs r0, 0xF0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x9B
+ strh r0, [r1]
+ ldr r0, _08136588
+ ldr r2, _0813658C
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r1, _08136590
+ ldr r4, _08136594
+ adds r0, r4, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x1B
+ strh r0, [r1]
+ subs r1, 0x38
+ movs r0, 0x28
+ strh r0, [r1]
+ subs r1, 0x12
+ ldr r2, _08136598
+ adds r0, r2, 0
+ strh r0, [r1]
+_0813656C:
+ ldr r0, [r3]
+ adds r0, 0x55
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _0813659C
+ bl launch_c3_walk_stairs_and_run_once
+_0813657A:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136584: .4byte REG_WIN0H
+_08136588: .4byte REG_WIN0V
+_0813658C: .4byte 0x00003273
+_08136590: .4byte REG_WININ
+_08136594: .4byte 0x00003f3f
+_08136598: .4byte 0x00007f40
+_0813659C: .4byte sub_81365C8
+ thumb_func_end sub_8136294
+
+ thumb_func_start sub_81365A0
+sub_81365A0: @ 81365A0
+ push {r4,lr}
+ ldr r1, _081365C4
+ ldr r0, [r1]
+ adds r0, 0x55
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081365BE
+ adds r4, r1, 0
+_081365B0:
+ bl sub_8136294
+ ldr r0, [r4]
+ adds r0, 0x55
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081365B0
+_081365BE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081365C4: .4byte gUnknown_02039304
+ thumb_func_end sub_81365A0
+
+ thumb_func_start sub_81365C8
+sub_81365C8: @ 81365C8
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _081365E0
+ ldr r0, [r4]
+ adds r0, 0x50
+ ldrb r1, [r0]
+ cmp r1, 0
+ beq _081365E4
+ cmp r1, 0x1
+ beq _0813660C
+ b _08136626
+ .align 2, 0
+_081365E0: .4byte gUnknown_02039304
+_081365E4:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _08136608
+ bl SetVBlankCallback
+ ldr r1, [r4]
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08136626
+ .align 2, 0
+_08136608: .4byte sub_8136264
+_0813660C:
+ ldr r0, _08136630
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08136626
+ bl sub_80F3C94
+ bl sub_80F3D00
+ ldr r0, _08136634
+ bl launch_c3_walk_stairs_and_run_once
+_08136626:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136630: .4byte gPaletteFade
+_08136634: .4byte sub_8136638
+ thumb_func_end sub_81365C8
+
+ thumb_func_start sub_8136638
+sub_8136638: @ 8136638
+ push {r4,lr}
+ ldr r0, _08136654
+ ldr r0, [r0]
+ adds r0, 0x50
+ ldrb r0, [r0]
+ cmp r0, 0x7
+ bls _08136648
+ b _081367FA
+_08136648:
+ lsls r0, 2
+ ldr r1, _08136658
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08136654: .4byte gUnknown_02039304
+_08136658: .4byte _0813665C
+ .align 2, 0
+_0813665C:
+ .4byte _0813667C
+ .4byte _08136748
+ .4byte _08136754
+ .4byte _08136774
+ .4byte _081367FA
+ .4byte _08136780
+ .4byte _08136798
+ .4byte _081367E0
+_0813667C:
+ ldr r2, _081366A4
+ ldrh r1, [r2, 0x2C]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _081366AC
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl sub_80F5060
+ bl move_anim_execute
+ ldr r0, _081366A8
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x1
+ b _081367F8
+ .align 2, 0
+_081366A4: .4byte gMain
+_081366A8: .4byte gUnknown_02039304
+_081366AC:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _081366D4
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl sub_80F5060
+ bl move_anim_execute
+ ldr r0, _081366D0
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x1
+ b _081367F8
+ .align 2, 0
+_081366D0: .4byte gUnknown_02039304
+_081366D4:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081366F4
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _081366F0
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x3
+ b _081367F8
+ .align 2, 0
+_081366F0: .4byte gUnknown_02039304
+_081366F4:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _081366FE
+ b _081367FA
+_081366FE:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08136728
+ ldr r0, [r0]
+ ldr r2, _0813672C
+ adds r1, r0, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ ldr r2, _08136730
+ adds r0, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ subs r0, 0x1
+ cmp r1, r0
+ bne _08136738
+ ldr r0, _08136734
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x3
+ b _081367F8
+ .align 2, 0
+_08136728: .4byte gUnknown_083DFEC4
+_0813672C: .4byte 0x000087dc
+_08136730: .4byte 0x000087da
+_08136734: .4byte gUnknown_02039304
+_08136738:
+ ldr r0, _08136744
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x5
+ b _081367F8
+ .align 2, 0
+_08136744: .4byte gUnknown_02039304
+_08136748:
+ bl gpu_sync_bg_show
+ lsls r0, 24
+ cmp r0, 0
+ bne _081367FA
+ b _08136784
+_08136754:
+ bl sub_8055870
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _081367FA
+ bl sub_80F1934
+ bl sub_80F3D00
+ ldr r0, _08136770
+ ldr r0, [r0]
+ adds r0, 0x50
+ strb r4, [r0]
+ b _081367FA
+ .align 2, 0
+_08136770: .4byte gUnknown_02039304
+_08136774:
+ ldr r0, _0813677C
+ bl launch_c3_walk_stairs_and_run_once
+ b _081367FA
+ .align 2, 0
+_0813677C: .4byte sub_8136B44
+_08136780:
+ bl sub_8136BB8
+_08136784:
+ ldr r0, _08136794
+ ldr r1, [r0]
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _081367FA
+ .align 2, 0
+_08136794: .4byte gUnknown_02039304
+_08136798:
+ bl sub_8136C40
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _081367B8
+ cmp r1, 0
+ bgt _081367B2
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _081367F0
+ b _081367FA
+_081367B2:
+ cmp r1, 0x1
+ bne _081367FA
+ b _081367F0
+_081367B8:
+ bl sub_8137058
+ lsls r0, 24
+ cmp r0, 0
+ beq _081367D4
+ bl sub_8136D60
+ ldr r0, _081367D0
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0x7
+ b _081367F8
+ .align 2, 0
+_081367D0: .4byte gUnknown_02039304
+_081367D4:
+ ldr r0, _081367DC
+ bl launch_c3_walk_stairs_and_run_once
+ b _081367FA
+ .align 2, 0
+_081367DC: .4byte sub_8136808
+_081367E0:
+ ldr r0, _08136800
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _081367FA
+ bl sub_8136D8C
+_081367F0:
+ ldr r0, _08136804
+ ldr r0, [r0]
+ adds r0, 0x50
+ movs r1, 0
+_081367F8:
+ strb r1, [r0]
+_081367FA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136800: .4byte gMain
+_08136804: .4byte gUnknown_02039304
+ thumb_func_end sub_8136638
+
+ thumb_func_start sub_8136808
+sub_8136808: @ 8136808
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r5, _08136820
+ ldr r0, [r5]
+ adds r0, 0x50
+ ldrb r4, [r0]
+ cmp r4, 0
+ beq _08136824
+ cmp r4, 0x1
+ beq _08136874
+ b _0813688C
+ .align 2, 0
+_08136820: .4byte gUnknown_02039304
+_08136824:
+ ldr r0, _08136860
+ ldr r0, [r0]
+ ldr r1, _08136864
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_81370A4
+ ldr r1, _08136868
+ strb r0, [r1]
+ ldr r1, _0813686C
+ ldr r2, [r5]
+ ldr r0, [r2, 0x4]
+ str r0, [r1]
+ ldr r1, _08136870
+ ldr r0, [r2, 0x8]
+ str r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, [r5]
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0813688C
+ .align 2, 0
+_08136860: .4byte gUnknown_083DFEC4
+_08136864: .4byte 0x000087dc
+_08136868: .4byte gUnknown_02039310
+_0813686C: .4byte gUnknown_02039308
+_08136870: .4byte gUnknown_0203930C
+_08136874:
+ ldr r0, _08136894
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0813688C
+ ldr r0, _08136898
+ ldr r1, _0813689C
+ str r1, [r0, 0x8]
+ ldr r0, _081368A0
+ bl SetMainCallback2
+_0813688C:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136894: .4byte gPaletteFade
+_08136898: .4byte gMain
+_0813689C: .4byte sub_8136174
+_081368A0: .4byte sub_8147ADC
+ thumb_func_end sub_8136808
+
+ thumb_func_start sub_81368A4
+sub_81368A4: @ 81368A4
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _081368C4
+ ldr r0, [r1]
+ adds r0, 0x50
+ ldrb r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x6
+ bls _081368B8
+ b _081369B8
+_081368B8:
+ lsls r0, 2
+ ldr r1, _081368C8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081368C4: .4byte gUnknown_02039304
+_081368C8: .4byte _081368CC
+ .align 2, 0
+_081368CC:
+ .4byte _081368E8
+ .4byte _08136922
+ .4byte _0813692E
+ .4byte _0813694C
+ .4byte _0813695A
+ .4byte _0813696C
+ .4byte _08136998
+_081368E8:
+ ldr r0, _0813690C
+ ldr r0, [r0]
+ ldr r1, _08136910
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldr r0, _08136914
+ ldrb r0, [r0]
+ cmp r1, r0
+ beq _08136918
+ ldr r0, [r4]
+ adds r0, 0x56
+ ldrb r0, [r0]
+ bl sub_80F5060
+ ldr r1, [r4]
+ b _08136986
+ .align 2, 0
+_0813690C: .4byte gUnknown_083DFEC4
+_08136910: .4byte 0x000087dc
+_08136914: .4byte gUnknown_02039310
+_08136918:
+ ldr r0, [r4]
+ adds r0, 0x50
+ movs r1, 0x3
+ strb r1, [r0]
+ b _081369B8
+_08136922:
+ bl gpu_sync_bg_show
+ lsls r0, 24
+ cmp r0, 0
+ bne _081369B8
+ b _08136982
+_0813692E:
+ bl sub_8055870
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _081369B8
+ bl sub_80F1934
+ ldr r0, _08136948
+ ldr r0, [r0]
+ adds r0, 0x50
+ strb r4, [r0]
+ b _081369B8
+ .align 2, 0
+_08136948: .4byte gUnknown_02039304
+_0813694C:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ b _08136982
+_0813695A:
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r2, _08136968
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, [r4]
+ b _08136986
+ .align 2, 0
+_08136968: .4byte 0x00007f40
+_0813696C:
+ ldr r0, _08136990
+ bl SetVBlankCallback
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+_08136982:
+ ldr r0, _08136994
+ ldr r1, [r0]
+_08136986:
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _081369B8
+ .align 2, 0
+_08136990: .4byte sub_8136264
+_08136994: .4byte gUnknown_02039304
+_08136998:
+ ldr r0, _081369C0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081369B8
+ bl sub_80F3C94
+ bl sub_80F3D00
+ ldr r0, _081369C4
+ bl launch_c3_walk_stairs_and_run_once
+ ldr r0, _081369C8
+ bl SetMainCallback2
+_081369B8:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081369C0: .4byte gPaletteFade
+_081369C4: .4byte sub_81369CC
+_081369C8: .4byte sub_8136244
+ thumb_func_end sub_81368A4
+
+ thumb_func_start sub_81369CC
+sub_81369CC: @ 81369CC
+ push {r4-r6,lr}
+ ldr r1, _081369E8
+ ldr r0, [r1]
+ adds r0, 0x50
+ ldrb r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x5
+ bls _081369DE
+ b _08136B32
+_081369DE:
+ lsls r0, 2
+ ldr r1, _081369EC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081369E8: .4byte gUnknown_02039304
+_081369EC: .4byte _081369F0
+ .align 2, 0
+_081369F0:
+ .4byte _08136A08
+ .4byte _08136A48
+ .4byte _08136A5C
+ .4byte _08136AAC
+ .4byte _08136AEC
+ .4byte _08136B0E
+_08136A08:
+ ldr r3, [r4]
+ ldr r2, _08136A38
+ str r2, [r3, 0xC]
+ ldr r0, _08136A3C
+ ldr r1, [r0]
+ ldr r5, _08136A40
+ adds r0, r1, r5
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, _08136A44
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 27
+ lsrs r0, 27
+ movs r1, 0x64
+ muls r0, r1
+ adds r0, r2
+ str r0, [r3, 0xC]
+ bl move_anim_execute
+ b _08136B02
+ .align 2, 0
+_08136A38: .4byte gPlayerParty
+_08136A3C: .4byte gUnknown_083DFEC4
+_08136A40: .4byte 0x000087dc
+_08136A44: .4byte 0x0000893e
+_08136A48:
+ ldr r0, _08136A58
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08136B32
+ b _08136B02
+ .align 2, 0
+_08136A58: .4byte gMain
+_08136A5C:
+ bl sub_8136EF0
+ ldr r6, _08136A98
+ ldr r0, [r6]
+ adds r0, 0x5C
+ ldr r1, _08136A9C
+ ldr r4, [r1]
+ ldr r1, _08136AA0
+ adds r5, r4, r1
+ adds r1, r5, 0
+ bl sub_80F567C
+ ldr r1, _08136AA4
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsb r1, [r0, r1]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08136AA8
+ adds r0, r1
+ adds r4, r0
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80F5550
+ bl sub_8137138
+ ldr r1, [r6]
+ b _08136B04
+ .align 2, 0
+_08136A98: .4byte gUnknown_02039304
+_08136A9C: .4byte gUnknown_083DFEC4
+_08136AA0: .4byte 0x00009040
+_08136AA4: .4byte 0x00008fe9
+_08136AA8: .4byte 0x00009004
+_08136AAC:
+ bl sub_80F555C
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08136B32
+ ldr r0, _08136AE0
+ ldr r0, [r0]
+ ldr r5, _08136AE4
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_81370A4
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80F7224
+ bl sub_80F3D00
+ ldr r1, _08136AE8
+ ldr r0, [r1]
+ adds r0, 0x52
+ strb r4, [r0]
+ ldr r1, [r1]
+ b _08136B04
+ .align 2, 0
+_08136AE0: .4byte gUnknown_083DFEC4
+_08136AE4: .4byte 0x000087dc
+_08136AE8: .4byte gUnknown_02039304
+_08136AEC:
+ ldr r1, [r4]
+ adds r1, 0x52
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x10
+ bls _08136B32
+ bl sub_8136C6C
+_08136B02:
+ ldr r1, [r4]
+_08136B04:
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08136B32
+_08136B0E:
+ ldr r0, _08136B38
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08136B32
+ bl sub_8136D00
+ lsls r0, 24
+ cmp r0, 0
+ bne _08136B32
+ ldr r0, _08136B3C
+ ldrb r0, [r0]
+ bl sub_810CA6C
+ ldr r0, _08136B40
+ bl launch_c3_walk_stairs_and_run_once
+_08136B32:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136B38: .4byte gMain
+_08136B3C: .4byte word_203855E
+_08136B40: .4byte sub_8136B44
+ thumb_func_end sub_81369CC
+
+ thumb_func_start sub_8136B44
+sub_8136B44: @ 8136B44
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r4, _08136B60
+ ldr r0, [r4]
+ adds r2, r0, 0
+ adds r2, 0x50
+ ldrb r1, [r2]
+ cmp r1, 0x1
+ beq _08136B80
+ cmp r1, 0x1
+ bgt _08136B64
+ cmp r1, 0
+ beq _08136B6E
+ b _08136BAE
+ .align 2, 0
+_08136B60: .4byte gUnknown_02039304
+_08136B64:
+ cmp r1, 0x2
+ beq _08136B98
+ cmp r1, 0x3
+ beq _08136BA8
+ b _08136BAE
+_08136B6E:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _08136B9C
+_08136B80:
+ ldr r0, _08136B94
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08136BAE
+ movs r0, 0x2
+ strb r0, [r2]
+ b _08136BAE
+ .align 2, 0
+_08136B94: .4byte gPaletteFade
+_08136B98:
+ bl sub_80F5BDC
+_08136B9C:
+ ldr r1, [r4]
+ adds r1, 0x50
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08136BAE
+_08136BA8:
+ ldr r0, [r0, 0x4]
+ bl SetMainCallback2
+_08136BAE:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8136B44
+
+ thumb_func_start sub_8136BB8
+sub_8136BB8: @ 8136BB8
+ push {r4,lr}
+ ldr r0, _08136C28
+ ldr r0, [r0]
+ ldr r1, _08136C2C
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_81370A4
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _08136C30
+ adds r0, r1
+ ldr r4, _08136C34
+ ldr r2, [r4]
+ adds r2, 0x10
+ movs r1, 0x2
+ bl GetMonData
+ ldr r0, [r4]
+ adds r0, 0x10
+ bl StringGetEnd10
+ ldr r0, [r4]
+ adds r0, 0x10
+ ldr r1, _08136C38
+ bl StringAppend
+ ldr r0, _08136C3C
+ bl BasicInitMenuWindow
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, [r4]
+ adds r0, 0x10
+ movs r1, 0x1
+ movs r2, 0x11
+ bl MenuPrint
+ movs r0, 0x17
+ movs r1, 0xA
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ movs r0, 0
+ bl MoveMenuCursor
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136C28: .4byte gUnknown_083DFEC4
+_08136C2C: .4byte 0x000087dc
+_08136C30: .4byte gPlayerParty
+_08136C34: .4byte gUnknown_02039304
+_08136C38: .4byte gOtherText_GetsAPokeBlock
+_08136C3C: .4byte gWindowConfig_81E709C
+ thumb_func_end sub_8136BB8
+
+ thumb_func_start sub_8136C40
+sub_8136C40: @ 8136C40
+ push {r4,lr}
+ bl ProcessMenuInputNoWrap
+ lsls r0, 24
+ asrs r4, r0, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r0, 24
+ cmp r0, 0x2
+ bhi _08136C60
+ bl MenuZeroFillScreen
+ ldr r0, _08136C68
+ bl BasicInitMenuWindow
+_08136C60:
+ adds r0, r4, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08136C68: .4byte gWindowConfig_81E7080
+ thumb_func_end sub_8136C40
+
+ thumb_func_start sub_8136C6C
+sub_8136C6C: @ 8136C6C
+ push {lr}
+ ldr r0, _08136C8C
+ bl BasicInitMenuWindow
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r3, _08136C90
+ ldr r0, [r3]
+ adds r0, 0x53
+ movs r1, 0
+ b _08136C9C
+ .align 2, 0
+_08136C8C: .4byte gWindowConfig_81E709C
+_08136C90: .4byte gUnknown_02039304
+_08136C94:
+ ldr r0, [r3]
+ adds r0, 0x53
+ ldrb r1, [r0]
+ adds r1, 0x1
+_08136C9C:
+ strb r1, [r0]
+ ldr r2, [r3]
+ adds r1, r2, 0
+ adds r1, 0x53
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ bhi _08136CDC
+ adds r0, r2, 0
+ adds r0, 0x61
+ ldrb r1, [r1]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08136C94
+ ldr r0, _08136CD8
+ ldr r2, [r0]
+ adds r1, r2, 0
+ adds r1, 0x53
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ bhi _08136CDC
+ adds r0, r2, 0
+ adds r0, 0x10
+ ldrb r1, [r1]
+ adds r2, 0x61
+ adds r2, r1
+ ldrb r2, [r2]
+ bl sub_8136DC0
+ b _08136CEE
+ .align 2, 0
+_08136CD8: .4byte gUnknown_02039304
+_08136CDC:
+ ldr r0, _08136CFC
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0x10
+ adds r1, 0x53
+ ldrb r1, [r1]
+ movs r2, 0
+ bl sub_8136DC0
+_08136CEE:
+ ldr r0, _08136CFC
+ ldr r0, [r0]
+ adds r0, 0x10
+ bl sub_8136DA0
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136CFC: .4byte gUnknown_02039304
+ thumb_func_end sub_8136C6C
+
+ thumb_func_start sub_8136D00
+sub_8136D00: @ 8136D00
+ push {r4,r5,lr}
+ ldr r4, _08136D30
+ adds r3, r4, 0
+ movs r5, 0x5
+_08136D08:
+ ldr r0, [r3]
+ adds r0, 0x53
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ ldr r2, [r3]
+ adds r1, r2, 0
+ adds r1, 0x53
+ ldrb r0, [r1]
+ cmp r0, 0x4
+ bhi _08136D34
+ adds r0, r2, 0
+ adds r0, 0x61
+ ldrb r1, [r1]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08136D3A
+ b _08136D08
+ .align 2, 0
+_08136D30: .4byte gUnknown_02039304
+_08136D34:
+ strb r5, [r1]
+ movs r0, 0
+ b _08136D5A
+_08136D3A:
+ ldr r2, [r4]
+ adds r0, r2, 0
+ adds r0, 0x10
+ adds r1, r2, 0
+ adds r1, 0x53
+ ldrb r1, [r1]
+ adds r2, 0x61
+ adds r2, r1
+ ldrb r2, [r2]
+ bl sub_8136DC0
+ ldr r0, [r4]
+ adds r0, 0x10
+ bl sub_8136DA0
+ movs r0, 0x1
+_08136D5A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8136D00
+
+ thumb_func_start sub_8136D60
+sub_8136D60: @ 8136D60
+ push {lr}
+ ldr r0, _08136D84
+ bl BasicInitMenuWindow
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08136D88
+ movs r1, 0x1
+ movs r2, 0x11
+ bl MenuPrint
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136D84: .4byte gWindowConfig_81E709C
+_08136D88: .4byte gOtherText_WontEat
+ thumb_func_end sub_8136D60
+
+ thumb_func_start sub_8136D8C
+sub_8136D8C: @ 8136D8C
+ push {lr}
+ bl MenuZeroFillScreen
+ ldr r0, _08136D9C
+ bl BasicInitMenuWindow
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136D9C: .4byte gWindowConfig_81E7080
+ thumb_func_end sub_8136D8C
+
+ thumb_func_start sub_8136DA0
+sub_8136DA0: @ 8136DA0
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0x11
+ bl MenuPrint
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8136DA0
+
+ thumb_func_start sub_8136DC0
+sub_8136DC0: @ 8136DC0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r3, r1, 24
+ lsls r2, 16
+ lsrs r0, r2, 16
+ asrs r2, 16
+ cmp r2, 0
+ beq _08136DFC
+ cmp r2, 0
+ ble _08136DD8
+ movs r0, 0
+_08136DD8:
+ lsls r0, 16
+ ldr r1, _08136DF4
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl StringCopy
+ ldr r1, _08136DF8
+ adds r0, r4, 0
+ bl StringAppend
+ b _08136E04
+ .align 2, 0
+_08136DF4: .4byte gUnknown_08406134
+_08136DF8: .4byte gOtherText_WasEnhanced
+_08136DFC:
+ ldr r1, _08136E0C
+ adds r0, r4, 0
+ bl StringCopy
+_08136E04:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136E0C: .4byte gOtherText_NothingChanged
+ thumb_func_end sub_8136DC0
+
+ thumb_func_start sub_8136E10
+sub_8136E10: @ 8136E10
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r5, r1, 0
+ movs r4, 0
+ ldr r7, _08136E3C
+_08136E1A:
+ lsls r0, r4, 2
+ adds r0, r7
+ ldr r1, [r0]
+ adds r0, r6, 0
+ bl GetMonData
+ adds r1, r5, r4
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _08136E1A
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136E3C: .4byte gUnknown_08406118
+ thumb_func_end sub_8136E10
+
+ thumb_func_start sub_8136E40
+sub_8136E40: @ 8136E40
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ mov r8, r0
+ adds r5, r1, 0
+ adds r0, r5, 0
+ movs r1, 0x30
+ bl GetMonData
+ cmp r0, 0xFF
+ beq _08136EDC
+ mov r0, r8
+ adds r1, r5, 0
+ bl sub_8136F74
+ movs r4, 0
+ mov r7, sp
+_08136E64:
+ ldr r1, _08136EE8
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r6, [r0]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ strb r0, [r7]
+ ldr r1, _08136EEC
+ ldr r1, [r1]
+ lsls r2, r4, 1
+ adds r1, 0x66
+ adds r1, r2
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r0, 0
+ bge _08136E92
+ movs r1, 0
+_08136E92:
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _08136E9C
+ movs r1, 0xFF
+_08136E9C:
+ strb r1, [r7]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ mov r2, sp
+ bl SetMonData
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _08136E64
+ adds r0, r5, 0
+ movs r1, 0x30
+ bl GetMonData
+ lsls r0, 24
+ lsrs r0, 24
+ mov r2, r8
+ ldrb r2, [r2, 0x6]
+ adds r1, r0, r2
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _08136ECE
+ movs r1, 0xFF
+_08136ECE:
+ mov r0, sp
+ strb r1, [r0]
+ adds r0, r5, 0
+ movs r1, 0x30
+ mov r2, sp
+ bl SetMonData
+_08136EDC:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136EE8: .4byte gUnknown_08406118
+_08136EEC: .4byte gUnknown_02039304
+ thumb_func_end sub_8136E40
+
+ thumb_func_start sub_8136EF0
+sub_8136EF0: @ 8136EF0
+ push {r4,r5,lr}
+ ldr r5, _08136F60
+ ldr r0, _08136F64
+ ldr r1, [r0]
+ ldr r2, _08136F68
+ adds r0, r1, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, _08136F6C
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 27
+ lsrs r0, 27
+ movs r1, 0x64
+ muls r0, r1
+ adds r5, r0, r5
+ ldr r4, _08136F70
+ ldr r1, [r4]
+ adds r1, 0x57
+ adds r0, r5, 0
+ bl sub_8136E10
+ ldr r0, [r4]
+ ldr r0, [r0, 0x8]
+ adds r1, r5, 0
+ bl sub_8136E40
+ ldr r1, [r4]
+ adds r1, 0x5C
+ adds r0, r5, 0
+ bl sub_8136E10
+ movs r3, 0
+_08136F36:
+ ldr r0, [r4]
+ adds r2, r0, 0
+ adds r2, 0x61
+ adds r2, r3
+ adds r1, r0, 0
+ adds r1, 0x5C
+ adds r1, r3
+ adds r0, 0x57
+ adds r0, r3
+ ldrb r1, [r1]
+ ldrb r0, [r0]
+ subs r1, r0
+ strb r1, [r2]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x4
+ bls _08136F36
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08136F60: .4byte gPlayerParty
+_08136F64: .4byte gUnknown_083DFEC4
+_08136F68: .4byte 0x000087dc
+_08136F6C: .4byte 0x0000893e
+_08136F70: .4byte gUnknown_02039304
+ thumb_func_end sub_8136EF0
+
+ thumb_func_start sub_8136F74
+sub_8136F74: @ 8136F74
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r10, r1
+ ldr r1, _08136FBC
+ ldr r3, [r1]
+ ldrb r1, [r0, 0x1]
+ adds r2, r3, 0
+ adds r2, 0x66
+ strh r1, [r2]
+ ldrb r2, [r0, 0x5]
+ adds r1, r3, 0
+ adds r1, 0x68
+ strh r2, [r1]
+ ldrb r1, [r0, 0x4]
+ adds r2, r3, 0
+ adds r2, 0x6A
+ strh r1, [r2]
+ ldrb r2, [r0, 0x3]
+ adds r1, r3, 0
+ adds r1, 0x6C
+ strh r2, [r1]
+ ldrb r1, [r0, 0x2]
+ adds r0, r3, 0
+ adds r0, 0x6E
+ strh r1, [r0]
+ ldr r0, _08136FC0
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ ble _08136FC4
+ movs r0, 0x1
+ b _08136FCA
+ .align 2, 0
+_08136FBC: .4byte gUnknown_02039304
+_08136FC0: .4byte gUnknown_02039312
+_08136FC4:
+ cmp r0, 0
+ bge _08137040
+ movs r0, 0xFF
+_08136FCA:
+ movs r2, 0
+ lsls r0, 24
+ mov r9, r0
+ ldr r0, _08137050
+ mov r8, r0
+_08136FD4:
+ mov r0, r8
+ ldr r1, [r0]
+ lsls r0, r2, 24
+ asrs r6, r0, 24
+ lsls r7, r6, 1
+ adds r1, 0x66
+ adds r1, r7
+ movs r2, 0
+ ldrsh r4, [r1, r2]
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __divsi3
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ ble _0813700C
+ lsls r0, r5, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r5, r0, 24
+_0813700C:
+ ldr r0, _08137054
+ adds r0, r6, r0
+ ldrb r1, [r0]
+ mov r0, r10
+ bl sub_8040A54
+ lsls r0, 24
+ asrs r2, r0, 24
+ cmp r0, r9
+ bne _08137034
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, 0x66
+ adds r0, r7
+ lsls r1, r5, 24
+ asrs r1, 24
+ muls r1, r2
+ ldrh r2, [r0]
+ adds r1, r2
+ strh r1, [r0]
+_08137034:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ asrs r0, 24
+ cmp r0, 0x4
+ ble _08136FD4
+_08137040:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08137050: .4byte gUnknown_02039304
+_08137054: .4byte gUnknown_0840612C
+ thumb_func_end sub_8136F74
+
+ thumb_func_start sub_8137058
+sub_8137058: @ 8137058
+ push {lr}
+ ldr r0, _0813708C
+ ldr r1, _08137090
+ ldr r2, [r1]
+ ldr r3, _08137094
+ adds r1, r2, r3
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ lsls r1, 2
+ adds r2, r1
+ ldr r1, _08137098
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 27
+ lsrs r1, 27
+ movs r2, 0x64
+ muls r1, r2
+ adds r0, r1, r0
+ movs r1, 0x30
+ bl GetMonData
+ cmp r0, 0xFF
+ beq _0813709C
+ movs r0, 0
+ b _0813709E
+ .align 2, 0
+_0813708C: .4byte gPlayerParty
+_08137090: .4byte gUnknown_083DFEC4
+_08137094: .4byte 0x000087dc
+_08137098: .4byte 0x0000893e
+_0813709C:
+ movs r0, 0x1
+_0813709E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8137058
+
+ thumb_func_start sub_81370A4
+sub_81370A4: @ 81370A4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+_081370AC:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _081370C8
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _081370D2
+ cmp r5, 0
+ bne _081370CC
+ adds r0, r4, 0
+ b _081370DE
+ .align 2, 0
+_081370C8: .4byte gPlayerParty
+_081370CC:
+ subs r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_081370D2:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _081370AC
+ movs r0, 0
+_081370DE:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81370A4
+
+ thumb_func_start sub_81370E4
+sub_81370E4: @ 81370E4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ movs r6, 0
+ cmp r6, r5
+ bcs _08137114
+_081370F2:
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _08137120
+ adds r0, r1
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ beq _0813710A
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0813710A:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r5
+ bcc _081370F2
+_08137114:
+ subs r0, r5, r6
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08137120: .4byte gPlayerParty
+ thumb_func_end sub_81370E4
+
+ thumb_func_start sub_8137124
+sub_8137124: @ 8137124
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_81370A4
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8137124
+
+ thumb_func_start sub_8137138
+sub_8137138: @ 8137138
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _081371C0
+ bl LoadSpriteSheet
+ ldr r0, _081371C4
+ bl LoadSpritePalette
+ ldr r2, _081371C8
+ ldr r0, [r2]
+ adds r0, 0x54
+ movs r1, 0
+ strb r1, [r0]
+ movs r4, 0
+ adds r5, r2, 0
+ ldr r6, _081371CC
+ adds r0, r6, 0x2
+ mov r8, r0
+ ldr r7, _081371D0
+_08137160:
+ ldr r0, [r5]
+ adds r0, 0x61
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081371AC
+ lsls r2, r4, 2
+ adds r0, r2, r6
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ add r2, r8
+ movs r0, 0
+ ldrsh r2, [r2, r0]
+ ldr r0, _081371D4
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _081371AC
+ ldr r0, [r5]
+ adds r0, 0x61
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081371A2
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, _081371D8
+ str r1, [r0]
+_081371A2:
+ ldr r1, [r5]
+ adds r1, 0x54
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_081371AC:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _08137160
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081371C0: .4byte gSpriteSheet_ConditionUpDown
+_081371C4: .4byte gSpritePalette_ConditionUpDown
+_081371C8: .4byte gUnknown_02039304
+_081371CC: .4byte gUnknown_08406158
+_081371D0: .4byte gSprites + 0x1C
+_081371D4: .4byte gSpriteTemplate_840618C
+_081371D8: .4byte sub_81371DC
+ thumb_func_end sub_8137138
+
+ thumb_func_start sub_81371DC
+sub_81371DC: @ 81371DC
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x5
+ bgt _081371EE
+ ldrh r0, [r1, 0x26]
+ subs r0, 0x2
+ b _081371F6
+_081371EE:
+ cmp r0, 0xB
+ bgt _081371F8
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x2
+_081371F6:
+ strh r0, [r1, 0x26]
+_081371F8:
+ ldrh r0, [r1, 0x2E]
+ adds r0, 0x1
+ strh r0, [r1, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x3C
+ ble _08137218
+ adds r0, r1, 0
+ bl DestroySprite
+ ldr r0, _0813721C
+ ldr r1, [r0]
+ adds r1, 0x54
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+_08137218:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813721C: .4byte gUnknown_02039304
+ thumb_func_end sub_81371DC
+
+ thumb_func_start unref_sub_8137220
+unref_sub_8137220: @ 8137220
+ bx lr
+ thumb_func_end unref_sub_8137220
+
+ thumb_func_start sub_8137224
+sub_8137224: @ 8137224
+ ldr r1, _08137250
+ ldr r0, _08137254
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08137258
+ str r1, [r0]
+ ldr r1, _0813725C
+ ldr r2, _08137260
+ adds r0, r1, r2
+ movs r2, 0
+ strb r2, [r0]
+ ldr r3, _08137264
+ adds r0, r1, r3
+ strb r2, [r0]
+ adds r3, 0x1
+ adds r0, r1, r3
+ strb r2, [r0]
+ ldr r0, _08137268
+ adds r1, r0
+ strb r2, [r1]
+ bx lr
+ .align 2, 0
+_08137250: .4byte gUnknown_03004330
+_08137254: .4byte gUnknown_02024A60
+_08137258: .4byte sub_813726C
+_0813725C: .4byte 0x02000000
+_08137260: .4byte 0x000160a8
+_08137264: .4byte 0x000160a9
+_08137268: .4byte 0x000160ab
+ thumb_func_end sub_8137224
+
+ thumb_func_start sub_813726C
+sub_813726C: @ 813726C
+ push {lr}
+ ldr r2, _081372A0
+ ldr r1, _081372A4
+ ldr r0, _081372A8
+ ldrb r3, [r0]
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, [r2]
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _081372B8
+ ldr r0, _081372AC
+ lsls r1, r3, 9
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0x38
+ bhi _081372B4
+ ldr r0, _081372B0
+ ldrb r1, [r1]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ bl _call_via_r0
+ b _081372B8
+ .align 2, 0
+_081372A0: .4byte gUnknown_02024A64
+_081372A4: .4byte gBitTable
+_081372A8: .4byte gUnknown_02024A60
+_081372AC: .4byte gUnknown_02023A60
+_081372B0: .4byte gUnknown_084061A4
+_081372B4:
+ bl dp01_tbl5_exec_completed
+_081372B8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813726C
+
+ thumb_func_start sub_81372BC
+sub_81372BC: @ 81372BC
+ push {r4-r6,lr}
+ ldr r1, _081372D8
+ ldr r2, _081372DC
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r5, r1, 0
+ cmp r0, 0x5
+ bls _081372CE
+ b _08137410
+_081372CE:
+ lsls r0, 2
+ ldr r1, _081372E0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081372D8: .4byte 0x02000000
+_081372DC: .4byte 0x000160a8
+_081372E0: .4byte _081372E4
+ .align 2, 0
+_081372E4:
+ .4byte _081372FC
+ .4byte _0813730E
+ .4byte _08137344
+ .4byte _08137368
+ .4byte _081373AC
+ .4byte _081373E8
+_081372FC:
+ ldr r0, _0813733C
+ adds r1, r5, r0
+ movs r0, 0x40
+ strb r0, [r1]
+ ldr r2, _08137340
+ adds r1, r5, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_0813730E:
+ ldr r0, _0813733C
+ adds r6, r5, r0
+ ldrb r0, [r6]
+ subs r0, 0x1
+ strb r0, [r6]
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08137410
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ bl dp01_tbl5_exec_completed
+ ldr r2, _08137340
+ adds r1, r5, r2
+ b _0813738C
+ .align 2, 0
+_0813733C: .4byte 0x000160aa
+_08137340: .4byte 0x000160a8
+_08137344:
+ ldr r2, _08137364
+ adds r6, r5, r2
+ ldrb r0, [r6]
+ subs r0, 0x1
+ strb r0, [r6]
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08137410
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ movs r1, 0
+ b _0813737E
+ .align 2, 0
+_08137364: .4byte 0x000160aa
+_08137368:
+ ldr r2, _081373A0
+ adds r6, r5, r2
+ ldrb r0, [r6]
+ subs r0, 0x1
+ strb r0, [r6]
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08137410
+ movs r0, 0x1
+ movs r1, 0x9
+_0813737E:
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ bl dp01_tbl5_exec_completed
+ ldr r0, _081373A4
+ adds r1, r5, r0
+_0813738C:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r1, _081373A8
+ adds r0, r5, r1
+ strb r4, [r0]
+ movs r0, 0x40
+ strb r0, [r6]
+ b _08137410
+ .align 2, 0
+_081373A0: .4byte 0x000160aa
+_081373A4: .4byte 0x000160a8
+_081373A8: .4byte 0x000160a9
+_081373AC:
+ ldr r2, _081373E0
+ adds r4, r5, r2
+ ldrb r0, [r4]
+ subs r0, 0x1
+ strb r0, [r4]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08137410
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0
+ bl nullsub_8
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_802E3E4
+ movs r0, 0x40
+ strb r0, [r4]
+ ldr r0, _081373E4
+ adds r1, r5, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08137410
+ .align 2, 0
+_081373E0: .4byte 0x000160aa
+_081373E4: .4byte 0x000160a8
+_081373E8:
+ ldr r2, _08137418
+ adds r1, r5, r2
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08137410
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_814A7FC
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0
+ bl dp01_build_cmdbuf_x21_a_bb
+ bl dp01_tbl5_exec_completed
+_08137410:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08137418: .4byte 0x000160aa
+ thumb_func_end sub_81372BC
+
+ thumb_func_start sub_813741C
+sub_813741C: @ 813741C
+ push {lr}
+ ldr r2, _08137444
+ ldr r1, _08137448
+ ldr r0, _0813744C
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _08137450
+ cmp r1, r0
+ bne _08137440
+ bl dp01_tbl5_exec_completed
+_08137440:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08137444: .4byte gSprites
+_08137448: .4byte gUnknown_02024BE0
+_0813744C: .4byte gUnknown_02024A60
+_08137450: .4byte SpriteCallbackDummy
+ thumb_func_end sub_813741C
+
+ thumb_func_start sub_8137454
+sub_8137454: @ 8137454
+ push {lr}
+ ldr r0, _08137468
+ ldrh r0, [r0, 0x16]
+ cmp r0, 0
+ bne _08137462
+ bl dp01_tbl5_exec_completed
+_08137462:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08137468: .4byte gUnknown_03004210
+ thumb_func_end sub_8137454
+
+ thumb_func_start sub_813746C
+sub_813746C: @ 813746C
+ push {lr}
+ ldr r0, _0813749C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08137496
+ ldr r2, _081374A0
+ ldr r0, _081374A4
+ adds r3, r2, r0
+ ldrb r1, [r3]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldr r0, _081374A8
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r0, [r2, 0x8]
+ bl SetMainCallback2
+_08137496:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813749C: .4byte gPaletteFade
+_081374A0: .4byte gMain
+_081374A4: .4byte 0x0000043d
+_081374A8: .4byte gUnknown_030042D0
+ thumb_func_end sub_813746C
+
+ thumb_func_start bx_wait_t5
+bx_wait_t5: @ 81374AC
+ push {lr}
+ ldr r0, _081374C0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081374BA
+ bl dp01_tbl5_exec_completed
+_081374BA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081374C0: .4byte gUnknown_02024E6D
+ thumb_func_end bx_wait_t5
+
+ thumb_func_start sub_81374C4
+sub_81374C4: @ 81374C4
+ push {lr}
+ ldr r0, _081374EC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081374E8
+ ldr r1, _081374F0
+ ldr r0, _081374F4
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _081374F8
+ str r1, [r0]
+ bl nullsub_14
+ bl PrepareBagForWallyTutorial
+_081374E8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081374EC: .4byte gPaletteFade
+_081374F0: .4byte gUnknown_03004330
+_081374F4: .4byte gUnknown_02024A60
+_081374F8: .4byte sub_81374FC
+ thumb_func_end sub_81374C4
+
+ thumb_func_start sub_81374FC
+sub_81374FC: @ 81374FC
+ push {lr}
+ ldr r0, _08137528
+ ldr r1, [r0, 0x4]
+ ldr r0, _0813752C
+ cmp r1, r0
+ bne _08137522
+ ldr r0, _08137530
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08137522
+ ldr r0, _08137534
+ ldrh r1, [r0]
+ movs r0, 0x1
+ bl dp01_build_cmdbuf_x23_aa_0
+ bl dp01_tbl5_exec_completed
+_08137522:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08137528: .4byte gMain
+_0813752C: .4byte sub_800F808
+_08137530: .4byte gPaletteFade
+_08137534: .4byte word_203855E
+ thumb_func_end sub_81374FC
+
+ thumb_func_start sub_8137538
+sub_8137538: @ 8137538
+ push {r4-r7,lr}
+ ldr r5, _0813768C
+ ldrb r2, [r5]
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ ldr r4, _08137690
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r7, 0x88
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08137568
+ ldr r0, _08137694
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08137698
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_08137568:
+ ldrb r0, [r5]
+ movs r6, 0x2
+ adds r2, r6, 0
+ eors r2, r0
+ lsls r3, r2, 1
+ adds r0, r3, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08137596
+ ldr r0, _08137694
+ adds r0, r3, r0
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08137698
+ adds r1, r0
+ adds r0, r2, 0
+ bl sub_8141828
+_08137596:
+ ldrb r2, [r5]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ movs r3, 0x8
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08137684
+ adds r1, r6, 0
+ eors r1, r2
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08137684
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ beq _08137626
+ ldr r0, _0813769C
+ ldrh r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _08137626
+ ldr r1, _081376A0
+ ldrb r0, [r5]
+ eors r0, r6
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _081376A4
+ adds r0, r1
+ bl DestroySprite
+ ldr r4, _081376A8
+ ldrb r0, [r5]
+ adds r1, r6, 0
+ eors r1, r0
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ ldr r2, _08137694
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _08137698
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r5]
+ eors r0, r6
+ bl sub_804777C
+ ldrb r0, [r5]
+ eors r0, r6
+ adds r0, r4
+ ldrb r0, [r0]
+ bl sub_8043DFC
+_08137626:
+ ldr r1, _081376A0
+ ldr r4, _0813768C
+ ldrb r0, [r4]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _081376A4
+ adds r0, r1
+ bl DestroySprite
+ ldr r5, _081376A8
+ ldrb r1, [r4]
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldr r2, _08137694
+ lsls r1, 1
+ adds r1, r2
+ ldrh r2, [r1]
+ movs r1, 0x64
+ muls r1, r2
+ ldr r2, _08137698
+ adds r1, r2
+ movs r2, 0
+ bl sub_8045A5C
+ ldrb r0, [r4]
+ bl sub_804777C
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ ldr r2, _081376AC
+ ldrb r1, [r2, 0x9]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, _081376B0
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _081376B4
+ str r1, [r0]
+_08137684:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813768C: .4byte gUnknown_02024A60
+_08137690: .4byte 0x02017810
+_08137694: .4byte gUnknown_02024A6A
+_08137698: .4byte gPlayerParty
+_0813769C: .4byte gUnknown_020239F8
+_081376A0: .4byte gUnknown_0300434C
+_081376A4: .4byte gSprites
+_081376A8: .4byte gUnknown_03004340
+_081376AC: .4byte 0x02017840
+_081376B0: .4byte gUnknown_03004330
+_081376B4: .4byte sub_81376B8
+ thumb_func_end sub_8137538
+
+ thumb_func_start sub_81376B8
+sub_81376B8: @ 81376B8
+ push {r4-r7,lr}
+ movs r4, 0
+ ldr r2, _0813778C
+ ldr r0, _08137790
+ ldr r7, _08137794
+ ldrb r3, [r7]
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _08137798
+ cmp r1, r0
+ bne _081376DC
+ movs r4, 0x1
+_081376DC:
+ cmp r4, 0
+ beq _08137784
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r5, _0813779C
+ adds r2, r0, r5
+ ldrb r1, [r2, 0x1]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08137784
+ movs r6, 0x2
+ adds r1, r6, 0
+ eors r1, r3
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x1]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08137784
+ ldrb r1, [r2]
+ movs r3, 0x7F
+ adds r0, r3, 0
+ ands r0, r1
+ strb r0, [r2]
+ ldrb r0, [r7]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1, 0x1]
+ subs r4, 0x3
+ adds r0, r4, 0
+ ands r0, r2
+ strb r0, [r1, 0x1]
+ ldrb r0, [r7]
+ adds r1, r6, 0
+ eors r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0]
+ ands r3, r1
+ strb r3, [r0]
+ ldrb r0, [r7]
+ adds r1, r6, 0
+ eors r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r0, 0x1]
+ ands r4, r1
+ strb r4, [r0, 0x1]
+ ldr r4, _081377A0
+ adds r0, r4, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r4, 0
+ bl FreeSpritePaletteByTag
+ ldr r0, _081377A4
+ movs r1, 0xA
+ bl CreateTask
+ ldr r2, _081377A8
+ ldrb r1, [r7]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _081377AC
+ adds r0, r2
+ bl sub_80324F8
+ bl dp01_tbl5_exec_completed
+_08137784:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813778C: .4byte gSprites
+_08137790: .4byte gUnknown_03004340
+_08137794: .4byte gUnknown_02024A60
+_08137798: .4byte SpriteCallbackDummy
+_0813779C: .4byte 0x02017810
+_081377A0: .4byte 0x000027f9
+_081377A4: .4byte c3_0802FDF4
+_081377A8: .4byte gUnknown_02024A6A
+_081377AC: .4byte gPlayerParty
+ thumb_func_end sub_81376B8
+
+ thumb_func_start sub_81377B0
+sub_81377B0: @ 81377B0
+ push {r4-r6,lr}
+ ldr r5, _081377F0
+ ldrb r0, [r5]
+ ldr r6, _081377F4
+ adds r1, r0, r6
+ ldrb r1, [r1]
+ movs r2, 0
+ movs r3, 0
+ bl sub_8045C78
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r0, [r0]
+ bl sub_8043DFC
+ lsls r4, 16
+ asrs r1, r4, 16
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _081377F8
+ ldrb r0, [r5]
+ adds r0, r6
+ ldrb r0, [r0]
+ movs r2, 0
+ bl sub_80440EC
+ b _08137812
+ .align 2, 0
+_081377F0: .4byte gUnknown_02024A60
+_081377F4: .4byte gUnknown_03004340
+_081377F8:
+ ldr r2, _08137818
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _0813781C
+ adds r0, r2
+ bl sub_80324F8
+ bl dp01_tbl5_exec_completed
+_08137812:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08137818: .4byte gUnknown_02024A6A
+_0813781C: .4byte gPlayerParty
+ thumb_func_end sub_81377B0
+
+ thumb_func_start bx_blink_t5
+bx_blink_t5: @ 8137820
+ push {r4,lr}
+ ldr r1, _0813785C
+ ldr r0, _08137860
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r2, _08137864
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r0, r2
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x20
+ bne _0813786C
+ movs r3, 0
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ subs r0, 0x5
+ ands r0, r1
+ strb r0, [r2]
+ ldr r0, _08137868
+ strb r3, [r0]
+ bl dp01_tbl5_exec_completed
+ b _08137896
+ .align 2, 0
+_0813785C: .4byte gUnknown_02024BE0
+_08137860: .4byte gUnknown_02024A60
+_08137864: .4byte gSprites
+_08137868: .4byte gUnknown_02024E6D
+_0813786C:
+ ldrh r0, [r4, 0x30]
+ movs r1, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08137890
+ 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]
+_08137890:
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ strh r0, [r4, 0x30]
+_08137896:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end bx_blink_t5
+
+ thumb_func_start sub_813789C
+sub_813789C: @ 813789C
+ push {r4-r6,lr}
+ ldr r6, _081378F4
+ ldrb r2, [r6]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ ldr r1, _081378F8
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _081378EC
+ ldr r5, _081378FC
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08137900
+ adds r0, r4
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ ldr r1, _08137904
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl dp01_tbl5_exec_completed
+_081378EC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081378F4: .4byte gUnknown_02024A60
+_081378F8: .4byte 0x02017810
+_081378FC: .4byte gUnknown_02024BE0
+_08137900: .4byte gSprites
+_08137904: .4byte gUnknown_03004340
+ thumb_func_end sub_813789C
+
+ thumb_func_start sub_8137908
+sub_8137908: @ 8137908
+ push {lr}
+ ldr r2, _08137930
+ ldr r1, _08137934
+ ldr r0, _08137938
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _0813793C
+ cmp r1, r0
+ bne _0813792C
+ bl dp01_tbl5_exec_completed
+_0813792C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08137930: .4byte gSprites
+_08137934: .4byte gUnknown_02024BE0
+_08137938: .4byte gUnknown_02024A60
+_0813793C: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8137908
+
+ thumb_func_start sub_8137940
+sub_8137940: @ 8137940
+ push {lr}
+ ldr r0, _08137964
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08137968
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _0813795E
+ bl dp01_tbl5_exec_completed
+_0813795E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08137964: .4byte gUnknown_02024A60
+_08137968: .4byte 0x02017810
+ thumb_func_end sub_8137940
+
+ thumb_func_start dp01_tbl5_exec_completed
+dp01_tbl5_exec_completed: @ 813796C
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r1, _081379AC
+ ldr r4, _081379B0
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _081379B4
+ str r1, [r0]
+ ldr r0, _081379B8
+ ldrh r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081379C0
+ bl GetMultiplayerId
+ mov r1, sp
+ strb r0, [r1]
+ movs r0, 0x2
+ movs r1, 0x4
+ mov r2, sp
+ bl dp01_prepare_buffer_wireless_probably
+ ldr r1, _081379BC
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r0, r1
+ movs r1, 0x38
+ strb r1, [r0]
+ b _081379D2
+ .align 2, 0
+_081379AC: .4byte gUnknown_03004330
+_081379B0: .4byte gUnknown_02024A60
+_081379B4: .4byte sub_813726C
+_081379B8: .4byte gUnknown_020239F8
+_081379BC: .4byte gUnknown_02023A60
+_081379C0:
+ ldr r2, _081379DC
+ ldr r1, _081379E0
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, [r2]
+ bics r0, r1
+ str r0, [r2]
+_081379D2:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081379DC: .4byte gUnknown_02024A64
+_081379E0: .4byte gBitTable
+ thumb_func_end dp01_tbl5_exec_completed
+
+ thumb_func_start unref_sub_81379E4
+unref_sub_81379E4: @ 81379E4
+ push {lr}
+ ldr r0, _08137A08
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08137A0C
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _08137A02
+ bl dp01_tbl5_exec_completed
+_08137A02:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08137A08: .4byte gUnknown_02024A60
+_08137A0C: .4byte 0x02017810
+ thumb_func_end unref_sub_81379E4
+
+ thumb_func_start dp01t_00_5_getattr
+dp01t_00_5_getattr: @ 8137A10
+ push {r4-r6,lr}
+ sub sp, 0x100
+ movs r6, 0
+ ldr r1, _08137A3C
+ ldr r0, _08137A40
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08137A48
+ ldr r0, _08137A44
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ mov r1, sp
+ bl sub_8137A84
+ adds r6, r0, 0
+ b _08137A6A
+ .align 2, 0
+_08137A3C: .4byte gUnknown_02023A60
+_08137A40: .4byte gUnknown_02024A60
+_08137A44: .4byte gUnknown_02024A6A
+_08137A48:
+ ldrb r4, [r1]
+ movs r5, 0
+_08137A4C:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _08137A62
+ lsls r0, r5, 24
+ lsrs r0, 24
+ mov r2, sp
+ adds r1, r2, r6
+ bl sub_8137A84
+ adds r6, r0
+_08137A62:
+ lsrs r4, 1
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _08137A4C
+_08137A6A:
+ lsls r1, r6, 16
+ lsrs r1, 16
+ movs r0, 0x1
+ mov r2, sp
+ bl dp01_build_cmdbuf_x1D_1D_numargs_varargs
+ bl dp01_tbl5_exec_completed
+ add sp, 0x100
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_00_5_getattr
+
+ thumb_func_start sub_8137A84
+sub_8137A84: @ 8137A84
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x90
+ adds r7, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r6, 0
+ ldr r2, _08137AB8
+ ldr r3, _08137ABC
+ ldrb r0, [r3]
+ lsls r0, 9
+ adds r1, r2, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x3B
+ bls _08137AAE
+ bl _0813821A
+_08137AAE:
+ lsls r0, 2
+ ldr r1, _08137AC0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08137AB8: .4byte gUnknown_02023A60
+_08137ABC: .4byte gUnknown_02024A60
+_08137AC0: .4byte _08137AC4
+ .align 2, 0
+_08137AC4:
+ .4byte _08137BB4
+ .4byte _08137DD8
+ .4byte _08137DE8
+ .4byte _08137DF8
+ .4byte _08137E60
+ .4byte _08137E60
+ .4byte _08137E60
+ .4byte _08137E60
+ .4byte _08137E7C
+ .4byte _08137EB8
+ .4byte _08137EB8
+ .4byte _08137EB8
+ .4byte _08137EB8
+ .4byte _0813821A
+ .4byte _0813821A
+ .4byte _0813821A
+ .4byte _0813821A
+ .4byte _08137ED4
+ .4byte _08137EE4
+ .4byte _08137F14
+ .4byte _08137F24
+ .4byte _08137F34
+ .4byte _08137F44
+ .4byte _08137F54
+ .4byte _08137F64
+ .4byte _08137F74
+ .4byte _08137F84
+ .4byte _08137F94
+ .4byte _08137FA4
+ .4byte _08137FB4
+ .4byte _08137FC4
+ .4byte _08137FD4
+ .4byte _08138024
+ .4byte _08138034
+ .4byte _08138044
+ .4byte _08138054
+ .4byte _08138064
+ .4byte _08138074
+ .4byte _08138084
+ .4byte _08138094
+ .4byte _081380A4
+ .4byte _081380D8
+ .4byte _081380E8
+ .4byte _081380F8
+ .4byte _08138108
+ .4byte _08138118
+ .4byte _08138128
+ .4byte _08138138
+ .4byte _08138148
+ .4byte _08138168
+ .4byte _08138178
+ .4byte _08138188
+ .4byte _08138198
+ .4byte _081381A8
+ .4byte _081381B8
+ .4byte _081381C8
+ .4byte _081381D8
+ .4byte _081381E8
+ .4byte _081381F8
+ .4byte _08138208
+_08137BB4:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08137DC8
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x2E]
+ movs r6, 0
+ add r0, sp, 0x24
+ mov r9, r0
+ movs r1, 0x3B
+ add r1, sp
+ mov r10, r1
+ mov r2, sp
+ adds r2, 0x2B
+ str r2, [sp, 0x80]
+ mov r0, sp
+ adds r0, 0x2A
+ str r0, [sp, 0x7C]
+ mov r1, sp
+ adds r1, 0x68
+ str r1, [sp, 0x8C]
+ adds r2, 0x5
+ str r2, [sp, 0x84]
+ adds r0, 0x12
+ str r0, [sp, 0x88]
+ mov r8, r4
+ add r4, sp, 0xC
+_08137C00:
+ adds r1, r6, 0
+ adds r1, 0xD
+ mov r0, r8
+ bl GetMonData
+ strh r0, [r4]
+ adds r1, r6, 0
+ adds r1, 0x11
+ mov r0, r8
+ bl GetMonData
+ mov r2, r9
+ adds r1, r2, r6
+ strb r0, [r1]
+ adds r4, 0x2
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _08137C00
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08137DC8
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl GetMonData
+ mov r1, r10
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x20
+ bl GetMonData
+ ldr r2, [sp, 0x80]
+ strb r0, [r2]
+ adds r0, r4, 0
+ movs r1, 0x19
+ bl GetMonData
+ str r0, [sp, 0x44]
+ adds r0, r4, 0
+ movs r1, 0x27
+ bl GetMonData
+ mov r3, sp
+ movs r5, 0x1F
+ ands r0, r5
+ ldrb r2, [r3, 0x14]
+ movs r1, 0x20
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x14]
+ adds r0, r4, 0
+ movs r1, 0x28
+ bl GetMonData
+ mov r3, sp
+ movs r6, 0x1F
+ ands r0, r6
+ lsls r0, 5
+ ldrh r2, [r3, 0x14]
+ ldr r1, _08137DCC
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r3, 0x14]
+ adds r0, r4, 0
+ movs r1, 0x29
+ bl GetMonData
+ mov r3, sp
+ ands r0, r5
+ lsls r0, 2
+ ldrb r2, [r3, 0x15]
+ movs r1, 0x7D
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x15]
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl GetMonData
+ movs r1, 0x1F
+ ands r1, r0
+ lsls r1, 15
+ ldr r0, [sp, 0x14]
+ ldr r2, _08137DD0
+ ands r0, r2
+ orrs r0, r1
+ str r0, [sp, 0x14]
+ adds r0, r4, 0
+ movs r1, 0x2B
+ bl GetMonData
+ mov r3, sp
+ ands r0, r6
+ lsls r0, 4
+ ldrh r2, [r3, 0x16]
+ ldr r1, _08137DD4
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r3, 0x16]
+ adds r0, r4, 0
+ movs r1, 0x2C
+ bl GetMonData
+ mov r3, sp
+ ands r0, r5
+ lsls r0, 1
+ ldrb r2, [r3, 0x17]
+ movs r1, 0x3F
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x17]
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ str r0, [sp, 0x48]
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ str r0, [sp, 0x4C]
+ adds r0, r4, 0
+ movs r1, 0x38
+ bl GetMonData
+ ldr r1, [sp, 0x7C]
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x28]
+ adds r0, r4, 0
+ movs r1, 0x3A
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x2C]
+ adds r0, r4, 0
+ movs r1, 0x3B
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x2]
+ adds r0, r4, 0
+ movs r1, 0x3C
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x3D
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x6]
+ adds r0, r4, 0
+ movs r1, 0x3E
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0x8]
+ adds r0, r4, 0
+ movs r1, 0x3F
+ bl GetMonData
+ mov r1, sp
+ strh r0, [r1, 0xA]
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ mov r3, sp
+ movs r1, 0x1
+ ands r0, r1
+ lsls r0, 6
+ ldrb r2, [r3, 0x17]
+ movs r1, 0x41
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x17]
+ adds r0, r4, 0
+ movs r1, 0x2E
+ bl GetMonData
+ mov r3, sp
+ lsls r0, 7
+ ldrb r2, [r3, 0x17]
+ movs r1, 0x7F
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x17]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetMonData
+ str r0, [sp, 0x54]
+ adds r0, r4, 0
+ movs r1, 0x2
+ ldr r2, [sp, 0x8C]
+ bl GetMonData
+ ldr r0, [sp, 0x84]
+ ldr r1, [sp, 0x8C]
+ bl StringCopy10
+ adds r0, r4, 0
+ movs r1, 0x7
+ ldr r2, [sp, 0x88]
+ bl GetMonData
+ mov r2, sp
+ movs r6, 0
+_08137DB8:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0x57
+ bls _08137DB8
+ b _0813821A
+ .align 2, 0
+_08137DC8: .4byte gPlayerParty
+_08137DCC: .4byte 0xfffffc1f
+_08137DD0: .4byte 0xfff07fff
+_08137DD4: .4byte 0xfffffe0f
+_08137DD8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137DE4
+ adds r0, r1
+ movs r1, 0xB
+ b _08138152
+ .align 2, 0
+_08137DE4: .4byte gPlayerParty
+_08137DE8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137DF4
+ adds r0, r1
+ movs r1, 0xC
+ b _08138152
+ .align 2, 0
+_08137DF4: .4byte gPlayerParty
+_08137DF8:
+ movs r6, 0
+ add r2, sp, 0x58
+ mov r9, r2
+ add r0, sp, 0x60
+ mov r10, r0
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _08137E5C
+ adds r4, r1, r0
+ mov r8, r9
+_08137E0E:
+ adds r1, r6, 0
+ adds r1, 0xD
+ adds r0, r4, 0
+ bl GetMonData
+ mov r1, r8
+ strh r0, [r1]
+ adds r1, r6, 0
+ adds r1, 0x11
+ adds r0, r4, 0
+ bl GetMonData
+ mov r2, r10
+ adds r1, r2, r6
+ strb r0, [r1]
+ movs r0, 0x2
+ add r8, r0
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _08137E0E
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137E5C
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ mov r1, r9
+ strb r0, [r1, 0xC]
+ mov r2, r9
+ movs r6, 0
+_08137E4C:
+ adds r0, r7, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0xF
+ bls _08137E4C
+ b _0813821A
+ .align 2, 0
+_08137E5C: .4byte gPlayerParty
+_08137E60:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137E78
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _08138152
+ .align 2, 0
+_08137E78: .4byte gPlayerParty
+_08137E7C:
+ movs r6, 0
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r2, _08137EB4
+ mov r8, r2
+_08137E88:
+ adds r1, r6, 0
+ adds r1, 0x11
+ mov r2, r8
+ adds r0, r4, r2
+ bl GetMonData
+ adds r1, r7, r6
+ strb r0, [r1]
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _08137E88
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137EB4
+ adds r0, r1
+ movs r1, 0x15
+ bl GetMonData
+ adds r1, r7, r6
+ strb r0, [r1]
+ adds r6, 0x1
+ b _0813821A
+ .align 2, 0
+_08137EB4: .4byte gPlayerParty
+_08137EB8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137ED0
+ adds r0, r1
+ ldrb r1, [r3]
+ lsls r1, 9
+ adds r2, 0x1
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r1, 0x8
+ b _08138212
+ .align 2, 0
+_08137ED0: .4byte gPlayerParty
+_08137ED4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137EE0
+ adds r0, r1
+ movs r1, 0x1
+ b _08137EEE
+ .align 2, 0
+_08137EE0: .4byte gPlayerParty
+_08137EE4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137F10
+ adds r0, r1
+ movs r1, 0x19
+_08137EEE:
+ bl GetMonData
+ adds r1, r0, 0
+ strb r1, [r7]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r1
+ lsrs r0, 16
+ strb r0, [r7, 0x2]
+ movs r6, 0x3
+ b _0813821A
+ .align 2, 0
+_08137F10: .4byte gPlayerParty
+_08137F14:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137F20
+ adds r0, r1
+ movs r1, 0x1A
+ b _08138212
+ .align 2, 0
+_08137F20: .4byte gPlayerParty
+_08137F24:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137F30
+ adds r0, r1
+ movs r1, 0x1B
+ b _08138212
+ .align 2, 0
+_08137F30: .4byte gPlayerParty
+_08137F34:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137F40
+ adds r0, r1
+ movs r1, 0x1C
+ b _08138212
+ .align 2, 0
+_08137F40: .4byte gPlayerParty
+_08137F44:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137F50
+ adds r0, r1
+ movs r1, 0x1D
+ b _08138212
+ .align 2, 0
+_08137F50: .4byte gPlayerParty
+_08137F54:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137F60
+ adds r0, r1
+ movs r1, 0x1E
+ b _08138212
+ .align 2, 0
+_08137F60: .4byte gPlayerParty
+_08137F64:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137F70
+ adds r0, r1
+ movs r1, 0x1F
+ b _08138212
+ .align 2, 0
+_08137F70: .4byte gPlayerParty
+_08137F74:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137F80
+ adds r0, r1
+ movs r1, 0x20
+ b _08138212
+ .align 2, 0
+_08137F80: .4byte gPlayerParty
+_08137F84:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137F90
+ adds r0, r1
+ movs r1, 0x22
+ b _08138212
+ .align 2, 0
+_08137F90: .4byte gPlayerParty
+_08137F94:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137FA0
+ adds r0, r1
+ movs r1, 0x23
+ b _08138212
+ .align 2, 0
+_08137FA0: .4byte gPlayerParty
+_08137FA4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137FB0
+ adds r0, r1
+ movs r1, 0x24
+ b _08138212
+ .align 2, 0
+_08137FB0: .4byte gPlayerParty
+_08137FB4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137FC0
+ adds r0, r1
+ movs r1, 0x25
+ b _08138212
+ .align 2, 0
+_08137FC0: .4byte gPlayerParty
+_08137FC4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08137FD0
+ adds r0, r1
+ movs r1, 0x26
+ b _08138212
+ .align 2, 0
+_08137FD0: .4byte gPlayerParty
+_08137FD4:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _08138020
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x27
+ bl GetMonData
+ strb r0, [r7]
+ adds r0, r4, 0
+ movs r1, 0x28
+ bl GetMonData
+ strb r0, [r7, 0x1]
+ adds r0, r4, 0
+ movs r1, 0x29
+ bl GetMonData
+ strb r0, [r7, 0x2]
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl GetMonData
+ strb r0, [r7, 0x3]
+ adds r0, r4, 0
+ movs r1, 0x2B
+ bl GetMonData
+ strb r0, [r7, 0x4]
+ adds r0, r4, 0
+ movs r1, 0x2C
+ bl GetMonData
+ strb r0, [r7, 0x5]
+ movs r6, 0x6
+ b _0813821A
+ .align 2, 0
+_08138020: .4byte gPlayerParty
+_08138024:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138030
+ adds r0, r1
+ movs r1, 0x27
+ b _08138212
+ .align 2, 0
+_08138030: .4byte gPlayerParty
+_08138034:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138040
+ adds r0, r1
+ movs r1, 0x28
+ b _08138212
+ .align 2, 0
+_08138040: .4byte gPlayerParty
+_08138044:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138050
+ adds r0, r1
+ movs r1, 0x29
+ b _08138212
+ .align 2, 0
+_08138050: .4byte gPlayerParty
+_08138054:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138060
+ adds r0, r1
+ movs r1, 0x2A
+ b _08138212
+ .align 2, 0
+_08138060: .4byte gPlayerParty
+_08138064:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138070
+ adds r0, r1
+ movs r1, 0x2B
+ b _08138212
+ .align 2, 0
+_08138070: .4byte gPlayerParty
+_08138074:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138080
+ adds r0, r1
+ movs r1, 0x2C
+ b _08138212
+ .align 2, 0
+_08138080: .4byte gPlayerParty
+_08138084:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138090
+ adds r0, r1
+ movs r1, 0
+ b _081380AE
+ .align 2, 0
+_08138090: .4byte gPlayerParty
+_08138094:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081380A0
+ adds r0, r1
+ movs r1, 0x9
+ b _08138152
+ .align 2, 0
+_081380A0: .4byte gPlayerParty
+_081380A4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081380D4
+ adds r0, r1
+ movs r1, 0x37
+_081380AE:
+ bl GetMonData
+ adds r1, r0, 0
+ strb r1, [r7]
+ movs r0, 0xFF
+ lsls r0, 8
+ ands r0, r1
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r0, 0xFF
+ lsls r0, 16
+ ands r0, r1
+ lsrs r0, 16
+ strb r0, [r7, 0x2]
+ lsrs r0, r1, 24
+ strb r0, [r7, 0x3]
+ movs r6, 0x4
+ b _0813821A
+ .align 2, 0
+_081380D4: .4byte gPlayerParty
+_081380D8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081380E4
+ adds r0, r1
+ movs r1, 0x38
+ b _08138212
+ .align 2, 0
+_081380E4: .4byte gPlayerParty
+_081380E8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081380F4
+ adds r0, r1
+ movs r1, 0x39
+ b _08138152
+ .align 2, 0
+_081380F4: .4byte gPlayerParty
+_081380F8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138104
+ adds r0, r1
+ movs r1, 0x3A
+ b _08138152
+ .align 2, 0
+_08138104: .4byte gPlayerParty
+_08138108:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138114
+ adds r0, r1
+ movs r1, 0x3B
+ b _08138152
+ .align 2, 0
+_08138114: .4byte gPlayerParty
+_08138118:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138124
+ adds r0, r1
+ movs r1, 0x3C
+ b _08138152
+ .align 2, 0
+_08138124: .4byte gPlayerParty
+_08138128:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138134
+ adds r0, r1
+ movs r1, 0x3D
+ b _08138152
+ .align 2, 0
+_08138134: .4byte gPlayerParty
+_08138138:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138144
+ adds r0, r1
+ movs r1, 0x3E
+ b _08138152
+ .align 2, 0
+_08138144: .4byte gPlayerParty
+_08138148:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138164
+ adds r0, r1
+ movs r1, 0x3F
+_08138152:
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ strb r0, [r7]
+ lsrs r0, 8
+ strb r0, [r7, 0x1]
+ movs r6, 0x2
+ b _0813821A
+ .align 2, 0
+_08138164: .4byte gPlayerParty
+_08138168:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138174
+ adds r0, r1
+ movs r1, 0x16
+ b _08138212
+ .align 2, 0
+_08138174: .4byte gPlayerParty
+_08138178:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138184
+ adds r0, r1
+ movs r1, 0x17
+ b _08138212
+ .align 2, 0
+_08138184: .4byte gPlayerParty
+_08138188:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138194
+ adds r0, r1
+ movs r1, 0x18
+ b _08138212
+ .align 2, 0
+_08138194: .4byte gPlayerParty
+_08138198:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081381A4
+ adds r0, r1
+ movs r1, 0x21
+ b _08138212
+ .align 2, 0
+_081381A4: .4byte gPlayerParty
+_081381A8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081381B4
+ adds r0, r1
+ movs r1, 0x2F
+ b _08138212
+ .align 2, 0
+_081381B4: .4byte gPlayerParty
+_081381B8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081381C4
+ adds r0, r1
+ movs r1, 0x30
+ b _08138212
+ .align 2, 0
+_081381C4: .4byte gPlayerParty
+_081381C8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081381D4
+ adds r0, r1
+ movs r1, 0x32
+ b _08138212
+ .align 2, 0
+_081381D4: .4byte gPlayerParty
+_081381D8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081381E4
+ adds r0, r1
+ movs r1, 0x33
+ b _08138212
+ .align 2, 0
+_081381E4: .4byte gPlayerParty
+_081381E8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081381F4
+ adds r0, r1
+ movs r1, 0x34
+ b _08138212
+ .align 2, 0
+_081381F4: .4byte gPlayerParty
+_081381F8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138204
+ adds r0, r1
+ movs r1, 0x35
+ b _08138212
+ .align 2, 0
+_08138204: .4byte gPlayerParty
+_08138208:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813822C
+ adds r0, r1
+ movs r1, 0x36
+_08138212:
+ bl GetMonData
+ strb r0, [r7]
+ movs r6, 0x1
+_0813821A:
+ adds r0, r6, 0
+ add sp, 0x90
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0813822C: .4byte gPlayerParty
+ thumb_func_end sub_8137A84
+
+ thumb_func_start sub_8138230
+sub_8138230: @ 8138230
+ push {lr}
+ bl sub_802ECF0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8138230
+
+ thumb_func_start sub_813823C
+sub_813823C: @ 813823C
+ push {r4,r5,lr}
+ ldr r1, _08138260
+ ldr r0, _08138264
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x2
+ adds r1, r0, r1
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0813826C
+ ldr r0, _08138268
+ lsls r1, r2, 1
+ adds r1, r0
+ ldrb r0, [r1]
+ bl sub_8138294
+ b _0813828A
+ .align 2, 0
+_08138260: .4byte gUnknown_02023A60
+_08138264: .4byte gUnknown_02024A60
+_08138268: .4byte gUnknown_02024A6A
+_0813826C:
+ ldrb r4, [r1]
+ movs r5, 0
+_08138270:
+ movs r0, 0x1
+ ands r0, r4
+ cmp r0, 0
+ beq _0813827E
+ adds r0, r5, 0
+ bl sub_8138294
+_0813827E:
+ lsrs r4, 1
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x5
+ bls _08138270
+_0813828A:
+ bl dp01_tbl5_exec_completed
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813823C
+
+ thumb_func_start sub_8138294
+sub_8138294: @ 8138294
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x34
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _081382CC
+ ldrb r0, [r0]
+ lsls r0, 9
+ ldr r2, _081382D0
+ adds r3, r0, r2
+ adds r6, r3, 0
+ subs r1, r2, 0x2
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r7, r2, 0
+ cmp r0, 0x3B
+ bls _081382C0
+ bl _08138C5A
+_081382C0:
+ lsls r0, 2
+ ldr r1, _081382D4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081382CC: .4byte gUnknown_02024A60
+_081382D0: .4byte gUnknown_02023A63
+_081382D4: .4byte _081382D8
+ .align 2, 0
+_081382D8:
+ .4byte _081383C8
+ .4byte _08138560
+ .4byte _08138580
+ .4byte _081385A0
+ .4byte _081385F8
+ .4byte _081385F8
+ .4byte _081385F8
+ .4byte _081385F8
+ .4byte _08138620
+ .4byte _08138684
+ .4byte _08138684
+ .4byte _08138684
+ .4byte _08138684
+ .4byte _08138C5A
+ .4byte _08138C5A
+ .4byte _08138C5A
+ .4byte _08138C5A
+ .4byte _081386B4
+ .4byte _081386D4
+ .4byte _081386F4
+ .4byte _08138714
+ .4byte _08138734
+ .4byte _08138754
+ .4byte _08138774
+ .4byte _08138794
+ .4byte _081387B4
+ .4byte _081387D4
+ .4byte _081387F4
+ .4byte _08138814
+ .4byte _08138834
+ .4byte _08138854
+ .4byte _08138874
+ .4byte _081388E4
+ .4byte _08138904
+ .4byte _08138924
+ .4byte _08138944
+ .4byte _08138964
+ .4byte _08138984
+ .4byte _081389A4
+ .4byte _081389C4
+ .4byte _081389E4
+ .4byte _08138A04
+ .4byte _08138A24
+ .4byte _08138A44
+ .4byte _08138A64
+ .4byte _08138A84
+ .4byte _08138AA4
+ .4byte _08138AC4
+ .4byte _08138AE4
+ .4byte _08138B04
+ .4byte _08138B24
+ .4byte _08138B44
+ .4byte _08138B64
+ .4byte _08138B84
+ .4byte _08138BA4
+ .4byte _08138BC4
+ .4byte _08138BE4
+ .4byte _08138C04
+ .4byte _08138C24
+ .4byte _08138C44
+_081383C8:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0813855C
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ adds r2, r6, 0
+ bl SetMonData
+ adds r2, r6, 0
+ adds r2, 0x2E
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl SetMonData
+ movs r0, 0
+ mov r8, r0
+ movs r0, 0x3B
+ adds r0, r6
+ mov r10, r0
+ adds r0, r6, 0
+ adds r0, 0x2B
+ str r0, [sp, 0x20]
+ adds r0, 0x19
+ str r0, [sp, 0x28]
+ adds r0, 0x4
+ str r0, [sp, 0x2C]
+ adds r0, 0x4
+ str r0, [sp, 0x30]
+ subs r0, 0x22
+ str r0, [sp, 0x1C]
+ subs r0, 0x2
+ str r0, [sp, 0x18]
+ adds r0, 0x4
+ str r0, [sp, 0x24]
+ adds r0, r6, 0x2
+ str r0, [sp, 0x4]
+ adds r0, r6, 0x4
+ str r0, [sp, 0x8]
+ adds r0, r6, 0x6
+ str r0, [sp, 0xC]
+ adds r0, 0x2
+ str r0, [sp, 0x10]
+ adds r0, 0x2
+ str r0, [sp, 0x14]
+ mov r9, r4
+ adds r7, r6, 0
+ adds r7, 0x24
+ adds r4, r6, 0
+ adds r4, 0xC
+_0813842E:
+ mov r1, r8
+ adds r1, 0xD
+ mov r0, r9
+ adds r2, r4, 0
+ bl SetMonData
+ mov r1, r8
+ adds r1, 0x11
+ mov r0, r9
+ adds r2, r7, 0
+ bl SetMonData
+ adds r7, 0x1
+ adds r4, 0x2
+ movs r0, 0x1
+ add r8, r0
+ mov r0, r8
+ cmp r0, 0x3
+ ble _0813842E
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0813855C
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ mov r2, r10
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x20
+ ldr r2, [sp, 0x20]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x19
+ ldr r2, [sp, 0x28]
+ bl SetMonData
+ ldrb r0, [r6, 0x14]
+ lsls r0, 27
+ lsrs r0, 27
+ mov r1, sp
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x27
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrh r0, [r6, 0x14]
+ lsls r0, 22
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x28
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrb r0, [r6, 0x15]
+ lsls r0, 25
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x29
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldr r0, [r6, 0x14]
+ lsls r0, 12
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x2A
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrh r0, [r6, 0x16]
+ lsls r0, 23
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x2B
+ mov r2, sp
+ bl SetMonData
+ mov r1, sp
+ ldrb r0, [r6, 0x17]
+ lsls r0, 26
+ lsrs r0, 27
+ strb r0, [r1]
+ adds r0, r4, 0
+ movs r1, 0x2C
+ mov r2, sp
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0
+ ldr r2, [sp, 0x2C]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x37
+ ldr r2, [sp, 0x30]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x38
+ ldr r2, [sp, 0x1C]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x39
+ ldr r2, [sp, 0x18]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3A
+ ldr r2, [sp, 0x24]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3B
+ ldr r2, [sp, 0x4]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3C
+ ldr r2, [sp, 0x8]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3D
+ ldr r2, [sp, 0xC]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3E
+ ldr r2, [sp, 0x10]
+ bl SetMonData
+ adds r0, r4, 0
+ movs r1, 0x3F
+ ldr r2, [sp, 0x14]
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813855C: .4byte gPlayerParty
+_08138560:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138578
+ adds r0, r1
+ ldr r1, _0813857C
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0xB
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138578: .4byte gPlayerParty
+_0813857C: .4byte gUnknown_02024A60
+_08138580:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138598
+ adds r0, r1
+ ldr r1, _0813859C
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0xC
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138598: .4byte gPlayerParty
+_0813859C: .4byte gUnknown_02024A60
+_081385A0:
+ movs r0, 0
+ mov r8, r0
+ movs r0, 0xC
+ adds r0, r3
+ mov r9, r0
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _081385F4
+ adds r7, r1, r0
+ adds r6, r3, 0
+ adds r6, 0x8
+ adds r4, r3, 0
+_081385BA:
+ mov r1, r8
+ adds r1, 0xD
+ adds r0, r7, 0
+ adds r2, r4, 0
+ bl SetMonData
+ mov r1, r8
+ adds r1, 0x11
+ adds r0, r7, 0
+ adds r2, r6, 0
+ bl SetMonData
+ adds r6, 0x1
+ adds r4, 0x2
+ movs r0, 0x1
+ add r8, r0
+ mov r0, r8
+ cmp r0, 0x3
+ ble _081385BA
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081385F4
+ adds r0, r1
+ movs r1, 0x15
+ mov r2, r9
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_081385F4: .4byte gPlayerParty
+_081385F8:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138614
+ adds r0, r1
+ ldr r3, _08138618
+ ldr r1, _0813861C
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x9
+ b _0813869C
+ .align 2, 0
+_08138614: .4byte gPlayerParty
+_08138618: .4byte gUnknown_02023A60
+_0813861C: .4byte gUnknown_02024A60
+_08138620:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _0813867C
+ adds r4, r0
+ ldr r5, _08138680
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r2, r7
+ adds r0, r4, 0
+ movs r1, 0x11
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x1
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x12
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x2
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x13
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x3
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x14
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x4
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x15
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813867C: .4byte gPlayerParty
+_08138680: .4byte gUnknown_02024A60
+_08138684:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081386A8
+ adds r0, r1
+ ldr r3, _081386AC
+ ldr r1, _081386B0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r1, r3, 0x1
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ adds r1, 0x8
+_0813869C:
+ adds r3, 0x3
+ adds r2, r3
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_081386A8: .4byte gPlayerParty
+_081386AC: .4byte gUnknown_02023A60
+_081386B0: .4byte gUnknown_02024A60
+_081386B4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081386CC
+ adds r0, r1
+ ldr r1, _081386D0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_081386CC: .4byte gPlayerParty
+_081386D0: .4byte gUnknown_02024A60
+_081386D4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081386EC
+ adds r0, r1
+ ldr r1, _081386F0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x19
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_081386EC: .4byte gPlayerParty
+_081386F0: .4byte gUnknown_02024A60
+_081386F4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813870C
+ adds r0, r1
+ ldr r1, _08138710
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1A
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813870C: .4byte gPlayerParty
+_08138710: .4byte gUnknown_02024A60
+_08138714:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813872C
+ adds r0, r1
+ ldr r1, _08138730
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1B
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813872C: .4byte gPlayerParty
+_08138730: .4byte gUnknown_02024A60
+_08138734:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813874C
+ adds r0, r1
+ ldr r1, _08138750
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1C
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813874C: .4byte gPlayerParty
+_08138750: .4byte gUnknown_02024A60
+_08138754:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813876C
+ adds r0, r1
+ ldr r1, _08138770
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1D
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813876C: .4byte gPlayerParty
+_08138770: .4byte gUnknown_02024A60
+_08138774:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813878C
+ adds r0, r1
+ ldr r1, _08138790
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1E
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813878C: .4byte gPlayerParty
+_08138790: .4byte gUnknown_02024A60
+_08138794:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081387AC
+ adds r0, r1
+ ldr r1, _081387B0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x1F
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_081387AC: .4byte gPlayerParty
+_081387B0: .4byte gUnknown_02024A60
+_081387B4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081387CC
+ adds r0, r1
+ ldr r1, _081387D0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x20
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_081387CC: .4byte gPlayerParty
+_081387D0: .4byte gUnknown_02024A60
+_081387D4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081387EC
+ adds r0, r1
+ ldr r1, _081387F0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x22
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_081387EC: .4byte gPlayerParty
+_081387F0: .4byte gUnknown_02024A60
+_081387F4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813880C
+ adds r0, r1
+ ldr r1, _08138810
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x23
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813880C: .4byte gPlayerParty
+_08138810: .4byte gUnknown_02024A60
+_08138814:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813882C
+ adds r0, r1
+ ldr r1, _08138830
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x24
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813882C: .4byte gPlayerParty
+_08138830: .4byte gUnknown_02024A60
+_08138834:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813884C
+ adds r0, r1
+ ldr r1, _08138850
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x25
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813884C: .4byte gPlayerParty
+_08138850: .4byte gUnknown_02024A60
+_08138854:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813886C
+ adds r0, r1
+ ldr r1, _08138870
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x26
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813886C: .4byte gPlayerParty
+_08138870: .4byte gUnknown_02024A60
+_08138874:
+ movs r0, 0x64
+ adds r4, r5, 0
+ muls r4, r0
+ ldr r0, _081388DC
+ adds r4, r0
+ ldr r5, _081388E0
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r2, r7
+ adds r0, r4, 0
+ movs r1, 0x27
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x1
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x28
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x2
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x29
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x3
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x4
+ adds r2, r0
+ adds r0, r4, 0
+ movs r1, 0x2B
+ bl SetMonData
+ ldrb r2, [r5]
+ lsls r2, 9
+ adds r0, r7, 0x5
+ adds r2, r0
+ adds r0, r4, 0
+ b _08138994
+ .align 2, 0
+_081388DC: .4byte gPlayerParty
+_081388E0: .4byte gUnknown_02024A60
+_081388E4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081388FC
+ adds r0, r1
+ ldr r1, _08138900
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x27
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_081388FC: .4byte gPlayerParty
+_08138900: .4byte gUnknown_02024A60
+_08138904:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813891C
+ adds r0, r1
+ ldr r1, _08138920
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x28
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813891C: .4byte gPlayerParty
+_08138920: .4byte gUnknown_02024A60
+_08138924:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813893C
+ adds r0, r1
+ ldr r1, _08138940
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x29
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813893C: .4byte gPlayerParty
+_08138940: .4byte gUnknown_02024A60
+_08138944:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813895C
+ adds r0, r1
+ ldr r1, _08138960
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x2A
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813895C: .4byte gPlayerParty
+_08138960: .4byte gUnknown_02024A60
+_08138964:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813897C
+ adds r0, r1
+ ldr r1, _08138980
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x2B
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813897C: .4byte gPlayerParty
+_08138980: .4byte gUnknown_02024A60
+_08138984:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0813899C
+ adds r0, r1
+ ldr r1, _081389A0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+_08138994:
+ movs r1, 0x2C
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_0813899C: .4byte gPlayerParty
+_081389A0: .4byte gUnknown_02024A60
+_081389A4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081389BC
+ adds r0, r1
+ ldr r1, _081389C0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_081389BC: .4byte gPlayerParty
+_081389C0: .4byte gUnknown_02024A60
+_081389C4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081389DC
+ adds r0, r1
+ ldr r1, _081389E0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x9
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_081389DC: .4byte gPlayerParty
+_081389E0: .4byte gUnknown_02024A60
+_081389E4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _081389FC
+ adds r0, r1
+ ldr r1, _08138A00
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x37
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_081389FC: .4byte gPlayerParty
+_08138A00: .4byte gUnknown_02024A60
+_08138A04:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138A1C
+ adds r0, r1
+ ldr r1, _08138A20
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x38
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138A1C: .4byte gPlayerParty
+_08138A20: .4byte gUnknown_02024A60
+_08138A24:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138A3C
+ adds r0, r1
+ ldr r1, _08138A40
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x39
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138A3C: .4byte gPlayerParty
+_08138A40: .4byte gUnknown_02024A60
+_08138A44:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138A5C
+ adds r0, r1
+ ldr r1, _08138A60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3A
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138A5C: .4byte gPlayerParty
+_08138A60: .4byte gUnknown_02024A60
+_08138A64:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138A7C
+ adds r0, r1
+ ldr r1, _08138A80
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3B
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138A7C: .4byte gPlayerParty
+_08138A80: .4byte gUnknown_02024A60
+_08138A84:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138A9C
+ adds r0, r1
+ ldr r1, _08138AA0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3C
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138A9C: .4byte gPlayerParty
+_08138AA0: .4byte gUnknown_02024A60
+_08138AA4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138ABC
+ adds r0, r1
+ ldr r1, _08138AC0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3D
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138ABC: .4byte gPlayerParty
+_08138AC0: .4byte gUnknown_02024A60
+_08138AC4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138ADC
+ adds r0, r1
+ ldr r1, _08138AE0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3E
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138ADC: .4byte gPlayerParty
+_08138AE0: .4byte gUnknown_02024A60
+_08138AE4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138AFC
+ adds r0, r1
+ ldr r1, _08138B00
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x3F
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138AFC: .4byte gPlayerParty
+_08138B00: .4byte gUnknown_02024A60
+_08138B04:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138B1C
+ adds r0, r1
+ ldr r1, _08138B20
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x16
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138B1C: .4byte gPlayerParty
+_08138B20: .4byte gUnknown_02024A60
+_08138B24:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138B3C
+ adds r0, r1
+ ldr r1, _08138B40
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x17
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138B3C: .4byte gPlayerParty
+_08138B40: .4byte gUnknown_02024A60
+_08138B44:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138B5C
+ adds r0, r1
+ ldr r1, _08138B60
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x18
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138B5C: .4byte gPlayerParty
+_08138B60: .4byte gUnknown_02024A60
+_08138B64:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138B7C
+ adds r0, r1
+ ldr r1, _08138B80
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x21
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138B7C: .4byte gPlayerParty
+_08138B80: .4byte gUnknown_02024A60
+_08138B84:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138B9C
+ adds r0, r1
+ ldr r1, _08138BA0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x2F
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138B9C: .4byte gPlayerParty
+_08138BA0: .4byte gUnknown_02024A60
+_08138BA4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138BBC
+ adds r0, r1
+ ldr r1, _08138BC0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x30
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138BBC: .4byte gPlayerParty
+_08138BC0: .4byte gUnknown_02024A60
+_08138BC4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138BDC
+ adds r0, r1
+ ldr r1, _08138BE0
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x32
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138BDC: .4byte gPlayerParty
+_08138BE0: .4byte gUnknown_02024A60
+_08138BE4:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138BFC
+ adds r0, r1
+ ldr r1, _08138C00
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x33
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138BFC: .4byte gPlayerParty
+_08138C00: .4byte gUnknown_02024A60
+_08138C04:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138C1C
+ adds r0, r1
+ ldr r1, _08138C20
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x34
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138C1C: .4byte gPlayerParty
+_08138C20: .4byte gUnknown_02024A60
+_08138C24:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138C3C
+ adds r0, r1
+ ldr r1, _08138C40
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x35
+ bl SetMonData
+ b _08138C5A
+ .align 2, 0
+_08138C3C: .4byte gPlayerParty
+_08138C40: .4byte gUnknown_02024A60
+_08138C44:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _08138C84
+ adds r0, r1
+ ldr r1, _08138C88
+ ldrb r2, [r1]
+ lsls r2, 9
+ adds r2, r7
+ movs r1, 0x36
+ bl SetMonData
+_08138C5A:
+ ldr r2, _08138C8C
+ ldr r0, _08138C88
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r2
+ ldrh r2, [r0]
+ movs r0, 0x64
+ muls r0, r2
+ ldr r2, _08138C84
+ adds r0, r2
+ bl sub_80324F8
+ add sp, 0x34
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08138C84: .4byte gPlayerParty
+_08138C88: .4byte gUnknown_02024A60
+_08138C8C: .4byte gUnknown_02024A6A
+ thumb_func_end sub_8138294
+
+ thumb_func_start sub_8138C90
+sub_8138C90: @ 8138C90
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8138C90
+
+ thumb_func_start sub_8138C9C
+sub_8138C9C: @ 8138C9C
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8138C9C
+
+ thumb_func_start sub_8138CA8
+sub_8138CA8: @ 8138CA8
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8138CA8
+
+ thumb_func_start sub_8138CB4
+sub_8138CB4: @ 8138CB4
+ push {r4-r6,lr}
+ ldr r0, _08138CE0
+ ldr r6, _08138CE4
+ ldrb r2, [r6]
+ lsls r1, r2, 9
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08138CF0
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x1
+ bl move_anim_start_t4
+ ldr r0, _08138CE8
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _08138CEC
+ str r0, [r1]
+ b _08138D26
+ .align 2, 0
+_08138CE0: .4byte gUnknown_02023A60
+_08138CE4: .4byte gUnknown_02024A60
+_08138CE8: .4byte gUnknown_03004330
+_08138CEC: .4byte sub_813789C
+_08138CF0:
+ ldr r5, _08138D2C
+ adds r0, r2, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _08138D30
+ adds r0, r4
+ bl FreeSpriteOamMatrix
+ ldrb r0, [r6]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ ldr r1, _08138D34
+ ldrb r0, [r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8043DB0
+ bl dp01_tbl5_exec_completed
+_08138D26:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08138D2C: .4byte gUnknown_02024BE0
+_08138D30: .4byte gSprites
+_08138D34: .4byte gUnknown_03004340
+ thumb_func_end sub_8138CB4
+
+ thumb_func_start sub_8138D38
+sub_8138D38: @ 8138D38
+ push {r4-r6,lr}
+ ldr r4, _08138DE0
+ ldrb r1, [r4]
+ movs r0, 0x2
+ bl sub_8031AF4
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x2
+ bl GetMonSpriteTemplate_803C5A0
+ ldr r0, _08138DE4
+ ldr r1, _08138DE8
+ ldrb r1, [r1, 0x8]
+ movs r2, 0x8
+ subs r2, r1
+ lsls r2, 18
+ movs r1, 0xA0
+ lsls r1, 15
+ adds r2, r1
+ asrs r2, 16
+ movs r1, 0x50
+ movs r3, 0x1E
+ bl CreateSprite
+ ldr r6, _08138DEC
+ ldrb r1, [r4]
+ adds r1, r6
+ strb r0, [r1]
+ ldr r5, _08138DF0
+ ldrb r3, [r4]
+ adds r0, r3, r6
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ lsls r3, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0xF0
+ strh r1, [r0, 0x24]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08138DF4
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r5, 0x1C
+ adds r0, r5
+ ldr r1, _08138DF8
+ str r1, [r0]
+ ldr r1, _08138DFC
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08138E00
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08138DE0: .4byte gUnknown_02024A60
+_08138DE4: .4byte gUnknown_02024E8C
+_08138DE8: .4byte gTrainerBackPicCoords
+_08138DEC: .4byte gUnknown_02024BE0
+_08138DF0: .4byte gSprites
+_08138DF4: .4byte 0x0000fffe
+_08138DF8: .4byte sub_80313A0
+_08138DFC: .4byte gUnknown_03004330
+_08138E00: .4byte sub_813741C
+ thumb_func_end sub_8138D38
+
+ thumb_func_start sub_8138E04
+sub_8138E04: @ 8138E04
+ push {r4-r6,lr}
+ ldr r4, _08138EAC
+ ldrb r1, [r4]
+ movs r0, 0x2
+ bl sub_8031AF4
+ ldrb r0, [r4]
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x2
+ bl GetMonSpriteTemplate_803C5A0
+ ldr r0, _08138EB0
+ ldr r1, _08138EB4
+ ldrb r1, [r1, 0x8]
+ movs r2, 0x8
+ subs r2, r1
+ lsls r2, 18
+ movs r1, 0xA0
+ lsls r1, 15
+ adds r2, r1
+ asrs r2, 16
+ movs r1, 0x50
+ movs r3, 0x1E
+ bl CreateSprite
+ ldr r6, _08138EB8
+ ldrb r1, [r4]
+ adds r1, r6
+ strb r0, [r1]
+ ldr r5, _08138EBC
+ ldrb r3, [r4]
+ adds r0, r3, r6
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ lsls r3, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08138EC0
+ strh r1, [r0, 0x24]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x2
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r4]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r5, 0x1C
+ adds r0, r5
+ ldr r1, _08138EC4
+ str r1, [r0]
+ ldr r1, _08138EC8
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08138ECC
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08138EAC: .4byte gUnknown_02024A60
+_08138EB0: .4byte gUnknown_02024E8C
+_08138EB4: .4byte gTrainerBackPicCoords
+_08138EB8: .4byte gUnknown_02024BE0
+_08138EBC: .4byte gSprites
+_08138EC0: .4byte 0x0000ffa0
+_08138EC4: .4byte sub_80313A0
+_08138EC8: .4byte gUnknown_03004330
+_08138ECC: .4byte sub_8137908
+ thumb_func_end sub_8138E04
+
+ thumb_func_start sub_8138ED0
+sub_8138ED0: @ 8138ED0
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8138ED0
+
+ thumb_func_start sub_8138EDC
+sub_8138EDC: @ 8138EDC
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8138EDC
+
+ thumb_func_start sub_8138EE8
+sub_8138EE8: @ 8138EE8
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8138EE8
+
+ thumb_func_start sub_8138EF4
+sub_8138EF4: @ 8138EF4
+ push {r4,r5,lr}
+ ldr r1, _08138F30
+ movs r0, 0x4
+ strb r0, [r1, 0x8]
+ ldr r1, _08138F34
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r5, _08138F38
+ ldrb r4, [r5]
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ adds r1, r4, 0
+ movs r3, 0x4
+ bl move_anim_start_t4
+ ldr r1, _08138F3C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08138F40
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08138F30: .4byte 0x02017840
+_08138F34: .4byte gUnknown_02024E6D
+_08138F38: .4byte gUnknown_02024A60
+_08138F3C: .4byte gUnknown_03004330
+_08138F40: .4byte bx_wait_t5
+ thumb_func_end sub_8138EF4
+
+ thumb_func_start sub_8138F44
+sub_8138F44: @ 8138F44
+ push {r4,r5,lr}
+ ldr r1, _08138F88
+ ldr r5, _08138F8C
+ ldrb r0, [r5]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r0, _08138F90
+ strb r1, [r0, 0x8]
+ ldr r1, _08138F94
+ movs r0, 0x1
+ strb r0, [r1]
+ ldrb r4, [r5]
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ adds r1, r4, 0
+ movs r3, 0x4
+ bl move_anim_start_t4
+ ldr r1, _08138F98
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08138F9C
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08138F88: .4byte gUnknown_02023A60
+_08138F8C: .4byte gUnknown_02024A60
+_08138F90: .4byte 0x02017840
+_08138F94: .4byte gUnknown_02024E6D
+_08138F98: .4byte gUnknown_03004330
+_08138F9C: .4byte bx_wait_t5
+ thumb_func_end sub_8138F44
+
+ thumb_func_start sub_8138FA0
+sub_8138FA0: @ 8138FA0
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8138FA0
+
+ thumb_func_start sub_8138FAC
+sub_8138FAC: @ 8138FAC
+ push {r4-r6,lr}
+ ldr r0, _08139080
+ mov r12, r0
+ ldr r6, _08139084
+ ldrb r2, [r6]
+ lsls r2, 9
+ adds r0, 0x1
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ mov r1, r12
+ adds r1, 0x2
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ ldr r5, _08139088
+ mov r1, r12
+ adds r1, 0x3
+ adds r2, r1
+ ldrb r1, [r2]
+ strb r1, [r5]
+ ldr r4, _0813908C
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x4
+ adds r1, r2, r1
+ ldrb r3, [r1]
+ mov r1, r12
+ adds r1, 0x5
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 8
+ orrs r3, r1
+ strh r3, [r4]
+ ldr r4, _08139090
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x6
+ adds r1, r2, r1
+ ldrb r3, [r1]
+ mov r1, r12
+ adds r1, 0x7
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r3, r1
+ mov r1, r12
+ adds r1, 0x8
+ adds r1, r2, r1
+ ldrb r1, [r1]
+ lsls r1, 16
+ orrs r3, r1
+ mov r1, r12
+ adds r1, 0x9
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 24
+ orrs r3, r1
+ str r3, [r4]
+ ldr r3, _08139094
+ ldrb r1, [r6]
+ lsls r1, 9
+ mov r2, r12
+ adds r2, 0xA
+ adds r1, r2
+ ldrb r1, [r1]
+ strb r1, [r3]
+ ldr r4, _08139098
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0xC
+ adds r1, r2, r1
+ ldrb r3, [r1]
+ mov r1, r12
+ adds r1, 0xD
+ adds r2, r1
+ ldrb r1, [r2]
+ lsls r1, 8
+ orrs r3, r1
+ strh r3, [r4]
+ ldr r3, _0813909C
+ ldrb r2, [r6]
+ lsls r2, 9
+ mov r1, r12
+ adds r1, 0x10
+ adds r2, r1
+ str r2, [r3]
+ ldr r3, _081390A0
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r3
+ ldr r2, [r2]
+ str r2, [r1]
+ ldrb r1, [r5]
+ bl sub_8031720
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _081390A4
+ bl dp01_tbl5_exec_completed
+ b _081390BE
+ .align 2, 0
+_08139080: .4byte gUnknown_02023A60
+_08139084: .4byte gUnknown_02024A60
+_08139088: .4byte gUnknown_0202F7C4
+_0813908C: .4byte gUnknown_0202F7BC
+_08139090: .4byte gUnknown_0202F7B8
+_08139094: .4byte gUnknown_0202F7BE
+_08139098: .4byte gUnknown_0202F7C0
+_0813909C: .4byte gUnknown_0202F7B4
+_081390A0: .4byte gUnknown_02024E70
+_081390A4:
+ ldrb r1, [r6]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _081390C4
+ adds r0, r1
+ strb r2, [r0, 0x4]
+ ldr r1, _081390C8
+ ldrb r0, [r6]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _081390CC
+ str r1, [r0]
+_081390BE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081390C4: .4byte 0x02017810
+_081390C8: .4byte gUnknown_03004330
+_081390CC: .4byte sub_81390D0
+ thumb_func_end sub_8138FAC
+
+ thumb_func_start sub_81390D0
+sub_81390D0: @ 81390D0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r2, _0813910C
+ ldr r5, _08139110
+ ldrb r3, [r5]
+ lsls r1, r3, 9
+ adds r0, r2, 0x1
+ mov r8, r0
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r7, r2, 0x2
+ adds r1, r7
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r4, r0
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r6, _08139114
+ adds r0, r6
+ ldrb r2, [r0, 0x4]
+ cmp r2, 0x1
+ beq _08139150
+ cmp r2, 0x1
+ bgt _08139118
+ cmp r2, 0
+ beq _08139122
+ b _081391FC
+ .align 2, 0
+_0813910C: .4byte gUnknown_02023A60
+_08139110: .4byte gUnknown_02024A60
+_08139114: .4byte 0x02017810
+_08139118:
+ cmp r2, 0x2
+ beq _08139176
+ cmp r2, 0x3
+ beq _081391C4
+ b _081391FC
+_08139122:
+ lsls r0, r3, 2
+ adds r1, r6, 0
+ subs r1, 0x10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08139140
+ adds r0, r3, 0
+ adds r1, r3, 0
+ adds r2, r3, 0
+ movs r3, 0x5
+ bl move_anim_start_t4
+_08139140:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r0, 0x1
+ strb r0, [r1, 0x4]
+ b _081391FC
+_08139150:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _081391FC
+ movs r0, 0
+ bl sub_80326EC
+ adds r0, r4, 0
+ bl move_anim_start_t1
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r0, 0x2
+ strb r0, [r1, 0x4]
+ b _081391FC
+_08139176:
+ ldr r0, _081391BC
+ ldr r0, [r0]
+ bl _call_via_r0
+ ldr r0, _081391C0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081391FC
+ movs r0, 0x1
+ bl sub_80326EC
+ ldrb r2, [r5]
+ lsls r0, r2, 2
+ adds r1, r6, 0
+ subs r1, 0x10
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _081391AA
+ adds r0, r2, 0
+ adds r1, r2, 0
+ movs r3, 0x6
+ bl move_anim_start_t4
+_081391AA:
+ ldrb r0, [r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ movs r0, 0x3
+ strb r0, [r1, 0x4]
+ b _081391FC
+ .align 2, 0
+_081391BC: .4byte gUnknown_0202F7AC
+_081391C0: .4byte gUnknown_0202F7B1
+_081391C4:
+ ldrb r1, [r0]
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _081391FC
+ bl sub_8031F24
+ ldrb r0, [r5]
+ lsls r2, r0, 9
+ mov r3, r8
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ adds r2, r7
+ ldrb r2, [r2]
+ lsls r2, 8
+ orrs r1, r2
+ bl sub_80324BC
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ strb r4, [r0, 0x4]
+ bl dp01_tbl5_exec_completed
+_081391FC:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81390D0
+
+ thumb_func_start sub_8139208
+sub_8139208: @ 8139208
+ push {r4,r5,lr}
+ sub sp, 0x4
+ ldr r0, _08139254
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _08139258
+ strh r1, [r0]
+ ldr r5, _0813925C
+ ldrb r0, [r5]
+ lsls r0, 9
+ ldr r1, _08139260
+ adds r4, r0, r1
+ ldrh r0, [r4]
+ cmp r0, 0x2
+ bne _0813922A
+ bl sub_814A7FC
+_0813922A:
+ ldrh r0, [r4]
+ bl sub_8120AA8
+ ldr r0, _08139264
+ ldr r1, _08139268
+ movs r2, 0xF
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x2
+ bl sub_8002EB0
+ ldr r1, _0813926C
+ ldrb r0, [r5]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08139270
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139254: .4byte gUnknown_030042A4
+_08139258: .4byte gUnknown_030042A0
+_0813925C: .4byte gUnknown_02024A60
+_08139260: .4byte gUnknown_02023A62
+_08139264: .4byte gUnknown_03004210
+_08139268: .4byte gUnknown_020238CC
+_0813926C: .4byte gUnknown_03004330
+_08139270: .4byte sub_8137454
+ thumb_func_end sub_8139208
+
+ thumb_func_start dp01t_11_5_message_for_player_only
+dp01t_11_5_message_for_player_only: @ 8139274
+ push {lr}
+ ldr r0, _0813928C
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08139290
+ bl sub_8139208
+ b _08139294
+ .align 2, 0
+_0813928C: .4byte gUnknown_02024A60
+_08139290:
+ bl dp01_tbl5_exec_completed
+_08139294:
+ pop {r0}
+ bx r0
+ thumb_func_end dp01t_11_5_message_for_player_only
+
+ thumb_func_start sub_8139298
+sub_8139298: @ 8139298
+ push {r4,r5,lr}
+ sub sp, 0x8
+ ldr r0, _0813934C
+ movs r2, 0
+ strh r2, [r0]
+ ldr r1, _08139350
+ movs r0, 0xA0
+ strh r0, [r1]
+ ldr r4, _08139354
+ movs r5, 0
+ strb r2, [r4, 0x6]
+ movs r0, 0x1B
+ str r0, [sp]
+ movs r0, 0x12
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0x2
+ movs r3, 0xF
+ bl FillWindowRect_DefaultPalette
+ movs r0, 0x10
+ str r0, [sp]
+ movs r0, 0x24
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0x2
+ movs r3, 0x23
+ bl FillWindowRect_DefaultPalette
+ ldr r1, _08139358
+ ldr r0, _0813935C
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08139360
+ str r1, [r0]
+ ldr r1, _08139364
+ movs r2, 0xC8
+ lsls r2, 1
+ movs r0, 0x23
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x12
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ ldr r1, _08139368
+ ldr r3, _0813936C
+ str r5, [sp]
+ movs r0, 0
+ movs r2, 0xC
+ bl sub_814A5C0
+ movs r4, 0
+_0813930C:
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl nullsub_8
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0813930C
+ movs r0, 0
+ movs r1, 0
+ bl sub_802E3E4
+ ldr r0, _08139370
+ bl get_battle_strings_
+ ldr r4, _08139354
+ ldr r1, _08139374
+ movs r2, 0xDC
+ lsls r2, 1
+ movs r0, 0x23
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r3, 0x2
+ bl InitWindow
+ adds r0, r4, 0
+ bl sub_8002F44
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813934C: .4byte gUnknown_030042A4
+_08139350: .4byte gUnknown_030042A0
+_08139354: .4byte gUnknown_03004210
+_08139358: .4byte gUnknown_03004330
+_0813935C: .4byte gUnknown_02024A60
+_08139360: .4byte sub_81372BC
+_08139364: .4byte gUnknown_08400CF3
+_08139368: .4byte 0x0000ffff
+_0813936C: .4byte 0x00002d9f
+_08139370: .4byte gUnknown_08400CCC
+_08139374: .4byte gUnknown_020238CC
+ thumb_func_end sub_8139298
+
+ thumb_func_start sub_8139378
+sub_8139378: @ 8139378
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139378
+
+ thumb_func_start sub_8139384
+sub_8139384: @ 8139384
+ push {r4,r5,lr}
+ ldr r5, _08139398
+ ldr r0, _0813939C
+ adds r4, r5, r0
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _081393A0
+ cmp r0, 0x1
+ beq _081393B2
+ b _081393DE
+ .align 2, 0
+_08139398: .4byte 0x02000000
+_0813939C: .4byte 0x000160a9
+_081393A0:
+ bl sub_80304A8
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ ldr r0, _081393E4
+ adds r1, r5, r0
+ movs r0, 0x50
+ strb r0, [r1]
+_081393B2:
+ ldr r1, _081393E8
+ ldr r0, _081393E4
+ adds r1, r0
+ ldrb r0, [r1]
+ subs r0, 0x1
+ strb r0, [r1]
+ lsls r0, 24
+ cmp r0, 0
+ bne _081393DE
+ bl sub_814A7FC
+ movs r0, 0x5
+ bl PlaySE
+ movs r2, 0x80
+ lsls r2, 1
+ movs r0, 0x1
+ movs r1, 0xA
+ bl dp01_build_cmdbuf_x21_a_bb
+ bl dp01_tbl5_exec_completed
+_081393DE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081393E4: .4byte 0x000160ab
+_081393E8: .4byte 0x02000000
+ thumb_func_end sub_8139384
+
+ thumb_func_start sub_81393EC
+sub_81393EC: @ 81393EC
+ 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, _0813941C
+ ldr r2, _08139420
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08139424
+ str r1, [r0]
+ ldr r1, _08139428
+ ldrb r0, [r2]
+ strb r0, [r1]
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813941C: .4byte gUnknown_03004330
+_08139420: .4byte gUnknown_02024A60
+_08139424: .4byte sub_81374C4
+_08139428: .4byte gUnknown_02024E6C
+ thumb_func_end sub_81393EC
+
+ thumb_func_start sub_813942C
+sub_813942C: @ 813942C
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813942C
+
+ thumb_func_start sub_8139438
+sub_8139438: @ 8139438
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139438
+
+ thumb_func_start sub_8139444
+sub_8139444: @ 8139444
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ movs r0, 0
+ bl load_gfxc_health_bar
+ ldr r3, _081394BC
+ ldr r0, _081394C0
+ mov r9, r0
+ ldrb r4, [r0]
+ lsls r2, r4, 9
+ adds r0, r3, 0x2
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ adds r3, 0x3
+ adds r2, r3
+ ldrb r0, [r2]
+ lsls r0, 8
+ orrs r1, r0
+ lsls r1, 16
+ asrs r7, r1, 16
+ ldr r0, _081394C4
+ cmp r7, r0
+ beq _081394D4
+ ldr r6, _081394C8
+ lsls r0, r4, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ movs r5, 0x64
+ muls r0, r5
+ ldr r4, _081394CC
+ adds r0, r4
+ movs r1, 0x3A
+ bl GetMonData
+ mov r8, r0
+ mov r1, r9
+ ldrb r0, [r1]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ muls r0, r5
+ adds r0, r4
+ movs r1, 0x39
+ bl GetMonData
+ adds r3, r0, 0
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r1, _081394D0
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ str r7, [sp]
+ mov r2, r8
+ bl sub_8043D84
+ b _0813950E
+ .align 2, 0
+_081394BC: .4byte gUnknown_02023A60
+_081394C0: .4byte gUnknown_02024A60
+_081394C4: .4byte 0x00007fff
+_081394C8: .4byte gUnknown_02024A6A
+_081394CC: .4byte gPlayerParty
+_081394D0: .4byte gUnknown_03004340
+_081394D4:
+ ldr r1, _0813952C
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08139530
+ adds r0, r1
+ movs r1, 0x3A
+ bl GetMonData
+ adds r2, r0, 0
+ mov r1, r9
+ ldrb r0, [r1]
+ ldr r4, _08139534
+ adds r1, r0, r4
+ ldrb r1, [r1]
+ str r7, [sp]
+ movs r3, 0
+ bl sub_8043D84
+ mov r1, r9
+ ldrb r0, [r1]
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r1, 0
+ movs r2, 0
+ bl sub_80440EC
+_0813950E:
+ ldr r1, _08139538
+ ldr r0, _0813953C
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08139540
+ str r1, [r0]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813952C: .4byte gUnknown_02024A6A
+_08139530: .4byte gPlayerParty
+_08139534: .4byte gUnknown_03004340
+_08139538: .4byte gUnknown_03004330
+_0813953C: .4byte gUnknown_02024A60
+_08139540: .4byte sub_81377B0
+ thumb_func_end sub_8139444
+
+ thumb_func_start sub_8139544
+sub_8139544: @ 8139544
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139544
+
+ thumb_func_start sub_8139550
+sub_8139550: @ 8139550
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139550
+
+ thumb_func_start sub_813955C
+sub_813955C: @ 813955C
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813955C
+
+ thumb_func_start sub_8139568
+sub_8139568: @ 8139568
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139568
+
+ thumb_func_start sub_8139574
+sub_8139574: @ 8139574
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139574
+
+ thumb_func_start sub_8139580
+sub_8139580: @ 8139580
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139580
+
+ thumb_func_start sub_813958C
+sub_813958C: @ 813958C
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813958C
+
+ thumb_func_start sub_8139598
+sub_8139598: @ 8139598
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139598
+
+ thumb_func_start sub_81395A4
+sub_81395A4: @ 81395A4
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81395A4
+
+ thumb_func_start sub_81395B0
+sub_81395B0: @ 81395B0
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81395B0
+
+ thumb_func_start sub_81395BC
+sub_81395BC: @ 81395BC
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81395BC
+
+ thumb_func_start sub_81395C8
+sub_81395C8: @ 81395C8
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81395C8
+
+ thumb_func_start sub_81395D4
+sub_81395D4: @ 81395D4
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81395D4
+
+ thumb_func_start sub_81395E0
+sub_81395E0: @ 81395E0
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81395E0
+
+ thumb_func_start sub_81395EC
+sub_81395EC: @ 81395EC
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81395EC
+
+ thumb_func_start sub_81395F8
+sub_81395F8: @ 81395F8
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81395F8
+
+ thumb_func_start sub_8139604
+sub_8139604: @ 8139604
+ push {r4,lr}
+ ldr r3, _0813962C
+ ldr r2, _08139630
+ ldr r4, _08139634
+ ldrb r0, [r4]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ bge _08139638
+ bl dp01_tbl5_exec_completed
+ b _08139662
+ .align 2, 0
+_0813962C: .4byte gSprites
+_08139630: .4byte gUnknown_02024BE0
+_08139634: .4byte gUnknown_02024A60
+_08139638:
+ ldr r1, _08139668
+ movs r0, 0x1
+ strb r0, [r1]
+ ldrb r0, [r4]
+ adds r0, r2
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x30]
+ ldrb r0, [r4]
+ bl sub_8047858
+ ldr r1, _0813966C
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08139670
+ str r1, [r0]
+_08139662:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139668: .4byte gUnknown_02024E6D
+_0813966C: .4byte gUnknown_03004330
+_08139670: .4byte bx_blink_t5
+ thumb_func_end sub_8139604
+
+ thumb_func_start sub_8139674
+sub_8139674: @ 8139674
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139674
+
+ thumb_func_start sub_8139680
+sub_8139680: @ 8139680
+ push {lr}
+ ldr r2, _081396A8
+ ldr r0, _081396AC
+ ldrb r1, [r0]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ bl PlaySE
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081396A8: .4byte gUnknown_02023A60
+_081396AC: .4byte gUnknown_02024A60
+ thumb_func_end sub_8139680
+
+ thumb_func_start sub_81396B0
+sub_81396B0: @ 81396B0
+ push {lr}
+ ldr r2, _081396D8
+ ldr r0, _081396DC
+ ldrb r1, [r0]
+ lsls r1, 9
+ adds r0, r2, 0x1
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ adds r2, 0x2
+ adds r1, r2
+ ldrb r1, [r1]
+ lsls r1, 8
+ orrs r0, r1
+ bl PlayFanfare
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081396D8: .4byte gUnknown_02023A60
+_081396DC: .4byte gUnknown_02024A60
+ thumb_func_end sub_81396B0
+
+ thumb_func_start sub_81396E0
+sub_81396E0: @ 81396E0
+ push {lr}
+ ldr r1, _08139710
+ ldr r0, _08139714
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08139718
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x19
+ bl PlayCry1
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139710: .4byte gUnknown_02024A6A
+_08139714: .4byte gUnknown_02024A60
+_08139718: .4byte gPlayerParty
+ thumb_func_end sub_81396E0
+
+ thumb_func_start dp01t_2E_5_battle_intro
+dp01t_2E_5_battle_intro: @ 813971C
+ push {lr}
+ ldr r1, _08139744
+ ldr r0, _08139748
+ ldrb r0, [r0]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_80E43C0
+ ldr r2, _0813974C
+ ldrh r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139744: .4byte gUnknown_02023A60
+_08139748: .4byte gUnknown_02024A60
+_0813974C: .4byte gUnknown_02024DE8
+ thumb_func_end dp01t_2E_5_battle_intro
+
+ thumb_func_start sub_8139750
+sub_8139750: @ 8139750
+ push {r4-r7,lr}
+ ldr r6, _08139880
+ ldr r7, _08139884
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _08139888
+ adds r0, r5
+ bl oamt_add_pos2_onto_pos1
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x32
+ strh r1, [r0, 0x2E]
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _0813988C
+ strh r1, [r0, 0x32]
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrh r1, [r0, 0x22]
+ strh r1, [r0, 0x36]
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r5, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _08139890
+ str r1, [r0]
+ ldrb r2, [r7]
+ adds r0, r2, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x38]
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08139894
+ bl oamt_set_x3A_32
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r0, _08139898
+ bl AllocSpritePalette
+ adds r4, r0, 0
+ lsls r4, 24
+ ldr r0, _0813989C
+ ldr r0, [r0, 0x10]
+ lsrs r4, 20
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r4, r2
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldrb r0, [r7]
+ adds r0, r6
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r4
+ strb r0, [r1, 0x5]
+ ldr r0, _081398A0
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _081398A4
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ ldrb r0, [r7]
+ strh r0, [r1, 0x8]
+ ldrb r3, [r7]
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 2
+ ldr r2, _081398A8
+ adds r0, r2
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08139864
+ ldr r0, _081398AC
+ adds r0, r3, r0
+ ldrb r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ ldr r1, _081398B0
+ str r1, [r0]
+_08139864:
+ adds r2, 0x30
+ ldrb r0, [r2, 0x9]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x9]
+ ldr r1, _081398B4
+ ldrb r0, [r7]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _081398B8
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139880: .4byte gUnknown_02024BE0
+_08139884: .4byte gUnknown_02024A60
+_08139888: .4byte gSprites
+_0813988C: .4byte 0x0000ffd8
+_08139890: .4byte sub_8078B34
+_08139894: .4byte sub_8030E38
+_08139898: .4byte 0x0000d6f8
+_0813989C: .4byte gTrainerBackPicPaletteTable
+_081398A0: .4byte sub_8139A2C
+_081398A4: .4byte gTasks
+_081398A8: .4byte 0x02017810
+_081398AC: .4byte gUnknown_02024E68
+_081398B0: .4byte sub_8044CA0
+_081398B4: .4byte gUnknown_03004330
+_081398B8: .4byte nullsub_91
+ thumb_func_end sub_8139750
+
+ thumb_func_start sub_81398BC
+sub_81398BC: @ 81398BC
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r0, r6, 2
+ ldr r1, _08139A00
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x2]
+ ldr r0, _08139A04
+ lsls r2, r6, 1
+ adds r2, r0
+ ldr r0, _08139A08
+ lsls r1, r6, 9
+ adds r0, 0x1
+ adds r1, r0
+ ldrb r0, [r1]
+ strh r0, [r2]
+ ldrh r1, [r2]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08139A0C
+ adds r0, r1
+ movs r1, 0xB
+ bl GetMonData
+ mov r8, r0
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ ldr r0, _08139A10
+ bl object_new_hidden_with_callback
+ ldr r1, _08139A14
+ mov r9, r1
+ add r9, r6
+ mov r1, r9
+ strb r0, [r1]
+ adds r0, r6, 0
+ bl battle_get_per_side_status
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl GetMonSpriteTemplate_803C56C
+ ldr r0, _08139A18
+ mov r10, r0
+ adds r0, r6, 0
+ movs r1, 0x2
+ bl sub_8077ABC
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ bl sub_8077F68
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ bl sub_8079E90
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r10
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl CreateSprite
+ ldr r4, _08139A1C
+ adds r4, r6, r4
+ strb r0, [r4]
+ ldr r5, _08139A20
+ mov r0, r9
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldrb r1, [r4]
+ strh r1, [r0, 0x30]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r6, [r0, 0x2E]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x32]
+ ldrb r0, [r4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ lsls r3, r6, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08139A24
+ adds r6, r1
+ ldrb r1, [r6]
+ bl StartSpriteAnim
+ ldrb r1, [r4]
+ 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]
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r5, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _08139A28
+ str r1, [r0]
+ movs r0, 0
+ movs r1, 0xFF
+ bl sub_8046400
+ mov r1, r9
+ ldrb r2, [r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r5
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x2E]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139A00: .4byte 0x02017800
+_08139A04: .4byte gUnknown_02024A6A
+_08139A08: .4byte gUnknown_02023A60
+_08139A0C: .4byte gPlayerParty
+_08139A10: .4byte sub_80312F0
+_08139A14: .4byte gUnknown_0300434C
+_08139A18: .4byte gUnknown_02024E8C
+_08139A1C: .4byte gUnknown_02024BE0
+_08139A20: .4byte gSprites
+_08139A24: .4byte gUnknown_02024E84
+_08139A28: .4byte SpriteCallbackDummy
+ thumb_func_end sub_81398BC
+
+ thumb_func_start sub_8139A2C
+sub_8139A2C: @ 8139A2C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _08139A4C
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r2, [r1, 0xA]
+ movs r3, 0xA
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x1E
+ bgt _08139A50
+ adds r0, r2, 0x1
+ strh r0, [r1, 0xA]
+ b _08139A86
+ .align 2, 0
+_08139A4C: .4byte gTasks
+_08139A50:
+ ldr r4, _08139A8C
+ ldrb r5, [r4]
+ ldrh r0, [r1, 0x8]
+ strb r0, [r4]
+ ldr r0, _08139A90
+ ldrb r1, [r4]
+ lsls r2, r1, 9
+ adds r0, 0x1
+ adds r2, r0
+ ldr r0, _08139A94
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ strb r0, [r2]
+ ldrb r0, [r4]
+ bl sub_81398BC
+ ldr r1, _08139A98
+ ldrb r0, [r4]
+ lsls r0, 2
+ adds r0, r1
+ ldr r1, _08139A9C
+ str r1, [r0]
+ strb r5, [r4]
+ adds r0, r6, 0
+ bl DestroyTask
+_08139A86:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139A8C: .4byte gUnknown_02024A60
+_08139A90: .4byte gUnknown_02023A60
+_08139A94: .4byte gUnknown_02024A6A
+_08139A98: .4byte gUnknown_03004330
+_08139A9C: .4byte sub_8137538
+ thumb_func_end sub_8139A2C
+
+ thumb_func_start sub_8139AA0
+sub_8139AA0: @ 8139AA0
+ push {r4,r5,lr}
+ ldr r1, _08139AC8
+ ldr r0, _08139ACC
+ ldrb r2, [r0]
+ lsls r0, r2, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08139AD0
+ adds r0, r2, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08139AD0
+ bl dp01_tbl5_exec_completed
+ b _08139B0A
+ .align 2, 0
+_08139AC8: .4byte gUnknown_02023A60
+_08139ACC: .4byte gUnknown_02024A60
+_08139AD0:
+ ldr r5, _08139B10
+ ldrb r1, [r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08139B14
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0]
+ ldrb r0, [r5]
+ lsls r4, r0, 9
+ ldr r3, _08139B18
+ adds r1, r4, r3
+ subs r2, r3, 0x3
+ adds r2, r4, r2
+ ldrb r2, [r2]
+ subs r3, 0x2
+ adds r4, r3
+ ldrb r3, [r4]
+ bl sub_8044804
+ ldr r2, _08139B1C
+ ldrb r1, [r5]
+ adds r1, r2
+ strb r0, [r1]
+ bl dp01_tbl5_exec_completed
+_08139B0A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139B10: .4byte gUnknown_02024A60
+_08139B14: .4byte 0x02017810
+_08139B18: .4byte gUnknown_02023A64
+_08139B1C: .4byte gUnknown_02024E68
+ thumb_func_end sub_8139AA0
+
+ thumb_func_start sub_8139B20
+sub_8139B20: @ 8139B20
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139B20
+
+ thumb_func_start sub_8139B2C
+sub_8139B2C: @ 8139B2C
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139B2C
+
+ thumb_func_start sub_8139B38
+sub_8139B38: @ 8139B38
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139B38
+
+ thumb_func_start sub_8139B44
+sub_8139B44: @ 8139B44
+ push {r4-r6,lr}
+ sub sp, 0x4
+ ldr r5, _08139B7C
+ ldr r6, _08139B80
+ ldrb r2, [r6]
+ lsls r1, r2, 9
+ adds r0, r5, 0x1
+ adds r0, r1, r0
+ ldrb r3, [r0]
+ adds r0, r5, 0x2
+ adds r0, r1, r0
+ ldrb r4, [r0]
+ adds r5, 0x3
+ adds r1, r5
+ ldrb r0, [r1]
+ lsls r0, 8
+ orrs r4, r0
+ str r4, [sp]
+ adds r0, r2, 0
+ adds r1, r2, 0
+ bl move_anim_start_t3
+ lsls r0, 24
+ cmp r0, 0
+ beq _08139B84
+ bl dp01_tbl5_exec_completed
+ b _08139B90
+ .align 2, 0
+_08139B7C: .4byte gUnknown_02023A60
+_08139B80: .4byte gUnknown_02024A60
+_08139B84:
+ ldr r0, _08139B98
+ ldrb r1, [r6]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _08139B9C
+ str r0, [r1]
+_08139B90:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139B98: .4byte gUnknown_03004330
+_08139B9C: .4byte sub_8137940
+ thumb_func_end sub_8139B44
+
+ thumb_func_start sub_8139BA0
+sub_8139BA0: @ 8139BA0
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139BA0
+
+ thumb_func_start sub_8139BAC
+sub_8139BAC: @ 8139BAC
+ push {lr}
+ bl dp01_tbl5_exec_completed
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139BAC
+
+ thumb_func_start sub_8139BB8
+sub_8139BB8: @ 8139BB8
+ push {r4,lr}
+ ldr r2, _08139BFC
+ ldr r1, _08139C00
+ ldr r4, _08139C04
+ ldrb r0, [r4]
+ lsls r0, 9
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ movs r0, 0x5
+ bl FadeOutMapMusic
+ movs r0, 0x3
+ bl BeginFastPaletteFade
+ bl dp01_tbl5_exec_completed
+ ldr r0, _08139C08
+ ldrh r1, [r0]
+ movs r0, 0x6
+ ands r0, r1
+ cmp r0, 0x2
+ bne _08139BF4
+ ldr r0, _08139C0C
+ ldrb r1, [r4]
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, _08139C10
+ str r0, [r1]
+_08139BF4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139BFC: .4byte gUnknown_02024D26
+_08139C00: .4byte gUnknown_02023A60
+_08139C04: .4byte gUnknown_02024A60
+_08139C08: .4byte gUnknown_020239F8
+_08139C0C: .4byte gUnknown_03004330
+_08139C10: .4byte sub_813746C
+ thumb_func_end sub_8139BB8
+
+ thumb_func_start nullsub_80
+nullsub_80: @ 8139C14
+ bx lr
+ thumb_func_end nullsub_80
+
+ thumb_func_start sub_8139C18
+sub_8139C18: @ 8139C18
+ push {r4-r6,lr}
+ movs r4, 0
+ ldr r0, _08139C6C
+ movs r1, 0x32
+ bl sub_80A9684
+ ldr r1, _08139C70
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _08139C64
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ beq _08139C64
+ adds r5, r1, 0
+ adds r6, r5, 0x2
+_08139C36:
+ lsls r1, r4, 2
+ adds r0, r1, r5
+ ldrh r0, [r0]
+ adds r1, r6
+ ldrh r1, [r1]
+ bl sub_80A9760
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08139C64
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, r4, 2
+ adds r0, r1, r5
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _08139C64
+ adds r0, r1, r6
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _08139C36
+_08139C64:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139C6C: .4byte gSaveBlock1 + 0x498
+_08139C70: .4byte gUnknown_084062F0
+ thumb_func_end sub_8139C18
+
+ thumb_func_start sub_8139C74
+sub_8139C74: @ 8139C74
+ push {lr}
+ ldr r1, _08139C9C
+ ldr r0, _08139CA0
+ str r0, [r1]
+ ldr r1, _08139CA4
+ movs r0, 0x4
+ strb r0, [r1]
+ ldr r0, _08139CA8
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08139CAC
+ ldr r2, _08139CB0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139C9C: .4byte gUnknown_02039314
+_08139CA0: .4byte gUnknown_084062B8
+_08139CA4: .4byte gUnknown_030007B4
+_08139CA8: .4byte TaskDummy
+_08139CAC: .4byte gOtherText_WhatWillYouDo
+_08139CB0: .4byte sub_8139CF4
+ thumb_func_end sub_8139C74
+
+ thumb_func_start sub_8139CB4
+sub_8139CB4: @ 8139CB4
+ push {lr}
+ ldr r1, _08139CDC
+ ldr r0, _08139CE0
+ str r0, [r1]
+ ldr r1, _08139CE4
+ movs r0, 0x3
+ strb r0, [r1]
+ ldr r0, _08139CE8
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08139CEC
+ ldr r2, _08139CF0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139CDC: .4byte gUnknown_02039314
+_08139CE0: .4byte gUnknown_084062BC
+_08139CE4: .4byte gUnknown_030007B4
+_08139CE8: .4byte TaskDummy
+_08139CEC: .4byte gOtherText_WhatWillYouDo
+_08139CF0: .4byte sub_8139CF4
+ thumb_func_end sub_8139CB4
+
+ thumb_func_start sub_8139CF4
+sub_8139CF4: @ 8139CF4
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _08139D50
+ ldrb r3, [r5]
+ lsls r3, 1
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xA
+ bl MenuDrawTextWindow
+ ldrb r2, [r5]
+ ldr r3, _08139D54
+ ldr r0, _08139D58
+ ldr r0, [r0]
+ str r0, [sp]
+ movs r0, 0x1
+ movs r1, 0x1
+ bl PrintMenuItemsReordered
+ ldrb r3, [r5]
+ 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 r1, _08139D5C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08139D60
+ str r1, [r0]
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139D50: .4byte gUnknown_030007B4
+_08139D54: .4byte gUnknown_08406298
+_08139D58: .4byte gUnknown_02039314
+_08139D5C: .4byte gTasks
+_08139D60: .4byte sub_8139D64
+ thumb_func_end sub_8139CF4
+
+ thumb_func_start sub_8139D64
+sub_8139D64: @ 8139D64
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, r5, 0
+ ldr r2, _08139D88
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08139D8C
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _08139E10
+ .align 2, 0
+_08139D88: .4byte gMain
+_08139D8C:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08139DA2
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _08139E10
+_08139DA2:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08139DE0
+ bl sub_8072DEC
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _08139DD8
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08139DDC
+ ldr r1, [r1]
+ adds r1, r0
+ ldrb r0, [r1]
+ lsls r0, 3
+ adds r4, 0x4
+ adds r0, r4
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl _call_via_r1
+ b _08139E10
+ .align 2, 0
+_08139DD8: .4byte gUnknown_08406298
+_08139DDC: .4byte gUnknown_02039314
+_08139DE0:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08139E10
+ bl sub_8072DEC
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _08139E18
+ ldr r0, _08139E1C
+ ldrb r0, [r0]
+ ldr r1, _08139E20
+ ldr r1, [r1]
+ adds r0, r1
+ subs r0, 0x1
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r2, 0x4
+ adds r0, r2
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+_08139E10:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139E18: .4byte gUnknown_08406298
+_08139E1C: .4byte gUnknown_030007B4
+_08139E20: .4byte gUnknown_02039314
+ thumb_func_end sub_8139D64
+
+ thumb_func_start sub_8139E24
+sub_8139E24: @ 8139E24
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08139E38
+ ldr r2, _08139E3C
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139E38: .4byte gOtherText_WhatWillYouDo
+_08139E3C: .4byte sub_8139CF4
+ thumb_func_end sub_8139E24
+
+ thumb_func_start sub_8139E40
+sub_8139E40: @ 8139E40
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ bl sub_8139F58
+ ldr r1, _08139E64
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08139E68
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139E64: .4byte gTasks
+_08139E68: .4byte sub_8139FD4
+ thumb_func_end sub_8139E40
+
+ thumb_func_start sub_8139E6C
+sub_8139E6C: @ 8139E6C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x9
+ bl MenuZeroFillWindowRect
+ bl sub_813AF3C
+ ldr r1, _08139E9C
+ movs r2, 0
+ strb r0, [r1, 0x3]
+ lsls r0, 24
+ cmp r0, 0
+ bne _08139EA8
+ ldr r1, _08139EA0
+ ldr r2, _08139EA4
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _08139ECA
+ .align 2, 0
+_08139E9C: .4byte 0x0201fe00
+_08139EA0: .4byte gOtherText_NoMailHere
+_08139EA4: .4byte sub_8139E24
+_08139EA8:
+ strb r2, [r1]
+ strb r2, [r1, 0x2]
+ bl sub_813AF78
+ adds r0, r4, 0
+ bl sub_813A240
+ adds r0, r4, 0
+ bl sub_813B108
+ ldr r0, _08139ED0
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08139ED4
+ str r0, [r1]
+_08139ECA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139ED0: .4byte gTasks
+_08139ED4: .4byte sub_813B174
+ thumb_func_end sub_8139E6C
+
+ thumb_func_start sub_8139ED8
+sub_8139ED8: @ 8139ED8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x9
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_80FE28C
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139ED8
+
+ thumb_func_start sub_8139EF8
+sub_8139EF8: @ 8139EF8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08139F24
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _08139F3C
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r0, _08139F28
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _08139F30
+ ldr r0, _08139F2C
+ bl ScriptContext1_SetupScript
+ b _08139F4C
+ .align 2, 0
+_08139F24: .4byte gUnknown_030007B4
+_08139F28: .4byte gSaveBlock2
+_08139F2C: .4byte gUnknown_08152850
+_08139F30:
+ ldr r0, _08139F38
+ bl ScriptContext1_SetupScript
+ b _08139F4C
+ .align 2, 0
+_08139F38: .4byte gUnknown_08152C75
+_08139F3C:
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x9
+ bl MenuZeroFillWindowRect
+ bl EnableBothScriptContexts
+_08139F4C:
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139EF8
+
+ thumb_func_start sub_8139F58
+sub_8139F58: @ 8139F58
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x9
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xB
+ movs r3, 0x9
+ bl MenuDrawTextWindow
+ ldr r3, _08139FAC
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x4
+ bl PrintMenuItems
+ str r4, [sp]
+ movs r0, 0xA
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x4
+ bl InitMenu
+ ldr r0, _08139FB0
+ lsls r4, 2
+ adds r4, r0
+ ldr r0, [r4]
+ bl sub_8139FB4
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08139FAC: .4byte gUnknown_084062C0
+_08139FB0: .4byte gUnknown_08406288
+ thumb_func_end sub_8139F58
+
+ thumb_func_start sub_8139FB4
+sub_8139FB4: @ 8139FB4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x2
+ movs r1, 0xF
+ movs r2, 0x1B
+ movs r3, 0x12
+ bl MenuFillWindowRectWithBlankTile
+ adds r0, r4, 0
+ movs r1, 0x2
+ movs r2, 0xF
+ bl MenuPrint
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8139FB4
+
+ thumb_func_start sub_8139FD4
+sub_8139FD4: @ 8139FD4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, r5, 0
+ ldr r2, _08139FF4
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08139FF8
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ b _0813A008
+ .align 2, 0
+_08139FF4: .4byte gMain
+_08139FF8:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0813A024
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+_0813A008:
+ bl MoveMenuCursor
+ ldr r4, _0813A020
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r4
+ ldr r0, [r0]
+ bl sub_8139FB4
+ b _0813A06C
+ .align 2, 0
+_0813A020: .4byte gUnknown_08406288
+_0813A024:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0813A050
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _0813A04C
+ 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 _0813A06C
+ .align 2, 0
+_0813A04C: .4byte gUnknown_084062C0
+_0813A050:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0813A06C
+ bl sub_8072DEC
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0813A074
+ ldr r1, [r0, 0x1C]
+ adds r0, r4, 0
+ bl _call_via_r1
+_0813A06C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A074: .4byte gUnknown_084062C0
+ thumb_func_end sub_8139FD4
+
+ thumb_func_start sub_813A078
+sub_813A078: @ 813A078
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0813A09C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0813A094
+ bl sub_80A6A30
+ adds r0, r4, 0
+ bl DestroyTask
+_0813A094:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A09C: .4byte gPaletteFade
+ thumb_func_end sub_813A078
+
+ thumb_func_start sub_813A0A0
+sub_813A0A0: @ 813A0A0
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0813A0C0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _0813A0C4
+ str r0, [r1]
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A0C0: .4byte gTasks
+_0813A0C4: .4byte sub_813A078
+ thumb_func_end sub_813A0A0
+
+ thumb_func_start sub_813A0C8
+sub_813A0C8: @ 813A0C8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0813A0E8
+ ldr r0, _0813A0F0
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0813A0F4
+ str r0, [r1]
+_0813A0E8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A0F0: .4byte gTasks
+_0813A0F4: .4byte sub_8139FD4
+ thumb_func_end sub_813A0C8
+
+ thumb_func_start sub_813A0F8
+sub_813A0F8: @ 813A0F8
+ push {lr}
+ bl MenuDisplayMessageBox
+ movs r0, 0x1
+ bl sub_8139F58
+ ldr r0, _0813A114
+ movs r1, 0
+ bl CreateTask
+ bl pal_fill_black
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A114: .4byte sub_813A0C8
+ thumb_func_end sub_813A0F8
+
+ thumb_func_start sub_813A118
+sub_813A118: @ 813A118
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r6, r0, 3
+ ldr r7, _0813A174
+ adds r4, r6, r7
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xB
+ movs r3, 0x9
+ bl MenuZeroFillWindowRect
+ bl sub_80A96E4
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x4]
+ cmp r0, 0
+ beq _0813A17C
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ strh r0, [r4, 0xC]
+ strh r0, [r4]
+ strh r0, [r4, 0x2]
+ adds r0, r5, 0
+ bl sub_813A240
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_813AE6C
+ adds r0, r7, 0
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _0813A178
+ str r1, [r0]
+ b _0813A188
+ .align 2, 0
+_0813A174: .4byte gUnknown_03004B28
+_0813A178: .4byte sub_813A280
+_0813A17C:
+ ldr r1, _0813A190
+ ldr r2, _0813A194
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_0813A188:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A190: .4byte gOtherText_NoItems
+_0813A194: .4byte sub_8139E40
+ thumb_func_end sub_813A118
+
+ thumb_func_start sub_813A198
+sub_813A198: @ 813A198
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r6, r0, 3
+ ldr r7, _0813A1F8
+ adds r4, r6, r7
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xB
+ movs r3, 0x9
+ bl MenuZeroFillWindowRect
+ bl sub_80A96E4
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x4]
+ cmp r0, 0
+ beq _0813A200
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0x2
+ strh r0, [r4, 0xC]
+ movs r0, 0
+ strh r0, [r4]
+ strh r0, [r4, 0x2]
+ adds r0, r5, 0
+ bl sub_813A240
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_813AE6C
+ adds r0, r7, 0
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _0813A1FC
+ str r1, [r0]
+ b _0813A20C
+ .align 2, 0
+_0813A1F8: .4byte gUnknown_03004B28
+_0813A1FC: .4byte sub_813A280
+_0813A200:
+ ldr r1, _0813A214
+ ldr r2, _0813A218
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+_0813A20C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A214: .4byte gOtherText_NoItems
+_0813A218: .4byte sub_8139E40
+ thumb_func_end sub_813A198
+
+ thumb_func_start sub_813A21C
+sub_813A21C: @ 813A21C
+ 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, 0x9
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_8139E24
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813A21C
+
+ thumb_func_start sub_813A240
+sub_813A240: @ 813A240
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _0813A260
+ adds r1, r0
+ ldrh r2, [r1, 0x4]
+ movs r3, 0x4
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x7
+ ble _0813A264
+ movs r0, 0x8
+ b _0813A266
+ .align 2, 0
+_0813A260: .4byte gUnknown_03004B28
+_0813A264:
+ adds r0, r2, 0x1
+_0813A266:
+ strh r0, [r1, 0x8]
+ ldr r1, _0813A274
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0x7
+ bls _0813A278
+ movs r0, 0x8
+ b _0813A27A
+ .align 2, 0
+_0813A274: .4byte 0x0201fe00
+_0813A278:
+ adds r0, 0x1
+_0813A27A:
+ strb r0, [r1, 0x1]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813A240
+
+ thumb_func_start sub_813A280
+sub_813A280: @ 813A280
+ 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, _0813A2DC
+ adds r4, r0, r1
+ ldr r2, _0813A2E0
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0813A306
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0813A2E4
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ ldrh r1, [r4, 0x2]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0813A2CC
+ b _0813A460
+_0813A2CC:
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ beq _0813A34C
+ b _0813A358
+ .align 2, 0
+_0813A2DC: .4byte gUnknown_03004B28
+_0813A2E0: .4byte gMain
+_0813A2E4:
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0813A2EE
+ b _0813A460
+_0813A2EE:
+ movs r0, 0x5
+ bl PlaySE
+ ldrh r0, [r4, 0x2]
+ subs r0, 0x1
+ strh r0, [r4, 0x2]
+ adds r0, r5, 0
+ bl sub_813AE0C
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ b _0813A394
+_0813A306:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0813A3A0
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ movs r2, 0x8
+ ldrsh r0, [r4, r2]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _0813A370
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ ldrh r1, [r4, 0x2]
+ adds r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0813A340
+ b _0813A460
+_0813A340:
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _0813A358
+_0813A34C:
+ ldr r0, _0813A354
+ bl sub_813AD58
+ b _0813A460
+ .align 2, 0
+_0813A354: .4byte 0x0000ffff
+_0813A358:
+ ldr r0, _0813A36C
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0x93
+ lsls r0, 3
+ adds r1, r0
+ ldrh r0, [r1]
+ bl sub_813AD58
+ b _0813A460
+ .align 2, 0
+_0813A36C: .4byte gSaveBlock1
+_0813A370:
+ movs r2, 0x2
+ ldrsh r0, [r4, r2]
+ adds r0, r1
+ movs r2, 0x4
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ beq _0813A460
+ movs r0, 0x5
+ bl PlaySE
+ ldrh r0, [r4, 0x2]
+ adds r0, 0x1
+ strh r0, [r4, 0x2]
+ adds r0, r5, 0
+ bl sub_813AE0C
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+_0813A394:
+ cmp r0, 0
+ beq _0813A460
+ movs r0, 0
+ bl MoveMenuCursor
+ b _0813A460
+_0813A3A0:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0813A3F0
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0813A3E8
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r2, 0x4
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ beq _0813A3DC
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ strh r0, [r4, 0x12]
+ ldrh r0, [r4]
+ ldrh r1, [r4, 0x2]
+ adds r0, r1
+ strh r0, [r4, 0x10]
+ ldr r0, _0813A3E4
+ bl sub_813AD58
+_0813A3DC:
+ adds r0, r5, 0
+ bl sub_813ABE8
+ b _0813A460
+ .align 2, 0
+_0813A3E4: .4byte 0x0000fff7
+_0813A3E8:
+ movs r0, 0x5
+ bl PlaySE
+ b _0813A420
+_0813A3F0:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0813A430
+ movs r0, 0x5
+ bl PlaySE
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0813A420
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r2, 0x4
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ beq _0813A44A
+ adds r0, r5, 0
+ bl sub_813A4B4
+ b _0813A460
+_0813A420:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_813AA30
+ adds r0, r5, 0
+ bl sub_813AE0C
+ b _0813A460
+_0813A430:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0813A460
+ movs r0, 0x5
+ bl PlaySE
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0813A452
+ bl sub_8072DEC
+_0813A44A:
+ adds r0, r5, 0
+ bl sub_813A468
+ b _0813A460
+_0813A452:
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_813AA30
+ adds r0, r6, 0
+ bl sub_813AE0C
+_0813A460:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813A280
+
+ thumb_func_start sub_813A468
+sub_813A468: @ 813A468
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ bl BuyMenuFreeMemory
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl MenuDisplayMessageBox
+ ldr r0, _0813A4AC
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ ldrb r0, [r4, 0x14]
+ bl sub_8139F58
+ ldr r0, _0813A4B0
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A4AC: .4byte gTasks
+_0813A4B0: .4byte sub_8139FD4
+ thumb_func_end sub_813A468
+
+ thumb_func_start sub_813A4B4
+sub_813A4B4: @ 813A4B4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ ldr r1, _0813A500
+ adds r4, r0, r1
+ ldrb r0, [r4, 0x2]
+ ldrb r1, [r4]
+ adds r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0
+ bl sub_80F996C
+ movs r0, 0x1
+ bl sub_80F996C
+ movs r1, 0xC
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0813A518
+ ldr r1, _0813A504
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r1, _0813A508
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bne _0813A50C
+ strh r0, [r4, 0x6]
+ adds r0, r6, 0
+ bl sub_813A6FC
+ b _0813A570
+ .align 2, 0
+_0813A500: .4byte gUnknown_03004B28
+_0813A504: .4byte gSaveBlock1
+_0813A508: .4byte 0x0000049a
+_0813A50C:
+ ldr r0, _0813A514
+ bl sub_813AD58
+ b _0813A542
+ .align 2, 0
+_0813A514: .4byte 0x0000fffe
+_0813A518:
+ ldr r1, _0813A534
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r1, _0813A538
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0x1
+ bne _0813A53C
+ strh r0, [r4, 0x6]
+ adds r0, r6, 0
+ bl sub_813A794
+ b _0813A570
+ .align 2, 0
+_0813A534: .4byte gSaveBlock1
+_0813A538: .4byte 0x0000049a
+_0813A53C:
+ ldr r0, _0813A578
+ bl sub_813AD58
+_0813A542:
+ movs r0, 0x1
+ strh r0, [r4, 0x6]
+ movs r0, 0x6
+ movs r1, 0x8
+ movs r2, 0xD
+ movs r3, 0xB
+ bl MenuDrawTextWindow
+ ldrh r0, [r4, 0x6]
+ movs r1, 0x3
+ str r1, [sp]
+ movs r1, 0x1
+ movs r2, 0x8
+ movs r3, 0x9
+ bl sub_80A418C
+ ldr r1, _0813A57C
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0813A580
+ str r1, [r0]
+_0813A570:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A578: .4byte 0x0000fffc
+_0813A57C: .4byte gTasks
+_0813A580: .4byte sub_813A584
+ thumb_func_end sub_813A4B4
+
+ thumb_func_start sub_813A584
+sub_813A584: @ 813A584
+ 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 r7, r0, 3
+ ldr r0, _0813A5D0
+ mov r8, r0
+ adds r4, r7, r0
+ ldrb r0, [r4, 0x2]
+ ldrb r1, [r4]
+ adds r0, r1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r6, r3, 0
+ ldr r2, _0813A5D4
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0813A5E4
+ movs r0, 0x6
+ ldrsh r2, [r4, r0]
+ ldr r1, _0813A5D8
+ lsls r0, r3, 2
+ adds r0, r1
+ ldr r1, _0813A5DC
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r2, r0
+ beq _0813A5E0
+ ldrh r0, [r4, 0x6]
+ adds r0, 0x1
+ b _0813A64A
+ .align 2, 0
+_0813A5D0: .4byte gUnknown_03004B28
+_0813A5D4: .4byte gMain
+_0813A5D8: .4byte gSaveBlock1
+_0813A5DC: .4byte 0x0000049a
+_0813A5E0:
+ movs r0, 0x1
+ b _0813A64A
+_0813A5E4:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0813A610
+ ldrh r1, [r4, 0x6]
+ movs r2, 0x6
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x1
+ beq _0813A5FA
+ subs r0, r1, 0x1
+ b _0813A64A
+_0813A5FA:
+ ldr r0, _0813A608
+ lsls r1, r3, 2
+ adds r1, r0
+ ldr r3, _0813A60C
+ adds r1, r3
+ ldrh r0, [r1]
+ b _0813A64A
+ .align 2, 0
+_0813A608: .4byte gSaveBlock1
+_0813A60C: .4byte 0x0000049a
+_0813A610:
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0813A628
+ ldrh r0, [r4, 0x6]
+ subs r0, 0xA
+ strh r0, [r4, 0x6]
+ lsls r0, 16
+ cmp r0, 0
+ bgt _0813A64C
+ movs r0, 0x1
+ b _0813A64A
+_0813A628:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0813A668
+ ldrh r0, [r4, 0x6]
+ adds r0, 0xA
+ strh r0, [r4, 0x6]
+ movs r0, 0x6
+ ldrsh r2, [r4, r0]
+ ldr r1, _0813A660
+ lsls r0, r6, 2
+ adds r0, r1
+ ldr r1, _0813A664
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r2, r0
+ ble _0813A64C
+_0813A64A:
+ strh r0, [r4, 0x6]
+_0813A64C:
+ ldrh r0, [r4, 0x6]
+ movs r1, 0x3
+ str r1, [sp]
+ movs r1, 0x1
+ movs r2, 0x8
+ movs r3, 0x9
+ bl sub_80A418C
+ b _0813A6E8
+ .align 2, 0
+_0813A660: .4byte gSaveBlock1
+_0813A664: .4byte 0x0000049a
+_0813A668:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0813A69C
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x6
+ movs r1, 0x6
+ movs r2, 0xD
+ movs r3, 0xB
+ bl MenuZeroFillWindowRect
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _0813A694
+ adds r0, r5, 0
+ bl sub_813A6FC
+ b _0813A6E8
+_0813A694:
+ adds r0, r5, 0
+ bl sub_813A794
+ b _0813A6E8
+_0813A69C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0813A6E8
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x6
+ movs r1, 0x6
+ movs r2, 0xD
+ movs r3, 0xB
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ bl sub_80F98DC
+ movs r0, 0x1
+ bl sub_80F98DC
+ ldr r2, _0813A6F4
+ movs r3, 0x2
+ ldrsh r0, [r4, r3]
+ movs r3, 0
+ ldrsh r1, [r4, r3]
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x93
+ lsls r1, 3
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_813AD58
+ mov r0, r8
+ subs r0, 0x8
+ adds r0, r7, r0
+ ldr r1, _0813A6F8
+ str r1, [r0]
+_0813A6E8:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A6F4: .4byte gSaveBlock1
+_0813A6F8: .4byte sub_813A280
+ thumb_func_end sub_813A584
+
+ thumb_func_start sub_813A6FC
+sub_813A6FC: @ 813A6FC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r6, r1, 3
+ ldr r7, _0813A758
+ adds r4, r6, r7
+ ldrb r0, [r4, 0x2]
+ ldrb r1, [r4]
+ adds r0, r1
+ lsls r0, 24
+ ldr r1, _0813A75C
+ lsrs r0, 22
+ adds r0, r1
+ movs r2, 0x93
+ lsls r2, 3
+ adds r5, r0, r2
+ ldrh r0, [r5]
+ ldrh r1, [r4, 0x6]
+ bl sub_80A9424
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0813A770
+ ldrh r0, [r5]
+ ldr r1, _0813A760
+ bl itemid_copy_name
+ ldr r0, _0813A764
+ movs r2, 0x6
+ ldrsh r1, [r4, r2]
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r0, _0813A768
+ bl sub_813AD58
+ adds r0, r7, 0
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _0813A76C
+ b _0813A782
+ .align 2, 0
+_0813A758: .4byte gUnknown_03004B28
+_0813A75C: .4byte gSaveBlock1
+_0813A760: .4byte gStringVar1
+_0813A764: .4byte gStringVar2
+_0813A768: .4byte 0x0000fffd
+_0813A76C: .4byte sub_813A8F0
+_0813A770:
+ movs r0, 0
+ strh r0, [r4, 0x6]
+ ldr r0, _0813A78C
+ bl sub_813AD58
+ adds r0, r7, 0
+ subs r0, 0x8
+ adds r0, r6, r0
+ ldr r1, _0813A790
+_0813A782:
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A78C: .4byte 0x0000fffa
+_0813A790: .4byte sub_813A984
+ thumb_func_end sub_813A6FC
+
+ thumb_func_start sub_813A794
+sub_813A794: @ 813A794
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r7, r0, 3
+ ldr r0, _0813A7FC
+ mov r8, r0
+ adds r4, r7, r0
+ ldrb r0, [r4, 0x2]
+ ldrb r1, [r4]
+ adds r0, r1
+ lsls r0, 24
+ ldr r1, _0813A800
+ lsrs r0, 22
+ adds r0, r1
+ movs r2, 0x93
+ lsls r2, 3
+ adds r5, r0, r2
+ ldrh r0, [r5]
+ bl itemid_is_unique
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813A814
+ ldrh r0, [r5]
+ ldr r1, _0813A804
+ bl itemid_copy_name
+ ldr r0, _0813A808
+ movs r2, 0x6
+ ldrsh r1, [r4, r2]
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r0, _0813A80C
+ bl sub_813AD58
+ movs r0, 0x7
+ movs r1, 0x6
+ movs r2, 0x1
+ bl DisplayYesNoMenu
+ ldr r1, _0813A810
+ adds r0, r6, 0
+ bl sub_80F914C
+ b _0813A828
+ .align 2, 0
+_0813A7FC: .4byte gUnknown_03004B28
+_0813A800: .4byte gSaveBlock1
+_0813A804: .4byte gStringVar1
+_0813A808: .4byte gStringVar2
+_0813A80C: .4byte 0x0000fff8
+_0813A810: .4byte gUnknown_084062E0
+_0813A814:
+ movs r0, 0
+ strh r0, [r4, 0x6]
+ ldr r0, _0813A834
+ bl sub_813AD58
+ mov r0, r8
+ subs r0, 0x8
+ adds r0, r7, r0
+ ldr r1, _0813A838
+ str r1, [r0]
+_0813A828:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A834: .4byte 0x0000fff9
+_0813A838: .4byte sub_813A8F0
+ thumb_func_end sub_813A794
+
+ thumb_func_start sub_813A83C
+sub_813A83C: @ 813A83C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x6
+ movs r1, 0x6
+ movs r2, 0xD
+ movs r3, 0xB
+ bl MenuZeroFillWindowRect
+ ldr r0, _0813A86C
+ bl sub_813AD58
+ ldr r1, _0813A870
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0813A874
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A86C: .4byte 0x0000fffb
+_0813A870: .4byte gTasks
+_0813A874: .4byte sub_813A8F0
+ thumb_func_end sub_813A83C
+
+ thumb_func_start sub_813A878
+sub_813A878: @ 813A878
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ ldr r6, _0813A8E4
+ adds r5, r4, r6
+ movs r0, 0x6
+ movs r1, 0x6
+ movs r2, 0xD
+ movs r3, 0xB
+ bl MenuZeroFillWindowRect
+ ldrb r3, [r5, 0x8]
+ ldrb r0, [r5]
+ str r0, [sp]
+ movs r0, 0xD
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x2
+ bl InitMenu
+ movs r0, 0
+ bl sub_80F98DC
+ movs r0, 0x1
+ bl sub_80F98DC
+ ldr r2, _0813A8E8
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ movs r3, 0
+ ldrsh r1, [r5, r3]
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x93
+ lsls r1, 3
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_813AD58
+ subs r6, 0x8
+ adds r4, r6
+ ldr r0, _0813A8EC
+ str r0, [r4]
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A8E4: .4byte gUnknown_03004B28
+_0813A8E8: .4byte gSaveBlock1
+_0813A8EC: .4byte sub_813A280
+ thumb_func_end sub_813A878
+
+ thumb_func_start sub_813A8F0
+sub_813A8F0: @ 813A8F0
+ 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, _0813A97C
+ adds r5, r0, r1
+ ldr r0, _0813A980
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0813A912
+ cmp r1, 0x2
+ bne _0813A972
+_0813A912:
+ ldrb r0, [r5, 0x2]
+ ldrb r1, [r5]
+ adds r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r5, 0x6]
+ bl sub_80A97F4
+ ldrh r4, [r5, 0x4]
+ bl sub_80A96E4
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x4]
+ lsls r4, 16
+ asrs r4, 16
+ cmp r4, r0
+ beq _0813A952
+ movs r2, 0x8
+ ldrsh r0, [r5, r2]
+ movs r2, 0x2
+ ldrsh r1, [r5, r2]
+ adds r0, r1
+ cmp r4, r0
+ bge _0813A952
+ ldrh r1, [r5, 0x2]
+ movs r2, 0x2
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _0813A952
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x2]
+_0813A952:
+ adds r0, r6, 0
+ bl sub_813A240
+ adds r0, r6, 0
+ bl sub_813A9EC
+ ldrb r3, [r5, 0x8]
+ ldrb r0, [r5]
+ str r0, [sp]
+ movs r0, 0xD
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x2
+ bl InitMenu
+_0813A972:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A97C: .4byte gUnknown_03004B28
+_0813A980: .4byte gMain
+ thumb_func_end sub_813A8F0
+
+ thumb_func_start sub_813A984
+sub_813A984: @ 813A984
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r4, r1, 3
+ ldr r5, _0813A9DC
+ adds r3, r4, r5
+ ldr r0, _0813A9E0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0813A9A4
+ cmp r1, 0x2
+ bne _0813A9D6
+_0813A9A4:
+ ldr r2, _0813A9E4
+ movs r1, 0x2
+ ldrsh r0, [r3, r1]
+ movs r6, 0
+ ldrsh r1, [r3, r6]
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x93
+ lsls r1, 3
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_813AD58
+ movs r0, 0
+ bl sub_80F98DC
+ movs r0, 0x1
+ bl sub_80F98DC
+ adds r0, r5, 0
+ subs r0, 0x8
+ adds r0, r4, r0
+ ldr r1, _0813A9E8
+ str r1, [r0]
+_0813A9D6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813A9DC: .4byte gUnknown_03004B28
+_0813A9E0: .4byte gMain
+_0813A9E4: .4byte gSaveBlock1
+_0813A9E8: .4byte sub_813A280
+ thumb_func_end sub_813A984
+
+ thumb_func_start sub_813A9EC
+sub_813A9EC: @ 813A9EC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x6
+ movs r1, 0x6
+ movs r2, 0xD
+ movs r3, 0xB
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ bl sub_80F98DC
+ movs r0, 0x1
+ bl sub_80F98DC
+ adds r0, r4, 0
+ bl sub_813AE0C
+ ldr r1, _0813AA28
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0813AA2C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813AA28: .4byte gTasks
+_0813AA2C: .4byte sub_813A280
+ thumb_func_end sub_813A9EC
+
+ thumb_func_start sub_813AA30
+sub_813AA30: @ 813AA30
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r2, r1, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _0813AA80
+ adds r4, r1, r0
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x2]
+ adds r0, r1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0
+ strh r0, [r4, 0x12]
+ ldrb r0, [r4, 0x4]
+ cmp r0, r5
+ bls _0813AA88
+ ldrb r0, [r4, 0x10]
+ cmp r0, r5
+ beq _0813AA88
+ cmp r2, 0
+ bne _0813AA88
+ ldr r1, _0813AA84
+ movs r0, 0x10
+ ldrsh r2, [r4, r0]
+ lsls r2, 2
+ movs r0, 0x93
+ lsls r0, 3
+ adds r1, r0
+ adds r2, r1
+ ldr r3, [r2]
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r1, [r0]
+ str r1, [r2]
+ str r3, [r0]
+ b _0813AAB8
+ .align 2, 0
+_0813AA80: .4byte gUnknown_03004B28
+_0813AA84: .4byte gSaveBlock1
+_0813AA88:
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ cmp r5, r0
+ bne _0813AA9C
+ ldr r0, _0813AA98
+ bl sub_813AD58
+ b _0813AAAE
+ .align 2, 0
+_0813AA98: .4byte 0x0000ffff
+_0813AA9C:
+ ldr r0, _0813AAC0
+ lsls r1, r5, 2
+ adds r1, r0
+ movs r2, 0x93
+ lsls r2, 3
+ adds r1, r2
+ ldrh r0, [r1]
+ bl sub_813AD58
+_0813AAAE:
+ movs r0, 0x10
+ ldrsh r1, [r4, r0]
+ movs r2, 0x2
+ ldrsh r0, [r4, r2]
+ subs r0, r1, r0
+_0813AAB8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813AAC0: .4byte gSaveBlock1
+ thumb_func_end sub_813AA30
+
+ thumb_func_start sub_813AAC4
+sub_813AAC4: @ 813AAC4
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r6, [sp, 0x14]
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, _0813AAF4
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_80A4164
+ cmp r6, 0
+ beq _0813AAFC
+ ldr r0, _0813AAF8
+ movs r1, 0x1A
+ adds r2, r7, 0
+ bl MenuPrint
+ b _0813AB06
+ .align 2, 0
+_0813AAF4: .4byte gStringVar1
+_0813AAF8: .4byte gUnknown_0840632A
+_0813AAFC:
+ ldr r0, _0813AB0C
+ movs r1, 0x1A
+ adds r2, r7, 0
+ bl MenuPrint
+_0813AB06:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813AB0C: .4byte gUnknown_08406327
+ thumb_func_end sub_813AAC4
+
+ thumb_func_start sub_813AB10
+sub_813AB10: @ 813AB10
+ push {lr}
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, _0813AB24
+ movs r1, 0x19
+ bl MenuPrint
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813AB24: .4byte gUnknown_08406330
+ thumb_func_end sub_813AB10
+
+ thumb_func_start sub_813AB28
+sub_813AB28: @ 813AB28
+ push {r4,r5,lr}
+ adds r4, r2, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldrh r0, [r0]
+ ldr r1, _0813AB48
+ bl itemid_copy_name
+ cmp r4, 0
+ beq _0813AB50
+ ldr r0, _0813AB4C
+ movs r1, 0x10
+ adds r2, r5, 0
+ bl MenuPrint
+ b _0813AB5A
+ .align 2, 0
+_0813AB48: .4byte gStringVar1
+_0813AB4C: .4byte gUnknown_0840631E
+_0813AB50:
+ ldr r0, _0813AB60
+ movs r1, 0x10
+ adds r2, r5, 0
+ bl MenuPrint
+_0813AB5A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813AB60: .4byte gUnknown_08406318
+ thumb_func_end sub_813AB28
+
+ thumb_func_start sub_813AB64
+sub_813AB64: @ 813AB64
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r1, r4, 0
+ bl sub_813AB28
+ ldrh r0, [r6, 0x2]
+ str r5, [sp]
+ movs r1, 0x1
+ adds r2, r4, 0
+ movs r3, 0x3
+ bl sub_813AAC4
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813AB64
+
+ thumb_func_start sub_813AB90
+sub_813AB90: @ 813AB90
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r1, r4, 0
+ bl sub_813AB28
+ adds r0, r4, 0
+ bl sub_813AB10
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813AB90
+
+ thumb_func_start sub_813ABAC
+sub_813ABAC: @ 813ABAC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r6, r2, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ adds r1, r5, 0
+ bl sub_813AB28
+ ldrh r1, [r4]
+ movs r0, 0xA9
+ lsls r0, 1
+ cmp r1, r0
+ bhi _0813ABD8
+ ldrh r0, [r4, 0x2]
+ str r6, [sp]
+ movs r1, 0x1
+ adds r2, r5, 0
+ movs r3, 0x3
+ bl sub_813AAC4
+ b _0813ABDE
+_0813ABD8:
+ adds r0, r5, 0
+ bl sub_813AB10
+_0813ABDE:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813ABAC
+
+ thumb_func_start sub_813ABE8
+sub_813ABE8: @ 813ABE8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _0813AC0C
+ adds r6, r1, r0
+ movs r0, 0
+ mov r8, r0
+ ldrh r5, [r6, 0x2]
+ movs r2, 0x2
+ ldrsh r1, [r6, r2]
+ b _0813ACC4
+ .align 2, 0
+_0813AC0C: .4byte gUnknown_03004B28
+_0813AC10:
+ subs r0, r5, r1
+ lsls r0, 17
+ lsrs r0, 16
+ mov r8, r0
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ cmp r5, r0
+ beq _0813AD04
+ movs r7, 0
+ movs r2, 0x12
+ ldrsh r0, [r6, r2]
+ cmp r0, 0
+ beq _0813AC34
+ movs r1, 0x10
+ ldrsh r0, [r6, r1]
+ cmp r5, r0
+ bne _0813AC34
+ movs r7, 0x1
+_0813AC34:
+ ldr r0, _0813AC5C
+ lsls r4, r5, 2
+ adds r0, r4, r0
+ movs r2, 0x93
+ lsls r2, 3
+ adds r0, r2
+ ldrh r0, [r0]
+ bl sub_80A9670
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x1
+ cmp r0, 0x4
+ bhi _0813ACBA
+ lsls r0, 2
+ ldr r1, _0813AC60
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0813AC5C: .4byte gSaveBlock1
+_0813AC60: .4byte _0813AC64
+ .align 2, 0
+_0813AC64:
+ .4byte _0813AC78
+ .4byte _0813AC78
+ .4byte _0813ACA8
+ .4byte _0813AC78
+ .4byte _0813AC90
+_0813AC78:
+ ldr r0, _0813AC8C
+ adds r0, r4, r0
+ mov r1, r8
+ adds r1, 0x2
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r7, 0
+ bl sub_813AB64
+ b _0813ACBA
+ .align 2, 0
+_0813AC8C: .4byte gSaveBlock1 + 0x498
+_0813AC90:
+ ldr r0, _0813ACA4
+ adds r0, r4, r0
+ mov r1, r8
+ adds r1, 0x2
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r7, 0
+ bl sub_813AB90
+ b _0813ACBA
+ .align 2, 0
+_0813ACA4: .4byte gSaveBlock1 + 0x498
+_0813ACA8:
+ ldr r0, _0813AD00
+ adds r0, r4, r0
+ mov r1, r8
+ adds r1, 0x2
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r7, 0
+ bl sub_813ABAC
+_0813ACBA:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ movs r0, 0x2
+ ldrsh r1, [r6, r0]
+_0813ACC4:
+ movs r2, 0x8
+ ldrsh r0, [r6, r2]
+ adds r0, r1, r0
+ cmp r5, r0
+ blt _0813AC10
+_0813ACCE:
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ subs r0, r5, r0
+ cmp r0, 0x7
+ bgt _0813ACEA
+ mov r1, r8
+ adds r1, 0x4
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x10
+ movs r2, 0x1C
+ movs r3, 0x12
+ bl MenuFillWindowRectWithBlankTile
+_0813ACEA:
+ movs r2, 0x2
+ ldrsh r0, [r6, r2]
+ cmp r0, 0
+ beq _0813AD20
+ movs r0, 0
+ movs r1, 0xB8
+ movs r2, 0x8
+ bl sub_80F953C
+ b _0813AD26
+ .align 2, 0
+_0813AD00: .4byte gSaveBlock1 + 0x498
+_0813AD04:
+ ldr r0, _0813AD1C
+ mov r2, r8
+ adds r2, 0x2
+ lsls r2, 19
+ lsrs r2, 16
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0x80
+ movs r3, 0x68
+ bl sub_8072A18
+ b _0813ACCE
+ .align 2, 0
+_0813AD1C: .4byte gOtherText_CancelNoTerminator
+_0813AD20:
+ movs r0, 0
+ bl SetBgTilemapBuffer
+_0813AD26:
+ movs r1, 0x2
+ ldrsh r0, [r6, r1]
+ movs r2, 0x8
+ ldrsh r1, [r6, r2]
+ adds r0, r1
+ movs r2, 0x4
+ ldrsh r1, [r6, r2]
+ cmp r0, r1
+ bgt _0813AD44
+ movs r0, 0x1
+ movs r1, 0xB8
+ movs r2, 0x98
+ bl sub_80F953C
+ b _0813AD4A
+_0813AD44:
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+_0813AD4A:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813ABE8
+
+ thumb_func_start sub_813AD58
+sub_813AD58: @ 813AD58
+ push {lr}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r1, r0, 16
+ ldr r2, _0813AD74
+ adds r0, r1, r2
+ cmp r0, 0x8
+ bhi _0813ADE8
+ lsls r0, 2
+ ldr r1, _0813AD78
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0813AD74: .4byte 0xffff0009
+_0813AD78: .4byte _0813AD7C
+ .align 2, 0
+_0813AD7C:
+ .4byte _0813ADE0
+ .4byte _0813ADD8
+ .4byte _0813ADD0
+ .4byte _0813ADC8
+ .4byte _0813ADC0
+ .4byte _0813ADB8
+ .4byte _0813ADB0
+ .4byte _0813ADA8
+ .4byte _0813ADA0
+_0813ADA0:
+ ldr r1, _0813ADA4
+ b _0813ADF0
+ .align 2, 0
+_0813ADA4: .4byte gMenuText_GoBackToPrev
+_0813ADA8:
+ ldr r1, _0813ADAC
+ b _0813ADF0
+ .align 2, 0
+_0813ADAC: .4byte gOtherText_HowManyToWithdraw
+_0813ADB0:
+ ldr r1, _0813ADB4
+ b _0813ADF0
+ .align 2, 0
+_0813ADB4: .4byte gOtherText_WithdrewThing
+_0813ADB8:
+ ldr r1, _0813ADBC
+ b _0813ADF0
+ .align 2, 0
+_0813ADBC: .4byte gOtherText_HowManyToToss
+_0813ADC0:
+ ldr r1, _0813ADC4
+ b _0813ADF0
+ .align 2, 0
+_0813ADC4: .4byte gOtherText_ThrewAwayItem
+_0813ADC8:
+ ldr r1, _0813ADCC
+ b _0813ADF0
+ .align 2, 0
+_0813ADCC: .4byte gOtherText_NoMoreRoom
+_0813ADD0:
+ ldr r1, _0813ADD4
+ b _0813ADF0
+ .align 2, 0
+_0813ADD4: .4byte gOtherText_TooImportant
+_0813ADD8:
+ ldr r1, _0813ADDC
+ b _0813ADF0
+ .align 2, 0
+_0813ADDC: .4byte gOtherText_OkayToThrowAwayPrompt
+_0813ADE0:
+ ldr r1, _0813ADE4
+ b _0813ADF0
+ .align 2, 0
+_0813ADE4: .4byte gOtherText_SwitchWhichItem
+_0813ADE8:
+ adds r0, r1, 0
+ bl itemid_get_description
+ adds r1, r0, 0
+_0813ADF0:
+ movs r0, 0x30
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ adds r0, r1, 0
+ movs r1, 0x8
+ movs r2, 0x68
+ movs r3, 0x68
+ bl sub_8072AB0
+ add sp, 0x8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813AD58
+
+ thumb_func_start sub_813AE0C
+sub_813AE0C: @ 813AE0C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r2, _0813AE48
+ adds r4, r1, r2
+ ldrh r1, [r4]
+ ldrh r2, [r4, 0x2]
+ adds r1, r2
+ lsls r1, 16
+ lsrs r5, r1, 16
+ bl sub_813ABE8
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _0813AE62
+ lsls r0, r5, 16
+ asrs r1, r0, 16
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _0813AE50
+ ldr r0, _0813AE4C
+ bl sub_813AD58
+ b _0813AE62
+ .align 2, 0
+_0813AE48: .4byte gUnknown_03004B28
+_0813AE4C: .4byte 0x0000ffff
+_0813AE50:
+ ldr r0, _0813AE68
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0x93
+ lsls r0, 3
+ adds r1, r0
+ ldrh r0, [r1]
+ bl sub_813AD58
+_0813AE62:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813AE68: .4byte gSaveBlock1
+ thumb_func_end sub_813AE0C
+
+ thumb_func_start sub_813AE6C
+sub_813AE6C: @ 813AE6C
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r6, r0, 0
+ adds r4, r1, 0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, r6, 2
+ adds r5, r6
+ lsls r5, 3
+ ldr r0, _0813AEF8
+ adds r5, r0
+ bl sub_80F944C
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ bl sub_813AF04
+ movs r0, 0xF
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ movs r0, 0
+ movs r1, 0xC
+ movs r2, 0xE
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xB
+ movs r3, 0x3
+ bl MenuDrawTextWindow
+ ldr r0, _0813AEFC
+ movs r1, 0x93
+ lsls r1, 3
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_813AD58
+ ldr r0, _0813AF00
+ lsls r4, 3
+ adds r4, r0
+ ldr r0, [r4]
+ movs r1, 0x1
+ movs r2, 0x1
+ bl MenuPrint
+ adds r0, r6, 0
+ bl sub_813ABE8
+ ldrb r3, [r5, 0x8]
+ ldrb r0, [r5]
+ str r0, [sp]
+ movs r0, 0xD
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x2
+ bl InitMenu
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813AEF8: .4byte gUnknown_03004B28
+_0813AEFC: .4byte gSaveBlock1
+_0813AF00: .4byte gUnknown_084062C0
+ thumb_func_end sub_813AE6C
+
+ thumb_func_start sub_813AF04
+sub_813AF04: @ 813AF04
+ push {lr}
+ sub sp, 0x8
+ ldr r1, _0813AF38
+ 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
+_0813AF38: .4byte gUnknown_08406334
+ thumb_func_end sub_813AF04
+
+ thumb_func_start sub_813AF3C
+sub_813AF3C: @ 813AF3C
+ push {r4,lr}
+ movs r2, 0
+ movs r1, 0x6
+ ldr r4, _0813AF70
+ ldr r3, _0813AF74
+_0813AF46:
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ adds r0, r3
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0813AF5C
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+_0813AF5C:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xF
+ bls _0813AF46
+ adds r0, r2, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0813AF70: .4byte gSaveBlock1
+_0813AF74: .4byte 0x00002b6c
+ thumb_func_end sub_813AF3C
+
+ thumb_func_start sub_813AF78
+sub_813AF78: @ 813AF78
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x24
+ movs r2, 0x6
+_0813AF86:
+ adds r1, r2, 0x1
+ lsls r0, r1, 24
+ lsrs r3, r0, 24
+ mov r10, r1
+ cmp r3, 0xF
+ bhi _0813AFF4
+ ldr r0, _0813B010
+ mov r12, r0
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 2
+ add r0, r12
+ ldr r1, _0813B014
+ adds r1, r0
+ mov r8, r1
+ ldr r2, _0813B018
+ mov r9, r2
+ adds r4, r0, r2
+_0813AFAA:
+ mov r5, r8
+ ldrh r0, [r5]
+ cmp r0, 0
+ bne _0813AFEA
+ mov r1, sp
+ adds r0, r4, 0
+ ldm r0!, {r2,r6,r7}
+ stm r1!, {r2,r6,r7}
+ ldm r0!, {r5-r7}
+ stm r1!, {r5-r7}
+ ldm r0!, {r2,r5,r6}
+ stm r1!, {r2,r5,r6}
+ lsls r2, r3, 3
+ adds r2, r3
+ lsls r2, 2
+ add r2, r12
+ add r2, r9
+ adds r1, r4, 0
+ adds r0, r2, 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}
+ mov r0, sp
+ ldm r0!, {r1,r5,r7}
+ stm r2!, {r1,r5,r7}
+ ldm r0!, {r1,r6,r7}
+ stm r2!, {r1,r6,r7}
+ ldm r0!, {r5-r7}
+ stm r2!, {r5-r7}
+_0813AFEA:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0xF
+ bls _0813AFAA
+_0813AFF4:
+ mov r1, r10
+ lsls r0, r1, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xE
+ bls _0813AF86
+ 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
+_0813B010: .4byte gSaveBlock1
+_0813B014: .4byte 0x00002b6c
+_0813B018: .4byte 0x00002b4c
+ thumb_func_end sub_813AF78
+
+ thumb_func_start sub_813B01C
+sub_813B01C: @ 813B01C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r7, 0
+ ldr r1, _0813B0B8
+ ldrb r4, [r1, 0x2]
+ ldrb r0, [r1, 0x1]
+ adds r0, r4, r0
+ cmp r4, r0
+ bge _0813B08A
+ adds r6, r1, 0
+ ldr r0, _0813B0BC
+ mov r8, r0
+_0813B036:
+ ldrb r0, [r6, 0x2]
+ subs r0, r4, r0
+ lsls r0, 17
+ lsrs r7, r0, 16
+ adds r0, r7, 0x2
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r3, r7, 0x3
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0x15
+ adds r1, r5, 0
+ movs r2, 0x1C
+ bl MenuFillWindowRectWithBlankTile
+ ldrb r0, [r6, 0x3]
+ cmp r4, r0
+ beq _0813B0C4
+ lsls r1, r4, 3
+ adds r1, r4
+ lsls r1, 2
+ ldr r0, _0813B0C0
+ adds r1, r0
+ mov r0, r8
+ bl StringCopy
+ mov r0, r8
+ bl sub_814A568
+ mov r0, r8
+ movs r1, 0x15
+ adds r2, r5, 0
+ bl MenuPrint
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrb r0, [r6, 0x2]
+ ldrb r1, [r6, 0x1]
+ adds r0, r1
+ cmp r4, r0
+ blt _0813B036
+_0813B08A:
+ ldr r5, _0813B0B8
+ ldrb r0, [r5, 0x2]
+ subs r0, r4, r0
+ cmp r0, 0x8
+ beq _0813B0A4
+ adds r1, r7, 0x4
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0x15
+ movs r2, 0x1C
+ movs r3, 0x12
+ bl MenuFillWindowRectWithBlankTile
+_0813B0A4:
+ ldrb r0, [r5, 0x2]
+ cmp r0, 0
+ beq _0813B0D4
+ movs r0, 0
+ movs r1, 0xC8
+ movs r2, 0x8
+ bl sub_80F953C
+ b _0813B0DA
+ .align 2, 0
+_0813B0B8: .4byte 0x0201fe00
+_0813B0BC: .4byte gStringVar1
+_0813B0C0: .4byte gSaveBlock1 + 0x2C36
+_0813B0C4:
+ ldr r0, _0813B0D0
+ movs r1, 0x15
+ adds r2, r5, 0
+ bl MenuPrint
+ b _0813B08A
+ .align 2, 0
+_0813B0D0: .4byte gOtherText_CancelNoTerminator
+_0813B0D4:
+ movs r0, 0
+ bl SetBgTilemapBuffer
+_0813B0DA:
+ ldr r0, _0813B0F4
+ ldrb r1, [r0, 0x2]
+ ldrb r2, [r0, 0x1]
+ adds r1, r2
+ ldrb r0, [r0, 0x3]
+ cmp r1, r0
+ bgt _0813B0F8
+ movs r0, 0x1
+ movs r1, 0xC8
+ movs r2, 0x98
+ bl sub_80F953C
+ b _0813B0FE
+ .align 2, 0
+_0813B0F4: .4byte 0x0201fe00
+_0813B0F8:
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+_0813B0FE:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813B01C
+
+ thumb_func_start sub_813B108
+sub_813B108: @ 813B108
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_80F944C
+ bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x8
+ movs r3, 0x3
+ bl MenuDrawTextWindow
+ ldr r0, _0813B16C
+ movs r1, 0x1
+ movs r2, 0x1
+ bl MenuPrint
+ movs r0, 0x14
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ adds r0, r4, 0
+ bl sub_813B01C
+ ldr r0, _0813B170
+ ldrb r3, [r0, 0x1]
+ ldrb r0, [r0]
+ str r0, [sp]
+ movs r0, 0x8
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x15
+ movs r2, 0x2
+ bl InitMenu
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B16C: .4byte gPCText_Mailbox
+_0813B170: .4byte 0x0201fe00
+ thumb_func_end sub_813B108
+
+ thumb_func_start sub_813B174
+sub_813B174: @ 813B174
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, r5, 0
+ ldr r0, _0813B1AC
+ ldrb r1, [r0, 0x7]
+ movs r3, 0x80
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0813B274
+ ldr r2, _0813B1B0
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0813B1CA
+ ldr r4, _0813B1B4
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _0813B1B8
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ b _0813B1E6
+ .align 2, 0
+_0813B1AC: .4byte gPaletteFade
+_0813B1B0: .4byte gMain
+_0813B1B4: .4byte 0x0201fe00
+_0813B1B8:
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0
+ beq _0813B274
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4, 0x2]
+ subs r0, 0x1
+ b _0813B208
+_0813B1CA:
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0813B212
+ ldr r4, _0813B1F0
+ ldrb r1, [r4]
+ ldrb r0, [r4, 0x1]
+ subs r0, 0x1
+ cmp r1, r0
+ beq _0813B1F4
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+_0813B1E6:
+ bl MoveMenuCursor
+ strb r0, [r4]
+ b _0813B274
+ .align 2, 0
+_0813B1F0: .4byte 0x0201fe00
+_0813B1F4:
+ ldrb r0, [r4, 0x2]
+ adds r0, r1
+ ldrb r1, [r4, 0x3]
+ cmp r0, r1
+ beq _0813B274
+ movs r0, 0x5
+ bl PlaySE
+ ldrb r0, [r4, 0x2]
+ adds r0, 0x1
+_0813B208:
+ strb r0, [r4, 0x2]
+ adds r0, r5, 0
+ bl sub_813B01C
+ b _0813B274
+_0813B212:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0813B25C
+ bl sub_8072DEC
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _0813B23C
+ ldrb r1, [r0, 0x2]
+ ldrb r2, [r0]
+ adds r1, r2
+ ldrb r0, [r0, 0x3]
+ cmp r1, r0
+ bne _0813B240
+ adds r0, r5, 0
+ bl sub_813B320
+ b _0813B274
+ .align 2, 0
+_0813B23C: .4byte 0x0201fe00
+_0813B240:
+ bl sub_813B27C
+ ldr r0, _0813B254
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0813B258
+ str r0, [r1]
+ b _0813B274
+ .align 2, 0
+_0813B254: .4byte gTasks
+_0813B258: .4byte sub_813B294
+_0813B25C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0813B274
+ bl sub_8072DEC
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_813B320
+_0813B274:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813B174
+
+ thumb_func_start sub_813B27C
+sub_813B27C: @ 813B27C
+ push {lr}
+ bl BuyMenuFreeMemory
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813B27C
+
+ thumb_func_start sub_813B294
+sub_813B294: @ 813B294
+ push {r4,r5,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, _0813B2E8
+ ldr r1, _0813B2EC
+ ldrb r0, [r1]
+ adds r0, 0x6
+ ldrb r1, [r1, 0x2]
+ adds r0, r1
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0813B2F0
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringCopy
+ adds r0, r4, 0
+ bl sub_814A568
+ ldr r4, _0813B2F4
+ ldr r1, _0813B2F8
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ ldr r2, _0813B2FC
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B2E8: .4byte gStringVar1
+_0813B2EC: .4byte 0x0201fe00
+_0813B2F0: .4byte gSaveBlock1 + 0x2B5E
+_0813B2F4: .4byte gStringVar4
+_0813B2F8: .4byte gOtherText_WhatWillYouDoMail
+_0813B2FC: .4byte sub_813B348
+ thumb_func_end sub_813B294
+
+ thumb_func_start sub_813B300
+sub_813B300: @ 813B300
+ 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_8139E24
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813B300
+
+ thumb_func_start sub_813B320
+sub_813B320: @ 813B320
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_813B27C
+ ldr r1, _0813B340
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0813B344
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B340: .4byte gTasks
+_0813B344: .4byte sub_813B300
+ thumb_func_end sub_813B320
+
+ thumb_func_start sub_813B348
+sub_813B348: @ 813B348
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xC
+ movs r3, 0x9
+ bl MenuDrawTextWindow
+ ldr r3, _0813B394
+ movs r0, 0x1
+ movs r1, 0x1
+ movs r2, 0x4
+ bl PrintMenuItems
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xB
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x4
+ bl InitMenu
+ ldr r1, _0813B398
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0813B39C
+ str r1, [r0]
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B394: .4byte gUnknown_084062F8
+_0813B398: .4byte gTasks
+_0813B39C: .4byte sub_813B3A0
+ thumb_func_end sub_813B348
+
+ thumb_func_start sub_813B3A0
+sub_813B3A0: @ 813B3A0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r4, r5, 0
+ ldr r2, _0813B3C4
+ ldrh r1, [r2, 0x30]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0813B3C8
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _0813B420
+ .align 2, 0
+_0813B3C4: .4byte gMain
+_0813B3C8:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0813B3DE
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _0813B420
+_0813B3DE:
+ ldrh r1, [r2, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0813B40C
+ movs r0, 0x5
+ bl PlaySE
+ ldr r4, _0813B408
+ 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 _0813B420
+ .align 2, 0
+_0813B408: .4byte gUnknown_084062F8
+_0813B40C:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0813B420
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl sub_813B734
+_0813B420:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813B3A0
+
+ thumb_func_start sub_813B428
+sub_813B428: @ 813B428
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r1, _0813B44C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0813B450
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B44C: .4byte gTasks
+_0813B450: .4byte sub_813B454
+ thumb_func_end sub_813B428
+
+ thumb_func_start sub_813B454
+sub_813B454: @ 813B454
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0813B490
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0813B488
+ ldr r0, _0813B494
+ ldrb r1, [r0]
+ adds r1, 0x6
+ ldrb r0, [r0, 0x2]
+ adds r1, r0
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0813B498
+ adds r0, r1
+ ldr r1, _0813B49C
+ movs r2, 0x1
+ bl sub_80F890C
+ adds r0, r4, 0
+ bl DestroyTask
+_0813B488:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B490: .4byte gPaletteFade
+_0813B494: .4byte 0x0201fe00
+_0813B498: .4byte gSaveBlock1 + 0x2B4C
+_0813B49C: .4byte sub_813B4F0
+ thumb_func_end sub_813B454
+
+ thumb_func_start sub_813B4A0
+sub_813B4A0: @ 813B4A0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_807D770
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0813B4C0
+ ldr r0, _0813B4C8
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0813B4CC
+ str r0, [r1]
+_0813B4C0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B4C8: .4byte gTasks
+_0813B4CC: .4byte sub_813B174
+ thumb_func_end sub_813B4A0
+
+ thumb_func_start sub_813B4D0
+sub_813B4D0: @ 813B4D0
+ push {lr}
+ ldr r0, _0813B4EC
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_813B108
+ bl pal_fill_black
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B4EC: .4byte sub_813B4A0
+ thumb_func_end sub_813B4D0
+
+ thumb_func_start sub_813B4F0
+sub_813B4F0: @ 813B4F0
+ push {lr}
+ ldr r0, _0813B504
+ ldr r1, _0813B508
+ str r1, [r0]
+ ldr r0, _0813B50C
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B504: .4byte gUnknown_0300485C
+_0813B508: .4byte sub_813B4D0
+_0813B50C: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end sub_813B4F0
+
+ thumb_func_start sub_813B510
+sub_813B510: @ 813B510
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ ldr r0, _0813B540
+ ldr r1, _0813B544
+ bl StringCopy
+ ldr r0, _0813B548
+ movs r1, 0x1
+ movs r2, 0x3
+ bl MenuPrint
+ ldr r1, _0813B54C
+ ldr r2, _0813B550
+ adds r0, r4, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B540: .4byte gStringVar1
+_0813B544: .4byte gOtherText_MoveToBag
+_0813B548: .4byte gUnknown_0840633A
+_0813B54C: .4byte gOtherText_MessageWillBeLost
+_0813B550: .4byte sub_813B554
+ thumb_func_end sub_813B510
+
+ thumb_func_start sub_813B554
+sub_813B554: @ 813B554
+ 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, _0813B574
+ adds r0, r4, 0
+ bl sub_80F914C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B574: .4byte gUnknown_084062E8
+ thumb_func_end sub_813B554
+
+ thumb_func_start sub_813B578
+sub_813B578: @ 813B578
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _0813B5BC
+ ldrb r0, [r4]
+ adds r0, 0x6
+ ldrb r1, [r4, 0x2]
+ adds r0, r1
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0813B5C0
+ adds r6, r1, r0
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1A
+ movs r3, 0xD
+ bl MenuZeroFillWindowRect
+ ldrh r0, [r6, 0x20]
+ movs r1, 0x1
+ bl sub_80A9424
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813B5CC
+ ldr r1, _0813B5C4
+ ldr r2, _0813B5C8
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ b _0813B602
+ .align 2, 0
+_0813B5BC: .4byte 0x0201fe00
+_0813B5C0: .4byte gSaveBlock1 + 0x2B4C
+_0813B5C4: .4byte gOtherText_BagIsFull
+_0813B5C8: .4byte sub_813B758
+_0813B5CC:
+ ldr r1, _0813B608
+ ldr r2, _0813B60C
+ adds r0, r5, 0
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ adds r0, r6, 0
+ bl sub_80A2B40
+ bl sub_813AF78
+ ldrb r0, [r4, 0x3]
+ subs r0, 0x1
+ strb r0, [r4, 0x3]
+ ldrb r1, [r4, 0x3]
+ ldrb r0, [r4, 0x1]
+ ldrb r2, [r4, 0x2]
+ adds r0, r2
+ cmp r1, r0
+ bge _0813B5FC
+ cmp r2, 0
+ beq _0813B5FC
+ subs r0, r2, 0x1
+ strb r0, [r4, 0x2]
+_0813B5FC:
+ adds r0, r5, 0
+ bl sub_813A240
+_0813B602:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B608: .4byte gOtherText_MailWasReturned
+_0813B60C: .4byte sub_813B758
+ thumb_func_end sub_813B578
+
+ thumb_func_start sub_813B610
+sub_813B610: @ 813B610
+ 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
+ adds r0, r4, 0
+ bl sub_813B758
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813B610
+
+ thumb_func_start sub_813B630
+sub_813B630: @ 813B630
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl CalculatePlayerPartyCount
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813B648
+ adds r0, r4, 0
+ bl sub_813B718
+ b _0813B65E
+_0813B648:
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ ldr r0, _0813B664
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0813B668
+ str r0, [r1]
+_0813B65E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B664: .4byte gTasks
+_0813B668: .4byte sub_813B66C
+ thumb_func_end sub_813B630
+
+ thumb_func_start sub_813B66C
+sub_813B66C: @ 813B66C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0813B698
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0813B690
+ ldr r0, _0813B69C
+ bl SetMainCallback2
+ ldr r1, _0813B6A0
+ movs r0, 0x3
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl DestroyTask
+_0813B690:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B698: .4byte gPaletteFade
+_0813B69C: .4byte sub_808B020
+_0813B6A0: .4byte gUnknown_02038561
+ thumb_func_end sub_813B66C
+
+ thumb_func_start sub_813B6A4
+sub_813B6A4: @ 813B6A4
+ push {r4-r6,lr}
+ ldr r0, _0813B6F0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r5, _0813B6F4
+ ldrb r4, [r5, 0x3]
+ bl sub_813AF3C
+ strb r0, [r5, 0x3]
+ bl sub_813AF78
+ ldrb r0, [r5, 0x3]
+ cmp r4, r0
+ beq _0813B6DA
+ ldrb r1, [r5, 0x3]
+ ldrb r0, [r5, 0x1]
+ ldrb r2, [r5, 0x2]
+ adds r0, r2
+ cmp r1, r0
+ bge _0813B6DA
+ cmp r2, 0
+ beq _0813B6DA
+ subs r0, r2, 0x1
+ strb r0, [r5, 0x2]
+_0813B6DA:
+ adds r0, r6, 0
+ bl sub_813A240
+ adds r0, r6, 0
+ bl sub_813B108
+ bl pal_fill_black
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B6F0: .4byte sub_813B4A0
+_0813B6F4: .4byte 0x0201fe00
+ thumb_func_end sub_813B6A4
+
+ thumb_func_start sub_813B6F8
+sub_813B6F8: @ 813B6F8
+ push {lr}
+ ldr r0, _0813B70C
+ ldr r1, _0813B710
+ str r1, [r0]
+ ldr r0, _0813B714
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B70C: .4byte gUnknown_0300485C
+_0813B710: .4byte sub_813B6A4
+_0813B714: .4byte c2_exit_to_overworld_2_switch
+ thumb_func_end sub_813B6F8
+
+ thumb_func_start sub_813B718
+sub_813B718: @ 813B718
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0813B72C
+ ldr r2, _0813B730
+ movs r3, 0
+ bl DisplayItemMessageOnField
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B72C: .4byte gOtherText_NoPokemon
+_0813B730: .4byte sub_813B758
+ thumb_func_end sub_813B718
+
+ thumb_func_start sub_813B734
+sub_813B734: @ 813B734
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xC
+ movs r3, 0x9
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl sub_813B758
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813B734
+
+ thumb_func_start sub_813B758
+sub_813B758: @ 813B758
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_813B108
+ ldr r1, _0813B77C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0813B780
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B77C: .4byte gTasks
+_0813B780: .4byte sub_813B174
+ thumb_func_end sub_813B758
+
+ thumb_func_start sub_813B784
+sub_813B784: @ 813B784
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813B784
+
+ thumb_func_start CB2_813B798
+CB2_813B798: @ 813B798
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ ldr r0, _0813B7C8
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0
+ beq _0813B7D4
+ ldr r0, _0813B7CC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0813B7D4
+ ldr r0, _0813B7D0
+ bl SetMainCallback2
+ b _0813B7E4
+ .align 2, 0
+_0813B7C8: .4byte gMain
+_0813B7CC: .4byte gPaletteFade
+_0813B7D0: .4byte CB2_813B7EC
+_0813B7D4:
+ ldr r2, _0813B7E8
+ ldr r1, [r2]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0813B7E4
+ adds r0, r1, 0x1
+ str r0, [r2]
+_0813B7E4:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B7E8: .4byte gUnknown_03005ED0
+ thumb_func_end CB2_813B798
+
+ thumb_func_start CB2_813B7EC
+CB2_813B7EC: @ 813B7EC
+ push {lr}
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813B7FE
+ ldr r0, _0813B804
+ bl SetMainCallback2
+_0813B7FE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B804: .4byte CB2_InitTitleScreen
+ thumb_func_end CB2_813B7EC
+
+ thumb_func_start sub_813B808
+sub_813B808: @ 813B808
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r0, _0813B848
+ movs r6, 0xC0
+ lsls r6, 19
+ adds r3, r6
+ adds r1, r3, 0
+ bl LZ77UnCompVram
+ ldr r0, _0813B84C
+ adds r1, r5, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _0813B850
+ adds r4, r6
+ movs r2, 0xA0
+ lsls r2, 2
+ adds r1, r4, 0
+ bl CpuSet
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B848: .4byte gIntroCopyright_Gfx
+_0813B84C: .4byte gIntroCopyright_Pal
+_0813B850: .4byte gIntroCopyright_Tilemap
+ thumb_func_end sub_813B808
+
+ thumb_func_start SerialCb_CopyrightScreen
+SerialCb_CopyrightScreen: @ 813B854
+ push {lr}
+ ldr r0, _0813B860
+ bl GameCubeMultiBoot_HandleSerialInterrupt
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813B860: .4byte gUnknown_03005EE0
+ thumb_func_end SerialCb_CopyrightScreen
+
+ thumb_func_start SetUpCopyrightScreen
+SetUpCopyrightScreen: @ 813B864
+ push {r4,r5,lr}
+ sub sp, 0xC
+ ldr r0, _0813B880
+ ldr r1, _0813B884
+ adds r5, r0, r1
+ ldrb r4, [r5]
+ cmp r4, 0x8C
+ bne _0813B876
+ b _0813B9C4
+_0813B876:
+ cmp r4, 0x8C
+ bgt _0813B888
+ cmp r4, 0
+ beq _0813B890
+ b _0813B962
+ .align 2, 0
+_0813B880: .4byte gMain
+_0813B884: .4byte 0x0000043c
+_0813B888:
+ cmp r4, 0x8D
+ bne _0813B88E
+ b _0813B9F0
+_0813B88E:
+ b _0813B962
+_0813B890:
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r0, _0813B97C
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ movs r1, 0xA0
+ lsls r1, 19
+ ldr r2, _0813B980
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r5, 0x80
+ lsls r5, 19
+ strh r4, [r5]
+ ldr r0, _0813B984
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ add r0, sp, 0x4
+ strh r4, [r0]
+ ldr r1, _0813B988
+ str r0, [r1]
+ movs r0, 0xC0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _0813B98C
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ str r4, [sp, 0x8]
+ add r0, sp, 0x8
+ str r0, [r1]
+ movs r0, 0xE0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _0813B990
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add r0, sp, 0x4
+ strh r4, [r0]
+ str r0, [r1]
+ ldr r0, _0813B994
+ str r0, [r1, 0x4]
+ ldr r0, _0813B998
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl ResetPaletteFade
+ movs r1, 0xE0
+ lsls r1, 6
+ movs r0, 0
+ movs r2, 0
+ bl sub_813B808
+ bl remove_some_task
+ bl ResetTasks
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ movs r0, 0x1
+ negs r0, r0
+ ldr r1, _0813B99C
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r1, _0813B9A0
+ movs r2, 0xE0
+ lsls r2, 3
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r3, _0813B9A4
+ ldrh r2, [r3]
+ strh r4, [r3]
+ ldr r4, _0813B9A8
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _0813B9AC
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _0813B9B0
+ bl SetVBlankCallback
+ movs r1, 0xA0
+ lsls r1, 1
+ adds r0, r1, 0
+ strh r0, [r5]
+ ldr r0, _0813B9B4
+ bl SetSerialCallback
+ ldr r0, _0813B9B8
+ bl GameCubeMultiBoot_Init
+_0813B962:
+ bl UpdatePaletteFade
+ ldr r0, _0813B9BC
+ ldr r2, _0813B9C0
+ adds r0, r2
+ ldrb r1, [r0]
+ adds r1, 0x1
+ strb r1, [r0]
+ ldr r0, _0813B9B8
+ bl GameCubeMultiBoot_Main
+ b _0813BA38
+ .align 2, 0
+_0813B97C: .4byte REG_BLDCNT
+_0813B980: .4byte 0x00007fff
+_0813B984: .4byte REG_BG0HOFS
+_0813B988: .4byte 0x040000d4
+_0813B98C: .4byte 0x8100c000
+_0813B990: .4byte 0x85000100
+_0813B994: .4byte 0x05000002
+_0813B998: .4byte 0x810001ff
+_0813B99C: .4byte 0x0000ffff
+_0813B9A0: .4byte REG_BG0CNT
+_0813B9A4: .4byte 0x04000208
+_0813B9A8: .4byte 0x04000200
+_0813B9AC: .4byte REG_DISPSTAT
+_0813B9B0: .4byte sub_813B784
+_0813B9B4: .4byte SerialCb_CopyrightScreen
+_0813B9B8: .4byte gUnknown_03005EE0
+_0813B9BC: .4byte gMain
+_0813B9C0: .4byte 0x0000043c
+_0813B9C4:
+ ldr r4, _0813B9EC
+ adds r0, r4, 0
+ bl GameCubeMultiBoot_Main
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x1
+ beq _0813BA38
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldrb r0, [r5]
+ adds r0, 0x1
+ strb r0, [r5]
+ b _0813BA38
+ .align 2, 0
+_0813B9EC: .4byte gUnknown_03005EE0
+_0813B9F0:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813BA38
+ ldr r0, _0813BA18
+ movs r1, 0
+ bl CreateTask
+ ldr r0, _0813BA1C
+ bl SetMainCallback2
+ ldr r1, _0813BA20
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0
+ beq _0813BA24
+ adds r0, r1, 0
+ bl GameCubeMultiBoot_ExecuteProgram
+ b _0813BA2E
+ .align 2, 0
+_0813BA18: .4byte task_intro_1
+_0813BA1C: .4byte CB2_813B798
+_0813BA20: .4byte gUnknown_03005EE0
+_0813BA24:
+ bl GameCubeMultiBoot_Quit
+ ldr r0, _0813BA34
+ bl SetSerialCallback
+_0813BA2E:
+ movs r0, 0
+ b _0813BA3A
+ .align 2, 0
+_0813BA34: .4byte SerialCB
+_0813BA38:
+ movs r0, 0x1
+_0813BA3A:
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end SetUpCopyrightScreen
+
+ thumb_func_start c2_copyright_1
+c2_copyright_1: @ 813BA44
+ push {lr}
+ bl SetUpCopyrightScreen
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813BA7A
+ bl sub_8052E4C
+ bl sub_81251B8
+ movs r0, 0
+ bl sub_8125EC8
+ ldr r0, _0813BA80
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0813BA6A
+ cmp r0, 0x2
+ bne _0813BA6E
+_0813BA6A:
+ bl ClearSav2
+_0813BA6E:
+ ldr r0, _0813BA84
+ ldrb r0, [r0, 0x15]
+ lsls r0, 31
+ lsrs r0, 31
+ bl SetPokemonCryStereo
+_0813BA7A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813BA80: .4byte gSaveFileStatus
+_0813BA84: .4byte gSaveBlock2
+ thumb_func_end c2_copyright_1
+
+ thumb_func_start sub_813BA88
+sub_813BA88: @ 813BA88
+ push {lr}
+ bl SetUpCopyrightScreen
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813BA88
+
+ thumb_func_start task_intro_1
+task_intro_1: @ 813BA94
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0xC
+ mov r8, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r4, _0813BC18
+ bl Random
+ movs r1, 0x1
+ ands r1, r0
+ strh r1, [r4]
+ bl intro_reset_and_hide_bgs
+ ldr r0, _0813BC1C
+ movs r6, 0
+ strh r6, [r0]
+ ldr r1, _0813BC20
+ movs r0, 0x50
+ strh r0, [r1]
+ subs r1, 0x4
+ movs r0, 0x18
+ strh r0, [r1]
+ subs r1, 0x4
+ movs r0, 0x28
+ strh r0, [r1]
+ ldr r0, _0813BC24
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _0813BC28
+ ldr r1, _0813BC2C
+ bl LZ77UnCompVram
+ ldr r1, _0813BC30
+ add r0, sp, 0x8
+ strh r6, [r0]
+ ldr r4, _0813BC34
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ ldr r5, _0813BC38
+ str r5, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ ldr r0, _0813BC3C
+ ldr r1, _0813BC40
+ bl LZ77UnCompVram
+ ldr r1, _0813BC44
+ add r0, sp, 0x8
+ strh r6, [r0]
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ str r5, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ ldr r0, _0813BC48
+ ldr r1, _0813BC4C
+ bl LZ77UnCompVram
+ ldr r1, _0813BC50
+ add r0, sp, 0x8
+ strh r6, [r0]
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ str r5, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ ldr r0, _0813BC54
+ ldr r1, _0813BC58
+ bl LZ77UnCompVram
+ ldr r1, _0813BC5C
+ add r0, sp, 0x8
+ strh r6, [r0]
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ str r5, [r4, 0x8]
+ ldr r0, [r4, 0x8]
+ ldr r0, _0813BC60
+ movs r5, 0x80
+ lsls r5, 2
+ movs r1, 0
+ adds r2, r5, 0
+ bl LoadPalette
+ ldr r1, _0813BC64
+ ldr r2, _0813BC68
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r3, _0813BC6C
+ adds r0, r3, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _0813BC70
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ movs r3, 0x90
+ lsls r3, 8
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _0813BC74
+ bl LoadCompressedObjectPic
+ ldr r0, _0813BC78
+ bl LoadCompressedObjectPic
+ ldr r0, _0813BC7C
+ bl LoadSpritePalettes
+ ldr r4, _0813BC80
+ movs r0, 0xF0
+ lsls r0, 1
+ adds r1, r4, r0
+ adds r0, r4, 0
+ movs r2, 0x10
+ bl CpuSet
+ movs r2, 0xE1
+ lsls r2, 1
+ adds r1, r4, r2
+ adds r0, r4, 0
+ movs r2, 0xF
+ bl CpuSet
+ movs r3, 0xD2
+ lsls r3, 1
+ adds r1, r4, r3
+ adds r0, r4, 0
+ movs r2, 0xE
+ bl CpuSet
+ movs r0, 0xC3
+ lsls r0, 1
+ adds r1, r4, r0
+ adds r0, r4, 0
+ movs r2, 0xD
+ bl CpuSet
+ movs r2, 0xB4
+ lsls r2, 1
+ adds r1, r4, r2
+ adds r0, r4, 0
+ movs r2, 0xC
+ bl CpuSet
+ movs r3, 0xA5
+ lsls r3, 1
+ adds r1, r4, r3
+ adds r0, r4, 0
+ movs r2, 0xB
+ bl CpuSet
+ movs r0, 0x96
+ lsls r0, 1
+ adds r1, r4, r0
+ adds r0, r4, 0
+ movs r2, 0xA
+ bl CpuSet
+ movs r1, 0xE
+ negs r1, r1
+ movs r0, 0x78
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ movs r0, 0xEC
+ adds r2, r5, 0
+ movs r3, 0x1
+ bl sub_813D584
+ ldr r2, _0813BC84
+ mov r3, r8
+ lsls r1, r3, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r2
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x8]
+ ldr r0, _0813BC88
+ str r0, [r1]
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813BC18: .4byte gUnknown_02039318
+_0813BC1C: .4byte REG_BG3VOFS
+_0813BC20: .4byte REG_BG2VOFS
+_0813BC24: .4byte gUnknown_08407764
+_0813BC28: .4byte gUnknown_08406B74
+_0813BC2C: .4byte 0x06008000
+_0813BC30: .4byte 0x06008800
+_0813BC34: .4byte 0x040000d4
+_0813BC38: .4byte 0x81000400
+_0813BC3C: .4byte gUnknown_08406F28
+_0813BC40: .4byte 0x06009000
+_0813BC44: .4byte 0x06009800
+_0813BC48: .4byte gUnknown_0840725C
+_0813BC4C: .4byte 0x0600a000
+_0813BC50: .4byte 0x0600a800
+_0813BC54: .4byte gUnknown_0840754C
+_0813BC58: .4byte 0x0600b000
+_0813BC5C: .4byte 0x0600b800
+_0813BC60: .4byte gUnknown_08406974
+_0813BC64: .4byte REG_BG3CNT
+_0813BC68: .4byte 0x00009603
+_0813BC6C: .4byte 0x00009402
+_0813BC70: .4byte 0x00009201
+_0813BC74: .4byte gUnknown_0840B008
+_0813BC78: .4byte gUnknown_0840B018
+_0813BC7C: .4byte gUnknown_0840B028
+_0813BC80: .4byte gPlttBufferUnfaded + 0x200
+_0813BC84: .4byte gTasks
+_0813BC88: .4byte task_intro_2
+ thumb_func_end task_intro_1
+
+ thumb_func_start task_intro_2
+task_intro_2: @ 813BC8C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ negs r0, r0
+ movs r5, 0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _0813BCE0
+ bl SetVBlankCallback
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _0813BCE4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0813BCE8
+ str r1, [r0]
+ ldr r0, _0813BCEC
+ str r5, [r0]
+ movs r0, 0xCF
+ lsls r0, 1
+ bl m4aSongNumStart
+ bl ResetSerial
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813BCE0: .4byte sub_813B784
+_0813BCE4: .4byte gTasks
+_0813BCE8: .4byte sub_813BCF0
+_0813BCEC: .4byte gUnknown_03005ED0
+ thumb_func_end task_intro_2
+
+ thumb_func_start sub_813BCF0
+sub_813BCF0: @ 813BCF0
+ push {r4-r6,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r5, r3, 0
+ ldr r4, _0813BDD4
+ ldr r0, [r4]
+ cmp r0, 0x4C
+ bne _0813BD1E
+ ldr r2, _0813BDD8
+ ldr r1, _0813BDDC
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r6, 0x8
+ ldrsh r1, [r0, r6]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x1
+ strh r1, [r0, 0x2E]
+_0813BD1E:
+ ldr r0, [r4]
+ cmp r0, 0xFB
+ bne _0813BD40
+ ldr r2, _0813BDD8
+ ldr r1, _0813BDDC
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r3, 0x8
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x2
+ strh r1, [r0, 0x2E]
+_0813BD40:
+ ldr r1, [r4]
+ movs r0, 0xB8
+ lsls r0, 1
+ cmp r1, r0
+ bne _0813BD60
+ movs r2, 0x80
+ lsls r2, 3
+ movs r0, 0x70
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ movs r0, 0x30
+ movs r1, 0
+ movs r3, 0x5
+ bl sub_813D584
+_0813BD60:
+ ldr r1, [r4]
+ movs r0, 0xC0
+ lsls r0, 1
+ cmp r1, r0
+ bne _0813BD80
+ movs r2, 0x80
+ lsls r2, 3
+ movs r0, 0x80
+ str r0, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ movs r0, 0xC8
+ movs r1, 0x3C
+ movs r3, 0x9
+ bl sub_813D584
+_0813BD80:
+ ldr r1, [r4]
+ movs r0, 0x8C
+ lsls r0, 2
+ cmp r1, r0
+ bne _0813BDA0
+ ldr r0, _0813BDE0
+ movs r1, 0
+ bl CreateTask
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ movs r0, 0x78
+ movs r1, 0x50
+ bl sub_813D954
+_0813BDA0:
+ ldr r1, [r4]
+ ldr r0, _0813BDE4
+ cmp r1, r0
+ bls _0813BDCA
+ ldr r1, _0813BDDC
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ movs r1, 0x50
+ strh r1, [r0, 0xA]
+ strh r2, [r0, 0xC]
+ movs r1, 0x18
+ strh r1, [r0, 0xE]
+ strh r2, [r0, 0x10]
+ movs r1, 0x28
+ strh r1, [r0, 0x12]
+ strh r2, [r0, 0x14]
+ ldr r1, _0813BDE8
+ str r1, [r0]
+_0813BDCA:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813BDD4: .4byte gUnknown_03005ED0
+_0813BDD8: .4byte gSprites
+_0813BDDC: .4byte gTasks
+_0813BDE0: .4byte sub_813CCE8
+_0813BDE4: .4byte 0x000002e3
+_0813BDE8: .4byte task_intro_4
+ thumb_func_end sub_813BCF0
+
+ thumb_func_start task_intro_4
+task_intro_4: @ 813BDEC
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r4, r2, 0
+ ldr r0, _0813BE80
+ ldr r3, [r0]
+ ldr r0, _0813BE84
+ cmp r3, r0
+ bhi _0813BEAC
+ ldr r0, _0813BE88
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ lsls r0, 16
+ ldrh r2, [r1, 0xC]
+ adds r0, r2
+ ldr r2, _0813BE8C
+ adds r0, r2
+ asrs r2, r0, 16
+ strh r2, [r1, 0xA]
+ strh r0, [r1, 0xC]
+ ldr r0, _0813BE90
+ strh r2, [r0]
+ movs r2, 0xE
+ ldrsh r0, [r1, r2]
+ lsls r0, 16
+ ldrh r2, [r1, 0x10]
+ adds r0, r2
+ ldr r2, _0813BE94
+ adds r0, r2
+ asrs r2, r0, 16
+ strh r2, [r1, 0xE]
+ strh r0, [r1, 0x10]
+ ldr r0, _0813BE98
+ strh r2, [r0]
+ movs r2, 0x12
+ ldrsh r0, [r1, r2]
+ lsls r0, 16
+ ldrh r2, [r1, 0x14]
+ adds r0, r2
+ ldr r2, _0813BE9C
+ adds r0, r2
+ asrs r2, r0, 16
+ strh r2, [r1, 0x12]
+ strh r0, [r1, 0x14]
+ ldr r0, _0813BEA0
+ strh r2, [r0]
+ movs r0, 0xDC
+ lsls r0, 2
+ cmp r3, r0
+ bne _0813BED2
+ ldr r0, _0813BEA4
+ movs r1, 0xC8
+ movs r2, 0xA0
+ movs r3, 0xA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0813BEA8
+ 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]
+ b _0813BED2
+ .align 2, 0
+_0813BE80: .4byte gUnknown_03005ED0
+_0813BE84: .4byte 0x00000387
+_0813BE88: .4byte gTasks
+_0813BE8C: .4byte 0xffff4000
+_0813BE90: .4byte REG_BG2VOFS
+_0813BE94: .4byte 0xffff0000
+_0813BE98: .4byte REG_BG1VOFS
+_0813BE9C: .4byte 0xfffe8000
+_0813BEA0: .4byte REG_BG0VOFS
+_0813BEA4: .4byte gSpriteTemplate_840AFF0
+_0813BEA8: .4byte gSprites
+_0813BEAC:
+ ldr r0, _0813BEDC
+ cmp r3, r0
+ bls _0813BED2
+ movs r0, 0x1
+ negs r0, r0
+ ldr r1, _0813BEE0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0813BEE4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0813BEE8
+ str r1, [r0]
+_0813BED2:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813BEDC: .4byte 0x000003ef
+_0813BEE0: .4byte 0x0000ffff
+_0813BEE4: .4byte gTasks
+_0813BEE8: .4byte sub_813BEEC
+ thumb_func_end task_intro_4
+
+ thumb_func_start sub_813BEEC
+sub_813BEEC: @ 813BEEC
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0813BF10
+ ldr r1, [r0]
+ ldr r0, _0813BF14
+ cmp r1, r0
+ bls _0813BF0A
+ ldr r0, _0813BF18
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0813BF1C
+ str r0, [r1]
+_0813BF0A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813BF10: .4byte gUnknown_03005ED0
+_0813BF14: .4byte 0x00000402
+_0813BF18: .4byte gTasks
+_0813BF1C: .4byte task_intro_6
+ thumb_func_end sub_813BEEC
+
+ thumb_func_start task_intro_6
+task_intro_6: @ 813BF20
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl intro_reset_and_hide_bgs
+ movs r0, 0
+ bl SetVBlankCallback
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r0, _0813BF60
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _0813BF64
+ strh r1, [r0]
+ .ifdef SAPPHIRE
+ movs r0, 0
+ .else
+ movs r0, 0x1
+ .endif
+ bl load_intro_part2_graphics
+ ldr r1, _0813BF68
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0813BF6C
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813BF60: .4byte gUnknown_02039358
+_0813BF64: .4byte gUnknown_0203935A
+_0813BF68: .4byte gTasks
+_0813BF6C: .4byte sub_813BF70
+ thumb_func_end task_intro_6
+
+ thumb_func_start sub_813BF70
+sub_813BF70: @ 813BF70
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _0813BF88
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0813BF90
+ ldr r0, _0813BF8C
+ bl LoadCompressedObjectPic
+ b _0813BF96
+ .align 2, 0
+_0813BF88: .4byte gUnknown_02039318
+_0813BF8C: .4byte gIntro2BrendanSpriteSheet
+_0813BF90:
+ ldr r0, _0813BFBC
+ bl LoadCompressedObjectPic
+_0813BF96:
+ ldr r0, _0813BFC0
+ bl LoadCompressedObjectPic
+ ldr r0, _0813BFC4
+ bl LoadCompressedObjectPic
+ ldr r0, _0813BFC8
+ bl LoadSpritePalettes
+ ldr r0, _0813BFCC
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0813BFD0
+ movs r0, 0x88
+ lsls r0, 1
+ movs r1, 0x64
+ bl sub_8149310
+ b _0813BFDA
+ .align 2, 0
+_0813BFBC: .4byte gIntro2MaySpriteSheet
+_0813BFC0: .4byte gIntro2BicycleSpriteSheet
+ .ifdef SAPPHIRE
+_0813BFC4: .4byte gIntro2LatiasSpriteSheet
+ .else
+_0813BFC4: .4byte gIntro2LatiosSpriteSheet
+ .endif
+_0813BFC8: .4byte gIntro2SpritePalettes
+_0813BFCC: .4byte gUnknown_02039318
+_0813BFD0:
+ movs r0, 0x88
+ lsls r0, 1
+ movs r1, 0x64
+ bl sub_8149368
+_0813BFDA:
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r2, _0813C060
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r5, r2, 0
+ adds r5, 0x1C
+ adds r3, r0, r5
+ ldr r1, _0813C064
+ str r1, [r3]
+ adds r2, 0x8
+ adds r0, r2
+ ldr r1, _0813C068
+ str r1, [r0]
+ ldr r0, _0813C06C
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ strh r6, [r4, 0xA]
+ movs r0, 0x40
+ negs r0, r0
+ movs r1, 0x3C
+ .ifdef SAPPHIRE
+ bl sapphire_sub_81494A0
+ .else
+ bl sub_8149424
+ .endif
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _0813C070
+ str r1, [r0]
+ strh r6, [r4, 0xC]
+ movs r0, 0x1
+ negs r0, r0
+ ldr r1, _0813C074
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _0813C078
+ bl SetVBlankCallback
+ movs r1, 0x80
+ lsls r1, 7
+ .ifdef SAPPHIRE
+ movs r0, 0
+ movs r2, 0x40
+ .else
+ movs r2, 0x80
+ lsls r2, 3
+ movs r0, 0x1
+ .endif
+ movs r3, 0x10
+ bl sub_8148EC0
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x8]
+ .ifdef SAPPHIRE
+ movs r0, 0
+ .else
+ movs r0, 0x1
+ .endif
+ bl sub_8148C78
+ ldr r0, _0813C07C
+ str r0, [r4]
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813C060: .4byte gSprites
+_0813C064: .4byte sub_813D788
+_0813C068: .4byte gUnknown_0840AE80
+_0813C06C: .4byte gTasks
+_0813C070: .4byte sub_813D880
+_0813C074: .4byte 0x0000ffff
+_0813C078: .4byte sub_813B784
+_0813C07C: .4byte sub_813C080
+ thumb_func_end sub_813BF70
+
+ thumb_func_start sub_813C080
+sub_813C080: @ 813C080
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r6, r4, 0
+ ldr r5, _0813C1BC
+ ldr r1, [r5]
+ ldr r0, _0813C1C0
+ cmp r1, r0
+ bls _0813C0B4
+ movs r0, 0x1
+ negs r0, r0
+ ldr r1, _0813C1C4
+ str r1, [sp]
+ movs r1, 0x10
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0813C1C8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0813C1CC
+ str r1, [r0]
+_0813C0B4:
+ ldr r1, [r5]
+ ldr r0, _0813C1D0
+ ldr r3, _0813C1C8
+ cmp r1, r0
+ bne _0813C0D8
+ ldr r2, _0813C1D4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r3
+ movs r7, 0xA
+ ldrsh r1, [r0, r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x1
+ strh r1, [r0, 0x2E]
+_0813C0D8:
+ ldr r1, [r5]
+ ldr r0, _0813C1D8
+ cmp r1, r0
+ bne _0813C0FA
+ ldr r2, _0813C1D4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r3
+ movs r7, 0xA
+ ldrsh r1, [r0, r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+_0813C0FA:
+ ldr r1, [r5]
+ ldr r0, _0813C1DC
+ cmp r1, r0
+ bne _0813C11C
+ ldr r2, _0813C1D4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r3
+ movs r7, 0xC
+ ldrsh r1, [r0, r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x1
+ strh r1, [r0, 0x2E]
+_0813C11C:
+ ldr r1, [r5]
+ ldr r0, _0813C1E0
+ cmp r1, r0
+ bne _0813C13E
+ ldr r2, _0813C1D4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r3
+ movs r7, 0xA
+ ldrsh r1, [r0, r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x2
+ strh r1, [r0, 0x2E]
+_0813C13E:
+ ldr r1, [r5]
+ ldr r0, _0813C1E4
+ cmp r1, r0
+ bne _0813C160
+ ldr r2, _0813C1D4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r3
+ movs r7, 0xA
+ ldrsh r1, [r0, r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x3
+ strh r1, [r0, 0x2E]
+_0813C160:
+ ldr r1, [r5]
+ ldr r0, _0813C1E8
+ cmp r1, r0
+ bne _0813C182
+ ldr r2, _0813C1D4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r3
+ movs r4, 0xA
+ ldrsh r1, [r0, r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x4
+ strh r1, [r0, 0x2E]
+_0813C182:
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r3
+ ldrh r0, [r4, 0xE]
+ lsls r0, 16
+ asrs r0, 18
+ movs r1, 0x7F
+ ands r0, r1
+ movs r1, 0x30
+ bl Sin
+ ldr r1, _0813C1EC
+ strh r0, [r1]
+ ldrh r2, [r4, 0xE]
+ movs r7, 0xE
+ ldrsh r1, [r4, r7]
+ ldr r0, _0813C1F0
+ cmp r1, r0
+ bgt _0813C1AE
+ adds r0, r2, 0x1
+ strh r0, [r4, 0xE]
+_0813C1AE:
+ .ifdef SAPPHIRE
+ movs r0, 0
+ .else
+ movs r0, 0x1
+ .endif
+ bl sub_8149020
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813C1BC: .4byte gUnknown_03005ED0
+_0813C1C0: .4byte 0x0000071f
+_0813C1C4: .4byte 0x0000ffff
+_0813C1C8: .4byte gTasks
+_0813C1CC: .4byte sub_813C1F4
+_0813C1D0: .4byte 0x00000455
+_0813C1D4: .4byte gSprites
+_0813C1D8: .4byte 0x000004be
+_0813C1DC: .4byte 0x00000572
+_0813C1E0: .4byte 0x00000576
+_0813C1E4: .4byte 0x00000632
+_0813C1E8: .4byte 0x000006bf
+_0813C1EC: .4byte gUnknown_0203935A
+_0813C1F0: .4byte 0x000001ff
+ thumb_func_end sub_813C080
+
+ thumb_func_start sub_813C1F4
+sub_813C1F4: @ 813C1F4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0813C220
+ ldr r1, [r0]
+ ldr r0, _0813C224
+ cmp r1, r0
+ bls _0813C218
+ ldr r0, _0813C228
+ lsls r4, r2, 2
+ adds r4, r2
+ lsls r4, 3
+ adds r4, r0
+ ldrb r0, [r4, 0x8]
+ bl DestroyTask
+ ldr r0, _0813C22C
+ str r0, [r4]
+_0813C218:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813C220: .4byte gUnknown_03005ED0
+_0813C224: .4byte 0x00000814
+_0813C228: .4byte gTasks
+_0813C22C: .4byte task_intro_10
+ thumb_func_end sub_813C1F4
+
+ thumb_func_start task_intro_10
+task_intro_10: @ 813C230
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ bl intro_reset_and_hide_bgs
+ ldr r0, _0813C2C0
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _0813C2C4
+ ldr r1, _0813C2C8
+ bl LZ77UnCompVram
+ ldr r0, _0813C2CC
+ movs r2, 0x80
+ lsls r2, 2
+ movs r1, 0
+ bl LoadPalette
+ ldr r0, _0813C2D0
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ movs r5, 0
+ strh r5, [r4, 0x8]
+ strh r5, [r4, 0xA]
+ strh r5, [r4, 0xC]
+ strh r5, [r4, 0xE]
+ movs r0, 0x78
+ movs r1, 0x50
+ movs r2, 0
+ movs r3, 0
+ bl sub_813CE30
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ movs r0, 0x1
+ negs r0, r0
+ ldr r1, _0813C2D4
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r1, _0813C2D8
+ ldr r2, _0813C2DC
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xC
+ ldr r2, _0813C2E0
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0813C2E4
+ str r0, [r4]
+ ldr r0, _0813C2E8
+ str r5, [r0]
+ movs r0, 0xDD
+ lsls r0, 1
+ bl m4aSongNumStart
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813C2C0: .4byte gUnknown_08409C04
+_0813C2C4: .4byte gUnknown_08409AD4
+_0813C2C8: .4byte 0x06004000
+_0813C2CC: .4byte gUnknown_084098D4
+_0813C2D0: .4byte gTasks
+_0813C2D4: .4byte 0x0000ffff
+_0813C2D8: .4byte REG_BG2CNT
+_0813C2DC: .4byte 0x00004883
+_0813C2E0: .4byte 0x00001441
+_0813C2E4: .4byte task_intro_11
+_0813C2E8: .4byte gUnknown_03005ED0
+ thumb_func_end task_intro_10
+
+ thumb_func_start task_intro_11
+task_intro_11: @ 813C2EC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, _0813C324
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r2
+ movs r1, 0x80
+ lsls r1, 3
+ adds r0, r1, 0
+ ldrh r1, [r3, 0x8]
+ adds r0, r1
+ strh r0, [r3, 0x8]
+ ldrh r4, [r3, 0xA]
+ movs r0, 0xA
+ ldrsh r1, [r3, r0]
+ ldr r0, _0813C328
+ cmp r1, r0
+ bgt _0813C32C
+ ldrh r0, [r3, 0xC]
+ adds r1, r4, r0
+ strh r1, [r3, 0xA]
+ adds r0, 0x1
+ strh r0, [r3, 0xC]
+ b _0813C330
+ .align 2, 0
+_0813C324: .4byte gTasks
+_0813C328: .4byte 0x000006bf
+_0813C32C:
+ ldr r0, _0813C378
+ str r0, [r3]
+_0813C330:
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r2
+ movs r0, 0xA
+ ldrsh r1, [r4, r0]
+ movs r0, 0x80
+ lsls r0, 9
+ bl __divsi3
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ ldrh r3, [r4, 0x8]
+ movs r0, 0x78
+ movs r1, 0x50
+ bl sub_813CE30
+ ldr r0, _0813C37C
+ ldr r0, [r0]
+ cmp r0, 0x2C
+ bne _0813C36E
+ movs r0, 0x1
+ negs r0, r0
+ ldr r1, _0813C380
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_0813C36E:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813C378: .4byte sub_813C384
+_0813C37C: .4byte gUnknown_03005ED0
+_0813C380: .4byte 0x0000ffff
+ thumb_func_end task_intro_11
+
+ thumb_func_start sub_813C384
+sub_813C384: @ 813C384
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0813C3A4
+ ldr r0, [r0]
+ cmp r0, 0x3B
+ bls _0813C3A0
+ ldr r0, _0813C3A8
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0813C3AC
+ str r0, [r1]
+_0813C3A0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813C3A4: .4byte gUnknown_03005ED0
+_0813C3A8: .4byte gTasks
+_0813C3AC: .4byte sub_813C3B0
+ thumb_func_end sub_813C384
+
+ thumb_func_start sub_813C3B0
+sub_813C3B0: @ 813C3B0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ bl intro_reset_and_hide_bgs
+ movs r1, 0
+ ldr r2, _0813C4E4
+ movs r7, 0
+ adds r6, r2, 0
+ adds r6, 0x20
+ adds r5, r2, 0
+ adds r5, 0x40
+ mov r12, r2
+ movs r4, 0x11
+ movs r3, 0x22
+_0813C3D4:
+ adds r0, r1, r2
+ strb r7, [r0]
+ adds r0, r1, r6
+ strb r4, [r0]
+ adds r0, r1, r5
+ strb r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x1F
+ bls _0813C3D4
+ movs r1, 0xC0
+ lsls r1, 19
+ ldr r0, _0813C4E8
+ mov r2, r12
+ str r2, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _0813C4EC
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ movs r1, 0
+ ldr r5, _0813C4F0
+ ldr r6, _0813C4F4
+ mov r0, r8
+ lsls r7, r0, 2
+ ldr r4, _0813C4F8
+ ldr r2, _0813C4FC
+ adds r3, r2, 0
+ ldr r2, _0813C500
+_0813C40E:
+ lsls r0, r1, 1
+ adds r0, r4
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r2
+ bls _0813C40E
+ movs r1, 0
+ ldr r3, _0813C504
+ ldr r0, _0813C508
+ adds r2, r0, 0
+_0813C426:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x7F
+ bls _0813C426
+ movs r1, 0
+ ldr r4, _0813C50C
+ movs r2, 0xF0
+ lsls r2, 8
+ adds r3, r2, 0
+ ldr r2, _0813C510
+_0813C442:
+ lsls r0, r1, 1
+ adds r0, r4
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r2
+ bls _0813C442
+ movs r1, 0
+ ldr r3, _0813C514
+ ldr r0, _0813C508
+ adds r2, r0, 0
+_0813C45A:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x7F
+ bls _0813C45A
+ movs r0, 0xF0
+ lsls r0, 1
+ adds r2, r5, r0
+ movs r4, 0
+ ldr r1, _0813C518
+ strh r1, [r2]
+ adds r0, r6, r0
+ strh r1, [r0]
+ movs r0, 0x1
+ bl sub_813D084
+ movs r0, 0xF2
+ lsls r0, 1
+ adds r1, r5, r0
+ strh r4, [r1]
+ adds r0, r6, r0
+ strh r4, [r0]
+ ldr r0, _0813C51C
+ ldr r1, _0813C520
+ bl LZ77UnCompVram
+ ldr r0, _0813C524
+ ldr r1, _0813C528
+ bl LZ77UnCompVram
+ ldr r0, _0813C52C
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r1, _0813C530
+ movs r0, 0x8
+ strb r0, [r1]
+ ldr r0, _0813C534
+ bl LoadCompressedObjectPic
+ ldr r0, _0813C538
+ bl LoadCompressedObjectPic
+ ldr r0, _0813C53C
+ bl LoadCompressedObjectPalette
+ ldr r0, _0813C540
+ bl LoadSpritePalettes
+ ldr r1, _0813C544
+ mov r2, r8
+ adds r0, r7, r2
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0813C548
+ str r1, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813C4E4: .4byte 0x02000000
+_0813C4E8: .4byte 0x040000d4
+_0813C4EC: .4byte 0x80000030
+_0813C4F0: .4byte gPlttBufferUnfaded
+_0813C4F4: .4byte gPlttBufferFaded
+_0813C4F8: .4byte 0x06003000
+_0813C4FC: .4byte 0x0000f001
+_0813C500: .4byte 0x0000027f
+_0813C504: .4byte 0x06003800
+_0813C508: .4byte 0x0000f002
+_0813C50C: .4byte 0x06003900
+_0813C510: .4byte 0x0000017f
+_0813C514: .4byte 0x06003c00
+_0813C518: .4byte 0x00007fff
+_0813C51C: .4byte gUnknown_0840A778
+_0813C520: .4byte 0x06004000
+_0813C524: .4byte gUnknown_0840A7E4
+_0813C528: .4byte 0x06007000
+_0813C52C: .4byte gUnknown_0840A758
+_0813C530: .4byte gReservedSpritePaletteCount
+_0813C534: .4byte gUnknown_0840B20C
+_0813C538: .4byte gUnknown_0840B21C
+_0813C53C: .4byte gUnknown_0840B22C
+_0813C540: .4byte gUnknown_0840B23C
+_0813C544: .4byte gTasks
+_0813C548: .4byte sub_813C54C
+ thumb_func_end sub_813C3B0
+
+ thumb_func_start sub_813C54C
+sub_813C54C: @ 813C54C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0813C5BC
+ movs r0, 0xF0
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r0, 0xA0
+ strh r0, [r1]
+ adds r1, 0x4
+ movs r0, 0x1C
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x1D
+ strh r0, [r1]
+ subs r1, 0x3C
+ ldr r2, _0813C5C0
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x6
+ adds r2, 0xFD
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x8
+ movs r2, 0xE5
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0813C5C4
+ movs r1, 0
+ bl CreateTask
+ ldr r5, _0813C5C8
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r5
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0
+ strh r0, [r1, 0x26]
+ movs r0, 0x26
+ ldrsh r2, [r1, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r5
+ strh r3, [r0, 0x8]
+ strh r3, [r1, 0x8]
+ ldr r0, _0813C5CC
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813C5BC: .4byte REG_WIN0H
+_0813C5C0: .4byte 0x00000603
+_0813C5C4: .4byte sub_813CAF4
+_0813C5C8: .4byte gTasks
+_0813C5CC: .4byte sub_813C5D0
+ thumb_func_end sub_813C54C
+
+ thumb_func_start sub_813C5D0
+sub_813C5D0: @ 813C5D0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0813C600
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r3, r1, r2
+ ldrh r1, [r3, 0x8]
+ movs r2, 0x8
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x20
+ beq _0813C608
+ adds r0, r1, 0x4
+ strh r0, [r3, 0x8]
+ ldr r2, _0813C604
+ movs r4, 0x8
+ ldrsh r0, [r3, r4]
+ lsls r0, 8
+ subs r1, 0x9C
+ subs r0, r1
+ strh r0, [r2]
+ b _0813C616
+ .align 2, 0
+_0813C600: .4byte gTasks
+_0813C604: .4byte REG_WIN0V
+_0813C608:
+ ldr r0, _0813C61C
+ movs r2, 0x82
+ lsls r2, 6
+ adds r1, r2, 0
+ strh r1, [r0]
+ ldr r0, _0813C620
+ str r0, [r3]
+_0813C616:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813C61C: .4byte REG_WIN0V
+_0813C620: .4byte sub_813C624
+ thumb_func_end sub_813C5D0
+
+ thumb_func_start sub_813C624
+sub_813C624: @ 813C624
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0813C638
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _0813C63C
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0813C638: .4byte gTasks
+_0813C63C: .4byte sub_813C640
+ thumb_func_end sub_813C624
+
+ thumb_func_start sub_813C640
+sub_813C640: @ 813C640
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0813C65C
+ movs r1, 0
+ strh r1, [r2]
+ ldr r2, _0813C660
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, _0813C664
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0813C65C: .4byte gUnknown_0203931A
+_0813C660: .4byte gTasks
+_0813C664: .4byte sub_813C668
+ thumb_func_end sub_813C640
+
+ thumb_func_start sub_813C668
+sub_813C668: @ 813C668
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _0813CA24
+ mov r8, r0
+ ldr r0, [r0]
+ cmp r0, 0x50
+ bne _0813C6AC
+ ldr r0, _0813CA28
+ movs r4, 0x1
+ str r4, [sp]
+ movs r1, 0xF0
+ movs r2, 0xA0
+ movs r3, 0x5
+ bl sub_813CE88
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r3, _0813CA2C
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x1C
+ adds r1, r0, r1
+ ldr r2, _0813CA30
+ str r2, [r1]
+ adds r0, r3
+ movs r1, 0
+ strh r4, [r0, 0x30]
+ strh r1, [r0, 0x32]
+_0813C6AC:
+ mov r1, r8
+ ldr r0, [r1]
+ cmp r0, 0x98
+ bne _0813C6E2
+ ldr r0, _0813CA34
+ movs r4, 0x1
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0xA0
+ movs r3, 0x4
+ bl sub_813CE88
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r3, _0813CA2C
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r3, 0
+ adds r1, 0x1C
+ adds r1, r0, r1
+ ldr r2, _0813CA30
+ str r2, [r1]
+ adds r0, r3
+ movs r1, 0x2
+ strh r1, [r0, 0x30]
+ strh r4, [r0, 0x32]
+_0813C6E2:
+ mov r3, r8
+ ldr r0, [r3]
+ cmp r0, 0xDB
+ bne _0813C720
+ movs r0, 0
+ bl sub_813D084
+ ldr r0, _0813CA38
+ ldrh r0, [r0]
+ movs r1, 0x88
+ lsls r1, 1
+ movs r2, 0x60
+ movs r3, 0x6
+ bl sub_813CFA8
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _0813CA2C
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _0813CA3C
+ str r1, [r0]
+ ldr r1, _0813CA40
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0xA]
+_0813C720:
+ mov r0, r8
+ ldr r1, [r0]
+ movs r0, 0x98
+ lsls r0, 1
+ cmp r1, r0
+ bne _0813C758
+ ldr r3, _0813CA40
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r3
+ movs r0, 0x26
+ ldrsh r2, [r1, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r3
+ movs r2, 0x4
+ strh r2, [r0, 0x8]
+ ldr r2, _0813CA2C
+ movs r3, 0xA
+ ldrsh r1, [r1, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x2
+ strh r1, [r0, 0x2E]
+_0813C758:
+ mov r0, r8
+ ldr r1, [r0]
+ movs r0, 0xC0
+ lsls r0, 1
+ cmp r1, r0
+ bne _0813C790
+ ldr r3, _0813CA40
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r3
+ movs r0, 0x26
+ ldrsh r2, [r1, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r3
+ movs r2, 0
+ strh r2, [r0, 0x8]
+ ldr r2, _0813CA2C
+ movs r3, 0xA
+ ldrsh r1, [r1, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x4
+ strh r1, [r0, 0x2E]
+_0813C790:
+ mov r0, r8
+ ldr r1, [r0]
+ movs r0, 0xC8
+ lsls r0, 1
+ cmp r1, r0
+ bne _0813C7AE
+ movs r0, 0xFF
+ lsls r0, 16
+ ldr r1, _0813CA44
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+_0813C7AE:
+ mov r3, r8
+ ldr r1, [r3]
+ movs r0, 0xD8
+ lsls r0, 1
+ cmp r1, r0
+ bne _0813C7D6
+ ldr r2, _0813CA2C
+ ldr r1, _0813CA40
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r3, 0xA
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x5
+ strh r1, [r0, 0x2E]
+_0813C7D6:
+ mov r0, r8
+ ldr r1, [r0]
+ movs r0, 0xE7
+ lsls r0, 1
+ cmp r1, r0
+ bne _0813C80E
+ ldr r3, _0813CA2C
+ ldr r4, _0813CA40
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r4
+ movs r0, 0xA
+ ldrsh r2, [r1, r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x6
+ strh r2, [r0, 0x2E]
+ movs r3, 0x26
+ ldrsh r1, [r1, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0x2
+ strh r1, [r0, 0x8]
+_0813C80E:
+ mov r0, r8
+ ldr r1, [r0]
+ ldr r0, _0813CA48
+ cmp r1, r0
+ bne _0813C854
+ movs r0, 0x1
+ bl sub_813D084
+ ldr r0, _0813CA28
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0xD0
+ movs r2, 0x8
+ movs r3, 0x5
+ bl sub_813CE88
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _0813CA2C
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _0813CA4C
+ str r1, [r0]
+ ldr r1, _0813CA40
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0xC]
+ adds r0, r2, 0
+ bl sub_813E7C0
+_0813C854:
+ mov r3, r8
+ ldr r1, [r3]
+ ldr r0, _0813CA50
+ cmp r1, r0
+ bne _0813C894
+ subs r0, 0xB2
+ movs r1, 0x1
+ str r1, [sp]
+ movs r1, 0xF8
+ movs r2, 0x10
+ movs r3, 0x4
+ bl sub_813CE88
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _0813CA2C
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _0813CA4C
+ str r1, [r0]
+ ldr r1, _0813CA40
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0xE]
+ adds r0, r2, 0
+ bl sub_813E930
+_0813C894:
+ mov r0, r8
+ ldr r1, [r0]
+ ldr r0, _0813CA54
+ cmp r1, r0
+ bne _0813C8D8
+ ldr r4, _0813CA2C
+ ldr r5, _0813CA40
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r5
+ movs r3, 0xC
+ ldrsh r2, [r1, r3]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r4
+ movs r3, 0x2
+ strh r3, [r0, 0x2E]
+ movs r0, 0xE
+ ldrsh r2, [r1, r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r4
+ strh r3, [r0, 0x2E]
+ movs r3, 0x26
+ ldrsh r1, [r1, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r5
+ movs r1, 0x3
+ strh r1, [r0, 0x8]
+_0813C8D8:
+ mov r0, r8
+ ldr r1, [r0]
+ movs r0, 0x9C
+ lsls r0, 2
+ cmp r1, r0
+ bne _0813C920
+ movs r0, 0
+ bl sub_813D084
+ ldr r0, _0813CA58
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x20
+ movs r2, 0x98
+ movs r3, 0
+ bl sub_813CE88
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _0813CA2C
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _0813CA5C
+ str r1, [r0]
+ ldr r1, _0813CA40
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0x10]
+ adds r0, r2, 0
+ bl sub_813EDBC
+_0813C920:
+ mov r3, r8
+ ldr r1, [r3]
+ movs r0, 0xAF
+ lsls r0, 2
+ cmp r1, r0
+ bne _0813C966
+ movs r0, 0x8C
+ lsls r0, 1
+ movs r1, 0x8
+ negs r1, r1
+ movs r2, 0
+ str r2, [sp]
+ movs r2, 0x90
+ movs r3, 0x1
+ bl sub_813CE88
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _0813CA2C
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _0813CA5C
+ str r1, [r0]
+ ldr r1, _0813CA40
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r2, [r0, 0x12]
+ adds r0, r2, 0
+ bl sub_813EB4C
+_0813C966:
+ mov r0, r8
+ ldr r1, [r0]
+ movs r0, 0xC2
+ lsls r0, 2
+ cmp r1, r0
+ bne _0813C9B2
+ ldr r1, _0813CA60
+ movs r0, 0x1
+ strh r0, [r1]
+ ldr r4, _0813CA2C
+ ldr r6, _0813CA40
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r6
+ movs r3, 0x10
+ ldrsh r2, [r1, r3]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r4
+ movs r5, 0
+ movs r3, 0x2
+ strh r3, [r0, 0x2E]
+ movs r0, 0x12
+ ldrsh r2, [r1, r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r4
+ strh r3, [r0, 0x2E]
+ movs r3, 0x26
+ ldrsh r1, [r1, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ strh r5, [r0, 0x8]
+_0813C9B2:
+ mov r0, r8
+ ldr r1, [r0]
+ ldr r0, _0813CA64
+ cmp r1, r0
+ bne _0813CA76
+ movs r0, 0x2
+ bl sub_813D084
+ ldr r4, _0813CA2C
+ ldr r0, _0813CA40
+ lsls r2, r7, 2
+ adds r2, r7
+ lsls r2, 3
+ adds r2, r0
+ movs r3, 0xC
+ ldrsh r1, [r2, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r3, 0x3
+ strh r3, [r0, 0x2E]
+ movs r0, 0xE
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r3, [r0, 0x2E]
+ movs r0, 0x10
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r3, [r0, 0x2E]
+ movs r0, 0x12
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ strh r3, [r0, 0x2E]
+ ldr r0, _0813CA68
+ movs r1, 0x78
+ movs r2, 0x50
+ movs r3, 0xF
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r4
+ b _0813CA6C
+ .align 2, 0
+_0813CA24: .4byte gUnknown_03005ED0
+_0813CA28: .4byte 0x0000014b
+_0813CA2C: .4byte gSprites
+_0813CA30: .4byte sub_813DB9C
+_0813CA34: .4byte 0x00000169
+_0813CA38: .4byte gUnknown_02039318
+_0813CA3C: .4byte sub_813DE70
+_0813CA40: .4byte gTasks
+_0813CA44: .4byte 0x00007eff
+_0813CA48: .4byte 0x000001cf
+_0813CA4C: .4byte sub_813E10C
+_0813CA50: .4byte 0x0000021b
+_0813CA54: .4byte 0x0000026f
+_0813CA58: .4byte 0x0000011b
+_0813CA5C: .4byte sub_813E210
+_0813CA60: .4byte gUnknown_0203931A
+_0813CA64: .4byte 0x0000030d
+_0813CA68: .4byte gSpriteTemplate_840B1F4
+_0813CA6C:
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_0813CA76:
+ mov r3, r8
+ ldr r1, [r3]
+ movs r0, 0xC8
+ lsls r0, 2
+ cmp r1, r0
+ bne _0813CA88
+ movs r0, 0x67
+ bl PlaySE
+_0813CA88:
+ mov r0, r8
+ ldr r1, [r0]
+ ldr r0, _0813CAC8
+ cmp r1, r0
+ bne _0813CAA4
+ movs r0, 0x1
+ negs r0, r0
+ ldr r1, _0813CACC
+ str r1, [sp]
+ movs r1, 0x4
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+_0813CAA4:
+ mov r3, r8
+ ldr r1, [r3]
+ ldr r0, _0813CAD0
+ cmp r1, r0
+ bne _0813CABC
+ ldr r0, _0813CAD4
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0813CAD8
+ str r0, [r1]
+_0813CABC:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813CAC8: .4byte 0x00000352
+_0813CACC: .4byte 0x0000ffff
+_0813CAD0: .4byte 0x000003b2
+_0813CAD4: .4byte gTasks
+_0813CAD8: .4byte sub_813CADC
+ thumb_func_end sub_813C668
+
+ thumb_func_start sub_813CADC
+sub_813CADC: @ 813CADC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ ldr r0, _0813CAF0
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813CAF0: .4byte CB2_813B7EC
+ thumb_func_end sub_813CADC
+
+ thumb_func_start sub_813CAF4
+sub_813CAF4: @ 813CAF4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0813CB2C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ movs r6, 0
+ strh r0, [r4, 0x26]
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bne _0813CB18
+ b _0813CC28
+_0813CB18:
+ cmp r0, 0x4
+ bgt _0813CB30
+ cmp r0, 0x2
+ beq _0813CB60
+ cmp r0, 0x2
+ bgt _0813CBC4
+ cmp r0, 0
+ beq _0813CB46
+ b _0813CC8E
+ .align 2, 0
+_0813CB2C: .4byte gTasks
+_0813CB30:
+ cmp r0, 0x1E
+ beq _0813CBEE
+ cmp r0, 0x1E
+ bgt _0813CB3E
+ cmp r0, 0x14
+ beq _0813CB8A
+ b _0813CC8E
+_0813CB3E:
+ cmp r0, 0x28
+ bne _0813CB44
+ b _0813CC56
+_0813CB44:
+ b _0813CC8E
+_0813CB46:
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xE5
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0813CB5C
+ strh r6, [r0]
+ movs r0, 0xFF
+ strh r0, [r4, 0x8]
+ b _0813CC8E
+ .align 2, 0
+_0813CB5C: .4byte REG_BG2CNT
+_0813CB60:
+ ldr r0, _0813CBB0
+ str r0, [sp]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r1, _0813CBB4
+ ldr r2, _0813CBB8
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xC
+ movs r2, 0xF5
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ strh r6, [r4, 0xA]
+ strh r6, [r4, 0xC]
+ movs r0, 0x14
+ strh r0, [r4, 0x8]
+_0813CB8A:
+ ldr r2, _0813CBBC
+ ldr r0, _0813CBC0
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xA]
+ strh r0, [r2]
+ subs r2, 0x2
+ ldrh r0, [r1, 0xC]
+ strh r0, [r2]
+ ldrh r0, [r1, 0xA]
+ adds r0, 0x6
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xC]
+ subs r0, 0x8
+ strh r0, [r1, 0xC]
+ b _0813CC8E
+ .align 2, 0
+_0813CBB0: .4byte 0x0000ffff
+_0813CBB4: .4byte REG_BG2CNT
+_0813CBB8: .4byte 0x00000e07
+_0813CBBC: .4byte REG_BG2VOFS
+_0813CBC0: .4byte gTasks
+_0813CBC4:
+ ldr r0, _0813CC14
+ str r0, [sp]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r1, _0813CC18
+ ldr r2, _0813CC1C
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xC
+ movs r2, 0xF5
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ strh r6, [r4, 0xA]
+ strh r6, [r4, 0xC]
+ movs r0, 0x1E
+ strh r0, [r4, 0x8]
+_0813CBEE:
+ ldr r2, _0813CC20
+ ldr r0, _0813CC24
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xA]
+ strh r0, [r2]
+ subs r2, 0x2
+ ldrh r0, [r1, 0xC]
+ strh r0, [r2]
+ ldrh r0, [r1, 0xA]
+ subs r0, 0x6
+ strh r0, [r1, 0xA]
+ ldrh r0, [r1, 0xC]
+ adds r0, 0x8
+ strh r0, [r1, 0xC]
+ b _0813CC8E
+ .align 2, 0
+_0813CC14: .4byte 0x0000ffff
+_0813CC18: .4byte REG_BG2CNT
+_0813CC1C: .4byte 0x00000e07
+_0813CC20: .4byte REG_BG2VOFS
+_0813CC24: .4byte gTasks
+_0813CC28:
+ ldr r0, _0813CC98
+ str r0, [sp]
+ movs r0, 0x1
+ movs r1, 0x5
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0813CC9C
+ ldr r2, _0813CCA0
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xC
+ movs r2, 0xF5
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ strh r6, [r4, 0xA]
+ strh r6, [r4, 0xC]
+ movs r0, 0x8
+ strh r0, [r4, 0xE]
+ movs r0, 0x28
+ strh r0, [r4, 0x8]
+_0813CC56:
+ ldr r2, _0813CCA4
+ ldr r1, _0813CCA8
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r0, [r3, 0xA]
+ strh r0, [r2]
+ ldr r1, _0813CCAC
+ ldrh r0, [r3, 0xC]
+ strh r0, [r1]
+ ldrh r0, [r3, 0xA]
+ ldrh r2, [r3, 0xE]
+ subs r0, r2
+ strh r0, [r3, 0xA]
+ ldrh r1, [r3, 0xC]
+ adds r0, r2, r1
+ strh r0, [r3, 0xC]
+ ldrh r1, [r3, 0x26]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0813CC8E
+ lsls r0, r2, 16
+ cmp r0, 0
+ beq _0813CC8E
+ subs r0, r2, 0x1
+ strh r0, [r3, 0xE]
+_0813CC8E:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813CC98: .4byte 0x000037f7
+_0813CC9C: .4byte REG_BG2CNT
+_0813CCA0: .4byte 0x00000e07
+_0813CCA4: .4byte REG_BG2VOFS
+_0813CCA8: .4byte gTasks
+_0813CCAC: .4byte REG_BG2HOFS
+ thumb_func_end sub_813CAF4
+
+ thumb_func_start intro_reset_and_hide_bgs
+intro_reset_and_hide_bgs: @ 813CCB0
+ movs r0, 0x80
+ lsls r0, 19
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x1C
+ 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]
+ adds r0, 0x3E
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bx lr
+ thumb_func_end intro_reset_and_hide_bgs
+
+ thumb_func_start sub_813CCE8
+sub_813CCE8: @ 813CCE8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _0813CD0C
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bhi _0813CD28
+ lsls r0, 2
+ ldr r1, _0813CD10
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0813CD0C: .4byte gTasks
+_0813CD10: .4byte _0813CD14
+ .align 2, 0
+_0813CD14:
+ .4byte _0813CD28
+ .4byte _0813CD5C
+ .4byte _0813CD8C
+ .4byte _0813CDA8
+ .4byte _0813CDFC
+_0813CD28:
+ ldr r1, _0813CD54
+ ldr r4, _0813CD58
+ adds r0, r4, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r4, 0x80
+ lsls r4, 5
+ adds r0, r4, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0
+ strh r0, [r1]
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x40
+ strh r1, [r0, 0xA]
+ movs r1, 0x1
+ strh r1, [r0, 0x8]
+ b _0813CE26
+ .align 2, 0
+_0813CD54: .4byte REG_BLDCNT
+_0813CD58: .4byte 0x00003f50
+_0813CD5C:
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r2, r0, r2
+ ldrh r1, [r2, 0xA]
+ movs r3, 0xA
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _0813CD78
+ subs r0, r1, 0x1
+ strh r0, [r2, 0xA]
+ movs r4, 0xA
+ ldrsh r0, [r2, r4]
+ b _0813CDC2
+_0813CD78:
+ ldr r1, _0813CD84
+ ldr r0, _0813CD88
+ ldrh r0, [r0]
+ strh r0, [r1]
+ movs r0, 0x80
+ b _0813CDEA
+ .align 2, 0
+_0813CD84: .4byte REG_BLDALPHA
+_0813CD88: .4byte gUnknown_08393E64
+_0813CD8C:
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r0, [r1, 0xA]
+ movs r3, 0xA
+ ldrsh r2, [r1, r3]
+ cmp r2, 0
+ bne _0813CE0E
+ strh r2, [r1, 0xA]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0813CE26
+_0813CDA8:
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r2, r0, r2
+ ldrh r1, [r2, 0xA]
+ movs r4, 0xA
+ ldrsh r0, [r2, r4]
+ cmp r0, 0x3D
+ bgt _0813CDE0
+ adds r0, r1, 0x1
+ strh r0, [r2, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r2, r1]
+_0813CDC2:
+ lsrs r1, r0, 31
+ adds r0, r1
+ movs r2, 0xFF
+ lsls r2, 1
+ ldr r3, _0813CDD8
+ ldr r1, _0813CDDC
+ ands r0, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r3]
+ b _0813CE26
+ .align 2, 0
+_0813CDD8: .4byte REG_BLDALPHA
+_0813CDDC: .4byte gUnknown_08393E64
+_0813CDE0:
+ ldr r1, _0813CDF4
+ ldr r0, _0813CDF8
+ ldrh r0, [r0, 0x3E]
+ strh r0, [r1]
+ movs r0, 0x10
+_0813CDEA:
+ strh r0, [r2, 0xA]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _0813CE26
+ .align 2, 0
+_0813CDF4: .4byte REG_BLDALPHA
+_0813CDF8: .4byte gUnknown_08393E64
+_0813CDFC:
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r1, r0, r2
+ ldrh r0, [r1, 0xA]
+ movs r4, 0xA
+ ldrsh r2, [r1, r4]
+ cmp r2, 0
+ beq _0813CE14
+_0813CE0E:
+ subs r0, 0x1
+ strh r0, [r1, 0xA]
+ b _0813CE26
+_0813CE14:
+ ldr r0, _0813CE2C
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, r3, 0
+ bl DestroyTask
+_0813CE26:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813CE2C: .4byte REG_BLDCNT
+ thumb_func_end sub_813CCE8
+
+ thumb_func_start sub_813CE30
+sub_813CE30: @ 813CE30
+ push {r4,lr}
+ sub sp, 0x24
+ lsls r2, 16
+ lsrs r2, 16
+ movs r4, 0x80
+ lsls r4, 8
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ mov r4, sp
+ strh r0, [r4, 0x8]
+ mov r0, sp
+ strh r1, [r0, 0xA]
+ strh r2, [r0, 0xC]
+ strh r2, [r0, 0xE]
+ strh r3, [r0, 0x10]
+ add r4, sp, 0x14
+ adds r1, r4, 0
+ movs r2, 0x1
+ bl BgAffineSet
+ ldr r1, _0813CE84
+ ldrh r0, [r4]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r4, 0x2]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r4, 0x4]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldrh r0, [r4, 0x6]
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r0, [r4, 0x8]
+ str r0, [r1]
+ adds r1, 0x4
+ ldr r0, [r4, 0xC]
+ str r0, [r1]
+ add sp, 0x24
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813CE84: .4byte REG_BG2PA
+ thumb_func_end sub_813CE30
+
+ thumb_func_start sub_813CE88
+sub_813CE88: @ 813CE88
+ 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, 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
+ lsls r4, 24
+ lsrs r6, r4, 24
+ cmp r6, 0
+ beq _0813CEF0
+ lsls r0, r7, 3
+ ldr r1, _0813CEE4
+ adds r0, r1
+ ldr r1, _0813CEE8
+ lsls r2, r7, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r5, _0813CEEC
+ mov r6, r8
+ lsls r4, r6, 2
+ adds r4, r5
+ ldr r4, [r4]
+ str r4, [sp]
+ str r7, [sp, 0x4]
+ movs r4, 0
+ str r4, [sp, 0x8]
+ movs r4, 0x1
+ str r4, [sp, 0xC]
+ bl sub_800D378
+ b _0813CF1C
+ .align 2, 0
+_0813CEE4: .4byte gMonFrontPicTable
+_0813CEE8: .4byte gMonFrontPicCoords
+_0813CEEC: .4byte gUnknown_0840B5A0
+_0813CEF0:
+ lsls r0, r7, 3
+ ldr r1, _0813CF90
+ adds r0, r1
+ ldr r1, _0813CF94
+ lsls r2, r7, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _0813CF98
+ mov r12, r4
+ mov r5, r8
+ lsls r4, r5, 2
+ add r4, r12
+ ldr r4, [r4]
+ str r4, [sp]
+ str r7, [sp, 0x4]
+ str r6, [sp, 0x8]
+ str r6, [sp, 0xC]
+ bl sub_800D378
+_0813CF1C:
+ ldr r2, _0813CF9C
+ adds r0, r7, 0
+ movs r1, 0
+ bl species_and_otid_get_pal
+ mov r6, r8
+ lsls r4, r6, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r4, r2
+ lsls r1, 16
+ lsrs r1, 16
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ lsls r1, r6, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl sub_8143648
+ ldr r0, _0813CFA0
+ mov r3, r9
+ lsls r1, r3, 16
+ asrs r1, 16
+ mov r5, r10
+ lsls r2, r5, 16
+ asrs r2, 16
+ mov r3, r8
+ adds r3, 0x1
+ lsls r3, 26
+ lsrs r3, 24
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0813CFA4
+ 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
+ movs r3, 0xD
+ negs r3, r3
+ ands r1, r3
+ movs r3, 0x4
+ orrs r1, r3
+ 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
+_0813CF90: .4byte gMonBackPicTable
+_0813CF94: .4byte gMonBackPicCoords
+_0813CF98: .4byte gUnknown_0840B5A0
+_0813CF9C: .4byte 0x0000ffff
+_0813CFA0: .4byte gUnknown_02024E8C
+_0813CFA4: .4byte gSprites
+ thumb_func_end sub_813CE88
+
+ thumb_func_start sub_813CFA8
+sub_813CFA8: @ 813CFA8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ mov r9, r1
+ mov r10, r2
+ adds r6, r3, 0
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ lsls r2, 16
+ lsrs r2, 16
+ mov r10, r2
+ lsls r6, 16
+ lsrs r6, 16
+ lsls r7, r0, 3
+ ldr r1, _0813D068
+ mov r8, r1
+ add r8, r7
+ ldr r1, _0813D06C
+ lsls r2, r0, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r5, _0813D070
+ lsls r4, r6, 2
+ adds r4, r5
+ ldr r4, [r4]
+ str r4, [sp]
+ str r0, [sp, 0x4]
+ mov r0, r8
+ bl DecompressPicFromTable_2
+ ldr r0, _0813D074
+ adds r0, r7, r0
+ ldr r0, [r0]
+ lsls r4, r6, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r4, r2
+ lsls r1, 16
+ lsrs r1, 16
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ lsls r1, r6, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl sub_8143680
+ ldr r0, _0813D078
+ ldr r1, _0813D07C
+ str r1, [r0, 0x8]
+ mov r1, r9
+ lsls r1, 16
+ asrs r1, 16
+ mov r9, r1
+ mov r2, r10
+ lsls r2, 16
+ asrs r2, 16
+ mov r10, r2
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0813D080
+ 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
+ movs r3, 0xD
+ negs r3, r3
+ ands r1, r3
+ movs r3, 0x4
+ orrs r1, r3
+ strb r1, [r2, 0x5]
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0813D068: .4byte gTrainerBackPicTable
+_0813D06C: .4byte gTrainerBackPicCoords
+_0813D070: .4byte gUnknown_0840B5A0
+_0813D074: .4byte gTrainerBackPicPaletteTable
+_0813D078: .4byte gUnknown_02024E8C
+_0813D07C: .4byte gUnknown_0840B064
+_0813D080: .4byte gSprites
+ thumb_func_end sub_813CFA8
+
+ thumb_func_start sub_813D084
+sub_813D084: @ 813D084
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0813D0A0
+ cmp r0, 0x1
+ ble _0813D096
+ cmp r0, 0x2
+ beq _0813D0A8
+_0813D096:
+ ldr r2, _0813D09C
+ b _0813D0AA
+ .align 2, 0
+_0813D09C: .4byte 0x00003ff6
+_0813D0A0:
+ ldr r2, _0813D0A4
+ b _0813D0AA
+ .align 2, 0
+_0813D0A4: .4byte 0x000031df
+_0813D0A8:
+ ldr r2, _0813D0C0
+_0813D0AA:
+ ldr r0, _0813D0C4
+ movs r1, 0xF1
+ lsls r1, 1
+ adds r0, r1
+ strh r2, [r0]
+ ldr r0, _0813D0C8
+ adds r0, r1
+ strh r2, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813D0C0: .4byte 0x0000518c
+_0813D0C4: .4byte gPlttBufferUnfaded
+_0813D0C8: .4byte gPlttBufferFaded
+ thumb_func_end sub_813D084
+
+ thumb_func_start sub_813D0CC
+sub_813D0CC: @ 813D0CC
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xBF
+ ble _0813D148
+ ldrh r1, [r4, 0x34]
+ movs r2, 0x34
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0813D0EA
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x34]
+ b _0813D14E
+_0813D0EA:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x30]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x32]
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ movs r0, 0x32
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 5
+ subs r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ strh r0, [r4, 0x32]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ adds r0, r1, 0
+ subs r0, 0xC0
+ cmp r0, 0
+ bge _0813D12C
+ adds r0, 0x7F
+_0813D12C:
+ asrs r0, 7
+ adds r0, 0x9
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xF
+ bls _0813D13A
+ movs r0, 0xF
+_0813D13A:
+ lsls r2, r0, 4
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ b _0813D14E
+_0813D148:
+ adds r0, r4, 0
+ bl DestroySprite
+_0813D14E:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813D0CC
+
+ thumb_func_start sub_813D158
+sub_813D158: @ 813D158
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r2, _0813D1CC
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r3, 0x3C
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _0813D1D4
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r0, r3
+ strh r0, [r4, 0x22]
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl StartSpriteAnim
+ movs r0, 0x80
+ lsls r0, 3
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x30]
+ movs r0, 0x3
+ ands r0, r1
+ lsls r0, 3
+ strh r0, [r4, 0x34]
+ ldr r0, _0813D1D0
+ str r0, [r4, 0x1C]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x3]
+ movs r1, 0xC0
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0x3
+ movs r3, 0x2
+ bl CalcCenterToCornerVec
+ b _0813D200
+ .align 2, 0
+_0813D1CC: .4byte gSprites
+_0813D1D0: .4byte sub_813D0CC
+_0813D1D4:
+ ldrh r0, [r1, 0x24]
+ strh r0, [r4, 0x24]
+ movs r0, 0x3C
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x26]
+ strh r0, [r4, 0x26]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x20]
+ strh r0, [r4, 0x20]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x22]
+ strh r0, [r4, 0x22]
+_0813D200:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813D158
+
+ thumb_func_start sub_813D208
+sub_813D208: @ 813D208
+ push {lr}
+ adds r1, r0, 0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _0813D218
+ ldr r0, _0813D21C
+ str r0, [r1, 0x1C]
+_0813D218:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813D21C: .4byte sub_813D220
+ thumb_func_end sub_813D208
+
+ thumb_func_start sub_813D220
+sub_813D220: @ 813D220
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r7, r0, 0
+ ldrh r4, [r7, 0x20]
+ movs r1, 0x20
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x74
+ bgt _0813D260
+ ldrh r0, [r7, 0x26]
+ ldrh r1, [r7, 0x22]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r7, 0x22]
+ strh r1, [r7, 0x26]
+ adds r0, r4, 0x4
+ strh r0, [r7, 0x20]
+ ldr r0, _0813D258
+ strh r0, [r7, 0x24]
+ movs r0, 0x80
+ strh r0, [r7, 0x36]
+ ldr r0, _0813D25C
+ str r0, [r7, 0x1C]
+ b _0813D352
+ .align 2, 0
+_0813D258: .4byte 0x0000fffc
+_0813D25C: .4byte sub_813D368
+_0813D260:
+ ldrh r1, [r7, 0x36]
+ ldr r5, _0813D364
+ lsls r0, r1, 24
+ lsrs r0, 23
+ adds r0, r5
+ ldrh r2, [r0]
+ adds r0, r1, 0
+ adds r0, 0x40
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r5
+ ldrh r3, [r0]
+ adds r1, 0x2
+ strh r1, [r7, 0x36]
+ lsls r2, 16
+ asrs r0, r2, 16
+ cmp r0, 0
+ bge _0813D286
+ adds r0, 0x1F
+_0813D286:
+ asrs r0, 5
+ strh r0, [r7, 0x26]
+ subs r0, r4, 0x1
+ strh r0, [r7, 0x20]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0813D29C
+ ldrh r0, [r7, 0x22]
+ adds r0, 0x1
+ strh r0, [r7, 0x22]
+_0813D29C:
+ lsls r0, r3, 16
+ asrs r0, 16
+ negs r0, r0
+ cmp r0, 0
+ bge _0813D2A8
+ adds r0, 0xF
+_0813D2A8:
+ lsls r1, r0, 12
+ lsrs r1, 16
+ ldrh r4, [r7, 0x32]
+ ldrh r3, [r7, 0x34]
+ adds r0, r1, 0
+ subs r0, 0x10
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r5
+ ldrh r2, [r0]
+ adds r1, 0x30
+ lsls r1, 24
+ lsrs r1, 23
+ adds r1, r5
+ movs r0, 0
+ ldrsh r1, [r1, r0]
+ adds r0, r1, 0
+ muls r0, r4
+ cmp r0, 0
+ bge _0813D2D2
+ adds r0, 0xFF
+_0813D2D2:
+ lsls r0, 8
+ lsrs r0, 16
+ mov r8, r0
+ lsls r0, r2, 16
+ asrs r2, r0, 16
+ negs r0, r2
+ muls r0, r3
+ cmp r0, 0
+ bge _0813D2E6
+ adds r0, 0xFF
+_0813D2E6:
+ lsls r0, 8
+ lsrs r0, 16
+ mov r10, r0
+ adds r0, r2, 0
+ muls r0, r4
+ cmp r0, 0
+ bge _0813D2F6
+ adds r0, 0xFF
+_0813D2F6:
+ lsls r0, 8
+ lsrs r5, r0, 16
+ adds r0, r1, 0
+ muls r0, r3
+ cmp r0, 0
+ bge _0813D304
+ adds r0, 0xFF
+_0813D304:
+ lsls r6, r0, 8
+ lsrs r6, 16
+ ldrh r0, [r7, 0x30]
+ lsls r0, 24
+ lsrs r0, 24
+ str r3, [sp]
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ ldrh r0, [r7, 0x30]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r5
+ mov r1, r10
+ lsls r5, r1, 16
+ lsrs r3, r5, 16
+ lsls r4, r6, 16
+ str r6, [sp]
+ mov r1, r8
+ mov r2, r9
+ bl SetOamMatrix
+ ldrh r0, [r7, 0x30]
+ adds r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r5, 1
+ lsrs r5, 16
+ lsls r4, 1
+ lsrs r4, 16
+ str r4, [sp]
+ mov r1, r8
+ mov r2, r9
+ adds r3, r5, 0
+ bl SetOamMatrix
+_0813D352:
+ 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
+_0813D364: .4byte gSineTable
+ thumb_func_end sub_813D220
+
+ thumb_func_start sub_813D368
+sub_813D368: @ 813D368
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x30]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x3A]
+ adds r1, 0x40
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x3A]
+ adds r1, 0x40
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x3A]
+ adds r1, 0x40
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ ldrh r1, [r4, 0x36]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x40
+ beq _0813D400
+ adds r0, r1, 0
+ subs r0, 0x8
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x36]
+ adds r1, r0, 0
+ ldr r2, _0813D3FC
+ adds r0, 0x40
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r0, 0
+ bge _0813D3E2
+ adds r0, 0x3F
+_0813D3E2:
+ asrs r0, 6
+ strh r0, [r4, 0x24]
+ lsls r0, r1, 24
+ lsrs r0, 23
+ adds r0, r2
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bge _0813D3F6
+ adds r0, 0x3F
+_0813D3F6:
+ asrs r0, 6
+ strh r0, [r4, 0x26]
+ b _0813D408
+ .align 2, 0
+_0813D3FC: .4byte gSineTable
+_0813D400:
+ movs r0, 0
+ strh r0, [r4, 0x36]
+ ldr r0, _0813D410
+ str r0, [r4, 0x1C]
+_0813D408:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813D410: .4byte sub_813D414
+ thumb_func_end sub_813D368
+
+ thumb_func_start sub_813D414
+sub_813D414: @ 813D414
+ push {r4,lr}
+ adds r1, r0, 0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x2
+ beq _0813D474
+ ldrh r0, [r1, 0x36]
+ adds r0, 0x8
+ strh r0, [r1, 0x36]
+ ldr r3, _0813D470
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r3
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ cmp r0, 0
+ bge _0813D438
+ adds r0, 0xF
+_0813D438:
+ asrs r0, 4
+ adds r0, 0x40
+ lsls r0, 16
+ lsrs r2, r0, 16
+ adds r0, r2, 0
+ adds r0, 0x40
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r3
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ cmp r0, 0
+ bge _0813D454
+ adds r0, 0x3F
+_0813D454:
+ asrs r0, 6
+ strh r0, [r1, 0x24]
+ lsls r0, r2, 24
+ lsrs r0, 23
+ adds r0, r3
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bge _0813D468
+ adds r0, 0x3F
+_0813D468:
+ asrs r0, 6
+ strh r0, [r1, 0x26]
+ b _0813D478
+ .align 2, 0
+_0813D470: .4byte gSineTable
+_0813D474:
+ ldr r0, _0813D480
+ str r0, [r1, 0x1C]
+_0813D478:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813D480: .4byte sub_813D484
+ thumb_func_end sub_813D414
+
+ thumb_func_start sub_813D484
+sub_813D484: @ 813D484
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x22]
+ movs r0, 0x22
+ ldrsh r1, [r4, r0]
+ movs r3, 0x38
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _0813D49C
+ adds r0, r2, 0x4
+ strh r0, [r4, 0x22]
+ b _0813D4F8
+_0813D49C:
+ movs r0, 0x1
+ strh r0, [r4, 0x3C]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r0, r3
+ strh r0, [r4, 0x22]
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl StartSpriteAnim
+ movs r0, 0x80
+ lsls r0, 3
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x30]
+ movs r0, 0x3
+ ands r0, r1
+ lsls r0, 3
+ strh r0, [r4, 0x34]
+ ldr r0, _0813D500
+ str r0, [r4, 0x1C]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x3]
+ movs r1, 0xC0
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0x3
+ movs r3, 0x2
+ bl CalcCenterToCornerVec
+_0813D4F8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813D500: .4byte sub_813D0CC
+ thumb_func_end sub_813D484
+
+ thumb_func_start sub_813D504
+sub_813D504: @ 813D504
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r2, [r4, 0x22]
+ movs r0, 0x22
+ ldrsh r1, [r4, r0]
+ movs r3, 0x38
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bge _0813D51C
+ adds r0, r2, 0x4
+ strh r0, [r4, 0x22]
+ b _0813D578
+_0813D51C:
+ movs r0, 0x1
+ strh r0, [r4, 0x3C]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x26]
+ ldrh r3, [r4, 0x22]
+ adds r0, r3
+ strh r0, [r4, 0x22]
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl StartSpriteAnim
+ movs r0, 0x80
+ lsls r0, 3
+ strh r0, [r4, 0x32]
+ ldrh r1, [r4, 0x30]
+ movs r0, 0x3
+ ands r0, r1
+ lsls r0, 3
+ strh r0, [r4, 0x34]
+ ldr r0, _0813D580
+ str r0, [r4, 0x1C]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x3]
+ movs r1, 0xC0
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0x3
+ movs r3, 0x2
+ bl CalcCenterToCornerVec
+_0813D578:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813D580: .4byte sub_813D0CC
+ thumb_func_end sub_813D504
+
+ thumb_func_start sub_813D584
+sub_813D584: @ 813D584
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r6, [sp, 0x34]
+ ldr r0, [sp, 0x38]
+ mov r8, r0
+ lsls r4, 16
+ lsls r5, 16
+ lsls r2, 16
+ lsrs r2, 16
+ str r2, [sp, 0x8]
+ lsls r3, 16
+ lsrs r3, 16
+ str r3, [sp, 0xC]
+ lsls r6, 16
+ lsrs r6, 16
+ mov r1, r8
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ ldr r0, _0813D640
+ lsrs r2, r4, 16
+ mov r10, r2
+ asrs r4, 16
+ lsrs r1, r5, 16
+ str r1, [sp, 0x4]
+ asrs r5, 16
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, _0813D644
+ mov r9, r2
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r5, r0, 2
+ adds r4, r5, r2
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ strh r0, [r4, 0x3C]
+ mov r0, sp
+ ldrh r0, [r0, 0xC]
+ strh r0, [r4, 0x30]
+ mov r1, sp
+ ldrh r1, [r1, 0x8]
+ strh r1, [r4, 0x32]
+ mov r2, sp
+ ldrh r2, [r2, 0x8]
+ strh r2, [r4, 0x34]
+ strh r6, [r4, 0x38]
+ mov r0, sp
+ ldrh r0, [r0, 0x8]
+ strh r0, [r4, 0x3A]
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ movs r0, 0x1F
+ ldr r1, [sp, 0xC]
+ 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]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl CalcCenterToCornerVec
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ mov r1, r8
+ cmp r1, 0
+ bne _0813D64C
+ mov r0, r9
+ adds r0, 0x1C
+ adds r0, r5, r0
+ ldr r1, _0813D648
+ b _0813D654
+ .align 2, 0
+_0813D640: .4byte gSpriteTemplate_840AE20
+_0813D644: .4byte gSprites
+_0813D648: .4byte sub_813D208
+_0813D64C:
+ mov r0, r9
+ adds r0, 0x1C
+ adds r0, r5, r0
+ ldr r1, _0813D774
+_0813D654:
+ str r1, [r0]
+ str r7, [sp, 0x10]
+ mov r2, r10
+ lsls r2, 16
+ asrs r2, 16
+ mov r10, r2
+ ldr r0, [sp, 0x4]
+ lsls r0, 16
+ asrs r0, 16
+ mov r8, r0
+ ldr r0, _0813D778
+ mov r1, r10
+ mov r2, r8
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r5, _0813D77C
+ lsls r4, r7, 4
+ adds r4, r7
+ lsls r4, 2
+ adds r0, r4, r5
+ mov r1, sp
+ ldrh r1, [r1, 0x10]
+ strh r1, [r0, 0x3C]
+ ldr r2, [sp, 0xC]
+ adds r2, 0x1
+ mov r9, r2
+ strh r2, [r0, 0x30]
+ ldrb r1, [r0, 0x1]
+ movs r2, 0x3
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ mov r2, r9
+ movs r1, 0x1F
+ ands r2, r1
+ lsls r2, 1
+ ldrb r3, [r0, 0x3]
+ movs r6, 0x3F
+ negs r6, r6
+ adds r1, r6, 0
+ ands r1, r3
+ orrs r1, r2
+ strb r1, [r0, 0x3]
+ movs r1, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl CalcCenterToCornerVec
+ ldr r2, _0813D780
+ adds r4, r2
+ ldr r0, _0813D784
+ str r0, [r4]
+ ldr r0, _0813D778
+ mov r1, r10
+ mov r2, r8
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r4, r7, 4
+ adds r4, r7
+ lsls r4, 2
+ adds r5, r4, r5
+ mov r1, sp
+ ldrh r1, [r1, 0x10]
+ strh r1, [r5, 0x3C]
+ ldr r2, [sp, 0xC]
+ adds r2, 0x2
+ mov r8, r2
+ strh r2, [r5, 0x30]
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldrb r0, [r5, 0x1]
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r5, 0x1]
+ mov r0, r8
+ movs r2, 0x1F
+ ands r0, r2
+ lsls r0, 1
+ ldrb r1, [r5, 0x3]
+ ands r6, r1
+ orrs r6, r0
+ strb r6, [r5, 0x3]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl CalcCenterToCornerVec
+ ldr r0, _0813D780
+ adds r4, r0
+ ldr r1, _0813D784
+ str r1, [r4]
+ ldr r2, [sp, 0xC]
+ lsls r0, r2, 24
+ lsrs r0, 24
+ ldr r5, [sp, 0x8]
+ adds r5, 0x20
+ lsls r4, r5, 16
+ lsrs r4, 16
+ str r4, [sp]
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ str r4, [sp]
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ mov r1, r8
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r5, 17
+ lsrs r5, 16
+ str r5, [sp]
+ mov r0, r8
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ ldr r0, [sp, 0x10]
+ 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
+_0813D774: .4byte sub_813D504
+_0813D778: .4byte gSpriteTemplate_840AE20
+_0813D77C: .4byte gSprites
+_0813D780: .4byte gSprites + 0x1C
+_0813D784: .4byte sub_813D158
+ thumb_func_end sub_813D584
+
+ thumb_func_start sub_813D788
+sub_813D788: @ 813D788
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bhi _0813D830
+ lsls r0, 2
+ ldr r1, _0813D7A0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0813D7A0: .4byte _0813D7A4
+ .align 2, 0
+_0813D7A4:
+ .4byte _0813D7B8
+ .4byte _0813D7C6
+ .4byte _0813D7E4
+ .4byte _0813D80C
+ .4byte _0813D816
+_0813D7B8:
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnimIfDifferent
+ ldrh r0, [r4, 0x20]
+ subs r0, 0x1
+ b _0813D82E
+_0813D7C6:
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnimIfDifferent
+ ldr r0, _0813D7E0
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0813D87A
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ b _0813D82E
+ .align 2, 0
+_0813D7E0: .4byte gUnknown_03005ED0
+_0813D7E4:
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnimIfDifferent
+ ldrh r2, [r4, 0x20]
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x78
+ ble _0813D802
+ ldr r0, _0813D808
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _0813D83C
+_0813D802:
+ adds r0, r2, 0x1
+ b _0813D82E
+ .align 2, 0
+_0813D808: .4byte gUnknown_03005ED0
+_0813D80C:
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl StartSpriteAnimIfDifferent
+ b _0813D830
+_0813D816:
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnimIfDifferent
+ ldrh r2, [r4, 0x20]
+ movs r0, 0x20
+ ldrsh r1, [r4, r0]
+ movs r0, 0x20
+ negs r0, r0
+ cmp r1, r0
+ ble _0813D830
+ subs r0, r2, 0x2
+_0813D82E:
+ strh r0, [r4, 0x20]
+_0813D830:
+ ldr r0, _0813D84C
+ ldr r0, [r0]
+ movs r1, 0x7
+ ands r0, r1
+ cmp r0, 0
+ bne _0813D87A
+_0813D83C:
+ movs r1, 0x26
+ ldrsh r5, [r4, r1]
+ cmp r5, 0
+ beq _0813D850
+ movs r0, 0
+ strh r0, [r4, 0x26]
+ b _0813D87A
+ .align 2, 0
+_0813D84C: .4byte gUnknown_03005ED0
+_0813D850:
+ bl Random
+ movs r1, 0x3
+ ands r1, r0
+ cmp r1, 0x1
+ beq _0813D878
+ cmp r1, 0x1
+ bgt _0813D866
+ cmp r1, 0
+ beq _0813D86E
+ b _0813D87A
+_0813D866:
+ cmp r1, 0x3
+ bgt _0813D87A
+ strh r5, [r4, 0x26]
+ b _0813D87A
+_0813D86E:
+ ldr r0, _0813D874
+ strh r0, [r4, 0x26]
+ b _0813D87A
+ .align 2, 0
+_0813D874: .4byte 0x0000ffff
+_0813D878:
+ strh r1, [r4, 0x26]
+_0813D87A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813D788
+
+ thumb_func_start sub_813D880
+sub_813D880: @ 813D880
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _0813D89A
+ cmp r0, 0x1
+ ble _0813D8E2
+ cmp r0, 0x2
+ beq _0813D8BA
+ cmp r0, 0x3
+ beq _0813D8D4
+ b _0813D8E2
+_0813D89A:
+ movs r2, 0x24
+ ldrsh r0, [r4, r2]
+ movs r2, 0x20
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ ldr r1, _0813D8B0
+ cmp r0, r1
+ bgt _0813D8B4
+ ldrh r0, [r4, 0x24]
+ adds r0, 0x8
+ b _0813D8E0
+ .align 2, 0
+_0813D8B0: .4byte 0x0000012f
+_0813D8B4:
+ movs r0, 0x2
+ strh r0, [r4, 0x2E]
+ b _0813D8E2
+_0813D8BA:
+ movs r1, 0x24
+ ldrsh r0, [r4, r1]
+ movs r2, 0x20
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ cmp r0, 0x78
+ ble _0813D8CE
+ ldrh r0, [r4, 0x24]
+ subs r0, 0x1
+ b _0813D8E0
+_0813D8CE:
+ movs r0, 0x3
+ strh r0, [r4, 0x2E]
+ b _0813D8E2
+_0813D8D4:
+ ldrh r1, [r4, 0x24]
+ movs r2, 0x24
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _0813D8E2
+ subs r0, r1, 0x2
+_0813D8E0:
+ strh r0, [r4, 0x24]
+_0813D8E2:
+ ldrh r0, [r4, 0x30]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x8
+ bl Sin
+ ldr r1, _0813D904
+ ldrh r1, [r1]
+ subs r0, r1
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x4
+ strh r0, [r4, 0x30]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813D904: .4byte gUnknown_0203935A
+ thumb_func_end sub_813D880
+
+ thumb_func_start sub_813D908
+sub_813D908: @ 813D908
+ push {lr}
+ adds r3, r0, 0
+ ldr r2, _0813D930
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0813D934
+ adds r0, r3, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _0813D94E
+ .align 2, 0
+_0813D930: .4byte gTasks
+_0813D934:
+ cmp r0, 0x4
+ beq _0813D948
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ b _0813D94E
+_0813D948:
+ adds r0, r3, 0
+ bl DestroySprite
+_0813D94E:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813D908
+
+ thumb_func_start sub_813D954
+sub_813D954: @ 813D954
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ movs r5, 0
+ ldr r7, _0813DA48
+ lsls r0, 16
+ mov r9, r0
+ lsls r0, r6, 16
+ str r0, [sp, 0x4]
+ mov r1, r9
+ asrs r1, 16
+ str r1, [sp]
+_0813D97C:
+ lsls r4, r5, 2
+ adds r0, r7, 0x2
+ adds r0, r4, r0
+ ldrh r1, [r0]
+ ldr r2, [sp]
+ adds r1, r2, r1
+ lsls r1, 16
+ asrs r1, 16
+ lsls r2, r6, 16
+ asrs r3, r2, 16
+ mov r10, r3
+ ldr r0, _0813DA4C
+ adds r2, r0
+ ldr r0, _0813DA50
+ asrs r2, 16
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _0813DA54
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ mov r1, r8
+ strh r1, [r0, 0x2E]
+ adds r4, r7
+ ldrb r1, [r4]
+ bl StartSpriteAnim
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x8
+ bls _0813D97C
+ movs r5, 0
+ ldr r7, _0813DA58
+ mov r0, r10
+ adds r0, 0xC
+ lsls r0, 16
+ mov r10, r0
+_0813D9D0:
+ lsls r4, r5, 2
+ adds r0, r7, 0x2
+ adds r0, r4, r0
+ mov r2, r9
+ asrs r1, r2, 16
+ ldrh r0, [r0]
+ adds r1, r0
+ lsls r1, 16
+ asrs r1, 16
+ ldr r0, _0813DA5C
+ mov r3, r10
+ asrs r2, r3, 16
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r6, _0813DA54
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r6
+ mov r1, r8
+ strh r1, [r0, 0x2E]
+ adds r4, r7
+ ldrb r1, [r4]
+ bl StartSpriteAnim
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x7
+ bls _0813D9D0
+ ldr r0, _0813DA60
+ ldr r3, [sp, 0x4]
+ ldr r1, _0813DA4C
+ adds r2, r3, r1
+ asrs r2, 16
+ movs r1, 0x78
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r6
+ mov r3, r8
+ strh r3, [r0, 0x2E]
+ adds r0, r2, 0
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0813DA48: .4byte gUnknown_0840AF50
+_0813DA4C: .4byte 0xfffc0000
+_0813DA50: .4byte gSpriteTemplate_840AF94
+_0813DA54: .4byte gSprites
+_0813DA58: .4byte gUnknown_0840AF74
+_0813DA5C: .4byte gSpriteTemplate_840AFAC
+_0813DA60: .4byte gSpriteTemplate_840AFC4
+ thumb_func_end sub_813D954
+
+ thumb_func_start sub_813DA64
+sub_813DA64: @ 813DA64
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0813DA7C
+ cmp r0, 0x1
+ beq _0813DAC0
+_0813DA7C:
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x3
+ 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]
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0x3
+ movs r3, 0x3
+ bl CalcCenterToCornerVec
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r0, 0x80
+ strh r0, [r4, 0x30]
+ ldr r0, _0813DABC
+ strh r0, [r4, 0x32]
+ movs r0, 0
+ b _0813DB92
+ .align 2, 0
+_0813DABC: .4byte 0x0000ffe8
+_0813DAC0:
+ ldrh r1, [r4, 0x34]
+ movs r2, 0x34
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x4F
+ bgt _0813DAF8
+ lsls r0, r1, 24
+ lsrs r0, 24
+ movs r1, 0x78
+ bl Sin
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x8C
+ bl Sin
+ negs r0, r0
+ strh r0, [r4, 0x24]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x40
+ ble _0813DAF8
+ ldrb r0, [r4, 0x5]
+ movs r1, 0xC
+ orrs r0, r1
+ strb r0, [r4, 0x5]
+_0813DAF8:
+ ldr r2, _0813DB60
+ ldrh r1, [r4, 0x32]
+ lsls r0, r1, 24
+ lsrs r0, 23
+ adds r0, r2
+ ldrh r3, [r0]
+ adds r1, 0x40
+ lsls r1, 24
+ lsrs r1, 23
+ adds r1, r2
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ movs r1, 0x30
+ ldrsh r2, [r4, r1]
+ adds r1, r0, 0
+ muls r1, r2
+ adds r0, r1, 0
+ cmp r1, 0
+ bge _0813DB20
+ adds r0, 0xFF
+_0813DB20:
+ lsls r0, 8
+ lsrs r6, r0, 16
+ lsls r0, r3, 16
+ asrs r3, r0, 16
+ negs r0, r3
+ muls r0, r2
+ cmp r0, 0
+ bge _0813DB32
+ adds r0, 0xFF
+_0813DB32:
+ lsls r0, 8
+ lsrs r5, r0, 16
+ adds r0, r3, 0
+ muls r0, r2
+ cmp r0, 0
+ bge _0813DB40
+ adds r0, 0xFF
+_0813DB40:
+ lsls r0, 8
+ lsrs r2, r0, 16
+ adds r1, r6, 0
+ adds r3, r5, 0
+ str r1, [sp]
+ movs r0, 0x1
+ bl SetOamMatrix
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0xFF
+ bgt _0813DB64
+ adds r0, r1, 0
+ adds r0, 0x8
+ b _0813DB68
+ .align 2, 0
+_0813DB60: .4byte gSineTable
+_0813DB64:
+ adds r0, r1, 0
+ adds r0, 0x20
+_0813DB68:
+ strh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x17
+ bgt _0813DB78
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x32]
+_0813DB78:
+ ldrh r2, [r4, 0x34]
+ movs r1, 0x34
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x3F
+ bgt _0813DB86
+ adds r0, r2, 0x2
+ b _0813DB92
+_0813DB86:
+ ldrh r1, [r4, 0x3C]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _0813DB94
+ adds r0, r2, 0x1
+_0813DB92:
+ strh r0, [r4, 0x34]
+_0813DB94:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813DA64
+
+ thumb_func_start sub_813DB9C
+sub_813DB9C: @ 813DB9C
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bhi _0813DBCC
+ lsls r0, 2
+ ldr r1, _0813DBB4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0813DBB4: .4byte _0813DBB8
+ .align 2, 0
+_0813DBB8:
+ .4byte _0813DBCC
+ .4byte _0813DBF2
+ .4byte _0813DC24
+ .4byte _0813DC3E
+ .4byte _0813DCAA
+_0813DBCC:
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0813DBE0
+ adds r2, r4, 0
+ adds r2, 0x3F
+ ldrb r0, [r2]
+ movs r1, 0x1
+ orrs r0, r1
+ b _0813DBEC
+_0813DBE0:
+ adds r2, r4, 0
+ adds r2, 0x3F
+ ldrb r1, [r2]
+ movs r0, 0x2
+ negs r0, r0
+ ands r0, r1
+_0813DBEC:
+ strb r0, [r2]
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+_0813DBF2:
+ ldrh r1, [r4, 0x22]
+ movs r3, 0x22
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x60
+ ble _0813DC18
+ subs r0, r1, 0x4
+ strh r0, [r4, 0x22]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0813DC10
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x2
+ strh r0, [r4, 0x20]
+ b _0813DD4E
+_0813DC10:
+ ldrh r0, [r4, 0x20]
+ subs r0, 0x2
+ strh r0, [r4, 0x20]
+ b _0813DD4E
+_0813DC18:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ movs r0, 0x8
+ strh r0, [r4, 0x34]
+ b _0813DD4E
+_0813DC24:
+ ldrh r0, [r4, 0x34]
+ movs r2, 0x34
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ beq _0813DC34
+ subs r0, 0x1
+ strh r0, [r4, 0x34]
+ b _0813DD4E
+_0813DC34:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x34]
+ b _0813DD4E
+_0813DC3E:
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ movs r3, 0x30
+ ldrsh r1, [r4, r3]
+ 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]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x3
+ movs r3, 0x3
+ bl CalcCenterToCornerVec
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0813DC8A
+ ldrh r0, [r4, 0x30]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0xFF
+ lsls r1, 8
+ movs r2, 0x80
+ lsls r2, 1
+ str r2, [sp]
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ b _0813DC9E
+_0813DC8A:
+ ldrh r0, [r4, 0x30]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x80
+ lsls r1, 1
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+_0813DC9E:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ movs r1, 0
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x36]
+ b _0813DD4E
+_0813DCAA:
+ ldrh r0, [r4, 0x36]
+ adds r2, r0, 0x1
+ strh r2, [r4, 0x36]
+ movs r3, 0x22
+ ldrsh r0, [r4, r3]
+ movs r3, 0x26
+ ldrsh r1, [r4, r3]
+ adds r0, r1
+ movs r1, 0x20
+ negs r1, r1
+ cmp r0, r1
+ ble _0813DD48
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ movs r3, 0x24
+ ldrsh r1, [r4, r3]
+ adds r0, r1
+ movs r1, 0x40
+ negs r1, r1
+ cmp r0, r1
+ ble _0813DD48
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ adds r3, r0, 0
+ muls r3, r0
+ adds r0, r3, 0
+ negs r0, r0
+ cmp r0, 0
+ bge _0813DCE6
+ adds r0, 0x7
+_0813DCE6:
+ asrs r0, 3
+ strh r0, [r4, 0x26]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ ldrh r3, [r4, 0x32]
+ cmp r0, 0
+ beq _0813DCFA
+ ldrh r0, [r4, 0x24]
+ adds r0, r2
+ b _0813DCFE
+_0813DCFA:
+ ldrh r0, [r4, 0x24]
+ subs r0, r2
+_0813DCFE:
+ strh r0, [r4, 0x24]
+ ldrh r1, [r4, 0x34]
+ movs r2, 0x34
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x7F
+ bgt _0813DD10
+ adds r0, r1, 0
+ adds r0, 0x8
+ strh r0, [r4, 0x34]
+_0813DD10:
+ ldrh r0, [r4, 0x34]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ subs r1, r0
+ lsls r1, 16
+ lsrs r2, r1, 16
+ lsls r0, r3, 16
+ cmp r0, 0
+ beq _0813DD34
+ ldrh r0, [r4, 0x30]
+ lsls r0, 24
+ lsrs r0, 24
+ negs r1, r2
+ lsls r1, 16
+ lsrs r1, 16
+ str r2, [sp]
+ b _0813DD3E
+_0813DD34:
+ ldrh r0, [r4, 0x30]
+ lsls r0, 24
+ lsrs r0, 24
+ str r2, [sp]
+ adds r1, r2, 0
+_0813DD3E:
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ b _0813DD4E
+_0813DD48:
+ adds r0, r4, 0
+ bl DestroySprite
+_0813DD4E:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813DB9C
+
+ thumb_func_start sub_813DD58
+sub_813DD58: @ 813DD58
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _0813DDAE
+ cmp r0, 0x1
+ ble _0813DD72
+ cmp r0, 0x2
+ beq _0813DE66
+ cmp r0, 0x3
+ beq _0813DE26
+_0813DD72:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ 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]
+ movs r0, 0x80
+ lsls r0, 4
+ strh r0, [r4, 0x34]
+ movs r0, 0x1
+ strh r0, [r4, 0x2E]
+_0813DDAE:
+ ldrh r1, [r4, 0x34]
+ movs r2, 0x34
+ ldrsh r0, [r4, r2]
+ movs r2, 0x80
+ lsls r2, 1
+ cmp r0, r2
+ ble _0813DDEE
+ subs r1, 0x80
+ strh r1, [r4, 0x34]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0813DDDA
+ ldrh r0, [r4, 0x30]
+ lsls r0, 24
+ lsrs r0, 24
+ negs r1, r1
+ lsls r1, 16
+ lsrs r1, 16
+ ldrh r2, [r4, 0x34]
+ str r2, [sp]
+ b _0813DDE4
+_0813DDDA:
+ ldrh r0, [r4, 0x30]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x34]
+ str r1, [sp]
+_0813DDE4:
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ b _0813DE66
+_0813DDEE:
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0813DE0C
+ ldrh r0, [r4, 0x30]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0xFF
+ lsls r1, 8
+ str r2, [sp]
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ b _0813DE1E
+_0813DE0C:
+ ldrh r0, [r4, 0x30]
+ lsls r0, 24
+ lsrs r0, 24
+ str r2, [sp]
+ adds r1, r2, 0
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+_0813DE1E:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _0813DE66
+_0813DE26:
+ ldrh r0, [r4, 0x36]
+ adds r0, 0x1
+ strh r0, [r4, 0x36]
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ adds r1, r0, 0
+ muls r1, r0
+ adds r0, r1, 0
+ cmp r0, 0
+ bge _0813DE3C
+ adds r0, 0x1F
+_0813DE3C:
+ asrs r0, 5
+ strh r0, [r4, 0x26]
+ movs r2, 0x32
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0813DE56
+ movs r1, 0x36
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bge _0813DE52
+ adds r0, 0x3
+_0813DE52:
+ asrs r0, 2
+ b _0813DE64
+_0813DE56:
+ movs r2, 0x36
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bge _0813DE60
+ adds r0, 0x3
+_0813DE60:
+ asrs r0, 2
+ negs r0, r0
+_0813DE64:
+ strh r0, [r4, 0x24]
+_0813DE66:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813DD58
+
+ thumb_func_start sub_813DE70
+sub_813DE70: @ 813DE70
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r7, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x6
+ bhi _0813DEB0
+ lsls r0, 2
+ ldr r1, _0813DE90
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0813DE90: .4byte _0813DE94
+ .align 2, 0
+_0813DE94:
+ .4byte _0813DEB0
+ .4byte _0813E0F8
+ .4byte _0813DEF4
+ .4byte _0813DF2C
+ .4byte _0813DF54
+ .4byte _0813E0A8
+ .4byte _0813E0D0
+_0813DEB0:
+ ldrh r1, [r7, 0x20]
+ movs r2, 0x20
+ ldrsh r0, [r7, r2]
+ cmp r0, 0x28
+ ble _0813DEC0
+ subs r0, r1, 0x4
+ strh r0, [r7, 0x20]
+ b _0813E0F8
+_0813DEC0:
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r4, _0813DEF0
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0x68
+ movs r3, 0x64
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r7, 0x3A]
+ adds r0, r4, 0
+ movs r1, 0xC
+ movs r2, 0x6A
+ movs r3, 0x65
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r7, 0x3C]
+ b _0813DF42
+ .align 2, 0
+_0813DEF0: .4byte gSpriteTemplate_840B084
+_0813DEF4:
+ adds r0, r7, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ ldr r2, _0813DF28
+ movs r3, 0x3A
+ ldrsh r1, [r7, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x1
+ strh r1, [r0, 0x2E]
+ movs r0, 0x3C
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x2
+ strh r1, [r0, 0x2E]
+ ldrh r0, [r7, 0x2E]
+ adds r0, 0x1
+ strh r0, [r7, 0x2E]
+ b _0813E0F8
+ .align 2, 0
+_0813DF28: .4byte gSprites
+_0813DF2C:
+ ldrh r1, [r7, 0x22]
+ movs r2, 0x22
+ ldrsh r0, [r7, r2]
+ cmp r0, 0xA0
+ ble _0813DF48
+ adds r2, r7, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_0813DF42:
+ movs r0, 0x1
+ strh r0, [r7, 0x2E]
+ b _0813E0F8
+_0813DF48:
+ adds r0, r1, 0x2
+ strh r0, [r7, 0x22]
+ ldrh r0, [r7, 0x20]
+ subs r0, 0x1
+ strh r0, [r7, 0x20]
+ b _0813E0F8
+_0813DF54:
+ ldr r6, _0813E094
+ movs r3, 0x3A
+ ldrsh r1, [r7, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r5, [r0, 0x24]
+ ldrh r1, [r0, 0x20]
+ adds r5, r1
+ lsls r5, 16
+ lsrs r5, 16
+ ldrh r4, [r0, 0x26]
+ ldrh r2, [r0, 0x22]
+ adds r4, r2
+ lsls r4, 16
+ lsrs r4, 16
+ bl DestroySprite
+ movs r0, 0x8C
+ lsls r0, 1
+ lsls r5, 16
+ asrs r1, r5, 16
+ lsls r4, 16
+ asrs r2, r4, 16
+ movs r3, 0x1
+ mov r8, r3
+ str r3, [sp]
+ movs r3, 0x2
+ bl sub_813CE88
+ strh r0, [r7, 0x3A]
+ movs r0, 0x3A
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0813E098
+ adds r0, r1
+ ldr r2, _0813E09C
+ mov r10, r2
+ str r2, [r0]
+ movs r3, 0x3A
+ ldrsh r1, [r7, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ mov r9, r2
+ mov r3, r9
+ orrs r1, r3
+ strb r1, [r0]
+ movs r0, 0x3A
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ mov r1, r8
+ strh r1, [r0, 0x30]
+ movs r2, 0x3A
+ ldrsh r1, [r7, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ mov r3, r8
+ strh r3, [r0, 0x32]
+ lsrs r5, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_813E580
+ movs r0, 0x3C
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r5, [r0, 0x24]
+ ldrh r1, [r0, 0x20]
+ adds r5, r1
+ lsls r5, 16
+ lsrs r5, 16
+ ldrh r4, [r0, 0x26]
+ ldrh r2, [r0, 0x22]
+ adds r4, r2
+ lsls r4, 16
+ lsrs r4, 16
+ bl DestroySprite
+ ldr r0, _0813E0A0
+ lsls r5, 16
+ asrs r1, r5, 16
+ lsls r4, 16
+ asrs r2, r4, 16
+ mov r3, r8
+ str r3, [sp]
+ movs r3, 0x3
+ bl sub_813CE88
+ strh r0, [r7, 0x3C]
+ movs r0, 0x3C
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0813E098
+ adds r0, r1
+ mov r2, r10
+ str r2, [r0]
+ movs r3, 0x3C
+ ldrsh r1, [r7, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ mov r2, r9
+ orrs r1, r2
+ strb r1, [r0]
+ movs r3, 0x3C
+ ldrsh r1, [r7, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x2
+ strh r1, [r0, 0x30]
+ movs r0, 0x3C
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0
+ strh r1, [r0, 0x32]
+ lsrs r5, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_813E580
+ movs r0, 0xFF
+ lsls r0, 16
+ ldr r1, _0813E0A4
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ mov r2, r8
+ strh r2, [r7, 0x2E]
+ b _0813E0F8
+ .align 2, 0
+_0813E094: .4byte gSprites
+_0813E098: .4byte gSprites + 0x1C
+_0813E09C: .4byte sub_813DD58
+_0813E0A0: .4byte 0x0000011b
+_0813E0A4: .4byte 0x00007eff
+_0813E0A8:
+ ldr r3, _0813E0CC
+ movs r0, 0x3A
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x3
+ strh r2, [r0, 0x2E]
+ movs r0, 0x3C
+ ldrsh r1, [r7, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ strh r2, [r0, 0x2E]
+ b _0813E0F8
+ .align 2, 0
+_0813E0CC: .4byte gSprites
+_0813E0D0:
+ movs r2, 0x3A
+ ldrsh r1, [r7, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r4, _0813E108
+ adds r0, r4
+ bl DestroySprite
+ movs r3, 0x3C
+ ldrsh r1, [r7, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl DestroySprite
+ adds r0, r7, 0
+ bl DestroySprite
+_0813E0F8:
+ 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
+_0813E108: .4byte gSprites
+ thumb_func_end sub_813DE70
+
+ thumb_func_start sub_813E10C
+sub_813E10C: @ 813E10C
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x4
+ bhi _0813E13C
+ lsls r0, 2
+ ldr r1, _0813E124
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0813E124: .4byte _0813E128
+ .align 2, 0
+_0813E128:
+ .4byte _0813E13C
+ .4byte _0813E178
+ .4byte _0813E1A6
+ .4byte _0813E1C2
+ .4byte _0813E1D6
+_0813E13C:
+ ldrh r4, [r3, 0x24]
+ movs r2, 0x24
+ ldrsh r1, [r3, r2]
+ movs r0, 0x38
+ negs r0, r0
+ cmp r1, r0
+ ble _0813E158
+ adds r0, r4, 0
+ subs r0, 0x8
+ strh r0, [r3, 0x24]
+ ldrh r0, [r3, 0x26]
+ adds r0, 0x6
+ strh r0, [r3, 0x26]
+ b _0813E208
+_0813E158:
+ ldrh r0, [r3, 0x20]
+ movs r2, 0
+ strh r0, [r3, 0x3A]
+ ldrh r1, [r3, 0x22]
+ strh r1, [r3, 0x3C]
+ adds r0, r4
+ strh r0, [r3, 0x20]
+ ldrh r0, [r3, 0x26]
+ adds r1, r0
+ strh r1, [r3, 0x22]
+ strh r2, [r3, 0x24]
+ strh r2, [r3, 0x26]
+ movs r0, 0x1
+ strh r0, [r3, 0x2E]
+ strh r2, [r3, 0x30]
+ b _0813E208
+_0813E178:
+ ldrh r1, [r3, 0x30]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0813E1A0
+ movs r0, 0x2
+ ands r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ beq _0813E19C
+ ldr r0, _0813E198
+ strh r0, [r3, 0x24]
+ strh r2, [r3, 0x26]
+ b _0813E1A0
+ .align 2, 0
+_0813E198: .4byte 0x0000ffff
+_0813E19C:
+ strh r0, [r3, 0x24]
+ strh r0, [r3, 0x26]
+_0813E1A0:
+ adds r0, r1, 0x1
+ strh r0, [r3, 0x30]
+ b _0813E208
+_0813E1A6:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r3, 0x3A]
+ movs r1, 0
+ strh r0, [r3, 0x20]
+ ldrh r0, [r3, 0x3C]
+ strh r0, [r3, 0x22]
+ strh r1, [r3, 0x24]
+ strh r1, [r3, 0x26]
+ b _0813E208
+_0813E1C2:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r2]
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+_0813E1D6:
+ ldrh r2, [r3, 0x24]
+ movs r0, 0x24
+ ldrsh r1, [r3, r0]
+ movs r0, 0x38
+ negs r0, r0
+ cmp r1, r0
+ ble _0813E1F0
+ subs r0, r2, 0x4
+ strh r0, [r3, 0x24]
+ ldrh r0, [r3, 0x26]
+ adds r0, 0x3
+ strh r0, [r3, 0x26]
+ b _0813E208
+_0813E1F0:
+ ldrh r1, [r3, 0x20]
+ adds r0, r2, r1
+ movs r1, 0
+ strh r0, [r3, 0x20]
+ ldrh r0, [r3, 0x26]
+ ldrh r2, [r3, 0x22]
+ adds r0, r2
+ strh r0, [r3, 0x22]
+ strh r1, [r3, 0x24]
+ strh r1, [r3, 0x26]
+ movs r0, 0x1
+ strh r0, [r3, 0x2E]
+_0813E208:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813E10C
+
+ thumb_func_start sub_813E210
+sub_813E210: @ 813E210
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x4
+ bhi _0813E240
+ lsls r0, 2
+ ldr r1, _0813E228
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0813E228: .4byte _0813E22C
+ .align 2, 0
+_0813E22C:
+ .4byte _0813E240
+ .4byte _0813E278
+ .4byte _0813E2A6
+ .4byte _0813E2C2
+ .4byte _0813E2D6
+_0813E240:
+ ldrh r4, [r3, 0x24]
+ movs r2, 0x24
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x37
+ bgt _0813E258
+ adds r0, r4, 0
+ adds r0, 0x8
+ strh r0, [r3, 0x24]
+ ldrh r0, [r3, 0x26]
+ subs r0, 0x6
+ strh r0, [r3, 0x26]
+ b _0813E304
+_0813E258:
+ ldrh r0, [r3, 0x20]
+ movs r2, 0
+ strh r0, [r3, 0x3A]
+ ldrh r1, [r3, 0x22]
+ strh r1, [r3, 0x3C]
+ adds r0, r4
+ strh r0, [r3, 0x20]
+ ldrh r0, [r3, 0x26]
+ adds r1, r0
+ strh r1, [r3, 0x22]
+ strh r2, [r3, 0x24]
+ strh r2, [r3, 0x26]
+ movs r0, 0x1
+ strh r0, [r3, 0x2E]
+ strh r2, [r3, 0x30]
+ b _0813E304
+_0813E278:
+ ldrh r1, [r3, 0x30]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0813E2A0
+ movs r0, 0x2
+ ands r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ beq _0813E29C
+ strh r2, [r3, 0x24]
+ ldr r0, _0813E298
+ b _0813E29E
+ .align 2, 0
+_0813E298: .4byte 0x0000ffff
+_0813E29C:
+ strh r0, [r3, 0x24]
+_0813E29E:
+ strh r0, [r3, 0x26]
+_0813E2A0:
+ adds r0, r1, 0x1
+ strh r0, [r3, 0x30]
+ b _0813E304
+_0813E2A6:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldrh r0, [r3, 0x3A]
+ movs r1, 0
+ strh r0, [r3, 0x20]
+ ldrh r0, [r3, 0x3C]
+ strh r0, [r3, 0x22]
+ strh r1, [r3, 0x24]
+ strh r1, [r3, 0x26]
+ b _0813E304
+_0813E2C2:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r2]
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+_0813E2D6:
+ ldrh r1, [r3, 0x24]
+ movs r2, 0x24
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x37
+ bgt _0813E2EC
+ adds r0, r1, 0x4
+ strh r0, [r3, 0x24]
+ ldrh r0, [r3, 0x26]
+ subs r0, 0x3
+ strh r0, [r3, 0x26]
+ b _0813E304
+_0813E2EC:
+ ldrh r2, [r3, 0x20]
+ adds r0, r1, r2
+ movs r1, 0
+ strh r0, [r3, 0x20]
+ ldrh r0, [r3, 0x26]
+ ldrh r2, [r3, 0x22]
+ adds r0, r2
+ strh r0, [r3, 0x22]
+ strh r1, [r3, 0x24]
+ strh r1, [r3, 0x26]
+ movs r0, 0x1
+ strh r0, [r3, 0x2E]
+_0813E304:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813E210
+
+ thumb_func_start sub_813E30C
+sub_813E30C: @ 813E30C
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x14
+ bls _0813E322
+ b _0813E4AC
+_0813E322:
+ lsls r0, 2
+ ldr r1, _0813E32C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0813E32C: .4byte _0813E330
+ .align 2, 0
+_0813E330:
+ .4byte _0813E4AC
+ .4byte _0813E384
+ .4byte _0813E41C
+ .4byte _0813E4AC
+ .4byte _0813E4AC
+ .4byte _0813E4AC
+ .4byte _0813E4AC
+ .4byte _0813E4AC
+ .4byte _0813E4AC
+ .4byte _0813E4AC
+ .4byte _0813E3A8
+ .4byte _0813E4AC
+ .4byte _0813E4AC
+ .4byte _0813E4AC
+ .4byte _0813E4AC
+ .4byte _0813E4AC
+ .4byte _0813E4AC
+ .4byte _0813E4AC
+ .4byte _0813E4AC
+ .4byte _0813E4AC
+ .4byte _0813E440
+_0813E384:
+ 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]
+ movs r0, 0xA
+ strh r0, [r4, 0x2E]
+ movs r0, 0x24
+ strh r0, [r4, 0x36]
+_0813E3A8:
+ ldrh r1, [r4, 0x20]
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x90
+ bgt _0813E3D2
+ adds r0, r1, 0x4
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x18
+ bl Sin
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x4
+ strh r0, [r4, 0x32]
+_0813E3D2:
+ ldrh r0, [r4, 0x34]
+ ldrh r2, [r4, 0x36]
+ subs r0, r2
+ strh r0, [r4, 0x34]
+ ldrh r1, [r4, 0x3C]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0813E3EE
+ lsls r0, r2, 16
+ cmp r0, 0
+ beq _0813E3EE
+ subs r0, r2, 0x1
+ strh r0, [r4, 0x36]
+_0813E3EE:
+ ldr r2, _0813E418
+ ldrh r1, [r4, 0x34]
+ lsls r0, r1, 24
+ lsrs r0, 23
+ adds r0, r2
+ ldrh r4, [r0]
+ adds r1, 0x40
+ lsls r1, 24
+ lsrs r1, 23
+ adds r1, r2
+ ldrh r1, [r1]
+ negs r3, r4
+ lsls r3, 16
+ lsrs r3, 16
+ str r1, [sp]
+ movs r0, 0x1
+ adds r2, r4, 0
+ bl SetOamMatrix
+ b _0813E4AC
+ .align 2, 0
+_0813E418: .4byte gSineTable
+_0813E41C:
+ 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]
+ movs r0, 0x14
+ strh r0, [r4, 0x2E]
+ movs r0, 0x24
+ strh r0, [r4, 0x36]
+_0813E440:
+ ldrh r1, [r4, 0x20]
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x60
+ bgt _0813E46A
+ adds r0, r1, 0x3
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x22]
+ subs r0, 0x1
+ strh r0, [r4, 0x22]
+ ldrh r0, [r4, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x18
+ bl Sin
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x32]
+ adds r0, 0x4
+ strh r0, [r4, 0x32]
+_0813E46A:
+ ldrh r0, [r4, 0x34]
+ ldrh r2, [r4, 0x36]
+ subs r0, r2
+ strh r0, [r4, 0x34]
+ ldrh r1, [r4, 0x3C]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0813E486
+ lsls r0, r2, 16
+ cmp r0, 0
+ beq _0813E486
+ subs r0, r2, 0x1
+ strh r0, [r4, 0x36]
+_0813E486:
+ ldr r2, _0813E4B4
+ ldrh r1, [r4, 0x34]
+ lsls r0, r1, 24
+ lsrs r0, 23
+ adds r0, r2
+ ldrh r4, [r0]
+ adds r1, 0x40
+ lsls r1, 24
+ lsrs r1, 23
+ adds r1, r2
+ ldrh r1, [r1]
+ negs r3, r4
+ lsls r3, 16
+ lsrs r3, 16
+ str r1, [sp]
+ movs r0, 0x2
+ adds r2, r4, 0
+ bl SetOamMatrix
+_0813E4AC:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813E4B4: .4byte gSineTable
+ thumb_func_end sub_813E30C
+
+ thumb_func_start sub_813E4B8
+sub_813E4B8: @ 813E4B8
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldrh r0, [r5, 0x3C]
+ adds r0, 0x1
+ strh r0, [r5, 0x3C]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0813E4DA
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ b _0813E4E4
+_0813E4DA:
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+_0813E4E4:
+ strb r0, [r2]
+ ldrh r1, [r5, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x3F
+ ble _0813E4F8
+ adds r0, r5, 0
+ bl DestroySprite
+ b _0813E574
+_0813E4F8:
+ adds r0, r1, 0x2
+ strh r0, [r5, 0x32]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x28
+ bl Sin
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ lsls r0, 29
+ lsrs r0, 24
+ lsls r4, 16
+ asrs r4, 16
+ adds r1, r4, 0
+ bl Cos
+ strh r0, [r5, 0x24]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ lsls r0, 29
+ lsrs r0, 24
+ adds r1, r4, 0
+ bl Sin
+ strh r0, [r5, 0x26]
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0813E574
+ ldrh r0, [r5, 0x34]
+ ldrh r2, [r5, 0x30]
+ subs r0, r2
+ strh r0, [r5, 0x34]
+ ldrh r1, [r5, 0x3C]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0813E550
+ lsls r0, r2, 16
+ cmp r0, 0
+ beq _0813E550
+ subs r0, r2, 0x1
+ strh r0, [r5, 0x30]
+_0813E550:
+ ldr r3, _0813E57C
+ ldrh r1, [r5, 0x34]
+ lsls r0, r1, 24
+ lsrs r0, 23
+ adds r0, r3
+ ldrh r2, [r0]
+ adds r1, 0x40
+ lsls r1, 24
+ lsrs r1, 23
+ adds r1, r3
+ ldrh r1, [r1]
+ negs r3, r2
+ lsls r3, 16
+ lsrs r3, 16
+ str r1, [sp]
+ movs r0, 0x10
+ bl SetOamMatrix
+_0813E574:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813E57C: .4byte gSineTable
+ thumb_func_end sub_813E4B8
+
+ thumb_func_start sub_813E580
+sub_813E580: @ 813E580
+ push {r4-r7,lr}
+ movs r4, 0
+ ldr r7, _0813E5D8
+ lsls r6, r0, 16
+ lsls r5, r1, 16
+_0813E58A:
+ ldr r0, _0813E5DC
+ asrs r1, r6, 16
+ asrs r2, r5, 16
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r7
+ ldrb r1, [r2, 0x1]
+ movs r3, 0x4
+ negs r3, r3
+ adds r0, r3, 0
+ ands r1, r0
+ movs r0, 0x1
+ orrs r1, r0
+ strb r1, [r2, 0x1]
+ ldrb r1, [r2, 0x3]
+ subs r3, 0x3B
+ adds r0, r3, 0
+ ands r1, r0
+ movs r0, 0x20
+ orrs r1, r0
+ strb r1, [r2, 0x3]
+ strh r4, [r2, 0x2E]
+ movs r0, 0x20
+ strh r0, [r2, 0x30]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _0813E58A
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813E5D8: .4byte gSprites
+_0813E5DC: .4byte gSpriteTemplate_840B0B0
+ thumb_func_end sub_813E580
+
+ thumb_func_start sub_813E5E0
+sub_813E5E0: @ 813E5E0
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, _0813E5F4
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0813E5F8
+ adds r0, r3, 0
+ bl DestroySprite
+ b _0813E6B2
+ .align 2, 0
+_0813E5F4: .4byte gUnknown_0203931A
+_0813E5F8:
+ ldr r2, _0813E6B8
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ movs r1, 0x4
+ ands r1, r0
+ mov r4, r12
+ ldrb r2, [r4]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4]
+ ldrh r1, [r3, 0x3C]
+ movs r2, 0x3C
+ ldrsh r0, [r3, r2]
+ cmp r0, 0xB
+ bgt _0813E630
+ adds r0, r1, 0x1
+ strh r0, [r3, 0x3C]
+_0813E630:
+ ldrh r0, [r3, 0x3A]
+ adds r0, 0x4
+ strh r0, [r3, 0x3A]
+ ldr r4, _0813E6BC
+ ldrh r0, [r3, 0x34]
+ adds r0, 0x40
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r4
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r2, 0x3A
+ ldrsh r0, [r3, r2]
+ muls r0, r1
+ cmp r0, 0
+ bge _0813E652
+ adds r0, 0xFF
+_0813E652:
+ asrs r0, 8
+ ldrh r1, [r3, 0x36]
+ adds r0, r1
+ strh r0, [r3, 0x20]
+ movs r2, 0x34
+ ldrsh r0, [r3, r2]
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r4
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r2, 0x3A
+ ldrsh r0, [r3, r2]
+ muls r0, r1
+ cmp r0, 0
+ bge _0813E674
+ adds r0, 0xFF
+_0813E674:
+ asrs r0, 8
+ ldrh r1, [r3, 0x38]
+ adds r2, r0, r1
+ strh r2, [r3, 0x22]
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r4
+ movs r4, 0
+ ldrsh r1, [r0, r4]
+ movs r4, 0x3C
+ ldrsh r0, [r3, r4]
+ muls r0, r1
+ cmp r0, 0
+ bge _0813E696
+ adds r0, 0xFF
+_0813E696:
+ asrs r0, 8
+ strh r0, [r3, 0x26]
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x10
+ strh r0, [r3, 0x30]
+ lsls r0, r2, 16
+ asrs r0, 16
+ movs r2, 0x32
+ ldrsh r1, [r3, r2]
+ cmp r0, r1
+ ble _0813E6B2
+ adds r0, r3, 0
+ bl DestroySprite
+_0813E6B2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813E6B8: .4byte gSprites
+_0813E6BC: .4byte gSineTable
+ thumb_func_end sub_813E5E0
+
+ thumb_func_start sub_813E6C0
+sub_813E6C0: @ 813E6C0
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldr r0, _0813E6E0
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0813E6E4
+ adds r0, r4, 0
+ bl DestroySprite
+ b _0813E7A8
+ .align 2, 0
+_0813E6E0: .4byte gUnknown_0203931A
+_0813E6E4:
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r3, _0813E7B8
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0, r3
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ bne _0813E7A8
+ ldrh r1, [r4, 0x3C]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _0813E7A8
+ ldrh r0, [r2, 0x20]
+ ldrh r7, [r4, 0x30]
+ adds r0, r7
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp]
+ ldrh r0, [r2, 0x22]
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r5, 0
+ mov r8, r3
+ ldr r2, [sp]
+ lsls r2, 16
+ mov r10, r2
+ lsls r7, r6, 16
+ mov r9, r7
+_0813E73A:
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ adds r0, 0x43
+ ldrb r3, [r0]
+ subs r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, _0813E7BC
+ mov r2, r10
+ asrs r1, r2, 16
+ mov r7, r9
+ asrs r2, r7, 16
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0813E79E
+ lsls r3, r0, 4
+ adds r3, r0
+ lsls r3, 2
+ add r3, r8
+ ldrh r0, [r4, 0x2E]
+ strh r0, [r3, 0x2E]
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 16
+ asrs r1, 18
+ movs r0, 0x7
+ ands r1, r0
+ lsls r1, 5
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r2, r0, 4
+ adds r0, r2
+ adds r1, r0
+ strh r1, [r3, 0x30]
+ ldrh r0, [r4, 0x34]
+ strh r0, [r3, 0x32]
+ movs r0, 0x68
+ strh r0, [r3, 0x34]
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r3, 0x36]
+ strh r6, [r3, 0x38]
+ movs r1, 0
+ strh r1, [r3, 0x3A]
+_0813E79E:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x2
+ bls _0813E73A
+_0813E7A8:
+ 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
+_0813E7B8: .4byte gSprites
+_0813E7BC: .4byte gSpriteTemplate_840B0DC
+ thumb_func_end sub_813E6C0
+
+ thumb_func_start sub_813E7C0
+sub_813E7C0: @ 813E7C0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0813E7F8
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _0813E7F2
+ ldr r1, _0813E7FC
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ movs r2, 0
+ strh r4, [r0, 0x2E]
+ ldr r1, _0813E800
+ strh r1, [r0, 0x30]
+ strh r2, [r0, 0x32]
+ movs r1, 0x88
+ strh r1, [r0, 0x34]
+_0813E7F2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813E7F8: .4byte gSpriteTemplate_840B0F4
+_0813E7FC: .4byte gSprites
+_0813E800: .4byte 0x0000fff4
+ thumb_func_end sub_813E7C0
+
+ thumb_func_start sub_813E804
+sub_813E804: @ 813E804
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ ldr r0, _0813E818
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0813E81C
+ adds r0, r3, 0
+ bl DestroySprite
+ b _0813E928
+ .align 2, 0
+_0813E818: .4byte gUnknown_0203931A
+_0813E81C:
+ ldr r6, _0813E904
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ movs r1, 0x4
+ ands r1, r0
+ mov r7, r12
+ ldrb r2, [r7]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r7]
+ ldrh r0, [r3, 0x3C]
+ adds r0, 0x1
+ strh r0, [r3, 0x3C]
+ ldrh r1, [r3, 0x34]
+ movs r2, 0x34
+ ldrsh r0, [r3, r2]
+ cmp r0, 0x27
+ bgt _0813E85A
+ adds r0, r1, 0x2
+ strh r0, [r3, 0x34]
+_0813E85A:
+ movs r7, 0x2E
+ ldrsh r1, [r3, r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r0, 0x24]
+ ldrh r0, [r0, 0x20]
+ adds r2, r1, r0
+ ldr r4, _0813E908
+ ldrh r5, [r3, 0x30]
+ adds r0, r5, 0
+ adds r0, 0x40
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r4
+ movs r7, 0
+ ldrsh r1, [r0, r7]
+ movs r7, 0x34
+ ldrsh r0, [r3, r7]
+ muls r0, r1
+ cmp r0, 0
+ bge _0813E88A
+ adds r0, 0xFF
+_0813E88A:
+ asrs r0, 8
+ adds r0, r2, r0
+ strh r0, [r3, 0x20]
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r2, r1, r0
+ movs r1, 0x30
+ ldrsh r0, [r3, r1]
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r4
+ movs r7, 0
+ ldrsh r1, [r0, r7]
+ movs r7, 0x34
+ ldrsh r0, [r3, r7]
+ muls r0, r1
+ cmp r0, 0
+ bge _0813E8BE
+ ldr r1, _0813E90C
+ adds r0, r1
+_0813E8BE:
+ asrs r0, 9
+ adds r0, r2, r0
+ strh r0, [r3, 0x22]
+ adds r1, r5, 0x2
+ strh r1, [r3, 0x30]
+ movs r2, 0x32
+ ldrsh r0, [r3, r2]
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r4
+ movs r7, 0
+ ldrsh r0, [r0, r7]
+ cmp r0, 0
+ bge _0813E8DC
+ adds r0, 0x1F
+_0813E8DC:
+ asrs r0, 5
+ strh r0, [r3, 0x26]
+ ldrh r0, [r3, 0x32]
+ adds r0, 0x8
+ strh r0, [r3, 0x32]
+ movs r0, 0xFF
+ ands r1, r0
+ cmp r1, 0x7F
+ bgt _0813E910
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x43
+ ldrb r0, [r0]
+ subs r0, 0x1
+ b _0813E922
+ .align 2, 0
+_0813E904: .4byte gSprites
+_0813E908: .4byte gSineTable
+_0813E90C: .4byte 0x000001ff
+_0813E910:
+ movs r2, 0x2E
+ ldrsh r1, [r3, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x43
+ ldrb r0, [r0]
+ adds r0, 0x1
+_0813E922:
+ adds r1, r3, 0
+ adds r1, 0x43
+ strb r0, [r1]
+_0813E928:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813E804
+
+ thumb_func_start sub_813E930
+sub_813E930: @ 813E930
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ ldr r7, _0813E978
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r5, r0, r7
+_0813E942:
+ movs r0, 0x20
+ ldrsh r1, [r5, r0]
+ movs r0, 0x22
+ ldrsh r2, [r5, r0]
+ ldr r0, _0813E97C
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x40
+ beq _0813E968
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ strh r6, [r0, 0x2E]
+ lsls r1, r4, 5
+ strh r1, [r0, 0x30]
+_0813E968:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _0813E942
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813E978: .4byte gSprites
+_0813E97C: .4byte gSpriteTemplate_840B124
+ thumb_func_end sub_813E930
+
+ thumb_func_start GetCurrentTrainerHillMapId
+GetCurrentTrainerHillMapId: @ 813E980
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ ldr r0, _0813E994
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0813E998
+ adds r0, r3, 0
+ bl DestroySprite
+ b _0813EA50
+ .align 2, 0
+_0813E994: .4byte gUnknown_0203931A
+_0813E998:
+ ldr r2, _0813EA58
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ movs r1, 0x4
+ ands r1, r0
+ mov r5, r12
+ ldrb r2, [r5]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5]
+ ldrh r0, [r3, 0x3C]
+ adds r0, 0x1
+ strh r0, [r3, 0x3C]
+ ldrh r0, [r3, 0x3A]
+ adds r4, r0, 0
+ adds r4, 0x8
+ strh r4, [r3, 0x3A]
+ ldr r2, _0813EA5C
+ ldrh r0, [r3, 0x34]
+ adds r0, 0x40
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r2
+ movs r5, 0
+ ldrsh r1, [r0, r5]
+ movs r5, 0x3A
+ ldrsh r0, [r3, r5]
+ muls r0, r1
+ cmp r0, 0
+ bge _0813E9EC
+ adds r0, 0xFF
+_0813E9EC:
+ asrs r0, 8
+ ldrh r1, [r3, 0x36]
+ adds r0, r1
+ strh r0, [r3, 0x20]
+ movs r5, 0x34
+ ldrsh r0, [r3, r5]
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r2
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ movs r5, 0x3A
+ ldrsh r0, [r3, r5]
+ muls r0, r1
+ cmp r0, 0
+ bge _0813EA0E
+ adds r0, 0xFF
+_0813EA0E:
+ asrs r0, 8
+ ldrh r1, [r3, 0x38]
+ adds r0, r1
+ strh r0, [r3, 0x22]
+ movs r2, 0x3A
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bge _0813EA20
+ adds r0, 0xF
+_0813EA20:
+ asrs r0, 4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x9
+ bls _0813EA2C
+ movs r0, 0x9
+_0813EA2C:
+ adds r1, r0, 0
+ adds r1, 0x12
+ movs r0, 0x1F
+ ands r1, r0
+ lsls r1, 1
+ ldrb r2, [r3, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x3]
+ lsls r0, r4, 16
+ asrs r0, 16
+ cmp r0, 0xA0
+ ble _0813EA50
+ adds r0, r3, 0
+ bl DestroySprite
+_0813EA50:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813EA58: .4byte gSprites
+_0813EA5C: .4byte gSineTable
+ thumb_func_end GetCurrentTrainerHillMapId
+
+ thumb_func_start sub_813EA60
+sub_813EA60: @ 813EA60
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r5, r0, 0
+ ldr r0, _0813EA7C
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0813EA80
+ adds r0, r5, 0
+ bl DestroySprite
+ b _0813EB32
+ .align 2, 0
+_0813EA7C: .4byte gUnknown_0203931A
+_0813EA80:
+ ldrh r0, [r5, 0x3C]
+ adds r0, 0x1
+ strh r0, [r5, 0x3C]
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0813EB40
+ mov r9, r0
+ movs r4, 0x2E
+ ldrsh r1, [r5, r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ mov r1, r9
+ adds r3, r0, r1
+ movs r4, 0x2E
+ ldrsh r1, [r3, r4]
+ cmp r1, 0x1
+ bne _0813EB32
+ ldrh r0, [r5, 0x3C]
+ ands r1, r0
+ lsls r0, r1, 16
+ asrs r6, r0, 16
+ cmp r6, 0
+ bne _0813EB32
+ ldrh r1, [r3, 0x20]
+ ldrh r0, [r5, 0x30]
+ adds r1, r0
+ lsls r1, 16
+ ldrh r2, [r3, 0x22]
+ ldrh r4, [r5, 0x32]
+ adds r2, r4
+ lsls r2, 16
+ ldr r0, _0813EB44
+ lsrs r4, r1, 16
+ mov r8, r4
+ asrs r1, 16
+ lsrs r7, r2, 16
+ asrs r2, 16
+ adds r3, 0x43
+ ldrb r3, [r3]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0813EB32
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ add r4, r9
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x24
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl CalcCenterToCornerVec
+ ldrh r0, [r5, 0x2E]
+ strh r0, [r4, 0x2E]
+ ldr r2, _0813EB48
+ ldrh r0, [r5, 0x3C]
+ lsls r0, 16
+ asrs r0, 17
+ movs r1, 0x7
+ ands r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ strh r0, [r4, 0x34]
+ mov r0, r8
+ strh r0, [r4, 0x36]
+ strh r7, [r4, 0x38]
+ strh r6, [r4, 0x3A]
+_0813EB32:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813EB40: .4byte gSprites
+_0813EB44: .4byte gSpriteTemplate_840B150
+_0813EB48: .4byte gUnknown_0840B168
+ thumb_func_end sub_813EA60
+
+ thumb_func_start sub_813EB4C
+sub_813EB4C: @ 813EB4C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0813EBB0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _0813EB80
+ ldr r1, _0813EBB4
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0
+ strh r4, [r0, 0x2E]
+ strh r1, [r0, 0x30]
+ movs r1, 0x8
+ strh r1, [r0, 0x32]
+ movs r1, 0x18
+ strh r1, [r0, 0x34]
+_0813EB80:
+ movs r4, 0
+ ldr r5, _0813EBB8
+_0813EB84:
+ adds r0, r4, 0
+ adds r0, 0x12
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r4, 1
+ adds r1, r5
+ ldrh r1, [r1]
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x9
+ bls _0813EB84
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813EBB0: .4byte gSpriteTemplate_840B170
+_0813EBB4: .4byte gSprites
+_0813EBB8: .4byte gUnknown_0840B188
+ thumb_func_end sub_813EB4C
+
+ thumb_func_start sub_813EBBC
+sub_813EBBC: @ 813EBBC
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, _0813EBD0
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0813EBD4
+ adds r0, r3, 0
+ bl DestroySprite
+ b _0813EC80
+ .align 2, 0
+_0813EBD0: .4byte gUnknown_0203931A
+_0813EBD4:
+ ldr r2, _0813EC88
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ movs r1, 0x4
+ ands r1, r0
+ mov r4, r12
+ ldrb r2, [r4]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4]
+ ldrh r0, [r3, 0x3C]
+ adds r0, 0x1
+ strh r0, [r3, 0x3C]
+ ldrh r0, [r3, 0x3A]
+ adds r0, 0x8
+ strh r0, [r3, 0x3A]
+ ldr r2, _0813EC8C
+ ldrh r0, [r3, 0x34]
+ adds r0, 0x40
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r2
+ movs r4, 0
+ ldrsh r1, [r0, r4]
+ movs r4, 0x3A
+ ldrsh r0, [r3, r4]
+ muls r0, r1
+ cmp r0, 0
+ bge _0813EC26
+ adds r0, 0xFF
+_0813EC26:
+ asrs r0, 8
+ ldrh r1, [r3, 0x36]
+ adds r0, r1
+ strh r0, [r3, 0x20]
+ movs r4, 0x34
+ ldrsh r0, [r3, r4]
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r2
+ movs r4, 0
+ ldrsh r1, [r0, r4]
+ movs r4, 0x3A
+ ldrsh r0, [r3, r4]
+ muls r0, r1
+ cmp r0, 0
+ bge _0813EC48
+ adds r0, 0xFF
+_0813EC48:
+ asrs r0, 8
+ ldrh r4, [r3, 0x38]
+ adds r1, r0, r4
+ strh r1, [r3, 0x22]
+ movs r4, 0x30
+ ldrsh r0, [r3, r4]
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ bge _0813EC64
+ adds r0, 0x3F
+_0813EC64:
+ asrs r0, 6
+ strh r0, [r3, 0x26]
+ ldrh r0, [r3, 0x30]
+ adds r0, 0x10
+ strh r0, [r3, 0x30]
+ lsls r0, r1, 16
+ asrs r0, 16
+ movs r4, 0x32
+ ldrsh r1, [r3, r4]
+ cmp r0, r1
+ bge _0813EC80
+ adds r0, r3, 0
+ bl DestroySprite
+_0813EC80:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813EC88: .4byte gSprites
+_0813EC8C: .4byte gSineTable
+ thumb_func_end sub_813EBBC
+
+ thumb_func_start sub_813EC90
+sub_813EC90: @ 813EC90
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldr r0, _0813ECAC
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0813ECB0
+ adds r0, r5, 0
+ bl DestroySprite
+ b _0813EDA0
+ .align 2, 0
+_0813ECAC: .4byte gUnknown_0203931A
+_0813ECB0:
+ ldrh r0, [r5, 0x3C]
+ adds r0, 0x1
+ strh r0, [r5, 0x3C]
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _0813EDB0
+ mov r9, r0
+ movs r2, 0x2E
+ ldrsh r1, [r5, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ mov r4, r9
+ adds r3, r0, r4
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ cmp r1, 0x1
+ bne _0813ED74
+ ldrh r0, [r5, 0x3C]
+ ands r1, r0
+ lsls r0, r1, 16
+ asrs r6, r0, 16
+ cmp r6, 0
+ bne _0813ED66
+ ldrh r1, [r3, 0x20]
+ ldrh r2, [r5, 0x30]
+ adds r1, r2
+ lsls r1, 16
+ ldrh r2, [r3, 0x22]
+ ldrh r4, [r5, 0x32]
+ adds r2, r4
+ lsls r2, 16
+ ldr r0, _0813EDB4
+ lsrs r4, r1, 16
+ mov r8, r4
+ asrs r1, 16
+ lsrs r7, r2, 16
+ asrs r2, 16
+ adds r3, 0x43
+ ldrb r3, [r3]
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0813ED66
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ add r4, r9
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x22
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x1
+ movs r3, 0x3
+ bl CalcCenterToCornerVec
+ ldrh r0, [r5, 0x2E]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r5, 0x3C]
+ lsls r0, 16
+ asrs r0, 18
+ movs r1, 0x7
+ ands r0, r1
+ lsls r0, 5
+ strh r0, [r4, 0x30]
+ ldrh r0, [r5, 0x34]
+ strh r0, [r4, 0x32]
+ movs r0, 0xE8
+ strh r0, [r4, 0x34]
+ mov r0, r8
+ strh r0, [r4, 0x36]
+ strh r7, [r4, 0x38]
+ strh r6, [r4, 0x3A]
+_0813ED66:
+ ldrh r1, [r5, 0x3A]
+ movs r2, 0x3A
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x6F
+ bgt _0813ED74
+ adds r0, r1, 0x4
+ strh r0, [r5, 0x3A]
+_0813ED74:
+ ldr r1, _0813EDB8
+ ldrh r0, [r5, 0x3A]
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r1
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ subs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ movs r0, 0x11
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+_0813EDA0:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813EDB0: .4byte gSprites
+_0813EDB4: .4byte gSpriteTemplate_840B1B0
+_0813EDB8: .4byte gSineTable
+ thumb_func_end sub_813EC90
+
+ thumb_func_start sub_813EDBC
+sub_813EDBC: @ 813EDBC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0813EDF4
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x40
+ beq _0813EDEE
+ ldr r1, _0813EDF8
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0
+ strh r4, [r0, 0x2E]
+ strh r1, [r0, 0x30]
+ movs r1, 0xC
+ strh r1, [r0, 0x32]
+ movs r1, 0x18
+ strh r1, [r0, 0x34]
+_0813EDEE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813EDF4: .4byte gSpriteTemplate_840B1C8
+_0813EDF8: .4byte gSprites
+ thumb_func_end sub_813EDBC
+
+ thumb_func_start sub_813EDFC
+sub_813EDFC: @ 813EDFC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _0813EE12
+ adds r4, r5, 0
+ adds r4, 0x3E
+ cmp r0, 0x1
+ beq _0813EE4A
+_0813EE12:
+ adds r4, r5, 0
+ adds r4, 0x3E
+ ldrb r1, [r4]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+ ldrb r0, [r5, 0x1]
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r5, 0x1]
+ ldrb r1, [r5, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x24
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+ adds r0, r5, 0
+ movs r1, 0
+ movs r2, 0x3
+ movs r3, 0x3
+ bl CalcCenterToCornerVec
+ movs r0, 0
+ strh r0, [r5, 0x30]
+ movs r0, 0x1
+ strh r0, [r5, 0x2E]
+_0813EE4A:
+ ldrh r0, [r5, 0x3C]
+ adds r0, 0x1
+ strh r0, [r5, 0x3C]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0813EE62
+ ldrb r0, [r4]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r4]
+ b _0813EE7A
+_0813EE62:
+ ldrb r0, [r4]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r0
+ strb r1, [r4]
+ ldrh r1, [r5, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x3F
+ bgt _0813EE7A
+ adds r0, r1, 0x1
+ strh r0, [r5, 0x30]
+_0813EE7A:
+ ldr r1, _0813EEB0
+ ldrh r0, [r5, 0x30]
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ subs r1, r0
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ movs r0, 0x12
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813EEB0: .4byte gSineTable
+ thumb_func_end sub_813EDFC
+
+ thumb_func_start sub_813EEB4
+sub_813EEB4: @ 813EEB4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r2, _0813EED8
+ ldr r0, _0813EEDC
+ adds r1, r2, r0
+ movs r0, 0
+ strh r0, [r1]
+ str r4, [r2]
+ ldr r0, _0813EEE0
+ bl SetMainCallback2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813EED8: .4byte 0x02000000
+_0813EEDC: .4byte 0x00000888
+_0813EEE0: .4byte sub_813EEE4
+ thumb_func_end sub_813EEB4
+
+ thumb_func_start sub_813EEE4
+sub_813EEE4: @ 813EEE4
+ push {r4,lr}
+ sub sp, 0x4
+ 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, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r0, _0813EF98
+ movs r1, 0
+ bl sub_80FA8EC
+ movs r0, 0
+ movs r1, 0
+ bl sub_80FBCF0
+ movs r0, 0x1
+ movs r1, 0x1
+ bl sub_80FBB3C
+ ldr r4, _0813EF9C
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ ldr r1, _0813EFA0
+ movs r2, 0xF8
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ movs r0, 0x15
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x3
+ bl MenuDrawTextWindow
+ ldr r0, _0813EFA4
+ movs r1, 0x16
+ movs r2, 0x1
+ movs r3, 0x38
+ bl sub_8072BD8
+ movs r0, 0x10
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ bl sub_813F0C8
+ ldr r0, _0813EFA8
+ bl SetMainCallback2
+ ldr r0, _0813EFAC
+ bl SetVBlankCallback
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813EF98: .4byte 0x02000008
+_0813EF9C: .4byte gWindowConfig_81E709C
+_0813EFA0: .4byte REG_BG0CNT
+_0813EFA4: .4byte gOtherText_Hoenn
+_0813EFA8: .4byte sub_813EFC4
+_0813EFAC: .4byte sub_813EFB0
+ thumb_func_end sub_813EEE4
+
+ thumb_func_start sub_813EFB0
+sub_813EFB0: @ 813EFB0
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813EFB0
+
+ thumb_func_start sub_813EFC4
+sub_813EFC4: @ 813EFC4
+ push {lr}
+ bl sub_813EFDC
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813EFC4
+
+ thumb_func_start sub_813EFDC
+sub_813EFDC: @ 813EFDC
+ push {lr}
+ sub sp, 0x4
+ ldr r1, _0813EFF8
+ ldr r2, _0813EFFC
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x4
+ bhi _0813F0B8
+ lsls r0, 2
+ ldr r1, _0813F000
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0813EFF8: .4byte 0x02000000
+_0813EFFC: .4byte 0x00000888
+_0813F000: .4byte _0813F004
+ .align 2, 0
+_0813F004:
+ .4byte _0813F018
+ .4byte _0813F030
+ .4byte _0813F04C
+ .4byte _0813F078
+ .4byte _0813F0A0
+_0813F018:
+ movs r1, 0x80
+ lsls r1, 19
+ ldr r3, _0813F028
+ adds r0, r3, 0
+ strh r0, [r1]
+ ldr r0, _0813F02C
+ adds r1, r2, r0
+ b _0813F08E
+ .align 2, 0
+_0813F028: .4byte 0x00001541
+_0813F02C: .4byte 0x00000888
+_0813F030:
+ ldr r0, _0813F044
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0813F0B8
+ ldr r3, _0813F048
+ adds r1, r2, r3
+ b _0813F08E
+ .align 2, 0
+_0813F044: .4byte gPaletteFade
+_0813F048: .4byte 0x00000888
+_0813F04C:
+ bl sub_80FAB60
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bne _0813F05E
+ bl sub_813F0C8
+ b _0813F0B8
+_0813F05E:
+ cmp r0, 0x3
+ blt _0813F0B8
+ cmp r0, 0x5
+ bgt _0813F0B8
+ ldr r1, _0813F070
+ ldr r0, _0813F074
+ adds r1, r0
+ b _0813F08E
+ .align 2, 0
+_0813F070: .4byte 0x02000000
+_0813F074: .4byte 0x00000888
+_0813F078:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0813F098
+ ldr r2, _0813F09C
+ adds r1, r2
+_0813F08E:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0813F0B8
+ .align 2, 0
+_0813F098: .4byte 0x02000000
+_0813F09C: .4byte 0x00000888
+_0813F0A0:
+ ldr r0, _0813F0C0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0813F0B8
+ bl sub_80FAB10
+ ldr r0, _0813F0C4
+ ldr r0, [r0]
+ bl SetMainCallback2
+_0813F0B8:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F0C0: .4byte gPaletteFade
+_0813F0C4: .4byte 0x02000000
+ thumb_func_end sub_813EFDC
+
+ thumb_func_start sub_813F0C8
+sub_813F0C8: @ 813F0C8
+ push {lr}
+ movs r0, 0x11
+ movs r1, 0x11
+ movs r2, 0x1C
+ movs r3, 0x12
+ bl MenuFillWindowRectWithBlankTile
+ ldr r1, _0813F0F0
+ ldrb r0, [r1, 0x1E]
+ cmp r0, 0
+ beq _0813F0EA
+ adds r0, r1, 0
+ adds r0, 0x8
+ movs r1, 0x11
+ movs r2, 0x11
+ bl MenuPrint
+_0813F0EA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F0F0: .4byte 0x02000000
+ thumb_func_end sub_813F0C8
+
+ thumb_func_start unref_sub_813F0F4
+unref_sub_813F0F4: @ 813F0F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x10]
+ ldr r0, _0813F2AC
+ ldrb r3, [r0]
+ ldr r0, _0813F2B0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r0, _0813F2B4
+ strh r1, [r0]
+ ldr r1, _0813F2B8
+ ldr r2, _0813F2BC
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r4, _0813F2C0
+ adds r0, r4, 0
+ strh r0, [r1]
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r4, 0x80
+ lsls r4, 8
+ adds r1, r4, 0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _0813F2C4
+ ldr r2, _0813F2C8
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r4, 0x80
+ lsls r4, 5
+ adds r0, r4, 0
+ strh r0, [r1]
+ ldr r2, _0813F2CC
+ ldrb r1, [r2]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x3F
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ mov r9, r0
+ ands r0, r1
+ movs r1, 0x4
+ mov r8, r1
+ mov r4, r8
+ orrs r0, r4
+ strb r0, [r2]
+ ldr r0, _0813F2D0
+ adds r3, r0
+ ldrb r0, [r3]
+ ldr r1, _0813F2D4
+ mov r10, r1
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ add r4, r10
+ ldrb r7, [r4, 0x6]
+ ldrh r6, [r4, 0x38]
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _0813F2D8
+ bl object_new_hidden_with_callback
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x14]
+ ldr r0, _0813F2D8
+ bl object_new_hidden_with_callback
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x18]
+ ldrb r1, [r4, 0x5]
+ mov r0, r9
+ ands r0, r1
+ mov r2, r8
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r5, r7, 4
+ adds r5, r7
+ lsls r5, 2
+ add r5, r10
+ ldrb r1, [r5, 0x5]
+ mov r0, r9
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r5, 0x5]
+ lsls r1, r6, 4
+ adds r1, r6
+ lsls r1, 2
+ add r1, r10
+ ldrb r2, [r1, 0x5]
+ mov r0, r9
+ ands r0, r2
+ mov r2, r8
+ orrs r0, r2
+ strb r0, [r1, 0x5]
+ ldr r0, [sp, 0x14]
+ lsls r6, r0, 4
+ adds r6, r0
+ lsls r6, 2
+ mov r1, r10
+ adds r7, r6, r1
+ adds r0, r7, 0
+ adds r1, r4, 0
+ movs r2, 0x44
+ bl memcpy
+ ldr r2, [sp, 0x18]
+ lsls r4, r2, 4
+ adds r4, r2
+ lsls r4, 2
+ adds r0, r4, 0
+ add r0, r10
+ mov r8, r0
+ adds r1, r5, 0
+ movs r2, 0x44
+ bl memcpy
+ ldrb r1, [r7, 0x1]
+ mov r0, r9
+ ands r0, r1
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r7, 0x1]
+ mov r2, r8
+ ldrb r0, [r2, 0x1]
+ mov r2, r9
+ ands r2, r0
+ orrs r2, r1
+ mov r0, r8
+ strb r2, [r0, 0x1]
+ movs r1, 0x1C
+ add r10, r1
+ add r6, r10
+ ldr r2, _0813F2D8
+ str r2, [r6]
+ add r4, r10
+ str r2, [r4]
+ mov r0, sp
+ bl sub_8078914
+ ldr r1, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ ldr r2, _0813F2DC
+ add r0, sp, 0xC
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _0813F2E0
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _0813F2E4
+ bl LZDecompressVram
+ ldr r0, _0813F2E8
+ ldr r1, [sp]
+ bl LZDecompressVram
+ ldr r0, _0813F2EC
+ mov r1, sp
+ ldrb r1, [r1, 0x8]
+ lsls r1, 4
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ ldr r1, _0813F2F0
+ ldrh r0, [r7, 0x20]
+ negs r0, r0
+ adds r0, 0x20
+ strh r0, [r1]
+ ldr r1, _0813F2F4
+ ldrh r0, [r7, 0x22]
+ negs r0, r0
+ subs r0, 0x20
+ strh r0, [r1]
+ ldr r1, _0813F2F8
+ ldr r4, [sp, 0x10]
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xA0
+ lsls r1, 2
+ strh r1, [r0, 0xA]
+ mov r1, sp
+ ldrh r1, [r1, 0x14]
+ strh r1, [r0, 0x8]
+ mov r2, sp
+ ldrh r2, [r2, 0x18]
+ strh r2, [r0, 0xC]
+ ldr r1, _0813F2FC
+ 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
+_0813F2AC: .4byte gUnknown_0202F7C8
+_0813F2B0: .4byte gUnknown_030042C4
+_0813F2B4: .4byte gUnknown_03004240
+_0813F2B8: .4byte REG_WININ
+_0813F2BC: .4byte 0x00003f3f
+_0813F2C0: .4byte 0x00003f3d
+_0813F2C4: .4byte REG_BLDCNT
+_0813F2C8: .4byte 0x00003f42
+_0813F2CC: .4byte REG_BG1CNT
+_0813F2D0: .4byte gUnknown_03004340
+_0813F2D4: .4byte gSprites
+_0813F2D8: .4byte SpriteCallbackDummy
+_0813F2DC: .4byte 0x040000d4
+_0813F2E0: .4byte 0x85000400
+_0813F2E4: .4byte gUnknown_08D2EE48
+_0813F2E8: .4byte gUnknown_08D2EDFC
+_0813F2EC: .4byte gUnknown_08D2E150
+_0813F2F0: .4byte gUnknown_030042C0
+_0813F2F4: .4byte gUnknown_030041B4
+_0813F2F8: .4byte gTasks
+_0813F2FC: .4byte sub_813F300
+ thumb_func_end unref_sub_813F0F4
+
+ thumb_func_start sub_813F300
+sub_813F300: @ 813F300
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x10
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _0813F34C
+ ldrb r0, [r0]
+ mov r9, r0
+ ldr r1, _0813F350
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0xA]
+ ldrh r0, [r4, 0x22]
+ adds r1, r0
+ movs r3, 0
+ strh r1, [r4, 0x22]
+ ldr r2, _0813F354
+ lsls r0, r1, 16
+ lsrs r0, 24
+ ldrh r5, [r2]
+ adds r0, r5
+ strh r0, [r2]
+ movs r0, 0xFF
+ ands r1, r0
+ strh r1, [r4, 0x22]
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _0813F394
+ cmp r0, 0x1
+ bgt _0813F358
+ cmp r0, 0
+ beq _0813F35E
+ b _0813F4B2
+ .align 2, 0
+_0813F34C: .4byte gUnknown_0202F7C8
+_0813F350: .4byte gTasks
+_0813F354: .4byte gUnknown_030041B4
+_0813F358:
+ cmp r0, 0x2
+ beq _0813F3AC
+ b _0813F4B2
+_0813F35E:
+ ldrh r0, [r4, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bgt _0813F36E
+ b _0813F4B2
+_0813F36E:
+ strh r3, [r4, 0x1E]
+ ldrh r1, [r4, 0x20]
+ adds r1, 0x1
+ strh r1, [r4, 0x20]
+ ldr r2, _0813F390
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r2]
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x8
+ beq _0813F38C
+ b _0813F4B2
+_0813F38C:
+ b _0813F3A4
+ .align 2, 0
+_0813F390: .4byte REG_BLDALPHA
+_0813F394:
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x1
+ strh r0, [r4, 0x1C]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1E
+ beq _0813F3A4
+ b _0813F4B2
+_0813F3A4:
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ b _0813F4B2
+_0813F3AC:
+ ldrh r0, [r4, 0x1E]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _0813F4B2
+ strh r3, [r4, 0x1E]
+ ldrh r1, [r4, 0x20]
+ subs r1, 0x1
+ strh r1, [r4, 0x20]
+ ldr r6, _0813F4C0
+ movs r0, 0x10
+ subs r0, r1
+ lsls r0, 8
+ orrs r1, r0
+ strh r1, [r6]
+ movs r3, 0x20
+ ldrsh r5, [r4, r3]
+ cmp r5, 0
+ bne _0813F4B2
+ movs r0, 0
+ bl sub_8076464
+ ldr r0, _0813F4C4
+ strh r5, [r0]
+ ldr r0, _0813F4C8
+ strh r5, [r0]
+ ldr r0, _0813F4CC
+ ldr r2, _0813F4D0
+ adds r1, r2, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl sub_8076BE0
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813F406
+ ldr r2, _0813F4D4
+ ldrb r1, [r2]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_0813F406:
+ 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, _0813F4D8
+ strh r5, [r0]
+ strh r5, [r6]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0813F4DC
+ mov r8, r1
+ add r0, r8
+ bl DestroySprite
+ movs r2, 0xC
+ 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, _0813F4E0
+ add r0, sp, 0xC
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _0813F4E4
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldr r2, _0813F4D4
+ ldrb r1, [r2, 0x1]
+ movs r0, 0x21
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x1]
+ ldr r0, _0813F4E8
+ add r0, r9
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r8
+ ldrb r6, [r1, 0x6]
+ ldrh r4, [r1, 0x38]
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r3, [r1, 0x5]
+ movs r2, 0xD
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ movs r5, 0x4
+ orrs r0, r5
+ strb r0, [r1, 0x5]
+ lsls r1, r6, 4
+ adds r1, r6
+ lsls r1, 2
+ add r1, r8
+ ldrb r3, [r1, 0x5]
+ adds r0, r2, 0
+ ands r0, r3
+ orrs r0, r5
+ strb r0, [r1, 0x5]
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ add r0, r8
+ ldrb r1, [r0, 0x5]
+ ands r2, r1
+ orrs r2, r5
+ strb r2, [r0, 0x5]
+ adds r0, r7, 0
+ bl move_anim_task_del
+_0813F4B2:
+ add sp, 0x10
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F4C0: .4byte REG_BLDALPHA
+_0813F4C4: .4byte gUnknown_030042C4
+_0813F4C8: .4byte gUnknown_03004240
+_0813F4CC: .4byte REG_WININ
+_0813F4D0: .4byte 0x00003f3f
+_0813F4D4: .4byte REG_BG1CNT
+_0813F4D8: .4byte REG_BLDCNT
+_0813F4DC: .4byte gSprites
+_0813F4E0: .4byte 0x040000d4
+_0813F4E4: .4byte 0x85000200
+_0813F4E8: .4byte gUnknown_03004340
+ thumb_func_end sub_813F300
+
+ thumb_func_start sub_813F4EC
+sub_813F4EC: @ 813F4EC
+ 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
+ str r0, [sp]
+ ldr r1, _0813F5D0
+ ldr r0, _0813F5D4
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ ldr r7, _0813F5D8
+ lsls r6, r0, 4
+ adds r6, r0
+ lsls r6, 2
+ adds r6, r7
+ ldrb r0, [r6, 0x6]
+ str r0, [sp, 0x4]
+ ldrh r4, [r6, 0x38]
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0813F5DC
+ bl AllocSpritePalette
+ mov r8, r0
+ mov r1, r8
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ ldr r0, _0813F5E0
+ bl AllocSpritePalette
+ mov r9, r0
+ mov r2, r9
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ ldrb r0, [r6, 0x5]
+ lsrs r0, 4
+ lsls r0, 4
+ movs r1, 0x80
+ lsls r1, 1
+ adds r3, r1, 0
+ orrs r0, r3
+ lsls r5, r4, 4
+ adds r5, r4
+ lsls r5, 2
+ adds r5, r7
+ ldrb r4, [r5, 0x5]
+ lsrs r4, 4
+ lsls r4, 4
+ orrs r4, r3
+ lsls r0, 1
+ ldr r2, _0813F5E4
+ mov r10, r2
+ add r0, r10
+ mov r1, r8
+ lsls r1, 4
+ mov r8, r1
+ adds r1, r3, r1
+ movs r2, 0x20
+ str r3, [sp, 0x8]
+ bl LoadPalette
+ lsls r4, 1
+ add r4, r10
+ mov r2, r9
+ lsls r2, 4
+ mov r9, r2
+ ldr r3, [sp, 0x8]
+ add r3, r9
+ adds r0, r4, 0
+ adds r1, r3, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldrb r1, [r6, 0x5]
+ movs r2, 0xF
+ adds r0, r2, 0
+ ands r0, r1
+ mov r3, r8
+ orrs r0, r3
+ strb r0, [r6, 0x5]
+ ldr r0, [sp, 0x4]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ ldrb r3, [r1, 0x5]
+ adds r0, r2, 0
+ ands r0, r3
+ mov r3, r8
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+ ldrb r0, [r5, 0x5]
+ ands r2, r0
+ mov r0, r9
+ orrs r2, r0
+ strb r2, [r5, 0x5]
+ ldr r0, [sp]
+ bl move_anim_task_del
+ 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
+_0813F5D0: .4byte gUnknown_03004340
+_0813F5D4: .4byte gUnknown_0202F7C8
+_0813F5D8: .4byte gSprites
+_0813F5DC: .4byte 0x0000d709
+_0813F5E0: .4byte 0x0000d70a
+_0813F5E4: .4byte gPlttBufferUnfaded
+ thumb_func_end sub_813F4EC
+
+ thumb_func_start sub_813F5E8
+sub_813F5E8: @ 813F5E8
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ mov r8, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, _0813F684
+ ldr r0, _0813F688
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ ldr r1, _0813F68C
+ mov r9, r1
+ lsls r5, r0, 4
+ adds r5, r0
+ lsls r5, 2
+ add r5, r9
+ ldrb r0, [r5, 0x6]
+ mov r10, r0
+ ldrh r6, [r5, 0x38]
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _0813F690
+ bl FreeSpritePaletteByTag
+ ldr r0, _0813F694
+ bl FreeSpritePaletteByTag
+ ldr r0, _0813F698
+ bl IndexOfSpritePaletteTag
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0813F69C
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsls r4, 4
+ ldrb r2, [r5, 0x5]
+ movs r3, 0xF
+ adds r1, r3, 0
+ ands r1, r2
+ orrs r1, r4
+ strb r1, [r5, 0x5]
+ mov r1, r10
+ lsls r2, r1, 4
+ add r2, r10
+ lsls r2, 2
+ add r2, r9
+ ldrb r5, [r2, 0x5]
+ adds r1, r3, 0
+ ands r1, r5
+ orrs r1, r4
+ strb r1, [r2, 0x5]
+ lsls r1, r6, 4
+ adds r1, r6
+ lsls r1, 2
+ add r1, r9
+ lsrs r0, 20
+ ldrb r2, [r1, 0x5]
+ ands r3, r2
+ orrs r3, r0
+ strb r3, [r1, 0x5]
+ mov r0, r8
+ bl move_anim_task_del
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F684: .4byte gUnknown_03004340
+_0813F688: .4byte gUnknown_0202F7C8
+_0813F68C: .4byte gSprites
+_0813F690: .4byte 0x0000d709
+_0813F694: .4byte 0x0000d70a
+_0813F698: .4byte 0x0000d6ff
+_0813F69C: .4byte 0x0000d704
+ thumb_func_end sub_813F5E8
+
+ thumb_func_start sub_813F6A0
+sub_813F6A0: @ 813F6A0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0813F6C0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _0813F6C4
+ ldrh r0, [r2]
+ strh r0, [r1, 0x1C]
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1, 0x1E]
+ ldr r0, _0813F6C8
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0813F6C0: .4byte gTasks
+_0813F6C4: .4byte gUnknown_03004B00
+_0813F6C8: .4byte sub_813F6CC
+ thumb_func_end sub_813F6A0
+
+ thumb_func_start sub_813F6CC
+sub_813F6CC: @ 813F6CC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0813F718
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ movs r6, 0
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ movs r2, 0x1E
+ ldrsh r1, [r4, r2]
+ cmp r0, r1
+ blt _0813F78C
+ strh r6, [r4, 0x8]
+ ldr r0, _0813F71C
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r3, 0x1C
+ ldrsh r0, [r4, r3]
+ movs r1, 0x2
+ cmp r0, 0
+ bne _0813F70A
+ movs r1, 0x6
+_0813F70A:
+ movs r3, 0xA
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ beq _0813F720
+ cmp r0, 0x1
+ beq _0813F75C
+ b _0813F78C
+ .align 2, 0
+_0813F718: .4byte gTasks
+_0813F71C: .4byte 0x0000d709
+_0813F720:
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x2
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x10
+ ble _0813F732
+ movs r0, 0x10
+ strh r0, [r4, 0xC]
+_0813F732:
+ lsls r0, r2, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2
+ orrs r0, r1
+ ldrb r2, [r4, 0xC]
+ ldr r3, _0813F758
+ movs r1, 0x1
+ bl BlendPalette
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x10
+ bne _0813F78C
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ b _0813F78C
+ .align 2, 0
+_0813F758: .4byte 0x00007f74
+_0813F75C:
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x2
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ bge _0813F76A
+ strh r6, [r4, 0xC]
+_0813F76A:
+ lsls r0, r2, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2
+ orrs r0, r1
+ ldrb r2, [r4, 0xC]
+ ldr r3, _0813F794
+ movs r1, 0x1
+ bl BlendPalette
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bne _0813F78C
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0813F78C:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F794: .4byte 0x00007f74
+ thumb_func_end sub_813F6CC
+
+ thumb_func_start sub_813F798
+sub_813F798: @ 813F798
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _0813F7C4
+ ldr r0, _0813F7C8
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r5, [r0]
+ ldr r1, _0813F7CC
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _0813F7E6
+ cmp r0, 0x1
+ bgt _0813F7D0
+ cmp r0, 0
+ beq _0813F7D6
+ b _0813F838
+ .align 2, 0
+_0813F7C4: .4byte gUnknown_02024BE0
+_0813F7C8: .4byte gUnknown_0202F7C8
+_0813F7CC: .4byte gTasks
+_0813F7D0:
+ cmp r0, 0x2
+ beq _0813F818
+ b _0813F838
+_0813F7D6:
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8078E70
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r4, 0x1C]
+ b _0813F80A
+_0813F7E6:
+ ldrh r0, [r4, 0x1C]
+ adds r0, 0x30
+ strh r0, [r4, 0x1C]
+ movs r0, 0x1C
+ ldrsh r2, [r4, r0]
+ adds r0, r5, 0
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ adds r0, r5, 0
+ bl sub_8079A64
+ movs r0, 0x1C
+ ldrsh r1, [r4, r0]
+ ldr r0, _0813F814
+ cmp r1, r0
+ ble _0813F838
+_0813F80A:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0813F838
+ .align 2, 0
+_0813F814: .4byte 0x000002cf
+_0813F818:
+ adds r0, r5, 0
+ bl sub_8078F40
+ ldr r1, _0813F840
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r6, 0
+ bl move_anim_task_del
+_0813F838:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F840: .4byte gSprites
+ thumb_func_end sub_813F798
+
+ thumb_func_start sub_813F844
+sub_813F844: @ 813F844
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0813F87C
+ ldr r4, _0813F880
+ ldrb r0, [r4]
+ adds r1, r0, r1
+ ldrb r1, [r1]
+ mov r9, r1
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _0813F88C
+ ldr r1, _0813F884
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0813F888
+ b _0813F89C
+ .align 2, 0
+_0813F87C: .4byte gUnknown_02024BE0
+_0813F880: .4byte gUnknown_0202F7C8
+_0813F884: .4byte gUnknown_02024A6A
+_0813F888: .4byte gPlayerParty
+_0813F88C:
+ ldr r1, _0813F8CC
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0813F8D0
+_0813F89C:
+ adds r0, r1
+ movs r1, 0x26
+ bl GetMonData
+ lsls r0, 16
+ lsrs r0, 16
+ bl ball_number_to_ball_processing_index
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r2, _0813F8D4
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r6, r0, r2
+ movs r0, 0x8
+ ldrsh r7, [r6, r0]
+ cmp r7, 0
+ beq _0813F8D8
+ cmp r7, 0x1
+ beq _0813F958
+ b _0813F982
+ .align 2, 0
+_0813F8CC: .4byte gUnknown_02024A6A
+_0813F8D0: .4byte gEnemyParty
+_0813F8D4: .4byte gTasks
+_0813F8D8:
+ ldr r5, _0813F950
+ ldrb r0, [r5]
+ movs r1, 0
+ bl sub_8077ABC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldrb r0, [r5]
+ movs r1, 0x1
+ bl sub_8077ABC
+ adds r1, r0, 0
+ lsls r1, 24
+ ldr r2, _0813F954
+ mov r3, r9
+ lsls r0, r3, 4
+ add r0, r9
+ lsls r0, 2
+ adds r0, r2
+ ldrb r2, [r0, 0x5]
+ lsls r2, 28
+ lsrs r2, 30
+ adds r0, 0x43
+ ldrb r3, [r0]
+ movs r0, 0x80
+ lsls r0, 22
+ adds r1, r0
+ lsrs r1, 24
+ mov r0, r8
+ str r0, [sp]
+ adds r0, r4, 0
+ bl sub_814086C
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x1C]
+ str r7, [sp]
+ str r7, [sp, 0x4]
+ str r7, [sp, 0x8]
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl sub_80791A8
+ adds r2, r0, 0
+ ldrb r1, [r5]
+ movs r0, 0
+ mov r3, r8
+ bl sub_8141314
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x1E]
+ ldrh r0, [r6, 0x8]
+ adds r0, 0x1
+ strh r0, [r6, 0x8]
+ b _0813F982
+ .align 2, 0
+_0813F950: .4byte gUnknown_0202F7C8
+_0813F954: .4byte gSprites
+_0813F958:
+ movs r1, 0x1C
+ ldrsh r0, [r6, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ bne _0813F982
+ movs r3, 0x1E
+ ldrsh r0, [r6, r3]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ bne _0813F982
+ adds r0, r5, 0
+ bl move_anim_task_del
+_0813F982:
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_813F844
+
+ thumb_func_start sub_813F990
+sub_813F990: @ 813F990
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0813F9B4
+ ldrh r0, [r0]
+ bl ball_number_to_ball_processing_index
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_80478DC
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F9B4: .4byte gUnknown_02024C04
+ thumb_func_end sub_813F990
+
+ thumb_func_start sub_813F9B8
+sub_813F9B8: @ 813F9B8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0813F9DC
+ ldrh r0, [r0]
+ bl ball_number_to_ball_processing_index
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_804794C
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813F9DC: .4byte gUnknown_02024C04
+ thumb_func_end sub_813F9B8
+
+ thumb_func_start sub_813F9E0
+sub_813F9E0: @ 813F9E0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0813F9F4
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x5
+ bne _0813FA00
+ ldr r1, _0813F9F8
+ ldr r0, _0813F9FC
+ b _0813FA04
+ .align 2, 0
+_0813F9F4: .4byte 0x02017840
+_0813F9F8: .4byte gUnknown_03004B00
+_0813F9FC: .4byte 0x0000ffff
+_0813FA00:
+ ldr r1, _0813FA10
+ movs r0, 0
+_0813FA04:
+ strh r0, [r1, 0xE]
+ adds r0, r2, 0
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FA10: .4byte gUnknown_03004B00
+ thumb_func_end sub_813F9E0
+
+ thumb_func_start ball_number_to_ball_processing_index
+ball_number_to_ball_processing_index: @ 813FA14
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ subs r0, 0x1
+ cmp r0, 0xB
+ bhi _0813FA8C
+ lsls r0, 2
+ ldr r1, _0813FA2C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0813FA2C: .4byte _0813FA30
+ .align 2, 0
+_0813FA30:
+ .4byte _0813FA60
+ .4byte _0813FA64
+ .4byte _0813FA68
+ .4byte _0813FA8C
+ .4byte _0813FA6C
+ .4byte _0813FA70
+ .4byte _0813FA74
+ .4byte _0813FA78
+ .4byte _0813FA7C
+ .4byte _0813FA80
+ .4byte _0813FA84
+ .4byte _0813FA88
+_0813FA60:
+ movs r0, 0x4
+ b _0813FA8E
+_0813FA64:
+ movs r0, 0x3
+ b _0813FA8E
+_0813FA68:
+ movs r0, 0x1
+ b _0813FA8E
+_0813FA6C:
+ movs r0, 0x2
+ b _0813FA8E
+_0813FA70:
+ movs r0, 0x5
+ b _0813FA8E
+_0813FA74:
+ movs r0, 0x6
+ b _0813FA8E
+_0813FA78:
+ movs r0, 0x7
+ b _0813FA8E
+_0813FA7C:
+ movs r0, 0x8
+ b _0813FA8E
+_0813FA80:
+ movs r0, 0x9
+ b _0813FA8E
+_0813FA84:
+ movs r0, 0xA
+ b _0813FA8E
+_0813FA88:
+ movs r0, 0xB
+ b _0813FA8E
+_0813FA8C:
+ movs r0, 0
+_0813FA8E:
+ pop {r1}
+ bx r1
+ thumb_func_end ball_number_to_ball_processing_index
+
+ thumb_func_start sub_813FA94
+sub_813FA94: @ 813FA94
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ mov r10, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r0, _0813FB58
+ ldrh r0, [r0]
+ bl ball_number_to_ball_processing_index
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _0813FB5C
+ adds r0, r1
+ movs r1, 0x20
+ movs r2, 0x50
+ movs r3, 0x1D
+ bl CreateSprite
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r1, _0813FB60
+ mov r9, r1
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ adds r6, r4, r1
+ movs r0, 0x22
+ strh r0, [r6, 0x2E]
+ ldr r2, _0813FB64
+ mov r8, r2
+ ldrb r0, [r2]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x30]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x10
+ strh r0, [r6, 0x32]
+ mov r0, r9
+ adds r0, 0x1C
+ adds r4, r0
+ ldr r0, _0813FB68
+ str r0, [r4]
+ ldr r3, _0813FB6C
+ ldr r1, _0813FB70
+ mov r2, r8
+ ldrb r0, [r2]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ lsls r1, 29
+ lsrs r1, 31
+ lsls r1, 1
+ ldrb r2, [r3, 0x9]
+ movs r0, 0x3
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x9]
+ ldr r1, _0813FB74
+ mov r2, r10
+ lsls r0, r2, 2
+ add r0, r10
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x8]
+ ldr r1, _0813FB78
+ str r1, [r0]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FB58: .4byte gUnknown_02024C04
+_0813FB5C: .4byte gSpriteTemplate_820AAB4
+_0813FB60: .4byte gSprites
+_0813FB64: .4byte gUnknown_0202F7C9
+_0813FB68: .4byte sub_813FD90
+_0813FB6C: .4byte 0x02017840
+_0813FB70: .4byte gUnknown_02024BE0
+_0813FB74: .4byte gTasks
+_0813FB78: .4byte sub_813FB7C
+ thumb_func_end sub_813FA94
+
+ thumb_func_start sub_813FB7C
+sub_813FB7C: @ 813FB7C
+ push {lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _0813FBAC
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ ldr r2, _0813FBB0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r1, [r0, 0x2E]
+ ldr r0, _0813FBB4
+ cmp r1, r0
+ bne _0813FBA6
+ adds r0, r3, 0
+ bl move_anim_task_del
+_0813FBA6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FBAC: .4byte gTasks
+_0813FBB0: .4byte gSprites
+_0813FBB4: .4byte 0x0000ffff
+ thumb_func_end sub_813FB7C
+
+ thumb_func_start sub_813FBB8
+sub_813FBB8: @ 813FBB8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _0813FBD8
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _0813FBDC
+ movs r6, 0x20
+ movs r5, 0xB
+ b _0813FBE0
+ .align 2, 0
+_0813FBD8: .4byte gUnknown_020239F8
+_0813FBDC:
+ movs r6, 0x17
+ movs r5, 0x5
+_0813FBE0:
+ ldr r0, _0813FC9C
+ ldrh r0, [r0]
+ bl ball_number_to_ball_processing_index
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8079E90
+ adds r3, r0, 0
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _0813FCA0
+ adds r0, r1
+ adds r1, r6, 0
+ adds r1, 0x20
+ movs r2, 0x50
+ orrs r5, r2
+ adds r2, r5, 0
+ bl CreateSprite
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _0813FCA4
+ mov r9, r0
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ adds r6, r4, r0
+ movs r0, 0x22
+ strh r0, [r6, 0x2E]
+ ldr r1, _0813FCA8
+ mov r8, r1
+ ldrb r0, [r1]
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r6, 0x30]
+ mov r1, r8
+ ldrb r0, [r1]
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x10
+ strh r0, [r6, 0x32]
+ mov r0, r9
+ adds r0, 0x1C
+ adds r4, r0
+ ldr r0, _0813FCAC
+ str r0, [r4]
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r1, _0813FCB0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r1, _0813FCB4
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0x8]
+ ldr r1, _0813FCB8
+ str r1, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FC9C: .4byte gUnknown_02024C04
+_0813FCA0: .4byte gSpriteTemplate_820AAB4
+_0813FCA4: .4byte gSprites
+_0813FCA8: .4byte gUnknown_0202F7C9
+_0813FCAC: .4byte SpriteCallbackDummy
+_0813FCB0: .4byte gUnknown_02024BE0
+_0813FCB4: .4byte gTasks
+_0813FCB8: .4byte sub_813FCBC
+ thumb_func_end sub_813FBB8
+
+ thumb_func_start sub_813FCBC
+sub_813FCBC: @ 813FCBC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r6, _0813FD1C
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r1, _0813FD20
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0813FD16
+ movs r0, 0x3D
+ movs r1, 0
+ bl PlaySE12WithPanning
+ ldr r0, _0813FD24
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r6, 0
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _0813FD28
+ str r1, [r0]
+ ldr r0, _0813FD2C
+ movs r1, 0xA
+ bl CreateTask
+ ldr r0, _0813FD30
+ str r0, [r4]
+_0813FD16:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FD1C: .4byte gSprites
+_0813FD20: .4byte gUnknown_02024BE0
+_0813FD24: .4byte gTasks
+_0813FD28: .4byte sub_813FD90
+_0813FD2C: .4byte sub_813FD34
+_0813FD30: .4byte sub_813FB7C
+ thumb_func_end sub_813FCBC
+
+ thumb_func_start sub_813FD34
+sub_813FD34: @ 813FD34
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r6, _0813FD88
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r4, _0813FD8C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 27
+ cmp r0, 0
+ bge _0813FD80
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0
+ bl StartSpriteAnim
+ adds r0, r5, 0
+ bl DestroyTask
+_0813FD80:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FD88: .4byte gSprites
+_0813FD8C: .4byte gUnknown_02024BE0
+ thumb_func_end sub_813FD34
+
+ thumb_func_start sub_813FD90
+sub_813FD90: @ 813FD90
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ ldrh r2, [r4, 0x32]
+ ldrh r0, [r4, 0x20]
+ strh r0, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ ldrh r0, [r4, 0x22]
+ strh r0, [r4, 0x34]
+ strh r2, [r4, 0x36]
+ ldr r0, _0813FDB8
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldr r0, _0813FDBC
+ str r0, [r4, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FDB8: .4byte 0x0000ffd8
+_0813FDBC: .4byte sub_813FDC0
+ thumb_func_end sub_813FD90
+
+ thumb_func_start sub_813FDC0
+sub_813FDC0: @ 813FDC0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _0813FE5A
+ ldr r0, _0813FDE0
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x5
+ bne _0813FDE8
+ ldr r0, _0813FDE4
+ str r0, [r4, 0x1C]
+ b _0813FE5A
+ .align 2, 0
+_0813FDE0: .4byte 0x02017840
+_0813FDE4: .4byte sub_81407B8
+_0813FDE8:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ 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, 0x24]
+ strh r1, [r4, 0x26]
+ adds r1, r4, 0
+ adds r1, 0x2E
+ movs r2, 0
+ adds r0, r4, 0
+ adds r0, 0x3C
+_0813FE10:
+ strh r2, [r0]
+ subs r0, 0x2
+ cmp r0, r1
+ bge _0813FE10
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldr r0, _0813FE64
+ str r0, [r4, 0x1C]
+ ldr r0, _0813FE68
+ ldrh r0, [r0]
+ bl ball_number_to_ball_processing_index
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xB
+ bgt _0813FE5A
+ cmp r5, 0
+ blt _0813FE5A
+ ldrh r0, [r4, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x22]
+ subs r1, 0x5
+ lsls r1, 24
+ lsrs r1, 24
+ str r5, [sp]
+ movs r2, 0x1
+ movs r3, 0x1C
+ bl sub_814086C
+ ldr r0, _0813FE6C
+ ldrb r1, [r0]
+ movs r0, 0
+ movs r2, 0xE
+ adds r3, r5, 0
+ bl sub_8141314
+_0813FE5A:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FE64: .4byte sub_813FE70
+_0813FE68: .4byte gUnknown_02024C04
+_0813FE6C: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_813FDC0
+
+ thumb_func_start sub_813FE70
+sub_813FE70: @ 813FE70
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _0813FEAC
+ ldr r0, _0813FEB4
+ movs r1, 0x32
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x38]
+ ldr r0, _0813FEB8
+ str r0, [r4, 0x1C]
+ ldr r2, _0813FEBC
+ ldr r1, _0813FEC0
+ ldr r0, _0813FEC4
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x30]
+_0813FEAC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0813FEB4: .4byte TaskDummy
+_0813FEB8: .4byte sub_813FEC8
+_0813FEBC: .4byte gSprites
+_0813FEC0: .4byte gUnknown_02024BE0
+_0813FEC4: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_813FE70
+
+ thumb_func_start sub_813FEC8
+sub_813FEC8: @ 813FEC8
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ ldr r1, _0813FF0C
+ ldr r0, _0813FF10
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r4, [r0]
+ ldrh r0, [r7, 0x38]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _0813FF14
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ strh r0, [r5, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xB
+ bne _0813FEFA
+ movs r0, 0x3C
+ bl PlaySE
+_0813FEFA:
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _0813FF70
+ cmp r0, 0x1
+ bgt _0813FF18
+ cmp r0, 0
+ beq _0813FF1E
+ b _0813FFDC
+ .align 2, 0
+_0813FF0C: .4byte gUnknown_02024BE0
+_0813FF10: .4byte gUnknown_0202F7C9
+_0813FF14: .4byte gTasks
+_0813FF18:
+ cmp r0, 0x2
+ beq _0813FFB4
+ b _0813FFDC
+_0813FF1E:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8078E70
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r5, 0x1C]
+ ldr r1, _0813FF60
+ movs r0, 0x1C
+ str r0, [r1]
+ ldr r2, _0813FF64
+ ldr r1, _0813FF68
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ ldrh r0, [r0, 0x22]
+ adds r1, r0
+ ldrh r0, [r7, 0x26]
+ ldrh r7, [r7, 0x22]
+ adds r0, r7
+ subs r1, r0
+ strh r1, [r2]
+ ldr r4, _0813FF6C
+ ldrh r0, [r2]
+ lsls r0, 8
+ movs r1, 0x1C
+ bl __udivsi3
+ strh r0, [r4]
+ strh r0, [r5, 0xC]
+ b _0813FFCE
+ .align 2, 0
+_0813FF60: .4byte gUnknown_03005F0C
+_0813FF64: .4byte gUnknown_03005F14
+_0813FF68: .4byte gSprites
+_0813FF6C: .4byte gUnknown_03005F10
+_0813FF70:
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x20
+ strh r0, [r5, 0x1C]
+ movs r0, 0x1C
+ ldrsh r2, [r5, r0]
+ adds r0, r4, 0
+ adds r1, r2, 0
+ movs r3, 0
+ bl obj_id_set_rotscale
+ ldrh r0, [r5, 0xC]
+ ldrh r1, [r5, 0xE]
+ adds r0, r1
+ strh r0, [r5, 0xE]
+ ldr r0, _0813FFAC
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ movs r2, 0xE
+ ldrsh r0, [r5, r2]
+ negs r0, r0
+ asrs r0, 8
+ strh r0, [r1, 0x26]
+ movs r0, 0x1C
+ ldrsh r1, [r5, r0]
+ ldr r0, _0813FFB0
+ cmp r1, r0
+ ble _08140004
+ b _0813FFCE
+ .align 2, 0
+_0813FFAC: .4byte gSprites
+_0813FFB0: .4byte 0x0000047f
+_0813FFB4:
+ adds r0, r4, 0
+ bl sub_8078F40
+ ldr r1, _0813FFD8
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_0813FFCE:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ b _08140004
+ .align 2, 0
+_0813FFD8: .4byte gSprites
+_0813FFDC:
+ ldr r0, _0814000C
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0xA
+ ble _08140004
+ adds r0, r6, 0
+ bl DestroyTask
+ adds r0, r7, 0
+ movs r1, 0x2
+ bl StartSpriteAnim
+ movs r0, 0
+ strh r0, [r7, 0x38]
+ ldr r0, _08140010
+ str r0, [r7, 0x1C]
+_08140004:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814000C: .4byte gTasks
+_08140010: .4byte sub_8140014
+ thumb_func_end sub_813FEC8
+
+ thumb_func_start sub_8140014
+sub_8140014: @ 8140014
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0814004E
+ movs r1, 0
+ strh r1, [r4, 0x34]
+ movs r0, 0x20
+ strh r0, [r4, 0x36]
+ strh r1, [r4, 0x38]
+ movs r0, 0
+ movs r1, 0x20
+ bl Cos
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ movs r0, 0x36
+ ldrsh r1, [r4, r0]
+ movs r0, 0
+ bl Cos
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldr r0, _08140054
+ str r0, [r4, 0x1C]
+_0814004E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140054: .4byte sub_8140058
+ thumb_func_end sub_8140014
+
+ thumb_func_start sub_8140058
+sub_8140058: @ 8140058
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r5, 0
+ ldrh r0, [r4, 0x34]
+ movs r1, 0xFF
+ ands r1, r0
+ cmp r1, 0
+ beq _0814006E
+ cmp r1, 0x1
+ beq _081400E2
+ b _0814010E
+_0814006E:
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl Cos
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x38]
+ adds r1, 0x4
+ ldrh r2, [r4, 0x34]
+ lsls r0, r2, 16
+ asrs r0, 24
+ adds r1, r0
+ strh r1, [r4, 0x38]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x3F
+ ble _0814010E
+ ldrh r0, [r4, 0x36]
+ subs r0, 0xA
+ strh r0, [r4, 0x36]
+ ldr r1, _081400B8
+ adds r0, r2, r1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 24
+ cmp r0, 0x4
+ bne _081400AA
+ movs r5, 0x1
+_081400AA:
+ cmp r0, 0x2
+ beq _081400CA
+ cmp r0, 0x2
+ bgt _081400BC
+ cmp r0, 0x1
+ beq _081400C2
+ b _081400DA
+ .align 2, 0
+_081400B8: .4byte 0x00000101
+_081400BC:
+ cmp r0, 0x3
+ beq _081400D2
+ b _081400DA
+_081400C2:
+ movs r0, 0x38
+ bl PlaySE
+ b _0814010E
+_081400CA:
+ movs r0, 0x39
+ bl PlaySE
+ b _0814010E
+_081400D2:
+ movs r0, 0x3A
+ bl PlaySE
+ b _0814010E
+_081400DA:
+ movs r0, 0x3B
+ bl PlaySE
+ b _0814010E
+_081400E2:
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ movs r2, 0x36
+ ldrsh r1, [r4, r2]
+ bl Cos
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ ldrh r1, [r4, 0x38]
+ subs r1, 0x4
+ ldrh r2, [r4, 0x34]
+ lsls r0, r2, 16
+ asrs r0, 24
+ subs r1, r0
+ strh r1, [r4, 0x38]
+ lsls r1, 16
+ cmp r1, 0
+ bgt _0814010E
+ strh r5, [r4, 0x38]
+ ldr r0, _08140138
+ ands r0, r2
+ strh r0, [r4, 0x34]
+_0814010E:
+ cmp r5, 0
+ beq _0814014E
+ movs r5, 0
+ strh r5, [r4, 0x34]
+ movs r0, 0x40
+ movs r1, 0x20
+ bl Cos
+ ldrh r1, [r4, 0x22]
+ adds r0, r1
+ strh r0, [r4, 0x22]
+ strh r5, [r4, 0x26]
+ ldr r0, _0814013C
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _08140144
+ strh r5, [r4, 0x38]
+ ldr r0, _08140140
+ str r0, [r4, 0x1C]
+ b _0814014E
+ .align 2, 0
+_08140138: .4byte 0xffffff00
+_0814013C: .4byte 0x02017840
+_08140140: .4byte sub_8140410
+_08140144:
+ ldr r0, _08140154
+ str r0, [r4, 0x1C]
+ movs r0, 0x1
+ strh r0, [r4, 0x36]
+ strh r5, [r4, 0x38]
+_0814014E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140154: .4byte sub_8140158
+ thumb_func_end sub_8140058
+
+ thumb_func_start sub_8140158
+sub_8140158: @ 8140158
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ movs r5, 0
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _08140190
+ strh r5, [r4, 0x34]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldr r0, _08140198
+ strh r5, [r0, 0xC]
+ ldr r0, _0814019C
+ str r0, [r4, 0x1C]
+ movs r0, 0x17
+ bl PlaySE
+_08140190:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140198: .4byte 0x02017840
+_0814019C: .4byte sub_81401A0
+ thumb_func_end sub_8140158
+
+ thumb_func_start sub_81401A0
+sub_81401A0: @ 81401A0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x34]
+ movs r1, 0xFF
+ ands r1, r0
+ cmp r1, 0x6
+ bls _081401B0
+ b _081403C4
+_081401B0:
+ lsls r0, r1, 2
+ ldr r1, _081401BC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081401BC: .4byte _081401C0
+ .align 2, 0
+_081401C0:
+ .4byte _081401DC
+ .4byte _08140226
+ .4byte _0814026C
+ .4byte _081402C0
+ .4byte _08140310
+ .4byte _08140368
+ .4byte _081403C4
+_081401DC:
+ ldr r0, _081401F8
+ ldrh r2, [r0, 0xC]
+ movs r3, 0xC
+ ldrsh r1, [r0, r3]
+ adds r5, r0, 0
+ cmp r1, 0xFF
+ ble _081401FC
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r0, 0xFF
+ ands r0, r2
+ b _08140200
+ .align 2, 0
+_081401F8: .4byte 0x02017840
+_081401FC:
+ adds r0, r2, 0
+ adds r0, 0xB0
+_08140200:
+ strh r0, [r5, 0xC]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ movs r3, 0
+ strh r0, [r4, 0x38]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xE
+ bhi _08140224
+ b _0814040A
+_08140224:
+ b _081402B4
+_08140226:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ bne _081402CC
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x36]
+ negs r0, r0
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ movs r3, 0x36
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bge _08140262
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl ChangeSpriteAffineAnim
+ b _0814040A
+_08140262:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+ b _0814040A
+_0814026C:
+ ldr r0, _08140288
+ ldrh r2, [r0, 0xC]
+ movs r3, 0xC
+ ldrsh r1, [r0, r3]
+ adds r5, r0, 0
+ cmp r1, 0xFF
+ ble _0814028C
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r0, 0xFF
+ ands r0, r2
+ b _08140290
+ .align 2, 0
+_08140288: .4byte 0x02017840
+_0814028C:
+ adds r0, r2, 0
+ adds r0, 0xB0
+_08140290:
+ strh r0, [r5, 0xC]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ movs r3, 0
+ strh r0, [r4, 0x38]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0xC
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x18
+ bhi _081402B4
+ b _0814040A
+_081402B4:
+ strh r3, [r5, 0xC]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ strh r3, [r4, 0x38]
+ b _0814040A
+_081402C0:
+ ldrh r0, [r4, 0x38]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x38]
+ lsls r0, 16
+ cmp r0, 0
+ bge _081402DA
+_081402CC:
+ adds r0, r4, 0
+ adds r0, 0x2C
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ b _0814040A
+_081402DA:
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x36]
+ negs r0, r0
+ strh r0, [r4, 0x36]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ movs r3, 0x36
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bge _08140308
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl ChangeSpriteAffineAnim
+ b _08140310
+_08140308:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ChangeSpriteAffineAnim
+_08140310:
+ ldr r0, _0814032C
+ ldrh r2, [r0, 0xC]
+ movs r3, 0xC
+ ldrsh r1, [r0, r3]
+ adds r5, r0, 0
+ cmp r1, 0xFF
+ ble _08140330
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x24]
+ adds r0, r1
+ strh r0, [r4, 0x24]
+ movs r0, 0xFF
+ ands r0, r2
+ b _08140334
+ .align 2, 0
+_0814032C: .4byte 0x02017840
+_08140330:
+ adds r0, r2, 0
+ adds r0, 0xB0
+_08140334:
+ strh r0, [r5, 0xC]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ movs r3, 0
+ strh r0, [r4, 0x38]
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r1, [r2]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x4
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x8
+ bls _0814040A
+ strh r3, [r5, 0xC]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ strh r3, [r4, 0x38]
+ ldrh r0, [r4, 0x36]
+ negs r0, r0
+ strh r0, [r4, 0x36]
+ b _0814040A
+_08140368:
+ movs r3, 0x80
+ lsls r3, 1
+ adds r0, r3, 0
+ ldrh r1, [r4, 0x34]
+ adds r0, r1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r1, r0, 24
+ ldr r0, _08140394
+ ldrb r0, [r0, 0x8]
+ cmp r1, r0
+ bne _0814039C
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _08140398
+ str r0, [r4, 0x1C]
+ b _0814040A
+ .align 2, 0
+_08140394: .4byte 0x02017840
+_08140398: .4byte sub_8140410
+_0814039C:
+ cmp r0, 0x4
+ bne _081403B0
+ cmp r1, 0x3
+ bne _081403B0
+ ldr r0, _081403AC
+ str r0, [r4, 0x1C]
+ b _081403B6
+ .align 2, 0
+_081403AC: .4byte sub_8140434
+_081403B0:
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+_081403B6:
+ adds r2, r4, 0
+ adds r2, 0x2C
+ ldrb r0, [r2]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2]
+ b _0814040A
+_081403C4:
+ ldrh r0, [r4, 0x38]
+ adds r0, 0x1
+ strh r0, [r4, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _0814040A
+ movs r0, 0
+ strh r0, [r4, 0x38]
+ ldrh r1, [r4, 0x34]
+ ldr r0, _081403F8
+ ands r0, r1
+ strh r0, [r4, 0x34]
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl StartSpriteAffineAnim
+ movs r3, 0x36
+ ldrsh r0, [r4, r3]
+ cmp r0, 0
+ bge _081403FC
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAffineAnim
+ b _08140404
+ .align 2, 0
+_081403F8: .4byte 0xffffff00
+_081403FC:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+_08140404:
+ movs r0, 0x17
+ bl PlaySE
+_0814040A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81401A0
+
+ thumb_func_start sub_8140410
+sub_8140410: @ 8140410
+ push {lr}
+ adds r1, r0, 0
+ ldrh r0, [r1, 0x38]
+ adds r0, 0x1
+ strh r0, [r1, 0x38]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1F
+ bne _0814042A
+ movs r0, 0
+ strh r0, [r1, 0x38]
+ ldr r0, _08140430
+ str r0, [r1, 0x1C]
+_0814042A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140430: .4byte sub_81405F4
+ thumb_func_end sub_8140410
+
+ thumb_func_start sub_8140434
+sub_8140434: @ 8140434
+ adds r3, r0, 0
+ adds r3, 0x2C
+ ldrb r1, [r3]
+ movs r2, 0x40
+ orrs r1, r2
+ strb r1, [r3]
+ ldr r1, _08140450
+ str r1, [r0, 0x1C]
+ movs r1, 0
+ strh r1, [r0, 0x34]
+ strh r1, [r0, 0x36]
+ strh r1, [r0, 0x38]
+ bx lr
+ .align 2, 0
+_08140450: .4byte sub_8140454
+ thumb_func_end sub_8140434
+
+ thumb_func_start sub_8140454
+sub_8140454: @ 8140454
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r7, _08140484
+ ldrh r0, [r6, 0x36]
+ adds r0, 0x1
+ strh r0, [r6, 0x36]
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0x28
+ beq _081404CC
+ cmp r1, 0x5F
+ bne _08140490
+ ldr r0, _08140488
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x1
+ bl sub_8043EB4
+ bl m4aMPlayAllStop
+ ldr r0, _0814048C
+ bl PlaySE
+ b _081404CC
+ .align 2, 0
+_08140484: .4byte gUnknown_0202F7C9
+_08140488: .4byte gUnknown_02024E6D
+_0814048C: .4byte 0x00000173
+_08140490:
+ ldr r0, _081404D4
+ cmp r1, r0
+ bne _081404CC
+ ldr r5, _081404D8
+ ldr r4, _081404DC
+ ldrb r0, [r7]
+ adds r0, r4
+ ldrb r1, [r0]
+ 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 r0, [r7]
+ adds r0, r4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ bl DestroySprite
+ movs r0, 0
+ strh r0, [r6, 0x2E]
+ ldr r0, _081404E0
+ str r0, [r6, 0x1C]
+_081404CC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081404D4: .4byte 0x0000013b
+_081404D8: .4byte gSprites
+_081404DC: .4byte gUnknown_02024BE0
+_081404E0: .4byte sub_81404E4
+ thumb_func_end sub_8140454
+
+ thumb_func_start sub_81404E4
+sub_81404E4: @ 81404E4
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08140550
+ cmp r0, 0x1
+ bgt _081404FC
+ cmp r0, 0
+ beq _08140502
+ b _08140594
+_081404FC:
+ cmp r0, 0x2
+ beq _08140580
+ b _08140594
+_08140502:
+ strh r0, [r4, 0x30]
+ strh r0, [r4, 0x32]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldr r1, _08140548
+ movs r2, 0xFD
+ lsls r2, 6
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x10
+ strh r0, [r1]
+ ldr r0, [r4, 0x14]
+ ldrh r0, [r0, 0x2]
+ bl IndexOfSpritePaletteTag
+ lsls r0, 24
+ lsrs r0, 24
+ adds r0, 0x10
+ movs r1, 0x1
+ lsls r1, r0
+ ldr r0, _0814054C
+ str r0, [sp]
+ adds r0, r1, 0
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _0814058C
+ .align 2, 0
+_08140548: .4byte REG_BLDCNT
+_0814054C: .4byte 0x00007fff
+_08140550:
+ ldrh r0, [r4, 0x30]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x30]
+ lsls r0, 16
+ cmp r0, 0
+ ble _081405B2
+ movs r0, 0
+ strh r0, [r4, 0x30]
+ ldrh r1, [r4, 0x32]
+ adds r1, 0x1
+ strh r1, [r4, 0x32]
+ ldr r3, _0814057C
+ lsls r2, r1, 8
+ movs r0, 0x10
+ subs r0, r1
+ orrs r2, r0
+ strh r2, [r3]
+ movs r1, 0x32
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _081405B2
+ b _0814058C
+ .align 2, 0
+_0814057C: .4byte REG_BLDALPHA
+_08140580:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_0814058C:
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ b _081405B2
+_08140594:
+ ldr r0, _081405BC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _081405B2
+ ldr r0, _081405C0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ strh r1, [r4, 0x2E]
+ ldr r0, _081405C4
+ str r0, [r4, 0x1C]
+_081405B2:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081405BC: .4byte gPaletteFade
+_081405C0: .4byte REG_BLDCNT
+_081405C4: .4byte sub_81405C8
+ thumb_func_end sub_81404E4
+
+ thumb_func_start sub_81405C8
+sub_81405C8: @ 81405C8
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x2E]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bne _081405E0
+ ldr r0, _081405DC
+ strh r0, [r4, 0x2E]
+ b _081405EC
+ .align 2, 0
+_081405DC: .4byte 0x0000ffff
+_081405E0:
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_081405EC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81405C8
+
+ thumb_func_start sub_81405F4
+sub_81405F4: @ 81405F4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ ldr r0, _081406A8
+ str r0, [r4, 0x1C]
+ ldr r0, _081406AC
+ ldrh r0, [r0]
+ bl ball_number_to_ball_processing_index
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0xB
+ bgt _08140646
+ cmp r5, 0
+ blt _08140646
+ ldrh r0, [r4, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r1, [r4, 0x22]
+ subs r1, 0x5
+ lsls r1, 24
+ lsrs r1, 24
+ str r5, [sp]
+ movs r2, 0x1
+ movs r3, 0x1C
+ bl sub_814086C
+ ldr r0, _081406B0
+ ldrb r1, [r0]
+ movs r0, 0x1
+ movs r2, 0xE
+ adds r3, r5, 0
+ bl sub_8141314
+_08140646:
+ ldr r6, _081406B4
+ ldr r5, _081406B8
+ ldr r4, _081406B0
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ adds r0, 0x3E
+ ldrb r2, [r0]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0]
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x1
+ bl StartSpriteAffineAnim
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ bl AnimateSprite
+ ldrb r0, [r4]
+ adds r0, r5
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x80
+ lsls r1, 5
+ strh r1, [r0, 0x30]
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081406A8: .4byte sub_81406BC
+_081406AC: .4byte gUnknown_02024C04
+_081406B0: .4byte gUnknown_0202F7C9
+_081406B4: .4byte gSprites
+_081406B8: .4byte gUnknown_02024BE0
+ thumb_func_end sub_81405F4
+
+ thumb_func_start sub_81406BC
+sub_81406BC: @ 81406BC
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ movs r5, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _081406DA
+ adds r2, r7, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_081406DA:
+ ldr r4, _08140708
+ ldr r3, _0814070C
+ ldr r2, _08140710
+ ldrb r0, [r2]
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r4
+ adds r0, r1, 0
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 26
+ cmp r0, 0
+ bge _08140714
+ adds r0, r1, 0
+ movs r1, 0
+ bl StartSpriteAffineAnim
+ movs r5, 0x1
+ b _08140734
+ .align 2, 0
+_08140708: .4byte gSprites
+_0814070C: .4byte gUnknown_02024BE0
+_08140710: .4byte gUnknown_0202F7C9
+_08140714:
+ ldr r6, _0814079C
+ adds r0, r6, 0
+ ldrh r6, [r1, 0x30]
+ adds r0, r6
+ strh r0, [r1, 0x30]
+ ldrb r0, [r2]
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ ldrh r0, [r1, 0x30]
+ lsls r0, 16
+ asrs r0, 24
+ strh r0, [r1, 0x26]
+_08140734:
+ adds r0, r7, 0
+ adds r0, 0x3F
+ ldrb r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08140796
+ cmp r5, 0
+ beq _08140796
+ ldr r4, _081407A0
+ ldr r3, _081407A4
+ ldr r2, _081407A8
+ ldrb r0, [r2]
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r6, 0
+ movs r5, 0
+ strh r5, [r0, 0x26]
+ ldrb r0, [r2]
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r2, r0, 4
+ adds r2, r0
+ lsls r2, 2
+ adds r2, r4
+ ldr r0, _081407AC
+ ldrb r1, [r0, 0x9]
+ lsls r1, 30
+ adds r2, 0x3E
+ lsrs r1, 31
+ lsls r1, 2
+ ldrb r3, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r3
+ orrs r0, r1
+ strb r0, [r2]
+ strh r5, [r7, 0x2E]
+ ldr r0, _081407B0
+ str r0, [r7, 0x1C]
+ ldr r0, _081407B4
+ strb r6, [r0]
+ movs r0, 0x1
+ bl sub_8043EB4
+_08140796:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814079C: .4byte 0xfffffee0
+_081407A0: .4byte gSprites
+_081407A4: .4byte gUnknown_02024BE0
+_081407A8: .4byte gUnknown_0202F7C9
+_081407AC: .4byte 0x02017840
+_081407B0: .4byte sub_81405C8
+_081407B4: .4byte gUnknown_02024E6D
+ thumb_func_end sub_81406BC
+
+ thumb_func_start sub_81407B8
+sub_81407B8: @ 81407B8
+ push {r4,lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x24]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ movs r1, 0
+ strh r0, [r2, 0x20]
+ ldrh r0, [r2, 0x26]
+ ldrh r3, [r2, 0x22]
+ adds r0, r3
+ strh r0, [r2, 0x22]
+ strh r1, [r2, 0x26]
+ strh r1, [r2, 0x24]
+ ldr r4, _081407F0
+ movs r3, 0
+ movs r1, 0x5
+ adds r0, r2, 0
+ adds r0, 0x38
+_081407DC:
+ strh r3, [r0]
+ subs r0, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _081407DC
+ str r4, [r2, 0x1C]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081407F0: .4byte sub_81407F4
+ thumb_func_end sub_81407B8
+
+ thumb_func_start sub_81407F4
+sub_81407F4: @ 81407F4
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r0, 0x80
+ lsls r0, 4
+ adds r2, r0, 0
+ ldrh r1, [r4, 0x2E]
+ adds r2, r1
+ movs r0, 0xD0
+ lsls r0, 3
+ adds r3, r0, 0
+ ldrh r1, [r4, 0x30]
+ adds r3, r1
+ lsls r1, r3, 16
+ asrs r1, 24
+ ldrh r0, [r4, 0x24]
+ subs r0, r1
+ strh r0, [r4, 0x24]
+ lsls r0, r2, 16
+ asrs r0, 24
+ ldrh r1, [r4, 0x26]
+ adds r0, r1
+ strh r0, [r4, 0x26]
+ movs r0, 0xFF
+ ands r2, r0
+ strh r2, [r4, 0x2E]
+ ands r3, r0
+ strh r3, [r4, 0x30]
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ movs r2, 0x26
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ cmp r0, 0xA0
+ bgt _0814084A
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ movs r2, 0x24
+ ldrsh r1, [r4, r2]
+ adds r0, r1
+ movs r1, 0x8
+ negs r1, r1
+ cmp r0, r1
+ bge _0814085E
+_0814084A:
+ movs r0, 0
+ strh r0, [r4, 0x2E]
+ ldr r0, _08140864
+ str r0, [r4, 0x1C]
+ ldr r1, _08140868
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x1
+ bl sub_8043EB4
+_0814085E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140864: .4byte sub_81405C8
+_08140868: .4byte gUnknown_02024E6D
+ thumb_func_end sub_81407F4
+
+ thumb_func_start sub_814086C
+sub_814086C: @ 814086C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, [sp, 0x20]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ lsls r3, 24
+ lsrs r7, r3, 24
+ lsls r4, 24
+ lsrs r4, 24
+ adds r5, r4, 0
+ ldr r0, _08140910
+ lsls r6, r5, 3
+ adds r4, r6, r0
+ ldrh r0, [r4, 0x6]
+ bl GetSpriteTileStartByTag
+ lsls r0, 16
+ ldr r1, _08140914
+ cmp r0, r1
+ bne _081408B6
+ adds r0, r4, 0
+ bl LoadCompressedObjectPic
+ ldr r0, _08140918
+ adds r0, r6, r0
+ bl LoadCompressedObjectPalette
+_081408B6:
+ ldr r1, _0814091C
+ lsls r0, r5, 2
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _08140920
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ mov r1, r10
+ strh r1, [r0, 0xA]
+ mov r1, r9
+ strh r1, [r0, 0xC]
+ mov r1, r8
+ strh r1, [r0, 0xE]
+ strh r7, [r0, 0x10]
+ strh r5, [r0, 0x26]
+ movs r0, 0xF
+ bl PlaySE
+ ldr r0, _08140924
+ ldr r1, _08140928
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08140900
+ ldr r1, _0814092C
+ ldrb r0, [r1, 0xA]
+ adds r0, 0x1
+ strb r0, [r1, 0xA]
+_08140900:
+ adds r0, r4, 0
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08140910: .4byte gUnknown_0840B258
+_08140914: .4byte 0xffff0000
+_08140918: .4byte gUnknown_0840B2B8
+_0814091C: .4byte gUnknown_0840B384
+_08140920: .4byte gTasks
+_08140924: .4byte gMain
+_08140928: .4byte 0x0000043d
+_0814092C: .4byte 0x02017840
+ thumb_func_end sub_814086C
+
+ thumb_func_start sub_8140930
+sub_8140930: @ 8140930
+ 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
+ ldr r1, _081409D0
+ lsls r0, 2
+ add r0, r9
+ lsls r0, 3
+ adds r7, r0, r1
+ ldrh r0, [r7, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ cmp r0, 0xF
+ bgt _081409E4
+ ldrb r1, [r7, 0xA]
+ ldrb r2, [r7, 0xC]
+ ldrb r6, [r7, 0xE]
+ ldrb r3, [r7, 0x10]
+ mov r4, r8
+ lsls r0, r4, 1
+ add r0, r8
+ lsls r0, 3
+ ldr r4, _081409D4
+ adds r0, r4
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r5, _081409D8
+ adds r2, r4, r5
+ ldr r0, _081409DC
+ add r0, r8
+ ldrb r1, [r0]
+ adds r0, r2, 0
+ str r2, [sp]
+ bl StartSpriteAnim
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _081409E0
+ str r0, [r4]
+ movs r0, 0x3
+ ands r6, r0
+ lsls r6, 2
+ ldr r2, [sp]
+ ldrb r1, [r2, 0x5]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r6
+ strb r0, [r2, 0x5]
+ ldrb r0, [r7, 0x8]
+ cmp r0, 0x7
+ bls _081409B6
+ subs r0, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+_081409B6:
+ lsls r0, 5
+ strh r0, [r2, 0x2E]
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ cmp r0, 0xF
+ bne _081409E4
+ movs r0, 0x1
+ strh r0, [r2, 0x3C]
+ mov r0, r9
+ bl DestroyTask
+ b _081409F6
+ .align 2, 0
+_081409D0: .4byte gTasks
+_081409D4: .4byte gSpriteTemplate_840B3B4
+_081409D8: .4byte gSprites
+_081409DC: .4byte gUnknown_0840B378
+_081409E0: .4byte sub_8140A08
+_081409E4:
+ ldr r0, _08140A04
+ mov r2, r9
+ lsls r1, r2, 2
+ add r1, r9
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_081409F6:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08140A04: .4byte gTasks
+ thumb_func_end sub_8140930
+
+ thumb_func_start sub_8140A08
+sub_8140A08: @ 8140A08
+ push {lr}
+ adds r1, r0, 0
+ ldrh r2, [r1, 0x30]
+ movs r3, 0x30
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _08140A20
+ ldr r0, _08140A1C
+ str r0, [r1, 0x1C]
+ b _08140A24
+ .align 2, 0
+_08140A1C: .4byte sub_8140A28
+_08140A20:
+ subs r0, r2, 0x1
+ strh r0, [r1, 0x30]
+_08140A24:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8140A08
+
+ thumb_func_start sub_8140A28
+sub_8140A28: @ 8140A28
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0x2
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x32
+ bne _08140A5C
+ adds r0, r4, 0
+ bl sub_8141294
+_08140A5C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8140A28
+
+ thumb_func_start sub_8140A64
+sub_8140A64: @ 8140A64
+ 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, _08140B24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r0, 0xA]
+ str r2, [sp]
+ ldrb r3, [r0, 0xC]
+ str r3, [sp, 0x4]
+ ldrb r2, [r0, 0xE]
+ str r2, [sp, 0x8]
+ ldrb r0, [r0, 0x10]
+ str r0, [sp, 0xC]
+ movs r6, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ mov r10, r0
+ ldr r3, _08140B28
+ mov r8, r3
+ ldr r0, _08140B2C
+ adds r1, r0
+ mov r9, r1
+_08140AA8:
+ ldr r0, _08140B30
+ add r0, r10
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0xC]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ mov r0, r8
+ adds r4, r5, r0
+ mov r2, r9
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r3, _08140B34
+ adds r1, r5, r3
+ ldr r0, _08140B38
+ str r0, [r1]
+ movs r0, 0x3
+ ldr r2, [sp, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r4, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r0, r6, 5
+ strh r0, [r4, 0x2E]
+ movs r0, 0xA
+ strh r0, [r4, 0x36]
+ movs r0, 0x2
+ strh r0, [r4, 0x38]
+ movs r2, 0x1
+ strh r2, [r4, 0x3A]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x7
+ bls _08140AA8
+ ldr r0, _08140B28
+ adds r0, r5, r0
+ strh r2, [r0, 0x3C]
+ adds r0, r7, 0
+ bl DestroyTask
+ 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
+_08140B24: .4byte gTasks
+_08140B28: .4byte gSprites
+_08140B2C: .4byte gUnknown_0840B378
+_08140B30: .4byte gSpriteTemplate_840B3B4
+_08140B34: .4byte gSprites + 0x1C
+_08140B38: .4byte sub_8140ECC
+ thumb_func_end sub_8140A64
+
+ thumb_func_start sub_8140B3C
+sub_8140B3C: @ 8140B3C
+ 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, _08140BFC
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r0, 0xA]
+ str r2, [sp]
+ ldrb r3, [r0, 0xC]
+ str r3, [sp, 0x4]
+ ldrb r2, [r0, 0xE]
+ str r2, [sp, 0x8]
+ ldrb r0, [r0, 0x10]
+ str r0, [sp, 0xC]
+ movs r6, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ mov r10, r0
+ ldr r3, _08140C00
+ mov r8, r3
+ ldr r0, _08140C04
+ adds r1, r0
+ mov r9, r1
+_08140B80:
+ ldr r0, _08140C08
+ add r0, r10
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0xC]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ mov r0, r8
+ adds r4, r5, r0
+ mov r2, r9
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r3, _08140C0C
+ adds r1, r5, r3
+ ldr r0, _08140C10
+ str r0, [r1]
+ movs r0, 0x3
+ ldr r2, [sp, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r4, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r0, r6, 5
+ strh r0, [r4, 0x2E]
+ movs r0, 0xA
+ strh r0, [r4, 0x36]
+ movs r1, 0x1
+ strh r1, [r4, 0x38]
+ movs r0, 0x2
+ strh r0, [r4, 0x3A]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x7
+ bls _08140B80
+ ldr r0, _08140C00
+ adds r0, r5, r0
+ strh r1, [r0, 0x3C]
+ adds r0, r7, 0
+ bl DestroyTask
+ 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
+_08140BFC: .4byte gTasks
+_08140C00: .4byte gSprites
+_08140C04: .4byte gUnknown_0840B378
+_08140C08: .4byte gSpriteTemplate_840B3B4
+_08140C0C: .4byte gSprites + 0x1C
+_08140C10: .4byte sub_8140ECC
+ thumb_func_end sub_8140B3C
+
+ thumb_func_start sub_8140C14
+sub_8140C14: @ 8140C14
+ 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, _08140CD0
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r0, 0xA]
+ str r2, [sp]
+ ldrb r3, [r0, 0xC]
+ str r3, [sp, 0x4]
+ ldrb r2, [r0, 0xE]
+ str r2, [sp, 0x8]
+ ldrb r0, [r0, 0x10]
+ str r0, [sp, 0xC]
+ movs r6, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ mov r10, r0
+ ldr r3, _08140CD4
+ mov r8, r3
+ ldr r0, _08140CD8
+ adds r1, r0
+ mov r9, r1
+_08140C58:
+ ldr r0, _08140CDC
+ add r0, r10
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0xC]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ mov r0, r8
+ adds r4, r5, r0
+ mov r2, r9
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r3, _08140CE0
+ adds r1, r5, r3
+ ldr r0, _08140CE4
+ str r0, [r1]
+ movs r0, 0x3
+ ldr r2, [sp, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r4, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r0, r6, 5
+ strh r0, [r4, 0x2E]
+ movs r0, 0x4
+ strh r0, [r4, 0x36]
+ movs r2, 0x1
+ strh r2, [r4, 0x38]
+ strh r2, [r4, 0x3A]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x7
+ bls _08140C58
+ ldr r0, _08140CD4
+ adds r0, r5, r0
+ strh r2, [r0, 0x3C]
+ adds r0, r7, 0
+ bl DestroyTask
+ 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
+_08140CD0: .4byte gTasks
+_08140CD4: .4byte gSprites
+_08140CD8: .4byte gUnknown_0840B378
+_08140CDC: .4byte gSpriteTemplate_840B3B4
+_08140CE0: .4byte gSprites + 0x1C
+_08140CE4: .4byte sub_8140ECC
+ thumb_func_end sub_8140C14
+
+ thumb_func_start sub_8140CE8
+sub_8140CE8: @ 8140CE8
+ 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, _08140DAC
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r0, 0xA]
+ str r2, [sp]
+ ldrb r3, [r0, 0xC]
+ str r3, [sp, 0x4]
+ ldrb r2, [r0, 0xE]
+ str r2, [sp, 0x8]
+ ldrb r0, [r0, 0x10]
+ str r0, [sp, 0xC]
+ movs r6, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ mov r10, r0
+ ldr r3, _08140DB0
+ mov r8, r3
+ ldr r0, _08140DB4
+ adds r1, r0
+ mov r9, r1
+_08140D2C:
+ ldr r0, _08140DB8
+ add r0, r10
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0xC]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ mov r0, r8
+ adds r4, r5, r0
+ mov r2, r9
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r3, _08140DBC
+ adds r1, r5, r3
+ ldr r0, _08140DC0
+ str r0, [r1]
+ movs r0, 0x3
+ ldr r2, [sp, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r4, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r6
+ strh r0, [r4, 0x2E]
+ movs r0, 0x5
+ strh r0, [r4, 0x36]
+ movs r2, 0x1
+ strh r2, [r4, 0x38]
+ strh r2, [r4, 0x3A]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x9
+ bls _08140D2C
+ ldr r0, _08140DB0
+ adds r0, r5, r0
+ strh r2, [r0, 0x3C]
+ adds r0, r7, 0
+ bl DestroyTask
+ 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
+_08140DAC: .4byte gTasks
+_08140DB0: .4byte gSprites
+_08140DB4: .4byte gUnknown_0840B378
+_08140DB8: .4byte gSpriteTemplate_840B3B4
+_08140DBC: .4byte gSprites + 0x1C
+_08140DC0: .4byte sub_8140ECC
+ thumb_func_end sub_8140CE8
+
+ thumb_func_start sub_8140DC4
+sub_8140DC4: @ 8140DC4
+ 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
+ ldr r1, _08140DF0
+ lsls r2, r7, 2
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r1, [r3, 0x16]
+ movs r4, 0x16
+ ldrsh r0, [r3, r4]
+ cmp r0, 0
+ beq _08140DF4
+ subs r0, r1, 0x1
+ strh r0, [r3, 0x16]
+ b _08140EA4
+ .align 2, 0
+_08140DF0: .4byte gTasks
+_08140DF4:
+ ldrh r0, [r3, 0x26]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r3, 0xA]
+ str r1, [sp]
+ ldrb r4, [r3, 0xC]
+ str r4, [sp, 0x4]
+ ldrb r1, [r3, 0xE]
+ str r1, [sp, 0x8]
+ ldrb r3, [r3, 0x10]
+ str r3, [sp, 0xC]
+ movs r6, 0
+ str r2, [sp, 0x10]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ mov r10, r1
+ ldr r3, _08140EB4
+ mov r8, r3
+ ldr r1, _08140EB8
+ adds r0, r1
+ mov r9, r0
+_08140E20:
+ ldr r0, _08140EBC
+ add r0, r10
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0xC]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ mov r0, r8
+ adds r4, r5, r0
+ mov r3, r9
+ ldrb r1, [r3]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r0, _08140EC0
+ adds r1, r5, r0
+ ldr r0, _08140EC4
+ str r0, [r1]
+ movs r0, 0x3
+ ldr r2, [sp, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r4, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r0, r6, 5
+ strh r0, [r4, 0x2E]
+ movs r2, 0x8
+ strh r2, [r4, 0x36]
+ movs r0, 0x2
+ strh r0, [r4, 0x38]
+ strh r0, [r4, 0x3A]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x7
+ bls _08140E20
+ ldr r0, _08140EC8
+ ldr r4, [sp, 0x10]
+ adds r1, r4, r7
+ lsls r1, 3
+ adds r1, r0
+ strh r2, [r1, 0x16]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x2
+ bne _08140EA4
+ ldr r0, _08140EB4
+ adds r0, r5, r0
+ movs r1, 0x1
+ strh r1, [r0, 0x3C]
+ adds r0, r7, 0
+ bl DestroyTask
+_08140EA4:
+ 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
+_08140EB4: .4byte gSprites
+_08140EB8: .4byte gUnknown_0840B378
+_08140EBC: .4byte gSpriteTemplate_840B3B4
+_08140EC0: .4byte gSprites + 0x1C
+_08140EC4: .4byte sub_8140ECC
+_08140EC8: .4byte gTasks
+ thumb_func_end sub_8140DC4
+
+ thumb_func_start sub_8140ECC
+sub_8140ECC: @ 8140ECC
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r2, 0x30
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ movs r2, 0x32
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x36]
+ ldrh r1, [r4, 0x2E]
+ adds r0, r1
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r4, 0x38]
+ ldrh r2, [r4, 0x30]
+ adds r0, r2
+ strh r0, [r4, 0x30]
+ ldrh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x32]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ ldrh r0, [r4, 0x34]
+ adds r0, 0x1
+ strh r0, [r4, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bne _08140F1C
+ adds r0, r4, 0
+ bl sub_8141294
+_08140F1C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8140ECC
+
+ thumb_func_start sub_8140F24
+sub_8140F24: @ 8140F24
+ 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, _08140FE0
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r0, 0xA]
+ str r2, [sp]
+ ldrb r3, [r0, 0xC]
+ str r3, [sp, 0x4]
+ ldrb r2, [r0, 0xE]
+ str r2, [sp, 0x8]
+ ldrb r0, [r0, 0x10]
+ str r0, [sp, 0xC]
+ movs r6, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ mov r10, r0
+ ldr r3, _08140FE4
+ mov r8, r3
+ ldr r0, _08140FE8
+ adds r1, r0
+ mov r9, r1
+_08140F68:
+ ldr r0, _08140FEC
+ add r0, r10
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0xC]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ mov r0, r8
+ adds r4, r5, r0
+ mov r2, r9
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r3, _08140FF0
+ adds r1, r5, r3
+ ldr r0, _08140FF4
+ str r0, [r1]
+ movs r0, 0x3
+ ldr r2, [sp, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r4, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r6
+ strh r0, [r4, 0x2E]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0xB
+ bls _08140F68
+ ldr r0, _08140FE4
+ adds r0, r5, r0
+ movs r1, 0x1
+ strh r1, [r0, 0x3C]
+ adds r0, r7, 0
+ bl DestroyTask
+ 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
+_08140FE0: .4byte gTasks
+_08140FE4: .4byte gSprites
+_08140FE8: .4byte gUnknown_0840B378
+_08140FEC: .4byte gSpriteTemplate_840B3B4
+_08140FF0: .4byte gSprites + 0x1C
+_08140FF4: .4byte sub_8140FF8
+ thumb_func_end sub_8140F24
+
+ thumb_func_start sub_8140FF8
+sub_8140FF8: @ 8140FF8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ bl Sin
+ strh r0, [r5, 0x24]
+ movs r0, 0x2E
+ ldrsh r4, [r5, r0]
+ movs r2, 0x32
+ ldrsh r1, [r5, r2]
+ adds r0, r4, 0
+ bl Sin
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl Cos
+ strh r0, [r5, 0x26]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x6
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bne _08141050
+ adds r0, r5, 0
+ bl sub_8141294
+_08141050:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8140FF8
+
+ thumb_func_start sub_8141058
+sub_8141058: @ 8141058
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ ldr r1, _08141104
+ lsls r0, 2
+ ldr r2, [sp]
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r3, [r0, 0xA]
+ str r3, [sp, 0x4]
+ ldrb r2, [r0, 0xC]
+ str r2, [sp, 0x8]
+ ldrb r3, [r0, 0xE]
+ str r3, [sp, 0xC]
+ ldrb r0, [r0, 0x10]
+ str r0, [sp, 0x10]
+ movs r0, 0
+ mov r8, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ str r0, [sp, 0x14]
+ ldr r0, _08141108
+ adds r1, r0
+ mov r10, r1
+_0814109E:
+ movs r7, 0
+ movs r1, 0x1
+ add r1, r8
+ mov r9, r1
+_081410A6:
+ ldr r0, _0814110C
+ ldr r2, [sp, 0x14]
+ adds r0, r2, r0
+ ldr r1, [sp, 0x4]
+ ldr r2, [sp, 0x8]
+ ldr r3, [sp, 0x10]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r4, r6, 4
+ adds r4, r6
+ lsls r4, 2
+ ldr r3, _08141110
+ adds r5, r4, r3
+ mov r0, r10
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl StartSpriteAnim
+ ldr r1, _08141114
+ adds r4, r1
+ ldr r0, _08141118
+ str r0, [r4]
+ movs r0, 0x3
+ ldr r1, [sp, 0xC]
+ ands r1, r0
+ lsls r1, 2
+ ldrb r0, [r5, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r2, r3, 0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x5]
+ lsls r0, r7, 5
+ strh r0, [r5, 0x2E]
+ movs r0, 0x8
+ strh r0, [r5, 0x36]
+ mov r0, r8
+ cmp r0, 0
+ bne _0814111C
+ movs r0, 0x2
+ strh r0, [r5, 0x38]
+ movs r0, 0x1
+ b _08141122
+ .align 2, 0
+_08141104: .4byte gTasks
+_08141108: .4byte gUnknown_0840B378
+_0814110C: .4byte gSpriteTemplate_840B3B4
+_08141110: .4byte gSprites
+_08141114: .4byte gSprites + 0x1C
+_08141118: .4byte sub_8140ECC
+_0814111C:
+ movs r0, 0x1
+ strh r0, [r5, 0x38]
+ movs r0, 0x2
+_08141122:
+ strh r0, [r5, 0x3A]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x7
+ bls _081410A6
+ mov r1, r9
+ lsls r0, r1, 24
+ lsrs r0, 24
+ mov r8, r0
+ cmp r0, 0x1
+ bls _0814109E
+ ldr r0, _08141160
+ lsls r1, r6, 4
+ adds r1, r6
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0x1
+ strh r0, [r1, 0x3C]
+ ldr r0, [sp]
+ bl DestroyTask
+ 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
+_08141160: .4byte gSprites
+ thumb_func_end sub_8141058
+
+ thumb_func_start sub_8141164
+sub_8141164: @ 8141164
+ 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, _08141218
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r2, [r0, 0xA]
+ str r2, [sp]
+ ldrb r3, [r0, 0xC]
+ str r3, [sp, 0x4]
+ ldrb r2, [r0, 0xE]
+ str r2, [sp, 0x8]
+ ldrb r0, [r0, 0x10]
+ str r0, [sp, 0xC]
+ movs r6, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ mov r10, r0
+ ldr r3, _0814121C
+ mov r8, r3
+ ldr r0, _08141220
+ adds r1, r0
+ mov r9, r1
+_081411A8:
+ ldr r0, _08141224
+ add r0, r10
+ ldr r1, [sp]
+ ldr r2, [sp, 0x4]
+ ldr r3, [sp, 0xC]
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r5, r1, 2
+ mov r0, r8
+ adds r4, r5, r0
+ mov r2, r9
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ ldr r3, _08141228
+ adds r1, r5, r3
+ ldr r0, _0814122C
+ str r0, [r1]
+ movs r0, 0x3
+ ldr r2, [sp, 0x8]
+ ands r2, r0
+ lsls r2, 2
+ ldrb r0, [r4, 0x5]
+ movs r3, 0xD
+ negs r3, r3
+ adds r1, r3, 0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ lsls r0, r6, 5
+ strh r0, [r4, 0x2E]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x7
+ bls _081411A8
+ ldr r0, _0814121C
+ adds r0, r5, r0
+ movs r1, 0x1
+ strh r1, [r0, 0x3C]
+ adds r0, r7, 0
+ bl DestroyTask
+ 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
+_08141218: .4byte gTasks
+_0814121C: .4byte gSprites
+_08141220: .4byte gUnknown_0840B378
+_08141224: .4byte gSpriteTemplate_840B3B4
+_08141228: .4byte gSprites + 0x1C
+_0814122C: .4byte sub_8141230
+ thumb_func_end sub_8141164
+
+ thumb_func_start sub_8141230
+sub_8141230: @ 8141230
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r1, 0x2E
+ ldrsh r0, [r5, r1]
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ bl Sin
+ strh r0, [r5, 0x24]
+ movs r0, 0x2E
+ ldrsh r4, [r5, r0]
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x3F
+ ands r0, r1
+ movs r2, 0x32
+ ldrsh r1, [r5, r2]
+ bl Sin
+ adds r1, r0, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r0, r4, 0
+ bl Cos
+ strh r0, [r5, 0x26]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0xA
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r5, 0x2E]
+ ldrh r0, [r5, 0x30]
+ adds r0, 0x1
+ strh r0, [r5, 0x30]
+ ldrh r0, [r5, 0x32]
+ adds r0, 0x1
+ strh r0, [r5, 0x32]
+ ldrh r0, [r5, 0x34]
+ adds r0, 0x1
+ strh r0, [r5, 0x34]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x33
+ bne _0814128C
+ adds r0, r5, 0
+ bl sub_8141294
+_0814128C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8141230
+
+ thumb_func_start sub_8141294
+sub_8141294: @ 8141294
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ ldr r0, _081412B8
+ ldr r1, _081412BC
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _081412C0
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _081412F2
+ adds r0, r5, 0
+ bl DestroySpriteAndFreeResources
+ b _0814130E
+ .align 2, 0
+_081412B8: .4byte gMain
+_081412BC: .4byte 0x0000043d
+_081412C0:
+ movs r1, 0x3C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ bne _08141308
+ ldr r1, _081412FC
+ ldrb r0, [r1, 0xA]
+ subs r0, 0x1
+ strb r0, [r1, 0xA]
+ lsls r0, 24
+ cmp r0, 0
+ bne _081412F2
+ movs r7, 0
+ ldr r6, _08141300
+ ldr r4, _08141304
+_081412DC:
+ ldrh r0, [r6, 0x6]
+ bl FreeSpriteTilesByTag
+ ldrh r0, [r4, 0x4]
+ bl FreeSpritePaletteByTag
+ adds r6, 0x8
+ adds r4, 0x8
+ adds r7, 0x1
+ cmp r7, 0xB
+ ble _081412DC
+_081412F2:
+ adds r0, r5, 0
+ bl DestroySprite
+ b _0814130E
+ .align 2, 0
+_081412FC: .4byte 0x02017840
+_08141300: .4byte gUnknown_0840B258
+_08141304: .4byte gUnknown_0840B2B8
+_08141308:
+ adds r0, r5, 0
+ bl DestroySprite
+_0814130E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8141294
+
+ thumb_func_start sub_8141314
+sub_8141314: @ 8141314
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ mov r9, r2
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r6, r1, 24
+ lsls r3, 24
+ lsrs r7, r3, 24
+ ldr r0, _08141378
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r1, _0814137C
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r5, r0, r1
+ strh r7, [r5, 0x26]
+ strh r6, [r5, 0xE]
+ mov r0, r9
+ strh r0, [r5, 0x1C]
+ mov r1, r9
+ lsrs r0, r1, 16
+ strh r0, [r5, 0x1E]
+ cmp r4, 0
+ bne _08141384
+ lsls r0, r6, 20
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r0, 16
+ ldr r2, _08141380
+ lsls r1, r7, 1
+ adds r1, r2
+ ldrh r3, [r1]
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalette
+ movs r0, 0x1
+ strh r0, [r5, 0xA]
+ b _081413AA
+ .align 2, 0
+_08141378: .4byte sub_81413DC
+_0814137C: .4byte gTasks
+_08141380: .4byte gUnknown_0840B4D4
+_08141384:
+ lsls r0, r6, 20
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r0, 16
+ ldr r2, _081413CC
+ lsls r1, r7, 1
+ adds r1, r2
+ ldrh r3, [r1]
+ movs r1, 0x10
+ movs r2, 0x10
+ bl BlendPalette
+ movs r0, 0x10
+ strh r0, [r5, 0x8]
+ ldr r0, _081413D0
+ strh r0, [r5, 0xA]
+ ldr r0, _081413D4
+ str r0, [r5]
+_081413AA:
+ ldr r0, _081413D8
+ str r0, [sp]
+ mov r0, r9
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ mov r0, r8
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081413CC: .4byte gUnknown_0840B4D4
+_081413D0: .4byte 0x0000ffff
+_081413D4: .4byte sub_814146C
+_081413D8: .4byte 0x00007fff
+ thumb_func_end sub_8141314
+
+ thumb_func_start sub_81413DC
+sub_81413DC: @ 81413DC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0, 0
+ ldr r1, _0814142C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x10
+ bgt _08141434
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ lsls r0, 20
+ movs r2, 0x80
+ lsls r2, 17
+ adds r0, r2
+ lsrs r0, 16
+ ldrb r2, [r4, 0x8]
+ ldr r3, _08141430
+ lsls r1, 1
+ adds r1, r3
+ ldrh r3, [r1]
+ movs r1, 0x10
+ bl BlendPalette
+ ldrh r0, [r4, 0xA]
+ ldrh r1, [r4, 0x8]
+ adds r0, r1
+ strh r0, [r4, 0x8]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ b _0814145C
+ .align 2, 0
+_0814142C: .4byte gTasks
+_08141430: .4byte gUnknown_0840B4D4
+_08141434:
+ ldr r0, _08141464
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0814145C
+ ldrh r0, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ lsls r1, 16
+ orrs r0, r1
+ ldr r1, _08141468
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ adds r0, r5, 0
+ bl DestroyTask
+_0814145C:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141464: .4byte gPaletteFade
+_08141468: .4byte 0x00007fff
+ thumb_func_end sub_81413DC
+
+ thumb_func_start sub_814146C
+sub_814146C: @ 814146C
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _081414AC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081414A4
+ ldr r0, _081414B0
+ lsls r4, r2, 2
+ adds r4, r2
+ lsls r4, 3
+ adds r4, r0
+ ldrh r0, [r4, 0x1C]
+ ldrh r1, [r4, 0x1E]
+ lsls r1, 16
+ orrs r0, r1
+ ldr r1, _081414B4
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _081414B8
+ str r0, [r4]
+_081414A4:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081414AC: .4byte gPaletteFade
+_081414B0: .4byte gTasks
+_081414B4: .4byte 0x00007fff
+_081414B8: .4byte sub_81414BC
+ thumb_func_end sub_814146C
+
+ thumb_func_start sub_81414BC
+sub_81414BC: @ 81414BC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _08141508
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r0, [r4, 0x26]
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r3, 0xC
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x10
+ bgt _08141510
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ lsls r0, 20
+ movs r3, 0x80
+ lsls r3, 17
+ adds r0, r3
+ lsrs r0, 16
+ ldrb r2, [r4, 0x8]
+ ldr r3, _0814150C
+ lsls r1, 1
+ adds r1, r3
+ ldrh r3, [r1]
+ movs r1, 0x10
+ bl BlendPalette
+ ldrh r0, [r4, 0xA]
+ ldrh r1, [r4, 0x8]
+ adds r0, r1
+ strh r0, [r4, 0x8]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ b _08141516
+ .align 2, 0
+_08141508: .4byte gTasks
+_0814150C: .4byte gUnknown_0840B4D4
+_08141510:
+ adds r0, r2, 0
+ bl DestroyTask
+_08141516:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81414BC
+
+ thumb_func_start sub_814151C
+sub_814151C: @ 814151C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r0, 0
+ mov r8, r0
+ ldr r0, _08141550
+ ldr r3, _08141554
+ ldrb r2, [r3]
+ adds r0, r2, r0
+ ldrb r6, [r0]
+ ldr r1, _08141558
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r5, r0, r1
+ movs r1, 0x1C
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _081415F4
+ cmp r0, 0x1
+ bgt _0814155C
+ cmp r0, 0
+ beq _08141562
+ b _081416B6
+ .align 2, 0
+_08141550: .4byte gUnknown_02024BE0
+_08141554: .4byte gUnknown_0202F7C8
+_08141558: .4byte gTasks
+_0814155C:
+ cmp r0, 0x2
+ beq _08141606
+ b _081416B6
+_08141562:
+ ldr r0, _0814159C
+ ldrh r0, [r0]
+ strh r0, [r5, 0x1E]
+ movs r2, 0xA0
+ lsls r2, 3
+ adds r0, r2, 0
+ ldrh r4, [r5, 0x8]
+ adds r0, r4
+ strh r0, [r5, 0x8]
+ ldrb r0, [r3]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _081415A4
+ ldr r2, _081415A0
+ lsls r3, r6, 4
+ adds r1, r3, r6
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r5, 0x8]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r4, [r1, 0x24]
+ adds r0, r4
+ strh r0, [r1, 0x24]
+ adds r4, r3, 0
+ b _081415BC
+ .align 2, 0
+_0814159C: .4byte gUnknown_03004B00
+_081415A0: .4byte gSprites
+_081415A4:
+ ldr r3, _081415EC
+ lsls r4, r6, 4
+ adds r2, r4, r6
+ lsls r2, 2
+ adds r2, r3
+ ldrh r1, [r5, 0x8]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r2, 0x24]
+ subs r0, r1
+ strh r0, [r2, 0x24]
+ adds r2, r3, 0
+_081415BC:
+ ldr r1, _081415F0
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrb r0, [r3, 0x8]
+ strh r0, [r3, 0x8]
+ adds r0, r4, r6
+ lsls r0, 2
+ adds r0, r2
+ movs r2, 0x20
+ ldrsh r1, [r0, r2]
+ movs r4, 0x24
+ ldrsh r0, [r0, r4]
+ adds r1, r0
+ adds r1, 0x20
+ movs r0, 0x98
+ lsls r0, 1
+ cmp r1, r0
+ bls _081416B6
+ ldrh r0, [r3, 0x1C]
+ adds r0, 0x1
+ strh r0, [r3, 0x1C]
+ b _081416B6
+ .align 2, 0
+_081415EC: .4byte gSprites
+_081415F0: .4byte gTasks
+_081415F4:
+ ldrb r1, [r5, 0x1E]
+ adds r0, r2, 0
+ adds r2, r6, 0
+ bl refresh_graphics_maybe
+ ldrh r0, [r5, 0x1C]
+ adds r0, 0x1
+ strh r0, [r5, 0x1C]
+ b _081416B6
+_08141606:
+ movs r1, 0xA0
+ lsls r1, 3
+ adds r0, r1, 0
+ ldrh r2, [r5, 0x8]
+ adds r0, r2
+ strh r0, [r5, 0x8]
+ ldrb r0, [r3]
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ beq _0814163C
+ ldr r0, _08141638
+ lsls r3, r6, 4
+ adds r2, r3, r6
+ lsls r2, 2
+ adds r2, r0
+ ldrh r1, [r5, 0x8]
+ lsls r1, 16
+ asrs r1, 24
+ ldrh r0, [r2, 0x24]
+ subs r0, r1
+ strh r0, [r2, 0x24]
+ adds r4, r3, 0
+ b _08141654
+ .align 2, 0
+_08141638: .4byte gSprites
+_0814163C:
+ ldr r0, _08141688
+ lsls r2, r6, 4
+ adds r1, r2, r6
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r5, 0x8]
+ lsls r0, 16
+ asrs r0, 24
+ ldrh r3, [r1, 0x24]
+ adds r0, r3
+ strh r0, [r1, 0x24]
+ adds r4, r2, 0
+_08141654:
+ ldr r1, _0814168C
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ strh r1, [r0, 0x8]
+ ldr r0, _08141690
+ ldrb r0, [r0]
+ bl battle_side_get_owner
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _08141694
+ ldr r0, _08141688
+ adds r1, r4, r6
+ lsls r1, 2
+ adds r1, r0
+ movs r4, 0x24
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ bgt _081416AA
+ movs r0, 0
+ strh r0, [r1, 0x24]
+ b _081416B0
+ .align 2, 0
+_08141688: .4byte gSprites
+_0814168C: .4byte gTasks
+_08141690: .4byte gUnknown_0202F7C8
+_08141694:
+ ldr r0, _081416C0
+ adds r1, r4, r6
+ lsls r1, 2
+ adds r1, r0
+ movs r3, 0x24
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ blt _081416AA
+ strh r2, [r1, 0x24]
+ movs r4, 0x1
+ mov r8, r4
+_081416AA:
+ mov r0, r8
+ cmp r0, 0
+ beq _081416B6
+_081416B0:
+ adds r0, r7, 0
+ bl move_anim_task_del
+_081416B6:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081416C0: .4byte gSprites
+ thumb_func_end sub_814151C
+
+ thumb_func_start sub_81416C4
+sub_81416C4: @ 81416C4
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _081416E8
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08141744
+ cmp r0, 0x1
+ bgt _081416EC
+ cmp r0, 0
+ beq _081416F2
+ b _081417B8
+ .align 2, 0
+_081416E8: .4byte gTasks
+_081416EC:
+ cmp r0, 0x2
+ beq _0814177C
+ b _081417B8
+_081416F2:
+ ldr r0, _08141708
+ ldrb r0, [r0]
+ bl battle_get_per_side_status_permutated
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08141714
+ ldr r1, _0814170C
+ ldr r2, _08141710
+ b _08141718
+ .align 2, 0
+_08141708: .4byte gUnknown_0202F7C8
+_0814170C: .4byte REG_BLDCNT
+_08141710: .4byte 0x00003f42
+_08141714:
+ ldr r1, _08141734
+ ldr r2, _08141738
+_08141718:
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _0814173C
+ movs r0, 0x10
+ strh r0, [r1]
+ ldr r1, _08141740
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldrh r1, [r0, 0x26]
+ adds r1, 0x1
+ strh r1, [r0, 0x26]
+ b _081417B8
+ .align 2, 0
+_08141734: .4byte REG_BLDCNT
+_08141738: .4byte 0x00003f44
+_0814173C: .4byte REG_BLDALPHA
+_08141740: .4byte gTasks
+_08141744:
+ ldrh r0, [r4, 0xA]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0xA]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x1
+ ble _081417B8
+ movs r0, 0
+ strh r0, [r4, 0xA]
+ ldrh r1, [r4, 0x8]
+ adds r1, 0x1
+ strh r1, [r4, 0x8]
+ ldr r3, _08141778
+ lsls r2, r1, 8
+ movs r0, 0x10
+ subs r0, r1
+ orrs r2, r0
+ strh r2, [r3]
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x10
+ bne _081417B8
+ ldrh r0, [r4, 0x26]
+ adds r0, 0x1
+ strh r0, [r4, 0x26]
+ b _081417B8
+ .align 2, 0
+_08141778: .4byte REG_BLDALPHA
+_0814177C:
+ ldr r1, _081417C0
+ ldr r3, _081417C4
+ ldrb r0, [r3]
+ adds r0, r1
+ ldrb r1, [r0]
+ ldr r2, _081417C8
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x4]
+ lsls r0, 22
+ lsrs r0, 17
+ ldr r1, _081417CC
+ adds r0, r1
+ movs r1, 0
+ str r1, [sp]
+ ldr r1, _081417D0
+ mov r2, sp
+ str r2, [r1]
+ str r0, [r1, 0x4]
+ ldr r0, _081417D4
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ ldrb r0, [r3]
+ bl sub_80324E0
+ adds r0, r5, 0
+ bl move_anim_task_del
+_081417B8:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081417C0: .4byte gUnknown_02024BE0
+_081417C4: .4byte gUnknown_0202F7C8
+_081417C8: .4byte gSprites
+_081417CC: .4byte 0x06010000
+_081417D0: .4byte 0x040000d4
+_081417D4: .4byte 0x85000200
+ thumb_func_end sub_81416C4
+
+ thumb_func_start sub_81417D8
+sub_81417D8: @ 81417D8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _081417FC
+ ldr r1, _08141800
+ ldrb r1, [r1]
+ lsls r1, 2
+ ldr r2, _08141804
+ adds r1, r2
+ ldr r1, [r1]
+ lsls r1, 29
+ lsrs r1, 31
+ strh r1, [r3, 0xE]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081417FC: .4byte gUnknown_03004B00
+_08141800: .4byte gUnknown_0202F7C8
+_08141804: .4byte 0x02017800
+ thumb_func_end sub_81417D8
+
+ thumb_func_start sub_8141808
+sub_8141808: @ 8141808
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08141820
+ ldr r1, _08141824
+ ldrb r1, [r1]
+ strb r1, [r2]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141820: .4byte gUnknown_0202F7C9
+_08141824: .4byte gUnknown_02024C0A
+ thumb_func_end sub_8141808
+
+ thumb_func_start sub_8141828
+sub_8141828: @ 8141828
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0
+ mov r8, r0
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 2
+ ldr r1, _081418E0
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r2, 0x80
+ orrs r1, r2
+ strb r1, [r0]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetMonData
+ adds r5, r0, 0
+ adds r0, r4, 0
+ movs r1, 0
+ bl GetMonData
+ adds r4, r0, 0
+ adds r0, r6, 0
+ bl b_side_obj__get_some_boolean
+ lsls r0, 24
+ cmp r0, 0
+ beq _081418FC
+ lsrs r0, r5, 16
+ ldr r7, _081418E4
+ ands r5, r7
+ eors r0, r5
+ lsrs r1, r4, 16
+ eors r0, r1
+ ands r4, r7
+ eors r0, r4
+ cmp r0, 0x7
+ bhi _08141882
+ movs r0, 0x1
+ mov r8, r0
+_08141882:
+ mov r0, r8
+ cmp r0, 0
+ beq _081418FC
+ ldr r0, _081418E8
+ bl GetSpriteTileStartByTag
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, r7
+ bne _081418A2
+ ldr r0, _081418EC
+ bl LoadCompressedObjectPic
+ ldr r0, _081418F0
+ bl LoadCompressedObjectPalette
+_081418A2:
+ ldr r5, _081418F4
+ adds r0, r5, 0
+ movs r1, 0xA
+ bl CreateTask
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ movs r1, 0xA
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _081418F8
+ lsls r2, r4, 2
+ adds r2, r4
+ lsls r2, 3
+ adds r2, r3
+ movs r4, 0
+ strh r6, [r2, 0x8]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ strh r6, [r1, 0x8]
+ strh r4, [r2, 0xA]
+ movs r0, 0x1
+ strh r0, [r1, 0xA]
+ b _0814190E
+ .align 2, 0
+_081418E0: .4byte 0x02017810
+_081418E4: .4byte 0x0000ffff
+_081418E8: .4byte 0x000027f9
+_081418EC: .4byte gBattleAnimPicTable + (233 * 8)
+_081418F0: .4byte gBattleAnimPaletteTable + (233 * 8)
+_081418F4: .4byte sub_814191C
+_081418F8: .4byte gTasks
+_081418FC:
+ lsls r0, r6, 1
+ adds r0, r6
+ lsls r0, 2
+ ldr r1, _08141918
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+_0814190E:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141918: .4byte 0x02017810
+ thumb_func_end sub_8141828
+
+ thumb_func_start sub_814191C
+sub_814191C: @ 814191C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08141944
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r4, r0, r1
+ ldrh r1, [r4, 0x22]
+ movs r2, 0x22
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3B
+ bgt _08141948
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x22]
+ b _08141AB8
+ .align 2, 0
+_08141944: .4byte gTasks
+_08141948:
+ ldr r0, _08141998
+ ldrb r0, [r0, 0xA]
+ cmp r0, 0
+ beq _08141952
+ b _08141AB8
+_08141952:
+ ldrh r0, [r4, 0x1C]
+ adds r1, r0, 0x1
+ strh r1, [r4, 0x1C]
+ lsls r0, 16
+ movs r1, 0xC0
+ lsls r1, 10
+ ands r1, r0
+ cmp r1, 0
+ beq _08141966
+ b _08141AB8
+_08141966:
+ ldrb r0, [r4, 0x8]
+ mov r8, r0
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r0, r8
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0x1E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ bne _081419A0
+ ldr r0, _0814199C
+ adds r1, r5, 0
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ b _08141A02
+ .align 2, 0
+_08141998: .4byte 0x02017840
+_0814199C: .4byte gBattleAnimSpriteTemplate_84024E8
+_081419A0:
+ cmp r0, 0
+ blt _081419D4
+ cmp r0, 0x3
+ bgt _081419D4
+ ldr r0, _081419CC
+ adds r1, r5, 0
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _081419D0
+ lsls r2, r5, 4
+ adds r2, r5
+ lsls r2, 2
+ adds r2, r0
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x4
+ b _081419F4
+ .align 2, 0
+_081419CC: .4byte gSpriteTemplate_8402500
+_081419D0: .4byte gSprites
+_081419D4:
+ ldr r0, _08141A2C
+ adds r1, r5, 0
+ movs r3, 0x5
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _08141A30
+ lsls r2, r5, 4
+ adds r2, r5
+ lsls r2, 2
+ adds r2, r0
+ ldrh r3, [r2, 0x4]
+ lsls r1, r3, 22
+ lsrs r1, 22
+ adds r1, 0x5
+_081419F4:
+ ldr r4, _08141A34
+ adds r0, r4, 0
+ ands r1, r0
+ ldr r0, _08141A38
+ ands r0, r3
+ orrs r0, r1
+ strh r0, [r2, 0x4]
+_08141A02:
+ ldr r2, _08141A3C
+ lsls r1, r7, 2
+ adds r0, r1, r7
+ lsls r0, 3
+ adds r6, r0, r2
+ movs r2, 0xA
+ ldrsh r0, [r6, r2]
+ mov r9, r1
+ cmp r0, 0
+ bne _08141A44
+ ldr r1, _08141A30
+ lsls r2, r5, 4
+ adds r0, r2, r5
+ lsls r0, 2
+ adds r1, 0x1C
+ adds r0, r1
+ ldr r1, _08141A40
+ str r1, [r0]
+ adds r4, r2, 0
+ b _08141A8C
+ .align 2, 0
+_08141A2C: .4byte gSpriteTemplate_8402500
+_08141A30: .4byte gSprites
+_08141A34: .4byte 0x000003ff
+_08141A38: .4byte 0xfffffc00
+_08141A3C: .4byte gTasks
+_08141A40: .4byte sub_8141B20
+_08141A44:
+ ldr r3, _08141AC4
+ lsls r4, r5, 4
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r0, r1, r0
+ ldr r2, _08141AC8
+ str r2, [r0]
+ adds r1, r3
+ ldr r0, _08141ACC
+ strh r0, [r1, 0x24]
+ movs r0, 0x20
+ strh r0, [r1, 0x26]
+ adds r1, 0x3E
+ ldrb r0, [r1]
+ movs r2, 0x4
+ orrs r0, r2
+ strb r0, [r1]
+ movs r1, 0x1E
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _08141A8C
+ mov r0, r8
+ bl battle_side_get_owner
+ lsls r0, 24
+ movs r1, 0x3F
+ cmp r0, 0
+ bne _08141A82
+ movs r1, 0xC0
+_08141A82:
+ lsls r1, 24
+ asrs r1, 24
+ movs r0, 0x66
+ bl PlaySE12WithPanning
+_08141A8C:
+ ldr r1, _08141AC4
+ adds r0, r4, r5
+ lsls r0, 2
+ adds r0, r1
+ strh r7, [r0, 0x2E]
+ ldr r1, _08141AD0
+ mov r2, r9
+ adds r0, r2, r7
+ lsls r0, 3
+ adds r2, r0, r1
+ ldrh r1, [r2, 0x1E]
+ adds r1, 0x1
+ strh r1, [r2, 0x1E]
+ ldrh r0, [r2, 0x20]
+ adds r0, 0x1
+ strh r0, [r2, 0x20]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x5
+ bne _08141AB8
+ ldr r0, _08141AD4
+ str r0, [r2]
+_08141AB8:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141AC4: .4byte gSprites
+_08141AC8: .4byte sub_8141B74
+_08141ACC: .4byte 0x0000ffe0
+_08141AD0: .4byte gTasks
+_08141AD4: .4byte sub_8141AD8
+ thumb_func_end sub_814191C
+
+ thumb_func_start sub_8141AD8
+sub_8141AD8: @ 8141AD8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, r0, 0
+ ldr r1, _08141B18
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r2, 0x20
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _08141B14
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ bne _08141B0E
+ ldrb r1, [r1, 0x8]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08141B1C
+ adds r0, r1
+ ldrb r1, [r0, 0x1]
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+_08141B0E:
+ adds r0, r3, 0
+ bl DestroyTask
+_08141B14:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141B18: .4byte gTasks
+_08141B1C: .4byte 0x02017810
+ thumb_func_end sub_8141AD8
+
+ thumb_func_start sub_8141B20
+sub_8141B20: @ 8141B20
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x18
+ bl Sin
+ strh r0, [r4, 0x24]
+ movs r1, 0x30
+ ldrsh r0, [r4, r1]
+ movs r1, 0x18
+ bl Cos
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x30]
+ adds r0, 0xC
+ strh r0, [r4, 0x30]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xFF
+ ble _08141B6A
+ ldr r2, _08141B70
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x20]
+ subs r1, 0x1
+ strh r1, [r0, 0x20]
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_08141B6A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141B70: .4byte gTasks
+ thumb_func_end sub_8141B20
+
+ thumb_func_start sub_8141B74
+sub_8141B74: @ 8141B74
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x30]
+ movs r2, 0x30
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x3
+ bgt _08141B88
+ adds r0, r1, 0x1
+ strh r0, [r4, 0x30]
+ b _08141BCA
+_08141B88:
+ adds r2, r4, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ ldrh r1, [r4, 0x24]
+ adds r1, 0x5
+ strh r1, [r4, 0x24]
+ ldrh r0, [r4, 0x26]
+ subs r0, 0x5
+ strh r0, [r4, 0x26]
+ lsls r1, 16
+ asrs r1, 16
+ cmp r1, 0x20
+ ble _08141BCA
+ ldr r2, _08141BD0
+ movs r0, 0x2E
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r0, 0x20]
+ subs r1, 0x1
+ strh r1, [r0, 0x20]
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+_08141BCA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141BD0: .4byte gTasks
+ thumb_func_end sub_8141B74
+
+ thumb_func_start sub_8141BD4
+sub_8141BD4: @ 8141BD4
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08141BFC
+ bl LoadCompressedObjectPic
+ ldr r0, _08141C00
+ bl LoadCompressedObjectPalette
+ ldr r0, _08141C04
+ bl IndexOfSpritePaletteTag
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141BFC: .4byte gBattleAnimPicTable + (269 * 8)
+_08141C00: .4byte gBattleAnimPaletteTable + (269 * 8)
+_08141C04: .4byte 0x0000281d
+ thumb_func_end sub_8141BD4
+
+ thumb_func_start sub_8141C08
+sub_8141C08: @ 8141C08
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _08141C2C
+ adds r0, r5, 0
+ bl FreeSpriteTilesByTag
+ adds r0, r5, 0
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141C2C: .4byte 0x0000281d
+ thumb_func_end sub_8141C08
+
+ thumb_func_start sub_8141C30
+sub_8141C30: @ 8141C30
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ bl sub_80787B0
+ movs r0, 0x1E
+ strh r0, [r4, 0x2E]
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ bl sub_8077ABC
+ lsls r0, 24
+ ldr r5, _08141CA4
+ lsrs r0, 24
+ ldrh r1, [r5, 0x4]
+ adds r0, r1
+ strh r0, [r4, 0x32]
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ bl sub_8077ABC
+ lsls r0, 24
+ lsrs r0, 24
+ ldrh r5, [r5, 0x6]
+ adds r0, r5
+ strh r0, [r4, 0x36]
+ ldr r0, _08141CA8
+ strh r0, [r4, 0x38]
+ adds r0, r4, 0
+ bl sub_80786EC
+ ldr r1, _08141CAC
+ ldr r0, _08141CB0
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08141CB4
+ adds r0, r1
+ movs r1, 0x1
+ bl StartSpriteAnim
+ ldr r0, _08141CB8
+ str r0, [r4, 0x1C]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141CA4: .4byte gUnknown_03004B00
+_08141CA8: .4byte 0x0000ffe0
+_08141CAC: .4byte gUnknown_02024BE0
+_08141CB0: .4byte gUnknown_0202F7C8
+_08141CB4: .4byte gSprites
+_08141CB8: .4byte sub_8141CBC
+ thumb_func_end sub_8141C30
+
+ thumb_func_start sub_8141CBC
+sub_8141CBC: @ 8141CBC
+ push {lr}
+ adds r3, r0, 0
+ ldr r2, _08141CE4
+ ldr r1, _08141CE8
+ ldr r0, _08141CEC
+ ldrb r0, [r0]
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ adds r0, 0x2B
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08141CE0
+ ldr r0, _08141CF0
+ str r0, [r3, 0x1C]
+_08141CE0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141CE4: .4byte gSprites
+_08141CE8: .4byte gUnknown_02024BE0
+_08141CEC: .4byte gUnknown_0202F7C8
+_08141CF0: .4byte sub_8141CF4
+ thumb_func_end sub_8141CBC
+
+ thumb_func_start sub_8141CF4
+sub_8141CF4: @ 8141CF4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8078718
+ lsls r0, 24
+ cmp r0, 0
+ beq _08141D16
+ movs r0, 0
+ 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, _08141D1C
+ str r0, [r4, 0x1C]
+_08141D16:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141D1C: .4byte sub_8141D20
+ thumb_func_end sub_8141CF4
+
+ thumb_func_start sub_8141D20
+sub_8141D20: @ 8141D20
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r5, _08141D70
+ ldr r3, _08141D74
+ ldr r2, _08141D78
+ ldrb r0, [r2]
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3F
+ ldrb r0, [r0]
+ lsls r0, 27
+ cmp r0, 0
+ bge _08141D68
+ ldrh r0, [r4, 0x2E]
+ adds r0, 0x1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ ble _08141D68
+ ldrb r0, [r2]
+ adds r0, r3
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0
+ bl StartSpriteAnim
+ adds r0, r4, 0
+ bl move_anim_8072740
+_08141D68:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141D70: .4byte gSprites
+_08141D74: .4byte gUnknown_02024BE0
+_08141D78: .4byte gUnknown_0202F7C8
+ thumb_func_end sub_8141D20
+
+ thumb_func_start sub_8141D7C
+sub_8141D7C: @ 8141D7C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ bl battle_get_side_with_given_state
+ ldr r1, _08141DA4
+ strb r0, [r1]
+ movs r0, 0x1
+ bl battle_get_side_with_given_state
+ ldr r1, _08141DA8
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl move_anim_task_del
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141DA4: .4byte gUnknown_0202F7C8
+_08141DA8: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_8141D7C
+
+ thumb_func_start sub_8141DAC
+sub_8141DAC: @ 8141DAC
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _08141DC0
+ ldrh r1, [r0]
+ cmp r1, 0x53
+ bne _08141DC8
+ ldr r1, _08141DC4
+ movs r0, 0x1
+ b _08141E00
+ .align 2, 0
+_08141DC0: .4byte 0x02017840
+_08141DC4: .4byte gUnknown_03004B00
+_08141DC8:
+ cmp r1, 0xFA
+ bne _08141DD8
+ ldr r1, _08141DD4
+ movs r0, 0x2
+ b _08141E00
+ .align 2, 0
+_08141DD4: .4byte gUnknown_03004B00
+_08141DD8:
+ cmp r1, 0x80
+ bne _08141DE8
+ ldr r1, _08141DE4
+ movs r0, 0x3
+ b _08141E00
+ .align 2, 0
+_08141DE4: .4byte gUnknown_03004B00
+_08141DE8:
+ movs r0, 0xA4
+ lsls r0, 1
+ cmp r1, r0
+ bne _08141DFC
+ ldr r1, _08141DF8
+ movs r0, 0x4
+ b _08141E00
+ .align 2, 0
+_08141DF8: .4byte gUnknown_03004B00
+_08141DFC:
+ ldr r1, _08141E0C
+ movs r0, 0
+_08141E00:
+ strh r0, [r1]
+ adds r0, r2, 0
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141E0C: .4byte gUnknown_03004B00
+ thumb_func_end sub_8141DAC
+
+ thumb_func_start sub_8141E10
+sub_8141E10: @ 8141E10
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08141E2C
+ ldr r1, _08141E30
+ ldrh r1, [r1]
+ strb r1, [r2]
+ ldr r2, _08141E34
+ lsrs r1, 8
+ strb r1, [r2]
+ bl move_anim_task_del
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141E2C: .4byte gUnknown_0202F7C8
+_08141E30: .4byte 0x02017840
+_08141E34: .4byte gUnknown_0202F7C9
+ thumb_func_end sub_8141E10
+
+ thumb_func_start sub_8141E38
+sub_8141E38: @ 8141E38
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8141E38
+
+ thumb_func_start sub_8141E4C
+sub_8141E4C: @ 8141E4C
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8141E4C
+
+ thumb_func_start sub_8141E64
+sub_8141E64: @ 8141E64
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _08141E80
+ ldr r1, _08141E84
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bhi _08141EA0
+ lsls r0, 2
+ ldr r1, _08141E88
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08141E80: .4byte gMain
+_08141E84: .4byte 0x0000043c
+_08141E88: .4byte _08141E8C
+ .align 2, 0
+_08141E8C:
+ .4byte _08141EA0
+ .4byte _08141EC0
+ .4byte _08141EC6
+ .4byte _08141F1C
+ .4byte _08141F58
+_08141EA0:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_81433E0
+ ldr r0, _08141EB8
+ ldr r2, _08141EBC
+ adds r0, r2
+ movs r1, 0x1
+ strb r1, [r0]
+ b _08141F84
+ .align 2, 0
+_08141EB8: .4byte gMain
+_08141EBC: .4byte 0x0000043c
+_08141EC0:
+ bl sub_8143570
+ b _08141F38
+_08141EC6:
+ 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, _08141F04
+ bl SetVBlankCallback
+ ldr r3, _08141F08
+ ldrh r2, [r3]
+ strh r4, [r3]
+ ldr r4, _08141F0C
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _08141F10
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08141F14
+ ldr r2, _08141F18
+ adds r1, r2
+ b _08141F3E
+ .align 2, 0
+_08141F04: .4byte sub_8141E38
+_08141F08: .4byte 0x04000208
+_08141F0C: .4byte 0x04000200
+_08141F10: .4byte REG_DISPSTAT
+_08141F14: .4byte gMain
+_08141F18: .4byte 0x0000043c
+_08141F1C:
+ ldr r1, _08141F48
+ ldr r2, _08141F4C
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r2, 0xE2
+ lsls r2, 3
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0
+ strh r0, [r1]
+ bl sub_81435B8
+_08141F38:
+ ldr r1, _08141F50
+ ldr r0, _08141F54
+ adds r1, r0
+_08141F3E:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08141F84
+ .align 2, 0
+_08141F48: .4byte REG_BLDCNT
+_08141F4C: .4byte 0x00003f42
+_08141F50: .4byte gMain
+_08141F54: .4byte 0x0000043c
+_08141F58:
+ bl UpdatePaletteFade
+ ldr r0, _08141F7C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08141F84
+ ldr r0, _08141F80
+ bl SetMainCallback2
+ movs r0, 0xDA
+ lsls r0, 1
+ bl PlayBGM
+ movs r0, 0
+ b _08141F86
+ .align 2, 0
+_08141F7C: .4byte gPaletteFade
+_08141F80: .4byte sub_8141E4C
+_08141F84:
+ movs r0, 0x1
+_08141F86:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8141E64
+
+ thumb_func_start sub_8141F90
+sub_8141F90: @ 8141F90
+ push {r4,lr}
+ bl sub_8141E64
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08141FB6
+ ldr r0, _08141FBC
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08141FC0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+_08141FB6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141FBC: .4byte sub_8141FF8
+_08141FC0: .4byte gTasks
+ thumb_func_end sub_8141F90
+
+ thumb_func_start sub_8141FC4
+sub_8141FC4: @ 8141FC4
+ push {lr}
+ bl sub_8141E64
+ lsls r0, 24
+ cmp r0, 0
+ bne _08141FEA
+ ldr r0, _08141FF0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08141FF4
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0x1
+ strh r0, [r1, 0x8]
+_08141FEA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08141FF0: .4byte sub_8141FF8
+_08141FF4: .4byte gTasks
+ thumb_func_end sub_8141FC4
+
+ thumb_func_start sub_8141FF8
+sub_8141FF8: @ 8141FF8
+ 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 r8, r0
+ ldr r0, _081420C8
+ mov r9, r0
+ ldr r1, _081420CC
+ mov r2, r8
+ lsls r0, r2, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0xC]
+ movs r7, 0
+ ldr r4, _081420D0
+ mov r10, r4
+_08142024:
+ movs r0, 0x64
+ adds r1, r7, 0
+ muls r1, r0
+ ldr r0, _081420D4
+ adds r6, r1, r0
+ adds r0, r6, 0
+ movs r1, 0xB
+ bl GetMonData
+ adds r3, r0, 0
+ cmp r3, 0
+ beq _081420DC
+ adds r0, r6, 0
+ movs r1, 0x41
+ bl GetMonData
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 2
+ mov r1, r9
+ adds r5, r1, r4
+ ldr r2, _081420D8
+ adds r1, r2, 0
+ ands r0, r1
+ ldrh r1, [r5, 0x8]
+ mov r2, r10
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r5, 0x8]
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl GetMonData
+ str r0, [r5]
+ adds r0, r6, 0
+ movs r1, 0
+ bl GetMonData
+ mov r1, r9
+ adds r1, 0x4
+ adds r1, r4
+ str r0, [r1]
+ adds r0, r6, 0
+ movs r1, 0x38
+ bl GetMonData
+ lsls r0, 1
+ ldrb r2, [r5, 0x9]
+ movs r1, 0x1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r5, 0x9]
+ adds r0, r6, 0
+ movs r1, 0x2
+ mov r2, sp
+ bl GetMonData
+ movs r2, 0
+ mov r6, r8
+ lsls r5, r6, 2
+ mov r3, r9
+ adds r3, 0xA
+_081420A0:
+ adds r1, r2, r4
+ adds r1, r3, r1
+ mov r6, sp
+ adds r0, r6, r2
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x9
+ bls _081420A0
+ ldr r0, _081420CC
+ mov r2, r8
+ adds r1, r5, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ adds r0, 0x1
+ strh r0, [r1, 0xC]
+ b _08142108
+ .align 2, 0
+_081420C8: .4byte 0x0201c000
+_081420CC: .4byte gTasks
+_081420D0: .4byte 0xfffffe00
+_081420D4: .4byte gPlayerParty
+_081420D8: .4byte 0x000001ff
+_081420DC:
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 2
+ mov r4, r9
+ adds r2, r4, r1
+ ldrh r0, [r2, 0x8]
+ mov r6, r10
+ ands r0, r6
+ strh r0, [r2, 0x8]
+ str r3, [r2]
+ mov r0, r9
+ adds r0, 0x4
+ adds r0, r1
+ str r3, [r0]
+ ldrb r1, [r2, 0x9]
+ movs r0, 0x1
+ ands r0, r1
+ strb r0, [r2, 0x9]
+ movs r0, 0xFF
+ strb r0, [r2, 0xA]
+ mov r0, r8
+ lsls r5, r0, 2
+_08142108:
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x5
+ bls _08142024
+ ldr r0, _08142158
+ movs r3, 0
+ str r3, [r0]
+ ldr r4, _0814215C
+ mov r2, r8
+ adds r1, r5, r2
+ lsls r1, 3
+ adds r2, r1, r4
+ strh r3, [r2, 0xA]
+ movs r0, 0xFF
+ strh r0, [r2, 0x10]
+ movs r7, 0
+ adds r3, r4, 0
+ adds r3, 0x8
+ movs r2, 0xFF
+_08142130:
+ adds r0, r7, 0x5
+ lsls r0, 1
+ adds r0, r1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r7, 0x1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ cmp r7, 0x5
+ bls _08142130
+ mov r6, r8
+ adds r0, r5, r6
+ lsls r0, 3
+ adds r1, r0, r4
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _08142164
+ ldr r0, _08142160
+ b _08142166
+ .align 2, 0
+_08142158: .4byte gUnknown_0203931C
+_0814215C: .4byte gTasks
+_08142160: .4byte sub_81422E8
+_08142164:
+ ldr r0, _08142178
+_08142166:
+ str 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
+_08142178: .4byte sub_814217C
+ thumb_func_end sub_8141FF8
+
+ thumb_func_start sub_814217C
+sub_814217C: @ 814217C
+ 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
+ ldr r0, _081421C4
+ mov r9, r0
+ movs r7, 0x80
+ lsls r7, 6
+ add r7, r9
+ ldr r0, _081421C8
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081421D4
+ movs r4, 0
+ mov r0, r8
+ lsls r0, 2
+ mov r10, r0
+ ldr r5, _081421CC
+ add r5, r9
+ movs r3, 0xF0
+ lsls r3, 9
+ movs r2, 0
+ ldr r1, _081421D0
+_081421B2:
+ adds r0, r4, r3
+ adds r0, r5
+ strb r2, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r1
+ bls _081421B2
+ b _081421E0
+ .align 2, 0
+_081421C4: .4byte 0x0201c000
+_081421C8: .4byte gUnknown_02039324
+_081421CC: .4byte 0xfffe4000
+_081421D0: .4byte 0x00001fff
+_081421D4:
+ movs r0, 0x3
+ bl sub_8125EC8
+ mov r0, r8
+ lsls r0, 2
+ mov r10, r0
+_081421E0:
+ movs r4, 0
+ ldrh r1, [r7, 0x8]
+ ldr r2, _081421E8
+ b _081421FA
+ .align 2, 0
+_081421E8: .4byte 0x000001ff
+_081421EC:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r7, 0x78
+ cmp r4, 0x31
+ bhi _08142206
+ ldrh r1, [r7, 0x8]
+_081421FA:
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _081421EC
+ cmp r4, 0x31
+ bls _08142228
+_08142206:
+ ldr r5, _08142264
+ adds r6, r5, 0
+ adds r5, 0x78
+ movs r4, 0
+ subs r7, 0x78
+_08142210:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r2, 0x78
+ bl memcpy
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r6, 0x78
+ adds r5, 0x78
+ cmp r4, 0x30
+ bls _08142210
+_08142228:
+ adds r0, r7, 0
+ mov r1, r9
+ movs r2, 0x78
+ bl memcpy
+ movs r0, 0x2
+ movs r1, 0xE
+ movs r2, 0x1B
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08142268
+ movs r1, 0x3
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r1, _0814226C
+ mov r0, r10
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08142270
+ 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
+_08142264: .4byte 0x0201e000
+_08142268: .4byte gMenuText_HOFSaving
+_0814226C: .4byte gTasks
+_08142270: .4byte sub_8142274
+ thumb_func_end sub_814217C
+
+ thumb_func_start sub_8142274
+sub_8142274: @ 8142274
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _081422A8
+ ldr r0, _081422AC
+ str r0, [r1]
+ movs r0, 0x3
+ bl sub_8125D44
+ movs r0, 0x37
+ bl PlaySE
+ ldr r1, _081422B0
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _081422B4
+ str r1, [r0]
+ movs r1, 0x20
+ strh r1, [r0, 0xE]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081422A8: .4byte gUnknown_03005EBC
+_081422AC: .4byte sub_8141FC4
+_081422B0: .4byte gTasks
+_081422B4: .4byte sub_81422B8
+ thumb_func_end sub_8142274
+
+ thumb_func_start sub_81422B8
+sub_81422B8: @ 81422B8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _081422D8
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrh r2, [r1, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _081422DC
+ subs r0, r2, 0x1
+ strh r0, [r1, 0xE]
+ b _081422E0
+ .align 2, 0
+_081422D8: .4byte gTasks
+_081422DC:
+ ldr r0, _081422E4
+ str r0, [r1]
+_081422E0:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081422E4: .4byte sub_81422E8
+ thumb_func_end sub_81422B8
+
+ thumb_func_start sub_81422E8
+sub_81422E8: @ 81422E8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _08142314
+ adds r0, r5, 0
+ bl SetUpWindowConfig
+ adds r0, r5, 0
+ bl InitMenuWindow
+ ldr r1, _08142318
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0814231C
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142314: .4byte gWindowConfig_81E7198
+_08142318: .4byte gTasks
+_0814231C: .4byte sub_8142320
+ thumb_func_end sub_81422E8
+
+ thumb_func_start sub_8142320
+sub_8142320: @ 8142320
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r2, _08142350
+ ldr r0, _08142354
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r0
+ ldrh r6, [r1, 0xA]
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 2
+ adds r4, r0, r2
+ movs r2, 0xC
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x3
+ ble _0814235C
+ ldr r1, _08142358
+ b _0814235E
+ .align 2, 0
+_08142350: .4byte 0x0201c000
+_08142354: .4byte gTasks
+_08142358: .4byte gUnknown_0840B534
+_0814235C:
+ ldr r1, _081423F0
+_0814235E:
+ lsls r2, r6, 3
+ adds r0, r2, r1
+ ldrh r5, [r0]
+ adds r0, r1, 0x2
+ adds r0, r2, r0
+ ldrh r3, [r0]
+ adds r0, r1, 0x4
+ adds r0, r2, r0
+ ldrh r0, [r0]
+ mov r9, r0
+ adds r1, 0x6
+ adds r2, r1
+ ldrh r2, [r2]
+ mov r8, r2
+ ldrh r0, [r4, 0x8]
+ lsls r0, 23
+ lsrs r0, 23
+ lsls r1, r5, 16
+ asrs r1, 16
+ lsls r2, r3, 16
+ asrs r2, 16
+ ldr r3, [r4]
+ str r3, [sp]
+ ldr r3, [r4, 0x4]
+ str r3, [sp, 0x4]
+ adds r3, r6, 0
+ bl sub_81436BC
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _081423F4
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r2, r1, r3
+ movs r4, 0
+ mov r5, r9
+ strh r5, [r2, 0x30]
+ mov r5, r8
+ strh r5, [r2, 0x32]
+ strh r4, [r2, 0x2E]
+ adds r3, 0x1C
+ adds r1, r3
+ ldr r2, _081423F8
+ str r2, [r1]
+ ldr r5, _081423FC
+ adds r1, r6, 0x5
+ lsls r1, 1
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r1, r4
+ adds r2, r5, 0
+ adds r2, 0x8
+ adds r1, r2
+ strh r0, [r1]
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ adds r4, r5
+ ldr r0, _08142400
+ str r0, [r4]
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081423F0: .4byte gUnknown_0840B564
+_081423F4: .4byte gSprites
+_081423F8: .4byte sub_81435DC
+_081423FC: .4byte gTasks
+_08142400: .4byte sub_8142404
+ thumb_func_end sub_8142320
+
+ thumb_func_start sub_8142404
+sub_8142404: @ 8142404
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08142470
+ ldr r3, _08142474
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r5, r2, r3
+ ldrh r1, [r5, 0xA]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r6, r0, r4
+ ldr r4, _08142478
+ adds r1, 0x5
+ lsls r1, 1
+ adds r1, r2
+ adds r3, 0x8
+ adds r1, r3
+ movs r0, 0
+ ldrsh r1, [r1, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ movs r1, 0x2E
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0814246A
+ ldrh r2, [r6, 0x8]
+ ldr r0, _0814247C
+ ands r0, r2
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _08142458
+ lsls r0, r2, 23
+ lsrs r0, 23
+ movs r1, 0
+ bl PlayCry1
+_08142458:
+ adds r0, r6, 0
+ movs r1, 0
+ movs r2, 0xE
+ bl sub_8143088
+ movs r0, 0x78
+ strh r0, [r5, 0xE]
+ ldr r0, _08142480
+ str r0, [r5]
+_0814246A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142470: .4byte 0x0201c000
+_08142474: .4byte gTasks
+_08142478: .4byte gSprites
+_0814247C: .4byte 0x000001ff
+_08142480: .4byte sub_8142484
+ thumb_func_end sub_8142404
+
+ thumb_func_start sub_8142484
+sub_8142484: @ 8142484
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r2, _081424BC
+ ldr r1, _081424C0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r6, r0, 3
+ adds r4, r6, r1
+ ldrh r3, [r4, 0xA]
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 2
+ adds r0, r2
+ mov r9, r0
+ ldrh r2, [r4, 0xE]
+ movs r7, 0xE
+ ldrsh r0, [r4, r7]
+ mov r12, r1
+ cmp r0, 0
+ beq _081424C4
+ subs r0, r2, 0x1
+ strh r0, [r4, 0xE]
+ b _0814255C
+ .align 2, 0
+_081424BC: .4byte 0x0201c000
+_081424C0: .4byte gTasks
+_081424C4:
+ ldr r2, _0814253C
+ ldr r0, _08142540
+ mov r8, r0
+ adds r0, r3, 0x5
+ lsls r0, 1
+ adds r0, r6
+ mov r1, r12
+ adds r1, 0x8
+ adds r6, r0, r1
+ movs r7, 0
+ ldrsh r1, [r6, r7]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ ldrb r0, [r0, 0x5]
+ lsrs r0, 4
+ movs r1, 0x80
+ lsls r1, 9
+ lsls r1, r0
+ ldr r3, [r2]
+ orrs r3, r1
+ str r3, [r2]
+ ldrh r2, [r4, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bgt _08142550
+ mov r7, r9
+ ldrh r1, [r7, 0x1C]
+ ldr r0, _08142544
+ ands r0, r1
+ cmp r0, 0
+ beq _08142550
+ adds r0, r2, 0x1
+ strh r0, [r4, 0xA]
+ ldr r0, _08142548
+ str r0, [sp]
+ adds r0, r3, 0
+ movs r1, 0
+ movs r2, 0xC
+ movs r3, 0xC
+ bl BeginNormalPaletteFade
+ movs r0, 0
+ ldrsh r1, [r6, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r8
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0, 0x5]
+ ldr r0, _0814254C
+ str r0, [r4]
+ b _0814255C
+ .align 2, 0
+_0814253C: .4byte gUnknown_0203931C
+_08142540: .4byte gSprites
+_08142544: .4byte 0x000001ff
+_08142548: .4byte 0x0000735f
+_0814254C: .4byte sub_8142320
+_08142550:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ add r0, r12
+ ldr r1, _0814256C
+ str r1, [r0]
+_0814255C:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814256C: .4byte sub_8142570
+ thumb_func_end sub_8142484
+
+ thumb_func_start sub_8142570
+sub_8142570: @ 8142570
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08142604
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ movs r3, 0
+ lsls r1, r4, 2
+ adds r0, r1, r4
+ lsls r5, r0, 3
+ ldr r0, _08142608
+ mov r12, r0
+ mov r8, r1
+ ldr r6, _0814260C
+ movs r7, 0xD
+ negs r7, r7
+_0814259E:
+ adds r0, r3, 0x5
+ lsls r0, 1
+ adds r0, r5
+ mov r2, r12
+ adds r1, r0, r2
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0xFF
+ beq _081425C0
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r2, [r1, 0x5]
+ adds r0, r7, 0
+ ands r0, r2
+ strb r0, [r1, 0x5]
+_081425C0:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x5
+ bls _0814259E
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ movs r1, 0xF
+ bl sub_8143068
+ movs r0, 0x69
+ bl PlaySE
+ ldr r1, _08142610
+ mov r2, r8
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xC8
+ lsls r1, 1
+ strh r1, [r0, 0xE]
+ ldr r1, _08142614
+ str r1, [r0]
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142604: .4byte 0xffff0000
+_08142608: .4byte gUnknown_03004B28
+_0814260C: .4byte gSprites
+_08142610: .4byte gTasks
+_08142614: .4byte sub_8142618
+ thumb_func_end sub_8142570
+
+ thumb_func_start sub_8142618
+sub_8142618: @ 8142618
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r7, _08142658
+ lsls r4, r6, 2
+ adds r0, r4, r6
+ lsls r5, r0, 3
+ adds r1, r5, r7
+ ldrh r2, [r1, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _0814265C
+ subs r2, 0x1
+ strh r2, [r1, 0xE]
+ movs r0, 0x3
+ ands r0, r2
+ cmp r0, 0
+ bne _081426D2
+ lsls r0, r2, 16
+ asrs r0, 16
+ cmp r0, 0x6E
+ ble _081426D2
+ bl sub_81438C4
+ b _081426D2
+ .align 2, 0
+_08142658: .4byte gTasks
+_0814265C:
+ movs r3, 0
+ mov r9, r4
+ ldr r0, _081426E4
+ mov r10, r0
+ adds r4, r5, 0
+ adds r7, 0x8
+ mov r8, r7
+ ldr r7, _081426E8
+ movs r1, 0xD
+ negs r1, r1
+ mov r12, r1
+ movs r5, 0x4
+_08142674:
+ adds r0, r3, 0x5
+ lsls r0, 1
+ adds r0, r4
+ mov r2, r8
+ adds r1, r0, r2
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0xFF
+ beq _08142698
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r7
+ ldrb r2, [r1, 0x5]
+ mov r0, r12
+ ands r0, r2
+ orrs r0, r5
+ strb r0, [r1, 0x5]
+_08142698:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x5
+ bls _08142674
+ mov r3, r10
+ ldr r0, [r3]
+ ldr r1, _081426EC
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0xC
+ movs r3, 0xC
+ bl BeginNormalPaletteFade
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _081426F0
+ mov r2, r9
+ adds r0, r2, r6
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x7
+ strh r1, [r0, 0xE]
+ ldr r1, _081426F4
+ str r1, [r0]
+_081426D2:
+ 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
+_081426E4: .4byte gUnknown_0203931C
+_081426E8: .4byte gSprites
+_081426EC: .4byte 0x0000735f
+_081426F0: .4byte gTasks
+_081426F4: .4byte sub_81426F8
+ thumb_func_end sub_8142618
+
+ thumb_func_start sub_81426F8
+sub_81426F8: @ 81426F8
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08142718
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r2, r1, r2
+ ldrh r1, [r2, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r2, r3]
+ cmp r0, 0xF
+ ble _08142720
+ ldr r0, _0814271C
+ str r0, [r2]
+ b _0814272E
+ .align 2, 0
+_08142718: .4byte gTasks
+_0814271C: .4byte sub_8142738
+_08142720:
+ adds r0, r1, 0x1
+ strh r0, [r2, 0xE]
+ ldr r1, _08142734
+ movs r3, 0xE
+ ldrsh r0, [r2, r3]
+ lsls r0, 8
+ strh r0, [r1]
+_0814272E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142734: .4byte REG_BLDALPHA
+ thumb_func_end sub_81426F8
+
+ thumb_func_start sub_8142738
+sub_8142738: @ 8142738
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xCA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r4, _08142784
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ ldr r0, _08142788
+ ldrb r0, [r0, 0x8]
+ movs r1, 0x78
+ movs r2, 0x48
+ movs r3, 0x6
+ bl sub_81437A4
+ ldr r2, _0814278C
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r2
+ strh r0, [r1, 0x10]
+ movs r0, 0x78
+ strh r0, [r1, 0xE]
+ ldr r0, _08142790
+ str r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142784: .4byte gWindowConfig_81E71B4
+_08142788: .4byte gSaveBlock2
+_0814278C: .4byte gTasks
+_08142790: .4byte sub_8142794
+ thumb_func_end sub_8142738
+
+ thumb_func_start sub_8142794
+sub_8142794: @ 8142794
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _081427B4
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _081427B8
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ b _0814280A
+ .align 2, 0
+_081427B4: .4byte gTasks
+_081427B8:
+ ldr r2, _081427D8
+ movs r3, 0x10
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r2
+ ldrh r2, [r1, 0x20]
+ movs r3, 0x20
+ ldrsh r0, [r1, r3]
+ cmp r0, 0xA0
+ beq _081427DC
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x20]
+ b _0814280A
+ .align 2, 0
+_081427D8: .4byte gSprites
+_081427DC:
+ movs r0, 0x1
+ movs r1, 0x2
+ movs r2, 0xF
+ movs r3, 0x9
+ bl MenuDrawTextWindow
+ movs r0, 0x1
+ movs r1, 0x2
+ bl sub_8143300
+ movs r0, 0x2
+ movs r1, 0xE
+ movs r2, 0x1B
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08142810
+ movs r1, 0x4
+ movs r2, 0xF
+ bl MenuPrint
+ ldr r0, _08142814
+ str r0, [r4]
+_0814280A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142810: .4byte gMenuText_HOFCongratulations
+_08142814: .4byte sub_8142818
+ thumb_func_end sub_8142794
+
+ thumb_func_start sub_8142818
+sub_8142818: @ 8142818
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08142844
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0814283E
+ movs r0, 0x4
+ bl FadeOutBGM
+ ldr r0, _08142848
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0814284C
+ str r0, [r1]
+_0814283E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142844: .4byte gMain
+_08142848: .4byte gTasks
+_0814284C: .4byte sub_8142850
+ thumb_func_end sub_8142818
+
+ thumb_func_start sub_8142850
+sub_8142850: @ 8142850
+ push {r4,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08142890
+ ldr r1, _08142894
+ movs r2, 0x80
+ lsls r2, 2
+ bl CpuSet
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r1, 0x8
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _08142898
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0814289C
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142890: .4byte gPlttBufferFaded
+_08142894: .4byte gPlttBufferUnfaded
+_08142898: .4byte gTasks
+_0814289C: .4byte sub_81428A0
+ thumb_func_end sub_8142850
+
+ thumb_func_start sub_81428A0
+sub_81428A0: @ 81428A0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _081428C4
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081428BE
+ adds r0, r2, 0
+ bl DestroyTask
+ ldr r0, _081428C8
+ bl SetMainCallback2
+_081428BE:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081428C4: .4byte gPaletteFade
+_081428C8: .4byte sub_81439D0
+ thumb_func_end sub_81428A0
+
+ thumb_func_start sub_81428CC
+sub_81428CC: @ 81428CC
+ push {r4,r5,lr}
+ ldr r0, _081428E4
+ ldr r1, _081428E8
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bhi _08142908
+ lsls r0, 2
+ ldr r1, _081428EC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081428E4: .4byte gMain
+_081428E8: .4byte 0x0000043c
+_081428EC: .4byte _081428F0
+ .align 2, 0
+_081428F0:
+ .4byte _08142908
+ .4byte _08142928
+ .4byte _0814293C
+ .4byte _08142980
+ .4byte _081429C0
+ .4byte _081429EC
+_08142908:
+ movs r0, 0
+ bl SetVBlankCallback
+ bl sub_81433E0
+ ldr r0, _08142920
+ ldr r2, _08142924
+ adds r0, r2
+ movs r1, 0x1
+ strb r1, [r0]
+ b _08142A12
+ .align 2, 0
+_08142920: .4byte gMain
+_08142924: .4byte 0x0000043c
+_08142928:
+ bl sub_8143570
+ ldr r1, _08142934
+ ldr r3, _08142938
+ adds r1, r3
+ b _081429DC
+ .align 2, 0
+_08142934: .4byte gMain
+_08142938: .4byte 0x0000043c
+_0814293C:
+ ldr r0, _08142968
+ bl SetVBlankCallback
+ ldr r3, _0814296C
+ ldrh r2, [r3]
+ movs r0, 0
+ strh r0, [r3]
+ ldr r4, _08142970
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _08142974
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r1, _08142978
+ ldr r4, _0814297C
+ adds r1, r4
+ b _081429DC
+ .align 2, 0
+_08142968: .4byte sub_8141E38
+_0814296C: .4byte 0x04000208
+_08142970: .4byte 0x04000200
+_08142974: .4byte REG_DISPSTAT
+_08142978: .4byte gMain
+_0814297C: .4byte 0x0000043c
+_08142980:
+ ldr r0, _081429AC
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl sub_81435B8
+ ldr r0, _081429B0
+ adds r2, r0, 0
+ ldr r1, _081429B4
+ ldm r1!, {r3-r5}
+ stm r2!, {r3-r5}
+ ldm r1!, {r3,r5}
+ stm r2!, {r3,r5}
+ bl sub_80C5CD4
+ ldr r1, _081429B8
+ ldr r4, _081429BC
+ adds r1, r4
+ b _081429DC
+ .align 2, 0
+_081429AC: .4byte REG_BLDCNT
+_081429B0: .4byte 0x0201c000
+_081429B4: .4byte gUnknown_0840B57C
+_081429B8: .4byte gMain
+_081429BC: .4byte 0x0000043c
+_081429C0:
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ bl sub_80C5DCC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08142A12
+ ldr r1, _081429E4
+ ldr r5, _081429E8
+ adds r1, r5
+_081429DC:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08142A12
+ .align 2, 0
+_081429E4: .4byte gMain
+_081429E8: .4byte 0x0000043c
+_081429EC:
+ ldr r1, _08142A18
+ ldr r2, _08142A1C
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r3, 0xE2
+ lsls r3, 3
+ adds r0, r3, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _08142A20
+ movs r1, 0
+ bl CreateTask
+ ldr r0, _08142A24
+ bl SetMainCallback2
+_08142A12:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142A18: .4byte REG_BLDCNT
+_08142A1C: .4byte 0x00003f42
+_08142A20: .4byte sub_8142A28
+_08142A24: .4byte sub_8141E4C
+ thumb_func_end sub_81428CC
+
+ thumb_func_start sub_8142A28
+sub_8142A28: @ 8142A28
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r0, 0x3
+ bl sub_8125EC8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08142A54
+ ldr r0, _08142A4C
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08142A50
+ str r0, [r1]
+ b _08142AEA
+ .align 2, 0
+_08142A4C: .4byte gTasks
+_08142A50: .4byte sub_8142FEC
+_08142A54:
+ ldr r2, _08142A8C
+ movs r3, 0
+ ldrh r1, [r2, 0x8]
+ ldr r4, _08142A90
+ adds r0, r4, 0
+ ands r0, r1
+ ldr r7, _08142A94
+ lsls r6, r5, 2
+ cmp r0, 0
+ beq _08142A7E
+_08142A68:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ adds r2, 0x78
+ cmp r3, 0x31
+ bhi _08142A98
+ ldrh r1, [r2, 0x8]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08142A68
+_08142A7E:
+ cmp r3, 0x31
+ bhi _08142A98
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r0, r7
+ subs r1, r3, 0x1
+ b _08142AA0
+ .align 2, 0
+_08142A8C: .4byte 0x0201e000
+_08142A90: .4byte 0x000001ff
+_08142A94: .4byte gTasks
+_08142A98:
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r0, r7
+ movs r1, 0x31
+_08142AA0:
+ strh r1, [r0, 0x8]
+ movs r0, 0xA
+ bl sub_8053108
+ ldr r2, _08142AF0
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r2
+ strh r0, [r1, 0xA]
+ movs r3, 0
+ ldr r7, _08142AF4
+ ldr r4, _08142AF8
+_08142AB8:
+ lsls r1, r3, 1
+ adds r2, r1, r7
+ adds r0, r3, 0x3
+ strh r0, [r2]
+ adds r1, r4
+ adds r0, 0x11
+ strh r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x10
+ bls _08142AB8
+ ldr r4, _08142AFC
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ ldr r1, _08142AF0
+ adds r0, r6, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08142B00
+ str r1, [r0]
+_08142AEA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142AF0: .4byte gTasks
+_08142AF4: .4byte 0x0600381a
+_08142AF8: .4byte 0x0600385a
+_08142AFC: .4byte gWindowConfig_81E7198
+_08142B00: .4byte sub_8142B04
+ thumb_func_end sub_8142A28
+
+ thumb_func_start sub_8142B04
+sub_8142B04: @ 8142B04
+ 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
+ mov r8, r0
+ ldr r3, _08142BB8
+ movs r5, 0
+ ldr r1, _08142BBC
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r6, r1, 0
+ ldr r2, _08142BC0
+ cmp r5, r0
+ bge _08142B3E
+ adds r1, r0, 0
+_08142B32:
+ adds r3, 0x78
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, r1
+ blt _08142B32
+_08142B3E:
+ adds r4, r3, 0
+ movs r0, 0
+ str r0, [r2]
+ mov r5, r8
+ lsls r2, r5, 2
+ adds r1, r2, r5
+ lsls r1, 3
+ adds r1, r6
+ strh r0, [r1, 0xC]
+ strh r0, [r1, 0x10]
+ movs r5, 0
+ str r2, [sp, 0xC]
+ ldr r6, _08142BC4
+ adds r2, r1, 0
+_08142B5A:
+ ldrh r1, [r4, 0x8]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08142B6A
+ ldrh r0, [r2, 0x10]
+ adds r0, 0x1
+ strh r0, [r2, 0x10]
+_08142B6A:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r4, 0x14
+ cmp r5, 0x5
+ bls _08142B5A
+ adds r4, r3, 0
+ movs r5, 0
+ ldr r1, _08142BBC
+ ldr r0, [sp, 0xC]
+ add r0, r8
+ lsls r7, r0, 3
+ adds r6, r7, r1
+ str r6, [sp, 0x8]
+ adds r1, 0x8
+ mov r9, r1
+ ldr r0, _08142BC8
+ mov r10, r0
+_08142B8E:
+ ldrh r1, [r4, 0x8]
+ ldr r2, _08142BC4
+ adds r0, r2, 0
+ ands r0, r1
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _08142C30
+ ldr r1, [sp, 0x8]
+ movs r2, 0x10
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x3
+ ble _08142BD4
+ lsls r1, r5, 3
+ ldr r0, _08142BCC
+ adds r0, 0x4
+ adds r0, r1, r0
+ ldrh r3, [r0]
+ ldr r0, _08142BD0
+ adds r1, r0
+ b _08142BE2
+ .align 2, 0
+_08142BB8: .4byte 0x0201e000
+_08142BBC: .4byte gTasks
+_08142BC0: .4byte gUnknown_0203931C
+_08142BC4: .4byte 0x000001ff
+_08142BC8: .4byte gUnknown_0840B564
+_08142BCC: .4byte gUnknown_0840B534
+_08142BD0: .4byte gUnknown_0840B53A
+_08142BD4:
+ lsls r1, r5, 3
+ mov r0, r10
+ adds r0, 0x4
+ adds r0, r1, r0
+ ldrh r3, [r0]
+ ldr r2, _08142C28
+ adds r1, r2
+_08142BE2:
+ ldrh r2, [r1]
+ lsls r0, r6, 23
+ lsrs r0, 23
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r2, 16
+ asrs r2, 16
+ ldr r3, [r4]
+ str r3, [sp]
+ ldr r3, [r4, 0x4]
+ str r3, [sp, 0x4]
+ adds r3, r5, 0
+ bl sub_81436BC
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r2, _08142C2C
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrb r3, [r1, 0x5]
+ movs r6, 0xD
+ negs r6, r6
+ adds r2, r6, 0
+ ands r3, r2
+ movs r2, 0x4
+ orrs r3, r2
+ strb r3, [r1, 0x5]
+ adds r1, r5, 0x5
+ lsls r1, 1
+ adds r1, r7
+ add r1, r9
+ strh r0, [r1]
+ b _08142C3C
+ .align 2, 0
+_08142C28: .4byte gUnknown_0840B56A
+_08142C2C: .4byte gSprites
+_08142C30:
+ adds r0, r5, 0x5
+ lsls r0, 1
+ adds r0, r7
+ add r0, r9
+ movs r1, 0xFF
+ strh r1, [r0]
+_08142C3C:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r4, 0x14
+ cmp r5, 0x5
+ bls _08142B8E
+ ldr r0, _08142CB0
+ ldr r2, _08142CB4
+ movs r1, 0xC
+ bl BlendPalettes
+ ldr r3, _08142CB8
+ ldr r1, _08142CBC
+ adds r0, r3, 0
+ bl StringCopy
+ adds r3, r0, 0
+ movs r5, 0xFC
+ strb r5, [r3]
+ movs r0, 0x14
+ strb r0, [r3, 0x1]
+ movs r0, 0x6
+ strb r0, [r3, 0x2]
+ adds r3, 0x3
+ ldr r0, _08142CC0
+ ldr r4, [sp, 0xC]
+ add r4, r8
+ lsls r4, 3
+ adds r4, r0
+ movs r0, 0xA
+ ldrsh r1, [r4, r0]
+ adds r0, r3, 0
+ bl ConvertIntToDecimalString
+ adds r3, r0, 0
+ strb r5, [r3]
+ movs r0, 0x13
+ strb r0, [r3, 0x1]
+ movs r0, 0xF0
+ strb r0, [r3, 0x2]
+ movs r0, 0xFF
+ strb r0, [r3, 0x3]
+ ldr r0, _08142CB8
+ movs r1, 0
+ movs r2, 0
+ bl MenuPrint
+ ldr r0, _08142CC4
+ str r0, [r4]
+ 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
+_08142CB0: .4byte 0xffff0000
+_08142CB4: .4byte 0x0000735f
+_08142CB8: .4byte gStringVar1
+_08142CBC: .4byte gMenuText_HOFNumber
+_08142CC0: .4byte gTasks
+_08142CC4: .4byte sub_8142CC8
+ thumb_func_end sub_8142B04
+
+ thumb_func_start sub_8142CC8
+sub_8142CC8: @ 8142CC8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08142DD0
+ mov r8, r0
+ movs r3, 0
+ ldr r1, _08142DD4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ cmp r3, r0
+ bge _08142CFE
+ adds r1, r0, 0
+_08142CF0:
+ movs r0, 0x78
+ add r8, r0
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, r1
+ blt _08142CF0
+_08142CFE:
+ movs r3, 0
+ lsls r6, r4, 2
+ adds r0, r6, r4
+ lsls r5, r0, 3
+ ldr r1, _08142DD8
+ mov r10, r1
+ ldr r2, _08142DDC
+ mov r12, r2
+ movs r0, 0xD
+ negs r0, r0
+ mov r9, r0
+ movs r7, 0x4
+_08142D16:
+ adds r0, r3, 0x5
+ lsls r0, 1
+ adds r0, r5
+ add r0, r10
+ ldrh r1, [r0]
+ cmp r1, 0xFF
+ beq _08142D36
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r12
+ ldrb r2, [r0, 0x5]
+ mov r1, r9
+ ands r1, r2
+ orrs r1, r7
+ strb r1, [r0, 0x5]
+_08142D36:
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x5
+ bls _08142D16
+ adds r1, r6, r4
+ lsls r1, 3
+ ldr r2, _08142DD4
+ adds r5, r1, r2
+ movs r2, 0xC
+ ldrsh r0, [r5, r2]
+ adds r0, 0x5
+ lsls r0, 1
+ adds r0, r1
+ ldr r1, _08142DD4
+ adds r1, 0x8
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _08142DDC
+ adds r0, r1
+ ldrb r2, [r0, 0x5]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ strb r1, [r0, 0x5]
+ lsrs r1, 4
+ movs r0, 0x80
+ lsls r0, 9
+ lsls r0, r1
+ ldr r1, _08142DE0
+ eors r0, r1
+ ldr r2, _08142DE4
+ str r0, [r2]
+ ldr r2, _08142DE8
+ movs r1, 0xC
+ bl BlendPalettesUnfaded
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ mov r1, r8
+ adds r4, r1, r0
+ ldrh r1, [r4, 0x8]
+ ldr r0, _08142DEC
+ ands r0, r1
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _08142DB2
+ bl StopCryAndClearCrySongs
+ ldrh r0, [r4, 0x8]
+ lsls r0, 23
+ lsrs r0, 23
+ movs r1, 0
+ bl PlayCry1
+_08142DB2:
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0xE
+ bl sub_8143088
+ ldr r0, _08142DF0
+ str r0, [r5]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142DD0: .4byte 0x0201e000
+_08142DD4: .4byte gTasks
+_08142DD8: .4byte gUnknown_03004B28
+_08142DDC: .4byte gSprites
+_08142DE0: .4byte 0xffff0000
+_08142DE4: .4byte gUnknown_0203931C
+_08142DE8: .4byte 0x0000735f
+_08142DEC: .4byte 0x000001ff
+_08142DF0: .4byte sub_8142DF4
+ thumb_func_end sub_8142CC8
+
+ thumb_func_start sub_8142DF4
+sub_8142DF4: @ 8142DF4
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _08142E88
+ ldrh r2, [r1, 0x2E]
+ movs r0, 0x1
+ ands r0, r2
+ adds r3, r1, 0
+ cmp r0, 0
+ beq _08142EC4
+ ldr r7, _08142E8C
+ lsls r0, r6, 2
+ adds r1, r0, r6
+ lsls r3, r1, 3
+ adds r4, r3, r7
+ ldrh r2, [r4, 0x8]
+ movs r5, 0x8
+ ldrsh r1, [r4, r5]
+ mov r8, r0
+ cmp r1, 0
+ beq _08142E98
+ subs r0, r2, 0x1
+ strh r0, [r4, 0x8]
+ movs r5, 0
+ adds r7, 0x8
+ mov r9, r7
+ adds r7, r3, 0
+_08142E30:
+ adds r0, r5, 0x5
+ lsls r0, 1
+ adds r0, r7
+ add r0, r9
+ ldrb r1, [r0]
+ cmp r1, 0xFF
+ beq _08142E5E
+ ldr r0, _08142E90
+ lsls r4, r1, 4
+ adds r4, r1
+ lsls r4, 2
+ adds r4, r0
+ ldrb r0, [r4, 0x5]
+ lsrs r0, 4
+ bl GetSpritePaletteTagByPaletteNum
+ lsls r0, 16
+ lsrs r0, 16
+ bl FreeSpritePaletteByTag
+ adds r0, r4, 0
+ bl DestroySprite
+_08142E5E:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x5
+ bls _08142E30
+ ldr r0, _08142E8C
+ mov r2, r8
+ adds r1, r2, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xA]
+ movs r3, 0xA
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _08142E80
+ subs r0, r2, 0x1
+ strh r0, [r1, 0xA]
+_08142E80:
+ ldr r0, _08142E94
+ str r0, [r1]
+ b _08142F64
+ .align 2, 0
+_08142E88: .4byte gMain
+_08142E8C: .4byte gTasks
+_08142E90: .4byte gSprites
+_08142E94: .4byte sub_8142B04
+_08142E98:
+ bl IsCryPlayingOrClearCrySongs
+ lsls r0, 24
+ cmp r0, 0
+ beq _08142EB2
+ bl StopCryAndClearCrySongs
+ ldr r0, _08142EB8
+ ldr r1, _08142EBC
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+_08142EB2:
+ ldr r0, _08142EC0
+ str r0, [r4]
+ b _08142F64
+ .align 2, 0
+_08142EB8: .4byte gMPlay_BGM
+_08142EBC: .4byte 0x0000ffff
+_08142EC0: .4byte sub_8142F78
+_08142EC4:
+ movs r0, 0x2
+ ands r0, r2
+ cmp r0, 0
+ beq _08142F08
+ bl IsCryPlayingOrClearCrySongs
+ lsls r0, 24
+ cmp r0, 0
+ beq _08142EE6
+ bl StopCryAndClearCrySongs
+ ldr r0, _08142EF8
+ ldr r1, _08142EFC
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+_08142EE6:
+ ldr r0, _08142F00
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08142F04
+ str r0, [r1]
+ b _08142F64
+ .align 2, 0
+_08142EF8: .4byte gMPlay_BGM
+_08142EFC: .4byte 0x0000ffff
+_08142F00: .4byte gTasks
+_08142F04: .4byte sub_8142F78
+_08142F08:
+ movs r0, 0x40
+ ands r0, r2
+ cmp r0, 0
+ beq _08142F38
+ ldr r0, _08142F30
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xC]
+ movs r4, 0xC
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ beq _08142F38
+ subs r0, r2, 0x1
+ strh r0, [r1, 0xC]
+ ldr r0, _08142F34
+ str r0, [r1]
+ b _08142F64
+ .align 2, 0
+_08142F30: .4byte gTasks
+_08142F34: .4byte sub_8142CC8
+_08142F38:
+ ldrh r1, [r3, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08142F64
+ ldr r1, _08142F70
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r5, 0xC
+ ldrsh r1, [r2, r5]
+ movs r3, 0x10
+ ldrsh r0, [r2, r3]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _08142F64
+ ldrh r0, [r2, 0xC]
+ adds r0, 0x1
+ strh r0, [r2, 0xC]
+ ldr r0, _08142F74
+ str r0, [r2]
+_08142F64:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142F70: .4byte gTasks
+_08142F74: .4byte sub_8142CC8
+ thumb_func_end sub_8142DF4
+
+ thumb_func_start sub_8142F78
+sub_8142F78: @ 8142F78
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08142FB4
+ ldr r1, _08142FB8
+ movs r2, 0x80
+ lsls r2, 2
+ bl CpuSet
+ ldr r0, _08142FBC
+ adds r2, r0, 0
+ ldr r1, _08142FC0
+ ldm r1!, {r3,r5,r6}
+ stm r2!, {r3,r5,r6}
+ ldm r1!, {r3,r5}
+ stm r2!, {r3,r5}
+ bl sub_80C5E38
+ ldr r1, _08142FC4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08142FC8
+ str r1, [r0]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08142FB4: .4byte gPlttBufferFaded
+_08142FB8: .4byte gPlttBufferUnfaded
+_08142FBC: .4byte 0x0201c000
+_08142FC0: .4byte gUnknown_0840B57C
+_08142FC4: .4byte gTasks
+_08142FC8: .4byte sub_8142FCC
+ thumb_func_end sub_8142F78
+
+ thumb_func_start sub_8142FCC
+sub_8142FCC: @ 8142FCC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_80C5F98
+ lsls r0, 24
+ cmp r0, 0
+ beq _08142FE6
+ adds r0, r4, 0
+ bl DestroyTask
+ bl sub_810D62C
+_08142FE6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8142FCC
+
+ thumb_func_start sub_8142FEC
+sub_8142FEC: @ 8142FEC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x2
+ movs r1, 0xE
+ movs r2, 0x1B
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _08143020
+ movs r1, 0x3
+ movs r2, 0xF
+ bl MenuPrintMessage
+ ldr r1, _08143024
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08143028
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143020: .4byte gMenuText_HOFCorrupt
+_08143024: .4byte gTasks
+_08143028: .4byte sub_814302C
+ thumb_func_end sub_8142FEC
+
+ thumb_func_start sub_814302C
+sub_814302C: @ 814302C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ beq _08143056
+ ldr r0, _0814305C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08143056
+ ldr r0, _08143060
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08143064
+ str r0, [r1]
+_08143056:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814305C: .4byte gMain
+_08143060: .4byte gTasks
+_08143064: .4byte sub_8142F78
+ thumb_func_end sub_814302C
+
+ thumb_func_start sub_8143068
+sub_8143068: @ 8143068
+ push {lr}
+ lsls r2, r1, 24
+ ldr r0, _08143084
+ movs r1, 0x80
+ lsls r1, 17
+ adds r2, r1
+ lsrs r2, 24
+ movs r1, 0
+ movs r3, 0xF0
+ bl sub_8072BD8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143084: .4byte gMenuText_WelcomeToHOFAndDexRating
+ thumb_func_end sub_8143068
+
+ thumb_func_start sub_8143088
+sub_8143088: @ 8143088
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ mov r9, r0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ ldr r7, _08143188
+ movs r0, 0xFC
+ strb r0, [r7]
+ movs r0, 0x13
+ strb r0, [r7, 0x1]
+ movs r0, 0x28
+ strb r0, [r7, 0x2]
+ movs r0, 0xFF
+ strb r0, [r7, 0x3]
+ mov r0, r9
+ ldrh r2, [r0, 0x8]
+ ldr r0, _0814318C
+ ands r0, r2
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _081430EA
+ lsls r0, r2, 23
+ lsrs r0, 23
+ bl sub_80406D8
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldr r0, _08143190
+ cmp r6, r0
+ beq _081430EA
+ ldr r1, _08143194
+ adds r0, r7, 0
+ bl StringCopy
+ adds r7, r0, 0
+ adds r1, r6, 0
+ movs r2, 0x2
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+_081430EA:
+ ldr r5, _08143188
+ mov r1, r8
+ adds r1, 0x4
+ lsls r1, 24
+ lsrs r1, 24
+ mov r4, r10
+ adds r4, 0x1
+ lsls r2, r4, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ bl MenuPrint
+ adds r7, r5, 0
+ movs r3, 0
+ mov r1, r9
+ ldrb r0, [r1, 0xA]
+ str r4, [sp]
+ mov r2, r8
+ adds r2, 0x9
+ str r2, [sp, 0xC]
+ mov r6, r10
+ adds r6, 0x3
+ str r6, [sp, 0x8]
+ cmp r0, 0xFF
+ beq _0814313A
+ mov r2, r9
+ adds r2, 0xA
+_08143120:
+ adds r1, r7, r3
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x9
+ bhi _0814313A
+ adds r0, r2, r3
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _08143120
+_0814313A:
+ adds r7, r3
+ movs r2, 0xFF
+ strb r2, [r7]
+ mov r1, r9
+ ldrh r0, [r1, 0x8]
+ ldr r1, _0814318C
+ ands r1, r0
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r1, r0
+ bne _08143198
+ movs r0, 0xFC
+ strb r0, [r7]
+ movs r0, 0x13
+ strb r0, [r7, 0x1]
+ movs r0, 0xA0
+ strb r0, [r7, 0x2]
+ strb r2, [r7, 0x3]
+ ldr r0, _08143188
+ ldr r2, [sp, 0xC]
+ lsls r1, r2, 24
+ lsrs r1, 24
+ ldr r3, [sp]
+ lsls r2, r3, 24
+ lsrs r2, 24
+ bl MenuPrint
+ ldr r6, [sp, 0x8]
+ lsls r1, r6, 24
+ lsrs r1, 24
+ mov r3, r10
+ adds r3, 0x4
+ lsls r3, 24
+ lsrs r3, 24
+ movs r0, 0
+ movs r2, 0x1D
+ bl MenuZeroFillWindowRect
+ b _081432E4
+ .align 2, 0
+_08143188: .4byte gStringVar1
+_0814318C: .4byte 0x000001ff
+_08143190: .4byte 0x0000ffff
+_08143194: .4byte gOtherText_Number2
+_08143198:
+ movs r0, 0xFC
+ strb r0, [r7]
+ movs r0, 0x13
+ strb r0, [r7, 0x1]
+ movs r0, 0x3E
+ strb r0, [r7, 0x2]
+ adds r7, 0x3
+ movs r0, 0xBA
+ strb r0, [r7]
+ adds r7, 0x1
+ movs r3, 0
+ ldr r2, _08143238
+ mov r1, r9
+ ldrh r0, [r1, 0x8]
+ lsls r0, 23
+ lsrs r0, 23
+ movs r1, 0xB
+ muls r0, r1
+ adds r0, r2
+ ldrb r0, [r0]
+ mov r6, r8
+ adds r6, 0x7
+ str r6, [sp, 0x4]
+ mov r1, r8
+ adds r1, 0xD
+ str r1, [sp, 0x10]
+ cmp r0, 0xFF
+ beq _08143204
+ adds r5, r2, 0
+ movs r4, 0xB
+_081431D4:
+ adds r1, r7, r3
+ mov r6, r9
+ ldrh r0, [r6, 0x8]
+ lsls r0, 23
+ lsrs r0, 23
+ muls r0, r4
+ adds r0, r3, r0
+ adds r0, r5
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r3, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ cmp r3, 0x9
+ bhi _08143204
+ ldrh r0, [r6, 0x8]
+ lsls r0, 23
+ lsrs r0, 23
+ muls r0, r4
+ adds r0, r3, r0
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0xFF
+ bne _081431D4
+_08143204:
+ adds r7, r3
+ movs r0, 0
+ strb r0, [r7]
+ adds r7, 0x1
+ mov r1, r9
+ ldrh r0, [r1, 0x8]
+ ldr r1, _0814323C
+ ands r1, r0
+ cmp r1, 0x20
+ beq _0814324A
+ cmp r1, 0x1D
+ beq _0814324A
+ lsls r0, 23
+ lsrs r0, 23
+ mov r2, r9
+ ldr r1, [r2, 0x4]
+ bl GetGenderFromSpeciesAndPersonality
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08143240
+ cmp r0, 0xFE
+ beq _08143244
+ b _0814324A
+ .align 2, 0
+_08143238: .4byte gSpeciesNames
+_0814323C: .4byte 0x000001ff
+_08143240:
+ movs r0, 0xB5
+ b _08143246
+_08143244:
+ movs r0, 0xB6
+_08143246:
+ strb r0, [r7]
+ adds r7, 0x1
+_0814324A:
+ movs r4, 0xFC
+ strb r4, [r7]
+ movs r3, 0x13
+ mov r8, r3
+ strb r3, [r7, 0x1]
+ movs r0, 0xA0
+ strb r0, [r7, 0x2]
+ movs r6, 0xFF
+ mov r10, r6
+ strb r6, [r7, 0x3]
+ ldr r5, _081432F4
+ ldr r0, [sp, 0xC]
+ lsls r1, r0, 24
+ lsrs r1, 24
+ ldr r3, [sp]
+ lsls r2, r3, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ bl MenuPrint
+ mov r6, r9
+ ldrb r0, [r6, 0x9]
+ lsrs r6, r0, 1
+ ldr r1, _081432F8
+ adds r0, r5, 0
+ bl StringCopy
+ adds r7, r0, 0
+ strb r4, [r7]
+ movs r0, 0x14
+ strb r0, [r7, 0x1]
+ movs r0, 0x6
+ strb r0, [r7, 0x2]
+ adds r7, 0x3
+ adds r0, r7, 0
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r7, r0, 0
+ strb r4, [r7]
+ mov r0, r8
+ strb r0, [r7, 0x1]
+ movs r0, 0x30
+ strb r0, [r7, 0x2]
+ mov r1, r10
+ strb r1, [r7, 0x3]
+ ldr r2, [sp, 0x4]
+ lsls r1, r2, 24
+ lsrs r1, 24
+ ldr r3, [sp, 0x8]
+ lsls r4, r3, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ adds r2, r4, 0
+ bl MenuPrint
+ mov r0, r9
+ ldrh r6, [r0]
+ ldr r1, _081432FC
+ adds r0, r5, 0
+ bl StringCopy
+ adds r7, r0, 0
+ adds r1, r6, 0
+ movs r2, 0x2
+ movs r3, 0x5
+ bl ConvertIntToDecimalStringN
+ ldr r2, [sp, 0x10]
+ lsls r1, r2, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ adds r2, r4, 0
+ bl MenuPrint
+_081432E4:
+ 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
+_081432F4: .4byte gStringVar1
+_081432F8: .4byte gOtherText_Level3
+_081432FC: .4byte gOtherText_IDNumber
+ thumb_func_end sub_8143088
+
+ thumb_func_start sub_8143300
+sub_8143300: @ 8143300
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ lsls r5, 24
+ lsls r4, 24
+ ldr r0, _081433CC
+ lsrs r1, r5, 24
+ mov r8, r1
+ movs r2, 0x80
+ lsls r2, 17
+ adds r5, r2
+ lsrs r5, 24
+ lsrs r6, r4, 24
+ adds r4, r2
+ lsrs r4, 24
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl MenuPrint
+ ldr r0, _081433D0
+ mov r10, r0
+ movs r1, 0xE
+ add r8, r1
+ mov r2, r8
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ mov r1, r8
+ adds r2, r4, 0
+ bl sub_8072B4C
+ ldr r0, _081433D4
+ adds r4, r6, 0x3
+ lsls r4, 24
+ lsrs r4, 24
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl MenuPrint
+ mov r0, r10
+ ldrb r1, [r0, 0xA]
+ ldrb r0, [r0, 0xB]
+ lsls r0, 8
+ orrs r1, r0
+ ldr r2, _081433D8
+ mov r9, r2
+ mov r0, r9
+ movs r2, 0x2
+ movs r3, 0x5
+ bl ConvertIntToDecimalStringN
+ mov r0, r9
+ mov r1, r8
+ adds r2, r4, 0
+ bl sub_8072B4C
+ ldr r0, _081433DC
+ adds r6, 0x5
+ lsls r6, 24
+ lsrs r6, 24
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl MenuPrint
+ mov r0, r10
+ ldrh r1, [r0, 0xE]
+ mov r0, r9
+ bl ConvertIntToDecimalString
+ adds r2, r0, 0
+ movs r1, 0
+ strb r1, [r2]
+ movs r0, 0xF0
+ strb r0, [r2, 0x1]
+ strb r1, [r2, 0x2]
+ adds r2, 0x3
+ mov r0, r10
+ ldrb r1, [r0, 0x10]
+ adds r0, r2, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ adds r2, r0, 0
+ movs r0, 0xFF
+ strb r0, [r2]
+ mov r0, r9
+ mov r1, r8
+ adds r2, r6, 0
+ bl sub_8072B4C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081433CC: .4byte gOtherText_Name
+_081433D0: .4byte gSaveBlock2
+_081433D4: .4byte gOtherText_IDNumber2
+_081433D8: .4byte gStringVar1
+_081433DC: .4byte gMainMenuString_Time
+ thumb_func_end sub_8143300
+
+ thumb_func_start sub_81433E0
+sub_81433E0: @ 81433E0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ movs r0, 0x80
+ lsls r0, 19
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x8
+ strh r1, [r0]
+ adds r0, 0x8
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0x8
+ strh r1, [r0]
+ adds r0, 0xA
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0xA
+ strh r1, [r0]
+ adds r0, 0xC
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ subs r0, 0xC
+ strh r1, [r0]
+ adds r0, 0xE
+ 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
+ ldr r1, _0814354C
+ mov r9, r1
+ mov r2, sp
+ movs r6, 0
+ ldr r1, _08143550
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r7, _08143554
+ movs r0, 0x81
+ lsls r0, 24
+ mov r12, r0
+_08143444:
+ 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 _08143444
+ 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, _08143550
+ 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]
+ movs r1, 0xC0
+ lsls r1, 19
+ mov r0, r9
+ bl LZ77UnCompVram
+ movs r1, 0
+ ldr r3, _08143558
+ movs r2, 0x1
+_081434B2:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0x3F
+ bls _081434B2
+ movs r1, 0
+ ldr r5, _0814355C
+ ldr r3, _08143560
+ movs r2, 0x1
+_081434CA:
+ lsls r0, r1, 1
+ adds r0, r3
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xBF
+ bls _081434CA
+ movs r1, 0
+ ldr r4, _08143564
+ movs r3, 0x2
+ ldr r2, _08143568
+_081434E2:
+ lsls r0, r1, 1
+ adds r0, r4
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r2
+ bls _081434E2
+ adds r2, r5, 0
+ movs r3, 0x80
+ lsls r3, 7
+ mov r4, sp
+ movs r6, 0
+ ldr r1, _08143550
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r7, _08143554
+ movs r0, 0x81
+ lsls r0, 24
+ mov r12, r0
+_0814350A:
+ 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 _0814350A
+ 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]
+ bl ResetPaletteFade
+ ldr r0, _0814356C
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814354C: .4byte gHallOfFame_Gfx
+_08143550: .4byte 0x040000d4
+_08143554: .4byte 0x81000800
+_08143558: .4byte 0x06003800
+_0814355C: .4byte 0x02000000
+_08143560: .4byte 0x06003b80
+_08143564: .4byte 0x06003000
+_08143568: .4byte 0x000003ff
+_0814356C: .4byte gHallOfFame_Pal
+ thumb_func_end sub_81433E0
+
+ thumb_func_start sub_8143570
+sub_8143570: @ 8143570
+ push {r4,lr}
+ bl remove_some_task
+ bl ResetTasks
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r1, _081435A8
+ movs r0, 0x8
+ strb r0, [r1]
+ ldr r0, _081435AC
+ bl LoadCompressedObjectPic
+ ldr r0, _081435B0
+ bl LoadCompressedObjectPalette
+ ldr r4, _081435B4
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081435A8: .4byte gReservedSpritePaletteCount
+_081435AC: .4byte gUnknown_0840B514
+_081435B0: .4byte gUnknown_0840B524
+_081435B4: .4byte gWindowConfig_81E71B4
+ thumb_func_end sub_8143570
+
+ thumb_func_start sub_81435B8
+sub_81435B8: @ 81435B8
+ ldr r1, _081435D8
+ movs r2, 0xE0
+ lsls r2, 3
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x4
+ subs r2, 0xFD
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xE
+ movs r2, 0xDA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_081435D8: .4byte REG_BG1CNT
+ thumb_func_end sub_81435B8
+
+ thumb_func_start sub_81435DC
+sub_81435DC: @ 81435DC
+ push {r4,lr}
+ adds r2, r0, 0
+ ldr r1, [r2, 0x20]
+ ldr r0, [r2, 0x30]
+ cmp r1, r0
+ beq _08143632
+ ldrh r3, [r2, 0x20]
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ movs r4, 0x30
+ ldrsh r1, [r2, r4]
+ cmp r0, r1
+ bge _081435FC
+ adds r0, r3, 0
+ adds r0, 0xF
+ strh r0, [r2, 0x20]
+_081435FC:
+ ldrh r3, [r2, 0x20]
+ movs r4, 0x20
+ ldrsh r0, [r2, r4]
+ cmp r0, r1
+ ble _0814360C
+ adds r0, r3, 0
+ subs r0, 0xF
+ strh r0, [r2, 0x20]
+_0814360C:
+ ldrh r3, [r2, 0x22]
+ movs r1, 0x22
+ ldrsh r0, [r2, r1]
+ movs r4, 0x32
+ ldrsh r1, [r2, r4]
+ cmp r0, r1
+ bge _08143620
+ adds r0, r3, 0
+ adds r0, 0xA
+ strh r0, [r2, 0x22]
+_08143620:
+ ldrh r3, [r2, 0x22]
+ movs r4, 0x22
+ ldrsh r0, [r2, r4]
+ cmp r0, r1
+ ble _0814363A
+ adds r0, r3, 0
+ subs r0, 0xA
+ strh r0, [r2, 0x22]
+ b _0814363A
+_08143632:
+ movs r0, 0x1
+ strh r0, [r2, 0x2E]
+ ldr r0, _08143640
+ str r0, [r2, 0x1C]
+_0814363A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143640: .4byte nullsub_81
+ thumb_func_end sub_81435DC
+
+ thumb_func_start nullsub_81
+nullsub_81: @ 8143644
+ bx lr
+ thumb_func_end nullsub_81
+
+ thumb_func_start sub_8143648
+sub_8143648: @ 8143648
+ push {r4-r7,lr}
+ lsls r1, 24
+ ldr r4, _08143670
+ adds r3, r4, 0
+ ldr r2, _08143674
+ ldm r2!, {r5-r7}
+ stm r3!, {r5-r7}
+ ldm r2!, {r5-r7}
+ stm r3!, {r5-r7}
+ strh r0, [r4, 0x2]
+ ldr r0, _08143678
+ lsrs r1, 22
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r4, 0xC]
+ ldr r0, _0814367C
+ str r0, [r4, 0x8]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143670: .4byte gUnknown_02024E8C
+_08143674: .4byte gUnknown_0840B6B8
+_08143678: .4byte gUnknown_0840B69C
+_0814367C: .4byte gSpriteAnimTable_81E7C64
+ thumb_func_end sub_8143648
+
+ thumb_func_start sub_8143680
+sub_8143680: @ 8143680
+ push {r4-r7,lr}
+ lsls r1, 24
+ ldr r4, _081436AC
+ adds r3, r4, 0
+ ldr r2, _081436B0
+ ldm r2!, {r5-r7}
+ stm r3!, {r5-r7}
+ ldm r2!, {r5-r7}
+ stm r3!, {r5-r7}
+ strh r0, [r4, 0x2]
+ ldr r0, _081436B4
+ lsrs r1, 22
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r4, 0xC]
+ ldr r0, _081436B8
+ ldr r0, [r0]
+ str r0, [r4, 0x8]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081436AC: .4byte gUnknown_02024E8C
+_081436B0: .4byte gUnknown_0840B6B8
+_081436B4: .4byte gUnknown_0840B69C
+_081436B8: .4byte gUnknown_081EC2A4
+ thumb_func_end sub_8143680
+
+ thumb_func_start sub_81436BC
+sub_81436BC: @ 81436BC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ adds r6, r0, 0
+ mov r9, r1
+ mov r10, r2
+ mov r8, r3
+ ldr r7, [sp, 0x34]
+ lsls r6, 16
+ lsrs r6, 16
+ mov r0, r9
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ mov r1, r10
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ mov r2, r8
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ lsls r0, r6, 3
+ ldr r1, _08143790
+ adds r0, r1
+ ldr r1, _08143794
+ lsls r2, r6, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08143798
+ mov r12, r4
+ mov r5, r8
+ lsls r4, r5, 2
+ add r4, r12
+ ldr r4, [r4]
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ str r7, [sp, 0x8]
+ movs r4, 0x1
+ str r4, [sp, 0xC]
+ bl sub_800D378
+ adds r0, r6, 0
+ ldr r1, [sp, 0x30]
+ adds r2, r7, 0
+ bl species_and_otid_get_pal
+ lsls r4, r5, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r4, r2
+ lsls r1, 16
+ lsrs r1, 16
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ lsls r1, r5, 24
+ lsrs r1, 24
+ mov r0, r8
+ bl sub_8143648
+ ldr r0, _0814379C
+ mov r5, r9
+ lsls r5, 16
+ asrs r5, 16
+ mov r9, r5
+ mov r1, r10
+ lsls r1, 16
+ asrs r1, 16
+ mov r10, r1
+ movs r3, 0xA
+ mov r2, r8
+ subs r3, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r1, r9
+ mov r2, r10
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _081437A0
+ 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
+_08143790: .4byte gMonFrontPicTable
+_08143794: .4byte gMonFrontPicCoords
+_08143798: .4byte gUnknown_0840B5A0
+_0814379C: .4byte gUnknown_02024E8C
+_081437A0: .4byte gSprites
+ thumb_func_end sub_81436BC
+
+ thumb_func_start sub_81437A4
+sub_81437A4: @ 81437A4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ mov r9, r1
+ mov r10, r2
+ adds r6, r3, 0
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ mov r9, r1
+ lsls r2, 16
+ lsrs r2, 16
+ mov r10, r2
+ lsls r6, 16
+ lsrs r6, 16
+ lsls r7, r0, 3
+ ldr r1, _08143854
+ mov r8, r1
+ add r8, r7
+ ldr r1, _08143858
+ lsls r2, r0, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r5, _0814385C
+ lsls r4, r6, 2
+ adds r4, r5
+ ldr r4, [r4]
+ str r4, [sp]
+ str r0, [sp, 0x4]
+ mov r0, r8
+ bl DecompressPicFromTable_2
+ ldr r0, _08143860
+ adds r0, r7, r0
+ ldr r0, [r0]
+ lsls r4, r6, 4
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r4, r2
+ lsls r1, 16
+ lsrs r1, 16
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ lsls r1, r6, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ bl sub_8143680
+ ldr r0, _08143864
+ mov r1, r9
+ lsls r1, 16
+ asrs r1, 16
+ mov r9, r1
+ mov r2, r10
+ lsls r2, 16
+ asrs r2, 16
+ mov r10, r2
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08143868
+ 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, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08143854: .4byte gTrainerFrontPicTable
+_08143858: .4byte gTrainerFrontPicCoords
+_0814385C: .4byte gUnknown_0840B5A0
+_08143860: .4byte gTrainerFrontPicPaletteTable
+_08143864: .4byte gUnknown_02024E8C
+_08143868: .4byte gSprites
+ thumb_func_end sub_81437A4
+
+ thumb_func_start sub_814386C
+sub_814386C: @ 814386C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x26]
+ movs r2, 0x26
+ ldrsh r0, [r5, r2]
+ cmp r0, 0x78
+ ble _08143882
+ adds r0, r5, 0
+ bl DestroySprite
+ b _081438BA
+_08143882:
+ adds r0, r1, 0x1
+ ldrh r1, [r5, 0x30]
+ adds r0, r1
+ strh r0, [r5, 0x26]
+ ldrh r4, [r5, 0x2E]
+ lsls r4, 24
+ lsrs r4, 24
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x3
+ ands r0, r1
+ adds r0, 0x8
+ ldr r1, _081438C0
+ lsls r4, 1
+ adds r4, r1
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ muls r0, r1
+ cmp r0, 0
+ bge _081438B0
+ adds r0, 0xFF
+_081438B0:
+ asrs r0, 8
+ strh r0, [r5, 0x24]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x4
+ strh r0, [r5, 0x2E]
+_081438BA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081438C0: .4byte gSineTable
+ thumb_func_end sub_814386C
+
+ thumb_func_start sub_81438C4
+sub_81438C4: @ 81438C4
+ push {r4,lr}
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF0
+ bl __umodsi3
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl Random
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ movs r0, 0x7
+ ands r2, r0
+ negs r2, r2
+ ldr r0, _08143934
+ lsls r4, 16
+ asrs r4, 16
+ lsls r2, 16
+ asrs r2, 16
+ adds r1, r4, 0
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08143938
+ adds r4, r1, r0
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x11
+ bl __umodsi3
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ bl Random
+ movs r1, 0x3
+ ands r1, r0
+ cmp r1, 0
+ beq _0814393C
+ movs r0, 0
+ b _0814393E
+ .align 2, 0
+_08143934: .4byte gSpriteTemplate_840B7A4
+_08143938: .4byte gSprites
+_0814393C:
+ movs r0, 0x1
+_0814393E:
+ strh r0, [r4, 0x30]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81438C4
+
+ thumb_func_start sub_8143948
+sub_8143948: @ 8143948
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8143948
+
+ thumb_func_start sub_814395C
+sub_814395C: @ 814395C
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ ldr r0, _081439B8
+ ldrh r1, [r0, 0x2C]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081439B2
+ ldr r0, _081439BC
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081439B2
+ ldr r2, _081439C0
+ ldr r0, _081439C4
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, [r0]
+ ldr r0, _081439C8
+ cmp r1, r0
+ bne _081439B2
+ bl sub_8143948
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ ldr r1, _081439CC
+ movs r0, 0x1
+ strb r0, [r1]
+_081439B2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081439B8: .4byte gMain
+_081439BC: .4byte gUnknown_02039324
+_081439C0: .4byte gTasks
+_081439C4: .4byte gUnknown_02039322
+_081439C8: .4byte sub_8143B68
+_081439CC: .4byte gUnknown_02039325
+ thumb_func_end sub_814395C
+
+ thumb_func_start sub_81439D0
+sub_81439D0: @ 81439D0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ bl sub_8144130
+ movs r0, 0
+ bl SetVBlankCallback
+ bl ResetPaletteFade
+ bl ResetTasks
+ ldr r0, _08143AF0
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r1, _08143AF4
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x10]
+ strh r1, [r0, 0x16]
+ strh r1, [r0, 0x1E]
+ movs r1, 0x1
+ strh r1, [r0, 0x22]
+_08143A0E:
+ movs r0, 0
+ adds r1, r7, 0
+ bl sub_8144ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08143A0E
+ ldr r6, _08143AF4
+ lsls r5, r7, 2
+ adds r5, r7
+ lsls r5, 3
+ adds r5, r6
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ movs r1, 0
+ mov r9, r1
+ movs r2, 0
+ mov r8, r2
+ movs r1, 0x28
+ strh r1, [r0, 0x8]
+ ldr r4, _08143AF8
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ ldr r0, _08143AFC
+ movs r1, 0x80
+ movs r2, 0x40
+ bl LoadPalette
+ ldr r0, _08143B00
+ ldr r1, _08143B04
+ movs r2, 0x20
+ bl CpuSet
+ ldr r1, _08143B08
+ ldr r2, _08143B0C
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08143B10
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r6
+ strh r7, [r1, 0xA]
+ strh r0, [r5, 0x26]
+ movs r0, 0x1
+ negs r0, r0
+ mov r1, r8
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r3, _08143B14
+ ldrh r2, [r3]
+ mov r0, r8
+ strh r0, [r3]
+ ldr r4, _08143B18
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _08143B1C
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _08143B20
+ bl SetVBlankCallback
+ ldr r0, _08143B24
+ bl m4aSongNumStart
+ ldr r0, _08143B28
+ bl SetMainCallback2
+ ldr r0, _08143B2C
+ mov r1, r9
+ strb r1, [r0]
+ ldr r4, _08143B30
+ bl sub_81458DC
+ adds r0, r4, 0
+ adds r0, 0x88
+ mov r2, r8
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ adds r0, 0x2
+ strh r2, [r0]
+ ldr r0, _08143B34
+ strh r7, [r0]
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143AF0: .4byte sub_8143B38
+_08143AF4: .4byte gTasks
+_08143AF8: .4byte gWindowConfig_81E7208
+_08143AFC: .4byte gUnknown_0840B7BC
+_08143B00: .4byte gUnknown_0840B7FC
+_08143B04: .4byte 0x0600bee0
+_08143B08: .4byte REG_BG0VOFS
+_08143B0C: .4byte 0x0000fffc
+_08143B10: .4byte sub_81441B8
+_08143B14: .4byte 0x04000208
+_08143B18: .4byte 0x04000200
+_08143B1C: .4byte REG_DISPSTAT
+_08143B20: .4byte sub_8143948
+_08143B24: .4byte 0x000001c7
+_08143B28: .4byte sub_814395C
+_08143B2C: .4byte gUnknown_02039325
+_08143B30: .4byte 0x0201c000
+_08143B34: .4byte gUnknown_02039322
+ thumb_func_end sub_81439D0
+
+ thumb_func_start sub_8143B38
+sub_8143B38: @ 8143B38
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _08143B5C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08143B58
+ ldr r0, _08143B60
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08143B64
+ str r0, [r1]
+_08143B58:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143B5C: .4byte gPaletteFade
+_08143B60: .4byte gTasks
+_08143B64: .4byte sub_8143B68
+ thumb_func_end sub_8143B38
+
+ thumb_func_start sub_8143B68
+sub_8143B68: @ 8143B68
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08143B9C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ movs r0, 0x10
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ beq _08143BA4
+ movs r3, 0xA
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r1, 0x1E
+ strh r1, [r0, 0x8]
+ movs r0, 0x80
+ lsls r0, 1
+ strh r0, [r4, 0x20]
+ ldr r0, _08143BA0
+ b _08143BEE
+ .align 2, 0
+_08143B9C: .4byte gTasks
+_08143BA0: .4byte sub_8143EBC
+_08143BA4:
+ ldr r0, _08143BCC
+ strh r1, [r0]
+ ldrh r2, [r4, 0x1E]
+ movs r3, 0x1E
+ ldrsh r0, [r4, r3]
+ cmp r0, 0x1
+ bne _08143BD4
+ strh r2, [r4, 0x22]
+ strh r1, [r4, 0x1E]
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _08143BD0
+ b _08143BEE
+ .align 2, 0
+_08143BCC: .4byte gUnknown_02039320
+_08143BD0: .4byte sub_8143BFC
+_08143BD4:
+ cmp r0, 0x2
+ bne _08143BF0
+ strh r2, [r4, 0x22]
+ strh r1, [r4, 0x1E]
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _08143BF8
+_08143BEE:
+ str r0, [r4]
+_08143BF0:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143BF8: .4byte sub_8143CC0
+ thumb_func_end sub_8143B68
+
+ thumb_func_start sub_8143BFC
+sub_8143BFC: @ 8143BFC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08143C34
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _08143C2C
+ movs r0, 0x80
+ lsls r0, 19
+ strh r1, [r0]
+ adds r0, r4, 0
+ bl sub_81450AC
+ ldr r1, _08143C38
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08143C3C
+ str r1, [r0]
+_08143C2C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143C34: .4byte gPaletteFade
+_08143C38: .4byte gTasks
+_08143C3C: .4byte c2_080C9BFC
+ thumb_func_end sub_8143BFC
+
+ thumb_func_start c2_080C9BFC
+c2_080C9BFC: @ 8143C40
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ bl SetVBlankCallback
+ ldr r1, _08143CA8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrb r0, [r5, 0x16]
+ adds r1, r4, 0
+ bl sub_8144ECC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08143CA0
+ movs r0, 0x1
+ negs r0, r0
+ movs r4, 0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r3, _08143CAC
+ ldrh r2, [r3]
+ strh r4, [r3]
+ ldr r4, _08143CB0
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _08143CB4
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _08143CB8
+ bl SetVBlankCallback
+ ldr r0, _08143CBC
+ str r0, [r5]
+_08143CA0:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143CA8: .4byte gTasks
+_08143CAC: .4byte 0x04000208
+_08143CB0: .4byte 0x04000200
+_08143CB4: .4byte REG_DISPSTAT
+_08143CB8: .4byte sub_8143948
+_08143CBC: .4byte sub_8143B38
+ thumb_func_end c2_080C9BFC
+
+ thumb_func_start sub_8143CC0
+sub_8143CC0: @ 8143CC0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08143CF8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _08143CF0
+ movs r0, 0x80
+ lsls r0, 19
+ strh r1, [r0]
+ adds r0, r4, 0
+ bl sub_81450AC
+ ldr r1, _08143CFC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08143D00
+ str r1, [r0]
+_08143CF0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143CF8: .4byte gPaletteFade
+_08143CFC: .4byte gTasks
+_08143D00: .4byte sub_8143D04
+ thumb_func_end sub_8143CC0
+
+ thumb_func_start sub_8143D04
+sub_8143D04: @ 8143D04
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _08143DC8
+ ldr r1, _08143DCC
+ adds r1, r0
+ mov r8, r1
+ ldrb r7, [r1]
+ cmp r7, 0
+ beq _08143D24
+ cmp r7, 0x1
+ beq _08143E0C
+_08143D24:
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ ldr r1, _08143DD0
+ movs r0, 0x8
+ strb r0, [r1]
+ ldr r0, _08143DD4
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08143DD8
+ ldr r1, _08143DDC
+ bl LZ77UnCompVram
+ ldr r0, _08143DE0
+ movs r1, 0x1
+ movs r2, 0x3E
+ bl LoadPalette
+ movs r1, 0
+ ldr r4, _08143DE4
+ movs r3, 0x11
+ ldr r2, _08143DE8
+_08143D56:
+ adds r0, r1, r4
+ strb r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r2
+ bls _08143D56
+ movs r1, 0
+ ldr r2, _08143DEC
+ ldr r6, _08143DF0
+ ldr r0, _08143DF4
+ adds r5, r2, r0
+ movs r4, 0x22
+ ldr r3, _08143DE8
+_08143D72:
+ adds r0, r1, r5
+ strb r4, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r3
+ bls _08143D72
+ movs r1, 0
+ ldr r5, _08143DF8
+ movs r4, 0x33
+ ldr r3, _08143DE8
+_08143D88:
+ adds r0, r1, r5
+ strb r4, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r3
+ bls _08143D88
+ movs r0, 0
+ strh r0, [r2]
+ ldr r1, _08143DFC
+ adds r0, r1, 0
+ strh r0, [r2, 0x2]
+ ldr r1, _08143E00
+ adds r0, r1, 0
+ strh r0, [r2, 0x4]
+ ldr r1, _08143E04
+ adds r0, r1, 0
+ strh r0, [r2, 0x6]
+ adds r0, r6, 0
+ bl LoadSpriteSheet
+ ldr r0, _08143E08
+ bl LoadSpritePalette
+ ldr r1, _08143DC8
+ ldr r2, _08143DCC
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08143E90
+ .align 2, 0
+_08143DC8: .4byte gMain
+_08143DCC: .4byte 0x0000043c
+_08143DD0: .4byte gReservedSpritePaletteCount
+_08143DD4: .4byte gUnknown_083F66F0
+_08143DD8: .4byte gBirchGrassTilemap
+_08143DDC: .4byte 0x06003800
+_08143DE0: .4byte gUnknown_083F62EC + 0x2
+_08143DE4: .4byte 0x0201e000
+_08143DE8: .4byte 0x000007ff
+_08143DEC: .4byte 0x0201f800
+_08143DF0: .4byte gUnknown_0840CAA0
+_08143DF4: .4byte 0xfffff000
+_08143DF8: .4byte 0x0201f000
+_08143DFC: .4byte 0x000053ff
+_08143E00: .4byte 0x0000529f
+_08143E04: .4byte 0x00007e94
+_08143E08: .4byte gUnknown_0840CAB0
+_08143E0C:
+ ldr r0, _08143EA0
+ movs r1, 0
+ bl CreateTask
+ ldr r2, _08143EA4
+ lsls r4, r6, 2
+ adds r4, r6
+ lsls r4, 3
+ adds r4, r2
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0
+ mov r9, r1
+ movs r5, 0
+ strh r0, [r4, 0xE]
+ movs r0, 0xE
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ strh r7, [r0, 0x8]
+ movs r0, 0xE
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ strh r6, [r0, 0xA]
+ movs r0, 0xE
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrh r1, [r4, 0x16]
+ strh r1, [r0, 0xC]
+ movs r0, 0x1
+ negs r0, r0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r0, _08143EA8
+ strh r5, [r0]
+ ldr r1, _08143EAC
+ movs r0, 0x20
+ strh r0, [r1]
+ subs r1, 0x10
+ ldr r2, _08143EB0
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xE
+ movs r2, 0xCA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ mov r1, r9
+ mov r0, r8
+ strb r1, [r0]
+ ldr r0, _08143EB4
+ strh r5, [r0]
+ ldr r0, _08143EB8
+ str r0, [r4]
+_08143E90:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143EA0: .4byte sub_8144514
+_08143EA4: .4byte gTasks
+_08143EA8: .4byte REG_BG3HOFS
+_08143EAC: .4byte REG_BG3VOFS
+_08143EB0: .4byte 0x00000703
+_08143EB4: .4byte gUnknown_0203935C
+_08143EB8: .4byte sub_8143B38
+ thumb_func_end sub_8143D04
+
+ thumb_func_start sub_8143EBC
+sub_8143EBC: @ 8143EBC
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08143EE0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x20]
+ movs r2, 0x20
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ beq _08143EE4
+ subs r0, 0x1
+ strh r0, [r4, 0x20]
+ b _08143EF8
+ .align 2, 0
+_08143EE0: .4byte gTasks
+_08143EE4:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0xC
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _08143F00
+ str r0, [r4]
+_08143EF8:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143F00: .4byte sub_8143F04
+ thumb_func_end sub_8143EBC
+
+ thumb_func_start sub_8143F04
+sub_8143F04: @ 8143F04
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08143F30
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08143F2A
+ adds r0, r4, 0
+ bl sub_81450AC
+ ldr r0, _08143F34
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08143F38
+ str r0, [r1]
+_08143F2A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143F30: .4byte gPaletteFade
+_08143F34: .4byte gTasks
+_08143F38: .4byte sub_8143F3C
+ thumb_func_end sub_8143F04
+
+ thumb_func_start sub_8143F3C
+sub_8143F3C: @ 8143F3C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ bl sub_8144130
+ bl ResetPaletteFade
+ movs r1, 0xE0
+ lsls r1, 6
+ movs r0, 0
+ movs r2, 0
+ bl sub_8145128
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ movs r0, 0x1
+ negs r0, r0
+ movs r4, 0
+ str r4, [sp]
+ movs r1, 0x8
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r1, _08143FC4
+ movs r2, 0xE0
+ lsls r2, 3
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r3, _08143FC8
+ ldrh r2, [r3]
+ strh r4, [r3]
+ ldr r4, _08143FCC
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _08143FD0
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xA0
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _08143FD4
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x80
+ lsls r1, 1
+ strh r1, [r0, 0x8]
+ ldr r1, _08143FD8
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08143FC4: .4byte REG_BG0CNT
+_08143FC8: .4byte 0x04000208
+_08143FCC: .4byte 0x04000200
+_08143FD0: .4byte REG_DISPSTAT
+_08143FD4: .4byte gTasks
+_08143FD8: .4byte sub_8143FDC
+ thumb_func_end sub_8143F3C
+
+ thumb_func_start sub_8143FDC
+sub_8143FDC: @ 8143FDC
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08144000
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1, r2
+ ldrh r0, [r4, 0x8]
+ movs r2, 0x8
+ ldrsh r1, [r4, r2]
+ cmp r1, 0
+ beq _08144004
+ subs r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08144018
+ .align 2, 0
+_08144000: .4byte gTasks
+_08144004:
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0x6
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _08144020
+ str r0, [r4]
+_08144018:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08144020: .4byte sub_8144024
+ thumb_func_end sub_8143FDC
+
+ thumb_func_start sub_8144024
+sub_8144024: @ 8144024
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _08144074
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _0814406A
+ movs r0, 0xE0
+ lsls r0, 6
+ movs r1, 0
+ bl sub_81452D0
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r1, _08144078
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xE1
+ lsls r1, 5
+ strh r1, [r0, 0x8]
+ ldr r1, _0814407C
+ str r1, [r0]
+_0814406A:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08144074: .4byte gPaletteFade
+_08144078: .4byte gTasks
+_0814407C: .4byte sub_8144080
+ thumb_func_end sub_8144024
+
+ thumb_func_start sub_8144080
+sub_8144080: @ 8144080
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _081440CC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08144104
+ ldr r1, _081440D0
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r4, r0, r1
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ cmp r1, 0
+ beq _081440AE
+ ldr r0, _081440D4
+ ldrh r0, [r0, 0x2E]
+ cmp r0, 0
+ beq _081440E0
+_081440AE:
+ movs r0, 0x4
+ bl FadeOutBGM
+ movs r0, 0x1
+ negs r0, r0
+ ldr r1, _081440D8
+ str r1, [sp]
+ movs r1, 0x8
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _081440DC
+ str r0, [r4]
+ b _08144104
+ .align 2, 0
+_081440CC: .4byte gPaletteFade
+_081440D0: .4byte gTasks
+_081440D4: .4byte gMain
+_081440D8: .4byte 0x0000ffff
+_081440DC: .4byte sub_8144114
+_081440E0:
+ ldr r0, _0814410C
+ cmp r1, r0
+ bne _081440EC
+ movs r0, 0x8
+ bl FadeOutBGM
+_081440EC:
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ ldr r0, _08144110
+ cmp r1, r0
+ bne _081440FE
+ movs r0, 0xE4
+ lsls r0, 1
+ bl m4aSongNumStart
+_081440FE:
+ ldrh r0, [r4, 0x8]
+ subs r0, 0x1
+ strh r0, [r4, 0x8]
+_08144104:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814410C: .4byte 0x00001be8
+_08144110: .4byte 0x00001ab8
+ thumb_func_end sub_8144080
+
+ thumb_func_start sub_8144114
+sub_8144114: @ 8144114
+ push {lr}
+ ldr r0, _0814412C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08144128
+ movs r0, 0xFF
+ bl SoftReset
+_08144128:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814412C: .4byte gPaletteFade
+ thumb_func_end sub_8144114
+
+ thumb_func_start sub_8144130
+sub_8144130: @ 8144130
+ sub sp, 0x8
+ movs r0, 0x80
+ lsls r0, 19
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x1C
+ 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]
+ adds r0, 0x3E
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ mov r0, sp
+ strh r1, [r0]
+ ldr r1, _081441A4
+ str r0, [r1]
+ movs r0, 0xC0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _081441A8
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r2, 0
+ str r2, [sp, 0x4]
+ add r0, sp, 0x4
+ str r0, [r1]
+ movs r0, 0xE0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _081441AC
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ mov r0, sp
+ strh r2, [r0]
+ str r0, [r1]
+ ldr r0, _081441B0
+ str r0, [r1, 0x4]
+ ldr r0, _081441B4
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add sp, 0x8
+ bx lr
+ .align 2, 0
+_081441A4: .4byte 0x040000d4
+_081441A8: .4byte 0x8100c000
+_081441AC: .4byte 0x85000100
+_081441B0: .4byte 0x05000002
+_081441B4: .4byte 0x810001ff
+ thumb_func_end sub_8144130
+
+ thumb_func_start sub_81441B8
+sub_81441B8: @ 81441B8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _081441E4
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r6, r1, 0
+ cmp r0, 0xA
+ bhi _08144218
+ lsls r0, 2
+ ldr r1, _081441E8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081441E4: .4byte gTasks
+_081441E8: .4byte _081441EC
+ .align 2, 0
+_081441EC:
+ .4byte _08144218
+ .4byte _08144258
+ .4byte _08144278
+ .4byte _08144358
+ .4byte _0814438C
+ .4byte _081443F8
+ .4byte _08144218
+ .4byte _08144218
+ .4byte _08144218
+ .4byte _08144218
+ .4byte _08144428
+_08144218:
+ ldr r0, _08144250
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _0814422A
+ b _08144446
+_0814422A:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r6
+ movs r1, 0x1
+ strh r1, [r0, 0x8]
+ movs r1, 0x58
+ strh r1, [r0, 0xE]
+ movs r3, 0xA
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ strh r2, [r0, 0x24]
+ ldr r0, _08144254
+ strh r2, [r0]
+ b _08144446
+ .align 2, 0
+_08144250: .4byte gPaletteFade
+_08144254: .4byte gUnknown_02039320
+_08144258:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r6
+ ldrh r2, [r1, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _08144270
+ subs r0, r2, 0x1
+ strh r0, [r1, 0xE]
+ b _08144446
+_08144270:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _08144446
+_08144278:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _08144320
+ ands r0, r1
+ strh r0, [r2]
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 3
+ adds r3, r0, r6
+ movs r0, 0xA
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r4, r0, r6
+ ldr r1, [r4]
+ ldr r0, _08144324
+ mov r8, r2
+ cmp r1, r0
+ bne _08144352
+ movs r1, 0xC
+ ldrsh r0, [r3, r1]
+ cmp r0, 0x33
+ bgt _0814434C
+ movs r4, 0
+ ldr r7, _08144328
+ adds r6, r3, 0
+_081442B0:
+ movs r2, 0xC
+ ldrsh r1, [r6, r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r7
+ ldr r0, [r0]
+ ldr r0, [r0, 0x4]
+ lsls r2, r4, 25
+ movs r3, 0x90
+ lsls r3, 20
+ adds r2, r3
+ lsrs r2, 24
+ movs r1, 0
+ movs r3, 0xF0
+ bl sub_8072BD8
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0x4
+ bls _081442B0
+ ldr r3, _0814432C
+ mov r0, r8
+ adds r1, r0, r5
+ lsls r1, 3
+ adds r1, r3
+ ldrh r0, [r1, 0xC]
+ adds r0, 0x1
+ strh r0, [r1, 0xC]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ movs r0, 0xA
+ ldrsh r2, [r1, r0]
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r3
+ movs r2, 0x1
+ strh r2, [r0, 0x24]
+ movs r2, 0xA
+ ldrsh r1, [r1, r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ movs r3, 0x22
+ ldrsh r0, [r0, r3]
+ cmp r0, 0x1
+ bne _08144334
+ movs r0, 0xC0
+ lsls r0, 2
+ ldr r1, _08144330
+ b _0814433A
+ .align 2, 0
+_08144320: .4byte 0x0000feff
+_08144324: .4byte sub_8143B68
+_08144328: .4byte gCreditsEntryPointerTable
+_0814432C: .4byte gTasks
+_08144330: .4byte 0x0000328d
+_08144334:
+ movs r0, 0xC0
+ lsls r0, 2
+ ldr r1, _08144348
+_0814433A:
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ b _08144446
+ .align 2, 0
+_08144348: .4byte 0x00001967
+_0814434C:
+ movs r0, 0xA
+ strh r0, [r3, 0x8]
+ b _08144446
+_08144352:
+ movs r0, 0
+ strh r0, [r4, 0x24]
+ b _08144446
+_08144358:
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 1
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _08144388
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08144446
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r6
+ movs r1, 0x82
+ strh r1, [r0, 0xE]
+ ldrh r1, [r0, 0x8]
+ adds r1, 0x1
+ strh r1, [r0, 0x8]
+ b _08144446
+ .align 2, 0
+_08144388: .4byte gPaletteFade
+_0814438C:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r6
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _081443A4
+ subs r0, r1, 0x1
+ strh r0, [r4, 0xE]
+ b _08144446
+_081443A4:
+ ldrb r0, [r4, 0xC]
+ ldrb r1, [r4, 0xA]
+ bl sub_8144454
+ lsls r0, 24
+ cmp r0, 0
+ beq _081443BA
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _08144446
+_081443BA:
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ movs r3, 0xA
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ movs r1, 0x22
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ bne _081443E0
+ movs r0, 0xC0
+ lsls r0, 2
+ ldr r1, _081443DC
+ b _081443E6
+ .align 2, 0
+_081443DC: .4byte 0x0000328d
+_081443E0:
+ movs r0, 0xC0
+ lsls r0, 2
+ ldr r1, _081443F4
+_081443E6:
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ b _08144446
+ .align 2, 0
+_081443F4: .4byte 0x00001967
+_081443F8:
+ ldr r0, _08144420
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08144446
+ movs r0, 0
+ movs r1, 0x9
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r0, _08144424
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x2
+ strh r0, [r1, 0x8]
+ b _08144446
+ .align 2, 0
+_08144420: .4byte gPaletteFade
+_08144424: .4byte gTasks
+_08144428:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r6
+ movs r2, 0xA
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ movs r1, 0x1
+ strh r1, [r0, 0x10]
+ adds r0, r5, 0
+ bl DestroyTask
+_08144446:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81441B8
+
+ thumb_func_start sub_8144454
+sub_8144454: @ 8144454
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r6, r3, 0
+ lsls r1, 24
+ lsrs r2, r1, 24
+ adds r5, r2, 0
+ ldr r4, _08144508
+ cmp r3, 0x6
+ bne _08144474
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0x2
+ strh r1, [r0, 0x1E]
+_08144474:
+ cmp r3, 0xC
+ bne _08144486
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0x1
+ strh r1, [r0, 0x16]
+ strh r1, [r0, 0x1E]
+_08144486:
+ cmp r3, 0x12
+ bne _08144496
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0x2
+ strh r1, [r0, 0x1E]
+_08144496:
+ cmp r3, 0x18
+ bne _081444AA
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0x2
+ strh r1, [r0, 0x16]
+ movs r1, 0x1
+ strh r1, [r0, 0x1E]
+_081444AA:
+ cmp r3, 0x1E
+ bne _081444BA
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0x2
+ strh r1, [r0, 0x1E]
+_081444BA:
+ cmp r3, 0x23
+ bne _081444CE
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0x3
+ strh r1, [r0, 0x16]
+ movs r1, 0x1
+ strh r1, [r0, 0x1E]
+_081444CE:
+ cmp r3, 0x28
+ bne _081444DE
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0x2
+ strh r1, [r0, 0x1E]
+_081444DE:
+ cmp r6, 0x2E
+ bne _081444F2
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0x4
+ strh r1, [r0, 0x16]
+ movs r1, 0x1
+ strh r1, [r0, 0x1E]
+_081444F2:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0x1E
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0814450C
+ movs r0, 0
+ b _0814450E
+ .align 2, 0
+_08144508: .4byte gTasks
+_0814450C:
+ movs r0, 0x1
+_0814450E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8144454
+
+ thumb_func_start sub_8144514
+sub_8144514: @ 8144514
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r6, _08144548
+ ldr r3, _0814454C
+ lsls r0, 2
+ add r0, r8
+ lsls r0, 3
+ adds r2, r0, r3
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1
+ beq _08144550
+ cmp r0, 0x1
+ bgt _0814453C
+ b _08144658
+_0814453C:
+ cmp r0, 0x2
+ beq _08144584
+ cmp r0, 0x3
+ bne _08144546
+ b _08144644
+_08144546:
+ b _08144658
+ .align 2, 0
+_08144548: .4byte 0x0201c000
+_0814454C: .4byte gTasks
+_08144550:
+ adds r0, r6, 0
+ adds r0, 0x8A
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _0814456E
+ movs r4, 0xA
+ ldrsh r0, [r2, r4]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ movs r4, 0x24
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ beq _08144658
+_0814456E:
+ movs r0, 0xA
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ movs r1, 0
+ strh r1, [r0, 0x24]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ b _08144656
+_08144584:
+ adds r0, r6, 0
+ adds r0, 0x88
+ ldrh r1, [r0]
+ mov r9, r0
+ cmp r1, 0x44
+ beq _08144658
+ movs r4, 0xA
+ ldrsh r1, [r2, r4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ ldr r1, [r0]
+ ldr r0, _081445EC
+ cmp r1, r0
+ bne _08144658
+ adds r7, r6, 0
+ adds r7, 0x8C
+ ldrh r0, [r7]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ ldr r4, _081445F0
+ adds r5, r6, 0
+ adds r5, 0x8A
+ ldrh r3, [r5]
+ lsls r2, r3, 1
+ adds r1, r2, r4
+ ldrb r1, [r1]
+ adds r4, 0x1
+ adds r2, r4
+ ldrb r2, [r2]
+ bl sub_81456B4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldrh r1, [r7]
+ adds r0, r6, 0
+ adds r0, 0x8E
+ ldrh r0, [r0]
+ subs r0, 0x1
+ cmp r1, r0
+ bge _081445F8
+ adds r0, r1, 0x1
+ strh r0, [r7]
+ ldr r1, _081445F4
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x32
+ b _0814460A
+ .align 2, 0
+_081445EC: .4byte sub_8143B68
+_081445F0: .4byte gUnknown_0840CA00
+_081445F4: .4byte gSprites
+_081445F8:
+ movs r0, 0
+ strh r0, [r7]
+ ldr r1, _08144620
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0x80
+ lsls r1, 2
+_0814460A:
+ strh r1, [r0, 0x34]
+ mov r1, r9
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ ldrh r0, [r5]
+ cmp r0, 0x2
+ bne _08144624
+ movs r0, 0
+ b _08144626
+ .align 2, 0
+_08144620: .4byte gSprites
+_08144624:
+ adds r0, 0x1
+_08144626:
+ strh r0, [r5]
+ ldr r0, _08144640
+ mov r2, r8
+ lsls r1, r2, 2
+ add r1, r8
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x32
+ strh r0, [r1, 0xE]
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _08144658
+ .align 2, 0
+_08144640: .4byte gTasks
+_08144644:
+ ldrh r1, [r2, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r2, r3]
+ cmp r0, 0
+ beq _08144654
+ subs r0, r1, 0x1
+ strh r0, [r2, 0xE]
+ b _08144658
+_08144654:
+ movs r0, 0x1
+_08144656:
+ strh r0, [r2, 0x8]
+_08144658:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8144514
+
+ thumb_func_start sub_8144664
+sub_8144664: @ 8144664
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0814468C
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r0, r2]
+ adds r6, r1, 0
+ cmp r0, 0x32
+ bls _08144680
+ b _0814492C
+_08144680:
+ lsls r0, 2
+ ldr r1, _08144690
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0814468C: .4byte gTasks
+_08144690: .4byte _08144694
+ .align 2, 0
+_08144694:
+ .4byte _08144760
+ .4byte _08144784
+ .4byte _081447D8
+ .4byte _081447F0
+ .4byte _0814482C
+ .4byte _08144850
+ .4byte _0814489C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _081448A8
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _081448C8
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _081448EC
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _0814492C
+ .4byte _08144920
+_08144760:
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r6
+ ldrh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 17
+ movs r1, 0x7F
+ ands r0, r1
+ movs r1, 0xC
+ bl Sin
+ ldr r1, _08144780
+ strh r0, [r1]
+ b _081447A8
+ .align 2, 0
+_08144780: .4byte gUnknown_0203935A
+_08144784:
+ ldr r7, _081447B0
+ movs r3, 0
+ ldrsh r4, [r7, r3]
+ cmp r4, 0
+ beq _081447B4
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r6
+ ldrh r0, [r4, 0x12]
+ lsls r0, 16
+ asrs r0, 17
+ movs r1, 0x7F
+ ands r0, r1
+ movs r1, 0xC
+ bl Sin
+ strh r0, [r7]
+_081447A8:
+ ldrh r0, [r4, 0x12]
+ adds r0, 0x1
+ strh r0, [r4, 0x12]
+ b _0814492C
+ .align 2, 0
+_081447B0: .4byte gUnknown_0203935A
+_081447B4:
+ ldr r3, _081447D4
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r6
+ movs r0, 0xC
+ ldrsh r2, [r1, r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x2
+ strh r2, [r0, 0x2E]
+ strh r4, [r1, 0x12]
+ b _08144848
+ .align 2, 0
+_081447D4: .4byte gSprites
+_081447D8:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r6
+ ldrh r2, [r1, 0x12]
+ movs r3, 0x12
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x3F
+ bgt _08144848
+ adds r0, r2, 0x1
+ strh r0, [r1, 0x12]
+ b _08144866
+_081447F0:
+ ldr r3, _08144828
+ lsls r2, r5, 2
+ adds r2, r5
+ lsls r2, 3
+ adds r2, r6
+ movs r0, 0xC
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x3
+ strh r1, [r0, 0x2E]
+ movs r0, 0xE
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x1
+ strh r1, [r0, 0x2E]
+ movs r0, 0x78
+ strh r0, [r2, 0x10]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _0814492C
+ .align 2, 0
+_08144828: .4byte gSprites
+_0814482C:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0, r6
+ ldrh r2, [r1, 0x10]
+ movs r3, 0x10
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _08144844
+ subs r0, r2, 0x1
+ strh r0, [r1, 0x10]
+ b _0814492C
+_08144844:
+ movs r0, 0x40
+ strh r0, [r1, 0x12]
+_08144848:
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+ b _0814492C
+_08144850:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r4, r0, r6
+ ldrh r1, [r4, 0x12]
+ movs r2, 0x12
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ ble _0814487C
+ subs r0, r1, 0x1
+ strh r0, [r4, 0x12]
+_08144866:
+ movs r1, 0x7F
+ ands r0, r1
+ movs r1, 0x14
+ bl Sin
+ ldr r1, _08144878
+ strh r0, [r1]
+ b _0814492C
+ .align 2, 0
+_08144878: .4byte gUnknown_0203935A
+_0814487C:
+ ldr r2, _08144898
+ movs r3, 0xC
+ ldrsh r1, [r4, r3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x1
+ strh r1, [r0, 0x2E]
+ ldrh r0, [r4, 0x8]
+ adds r0, 0x1
+ strh r0, [r4, 0x8]
+ b _0814492C
+ .align 2, 0
+_08144898: .4byte gSprites
+_0814489C:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r6
+ movs r1, 0x32
+ b _0814492A
+_081448A8:
+ ldr r3, _081448C4
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r6
+ movs r0, 0xE
+ ldrsh r2, [r1, r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x2
+ b _081448E0
+ .align 2, 0
+_081448C4: .4byte gSprites
+_081448C8:
+ ldr r3, _081448E8
+ lsls r1, r5, 2
+ adds r1, r5
+ lsls r1, 3
+ adds r1, r6
+ movs r0, 0xC
+ ldrsh r2, [r1, r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r3
+ movs r2, 0x4
+_081448E0:
+ strh r2, [r0, 0x2E]
+ movs r0, 0x32
+ strh r0, [r1, 0x8]
+ b _0814492C
+ .align 2, 0
+_081448E8: .4byte gSprites
+_081448EC:
+ ldr r3, _0814491C
+ lsls r2, r5, 2
+ adds r2, r5
+ lsls r2, 3
+ adds r2, r6
+ movs r0, 0xC
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x5
+ strh r1, [r0, 0x2E]
+ movs r0, 0xE
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ movs r1, 0x3
+ strh r1, [r0, 0x2E]
+ movs r0, 0x32
+ strh r0, [r2, 0x8]
+ b _0814492C
+ .align 2, 0
+_0814491C: .4byte gSprites
+_08144920:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r6
+ movs r1, 0
+_0814492A:
+ strh r1, [r0, 0x8]
+_0814492C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8144664
+
+ thumb_func_start sub_8144934
+sub_8144934: @ 8144934
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _08144958
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r0, r1
+ movs r3, 0x8
+ ldrsh r0, [r0, r3]
+ adds r4, r1, 0
+ cmp r0, 0x4
+ bhi _08144974
+ lsls r0, 2
+ ldr r1, _0814495C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08144958: .4byte gTasks
+_0814495C: .4byte _08144960
+ .align 2, 0
+_08144960:
+ .4byte _08144974
+ .4byte _081449B8
+ .4byte _081449C4
+ .4byte _08144A0C
+ .4byte _08144A5C
+_08144974:
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r2, r0, r4
+ movs r1, 0xA
+ ldrsh r0, [r2, r1]
+ ldr r5, _081449C0
+ cmp r0, r5
+ beq _081449B8
+ movs r3, 0xC
+ ldrsh r1, [r2, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r3, r0, r4
+ movs r0, 0x26
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0xC
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x2
+ bne _081449B8
+ movs r1, 0xA
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4
+ movs r0, 0x14
+ strh r0, [r1, 0x8]
+ strh r5, [r2, 0xA]
+_081449B8:
+ movs r0, 0
+ bl sub_8149020
+ b _08144A62
+ .align 2, 0
+_081449C0: .4byte 0x00007fff
+_081449C4:
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r2, r0, r4
+ movs r3, 0xA
+ ldrsh r0, [r2, r3]
+ ldr r5, _08144A08
+ cmp r0, r5
+ beq _08144A54
+ movs r0, 0xC
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ movs r3, 0xA
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r3, r0, r4
+ ldrh r1, [r3, 0x12]
+ movs r0, 0x80
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0xA0
+ lsls r1, 2
+ cmp r0, r1
+ bne _08144A54
+ movs r0, 0x1
+ strh r0, [r3, 0x8]
+ strh r5, [r2, 0xA]
+ b _08144A54
+ .align 2, 0
+_08144A08: .4byte 0x00007fff
+_08144A0C:
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r2, r0, r4
+ ldrh r3, [r2, 0xA]
+ movs r0, 0xA
+ ldrsh r1, [r2, r0]
+ ldr r5, _08144A48
+ cmp r1, r5
+ beq _08144A54
+ ldr r0, _08144A4C
+ cmp r1, r0
+ bne _08144A50
+ movs r3, 0xC
+ ldrsh r1, [r2, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ movs r3, 0xA
+ ldrsh r1, [r0, r3]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0xA
+ strh r1, [r0, 0x8]
+ strh r5, [r2, 0xA]
+ b _08144A54
+ .align 2, 0
+_08144A48: .4byte 0x00007fff
+_08144A4C: .4byte 0x000001f3
+_08144A50:
+ adds r0, r3, 0x1
+ strh r0, [r2, 0xA]
+_08144A54:
+ movs r0, 0x1
+ bl sub_8149020
+ b _08144A62
+_08144A5C:
+ movs r0, 0x2
+ bl sub_8149020
+_08144A62:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8144934
+
+ thumb_func_start sub_8144A68
+sub_8144A68: @ 8144A68
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ cmp r0, 0x4
+ bls _08144A7E
+ b _08144DFC
+_08144A7E:
+ lsls r0, 2
+ ldr r1, _08144A88
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08144A88: .4byte _08144A8C
+ .align 2, 0
+_08144A8C:
+ .4byte _08144AA0
+ .4byte _08144B48
+ .4byte _08144BF4
+ .4byte _08144CA0
+ .4byte _08144D50
+_08144AA0:
+ ldr r5, _08144B40
+ ldr r0, _08144B44
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r3, 0
+ movs r2, 0x88
+ lsls r2, 1
+ strh r2, [r0, 0x20]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x20]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r2, 0x2E
+ strh r2, [r0, 0x22]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x22]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r1, 0x80
+ lsls r1, 6
+ movs r0, 0
+ movs r2, 0x20
+ b _08144DF0
+ .align 2, 0
+_08144B40: .4byte gSprites
+_08144B44: .4byte gTasks
+_08144B48:
+ ldr r5, _08144BEC
+ ldr r0, _08144BF0
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r3, 0
+ movs r1, 0x78
+ strh r1, [r0, 0x20]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x88
+ lsls r1, 1
+ strh r1, [r0, 0x20]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r2, 0x2E
+ strh r2, [r0, 0x22]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x22]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r1, 0x80
+ lsls r1, 6
+ movs r0, 0
+ movs r2, 0x20
+ b _08144DF0
+ .align 2, 0
+_08144BEC: .4byte gSprites
+_08144BF0: .4byte gTasks
+_08144BF4:
+ ldr r5, _08144C98
+ ldr r0, _08144C9C
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r3, 0
+ movs r1, 0x78
+ strh r1, [r0, 0x20]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x88
+ lsls r1, 1
+ strh r1, [r0, 0x20]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r2, 0x2E
+ strh r2, [r0, 0x22]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x22]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r1, 0x80
+ lsls r1, 6
+ movs r2, 0x80
+ lsls r2, 2
+ movs r0, 0x1
+ b _08144DF0
+ .align 2, 0
+_08144C98: .4byte gSprites
+_08144C9C: .4byte gTasks
+_08144CA0:
+ ldr r5, _08144D44
+ ldr r0, _08144D48
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r3, 0
+ movs r1, 0x78
+ strh r1, [r0, 0x20]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, _08144D4C
+ strh r1, [r0, 0x20]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r2, 0x2E
+ strh r2, [r0, 0x22]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x22]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r1, 0x80
+ lsls r1, 6
+ movs r2, 0x80
+ lsls r2, 2
+ movs r0, 0x1
+ b _08144DF0
+ .align 2, 0
+_08144D44: .4byte gSprites
+_08144D48: .4byte gTasks
+_08144D4C: .4byte 0x0000ffe0
+_08144D50:
+ ldr r5, _08144EBC
+ ldr r0, _08144EC0
+ lsls r4, r7, 2
+ adds r4, r7
+ lsls r4, 3
+ adds r4, r0
+ movs r1, 0x12
+ ldrsh r0, [r4, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ adds r0, r2, 0
+ ands r0, r3
+ strb r0, [r1]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ ands r2, r1
+ strb r2, [r0]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r3, 0
+ movs r1, 0x58
+ strh r1, [r0, 0x20]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x98
+ strh r1, [r0, 0x20]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ movs r2, 0x2E
+ strh r2, [r0, 0x22]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r2, [r0, 0x22]
+ movs r0, 0x12
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r0, 0x14
+ ldrsh r1, [r4, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r3, [r0, 0x2E]
+ movs r1, 0x80
+ lsls r1, 6
+ movs r2, 0x80
+ lsls r2, 2
+ movs r0, 0x2
+_08144DF0:
+ movs r3, 0x8
+ bl sub_8148EC0
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4, 0x8]
+_08144DFC:
+ ldr r0, _08144EC4
+ movs r1, 0
+ bl CreateTask
+ ldr r6, _08144EC0
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r5, r1, r6
+ lsls r0, 24
+ lsrs r0, 24
+ movs r4, 0
+ strh r0, [r5, 0xC]
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ mov r1, r8
+ strh r1, [r0, 0x8]
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ strh r4, [r0, 0xA]
+ movs r0, 0xC
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ strh r7, [r0, 0xC]
+ ldr r0, _08144EC8
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0xA]
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ strh r4, [r0, 0x8]
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ strh r7, [r0, 0xA]
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ ldrh r1, [r5, 0x12]
+ strh r1, [r0, 0xC]
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ ldrh r1, [r5, 0x14]
+ strh r1, [r0, 0xE]
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6
+ strh r4, [r0, 0x10]
+ mov r1, r8
+ cmp r1, 0x2
+ bne _08144EB0
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r6
+ movs r0, 0x45
+ strh r0, [r1, 0x12]
+_08144EB0:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08144EBC: .4byte gSprites
+_08144EC0: .4byte gTasks
+_08144EC4: .4byte sub_8144934
+_08144EC8: .4byte sub_8144664
+ thumb_func_end sub_8144A68
+
+ thumb_func_start sub_8144ECC
+sub_8144ECC: @ 8144ECC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, _08144F28
+ ldr r1, _08144F2C
+ adds r6, r0, r1
+ ldrb r0, [r6]
+ cmp r0, 0x1
+ beq _08144F38
+ cmp r0, 0x1
+ ble _08144EF0
+ cmp r0, 0x2
+ beq _08144F5C
+ cmp r0, 0x3
+ bne _08144EF0
+ b _0814508C
+_08144EF0:
+ movs r0, 0x80
+ lsls r0, 19
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, _08144F30
+ movs r0, 0x8
+ strh r0, [r2]
+ ldr r0, _08144F34
+ 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]
+ adds r0, 0x3A
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ movs r0, 0x1
+ strb r0, [r6]
+ b _081450A2
+ .align 2, 0
+_08144F28: .4byte gMain
+_08144F2C: .4byte 0x0000043c
+_08144F30: .4byte REG_BG3HOFS
+_08144F34: .4byte REG_BG3VOFS
+_08144F38:
+ ldr r1, _08144F54
+ movs r0, 0x22
+ strh r0, [r1]
+ ldr r1, _08144F58
+ movs r0, 0
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl sub_8148CB0
+ ldrb r0, [r6]
+ adds r0, 0x1
+ strb r0, [r6]
+ b _081450A2
+ .align 2, 0
+_08144F54: .4byte gUnknown_02039358
+_08144F58: .4byte gUnknown_0203935A
+_08144F5C:
+ ldr r0, _08144FBC
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _08144FE0
+ ldr r0, _08144FC0
+ bl LoadCompressedObjectPic
+ ldr r0, _08144FC4
+ bl LoadCompressedObjectPic
+ ldr r0, _08144FC8
+ bl LoadCompressedObjectPic
+ ldr r0, _08144FCC
+ bl LoadSpritePalettes
+ movs r0, 0x78
+ movs r1, 0x2E
+ bl sub_8149310
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _08144FD0
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ strh r2, [r4, 0x12]
+ ldr r6, _08144FD4
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r5, r6, 0
+ adds r5, 0x1C
+ adds r2, r0, r5
+ ldr r1, _08144FD8
+ str r1, [r2]
+ adds r6, 0x8
+ adds r0, r6
+ ldr r1, _08144FDC
+ str r1, [r0]
+ movs r0, 0x88
+ lsls r0, 1
+ movs r1, 0x2E
+ bl sub_8149368
+ b _08145034
+ .align 2, 0
+_08144FBC: .4byte gSaveBlock2
+_08144FC0: .4byte gIntro2BrendanSpriteSheet
+_08144FC4: .4byte gUnknown_08416E34
+_08144FC8: .4byte gIntro2BicycleSpriteSheet
+_08144FCC: .4byte gIntro2SpritePalettes
+_08144FD0: .4byte gTasks
+_08144FD4: .4byte gSprites
+_08144FD8: .4byte sub_8145378
+_08144FDC: .4byte gUnknown_0840CA54
+_08144FE0:
+ ldr r0, _0814505C
+ bl LoadCompressedObjectPic
+ ldr r0, _08145060
+ bl LoadCompressedObjectPic
+ ldr r0, _08145064
+ bl LoadCompressedObjectPic
+ ldr r0, _08145068
+ bl LoadSpritePalettes
+ movs r0, 0x78
+ movs r1, 0x2E
+ bl sub_8149368
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _0814506C
+ lsls r4, r5, 2
+ adds r4, r5
+ lsls r4, 3
+ adds r4, r0
+ strh r2, [r4, 0x12]
+ ldr r6, _08145070
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r5, r6, 0
+ adds r5, 0x1C
+ adds r2, r0, r5
+ ldr r1, _08145074
+ str r1, [r2]
+ adds r6, 0x8
+ adds r0, r6
+ ldr r1, _08145078
+ str r1, [r0]
+ movs r0, 0x88
+ lsls r0, 1
+ movs r1, 0x2E
+ bl sub_8149310
+_08145034:
+ lsls r0, 24
+ lsrs r2, r0, 24
+ strh r2, [r4, 0x14]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r5, r0, r5
+ ldr r1, _0814507C
+ str r1, [r5]
+ adds r0, r6
+ ldr r1, _08145080
+ str r1, [r0]
+ ldr r1, _08145084
+ ldr r0, _08145088
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _081450A2
+ .align 2, 0
+_0814505C: .4byte gIntro2MaySpriteSheet
+_08145060: .4byte gUnknown_08416E24
+_08145064: .4byte gIntro2BicycleSpriteSheet
+_08145068: .4byte gIntro2SpritePalettes
+_0814506C: .4byte gTasks
+_08145070: .4byte gSprites
+_08145074: .4byte sub_8145378
+_08145078: .4byte gUnknown_0840CA54
+_0814507C: .4byte sub_8145420
+_08145080: .4byte gUnknown_0840CA94
+_08145084: .4byte gMain
+_08145088: .4byte 0x0000043c
+_0814508C:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8144A68
+ adds r0, r4, 0
+ bl sub_8148E90
+ movs r0, 0
+ strb r0, [r6]
+ movs r0, 0x1
+ b _081450A4
+_081450A2:
+ movs r0, 0
+_081450A4:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8144ECC
+
+ thumb_func_start sub_81450AC
+sub_81450AC: @ 81450AC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08145120
+ 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, 0
+ beq _081450D2
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ strh r0, [r4, 0x8]
+_081450D2:
+ ldrh r1, [r4, 0xA]
+ movs r2, 0xA
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _081450E8
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ strh r0, [r4, 0xA]
+_081450E8:
+ ldrh r1, [r4, 0xC]
+ movs r2, 0xC
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _081450FE
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ strh r0, [r4, 0xC]
+_081450FE:
+ ldrh r1, [r4, 0xE]
+ movs r2, 0xE
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _08145114
+ lsls r0, r1, 24
+ lsrs r0, 24
+ bl DestroyTask
+ movs r0, 0
+ strh r0, [r4, 0xE]
+_08145114:
+ ldr r1, _08145124
+ movs r0, 0x1
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08145120: .4byte gTasks
+_08145124: .4byte gUnknown_0203935C
+ thumb_func_end sub_81450AC
+
+ thumb_func_start sub_8145128
+sub_8145128: @ 8145128
+ push {r4-r7,lr}
+ adds r3, r0, 0
+ adds r4, r2, 0
+ lsls r3, 16
+ lsrs r3, 16
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r4, 16
+ lsrs r5, r4, 16
+ ldr r0, _081451EC
+ movs r6, 0xC0
+ lsls r6, 19
+ adds r3, r6
+ adds r1, r3, 0
+ bl LZ77UnCompVram
+ ldr r0, _081451F0
+ adds r1, r5, 0
+ movs r2, 0x20
+ bl LoadPalette
+ lsrs r4, 20
+ lsls r4, 28
+ lsrs r4, 16
+ movs r2, 0
+ adds r1, r4, 0x1
+ ldr r3, _081451F4
+_0814515E:
+ lsls r0, r2, 1
+ adds r0, r7
+ adds r0, r6
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r3
+ bls _0814515E
+ movs r2, 0
+ adds r0, r4, 0x2
+ adds r6, r4, 0
+ adds r6, 0x17
+ movs r1, 0x2B
+ adds r1, r4
+ mov r12, r1
+ adds r4, 0x42
+ ldr r5, _081451F8
+ adds r3, r0, 0
+_08145184:
+ lsls r0, r2, 1
+ adds r0, r7
+ adds r0, r5
+ adds r1, r2, r3
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x14
+ bls _08145184
+ movs r2, 0
+ ldr r5, _081451FC
+ adds r3, r6, 0
+_0814519E:
+ lsls r0, r2, 1
+ adds r0, r7
+ adds r0, r5
+ adds r1, r2, r3
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x13
+ bls _0814519E
+ movs r2, 0
+ ldr r5, _08145200
+ mov r3, r12
+_081451B8:
+ lsls r0, r2, 1
+ adds r0, r7
+ adds r0, r5
+ adds r1, r2, r3
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x16
+ bls _081451B8
+ movs r2, 0
+ ldr r3, _08145204
+_081451D0:
+ lsls r0, r2, 1
+ adds r0, r7
+ adds r0, r3
+ adds r1, r2, r4
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0xB
+ bls _081451D0
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081451EC: .4byte gCreditsCopyrightEnd_Gfx
+_081451F0: .4byte gIntroCopyright_Pal
+_081451F4: .4byte 0x000003ff
+_081451F8: .4byte 0x060001c8
+_081451FC: .4byte 0x06000248
+_08145200: .4byte 0x060002c8
+_08145204: .4byte 0x06000348
+ thumb_func_end sub_8145128
+
+ thumb_func_start sub_8145208
+sub_8145208: @ 8145208
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r3, r2, 0
+ movs r0, 0x3F
+ ands r0, r2
+ adds r1, r0, 0
+ adds r1, 0x50
+ cmp r2, 0xFF
+ bne _08145220
+ movs r0, 0x1
+ b _08145246
+_08145220:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _08145230
+ movs r2, 0x80
+ lsls r2, 4
+ adds r0, r2, 0
+ orrs r1, r0
+_08145230:
+ movs r0, 0x40
+ ands r3, r0
+ cmp r3, 0
+ beq _08145244
+ movs r2, 0x80
+ lsls r2, 3
+ adds r0, r2, 0
+ orrs r1, r0
+ lsls r0, r1, 16
+ lsrs r1, r0, 16
+_08145244:
+ adds r0, r1, 0
+_08145246:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8145208
+
+ thumb_func_start sub_814524C
+sub_814524C: @ 814524C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ str r0, [sp]
+ ldr r0, [sp, 0x2C]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x4]
+ lsls r3, 16
+ lsrs r3, 16
+ str r3, [sp, 0x8]
+ lsls r0, 16
+ lsrs r0, 20
+ lsls r0, 28
+ lsrs r0, 16
+ mov r9, r0
+ movs r5, 0
+_0814527A:
+ movs r4, 0
+ lsls r7, r5, 1
+ ldr r1, [sp, 0x4]
+ adds r0, r1, r5
+ adds r2, r5, 0x1
+ mov r8, r2
+ lsls r0, 6
+ ldr r1, [sp, 0x8]
+ adds r6, r0, r1
+_0814528C:
+ adds r0, r7, r5
+ adds r0, r4
+ ldr r2, [sp]
+ adds r0, r2, r0
+ ldrb r0, [r0]
+ bl sub_8145208
+ mov r2, r10
+ adds r1, r2, r4
+ lsls r1, 1
+ adds r1, r6
+ movs r2, 0xC0
+ lsls r2, 19
+ adds r1, r2
+ add r0, r9
+ strh r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x2
+ bls _0814528C
+ mov r1, r8
+ lsls r0, r1, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x4
+ bls _0814527A
+ 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_814524C
+
+ thumb_func_start sub_81452D0
+sub_81452D0: @ 81452D0
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsrs r1, 20
+ lsls r1, 28
+ lsrs r1, 16
+ movs r2, 0
+ ldr r7, _08145360
+ movs r4, 0xC0
+ lsls r4, 19
+ adds r1, 0x1
+ ldr r3, _08145364
+_081452EE:
+ lsls r0, r2, 1
+ adds r0, r5
+ adds r0, r4
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, r3
+ bls _081452EE
+ str r6, [sp]
+ adds r0, r7, 0
+ movs r1, 0x3
+ movs r2, 0x7
+ adds r3, r5, 0
+ bl sub_814524C
+ ldr r0, _08145368
+ str r6, [sp]
+ movs r1, 0x7
+ movs r2, 0x7
+ adds r3, r5, 0
+ bl sub_814524C
+ ldr r4, _0814536C
+ str r6, [sp]
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0x7
+ adds r3, r5, 0
+ bl sub_814524C
+ str r6, [sp]
+ adds r0, r4, 0
+ movs r1, 0x10
+ movs r2, 0x7
+ adds r3, r5, 0
+ bl sub_814524C
+ ldr r0, _08145370
+ str r6, [sp]
+ movs r1, 0x14
+ movs r2, 0x7
+ adds r3, r5, 0
+ bl sub_814524C
+ ldr r0, _08145374
+ str r6, [sp]
+ movs r1, 0x18
+ movs r2, 0x7
+ adds r3, r5, 0
+ bl sub_814524C
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08145360: .4byte gUnknown_0840B83C
+_08145364: .4byte 0x000003ff
+_08145368: .4byte gUnknown_0840B84B
+_0814536C: .4byte gUnknown_0840B85A
+_08145370: .4byte gUnknown_0840B869
+_08145374: .4byte gUnknown_0840B878
+ thumb_func_end sub_81452D0
+
+ thumb_func_start sub_8145378
+sub_8145378: @ 8145378
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _08145390
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08145394
+ adds r0, r4, 0
+ bl DestroySprite
+ b _08145418
+ .align 2, 0
+_08145390: .4byte gUnknown_0203935C
+_08145394:
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x5
+ bhi _08145418
+ lsls r0, 2
+ ldr r1, _081453A8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081453A8: .4byte _081453AC
+ .align 2, 0
+_081453AC:
+ .4byte _081453C4
+ .4byte _081453CE
+ .4byte _081453D4
+ .4byte _081453DE
+ .4byte _081453E8
+ .4byte _081453FE
+_081453C4:
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnimIfDifferent
+ b _08145418
+_081453CE:
+ adds r0, r4, 0
+ movs r1, 0x1
+ b _08145402
+_081453D4:
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnimIfDifferent
+ b _08145418
+_081453DE:
+ adds r0, r4, 0
+ movs r1, 0x3
+ bl StartSpriteAnimIfDifferent
+ b _08145418
+_081453E8:
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnimIfDifferent
+ ldrh r1, [r4, 0x20]
+ movs r2, 0x20
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x78
+ ble _08145418
+ subs r0, r1, 0x1
+ b _08145416
+_081453FE:
+ adds r0, r4, 0
+ movs r1, 0
+_08145402:
+ bl StartSpriteAnimIfDifferent
+ ldrh r2, [r4, 0x20]
+ movs r0, 0x20
+ ldrsh r1, [r4, r0]
+ movs r0, 0x20
+ negs r0, r0
+ cmp r1, r0
+ ble _08145418
+ subs r0, r2, 0x1
+_08145416:
+ strh r0, [r4, 0x20]
+_08145418:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8145378
+
+ thumb_func_start sub_8145420
+sub_8145420: @ 8145420
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, _08145438
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0814543C
+ adds r0, r4, 0
+ bl DestroySprite
+ b _081454D8
+ .align 2, 0
+_08145438: .4byte gUnknown_0203935C
+_0814543C:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x1
+ beq _08145464
+ cmp r0, 0x1
+ bgt _0814544E
+ cmp r0, 0
+ beq _08145458
+ b _081454D8
+_0814544E:
+ cmp r0, 0x2
+ beq _081454A0
+ cmp r0, 0x3
+ beq _081454BE
+ b _081454D8
+_08145458:
+ strh r0, [r4, 0x26]
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnimIfDifferent
+ b _081454D8
+_08145464:
+ movs r1, 0x20
+ ldrsh r0, [r4, r1]
+ cmp r0, 0xC8
+ ble _08145476
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl StartSpriteAnimIfDifferent
+ b _0814547E
+_08145476:
+ adds r0, r4, 0
+ movs r1, 0x2
+ bl StartSpriteAnimIfDifferent
+_0814547E:
+ ldrh r2, [r4, 0x20]
+ movs r0, 0x20
+ ldrsh r1, [r4, r0]
+ movs r0, 0x20
+ negs r0, r0
+ cmp r1, r0
+ ble _08145490
+ subs r0, r2, 0x2
+ strh r0, [r4, 0x20]
+_08145490:
+ ldr r0, _0814549C
+ ldrh r0, [r0]
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ b _081454D8
+ .align 2, 0
+_0814549C: .4byte gUnknown_0203935A
+_081454A0:
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnimIfDifferent
+ ldrh r1, [r4, 0x3C]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _081454D8
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x1
+ b _081454D6
+_081454BE:
+ adds r0, r4, 0
+ movs r1, 0
+ bl StartSpriteAnimIfDifferent
+ ldrh r2, [r4, 0x20]
+ movs r0, 0x20
+ ldrsh r1, [r4, r0]
+ movs r0, 0x20
+ negs r0, r0
+ cmp r1, r0
+ ble _081454D8
+ subs r0, r2, 0x1
+_081454D6:
+ strh r0, [r4, 0x20]
+_081454D8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8145420
+
+ thumb_func_start sub_81454E0
+sub_81454E0: @ 81454E0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldr r0, _081454F8
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _081454FC
+ adds r0, r5, 0
+ bl DestroySprite
+ b _081456A6
+ .align 2, 0
+_081454F8: .4byte gUnknown_0203935C
+_081454FC:
+ ldrh r0, [r5, 0x3C]
+ adds r0, 0x1
+ strh r0, [r5, 0x3C]
+ movs r2, 0x2E
+ ldrsh r0, [r5, r2]
+ cmp r0, 0xA
+ bhi _08145544
+ lsls r0, 2
+ ldr r1, _08145514
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08145514: .4byte _08145518
+ .align 2, 0
+_08145518:
+ .4byte _08145544
+ .4byte _0814559E
+ .4byte _08145620
+ .4byte _08145660
+ .4byte _08145544
+ .4byte _08145544
+ .4byte _08145544
+ .4byte _08145544
+ .4byte _08145544
+ .4byte _08145544
+ .4byte _08145696
+_08145544:
+ ldrb r1, [r5, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r5, 0x1]
+ movs r0, 0x30
+ ldrsh r1, [r5, r0]
+ movs r0, 0x1F
+ ands r1, r0
+ lsls r1, 1
+ ldrb r2, [r5, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r5, 0x3]
+ movs r0, 0x10
+ strh r0, [r5, 0x32]
+ ldrh r4, [r5, 0x30]
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x80
+ lsls r0, 9
+ movs r1, 0x10
+ bl __divsi3
+ adds r1, r0, 0
+ str r1, [sp]
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _081456A6
+_0814559E:
+ ldrh r1, [r5, 0x32]
+ movs r2, 0x32
+ ldrsh r0, [r5, r2]
+ cmp r0, 0xFF
+ bgt _081455D4
+ adds r0, r1, 0
+ adds r0, 0x8
+ strh r0, [r5, 0x32]
+ ldrh r4, [r5, 0x30]
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0x32
+ ldrsh r1, [r5, r0]
+ movs r0, 0x80
+ lsls r0, 9
+ bl __divsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ adds r0, r4, 0
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ b _081455DA
+_081455D4:
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+_081455DA:
+ movs r2, 0x30
+ ldrsh r1, [r5, r2]
+ cmp r1, 0x2
+ beq _081456A6
+ cmp r1, 0x2
+ bgt _081455EC
+ cmp r1, 0x1
+ beq _081455F2
+ b _081456A6
+_081455EC:
+ cmp r1, 0x3
+ beq _0814560A
+ b _081456A6
+_081455F2:
+ ldrh r1, [r5, 0x3C]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08145602
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x1
+ strh r0, [r5, 0x22]
+_08145602:
+ ldrh r0, [r5, 0x20]
+ subs r0, 0x2
+ strh r0, [r5, 0x20]
+ b _081456A6
+_0814560A:
+ ldrh r0, [r5, 0x3C]
+ ands r1, r0
+ cmp r1, 0
+ bne _08145618
+ ldrh r0, [r5, 0x22]
+ adds r0, 0x1
+ strh r0, [r5, 0x22]
+_08145618:
+ ldrh r0, [r5, 0x20]
+ adds r0, 0x2
+ strh r0, [r5, 0x20]
+ b _081456A6
+_08145620:
+ ldrh r1, [r5, 0x34]
+ movs r2, 0x34
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _08145630
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x34]
+ b _081456A6
+_08145630:
+ ldr r1, _0814565C
+ movs r2, 0xF4
+ lsls r2, 4
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x10
+ strh r0, [r1]
+ ldrb r1, [r5, 0x1]
+ movs r0, 0xD
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r5, 0x1]
+ movs r0, 0x10
+ strh r0, [r5, 0x34]
+ ldrh r0, [r5, 0x2E]
+ adds r0, 0x1
+ strh r0, [r5, 0x2E]
+ b _081456A6
+ .align 2, 0
+_0814565C: .4byte REG_BLDCNT
+_08145660:
+ ldrh r1, [r5, 0x34]
+ movs r2, 0x34
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ beq _08145684
+ subs r1, 0x1
+ strh r1, [r5, 0x34]
+ ldr r3, _08145680
+ movs r0, 0x34
+ ldrsh r2, [r5, r0]
+ movs r0, 0x10
+ subs r0, r2
+ lsls r0, 8
+ adds r1, r0
+ strh r1, [r3]
+ b _081456A6
+ .align 2, 0
+_08145680: .4byte REG_BLDALPHA
+_08145684:
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+ movs r0, 0xA
+ strh r0, [r5, 0x2E]
+ b _081456A6
+_08145696:
+ ldr r0, _081456B0
+ movs r1, 0
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, r5, 0
+ bl DestroySprite
+_081456A6:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081456B0: .4byte REG_BLDCNT
+ thumb_func_end sub_81454E0
+
+ thumb_func_start sub_81456B4
+sub_81456B4: @ 81456B4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ lsls r0, 16
+ lsrs r6, r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ lsls r2, 16
+ lsrs r2, 16
+ str r2, [sp, 0x10]
+ lsls r3, 16
+ lsrs r3, 16
+ mov r9, r3
+ adds r0, r6, 0
+ bl NationalPokedexNumToSpecies
+ adds r6, r0, 0
+ cmp r6, 0xC9
+ beq _081456F8
+ movs r0, 0x9A
+ lsls r0, 1
+ cmp r6, r0
+ beq _081456EE
+ movs r7, 0
+ b _081456FC
+_081456EE:
+ ldr r0, _081456F4
+ ldr r7, [r0, 0x20]
+ b _081456FC
+ .align 2, 0
+_081456F4: .4byte gSaveBlock2
+_081456F8:
+ ldr r0, _081457E8
+ ldr r7, [r0, 0x1C]
+_081456FC:
+ lsls r0, r6, 3
+ ldr r1, _081457EC
+ adds r0, r1
+ ldr r1, _081457F0
+ lsls r2, r6, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _081457F4
+ mov r8, r4
+ mov r5, r9
+ lsls r4, r5, 2
+ add r4, r8
+ ldr r4, [r4]
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ str r7, [sp, 0x8]
+ movs r4, 0x1
+ str r4, [sp, 0xC]
+ bl sub_800D378
+ ldr r2, _081457F8
+ adds r0, r6, 0
+ movs r1, 0
+ bl species_and_otid_get_pal
+ lsls r5, 4
+ mov r8, r5
+ movs r1, 0x80
+ lsls r1, 1
+ add r1, r8
+ lsls r1, 16
+ lsrs r1, 16
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ mov r7, r9
+ lsls r6, r7, 24
+ lsrs r6, 24
+ mov r0, r9
+ adds r1, r6, 0
+ bl sub_8143648
+ ldr r0, _081457FC
+ mov r2, r10
+ lsls r1, r2, 16
+ asrs r1, 16
+ ldr r3, [sp, 0x10]
+ lsls r2, r3, 16
+ asrs r2, 16
+ movs r3, 0
+ bl CreateSprite
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _08145800
+ lsls r2, r4, 4
+ adds r2, r4
+ lsls r2, 2
+ adds r3, r2, r5
+ ldrb r1, [r3, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ mov r7, r8
+ orrs r0, r7
+ movs r1, 0xD
+ negs r1, r1
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3, 0x5]
+ mov r0, r9
+ adds r0, 0x1
+ strh r0, [r3, 0x30]
+ movs r0, 0x3E
+ adds r0, r3
+ mov r8, r0
+ ldrb r0, [r0]
+ orrs r0, r1
+ mov r1, r8
+ strb r0, [r1]
+ adds r0, r5, 0
+ adds r0, 0x1C
+ adds r2, r0
+ ldr r0, _08145804
+ str r0, [r2]
+ ldr r0, _08145808
+ movs r2, 0x20
+ ldrsh r1, [r3, r2]
+ movs r7, 0x22
+ ldrsh r2, [r3, r7]
+ movs r3, 0x1
+ bl CreateSprite
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ strh r4, [r0, 0x2E]
+ adds r1, r6, 0
+ bl StartSpriteAnimIfDifferent
+ adds r0, r4, 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
+_081457E8: .4byte gSaveBlock2
+_081457EC: .4byte gMonFrontPicTable
+_081457F0: .4byte gMonFrontPicCoords
+_081457F4: .4byte gUnknown_0840B5A0
+_081457F8: .4byte 0x0000ffff
+_081457FC: .4byte gUnknown_02024E8C
+_08145800: .4byte gSprites
+_08145804: .4byte sub_81454E0
+_08145808: .4byte gSpriteTemplate_840CAEC
+ thumb_func_end sub_81456B4
+
+ thumb_func_start sub_814580C
+sub_814580C: @ 814580C
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r4, _08145838
+ movs r1, 0x2E
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0xA
+ beq _08145830
+ ldr r0, _0814583C
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ beq _08145840
+_08145830:
+ adds r0, r3, 0
+ bl DestroySprite
+ b _081458D4
+ .align 2, 0
+_08145838: .4byte gSprites
+_0814583C: .4byte gUnknown_0203935C
+_08145840:
+ adds r0, r1, 0
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ movs r1, 0x3E
+ adds r1, r3
+ mov r12, r1
+ movs r1, 0x4
+ ands r1, r0
+ mov r0, r12
+ ldrb r2, [r0]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r12
+ strb r0, [r1]
+ movs r2, 0x2E
+ ldrsh r1, [r3, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r1, [r0, 0x1]
+ movs r0, 0xC
+ ands r0, r1
+ ldrb r2, [r3, 0x1]
+ movs r1, 0xD
+ negs r1, r1
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x1]
+ movs r0, 0x2E
+ ldrsh r2, [r3, r0]
+ lsls r0, r2, 4
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x1]
+ lsls r0, 30
+ lsrs r0, 30
+ movs r2, 0x4
+ negs r2, r2
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r3, 0x1]
+ movs r2, 0x2E
+ ldrsh r1, [r3, r2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x3]
+ movs r1, 0x3E
+ ands r1, r0
+ ldrb r2, [r3, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3, 0x3]
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r0, [r0, 0x20]
+ strh r0, [r3, 0x20]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrh r0, [r0, 0x22]
+ strh r0, [r3, 0x22]
+_081458D4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_814580C
+
+ thumb_func_start sub_81458DC
+sub_81458DC: @ 81458DC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ ldr r7, _0814597C
+ ldr r0, _08145980
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_8109E50
+ lsls r0, 16
+ lsrs r0, 16
+ bl SpeciesToNationalPokedexNum
+ lsls r0, 16
+ lsrs r0, 16
+ mov r10, r0
+ movs r4, 0x1
+ movs r5, 0
+ ldr r0, _08145984
+ mov r8, r0
+_0814590E:
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8090D90
+ lsls r0, 24
+ adds r6, r7, 0
+ adds r6, 0x90
+ cmp r0, 0
+ beq _0814592C
+ lsls r0, r5, 1
+ adds r0, r6, r0
+ strh r4, [r0]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_0814592C:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r8
+ bls _0814590E
+ adds r4, r5, 0
+ ldr r0, _08145984
+ lsls r1, r4, 16
+ mov r9, r1
+ movs r2, 0x8E
+ adds r2, r7
+ mov r8, r2
+ adds r1, r7, 0
+ adds r1, 0x86
+ str r1, [sp]
+ cmp r4, r0
+ bhi _08145964
+ adds r1, r6, 0
+ movs r3, 0
+ adds r2, r0, 0
+_08145954:
+ lsls r0, r4, 1
+ adds r0, r1, r0
+ strh r3, [r0]
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r2
+ bls _08145954
+_08145964:
+ movs r2, 0xE5
+ lsls r2, 2
+ adds r0, r7, r2
+ strh r5, [r0]
+ mov r1, r9
+ lsrs r0, r1, 16
+ cmp r0, 0x43
+ bhi _08145988
+ mov r2, r8
+ strh r5, [r2]
+ b _0814598E
+ .align 2, 0
+_0814597C: .4byte 0x0201c000
+_08145980: .4byte 0x00004023
+_08145984: .4byte 0x00000181
+_08145988:
+ movs r0, 0x44
+ mov r1, r8
+ strh r0, [r1]
+_0814598E:
+ movs r5, 0
+ movs r2, 0xE5
+ lsls r2, 2
+ adds r4, r7, r2
+ mov r9, r5
+ b _0814599E
+_0814599A:
+ cmp r5, 0x43
+ bhi _081459EE
+_0814599E:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r4]
+ bl __umodsi3
+ lsls r0, 16
+ lsrs r2, r0, 16
+ lsls r1, r5, 1
+ adds r1, r7, r1
+ lsls r0, r2, 1
+ adds r3, r6, r0
+ ldrh r0, [r3]
+ strh r0, [r1]
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ mov r0, r9
+ strh r0, [r3]
+ ldrh r0, [r4]
+ subs r0, 0x1
+ strh r0, [r4]
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r2, r0
+ beq _081459E8
+ ldrh r0, [r4]
+ lsls r0, 1
+ adds r0, r6, r0
+ ldrh r0, [r0]
+ strh r0, [r3]
+ ldrh r0, [r4]
+ lsls r0, 1
+ adds r0, r6, r0
+ mov r1, r9
+ strh r1, [r0]
+_081459E8:
+ ldrh r0, [r4]
+ cmp r0, 0
+ bne _0814599A
+_081459EE:
+ mov r2, r8
+ ldrh r0, [r2]
+ cmp r0, 0x43
+ bhi _08145A26
+ adds r5, r0, 0
+ movs r2, 0
+ cmp r5, 0x43
+ bhi _08145A5C
+ mov r3, r8
+_08145A00:
+ lsls r1, r5, 1
+ adds r1, r7, r1
+ lsls r0, r2, 1
+ adds r0, r7, r0
+ ldrh r0, [r0]
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ ldrh r0, [r3]
+ cmp r2, r0
+ bne _08145A1A
+ movs r2, 0
+_08145A1A:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x43
+ bls _08145A00
+ b _08145A5C
+_08145A26:
+ movs r4, 0
+ ldrh r0, [r7]
+ cmp r0, r10
+ beq _08145A42
+_08145A2E:
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r0, r4, 1
+ adds r0, r7, r0
+ ldrh r0, [r0]
+ cmp r0, r10
+ beq _08145A42
+ cmp r4, 0x43
+ bls _08145A2E
+_08145A42:
+ mov r1, r8
+ ldrh r0, [r1]
+ subs r0, 0x1
+ cmp r4, r0
+ bge _08145A5C
+ lsls r0, r4, 1
+ adds r0, r7, r0
+ ldr r2, [sp]
+ ldrh r1, [r2]
+ strh r1, [r0]
+ mov r0, r10
+ strh r0, [r2]
+ b _08145A62
+_08145A5C:
+ mov r2, r10
+ ldr r1, [sp]
+ strh r2, [r1]
+_08145A62:
+ movs r0, 0x44
+ mov r1, r8
+ strh r0, [r1]
+ 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_81458DC
+
+ thumb_func_start sub_8145A78
+sub_8145A78: @ 8145A78
+ push {r4,lr}
+ bl Random
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl Random
+ lsls r0, 16
+ orrs r0, r4
+ bl sub_8145D14
+ ldr r0, _08145AA0
+ movs r1, 0
+ bl VarSet
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08145AA0: .4byte 0x00004045
+ thumb_func_end sub_8145A78
+
+ thumb_func_start sub_8145AA4
+sub_8145AA4: @ 8145AA4
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl Random
+ lsls r0, 16
+ lsrs r1, r0, 16
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _08145AE0
+ cmp r4, r0
+ beq _08145AD4
+ ldr r5, _08145AE4
+ ldr r3, _08145AE8
+ adds r2, r0, 0
+_08145AC4:
+ adds r0, r1, 0
+ muls r0, r5
+ adds r1, r0, r3
+ subs r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r2
+ bne _08145AC4
+_08145AD4:
+ adds r0, r1, 0
+ bl sub_8145D14
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08145AE0: .4byte 0x0000ffff
+_08145AE4: .4byte 0x41c64e6d
+_08145AE8: .4byte 0x00003039
+ thumb_func_end sub_8145AA4
+
+ thumb_func_start sub_8145AEC
+sub_8145AEC: @ 8145AEC
+ push {lr}
+ bl sub_8145D3C
+ ldr r1, _08145AFC
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08145AFC: .4byte gScriptResult
+ thumb_func_end sub_8145AEC
+
+ thumb_func_start sub_8145B00
+sub_8145B00: @ 8145B00
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r1, _08145C24
+ movs r0, 0
+ strh r0, [r1]
+ movs r0, 0
+ mov r10, r0
+ mov r9, r0
+ movs r6, 0
+_08145B18:
+ movs r0, 0x64
+ adds r1, r6, 0
+ muls r1, r0
+ ldr r0, _08145C28
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ cmp r0, 0
+ beq _08145B74
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetMonData
+ cmp r0, 0
+ bne _08145B6A
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetMonData
+ adds r1, r0, 0
+ ldr r0, _08145C2C
+ ldrh r0, [r0]
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_8145C8C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08145C24
+ ldrh r2, [r1]
+ cmp r0, r2
+ bls _08145B6A
+ cmp r0, 0x1
+ bls _08145B6A
+ subs r0, 0x1
+ strh r0, [r1]
+ movs r0, 0xE
+ mov r9, r0
+ mov r10, r6
+_08145B6A:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x5
+ bls _08145B18
+_08145B74:
+ movs r6, 0
+_08145B76:
+ movs r5, 0
+ adds r1, r6, 0x1
+ mov r8, r1
+ lsls r0, r6, 2
+ adds r7, r0, r6
+_08145B80:
+ lsls r2, r7, 4
+ subs r2, r7
+ lsls r2, 5
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 4
+ ldr r1, _08145C30
+ adds r0, r1
+ adds r4, r2, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetBoxMonData
+ cmp r0, 0
+ beq _08145BD8
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl GetBoxMonData
+ cmp r0, 0
+ bne _08145BD8
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl GetBoxMonData
+ adds r1, r0, 0
+ ldr r0, _08145C2C
+ ldrh r0, [r0]
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_8145C8C
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08145C24
+ ldrh r2, [r1]
+ cmp r0, r2
+ bls _08145BD8
+ cmp r0, 0x1
+ bls _08145BD8
+ subs r0, 0x1
+ strh r0, [r1]
+ mov r9, r6
+ mov r10, r5
+_08145BD8:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x1D
+ bls _08145B80
+ mov r1, r8
+ lsls r0, r1, 16
+ lsrs r6, r0, 16
+ cmp r6, 0xD
+ bls _08145B76
+ ldr r3, _08145C24
+ ldrh r0, [r3]
+ cmp r0, 0
+ beq _08145C72
+ ldr r2, _08145C34
+ ldr r1, _08145C38
+ subs r0, 0x1
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r2]
+ mov r2, r9
+ cmp r2, 0xE
+ bne _08145C44
+ ldr r1, _08145C3C
+ movs r0, 0
+ strh r0, [r1]
+ movs r0, 0x64
+ mov r1, r10
+ muls r1, r0
+ adds r0, r1, 0
+ ldr r1, _08145C28
+ adds r0, r1
+ ldr r2, _08145C40
+ movs r1, 0x2
+ bl GetMonData
+ b _08145C6C
+ .align 2, 0
+_08145C24: .4byte gUnknown_0202E8CC
+_08145C28: .4byte gPlayerParty
+_08145C2C: .4byte gScriptResult
+_08145C30: .4byte gUnknown_020300A4
+_08145C34: .4byte gUnknown_0202E8CE
+_08145C38: .4byte gUnknown_0840CB04
+_08145C3C: .4byte gUnknown_0202E8D0
+_08145C40: .4byte gStringVar1
+_08145C44:
+ ldr r1, _08145C80
+ movs r0, 0x1
+ strh r0, [r1]
+ mov r2, r9
+ lsls r1, r2, 2
+ add r1, r9
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ mov r2, r10
+ lsls r1, r2, 2
+ add r1, r10
+ lsls r1, 4
+ ldr r2, _08145C84
+ adds r1, r2
+ adds r0, r1
+ ldr r2, _08145C88
+ movs r1, 0x2
+ bl GetBoxMonData
+_08145C6C:
+ ldr r0, _08145C88
+ bl StringGetEnd10
+_08145C72:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08145C80: .4byte gUnknown_0202E8D0
+_08145C84: .4byte gUnknown_020300A4
+_08145C88: .4byte gStringVar1
+ thumb_func_end sub_8145B00
+
+ thumb_func_start sub_8145C8C
+sub_8145C8C: @ 8145C8C
+ 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 r5, r1, 16
+ movs r0, 0
+ mov r8, r0
+ movs r7, 0
+ ldr r1, _08145D0C
+ mov r10, r1
+ ldr r0, _08145D10
+ mov r9, r0
+_08145CAC:
+ adds r0, r6, 0
+ movs r1, 0xA
+ bl __umodsi3
+ adds r4, r0, 0
+ mov r1, r10
+ strh r4, [r1]
+ adds r0, r5, 0
+ movs r1, 0xA
+ bl __umodsi3
+ mov r1, r9
+ strh r0, [r1]
+ lsls r4, 16
+ lsls r0, 16
+ cmp r4, r0
+ bne _08145CFA
+ adds r0, r6, 0
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r5, 0
+ movs r1, 0xA
+ bl __udivsi3
+ lsls r0, 16
+ lsrs r5, r0, 16
+ mov r0, r8
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x4
+ bls _08145CAC
+_08145CFA:
+ mov r0, r8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08145D0C: .4byte gUnknown_02039328
+_08145D10: .4byte gUnknown_0203932A
+ thumb_func_end sub_8145C8C
+
+ thumb_func_start sub_8145D14
+sub_8145D14: @ 8145D14
+ push {r4,lr}
+ adds r1, r0, 0
+ lsrs r4, r1, 16
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r0, _08145D34
+ bl VarSet
+ ldr r0, _08145D38
+ adds r1, r4, 0
+ bl VarSet
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08145D34: .4byte 0x0000404b
+_08145D38: .4byte 0x0000404c
+ thumb_func_end sub_8145D14
+
+ thumb_func_start sub_8145D3C
+sub_8145D3C: @ 8145D3C
+ push {r4,lr}
+ ldr r0, _08145D5C
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _08145D60
+ bl VarGet
+ lsls r0, 16
+ orrs r0, r4
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08145D5C: .4byte 0x0000404b
+_08145D60: .4byte 0x0000404c
+ thumb_func_end sub_8145D3C
+
+ thumb_func_start unref_sub_8145D64
+unref_sub_8145D64: @ 8145D64
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_8145D14
+ pop {r0}
+ bx r0
+ thumb_func_end unref_sub_8145D64
+
+ thumb_func_start sub_8145D74
+sub_8145D74: @ 8145D74
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8145D74
+
+ thumb_func_start sub_8145D88
+sub_8145D88: @ 8145D88
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0xC
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0x80
+ lsls r0, 19
+ mov r8, r0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r6, _08145EB0
+ strh r1, [r6]
+ adds r0, 0xC
+ 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]
+ add r0, sp, 0x4
+ strh r1, [r0]
+ ldr r2, _08145EB4
+ str r0, [r2]
+ movs r1, 0xC0
+ lsls r1, 19
+ str r1, [r2, 0x4]
+ ldr r0, _08145EB8
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r5, 0
+ str r5, [sp, 0x8]
+ add r0, sp, 0x8
+ str r0, [r2]
+ movs r0, 0xE0
+ lsls r0, 19
+ str r0, [r2, 0x4]
+ ldr r0, _08145EBC
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ add r0, sp, 0x4
+ strh r5, [r0]
+ str r0, [r2]
+ movs r0, 0xA0
+ lsls r0, 19
+ str r0, [r2, 0x4]
+ ldr r0, _08145EC0
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _08145EC4
+ bl LZ77UnCompVram
+ ldr r0, _08145EC8
+ ldr r1, _08145ECC
+ bl LZ77UnCompVram
+ bl remove_some_task
+ bl ResetTasks
+ bl ResetSpriteData
+ bl ResetPaletteFade
+ bl FreeAllSpritePalettes
+ ldr r0, _08145ED0
+ movs r1, 0
+ movs r2, 0x40
+ bl LoadPalette
+ ldr r0, _08145ED4
+ bl SetUpWindowConfig
+ ldr r0, _08145ED8
+ bl InitMenuWindow
+ bl pokedex_diploma_something
+ movs r0, 0x1
+ negs r0, r0
+ str r5, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r3, _08145EDC
+ ldrh r2, [r3]
+ strh r5, [r3]
+ ldr r4, _08145EE0
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _08145EE4
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _08145EE8
+ bl SetVBlankCallback
+ ldr r0, _08145EEC
+ bl SetMainCallback2
+ ldr r0, _08145EF0
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ adds r0, 0x2
+ strh r5, [r0]
+ ldr r1, _08145EF4
+ adds r0, r1, 0
+ strh r0, [r6]
+ movs r1, 0xCA
+ lsls r1, 5
+ adds r0, r1, 0
+ mov r1, r8
+ strh r0, [r1]
+ ldr r0, _08145EF8
+ movs r1, 0
+ bl CreateTask
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08145EB0: .4byte REG_BG3CNT
+_08145EB4: .4byte 0x040000d4
+_08145EB8: .4byte 0x8100c000
+_08145EBC: .4byte 0x85000100
+_08145EC0: .4byte 0x81000200
+_08145EC4: .4byte gUnknown_0840D288
+_08145EC8: .4byte gUnknown_0840CB4C
+_08145ECC: .4byte 0x06003000
+_08145ED0: .4byte gUnknown_0840CB0C
+_08145ED4: .4byte gWindowConfig_81E6C3C
+_08145ED8: .4byte gWindowConfig_81E6CE4
+_08145EDC: .4byte 0x04000208
+_08145EE0: .4byte 0x04000200
+_08145EE4: .4byte REG_DISPSTAT
+_08145EE8: .4byte sub_8145D74
+_08145EEC: .4byte sub_8145EFC
+_08145EF0: .4byte REG_BLDCNT
+_08145EF4: .4byte 0x00004603
+_08145EF8: .4byte sub_8145F14
+ thumb_func_end sub_8145D88
+
+ thumb_func_start sub_8145EFC
+sub_8145EFC: @ 8145EFC
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8145EFC
+
+ thumb_func_start sub_8145F14
+sub_8145F14: @ 8145F14
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _08145F38
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08145F34
+ ldr r0, _08145F3C
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08145F40
+ str r0, [r1]
+_08145F34:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08145F38: .4byte gPaletteFade
+_08145F3C: .4byte gTasks
+_08145F40: .4byte sub_8145F44
+ thumb_func_end sub_8145F14
+
+ thumb_func_start sub_8145F44
+sub_8145F44: @ 8145F44
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08145F80
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _08145F76
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _08145F84
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08145F88
+ str r1, [r0]
+_08145F76:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08145F80: .4byte gMain
+_08145F84: .4byte gTasks
+_08145F88: .4byte sub_8145F8C
+ thumb_func_end sub_8145F44
+
+ thumb_func_start sub_8145F8C
+sub_8145F8C: @ 8145F8C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _08145FB0
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08145FAA
+ adds r0, r2, 0
+ bl DestroyTask
+ ldr r0, _08145FB4
+ bl SetMainCallback2
+_08145FAA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08145FB0: .4byte gPaletteFade
+_08145FB4: .4byte sub_80546F0
+ thumb_func_end sub_8145F8C
+
+ thumb_func_start pokedex_diploma_something
+pokedex_diploma_something: @ 8145FB8
+ push {lr}
+ bl sub_8090FF4
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _08145FE8
+ ldr r1, _08145FDC
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08145FE0
+ ldr r1, _08145FE4
+ bl StringCopy
+ b _08145FF4
+ .align 2, 0
+_08145FDC: .4byte REG_BG3HOFS
+_08145FE0: .4byte gStringVar1
+_08145FE4: .4byte gOtherText_NationalDex
+_08145FE8:
+ ldr r0, _08146004
+ strh r1, [r0]
+ ldr r0, _08146008
+ ldr r1, _0814600C
+ bl StringCopy
+_08145FF4:
+ ldr r0, _08146010
+ movs r1, 0x6
+ movs r2, 0x2
+ bl MenuPrint
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08146004: .4byte REG_BG3HOFS
+_08146008: .4byte gStringVar1
+_0814600C: .4byte gOtherText_HoennDex
+_08146010: .4byte gOtherText_DiplomaCertificationGameFreak
+ thumb_func_end pokedex_diploma_something
+
+ thumb_func_start sub_8146014
+sub_8146014: @ 8146014
+ push {lr}
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl RunTasks
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8146014
+
+ thumb_func_start sub_814602C
+sub_814602C: @ 814602C
+ push {lr}
+ ldr r2, _0814604C
+ ldr r0, _08146050
+ ldrh r1, [r0]
+ strh r1, [r2]
+ ldr r0, _08146054
+ strh r1, [r0]
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814604C: .4byte REG_BG0VOFS
+_08146050: .4byte gUnknown_030041B4
+_08146054: .4byte REG_BG1VOFS
+ thumb_func_end sub_814602C
+
+ thumb_func_start sub_8146058
+sub_8146058: @ 8146058
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _08146074
+ ldr r1, _08146078
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0xC
+ bls _0814606A
+ b _08146250
+_0814606A:
+ lsls r0, 2
+ ldr r1, _0814607C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08146074: .4byte gMain
+_08146078: .4byte 0x0000043c
+_0814607C: .4byte _08146080
+ .align 2, 0
+_08146080:
+ .4byte _081460B4
+ .4byte _081460CC
+ .4byte _081460F0
+ .4byte _081460F6
+ .4byte _08146110
+ .4byte _0814611C
+ .4byte _0814613C
+ .4byte _0814615C
+ .4byte _08146170
+ .4byte _08146190
+ .4byte _081461B4
+ .4byte _08146204
+ .4byte _08146224
+_081460B4:
+ bl sub_80F9438
+ bl sub_80F9368
+ bl sub_8146288
+ ldr r1, _081460C8
+ movs r0, 0
+ strh r0, [r1]
+ b _0814620C
+ .align 2, 0
+_081460C8: .4byte REG_BLDCNT
+_081460CC:
+ bl ResetPaletteFade
+ ldr r2, _081460E4
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r1, _081460E8
+ ldr r0, _081460EC
+ adds r1, r0
+ b _08146212
+ .align 2, 0
+_081460E4: .4byte gPaletteFade
+_081460E8: .4byte gMain
+_081460EC: .4byte 0x0000043c
+_081460F0:
+ bl ResetSpriteData
+ b _0814620C
+_081460F6:
+ ldr r0, _08146104
+ bl SetUpWindowConfig
+ ldr r1, _08146108
+ ldr r0, _0814610C
+ adds r1, r0
+ b _08146212
+ .align 2, 0
+_08146104: .4byte gWindowConfig_81E6E18
+_08146108: .4byte gMain
+_0814610C: .4byte 0x0000043c
+_08146110:
+ ldr r0, _08146118
+ bl MultistepInitMenuWindowBegin
+ b _0814620C
+ .align 2, 0
+_08146118: .4byte gWindowConfig_81E6E18
+_0814611C:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ bne _08146126
+ b _08146250
+_08146126:
+ ldr r0, _08146134
+ ldr r1, _08146138
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ b _0814620C
+ .align 2, 0
+_08146134: .4byte 0x02000000
+_08146138: .4byte 0x0001ffff
+_0814613C:
+ bl sub_81462B8
+ lsls r0, 24
+ cmp r0, 0
+ bne _08146148
+ b _08146250
+_08146148:
+ ldr r0, _08146154
+ ldr r1, _08146158
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ b _0814620C
+ .align 2, 0
+_08146154: .4byte 0x02000000
+_08146158: .4byte 0x0001ffff
+_0814615C:
+ bl sub_81464E4
+ ldr r1, _08146168
+ ldr r0, _0814616C
+ adds r1, r0
+ b _08146212
+ .align 2, 0
+_08146168: .4byte gMain
+_0814616C: .4byte 0x0000043c
+_08146170:
+ ldr r0, _08146188
+ ldrb r0, [r0]
+ adds r0, 0x7B
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x38
+ movs r2, 0x40
+ bl sub_80A7D8C
+ ldr r1, _0814618C
+ strb r0, [r1]
+ b _0814620C
+ .align 2, 0
+_08146188: .4byte word_203855E
+_0814618C: .4byte gUnknown_0203932C
+_08146190:
+ ldr r0, _081461A8
+ ldrb r0, [r0]
+ adds r0, 0x7B
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8146600
+ ldr r1, _081461AC
+ ldr r0, _081461B0
+ adds r1, r0
+ b _08146212
+ .align 2, 0
+_081461A8: .4byte word_203855E
+_081461AC: .4byte gMain
+_081461B0: .4byte 0x0000043c
+_081461B4:
+ ldr r3, _081461EC
+ ldrh r2, [r3]
+ movs r0, 0
+ strh r0, [r3]
+ ldr r4, _081461F0
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _081461F4
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _081461F8
+ bl SetVBlankCallback
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _081461FC
+ ldr r0, _08146200
+ adds r1, r0
+ b _08146212
+ .align 2, 0
+_081461EC: .4byte 0x04000208
+_081461F0: .4byte 0x04000200
+_081461F4: .4byte REG_DISPSTAT
+_081461F8: .4byte sub_814602C
+_081461FC: .4byte gMain
+_08146200: .4byte 0x0000043c
+_08146204:
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _08146250
+_0814620C:
+ ldr r1, _0814621C
+ ldr r2, _08146220
+ adds r1, r2
+_08146212:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08146250
+ .align 2, 0
+_0814621C: .4byte gMain
+_08146220: .4byte 0x0000043c
+_08146224:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r2, _08146248
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+ ldr r0, _0814624C
+ bl SetMainCallback2
+ movs r0, 0x1
+ b _08146252
+ .align 2, 0
+_08146248: .4byte gPaletteFade
+_0814624C: .4byte sub_8146014
+_08146250:
+ movs r0, 0
+_08146252:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8146058
+
+ thumb_func_start sub_814625C
+sub_814625C: @ 814625C
+ push {lr}
+_0814625E:
+ bl sub_8146058
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08146278
+ ldr r0, _08146274
+ movs r1, 0
+ bl CreateTask
+ b _08146284
+ .align 2, 0
+_08146274: .4byte sub_8146480
+_08146278:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0814625E
+_08146284:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_814625C
+
+ thumb_func_start sub_8146288
+sub_8146288: @ 8146288
+ ldr r1, _081462A8
+ ldr r2, _081462AC
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ adds r2, 0xFE
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _081462B0
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r1, _081462B4
+ movs r0, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_081462A8: .4byte REG_BG1CNT
+_081462AC: .4byte 0x00000502
+_081462B0: .4byte 0x00000703
+_081462B4: .4byte gUnknown_030041B4
+ thumb_func_end sub_8146288
+
+ thumb_func_start sub_81462B8
+sub_81462B8: @ 81462B8
+ push {r4-r7,lr}
+ ldr r1, _081462D4
+ ldr r2, _081462D8
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ mov r12, r1
+ cmp r0, 0x6
+ bls _081462CA
+ b _08146404
+_081462CA:
+ lsls r0, 2
+ ldr r1, _081462DC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081462D4: .4byte 0x02000000
+_081462D8: .4byte 0x0001ffff
+_081462DC: .4byte _081462E0
+ .align 2, 0
+_081462E0:
+ .4byte _081462FC
+ .4byte _0814630C
+ .4byte _0814632C
+ .4byte _08146340
+ .4byte _081463A4
+ .4byte _081463C4
+ .4byte _081463E4
+_081462FC:
+ ldr r0, _08146308
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZDecompressVram
+ b _081463CA
+ .align 2, 0
+_08146308: .4byte gBerryCheck_Gfx
+_0814630C:
+ ldr r0, _0814631C
+ ldr r1, _08146320
+ bl LZDecompressVram
+ ldr r1, _08146324
+ ldr r2, _08146328
+ adds r1, r2
+ b _081463D0
+ .align 2, 0
+_0814631C: .4byte gUnknown_08E788E4
+_08146320: .4byte 0x06002800
+_08146324: .4byte 0x02000000
+_08146328: .4byte 0x0001ffff
+_0814632C:
+ ldr r0, _08146338
+ ldr r1, _0814633C
+ bl LZDecompressVram
+ b _081463CA
+ .align 2, 0
+_08146338: .4byte gUnknown_08E78A84
+_0814633C: .4byte 0x06003000
+_08146340:
+ movs r1, 0
+ ldr r7, _0814635C
+ adds r2, r7, 0
+ ldr r6, _08146360
+ ldr r5, _08146364
+ ldr r4, _08146368
+ ldr r3, _0814636C
+_0814634E:
+ ldrb r0, [r5, 0x8]
+ cmp r0, 0
+ bne _08146370
+ lsls r0, r1, 1
+ adds r0, r2
+ strh r6, [r0]
+ b _08146376
+ .align 2, 0
+_0814635C: .4byte gBG2TilemapBuffer
+_08146360: .4byte 0x00004042
+_08146364: .4byte gSaveBlock2
+_08146368: .4byte 0x00005042
+_0814636C: .4byte 0x000003ff
+_08146370:
+ lsls r0, r1, 1
+ adds r0, r2
+ strh r4, [r0]
+_08146376:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r3
+ bls _0814634E
+ ldr r1, _08146394
+ ldr r0, _08146398
+ str r7, [r0]
+ str r1, [r0, 0x4]
+ ldr r1, _0814639C
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ ldr r1, _081463A0
+ add r1, r12
+ b _081463D0
+ .align 2, 0
+_08146394: .4byte 0x06003800
+_08146398: .4byte 0x040000d4
+_0814639C: .4byte 0x80000400
+_081463A0: .4byte 0x0001ffff
+_081463A4:
+ ldr r0, _081463B8
+ movs r1, 0
+ movs r2, 0xC0
+ bl LoadCompressedPalette
+ ldr r1, _081463BC
+ ldr r2, _081463C0
+ adds r1, r2
+ b _081463D0
+ .align 2, 0
+_081463B8: .4byte gBerryCheck_Pal
+_081463BC: .4byte 0x02000000
+_081463C0: .4byte 0x0001ffff
+_081463C4:
+ ldr r0, _081463D8
+ bl LoadCompressedObjectPic
+_081463CA:
+ ldr r1, _081463DC
+ ldr r0, _081463E0
+ adds r1, r0
+_081463D0:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08146404
+ .align 2, 0
+_081463D8: .4byte gUnknown_083C1F74
+_081463DC: .4byte 0x02000000
+_081463E0: .4byte 0x0001ffff
+_081463E4:
+ ldr r0, _081463F8
+ bl LoadCompressedObjectPalette
+ ldr r0, _081463FC
+ ldr r1, _08146400
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x1
+ b _08146406
+ .align 2, 0
+_081463F8: .4byte gUnknown_083C1F7C
+_081463FC: .4byte 0x02000000
+_08146400: .4byte 0x0001ffff
+_08146404:
+ movs r0, 0
+_08146406:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81462B8
+
+ thumb_func_start sub_814640C
+sub_814640C: @ 814640C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08146438
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08146432
+ ldr r0, _0814643C
+ bl SetMainCallback2
+ bl sub_80A7DD4
+ bl gpu_pal_allocator_reset__manage_upper_four
+ adds r0, r4, 0
+ bl DestroyTask
+_08146432:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08146438: .4byte gPaletteFade
+_0814643C: .4byte sub_80A5B40
+ thumb_func_end sub_814640C
+
+ thumb_func_start sub_8146440
+sub_8146440: @ 8146440
+ 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, _08146478
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0814647C
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08146478: .4byte gTasks
+_0814647C: .4byte sub_814640C
+ thumb_func_end sub_8146440
+
+ thumb_func_start sub_8146480
+sub_8146480: @ 8146480
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r7, r4, 0
+ ldr r0, _081464DC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _081464D6
+ ldr r5, _081464E0
+ ldrh r1, [r5, 0x30]
+ movs r6, 0xF0
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0x40
+ bne _081464AC
+ movs r1, 0x1
+ negs r1, r1
+ adds r0, r4, 0
+ bl sub_81466E8
+_081464AC:
+ ldrh r1, [r5, 0x30]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0x80
+ bne _081464BE
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81466E8
+_081464BE:
+ ldrh r1, [r5, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _081464D0
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081464D6
+_081464D0:
+ adds r0, r7, 0
+ bl sub_8146440
+_081464D6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081464DC: .4byte gPaletteFade
+_081464E0: .4byte gMain
+ thumb_func_end sub_8146480
+
+ thumb_func_start sub_81464E4
+sub_81464E4: @ 81464E4
+ push {r4-r7,lr}
+ ldr r4, _0814659C
+ ldrb r0, [r4]
+ adds r0, 0x7C
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetBerryInfo
+ adds r5, r0, 0
+ ldr r7, _081465A0
+ ldrh r1, [r4]
+ subs r1, 0x84
+ adds r0, r7, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ adds r0, r7, 0
+ movs r1, 0xC
+ movs r2, 0x4
+ bl MenuPrint
+ adds r0, r5, 0
+ movs r1, 0xE
+ movs r2, 0x4
+ bl MenuPrint
+ ldr r0, [r5, 0xC]
+ movs r1, 0x4
+ movs r2, 0xE
+ bl MenuPrint
+ ldr r0, [r5, 0x10]
+ movs r1, 0x4
+ movs r2, 0x10
+ bl MenuPrint
+ ldrh r1, [r5, 0x8]
+ lsls r0, r1, 5
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r1
+ lsls r0, 3
+ movs r1, 0xFE
+ bl __divsi3
+ adds r4, r0, 0
+ movs r1, 0xA
+ bl __umodsi3
+ cmp r0, 0x4
+ bls _0814654E
+ adds r4, 0xA
+_0814654E:
+ adds r0, r4, 0
+ movs r1, 0x64
+ bl __umodsi3
+ movs r1, 0xA
+ bl __udivsi3
+ adds r6, r0, 0
+ adds r0, r4, 0
+ movs r1, 0x64
+ bl __udivsi3
+ adds r4, r0, 0
+ ldr r0, _081465A4
+ movs r1, 0xB
+ movs r2, 0x7
+ bl MenuPrint
+ ldrh r0, [r5, 0x8]
+ cmp r0, 0
+ beq _081465B0
+ adds r0, r7, 0
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r0, _081465A8
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r0, _081465AC
+ movs r1, 0x10
+ movs r2, 0x7
+ bl MenuPrint
+ b _081465BA
+ .align 2, 0
+_0814659C: .4byte word_203855E
+_081465A0: .4byte gStringVar1
+_081465A4: .4byte gOtherText_Size
+_081465A8: .4byte gStringVar2
+_081465AC: .4byte gContestStatsText_Unknown1
+_081465B0:
+ ldr r0, _081465E0
+ movs r1, 0x10
+ movs r2, 0x7
+ bl MenuPrint
+_081465BA:
+ ldr r0, _081465E4
+ movs r1, 0xB
+ movs r2, 0x9
+ bl MenuPrint
+ ldrb r0, [r5, 0x7]
+ cmp r0, 0
+ beq _081465EC
+ ldr r0, _081465E8
+ ldrb r1, [r5, 0x7]
+ subs r1, 0x1
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ movs r1, 0x10
+ movs r2, 0x9
+ bl MenuPrint
+ b _081465F6
+ .align 2, 0
+_081465E0: .4byte gOtherText_ThreeQuestions2
+_081465E4: .4byte gOtherText_Firm
+_081465E8: .4byte gUnknown_0841192C
+_081465EC:
+ ldr r0, _081465FC
+ movs r1, 0x10
+ movs r2, 0x9
+ bl MenuPrint
+_081465F6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081465FC: .4byte gOtherText_ThreeQuestions2
+ thumb_func_end sub_81464E4
+
+ thumb_func_start sub_8146600
+sub_8146600: @ 8146600
+ push {r4,r5,lr}
+ lsls r0, 24
+ movs r1, 0x80
+ lsls r1, 17
+ adds r0, r1
+ lsrs r0, 24
+ bl GetBerryInfo
+ adds r4, r0, 0
+ movs r2, 0
+ ldr r5, _08146698
+ ldr r0, _0814669C
+ adds r3, r0, 0
+_0814661A:
+ lsls r0, r2, 1
+ adds r0, r5
+ ldrh r1, [r0]
+ orrs r1, r3
+ strh r1, [r0]
+ adds r0, r2, 0x1
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0x4
+ bls _0814661A
+ ldrb r0, [r4, 0x15]
+ cmp r0, 0
+ beq _08146642
+ movs r0, 0x30
+ bl sub_80A7E5C
+ ldr r1, _08146698
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1]
+_08146642:
+ ldrb r0, [r4, 0x16]
+ cmp r0, 0
+ beq _08146656
+ movs r0, 0x58
+ bl sub_80A7E5C
+ ldr r1, _08146698
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x2]
+_08146656:
+ ldrb r0, [r4, 0x17]
+ cmp r0, 0
+ beq _0814666A
+ movs r0, 0x80
+ bl sub_80A7E5C
+ ldr r1, _08146698
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x4]
+_0814666A:
+ ldrb r0, [r4, 0x18]
+ cmp r0, 0
+ beq _0814667E
+ movs r0, 0xA8
+ bl sub_80A7E5C
+ ldr r1, _08146698
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x6]
+_0814667E:
+ ldrb r0, [r4, 0x19]
+ cmp r0, 0
+ beq _08146692
+ movs r0, 0xD0
+ bl sub_80A7E5C
+ ldr r1, _08146698
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x8]
+_08146692:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08146698: .4byte gUnknown_0203932E
+_0814669C: .4byte 0x0000ffff
+ thumb_func_end sub_8146600
+
+ thumb_func_start sub_81466A0
+sub_81466A0: @ 81466A0
+ push {r4-r7,lr}
+ movs r5, 0
+ movs r7, 0x1
+ negs r7, r7
+ ldr r6, _081466DC
+_081466AA:
+ lsls r0, r5, 1
+ adds r4, r0, r6
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, r7
+ beq _081466CA
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _081466E0
+ adds r0, r1
+ bl DestroySprite
+ ldr r0, _081466E4
+ strh r0, [r4]
+_081466CA:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0x4
+ bls _081466AA
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081466DC: .4byte gUnknown_0203932E
+_081466E0: .4byte gSprites
+_081466E4: .4byte 0x0000ffff
+ thumb_func_end sub_81466A0
+
+ thumb_func_start sub_81466E8
+sub_81466E8: @ 81466E8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r1, 24
+ lsrs r2, r1, 24
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ ldr r1, _08146748
+ adds r6, r0, r1
+ ldr r4, _0814674C
+ movs r0, 0xC
+ adds r0, r4
+ mov r8, r0
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r4, 0xC]
+ adds r1, r0
+ cmp r1, 0
+ bne _08146718
+ lsls r0, r2, 24
+ cmp r0, 0
+ blt _0814678C
+_08146718:
+ adds r0, r1, 0x1
+ lsls r5, r2, 24
+ mov r1, r8
+ ldrb r1, [r1, 0x2]
+ cmp r0, r1
+ bne _08146728
+ cmp r5, 0
+ bgt _0814678C
+_08146728:
+ movs r0, 0x5
+ bl PlaySE
+ mov r2, r8
+ ldrb r3, [r2, 0x1]
+ ldrb r4, [r4, 0xC]
+ mov r12, r4
+ adds r0, r3, r4
+ asrs r2, r5, 24
+ adds r1, r0, r2
+ cmp r1, 0
+ bge _08146750
+ negs r0, r0
+ strh r0, [r6, 0x2]
+ b _08146766
+ .align 2, 0
+_08146748: .4byte gUnknown_03004B28
+_0814674C: .4byte gUnknown_03005D10
+_08146750:
+ mov r4, r8
+ ldrb r0, [r4, 0x2]
+ cmp r1, r0
+ blt _08146764
+ subs r0, r3
+ mov r1, r12
+ subs r0, r1
+ subs r0, 0x1
+ strh r0, [r6, 0x2]
+ b _08146766
+_08146764:
+ strh r2, [r6, 0x2]
+_08146766:
+ ldr r0, _08146780
+ lsls r1, r7, 2
+ adds r1, r7
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08146784
+ str r0, [r1]
+ cmp r5, 0
+ bge _08146788
+ movs r2, 0x10
+ negs r2, r2
+ adds r0, r2, 0
+ b _0814678A
+ .align 2, 0
+_08146780: .4byte gTasks
+_08146784: .4byte sub_8146798
+_08146788:
+ movs r0, 0x10
+_0814678A:
+ strh r0, [r6]
+_0814678C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81466E8
+
+ thumb_func_start sub_8146798
+sub_8146798: @ 8146798
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _08146800
+ adds r0, r1
+ ldr r2, _08146804
+ ldrh r1, [r0]
+ ldrh r5, [r2]
+ adds r3, r1, r5
+ movs r1, 0xFF
+ ands r3, r1
+ strh r3, [r2]
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ ble _081467C2
+ cmp r3, 0x90
+ beq _081467CA
+_081467C2:
+ cmp r0, 0
+ bge _081467E0
+ cmp r3, 0x70
+ bne _081467E0
+_081467CA:
+ ldr r0, _08146808
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0xA
+ ldrsb r0, [r1, r0]
+ bl sub_8146810
+ bl sub_81468BC
+_081467E0:
+ ldr r0, _08146804
+ ldrh r2, [r0]
+ cmp r2, 0
+ bne _081467FA
+ ldr r0, _08146808
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ strh r2, [r1, 0x8]
+ strh r2, [r1, 0xA]
+ ldr r0, _0814680C
+ str r0, [r1]
+_081467FA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08146800: .4byte gUnknown_03004B28
+_08146804: .4byte gUnknown_030041B4
+_08146808: .4byte gTasks
+_0814680C: .4byte sub_8146480
+ thumb_func_end sub_8146798
+
+ thumb_func_start sub_8146810
+sub_8146810: @ 8146810
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r4, r3, 0
+ lsls r0, r3, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ ble _08146848
+ ldr r0, _08146840
+ adds r4, r0, 0
+ adds r4, 0xC
+ ldrb r2, [r0, 0xC]
+ adds r1, r2, r1
+ adds r6, r0, 0
+ cmp r1, 0x7
+ ble _08146844
+ adds r0, r3, 0
+ adds r0, 0xF9
+ adds r0, r2, r0
+ ldrb r1, [r4, 0x1]
+ adds r0, r1
+ strb r0, [r4, 0x1]
+ movs r0, 0x7
+ b _0814686E
+ .align 2, 0
+_08146840: .4byte gUnknown_03005D10
+_08146844:
+ adds r0, r2, r3
+ b _0814686E
+_08146848:
+ ldr r0, _08146868
+ adds r5, r0, 0
+ adds r5, 0xC
+ ldrb r2, [r0, 0xC]
+ adds r1, r2, r1
+ adds r6, r0, 0
+ cmp r1, 0
+ bge _0814686C
+ adds r0, r2, r3
+ ldrb r1, [r5, 0x1]
+ adds r0, r1
+ movs r1, 0
+ strb r0, [r5, 0x1]
+ strb r1, [r6, 0xC]
+ b _08146870
+ .align 2, 0
+_08146868: .4byte gUnknown_03005D10
+_0814686C:
+ adds r0, r2, r4
+_0814686E:
+ strb r0, [r6, 0xC]
+_08146870:
+ ldr r2, _081468AC
+ movs r0, 0x3
+ lsls r0, 2
+ adds r0, r6
+ ldrb r1, [r0, 0x1]
+ ldrb r0, [r0]
+ adds r1, r0
+ ldr r0, _081468B0
+ ldr r0, [r0]
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1]
+ strh r0, [r2]
+ ldr r0, _081468B4
+ ldrb r1, [r0]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _081468B8
+ adds r0, r1
+ bl DestroySprite
+ bl sub_81466A0
+ bl sub_80A7DD4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081468AC: .4byte word_203855E
+_081468B0: .4byte gUnknown_03005D24
+_081468B4: .4byte gUnknown_0203932C
+_081468B8: .4byte gSprites
+ thumb_func_end sub_8146810
+
+ thumb_func_start sub_81468BC
+sub_81468BC: @ 81468BC
+ push {r4,lr}
+ movs r0, 0
+ movs r1, 0x4
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ bl sub_81464E4
+ ldr r4, _081468F8
+ ldrb r0, [r4]
+ adds r0, 0x7B
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x38
+ movs r2, 0x40
+ bl sub_80A7D8C
+ ldr r1, _081468FC
+ strb r0, [r1]
+ ldrb r0, [r4]
+ adds r0, 0x7B
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8146600
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081468F8: .4byte word_203855E
+_081468FC: .4byte gUnknown_0203932C
+ thumb_func_end sub_81468BC
+
+ thumb_func_start sub_8146900
+sub_8146900: @ 8146900
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8146900
+
+ thumb_func_start sub_8146914
+sub_8146914: @ 8146914
+ push {lr}
+ movs r2, 0
+ ldr r1, _0814692C
+ ldrh r0, [r1, 0x1A]
+ ldrh r1, [r1, 0x36]
+ cmp r0, r1
+ bne _08146924
+ movs r2, 0x1
+_08146924:
+ adds r0, r2, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814692C: .4byte gLinkPlayers
+ thumb_func_end sub_8146914
+
+ thumb_func_start CB2_InitMysteryEventMenu
+CB2_InitMysteryEventMenu: @ 8146930
+ push {r4,lr}
+ bl ResetSpriteData
+ bl FreeAllSpritePalettes
+ bl ResetTasks
+ ldr r0, _0814699C
+ bl SetVBlankCallback
+ ldr r4, _081469A0
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl InitMenuWindow
+ bl MenuZeroFillScreen
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xA0
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x50
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _081469A4
+ movs r1, 0
+ bl CreateTask
+ bl StopMapMusic
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x2
+ bl FillPalette
+ ldr r0, _081469A8
+ bl SetMainCallback2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814699C: .4byte sub_8146900
+_081469A0: .4byte gWindowConfig_81E6CE4
+_081469A4: .4byte Task_DestroySelf
+_081469A8: .4byte sub_81469E4
+ thumb_func_end CB2_InitMysteryEventMenu
+
+ thumb_func_start sub_81469AC
+sub_81469AC: @ 81469AC
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ adds r4, r1, 0
+ movs r5, 0x1
+ cmp r4, 0
+ bne _081469C0
+ ldr r1, _081469DC
+ bl StringCopy
+ movs r5, 0
+_081469C0:
+ cmp r4, 0x2
+ bne _081469C6
+ movs r5, 0
+_081469C6:
+ cmp r4, 0x1
+ bne _081469D2
+ ldr r1, _081469E0
+ adds r0, r6, 0
+ bl StringCopy
+_081469D2:
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081469DC: .4byte gSystemText_EventLoadSuccess
+_081469E0: .4byte gSystemText_LoadingError
+ thumb_func_end sub_81469AC
+
+ thumb_func_start sub_81469E4
+sub_81469E4: @ 81469E4
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r1, _08146A04
+ ldr r2, _08146A08
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ adds r4, r1, 0
+ cmp r0, 0x10
+ bls _081469F8
+ b _08146DA4
+_081469F8:
+ lsls r0, 2
+ ldr r1, _08146A0C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08146A04: .4byte gMain
+_08146A08: .4byte 0x0000043c
+_08146A0C: .4byte _08146A10
+ .align 2, 0
+_08146A10:
+ .4byte _08146A54
+ .4byte _08146A6E
+ .4byte _08146A9C
+ .4byte _08146AD4
+ .4byte _08146B18
+ .4byte _08146B26
+ .4byte _08146B90
+ .4byte _08146C64
+ .4byte _08146C72
+ .4byte _08146C94
+ .4byte _08146CA0
+ .4byte _08146CB4
+ .4byte _08146CFC
+ .4byte _08146D18
+ .4byte _08146D50
+ .4byte _08146D6C
+ .4byte _08146D94
+_08146A54:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ b _08146D78
+_08146A6E:
+ ldr r0, _08146A8C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08146A7C
+ b _08146DA4
+_08146A7C:
+ ldr r0, _08146A90
+ bl sub_8072044
+ ldr r1, _08146A94
+ ldr r2, _08146A98
+ adds r1, r2
+ b _08146D82
+ .align 2, 0
+_08146A8C: .4byte gPaletteFade
+_08146A90: .4byte gSystemText_LinkStandby
+_08146A94: .4byte gMain
+_08146A98: .4byte 0x0000043c
+_08146A9C:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ bne _08146AA8
+ b _08146DA4
+_08146AA8:
+ ldr r1, _08146AC4
+ ldr r0, _08146AC8
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ ldr r1, _08146ACC
+ ldr r2, _08146AD0
+ adds r0, r2, 0
+ strh r0, [r1]
+ bl OpenLink
+ b _08146DA4
+ .align 2, 0
+_08146AC4: .4byte gMain
+_08146AC8: .4byte 0x0000043c
+_08146ACC: .4byte gLinkType
+_08146AD0: .4byte 0x00005501
+_08146AD4:
+ ldr r0, _08146B08
+ ldr r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _08146AE2
+ b _08146C38
+_08146AE2:
+ movs r0, 0x1C
+ ands r1, r0
+ cmp r1, 0x4
+ bhi _08146AEC
+ b _08146C38
+_08146AEC:
+ movs r0, 0x15
+ bl PlaySE
+ ldr r0, _08146B0C
+ bl sub_8072044
+ ldr r1, _08146B10
+ ldr r0, _08146B14
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08146C38
+ .align 2, 0
+_08146B08: .4byte gLinkStatus
+_08146B0C: .4byte gSystemText_LoadEventPressA
+_08146B10: .4byte gMain
+_08146B14: .4byte 0x0000043c
+_08146B18:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ bne _08146B24
+ b _08146DA4
+_08146B24:
+ b _08146D7C
+_08146B26:
+ bl GetLinkPlayerCount_2
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bne _08146C10
+ ldr r4, _08146B64
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08146B70
+ movs r0, 0x5
+ bl PlaySE
+ bl sub_8007F4C
+ movs r0, 0x6
+ movs r1, 0x5
+ movs r2, 0x17
+ movs r3, 0x8
+ bl MenuDrawTextWindow
+ ldr r0, _08146B68
+ movs r1, 0x7
+ movs r2, 0x6
+ bl MenuPrint
+ ldr r2, _08146B6C
+ adds r1, r4, r2
+ b _08146D82
+ .align 2, 0
+_08146B64: .4byte gMain
+_08146B68: .4byte gSystemText_LoadingEvent
+_08146B6C: .4byte 0x0000043c
+_08146B70:
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08146B7A
+ b _08146DA4
+_08146B7A:
+ movs r0, 0x5
+ bl PlaySE
+ bl CloseLink
+ ldr r0, _08146B8C
+ adds r1, r4, r0
+ b _08146C54
+ .align 2, 0
+_08146B8C: .4byte 0x0000043c
+_08146B90:
+ bl IsLinkConnectionEstablished
+ lsls r0, 24
+ cmp r0, 0
+ beq _08146C38
+ ldr r0, _08146BD8
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08146BA4
+ b _08146DA4
+_08146BA4:
+ bl GetLinkPlayerDataExchangeStatusTimed
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bne _08146BE8
+ bl sub_800832C
+ movs r0, 0x6
+ movs r1, 0x5
+ movs r2, 0x17
+ movs r3, 0x8
+ bl MenuZeroFillWindowRect
+ ldr r4, _08146BDC
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81469AC
+ adds r0, r4, 0
+ bl sub_8072044
+ ldr r0, _08146BE0
+ ldr r2, _08146BE4
+ adds r0, r2
+ b _08146C26
+ .align 2, 0
+_08146BD8: .4byte gReceivedRemoteLinkPlayers
+_08146BDC: .4byte gStringVar4
+_08146BE0: .4byte gMain
+_08146BE4: .4byte 0x0000043c
+_08146BE8:
+ bl sub_8146914
+ lsls r0, 24
+ cmp r0, 0
+ beq _08146C00
+ ldr r0, _08146BFC
+ bl sub_8072044
+ b _08146D7C
+ .align 2, 0
+_08146BFC: .4byte gSystemText_DontCutLink
+_08146C00:
+ bl CloseLink
+ movs r0, 0x6
+ movs r1, 0x5
+ movs r2, 0x17
+ movs r3, 0x8
+ bl MenuZeroFillWindowRect
+_08146C10:
+ ldr r4, _08146C2C
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81469AC
+ adds r0, r4, 0
+ bl sub_8072044
+ ldr r0, _08146C30
+ ldr r1, _08146C34
+ adds r0, r1
+_08146C26:
+ movs r1, 0xD
+ strb r1, [r0]
+ b _08146DA4
+ .align 2, 0
+_08146C2C: .4byte gStringVar4
+_08146C30: .4byte gMain
+_08146C34: .4byte 0x0000043c
+_08146C38:
+ ldr r4, _08146C5C
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08146C46
+ b _08146DA4
+_08146C46:
+ movs r0, 0x5
+ bl PlaySE
+ bl CloseLink
+ ldr r2, _08146C60
+ adds r1, r4, r2
+_08146C54:
+ movs r0, 0xF
+ strb r0, [r1]
+ b _08146DA4
+ .align 2, 0
+_08146C5C: .4byte gMain
+_08146C60: .4byte 0x0000043c
+_08146C64:
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ bne _08146C70
+ b _08146DA4
+_08146C70:
+ b _08146D7C
+_08146C72:
+ bl GetBlockRecievedStatus
+ lsls r0, 24
+ cmp r0, 0
+ bne _08146C7E
+ b _08146DA4
+_08146C7E:
+ bl ResetBlockReceivedFlags
+ ldr r1, _08146C8C
+ ldr r2, _08146C90
+ adds r1, r2
+ b _08146D82
+ .align 2, 0
+_08146C8C: .4byte gMain
+_08146C90: .4byte 0x0000043c
+_08146C94:
+ ldr r0, _08146C9C
+ adds r1, r4, r0
+ b _08146D82
+ .align 2, 0
+_08146C9C: .4byte 0x0000043c
+_08146CA0:
+ bl sub_800832C
+ ldr r1, _08146CAC
+ ldr r2, _08146CB0
+ adds r1, r2
+ b _08146D82
+ .align 2, 0
+_08146CAC: .4byte gMain
+_08146CB0: .4byte 0x0000043c
+_08146CB4:
+ ldr r0, _08146CEC
+ ldrb r6, [r0]
+ cmp r6, 0
+ bne _08146DA4
+ ldr r5, _08146CF0
+ adds r0, r5, 0
+ bl sub_812613C
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ str r6, [sp, 0x4]
+ ldr r2, _08146CF4
+ add r0, sp, 0x4
+ adds r1, r5, 0
+ bl CpuSet
+ ldr r0, _08146CF8
+ adds r1, r4, 0
+ bl sub_81469AC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08146D7C
+ movs r0, 0
+ bl sub_8125D44
+ b _08146D7C
+ .align 2, 0
+_08146CEC: .4byte gReceivedRemoteLinkPlayers
+_08146CF0: .4byte 0x02000000
+_08146CF4: .4byte 0x050001f5
+_08146CF8: .4byte gStringVar4
+_08146CFC:
+ ldr r0, _08146D0C
+ bl sub_8072044
+ ldr r1, _08146D10
+ ldr r2, _08146D14
+ adds r1, r2
+ b _08146D82
+ .align 2, 0
+_08146D0C: .4byte gStringVar4
+_08146D10: .4byte gMain
+_08146D14: .4byte 0x0000043c
+_08146D18:
+ movs r0, 0x6
+ movs r1, 0x5
+ movs r2, 0x17
+ movs r3, 0x8
+ bl MenuZeroFillWindowRect
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ cmp r0, 0
+ beq _08146DA4
+ ldr r1, _08146D44
+ ldr r0, _08146D48
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ movs r2, 0
+ strb r0, [r1]
+ ldr r0, _08146D4C
+ strb r2, [r0]
+ b _08146DA4
+ .align 2, 0
+_08146D44: .4byte gMain
+_08146D48: .4byte 0x0000043c
+_08146D4C: .4byte gUnknown_02039338
+_08146D50:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08146DA4
+ movs r0, 0x5
+ bl PlaySE
+ ldr r2, _08146D68
+ adds r1, r4, r2
+ b _08146D82
+ .align 2, 0
+_08146D68: .4byte 0x0000043c
+_08146D6C:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+_08146D78:
+ bl BeginNormalPaletteFade
+_08146D7C:
+ ldr r1, _08146D8C
+ ldr r0, _08146D90
+ adds r1, r0
+_08146D82:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08146DA4
+ .align 2, 0
+_08146D8C: .4byte gMain
+_08146D90: .4byte 0x0000043c
+_08146D94:
+ ldr r0, _08146DFC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08146DA4
+ bl DoSoftReset
+_08146DA4:
+ ldr r0, _08146E00
+ ldr r0, [r0]
+ movs r1, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08146DE4
+ bl IsLinkMaster
+ lsls r0, 24
+ cmp r0, 0
+ bne _08146DE4
+ bl CloseLink
+ movs r0, 0x6
+ movs r1, 0x5
+ movs r2, 0x17
+ movs r3, 0x8
+ bl MenuZeroFillWindowRect
+ ldr r4, _08146E04
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_81469AC
+ adds r0, r4, 0
+ bl sub_8072044
+ ldr r0, _08146E08
+ ldr r1, _08146E0C
+ adds r0, r1
+ movs r1, 0xD
+ strb r1, [r0]
+_08146DE4:
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08146DFC: .4byte gPaletteFade
+_08146E00: .4byte gLinkStatus
+_08146E04: .4byte gStringVar4
+_08146E08: .4byte gMain
+_08146E0C: .4byte 0x0000043c
+ thumb_func_end sub_81469E4
+
+ thumb_func_start fullscreen_save_activate
+fullscreen_save_activate: @ 8146E10
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08146E30
+ bl SetMainCallback2
+ ldr r0, _08146E34
+ strh r4, [r0]
+ ldr r1, _08146E38
+ movs r0, 0
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08146E30: .4byte sub_8146E50
+_08146E34: .4byte gUnknown_0203933C
+_08146E38: .4byte gUnknown_0203933E
+ thumb_func_end fullscreen_save_activate
+
+ thumb_func_start sub_8146E3C
+sub_8146E3C: @ 8146E3C
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8146E3C
+
+ thumb_func_start sub_8146E50
+sub_8146E50: @ 8146E50
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0xC
+ ldr r0, _08146FB0
+ ldr r1, _08146FB4
+ adds r7, r0, r1
+ ldrb r0, [r7]
+ cmp r0, 0
+ beq _08146E6C
+ cmp r0, 0x1
+ bne _08146E6C
+ b _0814701C
+_08146E6C:
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0x80
+ lsls r0, 19
+ mov r9, r0
+ movs r1, 0
+ strh r1, [r0]
+ ldr r6, _08146FB8
+ strh r1, [r6]
+ adds r0, 0xC
+ mov r8, r0
+ strh r1, [r0]
+ subs r0, 0x2
+ strh r1, [r0]
+ ldr r5, _08146FBC
+ strh r1, [r5]
+ adds r0, 0x12
+ 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]
+ add r0, sp, 0x4
+ strh r1, [r0]
+ ldr r2, _08146FC0
+ str r0, [r2]
+ movs r1, 0xC0
+ lsls r1, 19
+ str r1, [r2, 0x4]
+ ldr r0, _08146FC4
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r4, 0
+ str r4, [sp, 0x8]
+ add r0, sp, 0x8
+ str r0, [r2]
+ movs r0, 0xE0
+ lsls r0, 19
+ str r0, [r2, 0x4]
+ ldr r0, _08146FC8
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ add r0, sp, 0x4
+ strh r4, [r0]
+ str r0, [r2]
+ movs r0, 0xA0
+ lsls r0, 19
+ str r0, [r2, 0x4]
+ ldr r0, _08146FCC
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r0, _08146FD0
+ bl LZ77UnCompVram
+ ldr r0, _08146FD4
+ ldr r1, _08146FD8
+ bl LZ77UnCompVram
+ ldr r0, _08146FDC
+ ldr r1, _08146FE0
+ bl LZ77UnCompVram
+ ldr r0, _08146FE4
+ ldr r1, _08146FE8
+ bl LZ77UnCompVram
+ bl ResetSpriteData
+ bl ResetTasks
+ bl ResetPaletteFade
+ ldr r0, _08146FEC
+ movs r1, 0
+ movs r2, 0x40
+ bl LoadPalette
+ ldr r0, _08146FF0
+ movs r1, 0x80
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08146FF4
+ bl SetUpWindowConfig
+ ldr r0, _08146FF8
+ bl InitMenuWindow
+ .if REVISION >= 1
+ movs r0, 0xD
+ movs r1, 0x6
+ movs r2, 0x10
+ movs r3, 0x9
+ .else
+ movs r0, 0xD
+ movs r1, 0x8
+ movs r2, 0x10
+ movs r3, 0xB
+ .endif
+ bl MenuDrawTextWindow
+ .if REVISION >= 1
+ movs r0, 0x1
+ movs r1, 0xA
+ movs r2, 0x1C
+ movs r3, 0x13
+ .else
+ movs r0, 0x1
+ movs r1, 0xC
+ movs r2, 0x1C
+ movs r3, 0x13
+ .endif
+ bl MenuDrawTextWindow
+ ldr r0, _08146FFC
+ .if REVISION >= 1
+ movs r1, 0x2
+ movs r2, 0xB
+ .else
+ movs r1, 0x2
+ movs r2, 0xD
+ .endif
+ bl MenuPrint
+ movs r0, 0x1
+ negs r0, r0
+ str r4, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r3, _08147000
+ ldrh r2, [r3]
+ strh r4, [r3]
+ ldr r4, _08147004
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _08147008
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _0814700C
+ bl SetVBlankCallback
+ ldr r1, _08147010
+ adds r0, r1, 0
+ strh r0, [r6]
+ ldr r1, _08147014
+ adds r0, r1, 0
+ mov r1, r8
+ strh r0, [r1]
+ ldr r1, _08147018
+ adds r0, r1, 0
+ strh r0, [r5]
+ movs r1, 0xEA
+ lsls r1, 5
+ adds r0, r1, 0
+ mov r1, r9
+ strh r0, [r1]
+ ldrb r0, [r7]
+ adds r0, 0x1
+ strb r0, [r7]
+ b _08147032
+ .align 2, 0
+_08146FB0: .4byte gMain
+_08146FB4: .4byte 0x0000043c
+_08146FB8: .4byte REG_BG3CNT
+_08146FBC: .4byte REG_BG0CNT
+_08146FC0: .4byte 0x040000d4
+_08146FC4: .4byte 0x8100c000
+_08146FC8: .4byte 0x85000100
+_08146FCC: .4byte 0x81000200
+_08146FD0: .4byte gUnknown_083F66F0
+_08146FD4: .4byte gBirchBagTilemap
+_08146FD8: .4byte 0x06003000
+_08146FDC: .4byte gBirchGrassTilemap
+_08146FE0: .4byte 0x06003800
+_08146FE4: .4byte gUnknown_08411980
+_08146FE8: .4byte 0x06010020
+_08146FEC: .4byte gUnknown_083F62EC
+_08146FF0: .4byte gUnknown_08411960
+_08146FF4: .4byte gWindowConfig_81E6C3C
+_08146FF8: .4byte gWindowConfig_81E6CE4
+_08146FFC: .4byte gSystemText_SaveFailedBackupCheck
+_08147000: .4byte 0x04000208
+_08147004: .4byte 0x04000200
+_08147008: .4byte REG_DISPSTAT
+_0814700C: .4byte sub_8146E3C
+_08147010: .4byte 0x00000703
+_08147014: .4byte 0x00000602
+_08147018: .4byte 0x00001f08
+_0814701C:
+ bl UpdatePaletteFade
+ lsls r0, 24
+ cmp r0, 0
+ bne _08147032
+ ldr r0, _08147040
+ bl SetMainCallback2
+ ldr r0, _08147044
+ bl SetVBlankCallback
+_08147032:
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147040: .4byte sub_8147048
+_08147044: .4byte sub_8147218
+ thumb_func_end sub_8146E50
+
+ thumb_func_start sub_8147048
+sub_8147048: @ 8147048
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r0, _081470C8
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r1, _081470CC
+ ldr r0, [r1]
+ cmp r0, 0
+ beq _081470A6
+ adds r5, r1, 0
+_0814705C:
+ ldr r0, [r5]
+ bl sub_814737C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0814710C
+ .if REVISION >= 1
+ movs r0, 0x1
+ movs r1, 0xA
+ movs r2, 0x1C
+ movs r3, 0x13
+ .else
+ movs r0, 0x1
+ movs r1, 0xC
+ movs r2, 0x1C
+ movs r3, 0x13
+ .endif
+ bl MenuDrawTextWindow
+ ldr r0, _081470D0
+ .if REVISION >= 1
+ movs r1, 0x2
+ movs r2, 0xB
+ .else
+ movs r1, 0x2
+ movs r2, 0xD
+ .endif
+ bl MenuPrint
+ ldr r0, _081470D4
+ ldrb r0, [r0]
+ bl sub_8125C3C
+ ldr r0, [r5]
+ cmp r0, 0
+ beq _08147096
+ ldr r0, _081470D8
+ .if REVISION >= 1
+ movs r1, 0x2
+ movs r2, 0xB
+ .else
+ movs r1, 0x2
+ movs r2, 0xD
+ .endif
+ bl MenuPrint
+_08147096:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, [r5]
+ cmp r0, 0
+ beq _081470A6
+ cmp r4, 0x2
+ bls _0814705C
+_081470A6:
+ cmp r4, 0x3
+ bne _081470E4
+ .if REVISION >= 1
+ movs r0, 0x1
+ movs r1, 0xA
+ movs r2, 0x1C
+ movs r3, 0x13
+ .else
+ movs r0, 0x1
+ movs r1, 0xC
+ movs r2, 0x1C
+ movs r3, 0x13
+ .endif
+ bl MenuDrawTextWindow
+ ldr r0, _081470DC
+ .if REVISION >= 1
+ movs r1, 0x2
+ movs r2, 0xB
+ .else
+ movs r1, 0x2
+ movs r2, 0xD
+ .endif
+ bl MenuPrint
+ ldr r0, _081470E0
+ bl SetMainCallback2
+ b _0814713E
+ .align 2, 0
+_081470C8: .4byte gUnknown_0203933E
+_081470CC: .4byte gUnknown_03005EA8
+_081470D0: .4byte gSystemText_CheckCompleteSaveAttempt
+_081470D4: .4byte gUnknown_0203933C
+_081470D8: .4byte gSystemText_SaveFailedBackupCheck
+_081470DC: .4byte gSystemText_BackupDamagedGameContinue
+_081470E0: .4byte sub_81471A4
+_081470E4:
+ .if REVISION >= 1
+ movs r0, 0x1
+ movs r1, 0xA
+ movs r2, 0x1C
+ movs r3, 0x13
+ .else
+ movs r0, 0x1
+ movs r1, 0xC
+ movs r2, 0x1C
+ movs r3, 0x13
+ .endif
+ bl MenuDrawTextWindow
+ ldr r0, _08147104
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _08147134
+ ldr r0, _08147108
+ .if REVISION >= 1
+ movs r1, 0x2
+ movs r2, 0xB
+ .else
+ movs r1, 0x2
+ movs r2, 0xD
+ .endif
+ bl MenuPrint
+ b _0814713E
+ .align 2, 0
+_08147104: .4byte gUnknown_03005EBC
+_08147108: .4byte gSystemText_SaveCompletedGameEnd
+_0814710C:
+ .if REVISION >= 1
+ movs r0, 0x1
+ movs r1, 0xA
+ movs r2, 0x1C
+ movs r3, 0x13
+ .else
+ movs r0, 0x1
+ movs r1, 0xC
+ movs r2, 0x1C
+ movs r3, 0x13
+ .endif
+ bl MenuDrawTextWindow
+ ldr r0, _0814712C
+ .if REVISION >= 1
+ movs r1, 0x2
+ movs r2, 0xB
+ .else
+ movs r1, 0x2
+ movs r2, 0xD
+ .endif
+ bl MenuPrint
+ ldr r0, _08147130
+ bl SetMainCallback2
+ b _08147144
+ .align 2, 0
+_0814712C: .4byte gSystemText_BackupDamagedGameContinue
+_08147130: .4byte sub_8147154
+_08147134:
+ ldr r0, _0814714C
+ .if REVISION >= 1
+ movs r1, 0x2
+ movs r2, 0xB
+ .else
+ movs r1, 0x2
+ movs r2, 0xD
+ .endif
+ bl MenuPrint
+_0814713E:
+ ldr r0, _08147150
+ bl SetMainCallback2
+_08147144:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814714C: .4byte gSystemText_SaveCompletedPressA
+_08147150: .4byte sub_81471A4
+ thumb_func_end sub_8147048
+
+ thumb_func_start sub_8147154
+sub_8147154: @ 8147154
+ push {lr}
+ ldr r1, _08147190
+ movs r0, 0
+ strh r0, [r1]
+ ldr r0, _08147194
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0814718A
+ .if REVISION >= 1
+ movs r0, 0x1
+ movs r1, 0xA
+ movs r2, 0x1C
+ movs r3, 0x13
+ .else
+ movs r0, 0x1
+ movs r1, 0xC
+ movs r2, 0x1C
+ movs r3, 0x13
+ .endif
+ bl MenuDrawTextWindow
+ ldr r0, _08147198
+ .if REVISION >= 1
+ movs r1, 0x2
+ movs r2, 0xB
+ .else
+ movs r1, 0x2
+ movs r2, 0xD
+ .endif
+ bl MenuPrint
+ ldr r0, _0814719C
+ bl SetVBlankCallback
+ ldr r0, _081471A0
+ bl SetMainCallback2
+_0814718A:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147190: .4byte gUnknown_0203933E
+_08147194: .4byte gMain
+_08147198: .4byte gSystemText_GameplayEnded
+_0814719C: .4byte sub_8146E3C
+_081471A0: .4byte sub_81471A4
+ thumb_func_end sub_8147154
+
+ thumb_func_start sub_81471A4
+sub_81471A4: @ 81471A4
+ push {lr}
+ sub sp, 0x4
+ ldr r0, _081471DC
+ movs r2, 0
+ strh r2, [r0]
+ ldr r0, _081471E0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081471D4
+ movs r0, 0x1
+ negs r0, r0
+ str r2, [sp]
+ movs r1, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _081471E4
+ bl SetVBlankCallback
+ ldr r0, _081471E8
+ bl SetMainCallback2
+_081471D4:
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081471DC: .4byte gUnknown_0203933E
+_081471E0: .4byte gMain
+_081471E4: .4byte sub_8146E3C
+_081471E8: .4byte sub_81471EC
+ thumb_func_end sub_81471A4
+
+ thumb_func_start sub_81471EC
+sub_81471EC: @ 81471EC
+ push {r4,r5,lr}
+ bl UpdatePaletteFade
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08147212
+ ldr r5, _08147208
+ ldr r0, [r5]
+ cmp r0, 0
+ bne _0814720C
+ bl DoSoftReset
+ b _08147212
+ .align 2, 0
+_08147208: .4byte gUnknown_03005EBC
+_0814720C:
+ bl SetMainCallback2
+ str r4, [r5]
+_08147212:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81471EC
+
+ thumb_func_start sub_8147218
+sub_8147218: @ 8147218
+ push {r4,r5,lr}
+ ldr r0, _08147290
+ mov r12, r0
+ ldr r0, [r0, 0x24]
+ lsrs r4, r0, 3
+ movs r0, 0x7
+ ands r4, r0
+ ldr r0, _08147294
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ mov r2, r12
+ str r0, [r2, 0x3C]
+ str r1, [r2, 0x40]
+ ldrh r1, [r2, 0x3E]
+ ldr r0, _08147298
+ ands r0, r1
+ movs r1, 0x70
+ orrs r0, r1
+ strh r0, [r2, 0x3E]
+ mov r1, r12
+ adds r1, 0x3C
+ .if REVISION >= 1
+ movs r0, 0x38
+ .else
+ movs r0, 0x48
+ .endif
+ strb r0, [r1]
+ ldr r0, _0814729C
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _081472A8
+ ldr r3, _081472A0
+ lsls r2, r4, 1
+ adds r2, r4
+ adds r0, r2, r3
+ mov r4, r12
+ adds r4, 0x40
+ ldrb r5, [r0]
+ ldrh r1, [r4]
+ ldr r0, _081472A4
+ ands r0, r1
+ orrs r0, r5
+ strh r0, [r4]
+ adds r0, r3, 0x2
+ adds r0, r2, r0
+ ldrb r1, [r0]
+ lsls r1, 4
+ adds r3, 0x1
+ adds r2, r3
+ ldrb r0, [r2]
+ lsls r0, 3
+ orrs r1, r0
+ mov r3, r12
+ adds r3, 0x3F
+ movs r0, 0x1F
+ ands r1, r0
+ lsls r1, 1
+ ldrb r2, [r3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r3]
+ b _081472B8
+ .align 2, 0
+_08147290: .4byte gMain
+_08147294: .4byte gUnknown_08411940
+_08147298: .4byte 0xfffffe00
+_0814729C: .4byte gUnknown_0203933E
+_081472A0: .4byte gUnknown_08411948
+_081472A4: .4byte 0xfffffc00
+_081472A8:
+ mov r2, r12
+ adds r2, 0x40
+ ldrh r1, [r2]
+ ldr r0, _081472D8
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+_081472B8:
+ ldr r0, _081472DC
+ movs r1, 0xE0
+ lsls r1, 19
+ movs r2, 0x1
+ bl CpuFastSet
+ ldr r1, _081472E0
+ ldrh r0, [r1, 0x2]
+ cmp r0, 0
+ beq _081472D0
+ subs r0, 0x1
+ strh r0, [r1, 0x2]
+_081472D0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081472D8: .4byte 0xfffffc00
+_081472DC: .4byte gMain + 0x3C
+_081472E0: .4byte gUnknown_0203933E
+ thumb_func_end sub_8147218
+
+ thumb_func_start sub_81472E4
+sub_81472E4: @ 81472E4
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _08147308
+ movs r3, 0x80
+ lsls r3, 5
+ movs r1, 0
+ adds r2, r4, 0
+ bl ReadFlash
+ movs r1, 0
+ ldr r2, _0814730C
+_081472FC:
+ ldr r0, [r4]
+ cmp r0, 0
+ beq _08147310
+ movs r0, 0x1
+ b _0814731E
+ .align 2, 0
+_08147308: .4byte 0x02000000
+_0814730C: .4byte 0x000003ff
+_08147310:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r4, 0x4
+ cmp r1, r2
+ bls _081472FC
+ movs r0, 0
+_0814731E:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81472E4
+
+ thumb_func_start sub_8147324
+sub_8147324: @ 8147324
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 16
+ lsrs r6, r0, 16
+ movs r0, 0
+ ldr r1, _08147374
+ mov r8, r1
+ ldr r7, _08147378
+_08147336:
+ movs r4, 0
+ adds r5, r0, 0x1
+_0814733A:
+ ldr r3, [r7]
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0
+ bl _call_via_r3
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, r8
+ bls _0814733A
+ adds r0, r6, 0
+ bl sub_81472E4
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r5, 16
+ lsrs r0, 16
+ cmp r1, 0
+ beq _08147366
+ cmp r0, 0x81
+ bls _08147336
+_08147366:
+ adds r0, r1, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08147374: .4byte 0x00000fff
+_08147378: .4byte ProgramFlashByte
+ thumb_func_end sub_8147324
+
+ thumb_func_start sub_814737C
+sub_814737C: @ 814737C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r6, 0
+_08147382:
+ movs r4, 0x1
+ lsls r4, r6
+ adds r0, r5, 0
+ ands r0, r4
+ cmp r0, 0
+ beq _0814739C
+ adds r0, r6, 0
+ bl sub_8147324
+ lsls r0, 24
+ cmp r0, 0
+ bne _0814739C
+ bics r5, r4
+_0814739C:
+ adds r0, r6, 0x1
+ lsls r0, 16
+ lsrs r6, r0, 16
+ cmp r6, 0x1F
+ bls _08147382
+ cmp r5, 0
+ beq _081473AE
+ movs r0, 0x1
+ b _081473B0
+_081473AE:
+ movs r0, 0
+_081473B0:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_814737C
+
+ thumb_func_start sub_81473B8
+sub_81473B8: @ 81473B8
+ push {lr}
+ ldr r0, _081473E8
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _08147400
+ ldr r2, _081473EC
+ ldrh r1, [r2, 0x4]
+ ldr r0, _081473F0
+ cmp r1, r0
+ bne _08147400
+ ldr r1, [r2]
+ ldr r0, _081473F4
+ cmp r1, r0
+ beq _081473E4
+ ldr r0, _081473F8
+ cmp r1, r0
+ beq _081473E4
+ ldr r0, _081473FC
+ cmp r1, r0
+ bne _08147400
+_081473E4:
+ movs r0, 0x1
+ b _08147402
+ .align 2, 0
+_081473E8: .4byte 0x0000084f
+_081473EC: .4byte gSaveBlock1
+_081473F0: .4byte 0x00004718
+_081473F4: .4byte 0x0003000a
+_081473F8: .4byte 0x00030009
+_081473FC: .4byte 0x0003000b
+_08147400:
+ movs r0, 0
+_08147402:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81473B8
+
+ thumb_func_start sub_8147408
+sub_8147408: @ 8147408
+ push {lr}
+ ldr r2, _08147460
+ movs r0, 0x10
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ ldr r2, _08147464
+ movs r0, 0x11
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ movs r2, 0x8B
+ lsls r2, 2
+ movs r0, 0x12
+ movs r1, 0x8
+ bl MapGridSetMetatileIdAt
+ ldr r2, _08147468
+ movs r0, 0x10
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0814746C
+ movs r0, 0x11
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ ldr r2, _08147470
+ movs r0, 0x12
+ movs r1, 0x9
+ bl MapGridSetMetatileIdAt
+ bl DrawWholeMapView
+ movs r0, 0x14
+ bl PlaySE
+ ldr r0, _08147474
+ bl FlagSet
+ bl ScriptContext2_Disable
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147460: .4byte 0x0000022a
+_08147464: .4byte 0x0000022b
+_08147468: .4byte 0x00000e32
+_0814746C: .4byte 0x00000233
+_08147470: .4byte 0x00000e34
+_08147474: .4byte 0x0000084f
+ thumb_func_end sub_8147408
+
+ thumb_func_start sub_8147478
+sub_8147478: @ 8147478
+ push {r4,lr}
+ ldr r4, _081474B4
+ adds r0, r4, 0
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ ldr r1, _081474B8
+ cmp r0, r1
+ bne _081474C0
+ bl CalculatePlayerPartyCount
+ ldr r0, _081474BC
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ adds r1, r4, 0
+ subs r1, 0x64
+ adds r0, r1
+ movs r1, 0x41
+ movs r2, 0
+ bl GetMonData
+ movs r1, 0x9D
+ lsls r1, 1
+ cmp r0, r1
+ bne _081474C0
+ movs r0, 0x1
+ b _081474C2
+ .align 2, 0
+_081474B4: .4byte gPlayerParty
+_081474B8: .4byte 0x0000017d
+_081474BC: .4byte gPlayerPartyCount
+_081474C0:
+ movs r0, 0
+_081474C2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8147478
+
+ thumb_func_start sub_81474C8
+sub_81474C8: @ 81474C8
+ push {lr}
+ movs r0, 0x85
+ lsls r0, 4
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _0814750C
+ ldr r2, _081474FC
+ ldrh r1, [r2, 0x4]
+ movs r0, 0xC3
+ lsls r0, 3
+ cmp r1, r0
+ bne _0814750C
+ ldr r1, [r2]
+ ldr r0, _08147500
+ cmp r1, r0
+ beq _081474F8
+ ldr r0, _08147504
+ cmp r1, r0
+ beq _081474F8
+ ldr r0, _08147508
+ cmp r1, r0
+ bne _0814750C
+_081474F8:
+ movs r0, 0x1
+ b _0814750E
+ .align 2, 0
+_081474FC: .4byte gSaveBlock1
+_08147500: .4byte 0x0017000a
+_08147504: .4byte 0x00170009
+_08147508: .4byte 0x0017000b
+_0814750C:
+ movs r0, 0
+_0814750E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81474C8
+
+ thumb_func_start sub_8147514
+sub_8147514: @ 8147514
+ push {lr}
+ movs r0, 0x28
+ bl FieldEffectActiveListRemove
+ ldr r2, _08147574
+ movs r0, 0xE
+ movs r1, 0x1A
+ bl MapGridSetMetatileIdAt
+ ldr r2, _08147578
+ movs r0, 0xF
+ movs r1, 0x1A
+ bl MapGridSetMetatileIdAt
+ movs r2, 0x8B
+ lsls r2, 2
+ movs r0, 0x10
+ movs r1, 0x1A
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0814757C
+ movs r0, 0xE
+ movs r1, 0x1B
+ bl MapGridSetMetatileIdAt
+ ldr r2, _08147580
+ movs r0, 0xF
+ movs r1, 0x1B
+ bl MapGridSetMetatileIdAt
+ ldr r2, _08147584
+ movs r0, 0x10
+ movs r1, 0x1B
+ bl MapGridSetMetatileIdAt
+ bl DrawWholeMapView
+ movs r0, 0x14
+ bl PlaySE
+ movs r0, 0x85
+ lsls r0, 4
+ bl FlagSet
+ bl ScriptContext2_Disable
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147574: .4byte 0x0000022a
+_08147578: .4byte 0x0000022b
+_0814757C: .4byte 0x00000e32
+_08147580: .4byte 0x00000233
+_08147584: .4byte 0x00000e34
+ thumb_func_end sub_8147514
+
+ thumb_func_start sub_8147588
+sub_8147588: @ 8147588
+ push {lr}
+ ldr r0, _081475AC
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _081475BC
+ ldr r2, _081475B0
+ ldrh r1, [r2, 0x4]
+ ldr r0, _081475B4
+ cmp r1, r0
+ bne _081475BC
+ ldr r1, [r2]
+ ldr r0, _081475B8
+ cmp r1, r0
+ bne _081475BC
+ movs r0, 0x1
+ b _081475BE
+ .align 2, 0
+_081475AC: .4byte 0x00000852
+_081475B0: .4byte gSaveBlock1
+_081475B4: .4byte 0x00004418
+_081475B8: .4byte 0x00190008
+_081475BC:
+ movs r0, 0
+_081475BE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8147588
+
+ thumb_func_start sub_81475C4
+sub_81475C4: @ 81475C4
+ push {lr}
+ ldr r0, _081475D8
+ ldr r1, _081475DC
+ ldrb r1, [r1]
+ str r1, [r0]
+ movs r0, 0x3C
+ bl FieldEffectStart
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081475D8: .4byte gUnknown_0202FF84
+_081475DC: .4byte gUnknown_03005CE0
+ thumb_func_end sub_81475C4
+
+ thumb_func_start sub_81475E0
+sub_81475E0: @ 81475E0
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08147604
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _08147608
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08147604: .4byte gTasks
+_08147608: .4byte sub_814760C
+ thumb_func_end sub_81475E0
+
+ thumb_func_start sub_814760C
+sub_814760C: @ 814760C
+ push {lr}
+ movs r0, 0x3C
+ bl FieldEffectActiveListRemove
+ bl sub_814761C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_814760C
+
+ thumb_func_start sub_814761C
+sub_814761C: @ 814761C
+ push {lr}
+ ldr r2, _08147674
+ movs r0, 0xE
+ movs r1, 0x1A
+ bl MapGridSetMetatileIdAt
+ ldr r2, _08147678
+ movs r0, 0xF
+ movs r1, 0x1A
+ bl MapGridSetMetatileIdAt
+ movs r2, 0x8B
+ lsls r2, 2
+ movs r0, 0x10
+ movs r1, 0x1A
+ bl MapGridSetMetatileIdAt
+ ldr r2, _0814767C
+ movs r0, 0xE
+ movs r1, 0x1B
+ bl MapGridSetMetatileIdAt
+ ldr r2, _08147680
+ movs r0, 0xF
+ movs r1, 0x1B
+ bl MapGridSetMetatileIdAt
+ ldr r2, _08147684
+ movs r0, 0x10
+ movs r1, 0x1B
+ bl MapGridSetMetatileIdAt
+ bl DrawWholeMapView
+ movs r0, 0x14
+ bl PlaySE
+ ldr r0, _08147688
+ bl FlagSet
+ bl ScriptContext2_Disable
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147674: .4byte 0x0000022a
+_08147678: .4byte 0x0000022b
+_0814767C: .4byte 0x00000e32
+_08147680: .4byte 0x00000233
+_08147684: .4byte 0x00000e34
+_08147688: .4byte 0x00000852
+ thumb_func_end sub_814761C
+
+ thumb_func_start sub_814768C
+sub_814768C: @ 814768C
+ push {lr}
+ ldr r0, _081476A8
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ bne _081476A2
+ ldr r0, _081476AC
+ movs r1, 0x50
+ bl CreateTask
+_081476A2:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081476A8: .4byte 0x00000851
+_081476AC: .4byte sub_81476B0
+ thumb_func_end sub_814768C
+
+ thumb_func_start sub_81476B0
+sub_81476B0: @ 81476B0
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _081476D4
+ adds r4, r0, r1
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bhi _0814776A
+ lsls r0, 2
+ ldr r1, _081476D8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081476D4: .4byte gUnknown_03004B28
+_081476D8: .4byte _081476DC
+ .align 2, 0
+_081476DC:
+ .4byte _081476F0
+ .4byte _081476FE
+ .4byte _08147730
+ .4byte _08147748
+ .4byte _0814775A
+_081476F0:
+ movs r1, 0xE1
+ lsls r1, 5
+ adds r0, r1, 0
+ strh r0, [r4, 0x2]
+ movs r0, 0x1
+ strh r0, [r4]
+ b _0814776A
+_081476FE:
+ bl sub_8147774
+ cmp r0, 0
+ beq _08147716
+ bl MenuZeroFillScreen
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x2
+ strh r0, [r4]
+ b _0814776A
+_08147716:
+ ldrh r0, [r4, 0x2]
+ subs r0, 0x1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0814776A
+ bl MenuZeroFillScreen
+ movs r0, 0x3
+ strh r0, [r4]
+ movs r0, 0x1E
+ strh r0, [r4, 0x2]
+ b _0814776A
+_08147730:
+ bl sub_8147774
+ cmp r0, 0
+ beq _08147748
+ bl sub_8064E2C
+ adds r0, r5, 0
+ bl DestroyTask
+ bl ScriptContext2_Disable
+ b _0814776A
+_08147748:
+ ldrh r0, [r4, 0x2]
+ subs r0, 0x1
+ strh r0, [r4, 0x2]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0814776A
+ movs r0, 0x4
+ strh r0, [r4]
+ b _0814776A
+_0814775A:
+ bl sub_8064E2C
+ ldr r0, _08147770
+ bl ScriptContext1_SetupScript
+ adds r0, r5, 0
+ bl DestroyTask
+_0814776A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147770: .4byte gUnknown_0815EF19
+ thumb_func_end sub_81476B0
+
+ thumb_func_start sub_8147774
+sub_8147774: @ 8147774
+ push {lr}
+ movs r1, 0xFF
+ ldr r0, _081477A4
+ ldrb r2, [r0, 0x13]
+ cmp r2, 0x1
+ bne _08147788
+ movs r3, 0xC0
+ lsls r3, 2
+ adds r0, r3, 0
+ orrs r1, r0
+_08147788:
+ cmp r2, 0x2
+ bne _08147794
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r2, 0
+ orrs r1, r0
+_08147794:
+ ldr r0, _081477A8
+ ldrh r0, [r0, 0x2E]
+ ands r1, r0
+ cmp r1, 0
+ bne _081477AC
+ movs r0, 0
+ b _081477AE
+ .align 2, 0
+_081477A4: .4byte gSaveBlock2
+_081477A8: .4byte gMain
+_081477AC:
+ movs r0, 0x1
+_081477AE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8147774
+
+ thumb_func_start sub_81477B4
+sub_81477B4: @ 81477B4
+ push {lr}
+ ldr r0, _081477E8
+ movs r1, 0x9
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _081477EC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0xA]
+ strh r0, [r1, 0xC]
+ movs r0, 0x2
+ strh r0, [r1, 0x10]
+ movs r0, 0x5
+ strh r0, [r1, 0x12]
+ movs r0, 0x32
+ strh r0, [r1, 0x14]
+ movs r0, 0
+ bl SetCameraPanningCallback
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081477E8: .4byte sub_814782C
+_081477EC: .4byte gTasks
+ thumb_func_end sub_81477B4
+
+ thumb_func_start sub_81477F0
+sub_81477F0: @ 81477F0
+ push {lr}
+ ldr r0, _08147824
+ movs r1, 0x9
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08147828
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0xA]
+ strh r0, [r1, 0xC]
+ movs r0, 0x3
+ strh r0, [r1, 0x10]
+ movs r0, 0x5
+ strh r0, [r1, 0x12]
+ movs r0, 0x2
+ strh r0, [r1, 0x14]
+ movs r0, 0
+ bl SetCameraPanningCallback
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147824: .4byte sub_814782C
+_08147828: .4byte gTasks
+ thumb_func_end sub_81477F0
+
+ thumb_func_start sub_814782C
+sub_814782C: @ 814782C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _0814788C
+ adds r4, r0, r1
+ ldrh r0, [r4, 0xA]
+ adds r0, 0x1
+ strh r0, [r4, 0xA]
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ movs r2, 0x12
+ ldrsh r1, [r4, r2]
+ bl __modsi3
+ cmp r0, 0
+ bne _08147884
+ strh r0, [r4, 0xA]
+ ldrh r0, [r4, 0xC]
+ adds r0, 0x1
+ strh r0, [r4, 0xC]
+ ldrh r0, [r4, 0x10]
+ negs r0, r0
+ strh r0, [r4, 0x10]
+ movs r0, 0x10
+ ldrsh r1, [r4, r0]
+ movs r0, 0
+ bl SetCameraPanning
+ movs r2, 0xC
+ ldrsh r1, [r4, r2]
+ movs r2, 0x14
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _08147884
+ adds r0, r5, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ bl InstallCameraPanAheadCallback
+_08147884:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814788C: .4byte gTasks
+ thumb_func_end sub_814782C
+
+ thumb_func_start sub_8147890
+sub_8147890: @ 8147890
+ push {lr}
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl RunTasks
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8147890
+
+ thumb_func_start sub_81478A8
+sub_81478A8: @ 81478A8
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81478A8
+
+ thumb_func_start sub_81478BC
+sub_81478BC: @ 81478BC
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _081478D8
+ ldr r1, _081478DC
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0xD
+ bls _081478CE
+ b _08147AD0
+_081478CE:
+ lsls r0, 2
+ ldr r1, _081478E0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_081478D8: .4byte gMain
+_081478DC: .4byte 0x0000043c
+_081478E0: .4byte _081478E4
+ .align 2, 0
+_081478E4:
+ .4byte _0814791C
+ .4byte _08147938
+ .4byte _0814794C
+ .4byte _08147960
+ .4byte _08147966
+ .4byte _08147980
+ .4byte _0814798C
+ .4byte _081479B8
+ .4byte _081479DC
+ .4byte _081479F4
+ .4byte _08147A20
+ .4byte _08147A3C
+ .4byte _08147A5C
+ .4byte _08147A8C
+_0814791C:
+ bl sub_80F9438
+ bl sub_80F9368
+ bl sub_8147B04
+ ldr r1, _08147930
+ ldr r2, _08147934
+ adds r1, r2
+ b _08147A4A
+ .align 2, 0
+_08147930: .4byte gMain
+_08147934: .4byte 0x0000043c
+_08147938:
+ bl ResetPaletteFade
+ ldr r2, _08147948
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ b _08147A44
+ .align 2, 0
+_08147948: .4byte gPaletteFade
+_0814794C:
+ bl ResetSpriteData
+ ldr r1, _08147958
+ ldr r2, _0814795C
+ adds r1, r2
+ b _08147A4A
+ .align 2, 0
+_08147958: .4byte gMain
+_0814795C: .4byte 0x0000043c
+_08147960:
+ bl FreeAllSpritePalettes
+ b _08147A44
+_08147966:
+ ldr r0, _08147974
+ bl SetUpWindowConfig
+ ldr r1, _08147978
+ ldr r2, _0814797C
+ adds r1, r2
+ b _08147A4A
+ .align 2, 0
+_08147974: .4byte gWindowConfig_81E6E50
+_08147978: .4byte gMain
+_0814797C: .4byte 0x0000043c
+_08147980:
+ ldr r0, _08147988
+ bl MultistepInitMenuWindowBegin
+ b _08147A44
+ .align 2, 0
+_08147988: .4byte gWindowConfig_81E6E50
+_0814798C:
+ bl MultistepInitMenuWindowContinue
+ cmp r0, 0
+ bne _08147996
+ b _08147AD0
+_08147996:
+ ldr r0, _081479A8
+ ldr r1, _081479AC
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r1, _081479B0
+ ldr r2, _081479B4
+ adds r1, r2
+ b _08147A4A
+ .align 2, 0
+_081479A8: .4byte 0x02000000
+_081479AC: .4byte 0x0001ffff
+_081479B0: .4byte gMain
+_081479B4: .4byte 0x0000043c
+_081479B8:
+ ldr r0, _081479D4
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _081479D8
+ adds r0, r1
+ bl sub_8147B20
+ lsls r0, 24
+ cmp r0, 0
+ bne _081479D0
+ b _08147AD0
+_081479D0:
+ b _08147A44
+ .align 2, 0
+_081479D4: .4byte gUnknown_02039310
+_081479D8: .4byte gPlayerParty
+_081479DC:
+ bl sub_81480B4
+ ldr r1, _081479EC
+ ldr r2, _081479F0
+ adds r1, r2
+ strb r0, [r1]
+ b _08147A44
+ .align 2, 0
+_081479EC: .4byte 0x02000000
+_081479F0: .4byte 0x0001fffd
+_081479F4:
+ ldr r0, _08147A10
+ ldrb r1, [r0]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08147A14
+ adds r0, r1
+ bl sub_8147F84
+ ldr r1, _08147A18
+ ldr r2, _08147A1C
+ adds r1, r2
+ strb r0, [r1]
+ b _08147A44
+ .align 2, 0
+_08147A10: .4byte gUnknown_02039310
+_08147A14: .4byte gPlayerParty
+_08147A18: .4byte 0x02000000
+_08147A1C: .4byte 0x0001fffe
+_08147A20:
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r1, _08147A34
+ ldr r2, _08147A38
+ adds r1, r2
+ b _08147A4A
+ .align 2, 0
+_08147A34: .4byte gMain
+_08147A38: .4byte 0x0000043c
+_08147A3C:
+ bl sub_8055870
+ cmp r0, 0x1
+ beq _08147AD0
+_08147A44:
+ ldr r1, _08147A54
+ ldr r0, _08147A58
+ adds r1, r0
+_08147A4A:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08147AD0
+ .align 2, 0
+_08147A54: .4byte gMain
+_08147A58: .4byte 0x0000043c
+_08147A5C:
+ ldr r3, _08147AB0
+ ldrh r2, [r3]
+ movs r0, 0
+ strh r0, [r3]
+ ldr r4, _08147AB4
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ ldr r2, _08147AB8
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _08147ABC
+ bl SetVBlankCallback
+ ldr r1, _08147AC0
+ ldr r2, _08147AC4
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+_08147A8C:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r2, _08147AC8
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+ ldr r0, _08147ACC
+ bl SetMainCallback2
+ movs r0, 0x1
+ b _08147AD2
+ .align 2, 0
+_08147AB0: .4byte 0x04000208
+_08147AB4: .4byte 0x04000200
+_08147AB8: .4byte REG_DISPSTAT
+_08147ABC: .4byte sub_81478A8
+_08147AC0: .4byte gMain
+_08147AC4: .4byte 0x0000043c
+_08147AC8: .4byte gPaletteFade
+_08147ACC: .4byte sub_8147890
+_08147AD0:
+ movs r0, 0
+_08147AD2:
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81478BC
+
+ thumb_func_start sub_8147ADC
+sub_8147ADC: @ 8147ADC
+ push {lr}
+_08147ADE:
+ bl sub_81478BC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08147AF2
+ movs r0, 0x1
+ bl sub_8147DDC
+ b _08147AFE
+_08147AF2:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08147ADE
+_08147AFE:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8147ADC
+
+ thumb_func_start sub_8147B04
+sub_8147B04: @ 8147B04
+ ldr r1, _08147B18
+ ldr r2, _08147B1C
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xA
+ movs r2, 0x9A
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_08147B18: .4byte REG_BG1CNT
+_08147B1C: .4byte 0x00001d02
+ thumb_func_end sub_8147B04
+
+ thumb_func_start sub_8147B20
+sub_8147B20: @ 8147B20
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ ldr r0, _08147B40
+ ldr r1, _08147B44
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x8
+ bls _08147B34
+ b _08147C84
+_08147B34:
+ lsls r0, 2
+ ldr r1, _08147B48
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08147B40: .4byte 0x02000000
+_08147B44: .4byte 0x0001ffff
+_08147B48: .4byte _08147B4C
+ .align 2, 0
+_08147B4C:
+ .4byte _08147B70
+ .4byte _08147BB8
+ .4byte _08147BF0
+ .4byte _08147BFC
+ .4byte _08147C08
+ .4byte _08147C14
+ .4byte _08147C2C
+ .4byte _08147C38
+ .4byte _08147C60
+_08147B70:
+ 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, _08147BAC
+ adds r0, r1
+ ldr r1, _08147BB0
+ lsls r2, r5, 2
+ adds r2, r1
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ movs r3, 0x80
+ lsls r3, 18
+ ldr r4, _08147BB4
+ ldr r4, [r4, 0x4]
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ str r6, [sp, 0x8]
+ bl sub_800D334
+ b _08147C40
+ .align 2, 0
+_08147BAC: .4byte gMonFrontPicTable
+_08147BB0: .4byte gMonFrontPicCoords
+_08147BB4: .4byte gUnknown_081FAF4C
+_08147BB8:
+ 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
+ b _08147C40
+_08147BF0:
+ ldr r0, _08147BF8
+ bl LoadCompressedObjectPic
+ b _08147C40
+ .align 2, 0
+_08147BF8: .4byte gUnknown_083F7F74
+_08147BFC:
+ ldr r0, _08147C04
+ bl LoadCompressedObjectPalette
+ b _08147C40
+ .align 2, 0
+_08147C04: .4byte gUnknown_083F7F7C
+_08147C08:
+ ldr r0, _08147C10
+ bl LoadCompressedObjectPic
+ b _08147C40
+ .align 2, 0
+_08147C10: .4byte gUnknown_084121DC
+_08147C14:
+ ldr r0, _08147C24
+ ldrb r0, [r0]
+ bl sub_8147C90
+ ldr r0, _08147C28
+ bl LoadCompressedObjectPalette
+ b _08147C40
+ .align 2, 0
+_08147C24: .4byte word_203855E
+_08147C28: .4byte gUnknown_02039350
+_08147C2C:
+ ldr r0, _08147C34
+ movs r1, 0xC0
+ lsls r1, 19
+ b _08147C3C
+ .align 2, 0
+_08147C34: .4byte gBattleTerrainTiles_Building
+_08147C38:
+ ldr r0, _08147C50
+ ldr r1, _08147C54
+_08147C3C:
+ bl LZDecompressVram
+_08147C40:
+ ldr r1, _08147C58
+ ldr r0, _08147C5C
+ adds r1, r0
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _08147C84
+ .align 2, 0
+_08147C50: .4byte gUnknown_08E782FC
+_08147C54: .4byte 0x0600e800
+_08147C58: .4byte 0x02000000
+_08147C5C: .4byte 0x0001ffff
+_08147C60:
+ ldr r0, _08147C78
+ movs r1, 0x20
+ movs r2, 0x60
+ bl LoadCompressedPalette
+ ldr r0, _08147C7C
+ ldr r1, _08147C80
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ movs r0, 0x1
+ b _08147C86
+ .align 2, 0
+_08147C78: .4byte gBattleTerrainPalette_BattleTower
+_08147C7C: .4byte 0x02000000
+_08147C80: .4byte 0x0001ffff
+_08147C84:
+ movs r0, 0
+_08147C86:
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8147B20
+
+ thumb_func_start sub_8147C90
+sub_8147C90: @ 8147C90
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 21
+ ldr r1, _08147CB8
+ adds r0, r1
+ movs r1, 0
+ bl sub_810CA9C
+ lsls r0, 24
+ ldr r2, _08147CBC
+ ldr r1, _08147CC0
+ lsrs r0, 22
+ subs r0, 0x4
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r2]
+ ldr r0, _08147CC4
+ strh r0, [r2, 0x4]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147CB8: .4byte gSaveBlock1 + 0x7F8
+_08147CBC: .4byte gUnknown_02039350
+_08147CC0: .4byte gUnknown_084120A4
+_08147CC4: .4byte 0x000039e2
+ thumb_func_end sub_8147C90
+
+ thumb_func_start sub_8147CC8
+sub_8147CC8: @ 8147CC8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08147D00
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08147CDC
+ b _08147DCE
+_08147CDC:
+ ldr r0, _08147D04
+ lsls r2, r4, 2
+ adds r1, r2, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0x8
+ ldrsh r3, [r1, r0]
+ ldr r0, _08147D08
+ adds r5, r2, 0
+ cmp r3, r0
+ beq _08147D50
+ cmp r3, r0
+ bgt _08147D0C
+ cmp r3, 0
+ beq _08147D20
+ cmp r3, 0xFF
+ beq _08147D38
+ b _08147D8C
+ .align 2, 0
+_08147D00: .4byte gPaletteFade
+_08147D04: .4byte gTasks
+_08147D08: .4byte 0x0000010d
+_08147D0C:
+ ldr r0, _08147D1C
+ cmp r3, r0
+ beq _08147D68
+ adds r0, 0x10
+ cmp r3, r0
+ beq _08147D80
+ b _08147D8C
+ .align 2, 0
+_08147D1C: .4byte 0x00000119
+_08147D20:
+ ldr r0, _08147D30
+ strb r3, [r0]
+ ldr r0, _08147D34
+ strh r3, [r0]
+ bl sub_81481DC
+ b _08147D8C
+ .align 2, 0
+_08147D30: .4byte gUnknown_03005F3C
+_08147D34: .4byte gUnknown_03005F94
+_08147D38:
+ ldr r0, _08147D48
+ ldr r2, _08147D4C
+ adds r0, r2
+ ldrb r0, [r0]
+ ldrb r1, [r1, 0xA]
+ bl sub_8148108
+ b _08147D8C
+ .align 2, 0
+_08147D48: .4byte 0x02000000
+_08147D4C: .4byte 0x0001fffd
+_08147D50:
+ bl sub_814817C
+ ldr r1, _08147D60
+ ldr r2, _08147D64
+ adds r1, r2
+ strb r0, [r1]
+ b _08147D8C
+ .align 2, 0
+_08147D60: .4byte 0x02000000
+_08147D64: .4byte 0x0001fffc
+_08147D68:
+ ldr r0, _08147D78
+ ldr r1, _08147D7C
+ adds r0, r1
+ ldrb r0, [r0]
+ bl sub_8148044
+ b _08147D8C
+ .align 2, 0
+_08147D78: .4byte 0x02000000
+_08147D7C: .4byte 0x0001fffe
+_08147D80:
+ ldr r0, _08147D88
+ str r0, [r1]
+ b _08147DCE
+ .align 2, 0
+_08147D88: .4byte sub_8147E40
+_08147D8C:
+ ldr r0, _08147DA0
+ ldr r1, _08147DA4
+ ldrh r2, [r0]
+ ldrh r0, [r1]
+ cmp r2, r0
+ bcs _08147DA8
+ bl sub_814825C
+ b _08147DB8
+ .align 2, 0
+_08147DA0: .4byte gUnknown_03005F94
+_08147DA4: .4byte gUnknown_03005F34
+_08147DA8:
+ cmp r2, r0
+ bne _08147DB8
+ ldr r0, _08147DD4
+ adds r1, r5, r4
+ lsls r1, 3
+ adds r1, r0
+ movs r0, 0xFE
+ strh r0, [r1, 0x8]
+_08147DB8:
+ ldr r1, _08147DD8
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ ldr r0, _08147DD4
+ adds r1, r5, r4
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+ adds r0, 0x1
+ strh r0, [r1, 0x8]
+_08147DCE:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147DD4: .4byte gTasks
+_08147DD8: .4byte gUnknown_03005F94
+ thumb_func_end sub_8147CC8
+
+ thumb_func_start sub_8147DDC
+sub_8147DDC: @ 8147DDC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _08147E08
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08147E0C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x8]
+ strh r4, [r1, 0xA]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147E08: .4byte sub_8147CC8
+_08147E0C: .4byte gTasks
+ thumb_func_end sub_8147DDC
+
+ thumb_func_start sub_8147E10
+sub_8147E10: @ 8147E10
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl MenuUpdateWindowText
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08147E30
+ ldr r0, _08147E38
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08147E3C
+ str r0, [r1]
+_08147E30:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147E38: .4byte gTasks
+_08147E3C: .4byte sub_8147F4C
+ thumb_func_end sub_8147E10
+
+ thumb_func_start sub_8147E40
+sub_8147E40: @ 8147E40
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r0, _08147E94
+ ldrb r1, [r0]
+ movs r0, 0x64
+ adds r5, r1, 0
+ muls r5, r0
+ ldr r0, _08147E98
+ adds r5, r0
+ ldr r0, _08147E9C
+ ldrh r4, [r0]
+ lsls r4, 3
+ ldr r0, _08147EA0
+ adds r4, r0
+ adds r0, r5, 0
+ bl GetNature
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ bl sub_810CAE4
+ ldr r6, _08147EA4
+ strh r0, [r6]
+ ldr r1, _08147EA8
+ adds r0, r5, 0
+ bl GetMonNickname
+ ldr r1, _08147EAC
+ adds r0, r4, 0
+ bl sub_810CB44
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bne _08147EB8
+ ldr r0, _08147EB0
+ ldr r1, _08147EB4
+ bl StringExpandPlaceholders
+ b _08147ED8
+ .align 2, 0
+_08147E94: .4byte gUnknown_02039310
+_08147E98: .4byte gPlayerParty
+_08147E9C: .4byte word_203855E
+_08147EA0: .4byte gSaveBlock1 + 0x7F8
+_08147EA4: .4byte gUnknown_02039312
+_08147EA8: .4byte gStringVar1
+_08147EAC: .4byte gStringVar2
+_08147EB0: .4byte gStringVar4
+_08147EB4: .4byte gContestStatsText_NormallyAte
+_08147EB8:
+ cmp r0, 0
+ ble _08147ED0
+ ldr r0, _08147EC8
+ ldr r1, _08147ECC
+ bl StringExpandPlaceholders
+ b _08147ED8
+ .align 2, 0
+_08147EC8: .4byte gStringVar4
+_08147ECC: .4byte gContestStatsText_HappilyAte
+_08147ED0:
+ ldr r0, _08147EF8
+ ldr r1, _08147EFC
+ bl StringExpandPlaceholders
+_08147ED8:
+ ldr r0, _08147EF8
+ movs r1, 0x1
+ movs r2, 0xF
+ bl MenuPrintMessage
+ ldr r1, _08147F00
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08147F04
+ str r1, [r0]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147EF8: .4byte gStringVar4
+_08147EFC: .4byte gContestStatsText_DisdainfullyAte
+_08147F00: .4byte gTasks
+_08147F04: .4byte sub_8147E10
+ thumb_func_end sub_8147E40
+
+ thumb_func_start sub_8147F08
+sub_8147F08: @ 8147F08
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08147F3C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08147F34
+ ldr r0, _08147F40
+ ldr r1, _08147F44
+ movs r2, 0x80
+ lsls r2, 1
+ bl m4aMPlayVolumeControl
+ ldr r0, _08147F48
+ ldr r0, [r0, 0x8]
+ bl SetMainCallback2
+ adds r0, r4, 0
+ bl DestroyTask
+_08147F34:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147F3C: .4byte gPaletteFade
+_08147F40: .4byte gMPlay_BGM
+_08147F44: .4byte 0x0000ffff
+_08147F48: .4byte gMain
+ thumb_func_end sub_8147F08
+
+ thumb_func_start sub_8147F4C
+sub_8147F4C: @ 8147F4C
+ 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, _08147F7C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08147F80
+ str r1, [r0]
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08147F7C: .4byte gTasks
+_08147F80: .4byte sub_8147F08
+ thumb_func_end sub_8147F4C
+
+ thumb_func_start sub_8147F84
+sub_8147F84: @ 8147F84
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r5, r0, 0
+ movs r1, 0x41
+ bl GetMonData
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _08148024
+ movs r1, 0x30
+ movs r2, 0x50
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _08148028
+ strh r4, [r0]
+ ldr r0, _0814802C
+ mov r1, r8
+ strb r1, [r0]
+ adds r0, r5, 0
+ bl GetNature
+ ldr r1, _08148030
+ strb r0, [r1]
+ ldr r7, _08148034
+ mov r1, r8
+ lsls r0, r1, 4
+ add r0, r8
+ lsls r5, r0, 2
+ adds r6, r5, r7
+ strh r4, [r6, 0x32]
+ adds r0, r7, 0
+ adds r0, 0x1C
+ adds r0, r5, r0
+ ldr r1, _08148038
+ str r1, [r0]
+ ldr r0, _0814803C
+ mov r9, r0
+ movs r0, 0x1
+ mov r1, r9
+ strb r0, [r1]
+ adds r0, r4, 0
+ bl sub_8040A3C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08148016
+ adds r0, r7, 0
+ adds r0, 0x10
+ adds r0, r5, r0
+ ldr r1, _08148040
+ str r1, [r0]
+ ldrb r3, [r6, 0x1]
+ movs r0, 0x3
+ orrs r3, r0
+ strb r3, [r6, 0x1]
+ lsrs r1, r3, 6
+ ldrb r2, [r6, 0x3]
+ lsrs r2, 6
+ lsls r3, 30
+ lsrs r3, 30
+ adds r0, r6, 0
+ bl CalcCenterToCornerVec
+ movs r0, 0
+ mov r1, r9
+ strb r0, [r1]
+_08148016:
+ mov r0, r8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08148024: .4byte gUnknown_02024E8C
+_08148028: .4byte gUnknown_03005F24
+_0814802C: .4byte gUnknown_03005F2C
+_08148030: .4byte gUnknown_03005F30
+_08148034: .4byte gSprites
+_08148038: .4byte SpriteCallbackDummy
+_0814803C: .4byte gUnknown_03005F28
+_08148040: .4byte gSpriteAffineAnimTable_84120EC
+ thumb_func_end sub_8147F84
+
+ thumb_func_start sub_8148044
+sub_8148044: @ 8148044
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0814806C
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r2, r1, r3
+ movs r0, 0x30
+ strh r0, [r2, 0x20]
+ movs r0, 0x50
+ strh r0, [r2, 0x22]
+ ldr r0, _08148070
+ strh r0, [r2, 0x2E]
+ movs r0, 0x1
+ strh r0, [r2, 0x30]
+ adds r3, 0x1C
+ adds r1, r3
+ ldr r0, _08148074
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_0814806C: .4byte gSprites
+_08148070: .4byte 0x0000fff8
+_08148074: .4byte sub_8148078
+ thumb_func_end sub_8148044
+
+ thumb_func_start sub_8148078
+sub_8148078: @ 8148078
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r0, [r4, 0x20]
+ adds r0, 0x4
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x2E]
+ ldrh r2, [r4, 0x22]
+ adds r1, r0, r2
+ strh r1, [r4, 0x22]
+ ldrh r1, [r4, 0x30]
+ adds r0, r1
+ strh r0, [r4, 0x2E]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0814809E
+ ldrh r0, [r4, 0x32]
+ movs r1, 0
+ bl PlayCry1
+_0814809E:
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x9
+ bne _081480AA
+ ldr r0, _081480B0
+ str r0, [r4, 0x1C]
+_081480AA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081480B0: .4byte SpriteCallbackDummy
+ thumb_func_end sub_8148078
+
+ thumb_func_start sub_81480B4
+sub_81480B4: @ 81480B4
+ push {r4,r5,lr}
+ movs r0, 0xBC
+ movs r1, 0x64
+ movs r2, 0x2
+ bl sub_810BA50
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _081480FC
+ lsls r3, r4, 4
+ adds r3, r4
+ lsls r3, 2
+ adds r0, r3, r5
+ ldrb r2, [r0, 0x1]
+ movs r1, 0x4
+ negs r1, r1
+ ands r1, r2
+ movs r2, 0x1
+ orrs r1, r2
+ strb r1, [r0, 0x1]
+ adds r1, r5, 0
+ adds r1, 0x10
+ adds r1, r3, r1
+ ldr r2, _08148100
+ str r2, [r1]
+ adds r5, 0x1C
+ adds r3, r5
+ ldr r1, _08148104
+ str r1, [r3]
+ bl InitSpriteAffineAnim
+ adds r0, r4, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081480FC: .4byte gSprites
+_08148100: .4byte gSpriteAffineAnimTable_84121A0
+_08148104: .4byte SpriteCallbackDummy
+ thumb_func_end sub_81480B4
+
+ thumb_func_start sub_8148108
+sub_8148108: @ 8148108
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _08148148
+ mov r8, r0
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r6, r0, 2
+ mov r0, r8
+ adds r4, r6, r0
+ ldrb r0, [r4, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldrb r0, [r4, 0x1]
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ cmp r5, 0
+ bne _08148150
+ mov r0, r8
+ adds r0, 0x10
+ adds r0, r6, r0
+ ldr r1, _0814814C
+ b _08148158
+ .align 2, 0
+_08148148: .4byte gSprites
+_0814814C: .4byte gSpriteAffineAnimTable_84121A4
+_08148150:
+ mov r0, r8
+ adds r0, 0x10
+ adds r0, r6, r0
+ ldr r1, _08148174
+_08148158:
+ str r1, [r0]
+ lsls r0, r7, 4
+ adds r0, r7
+ lsls r0, 2
+ ldr r1, _08148178
+ adds r0, r1
+ bl InitSpriteAffineAnim
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08148174: .4byte gSpriteAffineAnimTable_84121A8
+_08148178: .4byte gSprites
+ thumb_func_end sub_8148108
+
+ thumb_func_start sub_814817C
+sub_814817C: @ 814817C
+ push {lr}
+ ldr r0, _081481A4
+ movs r1, 0xAE
+ movs r2, 0x54
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _081481A8
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldr r2, _081481AC
+ strh r2, [r1, 0x2E]
+ movs r2, 0x1
+ strh r2, [r1, 0x30]
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081481A4: .4byte gSpriteTemplate_84121E4
+_081481A8: .4byte gSprites
+_081481AC: .4byte 0x0000fff4
+ thumb_func_end sub_814817C
+
+ thumb_func_start sub_81481B0
+sub_81481B0: @ 81481B0
+ push {lr}
+ adds r2, r0, 0
+ ldrh r0, [r2, 0x20]
+ subs r0, 0x4
+ strh r0, [r2, 0x20]
+ ldrh r0, [r2, 0x2E]
+ ldrh r3, [r2, 0x22]
+ adds r1, r0, r3
+ strh r1, [r2, 0x22]
+ ldrh r1, [r2, 0x30]
+ adds r0, r1
+ strh r0, [r2, 0x2E]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xA
+ bne _081481D6
+ adds r0, r2, 0
+ bl DestroySprite
+_081481D6:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81481B0
+
+ thumb_func_start sub_81481DC
+sub_81481DC: @ 81481DC
+ push {r4-r7,lr}
+ ldr r6, _0814824C
+ movs r0, 0x1
+ strh r0, [r6]
+ ldr r1, _08148250
+ ldr r0, _08148254
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrb r3, [r0]
+ movs r4, 0
+ ldr r2, _08148258
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 2
+ adds r7, r2, 0
+ adds r7, 0x8
+ adds r0, r1, r7
+ ldrh r0, [r0]
+ adds r0, 0x1
+ strh r0, [r6]
+ adds r5, r2, 0
+ adds r5, 0x12
+ adds r1, r5
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x1
+ beq _08148244
+ adds r2, r6, 0
+ adds r6, r5, 0
+ adds r5, r7, 0
+_0814821A:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r4, 0x7
+ bhi _08148244
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 2
+ adds r0, r1, r5
+ ldrh r0, [r0]
+ ldrh r7, [r2]
+ adds r0, r7
+ strh r0, [r2]
+ adds r1, r6
+ movs r7, 0
+ ldrsh r0, [r1, r7]
+ cmp r0, 0x1
+ bne _0814821A
+_08148244:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814824C: .4byte gUnknown_03005F34
+_08148250: .4byte gNatureToMonPokeblockAnim
+_08148254: .4byte gUnknown_03005F30
+_08148258: .4byte gMonPokeblockAnims
+ thumb_func_end sub_81481DC
+
+ thumb_func_start sub_814825C
+sub_814825C: @ 814825C
+ push {lr}
+ ldr r0, _08148274
+ ldrb r0, [r0]
+ cmp r0, 0x5A
+ bls _08148268
+ b _08148532
+_08148268:
+ lsls r0, 2
+ ldr r1, _08148278
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08148274: .4byte gUnknown_03005F3C
+_08148278: .4byte _0814827C
+ .align 2, 0
+_0814827C:
+ .4byte _081483E8
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _0814843C
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _0814847A
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _081484CC
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148524
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+ .4byte _08148532
+_081483E8:
+ ldr r2, _0814841C
+ ldr r1, _08148420
+ ldr r0, _08148424
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ strb r0, [r2]
+ ldr r2, _08148428
+ ldr r0, _0814842C
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _08148430
+ adds r1, r0
+ str r1, [r2]
+ ldr r0, _08148434
+ movs r2, 0x44
+ bl memcpy
+ ldr r1, _08148438
+ movs r0, 0xA
+ strb r0, [r1]
+ b _08148532
+ .align 2, 0
+_0814841C: .4byte gUnknown_03005F40
+_08148420: .4byte gNatureToMonPokeblockAnim
+_08148424: .4byte gUnknown_03005F30
+_08148428: .4byte gUnknown_03005F20
+_0814842C: .4byte gUnknown_03005F2C
+_08148430: .4byte gSprites
+_08148434: .4byte gUnknown_03005F50
+_08148438: .4byte gUnknown_03005F3C
+_0814843C:
+ bl sub_8148540
+ ldr r1, _081484A4
+ ldr r0, _081484A8
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r1, 0x1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08148474
+ ldr r3, _081484AC
+ ldr r2, [r3]
+ ldrb r0, [r2, 0x1]
+ movs r1, 0x3
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2, 0x3]
+ ldr r0, [r3]
+ ldr r1, _081484B0
+ str r1, [r0, 0x10]
+ bl InitSpriteAffineAnim
+_08148474:
+ ldr r1, _081484B4
+ movs r0, 0x32
+ strb r0, [r1]
+_0814847A:
+ ldr r1, _081484A4
+ ldr r0, _081484A8
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r1, 0x1
+ adds r2, r0, r1
+ ldrb r1, [r2]
+ cmp r1, 0
+ beq _081484EE
+ ldr r0, _081484B8
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _081484BC
+ ldr r0, _081484AC
+ ldr r0, [r0]
+ adds r1, 0xA
+ lsls r1, 24
+ lsrs r1, 24
+ bl StartSpriteAffineAnim
+ b _081484EE
+ .align 2, 0
+_081484A4: .4byte gNatureToMonPokeblockAnim
+_081484A8: .4byte gUnknown_03005F30
+_081484AC: .4byte gUnknown_03005F20
+_081484B0: .4byte gSpriteAffineAnimTable_8412050
+_081484B4: .4byte gUnknown_03005F3C
+_081484B8: .4byte gUnknown_03005F28
+_081484BC:
+ ldr r0, _081484C8
+ ldr r0, [r0]
+ ldrb r1, [r2]
+ bl StartSpriteAffineAnim
+ b _081484EE
+ .align 2, 0
+_081484C8: .4byte gUnknown_03005F20
+_081484CC:
+ bl sub_81485CC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08148532
+ ldr r0, _081484F8
+ movs r1, 0x12
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _08148504
+ ldr r1, _081484FC
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ bl sub_8148540
+_081484EE:
+ ldr r1, _08148500
+ movs r0, 0x3C
+ strb r0, [r1]
+ b _08148532
+ .align 2, 0
+_081484F8: .4byte gUnknown_03005FA0
+_081484FC: .4byte gUnknown_03005F40
+_08148500: .4byte gUnknown_03005F3C
+_08148504:
+ ldr r0, _0814851C
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x3]
+ lsls r0, 26
+ lsrs r0, 27
+ bl FreeOamMatrix
+ ldr r1, _08148520
+ movs r0, 0x46
+ strb r0, [r1]
+ b _08148532
+ .align 2, 0
+_0814851C: .4byte gUnknown_03005F20
+_08148520: .4byte gUnknown_03005F3C
+_08148524:
+ bl sub_8148618
+ ldr r0, _08148538
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _0814853C
+ strb r1, [r0]
+_08148532:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08148538: .4byte gUnknown_03005F40
+_0814853C: .4byte gUnknown_03005F3C
+ thumb_func_end sub_814825C
+
+ thumb_func_start sub_8148540
+sub_8148540: @ 8148540
+ push {r4-r7,lr}
+ movs r4, 0
+ ldr r5, _081485B4
+ mov r12, r5
+ ldr r7, _081485B8
+ ldr r6, _081485BC
+_0814854C:
+ lsls r2, r4, 1
+ mov r0, r12
+ adds r3, r2, r0
+ ldrb r1, [r6]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0
+ adds r2, r7
+ ldrh r0, [r2]
+ strh r0, [r3]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x9
+ bls _0814854C
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _081485C4
+ movs r2, 0
+ ldrsh r0, [r5, r2]
+ movs r2, 0x4
+ ldrsh r1, [r5, r2]
+ bl Sin
+ strh r0, [r5, 0x14]
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r2, 0x6
+ ldrsh r1, [r5, r2]
+ bl Cos
+ strh r0, [r5, 0x16]
+ ldrh r0, [r5, 0x8]
+ strh r0, [r5, 0x18]
+ ldr r0, _081485C0
+ ldr r1, [r0]
+ ldrh r0, [r1, 0x24]
+ strh r0, [r5, 0x1A]
+ ldrh r0, [r1, 0x26]
+ strh r0, [r5, 0x1C]
+ bl sub_8148710
+ ldrh r0, [r5, 0x18]
+ strh r0, [r5, 0x8]
+ bl sub_814862C
+ ldrh r0, [r5, 0x18]
+ strh r0, [r5, 0x8]
+ movs r0, 0
+ b _081485C6
+ .align 2, 0
+_081485B4: .4byte gUnknown_03005FA0
+_081485B8: .4byte gMonPokeblockAnims
+_081485BC: .4byte gUnknown_03005F40
+_081485C0: .4byte gUnknown_03005F20
+_081485C4:
+ movs r0, 0x1
+_081485C6:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8148540
+
+ thumb_func_start sub_81485CC
+sub_81485CC: @ 81485CC
+ push {r4,lr}
+ ldr r3, _08148604
+ ldrh r0, [r3, 0x18]
+ ldrh r1, [r3, 0x8]
+ subs r0, r1
+ lsls r0, 16
+ ldr r1, _08148608
+ ldr r4, [r1]
+ lsrs r0, 15
+ ldr r1, _0814860C
+ adds r2, r0, r1
+ ldrh r2, [r2]
+ strh r2, [r4, 0x24]
+ movs r2, 0x80
+ lsls r2, 3
+ adds r1, r2
+ adds r0, r1
+ ldrh r0, [r0]
+ strh r0, [r4, 0x26]
+ ldrh r0, [r3, 0x8]
+ subs r0, 0x1
+ strh r0, [r3, 0x8]
+ lsls r0, 16
+ cmp r0, 0
+ beq _08148610
+ movs r0, 0
+ b _08148612
+ .align 2, 0
+_08148604: .4byte gUnknown_03005FA0
+_08148608: .4byte gUnknown_03005F20
+_0814860C: .4byte 0x0201d000
+_08148610:
+ movs r0, 0x1
+_08148612:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81485CC
+
+ thumb_func_start sub_8148618
+sub_8148618: @ 8148618
+ push {lr}
+ ldr r0, _08148628
+ ldr r0, [r0]
+ bl FreeSpriteOamMatrix
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08148628: .4byte gUnknown_03005F20
+ thumb_func_end sub_8148618
+
+ thumb_func_start sub_814862C
+sub_814862C: @ 814862C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ ldr r1, _08148700
+ ldrh r0, [r1, 0x10]
+ mov r8, r0
+ ldrh r0, [r1, 0x18]
+ mov r2, r8
+ subs r0, r2
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldrh r0, [r1, 0xC]
+ ldrh r3, [r1, 0x1A]
+ adds r0, r3
+ lsls r0, 16
+ lsrs r0, 16
+ str r0, [sp]
+ ldrh r0, [r1, 0xE]
+ ldrh r1, [r1, 0x1C]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ movs r6, 0
+ subs r0, r7, 0x1
+ ldr r4, _08148704
+ mov r10, r4
+ cmp r6, r0
+ bge _081486D4
+ ldr r1, [sp]
+ lsls r0, r1, 16
+ asrs r0, 16
+ str r0, [sp, 0x4]
+_08148674:
+ mov r2, r8
+ adds r5, r2, r6
+ lsls r5, 1
+ ldr r4, _08148708
+ adds r3, r5, r4
+ ldrh r2, [r3]
+ ldr r0, [sp, 0x4]
+ subs r1, r2, r0
+ ldr r4, _0814870C
+ adds r5, r4
+ ldrh r0, [r5]
+ mov r12, r0
+ mov r4, r9
+ lsls r0, r4, 16
+ asrs r0, 16
+ mov r4, r12
+ subs r0, r4, r0
+ lsls r4, r0, 16
+ lsrs r4, 16
+ lsls r1, 16
+ asrs r1, 16
+ adds r6, 0x1
+ adds r0, r1, 0
+ muls r0, r6
+ adds r1, r7, 0
+ str r2, [sp, 0x8]
+ str r3, [sp, 0xC]
+ bl __divsi3
+ ldr r2, [sp, 0x8]
+ subs r2, r0
+ ldr r3, [sp, 0xC]
+ strh r2, [r3]
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r4, 0
+ muls r0, r6
+ adds r1, r7, 0
+ bl __divsi3
+ ldrh r1, [r5]
+ subs r1, r0
+ strh r1, [r5]
+ lsls r6, 16
+ lsrs r6, 16
+ subs r0, r7, 0x1
+ cmp r6, r0
+ blt _08148674
+_081486D4:
+ mov r1, r8
+ adds r0, r1, r7
+ lsls r0, 1
+ mov r2, r10
+ adds r1, r0, r2
+ mov r3, sp
+ ldrh r3, [r3]
+ strh r3, [r1]
+ movs r1, 0x80
+ lsls r1, 3
+ add r1, r10
+ adds r0, r1
+ mov r4, r9
+ strh r4, [r0]
+ 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
+_08148700: .4byte gUnknown_03005FA0
+_08148704: .4byte 0x0201cffe
+_08148708: .4byte 0x0201d000
+_0814870C: .4byte 0x0201d400
+ thumb_func_end sub_814862C
+
+ thumb_func_start sub_8148710
+sub_8148710: @ 8148710
+ 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 r1, _081487A4
+ ldrh r2, [r1, 0x1A]
+ ldrh r0, [r1, 0x14]
+ subs r2, r0
+ ldrh r3, [r1, 0x1C]
+ ldrh r0, [r1, 0x16]
+ subs r3, r0
+ adds r6, r1, 0
+ ldr r1, _081487A8
+ mov r9, r1
+ lsls r2, 16
+ asrs r2, 16
+ mov r8, r2
+ movs r2, 0x80
+ lsls r2, 3
+ add r2, r9
+ mov r10, r2
+ lsls r3, 16
+ asrs r7, r3, 16
+_08148746:
+ movs r1, 0xA
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bge _08148750
+ negs r0, r0
+_08148750:
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r2, [r6, 0x6]
+ adds r0, r2
+ lsls r5, r0, 16
+ strh r0, [r6, 0x6]
+ ldrh r2, [r6, 0x4]
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ cmp r0, 0
+ bge _0814876A
+ movs r0, 0x1
+ str r0, [sp]
+_0814876A:
+ ldrh r0, [r6, 0x18]
+ ldrh r1, [r6, 0x8]
+ subs r0, r1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r1, 0
+ beq _081487F0
+ ldr r1, [sp]
+ cmp r1, 0
+ bne _081487AC
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ lsrs r5, 24
+ adds r1, r2, r5
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ lsls r4, 1
+ mov r2, r9
+ adds r1, r4, r2
+ add r0, r8
+ strh r0, [r1]
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ ldrh r1, [r6, 0x6]
+ adds r1, r5
+ b _081487CE
+ .align 2, 0
+_081487A4: .4byte gUnknown_03005FA0
+_081487A8: .4byte 0x0201d000
+_081487AC:
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ lsrs r5, 24
+ subs r1, r2, r5
+ lsls r1, 16
+ asrs r1, 16
+ bl Sin
+ lsls r4, 1
+ mov r2, r9
+ adds r1, r4, r2
+ add r0, r8
+ strh r0, [r1]
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ ldrh r1, [r6, 0x6]
+ subs r1, r5
+_081487CE:
+ lsls r1, 16
+ asrs r1, 16
+ bl Cos
+ add r4, r10
+ adds r0, r7, r0
+ strh r0, [r4]
+ ldrh r0, [r6, 0x2]
+ ldrh r2, [r6]
+ adds r0, r2
+ movs r1, 0xFF
+ ands r0, r1
+ strh r0, [r6]
+ ldrh r0, [r6, 0x8]
+ subs r0, 0x1
+ strh r0, [r6, 0x8]
+ b _08148746
+_081487F0:
+ 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_8148710
+
+ thumb_func_start c2_clear_save_data_screen_2
+c2_clear_save_data_screen_2: @ 8148800
+ push {lr}
+ bl sub_8148970
+ lsls r0, 24
+ cmp r0, 0
+ beq _08148814
+ ldr r0, _08148818
+ movs r1, 0
+ bl CreateTask
+_08148814:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08148818: .4byte sub_8148830
+ thumb_func_end c2_clear_save_data_screen_2
+
+ thumb_func_start sub_814881C
+sub_814881C: @ 814881C
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_814881C
+
+ thumb_func_start sub_8148830
+sub_8148830: @ 8148830
+ push {r4,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl ResetSpriteData
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xCA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _081488A8
+ bl SetVBlankCallback
+ movs r0, 0x2
+ movs r1, 0xE
+ movs r2, 0x1B
+ movs r3, 0x13
+ bl MenuDrawTextWindow
+ ldr r0, _081488AC
+ movs r1, 0x3
+ movs r2, 0xF
+ bl MenuPrint
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0x8
+ movs r3, 0x6
+ bl MenuDrawTextWindow
+ ldr r3, _081488B0
+ movs r0, 0x3
+ movs r1, 0x2
+ movs r2, 0x2
+ bl PrintMenuItems
+ movs r0, 0x1
+ str r0, [sp]
+ movs r0, 0x5
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x3
+ movs r2, 0x2
+ movs r3, 0x2
+ bl InitMenu
+ ldr r1, _081488B4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _081488B8
+ str r1, [r0]
+ add sp, 0x8
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081488A8: .4byte sub_814881C
+_081488AC: .4byte gSystemText_ClearAllSaveDataPrompt
+_081488B0: .4byte gUnknown_08376D74
+_081488B4: .4byte gTasks
+_081488B8: .4byte sub_81488BC
+ thumb_func_end sub_8148830
+
+ thumb_func_start sub_81488BC
+sub_81488BC: @ 81488BC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl ProcessMenuInputNoWrap_
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _081488E2
+ cmp r1, 0
+ bgt _081488DC
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0814890C
+ b _0814891E
+_081488DC:
+ cmp r1, 0x1
+ beq _0814890C
+ b _0814891E
+_081488E2:
+ movs r0, 0x5
+ bl PlaySE
+ ldr r0, _08148900
+ bl sub_8071F40
+ ldr r1, _08148904
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08148908
+ str r1, [r0]
+ b _0814891E
+ .align 2, 0
+_08148900: .4byte gSystemText_ClearingData
+_08148904: .4byte gTasks
+_08148908: .4byte sub_8148930
+_0814890C:
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r4, 0
+ bl DestroyTask
+ ldr r0, _0814892C
+ bl SetMainCallback2
+_0814891E:
+ bl AnimateSprites
+ bl BuildOamBuffer
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814892C: .4byte sub_8148B34
+ thumb_func_end sub_81488BC
+
+ thumb_func_start sub_8148930
+sub_8148930: @ 8148930
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl calls_flash_erase_block
+ adds r0, r4, 0
+ bl DestroyTask
+ ldr r0, _08148950
+ bl SetMainCallback2
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08148950: .4byte sub_8148B34
+ thumb_func_end sub_8148930
+
+ thumb_func_start sub_8148954
+sub_8148954: @ 8148954
+ push {lr}
+ bl RunTasks
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8148954
+
+ thumb_func_start sub_8148964
+sub_8148964: @ 8148964
+ push {lr}
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8148964
+
+ thumb_func_start sub_8148970
+sub_8148970: @ 8148970
+ push {r4,lr}
+ sub sp, 0xC
+ ldr r0, _08148AA4
+ ldr r1, _08148AA8
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08148986
+ cmp r0, 0x1
+ bne _08148986
+ b _08148B04
+_08148986:
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r0, 0x80
+ lsls r0, 19
+ movs r4, 0
+ strh r4, [r0]
+ adds r0, 0x10
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, 0xA
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, 0x22
+ strh r4, [r0]
+ adds r0, 0x4
+ strh r4, [r0]
+ adds r0, 0x4
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, 0x6
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ adds r0, 0x2
+ strh r4, [r0]
+ add r0, sp, 0x4
+ strh r4, [r0]
+ ldr r1, _08148AAC
+ str r0, [r1]
+ movs r0, 0xC0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _08148AB0
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r2, 0
+ str r2, [sp, 0x8]
+ add r0, sp, 0x8
+ str r0, [r1]
+ movs r0, 0xE0
+ lsls r0, 19
+ str r0, [r1, 0x4]
+ ldr r0, _08148AB4
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ add r0, sp, 0x4
+ strh r2, [r0]
+ str r0, [r1]
+ ldr r0, _08148AB8
+ str r0, [r1, 0x4]
+ ldr r0, _08148ABC
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ bl ResetPaletteFade
+ ldr r2, _08148AC0
+ ldr r0, _08148AC4
+ strh r0, [r2]
+ ldr r1, _08148AC8
+ strh r0, [r1]
+ ldr r0, _08148ACC
+ strh r0, [r2, 0x2]
+ strh r0, [r1, 0x2]
+ movs r1, 0
+ ldr r3, _08148AD0
+ ldr r0, _08148AD4
+ adds r2, r0, 0
+_08148A14:
+ 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 _08148A14
+ movs r1, 0
+ ldr r4, _08148AD8
+ movs r3, 0x1
+ ldr r2, _08148ADC
+_08148A2C:
+ lsls r0, r1, 1
+ adds r0, r4
+ strh r3, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, r2
+ bls _08148A2C
+ bl ResetTasks
+ bl ResetSpriteData
+ ldr r0, _08148AE0
+ bl SetUpWindowConfig
+ ldr r0, _08148AE4
+ bl InitMenuWindow
+ movs r0, 0x1
+ negs r0, r0
+ ldr r1, _08148AE8
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r2, _08148AEC
+ ldrh r1, [r2]
+ movs r0, 0
+ strh r0, [r2]
+ ldr r3, _08148AF0
+ ldrh r0, [r3]
+ movs r4, 0x1
+ orrs r0, r4
+ strh r0, [r3]
+ strh r1, [r2]
+ ldr r2, _08148AF4
+ ldrh r0, [r2]
+ movs r1, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+ ldr r0, _08148AF8
+ bl SetVBlankCallback
+ ldr r1, _08148AFC
+ ldr r2, _08148B00
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xE
+ movs r2, 0x90
+ lsls r2, 4
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _08148AA4
+ ldr r1, _08148AA8
+ adds r0, r1
+ strb r4, [r0]
+ b _08148B28
+ .align 2, 0
+_08148AA4: .4byte gMain
+_08148AA8: .4byte 0x0000043c
+_08148AAC: .4byte 0x040000d4
+_08148AB0: .4byte 0x8100c000
+_08148AB4: .4byte 0x85000100
+_08148AB8: .4byte 0x05000002
+_08148ABC: .4byte 0x810001ff
+_08148AC0: .4byte gPlttBufferUnfaded
+_08148AC4: .4byte 0x00007fff
+_08148AC8: .4byte gPlttBufferFaded
+_08148ACC: .4byte 0x00003945
+_08148AD0: .4byte 0x06000020
+_08148AD4: .4byte 0x00001111
+_08148AD8: .4byte 0x06003800
+_08148ADC: .4byte 0x000004ff
+_08148AE0: .4byte gWindowConfig_81E6C3C
+_08148AE4: .4byte gWindowConfig_81E6CE4
+_08148AE8: .4byte 0x0000ffff
+_08148AEC: .4byte 0x04000208
+_08148AF0: .4byte 0x04000200
+_08148AF4: .4byte REG_DISPSTAT
+_08148AF8: .4byte sub_8148964
+_08148AFC: .4byte REG_BG3CNT
+_08148B00: .4byte 0x00000703
+_08148B04:
+ bl UpdatePaletteFade
+ ldr r0, _08148B20
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08148B28
+ ldr r0, _08148B24
+ bl SetMainCallback2
+ movs r0, 0x1
+ b _08148B2A
+ .align 2, 0
+_08148B20: .4byte gPaletteFade
+_08148B24: .4byte sub_8148954
+_08148B28:
+ movs r0, 0
+_08148B2A:
+ add sp, 0xC
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8148970
+
+ thumb_func_start sub_8148B34
+sub_8148B34: @ 8148B34
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r0, _08148B60
+ ldr r1, _08148B64
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08148B48
+ cmp r0, 0x1
+ beq _08148B6C
+_08148B48:
+ movs r0, 0x1
+ negs r0, r0
+ ldr r1, _08148B68
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r0, 0x1
+ strb r0, [r4]
+ b _08148B80
+ .align 2, 0
+_08148B60: .4byte gMain
+_08148B64: .4byte 0x0000043c
+_08148B68: .4byte 0x0000ffff
+_08148B6C:
+ bl UpdatePaletteFade
+ ldr r0, _08148B88
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08148B80
+ bl DoSoftReset
+_08148B80:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08148B88: .4byte gPaletteFade
+ thumb_func_end sub_8148B34
+
+ thumb_func_start load_intro_part2_graphics
+load_intro_part2_graphics: @ 8148B8C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08148BE8
+ ldr r1, _08148BEC
+ bl LZ77UnCompVram
+ ldr r0, _08148BF0
+ ldr r1, _08148BF4
+ bl LZ77UnCompVram
+ ldr r0, _08148BF8
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ cmp r4, 0
+ beq _08148BB4
+ cmp r4, 0x1
+ beq _08148C14
+_08148BB4:
+ ldr r0, _08148BFC
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148C00
+ ldr r1, _08148C04
+ bl LZ77UnCompVram
+ ldr r0, _08148C08
+ movs r1, 0
+ movs r2, 0x60
+ bl LoadPalette
+ ldr r0, _08148C0C
+ bl LoadCompressedObjectPic
+ ldr r0, _08148C10
+ movs r1, 0x80
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8149248
+ b _08148C46
+ .align 2, 0
+_08148BE8: .4byte gUnknown_0841225C
+_08148BEC: .4byte 0x06004000
+_08148BF0: .4byte gUnknown_084126DC
+_08148BF4: .4byte 0x06007800
+_08148BF8: .4byte gUnknown_084121FC
+_08148BFC: .4byte gUnknown_084128D8
+_08148C00: .4byte gUnknown_08412EB4
+_08148C04: .4byte 0x06003000
+_08148C08: .4byte gUnknown_08412818
+_08148C0C: .4byte gUnknown_08416B54
+_08148C10: .4byte gUnknown_08413184
+_08148C14:
+ ldr r0, _08148C58
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148C5C
+ ldr r1, _08148C60
+ bl LZ77UnCompVram
+ ldr r0, _08148C64
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148C68
+ bl LoadCompressedObjectPic
+ ldr r0, _08148C6C
+ movs r1, 0x80
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8149264
+_08148C46:
+ ldr r1, _08148C70
+ movs r0, 0
+ strh r0, [r1]
+ ldr r1, _08148C74
+ movs r0, 0x8
+ strb r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08148C58: .4byte gUnknown_08413340
+_08148C5C: .4byte gUnknown_084139C8
+_08148C60: .4byte 0x06003000
+_08148C64: .4byte gUnknown_08413300
+_08148C68: .4byte gUnknown_08416BDC
+_08148C6C: .4byte gUnknown_08413CCC
+_08148C70: .4byte gUnknown_0203935C
+_08148C74: .4byte gReservedSpritePaletteCount
+ thumb_func_end load_intro_part2_graphics
+
+ thumb_func_start sub_8148C78
+sub_8148C78: @ 8148C78
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08148CA4
+ ldr r2, _08148CA8
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ adds r2, 0xFF
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _08148CAC
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xA
+ movs r2, 0xF2
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08148CA4: .4byte REG_BG3CNT
+_08148CA8: .4byte 0x00000603
+_08148CAC: .4byte 0x00000f05
+ thumb_func_end sub_8148C78
+
+ thumb_func_start sub_8148CB0
+sub_8148CB0: @ 8148CB0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08148CD4
+ ldr r1, _08148CD8
+ bl LZ77UnCompVram
+ ldr r0, _08148CDC
+ ldr r1, _08148CE0
+ bl LZ77UnCompVram
+ cmp r4, 0x4
+ bhi _08148CFC
+ lsls r0, r4, 2
+ ldr r1, _08148CE4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08148CD4: .4byte gUnknown_0841225C
+_08148CD8: .4byte 0x06004000
+_08148CDC: .4byte gUnknown_084126DC
+_08148CE0: .4byte 0x06007800
+_08148CE4: .4byte _08148CE8
+ .align 2, 0
+_08148CE8:
+ .4byte _08148CFC
+ .4byte _08148D58
+ .4byte _08148DC4
+ .4byte _08148DC4
+ .4byte _08148E1C
+_08148CFC:
+ ldr r0, _08148D34
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148D38
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148D3C
+ ldr r1, _08148D40
+ bl LZ77UnCompVram
+ ldr r0, _08148D44
+ movs r1, 0
+ movs r2, 0x60
+ bl LoadPalette
+ ldr r0, _08148D48
+ bl LoadCompressedObjectPic
+ ldr r0, _08148D4C
+ ldr r1, _08148D50
+ bl LZ77UnCompVram
+ ldr r0, _08148D54
+ b _08148D8E
+ .align 2, 0
+_08148D34: .4byte gUnknown_084121FC
+_08148D38: .4byte gUnknown_084128D8
+_08148D3C: .4byte gUnknown_08412EB4
+_08148D40: .4byte 0x06003000
+_08148D44: .4byte gUnknown_08412818
+_08148D48: .4byte gUnknown_08416B54
+_08148D4C: .4byte gUnknown_084131C4
+_08148D50: .4byte 0x06010000
+_08148D54: .4byte gUnknown_08413184
+_08148D58:
+ ldr r0, _08148DA0
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148DA4
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148DA8
+ ldr r1, _08148DAC
+ bl LZ77UnCompVram
+ ldr r0, _08148DB0
+ movs r1, 0
+ movs r2, 0x60
+ bl LoadPalette
+ ldr r0, _08148DB4
+ bl LoadCompressedObjectPic
+ ldr r0, _08148DB8
+ ldr r1, _08148DBC
+ bl LZ77UnCompVram
+ ldr r0, _08148DC0
+_08148D8E:
+ movs r1, 0x80
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8149248
+ b _08148E58
+ .align 2, 0
+_08148DA0: .4byte gUnknown_0841221C
+_08148DA4: .4byte gUnknown_084128D8
+_08148DA8: .4byte gUnknown_08412EB4
+_08148DAC: .4byte 0x06003000
+_08148DB0: .4byte gUnknown_08412878
+_08148DB4: .4byte gUnknown_08416B54
+_08148DB8: .4byte gUnknown_084131C4
+_08148DBC: .4byte 0x06010000
+_08148DC0: .4byte gUnknown_084131A4
+_08148DC4:
+ ldr r0, _08148E04
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148E08
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148E0C
+ ldr r1, _08148E10
+ bl LZ77UnCompVram
+ ldr r4, _08148E14
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148E18
+ bl LoadCompressedObjectPic
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r4, 0
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8149264
+ b _08148E58
+ .align 2, 0
+_08148E04: .4byte gUnknown_0841221C
+_08148E08: .4byte gUnknown_08413340
+_08148E0C: .4byte gUnknown_084139C8
+_08148E10: .4byte 0x06003000
+_08148E14: .4byte gUnknown_08413320
+_08148E18: .4byte gUnknown_08416BDC
+_08148E1C:
+ ldr r0, _08148E6C
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+ ldr r0, _08148E70
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZ77UnCompVram
+ ldr r0, _08148E74
+ ldr r1, _08148E78
+ bl LZ77UnCompVram
+ ldr r0, _08148E7C
+ movs r1, 0
+ movs r2, 0x40
+ bl LoadPalette
+ ldr r0, _08148E80
+ bl LoadCompressedObjectPic
+ ldr r0, _08148E84
+ movs r1, 0x80
+ lsls r1, 1
+ movs r2, 0x20
+ bl LoadPalette
+ bl sub_8149280
+_08148E58:
+ ldr r1, _08148E88
+ movs r0, 0x8
+ strb r0, [r1]
+ ldr r1, _08148E8C
+ movs r0, 0
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08148E6C: .4byte gUnknown_0841223C
+_08148E70: .4byte gUnknown_08413E78
+_08148E74: .4byte gUnknown_08414084
+_08148E78: .4byte 0x06003000
+_08148E7C: .4byte gUnknown_08413E38
+_08148E80: .4byte gUnknown_08416C70
+_08148E84: .4byte gUnknown_08414064
+_08148E88: .4byte gReservedSpritePaletteCount
+_08148E8C: .4byte gUnknown_0203935C
+ thumb_func_end sub_8148CB0
+
+ thumb_func_start sub_8148E90
+sub_8148E90: @ 8148E90
+ ldr r1, _08148EB4
+ ldr r2, _08148EB8
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ adds r2, 0xFF
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0x2
+ ldr r2, _08148EBC
+ adds r0, r2, 0
+ strh r0, [r1]
+ subs r1, 0xA
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_08148EB4: .4byte REG_BG3CNT
+_08148EB8: .4byte 0x00000603
+_08148EBC: .4byte 0x00000f05
+ thumb_func_end sub_8148E90
+
+ thumb_func_start sub_8148EC0
+sub_8148EC0: @ 8148EC0
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 16
+ lsrs r6, 16
+ mov r0, r8
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ lsls r3, 16
+ lsrs r3, 16
+ ldr r1, _08148F34
+ mov r9, r1
+ mov r0, r9
+ movs r1, 0
+ str r3, [sp]
+ bl CreateTask
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _08148F38
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r2, 0
+ strh r5, [r0, 0x8]
+ strh r6, [r0, 0xA]
+ strh r2, [r0, 0xC]
+ strh r2, [r0, 0xE]
+ mov r1, r8
+ strh r1, [r0, 0x10]
+ strh r2, [r0, 0x12]
+ strh r2, [r0, 0x14]
+ ldr r3, [sp]
+ strh r3, [r0, 0x16]
+ movs r1, 0x8
+ strh r1, [r0, 0x18]
+ strh r2, [r0, 0x1A]
+ adds r0, r4, 0
+ bl _call_via_r9
+ adds r0, r4, 0
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08148F34: .4byte sub_8148F3C
+_08148F38: .4byte gTasks
+ thumb_func_end sub_8148EC0
+
+ thumb_func_start sub_8148F3C
+sub_8148F3C: @ 8148F3C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08148FB4
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r1
+ ldrh r0, [r3, 0xA]
+ lsls r4, r0, 16
+ adds r6, r1, 0
+ cmp r4, 0
+ beq _08148F7C
+ movs r1, 0xC
+ ldrsh r0, [r3, r1]
+ lsls r0, 16
+ ldrh r1, [r3, 0xE]
+ adds r2, r0, r1
+ lsrs r0, r4, 12
+ subs r2, r0
+ asrs r1, r2, 16
+ strh r1, [r3, 0xC]
+ strh r2, [r3, 0xE]
+ ldr r0, _08148FB8
+ strh r1, [r0]
+ ldr r2, _08148FBC
+ ldr r1, _08148FC0
+ ldr r0, _08148FC4
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ adds r0, r1
+ strh r0, [r2]
+_08148F7C:
+ ldrh r0, [r3, 0x10]
+ lsls r4, r0, 16
+ cmp r4, 0
+ beq _08148FD8
+ movs r1, 0x12
+ ldrsh r0, [r3, r1]
+ lsls r0, 16
+ ldrh r1, [r3, 0x14]
+ adds r2, r0, r1
+ lsrs r0, r4, 12
+ subs r2, r0
+ asrs r1, r2, 16
+ strh r1, [r3, 0x12]
+ strh r2, [r3, 0x14]
+ ldr r0, _08148FC8
+ strh r1, [r0]
+ movs r1, 0x8
+ ldrsh r0, [r3, r1]
+ cmp r0, 0
+ beq _08148FD0
+ ldr r2, _08148FCC
+ ldr r1, _08148FC0
+ ldr r0, _08148FC4
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ adds r0, r1
+ strh r0, [r2]
+ b _08148FD8
+ .align 2, 0
+_08148FB4: .4byte gTasks
+_08148FB8: .4byte REG_BG1HOFS
+_08148FBC: .4byte REG_BG1VOFS
+_08148FC0: .4byte gUnknown_02039358
+_08148FC4: .4byte gUnknown_0203935A
+_08148FC8: .4byte REG_BG2HOFS
+_08148FCC: .4byte REG_BG2VOFS
+_08148FD0:
+ ldr r0, _08149010
+ ldr r1, _08149014
+ ldrh r1, [r1]
+ strh r1, [r0]
+_08148FD8:
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r3, r0, r6
+ ldrh r0, [r3, 0x16]
+ lsls r4, r0, 16
+ cmp r4, 0
+ beq _08149008
+ movs r1, 0x18
+ ldrsh r0, [r3, r1]
+ lsls r0, 16
+ ldrh r1, [r3, 0x1A]
+ adds r2, r0, r1
+ lsrs r0, r4, 12
+ subs r2, r0
+ asrs r1, r2, 16
+ strh r1, [r3, 0x18]
+ strh r2, [r3, 0x1A]
+ ldr r0, _08149018
+ strh r1, [r0]
+ ldr r1, _0814901C
+ ldr r0, _08149014
+ ldrh r0, [r0]
+ strh r0, [r1]
+_08149008:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149010: .4byte REG_BG2VOFS
+_08149014: .4byte gUnknown_02039358
+_08149018: .4byte REG_BG3HOFS
+_0814901C: .4byte REG_BG3VOFS
+ thumb_func_end sub_8148F3C
+
+ thumb_func_start sub_8149020
+sub_8149020: @ 8149020
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08149100
+ cmp r0, 0x1
+ ble _08149034
+ cmp r0, 0x2
+ beq _08149098
+_08149034:
+ ldr r0, _08149060
+ ldr r2, [r0, 0x20]
+ movs r0, 0x3
+ ands r0, r2
+ cmp r0, 0
+ bne _08149100
+ ldr r0, _08149064
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08149100
+ movs r0, 0x4
+ ands r2, r0
+ cmp r2, 0
+ beq _0814906C
+ ldr r2, _08149068
+ ldrh r1, [r2, 0x12]
+ mov r0, sp
+ strh r1, [r0]
+ ldrh r1, [r2, 0x14]
+ b _08149076
+ .align 2, 0
+_08149060: .4byte gMain
+_08149064: .4byte gPaletteFade
+_08149068: .4byte gPlttBufferUnfaded
+_0814906C:
+ ldr r2, _08149094
+ ldrh r1, [r2, 0x14]
+ mov r0, sp
+ strh r1, [r0]
+ ldrh r1, [r2, 0x12]
+_08149076:
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r4, r0, 0
+ mov r0, sp
+ movs r1, 0x9
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ movs r1, 0xA
+ movs r2, 0x2
+ bl LoadPalette
+ b _08149100
+ .align 2, 0
+_08149094: .4byte gPlttBufferUnfaded
+_08149098:
+ ldr r0, _081490C8
+ ldr r2, [r0, 0x20]
+ movs r0, 0x3
+ ands r0, r2
+ cmp r0, 0
+ bne _08149100
+ ldr r0, _081490CC
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08149100
+ movs r0, 0x4
+ ands r2, r0
+ cmp r2, 0
+ beq _081490D8
+ mov r1, sp
+ ldr r2, _081490D0
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _081490D4
+ b _081490E6
+ .align 2, 0
+_081490C8: .4byte gMain
+_081490CC: .4byte gPaletteFade
+_081490D0: .4byte 0x00003d27
+_081490D4: .4byte 0x00000295
+_081490D8:
+ mov r1, sp
+ movs r2, 0xC7
+ lsls r2, 2
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _08149108
+_081490E6:
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r4, r1, 0
+ mov r0, sp
+ movs r1, 0xC
+ movs r2, 0x2
+ bl LoadPalette
+ adds r0, r4, 0
+ movs r1, 0xD
+ movs r2, 0x2
+ bl LoadPalette
+_08149100:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149108: .4byte 0x00003d27
+ thumb_func_end sub_8149020
+
+ thumb_func_start sub_814910C
+sub_814910C: @ 814910C
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, _08149124
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08149128
+ adds r0, r2, 0
+ bl DestroySprite
+ b _0814916C
+ .align 2, 0
+_08149124: .4byte gUnknown_0203935C
+_08149128:
+ movs r1, 0x20
+ ldrsh r0, [r2, r1]
+ lsls r0, 16
+ ldrh r1, [r2, 0x32]
+ orrs r0, r1
+ ldrh r1, [r2, 0x30]
+ adds r0, r1
+ asrs r1, r0, 16
+ strh r1, [r2, 0x20]
+ strh r0, [r2, 0x32]
+ cmp r1, 0xFF
+ ble _08149144
+ ldr r0, _08149158
+ strh r0, [r2, 0x20]
+_08149144:
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _08149164
+ ldr r1, _0814915C
+ ldr r0, _08149160
+ ldrh r0, [r0]
+ ldrh r1, [r1]
+ adds r0, r1
+ b _08149168
+ .align 2, 0
+_08149158: .4byte 0x0000ffe0
+_0814915C: .4byte gUnknown_02039358
+_08149160: .4byte gUnknown_0203935A
+_08149164:
+ ldr r0, _08149170
+ ldrh r0, [r0]
+_08149168:
+ negs r0, r0
+ strh r0, [r2, 0x26]
+_0814916C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149170: .4byte gUnknown_02039358
+ thumb_func_end sub_814910C
+
+ thumb_func_start sub_8149174
+sub_8149174: @ 8149174
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ movs r7, 0
+ cmp r7, r8
+ bcs _0814922A
+ ldr r0, _0814923C
+ mov r10, r0
+ movs r2, 0x3F
+ mov r9, r2
+_0814919E:
+ lsls r6, r7, 3
+ ldr r0, [sp, 0x4]
+ adds r6, r0
+ ldrb r1, [r6, 0x1]
+ ldrb r2, [r6, 0x2]
+ ldrb r3, [r6, 0x3]
+ ldr r0, _08149240
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r5, r0, 4
+ adds r5, r0
+ lsls r5, 2
+ mov r2, r10
+ adds r4, r5, r2
+ ldrb r2, [r6]
+ lsls r1, r2, 26
+ lsrs r1, 30
+ lsrs r2, 6
+ adds r0, r4, 0
+ movs r3, 0
+ bl CalcCenterToCornerVec
+ ldrb r3, [r4, 0x5]
+ movs r0, 0xC
+ orrs r3, r0
+ strb r3, [r4, 0x5]
+ ldrb r1, [r6]
+ lsls r1, 26
+ lsrs r1, 30
+ lsls r1, 6
+ ldrb r2, [r4, 0x1]
+ mov r0, r9
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r1, [r6]
+ lsrs r1, 6
+ lsls r1, 6
+ ldrb r2, [r4, 0x3]
+ mov r0, r9
+ ands r0, r2
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ movs r0, 0xF
+ ands r3, r0
+ strb r3, [r4, 0x5]
+ ldr r0, _08149244
+ adds r5, r0
+ ldr r2, [sp, 0x8]
+ str r2, [r5]
+ ldrb r1, [r6]
+ lsls r1, 28
+ lsrs r1, 28
+ adds r0, r4, 0
+ bl StartSpriteAnim
+ movs r1, 0
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x2E]
+ ldrh r0, [r6, 0x4]
+ strh r0, [r4, 0x30]
+ strh r1, [r4, 0x32]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, r8
+ bcc _0814919E
+_0814922A:
+ 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
+_0814923C: .4byte gSprites
+_08149240: .4byte gSpriteTemplate_8416B3C
+_08149244: .4byte gSprites + 0x8
+ thumb_func_end sub_8149174
+
+ thumb_func_start sub_8149248
+sub_8149248: @ 8149248
+ push {lr}
+ ldr r1, _0814925C
+ ldr r2, _08149260
+ movs r0, 0
+ movs r3, 0x9
+ bl sub_8149174
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814925C: .4byte gUnknown_08416B94
+_08149260: .4byte gSpriteAnimTable_8416B84
+ thumb_func_end sub_8149248
+
+ thumb_func_start sub_8149264
+sub_8149264: @ 8149264
+ push {lr}
+ ldr r1, _08149278
+ ldr r2, _0814927C
+ movs r0, 0x1
+ movs r3, 0xC
+ bl sub_8149174
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149278: .4byte gUnknown_08416C10
+_0814927C: .4byte gSpriteAnimTable_8416C04
+ thumb_func_end sub_8149264
+
+ thumb_func_start sub_8149280
+sub_8149280: @ 8149280
+ push {lr}
+ ldr r1, _08149294
+ ldr r2, _08149298
+ movs r0, 0x1
+ movs r3, 0x6
+ bl sub_8149174
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149294: .4byte gUnknown_08416C8C
+_08149298: .4byte gSpriteAnimTable_8416C88
+ thumb_func_end sub_8149280
+
+ thumb_func_start nullsub_82
+nullsub_82: @ 814929C
+ bx lr
+ thumb_func_end nullsub_82
+
+ thumb_func_start sub_81492A0
+sub_81492A0: @ 81492A0
+ push {r4,lr}
+ ldr r4, _0814930C
+ movs r1, 0x2E
+ ldrsh r2, [r0, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r1, [r1]
+ movs r2, 0x3E
+ adds r2, r0
+ mov r12, r2
+ movs r2, 0x4
+ ands r2, r1
+ mov r1, r12
+ ldrb r3, [r1]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r2
+ mov r2, r12
+ strb r1, [r2]
+ movs r1, 0x2E
+ ldrsh r2, [r0, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x20]
+ strh r1, [r0, 0x20]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x22]
+ adds r1, 0x8
+ strh r1, [r0, 0x22]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x24]
+ strh r1, [r0, 0x24]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x26]
+ strh r1, [r0, 0x26]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814930C: .4byte gSprites
+ thumb_func_end sub_81492A0
+
+ thumb_func_start sub_8149310
+sub_8149310: @ 8149310
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldr r0, _0814935C
+ lsls r5, 16
+ asrs r5, 16
+ lsls r4, 16
+ asrs r4, 16
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0
+ bl CreateSprite
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _08149360
+ adds r4, 0x8
+ lsls r4, 16
+ asrs r4, 16
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08149364
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ strh r6, [r1, 0x2E]
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814935C: .4byte gSpriteTemplate_8416CDC
+_08149360: .4byte gSpriteTemplate_8416D2C
+_08149364: .4byte gSprites
+ thumb_func_end sub_8149310
+
+ thumb_func_start sub_8149368
+sub_8149368: @ 8149368
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldr r0, _081493B4
+ lsls r5, 16
+ asrs r5, 16
+ lsls r4, 16
+ asrs r4, 16
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0
+ bl CreateSprite
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _081493B8
+ adds r4, 0x8
+ lsls r4, 16
+ asrs r4, 16
+ adds r1, r5, 0
+ adds r2, r4, 0
+ movs r3, 0x1
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _081493BC
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ strh r6, [r1, 0x2E]
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_081493B4: .4byte gSpriteTemplate_8416CF4
+_081493B8: .4byte gSpriteTemplate_8416D44
+_081493BC: .4byte gSprites
+ thumb_func_end sub_8149368
+
+ thumb_func_start nullsub_83
+nullsub_83: @ 81493C0
+ bx lr
+ thumb_func_end nullsub_83
+
+ thumb_func_start sub_81493C4
+sub_81493C4: @ 81493C4
+ push {r4,lr}
+ ldr r4, _08149420
+ movs r1, 0x2E
+ ldrsh r2, [r0, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ adds r1, 0x3E
+ ldrb r1, [r1]
+ movs r2, 0x3E
+ adds r2, r0
+ mov r12, r2
+ movs r2, 0x4
+ ands r2, r1
+ mov r1, r12
+ ldrb r3, [r1]
+ movs r1, 0x5
+ negs r1, r1
+ ands r1, r3
+ orrs r1, r2
+ mov r2, r12
+ strb r1, [r2]
+ movs r1, 0x2E
+ ldrsh r2, [r0, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x22]
+ strh r1, [r0, 0x22]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x24]
+ strh r1, [r0, 0x24]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r4
+ ldrh r1, [r1, 0x26]
+ strh r1, [r0, 0x26]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149420: .4byte gSprites
+ thumb_func_end sub_81493C4
+
+ thumb_func_start sub_8149424
+sub_8149424: @ 8149424
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r2, r0, 0
+ adds r5, r1, 0
+ ldr r0, _08149490
+ mov r8, r0
+ lsls r2, 16
+ asrs r4, r2, 16
+ ldr r0, _08149494
+ adds r2, r0
+ asrs r2, 16
+ lsls r5, 16
+ asrs r5, 16
+ mov r0, r8
+ adds r1, r2, 0
+ adds r2, r5, 0
+ movs r3, 0x2
+ bl CreateSprite
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ adds r4, 0x20
+ lsls r4, 16
+ asrs r4, 16
+ mov r0, r8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _08149498
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r0, r4, r5
+ strh r6, [r0, 0x2E]
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _0814949C
+ str r0, [r4]
+ adds r0, r6, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08149490: .4byte gSpriteTemplate_8416D7C
+_08149494: .4byte 0xffe00000
+_08149498: .4byte gSprites
+_0814949C: .4byte sub_81493C4
+ thumb_func_end sub_8149424
+
+ thumb_func_start sapphire_sub_81494A0
+sapphire_sub_81494A0: @ 81494A0
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r2, r0, 0
+ adds r5, r1, 0
+ ldr r0, _0814950C
+ mov r8, r0
+ lsls r2, 16
+ asrs r4, r2, 16
+ ldr r0, _08149510
+ adds r2, r0
+ asrs r2, 16
+ lsls r5, 16
+ asrs r5, 16
+ mov r0, r8
+ adds r1, r2, 0
+ adds r2, r5, 0
+ movs r3, 0x2
+ bl CreateSprite
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ adds r4, 0x20
+ lsls r4, 16
+ asrs r4, 16
+ mov r0, r8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0x2
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r5, _08149514
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ adds r0, r4, r5
+ strh r6, [r0, 0x2E]
+ movs r1, 0x1
+ bl StartSpriteAnim
+ adds r5, 0x1C
+ adds r4, r5
+ ldr r0, _08149518
+ str r0, [r4]
+ adds r0, r6, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814950C: .4byte gSpriteTemplate_8416D94
+_08149510: .4byte 0xffe00000
+_08149514: .4byte gSprites
+_08149518: .4byte sub_81493C4
+ thumb_func_end sapphire_sub_81494A0
+
+ thumb_func_start nullsub_84
+nullsub_84: @ 814951C
+ bx lr
+ thumb_func_end nullsub_84
+
+ thumb_func_start sub_8149520
+sub_8149520: @ 8149520
+ push {r4,r5,lr}
+ sub sp, 0x4
+ movs r4, 0
+ ldr r5, _08149554
+_08149528:
+ adds r0, r4, 0
+ adds r0, 0x14
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r4, 1
+ adds r1, r5
+ ldrh r1, [r1]
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ adds r0, r4, 0x1
+ lsls r0, 16
+ lsrs r4, r0, 16
+ cmp r4, 0xB
+ bls _08149528
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149554: .4byte gUnknown_08416ED0
+ thumb_func_end sub_8149520
+
+ thumb_func_start sub_8149558
+sub_8149558: @ 8149558
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x8
+ ble _08149606
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ adds r1, r0, 0
+ muls r1, r0
+ adds r0, r1, 0
+ movs r1, 0x50
+ bl __divsi3
+ movs r1, 0x58
+ subs r1, r0
+ strh r1, [r4, 0x22]
+ ldrh r0, [r4, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _08149592
+ adds r0, 0x3
+_08149592:
+ asrs r0, 2
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x4
+ strh r0, [r4, 0x3A]
+ ldrh r1, [r4, 0x3C]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081495BC
+ ldrh r0, [r4, 0x38]
+ subs r0, 0x1
+ strh r0, [r4, 0x38]
+_081495BC:
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ movs r1, 0x26
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ ble _081495D2
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1
+ b _081495D8
+_081495D2:
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x14
+_081495D8:
+ strb r0, [r1]
+ movs r2, 0x38
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ bge _081495E4
+ adds r0, 0x3
+_081495E4:
+ asrs r0, 2
+ adds r0, 0x14
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x1F
+ bls _081495F2
+ movs r2, 0x1F
+_081495F2:
+ movs r0, 0x1F
+ ands r2, r0
+ lsls r2, 1
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x3]
+ b _0814960C
+_08149606:
+ adds r0, r4, 0
+ bl DestroySprite
+_0814960C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8149558
+
+ thumb_func_start sub_8149614
+sub_8149614: @ 8149614
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _08149664
+ movs r1, 0x78
+ movs r2, 0x58
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0814965E
+ ldr r4, _08149668
+ lsls r3, r0, 4
+ adds r3, r0
+ lsls r3, 2
+ adds r2, r3, r4
+ movs r1, 0
+ movs r0, 0x30
+ strh r0, [r2, 0x38]
+ strh r5, [r2, 0x3A]
+ strh r1, [r2, 0x3C]
+ ldrb r1, [r2, 0x1]
+ subs r0, 0x34
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r0, [r2, 0x3]
+ movs r1, 0x3E
+ orrs r0, r1
+ strb r0, [r2, 0x3]
+ adds r4, 0x1C
+ adds r3, r4
+ ldr r0, _0814966C
+ str r0, [r3]
+_0814965E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149664: .4byte gSpriteTemplate_8416EB8
+_08149668: .4byte gSprites
+_0814966C: .4byte sub_8149558
+ thumb_func_end sub_8149614
+
+ thumb_func_start sub_8149670
+sub_8149670: @ 8149670
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x22
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x57
+ bgt _081496D6
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ adds r1, r0, 0
+ muls r1, r0
+ adds r0, r1, 0
+ movs r1, 0x5
+ bl __divsi3
+ adds r0, 0x8
+ strh r0, [r4, 0x22]
+ ldrh r0, [r4, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ bge _081496A8
+ adds r0, 0x3
+_081496A8:
+ asrs r0, 2
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x24]
+ movs r1, 0x3C
+ ldrsh r0, [r4, r1]
+ lsls r0, 26
+ lsrs r0, 24
+ movs r1, 0x28
+ bl Sin
+ adds r0, 0x8
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ b _081496DC
+_081496D6:
+ adds r0, r4, 0
+ bl DestroySprite
+_081496DC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8149670
+
+ thumb_func_start sub_81496E4
+sub_81496E4: @ 81496E4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _08149740
+ movs r1, 0x78
+ movs r2, 0x8
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0814973A
+ ldr r4, _08149744
+ lsls r3, r0, 4
+ adds r3, r0
+ lsls r3, 2
+ adds r2, r3, r4
+ movs r1, 0
+ movs r0, 0x8
+ strh r0, [r2, 0x38]
+ strh r5, [r2, 0x3A]
+ strh r1, [r2, 0x3C]
+ ldrb r1, [r2, 0x1]
+ subs r0, 0xC
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x32
+ orrs r0, r1
+ strb r0, [r2, 0x3]
+ adds r2, 0x43
+ movs r0, 0x1
+ strb r0, [r2]
+ adds r4, 0x1C
+ adds r3, r4
+ ldr r0, _08149748
+ str r0, [r3]
+_0814973A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149740: .4byte gSpriteTemplate_8416EB8
+_08149744: .4byte gSprites
+_08149748: .4byte sub_8149670
+ thumb_func_end sub_81496E4
+
+ thumb_func_start sub_814974C
+sub_814974C: @ 814974C
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0x38
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x8
+ ble _08149788
+ ldrh r0, [r4, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Sin
+ strh r0, [r4, 0x26]
+ ldrh r0, [r4, 0x3A]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0x38
+ ldrsh r1, [r4, r2]
+ bl Cos
+ strh r0, [r4, 0x24]
+ ldrh r0, [r4, 0x38]
+ ldrh r1, [r4, 0x34]
+ subs r0, r1
+ strh r0, [r4, 0x38]
+ ldrh r0, [r4, 0x3A]
+ adds r0, 0x4
+ strh r0, [r4, 0x3A]
+ b _0814978E
+_08149788:
+ adds r0, r4, 0
+ bl DestroySprite
+_0814978E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_814974C
+
+ thumb_func_start sub_8149794
+sub_8149794: @ 8149794
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ ldr r0, _081497F0
+ movs r1, 0x78
+ movs r2, 0x38
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _081497EA
+ ldr r4, _081497F4
+ lsls r3, r0, 4
+ adds r3, r0
+ lsls r3, 2
+ adds r2, r3, r4
+ movs r1, 0
+ strh r5, [r2, 0x34]
+ movs r0, 0x78
+ strh r0, [r2, 0x38]
+ strh r6, [r2, 0x3A]
+ strh r1, [r2, 0x3C]
+ ldrb r1, [r2, 0x1]
+ subs r0, 0x7C
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r0, [r2, 0x3]
+ movs r1, 0x3E
+ orrs r0, r1
+ strb r0, [r2, 0x3]
+ adds r2, 0x43
+ movs r0, 0x1
+ strb r0, [r2]
+ adds r4, 0x1C
+ adds r3, r4
+ ldr r0, _081497F8
+ str r0, [r3]
+_081497EA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081497F0: .4byte gSpriteTemplate_8416EB8
+_081497F4: .4byte gSprites
+_081497F8: .4byte sub_814974C
+ thumb_func_end sub_8149794
+
+ thumb_func_start sub_81497FC
+sub_81497FC: @ 81497FC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x3C]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08149810
+ ldrh r0, [r4, 0x22]
+ adds r0, 0x1
+ strh r0, [r4, 0x22]
+_08149810:
+ ldrh r1, [r4, 0x3A]
+ movs r2, 0x3A
+ ldrsh r0, [r4, r2]
+ cmp r0, 0x7F
+ bgt _081498C0
+ lsls r0, r1, 24
+ lsrs r0, 24
+ movs r5, 0x38
+ ldrsh r1, [r4, r5]
+ bl Sin
+ negs r0, r0
+ strh r0, [r4, 0x26]
+ movs r0, 0x34
+ ldrsh r1, [r4, r0]
+ movs r2, 0x3C
+ ldrsh r0, [r4, r2]
+ muls r0, r1
+ movs r1, 0x3
+ bl __divsi3
+ adds r0, 0x78
+ strh r0, [r4, 0x20]
+ ldrh r0, [r4, 0x3A]
+ adds r3, r0, 0x1
+ strh r3, [r4, 0x3A]
+ movs r5, 0x3A
+ ldrsh r1, [r4, r5]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ cmp r0, 0
+ bge _08149854
+ adds r0, 0x7F
+_08149854:
+ asrs r0, 7
+ movs r1, 0x1F
+ subs r1, r0
+ lsls r1, 24
+ lsrs r2, r1, 24
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r0, 0x40
+ ble _08149870
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x1
+ strb r0, [r1]
+ b _081498A0
+_08149870:
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ adds r1, r4, 0
+ adds r1, 0x43
+ movs r0, 0x14
+ strb r0, [r1]
+ ldrh r1, [r4, 0x3A]
+ movs r5, 0x3A
+ ldrsh r0, [r4, r5]
+ cmp r0, 0x70
+ ble _081498A0
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081498A0
+ ldrb r0, [r3]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r3]
+_081498A0:
+ cmp r2, 0x13
+ bhi _081498A6
+ movs r2, 0x14
+_081498A6:
+ movs r0, 0x1F
+ ands r2, r0
+ lsls r2, 1
+ ldrb r1, [r4, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ orrs r0, r2
+ strb r0, [r4, 0x3]
+ ldrh r0, [r4, 0x3C]
+ adds r0, 0x1
+ strh r0, [r4, 0x3C]
+ b _081498C6
+_081498C0:
+ adds r0, r4, 0
+ bl DestroySprite
+_081498C6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81497FC
+
+ thumb_func_start sub_81498CC
+sub_81498CC: @ 81498CC
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r0, _08149948
+ movs r1, 0x78
+ movs r2, 0x38
+ movs r3, 0
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x40
+ beq _0814993C
+ bl Random
+ ldr r6, _0814994C
+ lsls r5, r4, 4
+ adds r5, r4
+ lsls r5, 2
+ adds r4, r5, r6
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x7
+ bl __umodsi3
+ movs r1, 0x3
+ subs r1, r0
+ movs r0, 0
+ mov r8, r0
+ strh r1, [r4, 0x34]
+ bl Random
+ movs r1, 0x3F
+ ands r1, r0
+ adds r1, 0x30
+ strh r1, [r4, 0x38]
+ mov r0, r8
+ strh r0, [r4, 0x3C]
+ ldrb r1, [r4, 0x1]
+ movs r0, 0x4
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x1]
+ ldrb r0, [r4, 0x3]
+ movs r1, 0x3E
+ orrs r0, r1
+ strb r0, [r4, 0x3]
+ adds r4, 0x43
+ movs r0, 0x14
+ strb r0, [r4]
+ adds r6, 0x1C
+ adds r5, r6
+ ldr r0, _08149950
+ str r0, [r5]
+_0814993C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149948: .4byte gSpriteTemplate_8416EB8
+_0814994C: .4byte gSprites
+_08149950: .4byte sub_81497FC
+ thumb_func_end sub_81498CC
+
+ thumb_func_start sub_8149954
+sub_8149954: @ 8149954
+ push {lr}
+ ldr r0, _08149968
+ bl LoadCompressedObjectPic
+ ldr r0, _0814996C
+ bl LoadSpritePalettes
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149968: .4byte gUnknown_08416E84
+_0814996C: .4byte gUnknown_08416E94
+ thumb_func_end sub_8149954
+
+ thumb_func_start sub_8149970
+sub_8149970: @ 8149970
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _08149998
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0814999C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0xA]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08149998: .4byte sub_81499A0
+_0814999C: .4byte gTasks
+ thumb_func_end sub_8149970
+
+ thumb_func_start sub_81499A0
+sub_81499A0: @ 81499A0
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8149520
+ ldr r0, _081499E4
+ lsls r5, r4, 2
+ adds r5, r4
+ lsls r5, 3
+ adds r5, r0
+ movs r0, 0
+ strh r0, [r5, 0x26]
+ movs r0, 0xA
+ ldrsh r1, [r5, r0]
+ movs r0, 0x3
+ lsls r0, r1
+ ldr r1, _081499E8
+ str r1, [sp]
+ movs r1, 0xA
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _081499EC
+ str r0, [r5]
+ movs r0, 0x8C
+ bl PlaySE
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081499E4: .4byte gTasks
+_081499E8: .4byte 0x00007fff
+_081499EC: .4byte sub_81499F0
+ thumb_func_end sub_81499A0
+
+ thumb_func_start sub_81499F0
+sub_81499F0: @ 81499F0
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08149A48
+ lsls r3, r5, 2
+ adds r0, r3, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r2, [r1, 0x26]
+ movs r4, 0x26
+ ldrsh r0, [r1, r4]
+ cmp r0, 0x3F
+ bgt _08149A4C
+ movs r0, 0x7
+ ands r0, r2
+ adds r7, r3, 0
+ cmp r0, 0
+ bne _08149A36
+ movs r4, 0
+ adds r6, r1, 0
+_08149A18:
+ ldrh r1, [r6, 0x26]
+ movs r0, 0x78
+ ands r0, r1
+ lsls r0, 1
+ lsls r1, r4, 6
+ adds r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8149614
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _08149A18
+_08149A36:
+ ldr r0, _08149A48
+ adds r1, r7, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ b _08149A54
+ .align 2, 0
+_08149A48: .4byte gTasks
+_08149A4C:
+ movs r0, 0x60
+ strh r0, [r1, 0x26]
+ ldr r0, _08149A5C
+ str r0, [r1]
+_08149A54:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149A5C: .4byte sub_8149A60
+ thumb_func_end sub_81499F0
+
+ thumb_func_start sub_8149A60
+sub_8149A60: @ 8149A60
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r1, _08149A80
+ lsls r0, r2, 2
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0, r1
+ ldrh r3, [r1, 0x26]
+ movs r4, 0x26
+ ldrsh r0, [r1, r4]
+ cmp r0, 0
+ beq _08149A84
+ subs r0, r3, 0x1
+ strh r0, [r1, 0x26]
+ b _08149A8A
+ .align 2, 0
+_08149A80: .4byte gTasks
+_08149A84:
+ adds r0, r2, 0
+ bl DestroyTask
+_08149A8A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8149A60
+
+ thumb_func_start sub_8149A90
+sub_8149A90: @ 8149A90
+ push {lr}
+ ldr r0, _08149AA4
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08149AA4: .4byte sub_8149AA8
+ thumb_func_end sub_8149A90
+
+ thumb_func_start sub_8149AA8
+sub_8149AA8: @ 8149AA8
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8149520
+ ldr r1, _08149AD4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x26]
+ ldr r1, _08149AD8
+ str r1, [r0]
+ movs r0, 0xB7
+ bl PlaySE
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149AD4: .4byte gTasks
+_08149AD8: .4byte sub_8149ADC
+ thumb_func_end sub_8149AA8
+
+ thumb_func_start sub_8149ADC
+sub_8149ADC: @ 8149ADC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08149B20
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r3, 0x26
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x5F
+ bgt _08149B24
+ adds r6, r2, 0
+ cmp r0, 0x5
+ bgt _08149B0E
+ movs r4, 0
+_08149AFC:
+ lsls r0, r4, 28
+ lsrs r0, 24
+ bl sub_81496E4
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x8
+ bls _08149AFC
+_08149B0E:
+ ldr r0, _08149B20
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ b _08149B28
+ .align 2, 0
+_08149B20: .4byte gTasks
+_08149B24:
+ ldr r0, _08149B30
+ str r0, [r1]
+_08149B28:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149B30: .4byte sub_8149B34
+ thumb_func_end sub_8149ADC
+
+ thumb_func_start sub_8149B34
+sub_8149B34: @ 8149B34
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8149B34
+
+ thumb_func_start sub_8149B44
+sub_8149B44: @ 8149B44
+ push {lr}
+ ldr r0, _08149B58
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08149B58: .4byte sub_8149B5C
+ thumb_func_end sub_8149B44
+
+ thumb_func_start sub_8149B5C
+sub_8149B5C: @ 8149B5C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8149520
+ ldr r1, _08149B88
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x26]
+ ldr r1, _08149B8C
+ str r1, [r0]
+ movs r0, 0x66
+ bl PlaySE
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149B88: .4byte gTasks
+_08149B8C: .4byte sub_8149B90
+ thumb_func_end sub_8149B5C
+
+ thumb_func_start sub_8149B90
+sub_8149B90: @ 8149B90
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _08149BFC
+ lsls r2, r5, 2
+ adds r0, r2, r5
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r3, 0x26
+ ldrsh r0, [r1, r3]
+ cmp r0, 0x2F
+ bgt _08149C00
+ adds r6, r2, 0
+ cmp r0, 0
+ bne _08149BC4
+ movs r4, 0
+_08149BB0:
+ lsls r0, r4, 28
+ lsrs r0, 24
+ movs r1, 0x4
+ bl sub_8149794
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xF
+ bls _08149BB0
+_08149BC4:
+ ldr r0, _08149BFC
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ movs r2, 0x26
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x20
+ bne _08149BEA
+ movs r4, 0
+_08149BD6:
+ lsls r0, r4, 28
+ lsrs r0, 24
+ movs r1, 0x8
+ bl sub_8149794
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0xF
+ bls _08149BD6
+_08149BEA:
+ ldr r0, _08149BFC
+ adds r1, r6, r5
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ b _08149C04
+ .align 2, 0
+_08149BFC: .4byte gTasks
+_08149C00:
+ ldr r0, _08149C0C
+ str r0, [r1]
+_08149C04:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149C0C: .4byte sub_8149C10
+ thumb_func_end sub_8149B90
+
+ thumb_func_start sub_8149C10
+sub_8149C10: @ 8149C10
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl DestroyTask
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8149C10
+
+ thumb_func_start sub_8149C20
+sub_8149C20: @ 8149C20
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _08149C48
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08149C4C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0xC]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08149C48: .4byte sub_8149C50
+_08149C4C: .4byte gTasks
+ thumb_func_end sub_8149C20
+
+ thumb_func_start sub_8149C50
+sub_8149C50: @ 8149C50
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8149520
+ ldr r0, _08149C98
+ lsls r5, r4, 2
+ adds r5, r4
+ lsls r5, 3
+ adds r5, r0
+ movs r0, 0
+ strh r0, [r5, 0x26]
+ ldr r0, _08149C9C
+ ldr r1, _08149CA0
+ movs r2, 0x30
+ bl CpuSet
+ ldr r0, _08149CA4
+ ldr r1, _08149CA8
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _08149CAC
+ str r0, [r5]
+ movs r0, 0xCA
+ bl PlaySE
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149C98: .4byte gTasks
+_08149C9C: .4byte gPlttBufferFaded + 0x40
+_08149CA0: .4byte gPlttBufferUnfaded + 0x40
+_08149CA4: .4byte 0xfff9001c
+_08149CA8: .4byte 0x00007fff
+_08149CAC: .4byte sub_8149CB0
+ thumb_func_end sub_8149C50
+
+ thumb_func_start sub_8149CB0
+sub_8149CB0: @ 8149CB0
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _08149CE8
+ lsls r5, r6, 2
+ adds r0, r5, r6
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r0, 0x26
+ ldrsh r2, [r1, r0]
+ cmp r2, 0x7F
+ bgt _08149D2C
+ adds r0, r2, 0
+ cmp r0, 0
+ beq _08149CEC
+ cmp r0, 0x20
+ beq _08149D00
+ cmp r2, 0x31
+ bgt _08149D10
+ bl Random
+ movs r1, 0x7
+ ands r0, r1
+ bl sub_81498CC
+ b _08149D10
+ .align 2, 0
+_08149CE8: .4byte gTasks
+_08149CEC:
+ movs r4, 0
+_08149CEE:
+ adds r0, r4, 0
+ bl sub_81498CC
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _08149CEE
+ b _08149D10
+_08149D00:
+ ldr r0, _08149D20
+ ldr r1, _08149D24
+ str r1, [sp]
+ movs r1, 0x10
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+_08149D10:
+ ldr r0, _08149D28
+ adds r1, r5, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ b _08149D30
+ .align 2, 0
+_08149D20: .4byte 0xffff001c
+_08149D24: .4byte 0x00007fff
+_08149D28: .4byte gTasks
+_08149D2C:
+ ldr r0, _08149D38
+ str r0, [r1]
+_08149D30:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149D38: .4byte sub_8149D3C
+ thumb_func_end sub_8149CB0
+
+ thumb_func_start sub_8149D3C
+sub_8149D3C: @ 8149D3C
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ ldr r0, _08149D58
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08149D54
+ adds r0, r2, 0
+ bl DestroyTask
+_08149D54:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149D58: .4byte gPaletteFade
+ thumb_func_end sub_8149D3C
+
+ thumb_func_start sub_8149D5C
+sub_8149D5C: @ 8149D5C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _08149D84
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08149D88
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0xC]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08149D84: .4byte sub_8149D8C
+_08149D88: .4byte gTasks
+ thumb_func_end sub_8149D5C
+
+ thumb_func_start sub_8149D8C
+sub_8149D8C: @ 8149D8C
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8149520
+ ldr r0, _08149DD4
+ lsls r5, r4, 2
+ adds r5, r4
+ lsls r5, 3
+ adds r5, r0
+ movs r0, 0
+ strh r0, [r5, 0x26]
+ ldr r0, _08149DD8
+ ldr r1, _08149DDC
+ movs r2, 0x30
+ bl CpuSet
+ ldr r0, _08149DE0
+ ldr r1, _08149DE4
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r0, _08149DE8
+ str r0, [r5]
+ movs r0, 0xCA
+ bl PlaySE
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149DD4: .4byte gTasks
+_08149DD8: .4byte gPlttBufferFaded + 0x40
+_08149DDC: .4byte gPlttBufferUnfaded + 0x40
+_08149DE0: .4byte 0xfff90001
+_08149DE4: .4byte 0x00007fff
+_08149DE8: .4byte sub_8149DEC
+ thumb_func_end sub_8149D8C
+
+ thumb_func_start sub_8149DEC
+sub_8149DEC: @ 8149DEC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _08149E24
+ lsls r5, r6, 2
+ adds r0, r5, r6
+ lsls r0, 3
+ adds r1, r0, r1
+ movs r0, 0x26
+ ldrsh r2, [r1, r0]
+ cmp r2, 0x7F
+ bgt _08149E68
+ adds r0, r2, 0
+ cmp r0, 0
+ beq _08149E28
+ cmp r0, 0x20
+ beq _08149E3C
+ cmp r2, 0x31
+ bgt _08149E4C
+ bl Random
+ movs r1, 0x7
+ ands r0, r1
+ bl sub_81498CC
+ b _08149E4C
+ .align 2, 0
+_08149E24: .4byte gTasks
+_08149E28:
+ movs r4, 0
+_08149E2A:
+ adds r0, r4, 0
+ bl sub_81498CC
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _08149E2A
+ b _08149E4C
+_08149E3C:
+ ldr r0, _08149E5C
+ ldr r1, _08149E60
+ str r1, [sp]
+ movs r1, 0x10
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+_08149E4C:
+ ldr r0, _08149E64
+ adds r1, r5, r6
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x26]
+ adds r0, 0x1
+ strh r0, [r1, 0x26]
+ b _08149E6C
+ .align 2, 0
+_08149E5C: .4byte 0xffff0001
+_08149E60: .4byte 0x00007fff
+_08149E64: .4byte gTasks
+_08149E68:
+ ldr r0, _08149E74
+ str r0, [r1]
+_08149E6C:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08149E74: .4byte sub_8149D3C
+ thumb_func_end sub_8149DEC
+
+ thumb_func_start nullsub_85
+nullsub_85: @ 8149E78
+ bx lr
+ thumb_func_end nullsub_85
+
+ thumb_func_start sub_8149E7C
+sub_8149E7C: @ 8149E7C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x28
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r7, r1, 24
+ movs r1, 0
+ ldr r3, _08149FB0
+ ldr r2, _08149FB4
+_08149E96:
+ lsls r0, r1, 1
+ add r0, sp
+ adds r0, 0x4
+ strh r2, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xF
+ bls _08149E96
+ adds r0, r3, 0
+ movs r1, 0
+ bl CreateTask
+ mov r8, r0
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r0, _08149FB8
+ mov r1, r8
+ lsls r6, r1, 2
+ add r6, r8
+ lsls r6, 3
+ adds r6, r0
+ strh r5, [r6, 0xA]
+ strh r7, [r6, 0xC]
+ movs r1, 0x80
+ lsls r1, 1
+ strh r1, [r6, 0xE]
+ movs r0, 0x10
+ strh r0, [r6, 0x10]
+ movs r4, 0x80
+ lsls r4, 9
+ str r1, [sp]
+ movs r0, 0x1E
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ movs r0, 0x10
+ ldrsh r1, [r6, r0]
+ adds r0, r4, 0
+ bl __divsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ movs r0, 0x1F
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ ldr r1, _08149FBC
+ mov r9, r1
+ lsls r2, r5, 4
+ adds r2, r5
+ lsls r2, 2
+ mov r3, r9
+ adds r3, 0x1C
+ adds r0, r2, r3
+ ldr r1, _08149FC0
+ str r1, [r0]
+ add r2, r9
+ ldrb r1, [r2, 0x1]
+ movs r4, 0x4
+ negs r4, r4
+ adds r0, r4, 0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x1]
+ ldrb r1, [r2, 0x3]
+ movs r0, 0x3F
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x3C
+ orrs r0, r1
+ strb r0, [r2, 0x3]
+ movs r0, 0x3E
+ adds r0, r2
+ mov r10, r0
+ ldrb r1, [r0]
+ movs r5, 0x5
+ negs r5, r5
+ adds r0, r5, 0
+ ands r0, r1
+ mov r1, r10
+ strb r0, [r1]
+ ldrb r1, [r2, 0x5]
+ lsrs r1, 4
+ lsls r1, 5
+ ldr r0, _08149FC4
+ mov r10, r0
+ add r1, r10
+ add r0, sp, 0x4
+ movs r2, 0x10
+ str r3, [sp, 0x24]
+ bl CpuSet
+ lsls r1, r7, 4
+ adds r1, r7
+ lsls r1, 2
+ ldr r3, [sp, 0x24]
+ adds r3, r1, r3
+ ldr r0, _08149FC0
+ str r0, [r3]
+ add r1, r9
+ ldrb r0, [r1, 0x1]
+ ands r4, r0
+ movs r0, 0x1
+ orrs r4, r0
+ strb r4, [r1, 0x1]
+ ldrb r0, [r1, 0x3]
+ movs r2, 0x3E
+ orrs r0, r2
+ strb r0, [r1, 0x3]
+ adds r2, r1, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ ands r5, r0
+ strb r5, [r2]
+ ldrb r1, [r1, 0x5]
+ lsrs r1, 4
+ lsls r1, 5
+ add r1, r10
+ add r0, sp, 0x4
+ movs r2, 0x10
+ bl CpuSet
+ movs r1, 0
+ strh r1, [r6, 0x18]
+ mov r0, r8
+ add sp, 0x28
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08149FB0: .4byte sub_8149FC8
+_08149FB4: .4byte 0x00007fff
+_08149FB8: .4byte gTasks
+_08149FBC: .4byte gSprites
+_08149FC0: .4byte nullsub_85
+_08149FC4: .4byte gPlttBufferFaded + 0x200
+ thumb_func_end sub_8149E7C
+
+ thumb_func_start sub_8149FC8
+sub_8149FC8: @ 8149FC8
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08149FE4
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0
+ strh r0, [r1, 0x12]
+ movs r0, 0x8
+ strh r0, [r1, 0x14]
+ ldr r0, _08149FE8
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08149FE4: .4byte gTasks
+_08149FE8: .4byte sub_8149FEC
+ thumb_func_end sub_8149FC8
+
+ thumb_func_start sub_8149FEC
+sub_8149FEC: @ 8149FEC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r1, _0814A00C
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r1, 0x18
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _0814A010
+ adds r0, r3, 0
+ bl sub_814A208
+ b _0814A032
+ .align 2, 0
+_0814A00C: .4byte gTasks
+_0814A010:
+ ldrh r1, [r2, 0x14]
+ movs r4, 0x14
+ ldrsh r0, [r2, r4]
+ cmp r0, 0x80
+ bne _0814A022
+ adds r0, r3, 0
+ bl sub_814A158
+ b _0814A032
+_0814A022:
+ adds r0, r1, 0x2
+ strh r0, [r2, 0x14]
+ ldrh r0, [r2, 0x12]
+ movs r1, 0x1
+ eors r0, r1
+ strh r0, [r2, 0x12]
+ ldr r0, _0814A038
+ str r0, [r2]
+_0814A032:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814A038: .4byte sub_814A03C
+ thumb_func_end sub_8149FEC
+
+ thumb_func_start sub_814A03C
+sub_814A03C: @ 814A03C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _0814A060
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r2, r0, r1
+ movs r3, 0x18
+ ldrsh r0, [r2, r3]
+ adds r5, r1, 0
+ cmp r0, 0
+ beq _0814A068
+ ldr r0, _0814A064
+ str r0, [r2]
+ b _0814A14C
+ .align 2, 0
+_0814A060: .4byte gTasks
+_0814A064: .4byte sub_814A208
+_0814A068:
+ movs r6, 0
+ movs r7, 0x12
+ ldrsh r0, [r2, r7]
+ cmp r0, 0
+ bne _0814A0B8
+ movs r0, 0xE
+ ldrsh r1, [r2, r0]
+ movs r3, 0x14
+ ldrsh r0, [r2, r3]
+ movs r3, 0x80
+ lsls r3, 1
+ subs r0, r3, r0
+ cmp r1, r0
+ bge _0814A08E
+ ldrh r0, [r2, 0x14]
+ ldrh r7, [r2, 0xE]
+ adds r0, r7
+ strh r0, [r2, 0xE]
+ b _0814A092
+_0814A08E:
+ strh r3, [r2, 0xE]
+ movs r6, 0x1
+_0814A092:
+ lsls r2, r4, 2
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r3, r0, r5
+ movs r0, 0x10
+ ldrsh r1, [r3, r0]
+ movs r7, 0x14
+ ldrsh r0, [r3, r7]
+ adds r0, 0x10
+ cmp r1, r0
+ ble _0814A0B2
+ ldrh r0, [r3, 0x10]
+ ldrh r1, [r3, 0x14]
+ subs r0, r1
+ strh r0, [r3, 0x10]
+ b _0814A102
+_0814A0B2:
+ movs r0, 0x10
+ strh r0, [r3, 0x10]
+ b _0814A0FC
+_0814A0B8:
+ movs r0, 0x10
+ ldrsh r1, [r2, r0]
+ movs r3, 0x14
+ ldrsh r0, [r2, r3]
+ movs r3, 0x80
+ lsls r3, 1
+ subs r0, r3, r0
+ cmp r1, r0
+ bge _0814A0D4
+ ldrh r0, [r2, 0x14]
+ ldrh r7, [r2, 0x10]
+ adds r0, r7
+ strh r0, [r2, 0x10]
+ b _0814A0D8
+_0814A0D4:
+ strh r3, [r2, 0x10]
+ movs r6, 0x1
+_0814A0D8:
+ lsls r2, r4, 2
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r3, r0, r5
+ movs r0, 0xE
+ ldrsh r1, [r3, r0]
+ movs r7, 0x14
+ ldrsh r0, [r3, r7]
+ adds r0, 0x10
+ cmp r1, r0
+ ble _0814A0F8
+ ldrh r0, [r3, 0xE]
+ ldrh r1, [r3, 0x14]
+ subs r0, r1
+ strh r0, [r3, 0xE]
+ b _0814A102
+_0814A0F8:
+ movs r0, 0x10
+ strh r0, [r3, 0xE]
+_0814A0FC:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0814A102:
+ adds r0, r2, r4
+ lsls r0, 3
+ adds r5, r0, r5
+ movs r0, 0xE
+ ldrsh r1, [r5, r0]
+ movs r4, 0x80
+ lsls r4, 9
+ adds r0, r4, 0
+ bl __divsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ movs r0, 0x1E
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ movs r3, 0x10
+ ldrsh r1, [r5, r3]
+ adds r0, r4, 0
+ bl __divsi3
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ str r1, [sp]
+ movs r0, 0x1F
+ movs r2, 0
+ movs r3, 0
+ bl SetOamMatrix
+ cmp r6, 0x2
+ bne _0814A14C
+ ldr r0, _0814A154
+ str r0, [r5]
+_0814A14C:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814A154: .4byte sub_8149FEC
+ thumb_func_end sub_814A03C
+
+ thumb_func_start sub_814A158
+sub_814A158: @ 814A158
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0814A200
+ mov r8, r1
+ ldr r1, _0814A204
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ add r2, r8
+ ldrb r3, [r2, 0x1]
+ movs r6, 0x4
+ negs r6, r6
+ adds r1, r6, 0
+ ands r1, r3
+ strb r1, [r2, 0x1]
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ add r2, r8
+ ldrb r3, [r2, 0x3]
+ movs r5, 0x3F
+ negs r5, r5
+ adds r1, r5, 0
+ ands r1, r3
+ strb r1, [r2, 0x3]
+ movs r1, 0xA
+ ldrsh r2, [r4, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ add r1, r8
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r3, 0x4
+ orrs r2, r3
+ strb r2, [r1]
+ movs r1, 0xC
+ ldrsh r2, [r4, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ add r1, r8
+ ldrb r2, [r1, 0x1]
+ ands r6, r2
+ strb r6, [r1, 0x1]
+ movs r1, 0xC
+ ldrsh r2, [r4, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ add r1, r8
+ ldrb r2, [r1, 0x3]
+ ands r5, r2
+ strb r5, [r1, 0x3]
+ movs r1, 0xC
+ ldrsh r2, [r4, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ add r1, r8
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ ands r2, r3
+ strb r2, [r1]
+ bl DestroyTask
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814A200: .4byte gSprites
+_0814A204: .4byte gTasks
+ thumb_func_end sub_814A158
+
+ thumb_func_start sub_814A208
+sub_814A208: @ 814A208
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _0814A2B0
+ mov r8, r1
+ ldr r1, _0814A2B4
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 3
+ adds r4, r1
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ add r2, r8
+ ldrb r3, [r2, 0x1]
+ movs r6, 0x4
+ negs r6, r6
+ adds r1, r6, 0
+ ands r1, r3
+ strb r1, [r2, 0x1]
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ lsls r2, r1, 4
+ adds r2, r1
+ lsls r2, 2
+ add r2, r8
+ ldrb r3, [r2, 0x3]
+ movs r5, 0x3F
+ negs r5, r5
+ adds r1, r5, 0
+ ands r1, r3
+ strb r1, [r2, 0x3]
+ movs r1, 0xA
+ ldrsh r2, [r4, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ add r1, r8
+ adds r1, 0x3E
+ ldrb r3, [r1]
+ movs r2, 0x5
+ negs r2, r2
+ ands r2, r3
+ strb r2, [r1]
+ movs r1, 0xC
+ ldrsh r2, [r4, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ add r1, r8
+ ldrb r2, [r1, 0x1]
+ ands r6, r2
+ strb r6, [r1, 0x1]
+ movs r1, 0xC
+ ldrsh r2, [r4, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ add r1, r8
+ ldrb r2, [r1, 0x3]
+ ands r5, r2
+ strb r5, [r1, 0x3]
+ movs r1, 0xC
+ ldrsh r2, [r4, r1]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ add r1, r8
+ adds r1, 0x3E
+ ldrb r2, [r1]
+ movs r3, 0x4
+ orrs r2, r3
+ strb r2, [r1]
+ bl DestroyTask
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814A2B0: .4byte gSprites
+_0814A2B4: .4byte gTasks
+ thumb_func_end sub_814A208
+
+ thumb_func_start sub_814A2B8
+sub_814A2B8: @ 814A2B8
+ ldr r2, _0814A2CC
+ lsls r0, 2
+ adds r0, r2
+ ldr r0, [r0]
+ lsls r1, 1
+ adds r1, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ bx lr
+ .align 2, 0
+_0814A2CC: .4byte gUnknown_08417068
+ thumb_func_end sub_814A2B8
+
+ thumb_func_start sub_814A2D0
+sub_814A2D0: @ 814A2D0
+ lsls r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r2, _0814A2E8
+ lsrs r0, 14
+ adds r0, r2
+ ldr r0, [r0]
+ lsls r2, r1, 1
+ adds r2, r1
+ lsls r2, 4
+ adds r0, r2
+ bx lr
+ .align 2, 0
+_0814A2E8: .4byte gBardMusicTable
+ thumb_func_end sub_814A2D0
+
+ thumb_func_start sub_814A2EC
+sub_814A2EC: @ 814A2EC
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r6, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ mov r9, r2
+ ldr r4, _0814A370
+ adds r2, r1, 0
+ adds r3, r6, 0
+ adds r3, 0x18
+ movs r7, 0x5
+_0814A306:
+ ldrb r0, [r2]
+ strh r0, [r3]
+ ldrb r0, [r2]
+ cmp r0, 0xFF
+ beq _0814A328
+ movs r1, 0x1
+ ldrsb r1, [r2, r1]
+ lsls r0, 2
+ adds r0, r4
+ ldr r0, [r0]
+ adds r1, r0
+ strh r1, [r3, 0x2]
+ ldrh r0, [r2, 0x4]
+ strh r0, [r3, 0x6]
+ ldrh r0, [r6, 0x4]
+ adds r0, r1
+ strh r0, [r6, 0x4]
+_0814A328:
+ adds r2, 0x8
+ adds r3, 0x8
+ subs r7, 0x1
+ cmp r7, 0
+ bge _0814A306
+ movs r7, 0x6
+ movs r5, 0
+ movs r0, 0x1E
+ mov r8, r0
+ adds r4, r6, 0
+_0814A33C:
+ mov r0, r8
+ add r0, r9
+ adds r1, r5, 0
+ bl sub_814A2B8
+ adds r1, r0, 0
+ strh r1, [r4, 0x1C]
+ adds r4, 0x8
+ adds r5, 0x1
+ cmp r5, r7
+ blt _0814A33C
+ ldrb r1, [r6]
+ adds r1, 0x1
+ movs r2, 0
+ strb r1, [r6]
+ strb r2, [r6, 0x1]
+ strb r2, [r6, 0x2]
+ strb r2, [r6, 0x3]
+ strh r2, [r6, 0xA]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814A370: .4byte gUnknown_084170F4
+ thumb_func_end sub_814A2EC
+
+ thumb_func_start sub_814A374
+sub_814A374: @ 814A374
+ push {lr}
+ ldr r0, _0814A38C
+ ldrb r0, [r0, 0x17]
+ bl is_light_level_1_2_3_or_6
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0814A390
+ movs r0, 0
+ b _0814A39E
+ .align 2, 0
+_0814A38C: .4byte gMapHeader
+_0814A390:
+ ldr r1, _0814A3A4
+ ldr r0, _0814A3A8
+ str r0, [r1]
+ ldr r1, _0814A3AC
+ ldr r0, _0814A3B0
+ str r0, [r1]
+ movs r0, 0x1
+_0814A39E:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814A3A4: .4byte gUnknown_0300485C
+_0814A3A8: .4byte sub_808AB90
+_0814A3AC: .4byte gUnknown_03005CE4
+_0814A3B0: .4byte hm_teleport_run_dp02scr
+ thumb_func_end sub_814A374
+
+ thumb_func_start hm_teleport_run_dp02scr
+hm_teleport_run_dp02scr: @ 814A3B4
+ push {lr}
+ bl new_game
+ movs r0, 0x3F
+ bl FieldEffectStart
+ ldr r0, _0814A3CC
+ ldr r1, _0814A3D0
+ ldrb r1, [r1]
+ str r1, [r0]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814A3CC: .4byte gUnknown_0202FF84
+_0814A3D0: .4byte gUnknown_03005CE0
+ thumb_func_end hm_teleport_run_dp02scr
+
+ thumb_func_start sub_814A3D4
+sub_814A3D4: @ 814A3D4
+ push {lr}
+ bl oei_task_add
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0814A3FC
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r2, _0814A400
+ lsrs r0, r2, 16
+ strh r0, [r1, 0x18]
+ strh r2, [r1, 0x1A]
+ movs r0, 0x1
+ bl SetPlayerAvatarTransitionFlags
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814A3FC: .4byte gTasks
+_0814A400: .4byte sub_814A404
+ thumb_func_end sub_814A3D4
+
+ thumb_func_start sub_814A404
+sub_814A404: @ 814A404
+ push {lr}
+ movs r0, 0x3F
+ bl FieldEffectActiveListRemove
+ bl sub_8087BA8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_814A404
+
+ thumb_func_start unref_sub_814A414
+unref_sub_814A414: @ 814A414
+ push {lr}
+ sub sp, 0x8
+ bl MenuZeroFillScreen
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x10
+ movs r3, 0x12
+ bl MenuDrawTextWindow
+ ldr r3, _0814A458
+ movs r0, 0x2
+ movs r1, 0x1
+ movs r2, 0x8
+ bl PrintMenuItems
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xF
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x1
+ movs r3, 0x8
+ bl InitMenu
+ ldr r1, _0814A45C
+ ldr r0, _0814A460
+ str r0, [r1]
+ movs r0, 0
+ add sp, 0x8
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814A458: .4byte gUnknown_0842C29C
+_0814A45C: .4byte gUnknown_03004AE8
+_0814A460: .4byte sub_814A464
+ thumb_func_end unref_sub_814A414
+
+ thumb_func_start sub_814A464
+sub_814A464: @ 814A464
+ push {lr}
+ bl ProcessMenuInput
+ lsls r0, 24
+ lsrs r0, 24
+ adds r2, r0, 0
+ lsls r0, r2, 24
+ asrs r1, r0, 24
+ movs r0, 0x2
+ negs r0, r0
+ cmp r1, r0
+ bne _0814A480
+ movs r0, 0
+ b _0814A4B2
+_0814A480:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0814A4AC
+ ldr r0, _0814A4A0
+ strb r2, [r0]
+ ldr r2, _0814A4A4
+ ldr r0, _0814A4A8
+ lsls r1, 3
+ adds r0, 0x4
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+ movs r0, 0
+ b _0814A4B2
+ .align 2, 0
+_0814A4A0: .4byte gUnknown_02024D1E
+_0814A4A4: .4byte gUnknown_03004AE8
+_0814A4A8: .4byte gUnknown_0842C29C
+_0814A4AC:
+ bl sub_8071C20
+ movs r0, 0x1
+_0814A4B2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_814A464
+
+ thumb_func_start sub_814A4B8
+sub_814A4B8: @ 814A4B8
+ push {r4,lr}
+ ldr r2, _0814A4FC
+ ldr r1, _0814A500
+ adds r0, r2, r1
+ movs r1, 0x3
+ strb r1, [r0]
+ ldr r3, _0814A504
+ adds r0, r2, r3
+ strb r1, [r0]
+ ldr r3, _0814A508
+ ldrb r0, [r3]
+ adds r0, 0x1
+ ldr r4, _0814A50C
+ adds r1, r2, r4
+ strh r0, [r1]
+ ldrb r0, [r3]
+ adds r0, 0x1
+ ldr r3, _0814A510
+ adds r1, r2, r3
+ strh r0, [r1]
+ subs r4, 0x4
+ adds r0, r2, r4
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r0, _0814A514
+ adds r2, r0
+ strh r1, [r2]
+ bl sub_8071C20
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814A4FC: .4byte gSaveBlock2
+_0814A500: .4byte 0x00000556
+_0814A504: .4byte 0x00000557
+_0814A508: .4byte gUnknown_02024D1E
+_0814A50C: .4byte 0x0000055c
+_0814A510: .4byte 0x0000055e
+_0814A514: .4byte 0x0000055a
+ thumb_func_end sub_814A4B8
+
+ thumb_func_start sub_814A518
+sub_814A518: @ 814A518
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ bl SkipExtCtrlCodes
+ adds r0, r4, 0
+ bl StringLength
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r5, 0xFC
+ bne _0814A556
+ cmp r1, 0x5
+ bhi _0814A55A
+ movs r3, 0xFC
+ movs r2, 0x7
+_0814A53A:
+ adds r0, r4, r1
+ strb r3, [r0]
+ strb r2, [r0, 0x1]
+ adds r0, r1, 0x2
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x5
+ bls _0814A53A
+ b _0814A55A
+_0814A54C:
+ adds r0, r4, r1
+ strb r5, [r0]
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+_0814A556:
+ cmp r1, 0x5
+ bls _0814A54C
+_0814A55A:
+ adds r1, r4, r1
+ movs r0, 0xFF
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_814A518
+
+ thumb_func_start sub_814A568
+sub_814A568: @ 814A568
+ push {r4,lr}
+ adds r4, r0, 0
+ bl StringLength
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x5
+ bhi _0814A582
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl ConvertInternationalString
+ b _0814A588
+_0814A582:
+ adds r0, r4, 0
+ bl SkipExtCtrlCodes
+_0814A588:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_814A568
+
+ thumb_func_start sub_814A590
+sub_814A590: @ 814A590
+ ldr r0, _0814A5AC
+ movs r1, 0x40
+ strb r1, [r0]
+ ldr r0, _0814A5B0
+ strb r1, [r0]
+ ldr r0, _0814A5B4
+ strb r1, [r0]
+ ldr r0, _0814A5B8
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, _0814A5BC
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_0814A5AC: .4byte gUnknown_0203A3D0
+_0814A5B0: .4byte gUnknown_0203A3D1
+_0814A5B4: .4byte gUnknown_0203A3D2
+_0814A5B8: .4byte gUnknown_0203A3D3
+_0814A5BC: .4byte gUnknown_0203A3D4
+ thumb_func_end sub_814A590
+
+ thumb_func_start sub_814A5C0
+sub_814A5C0: @ 814A5C0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r4, [sp, 0x1C]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 24
+ lsrs r5, r2, 24
+ lsls r3, 16
+ lsrs r7, r3, 16
+ lsls r4, 24
+ lsrs r4, 24
+ mov r9, r4
+ ldr r0, _0814A678
+ ldrb r0, [r0]
+ cmp r0, 0x40
+ bne _0814A5F2
+ ldr r0, _0814A67C
+ ldrb r0, [r0]
+ cmp r0, 0x40
+ beq _0814A5F6
+_0814A5F2:
+ bl sub_814A7FC
+_0814A5F6:
+ movs r4, 0x1
+ ldr r0, _0814A680
+ cmp r6, r0
+ bne _0814A61C
+ ldr r1, _0814A684
+ movs r0, 0xF
+ ands r0, r5
+ lsls r0, 1
+ adds r0, r1
+ strh r7, [r0]
+ ldr r0, _0814A688
+ bl LoadSpritePalette
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _0814A61C
+ ldr r6, _0814A68C
+ movs r4, 0
+_0814A61C:
+ movs r7, 0xF
+ adds r0, r5, 0
+ ands r0, r7
+ lsls r0, 3
+ ldr r1, _0814A690
+ adds r0, r1
+ bl LoadSpriteSheetDeferred
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 3
+ ldr r4, _0814A694
+ adds r0, r4
+ movs r1, 0
+ movs r2, 0xA0
+ mov r3, r8
+ bl CreateSprite
+ ldr r5, _0814A678
+ strb r0, [r5]
+ adds r4, 0x30
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0xA0
+ mov r3, r8
+ bl CreateSprite
+ ldr r1, _0814A67C
+ strb r0, [r1]
+ ldrb r0, [r5]
+ cmp r0, 0x40
+ beq _0814A6AE
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814A698
+ adds r4, r0, r1
+ ldr r0, _0814A680
+ cmp r6, r0
+ bne _0814A69C
+ ldrb r1, [r4, 0x5]
+ adds r0, r7, 0
+ ands r0, r1
+ strb r0, [r4, 0x5]
+ b _0814A6AE
+ .align 2, 0
+_0814A678: .4byte gUnknown_0203A3D0
+_0814A67C: .4byte gUnknown_0203A3D1
+_0814A680: .4byte 0x0000ffff
+_0814A684: .4byte gUnknown_0203A360
+_0814A688: .4byte gUnknown_0842F240
+_0814A68C: .4byte 0x0000fff0
+_0814A690: .4byte gUnknown_0842F140
+_0814A694: .4byte gSpriteTemplate_842F250
+_0814A698: .4byte gSprites
+_0814A69C:
+ adds r0, r6, 0
+ bl IndexOfSpritePaletteTag
+ lsls r0, 4
+ ldrb r2, [r4, 0x5]
+ adds r1, r7, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+_0814A6AE:
+ ldr r1, _0814A6D4
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _0814A72C
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814A6D8
+ adds r4, r0, r1
+ ldr r0, _0814A6DC
+ cmp r6, r0
+ bne _0814A6E0
+ ldrb r1, [r4, 0x5]
+ movs r0, 0xF
+ ands r0, r1
+ strb r0, [r4, 0x5]
+ b _0814A6F2
+ .align 2, 0
+_0814A6D4: .4byte gUnknown_0203A3D1
+_0814A6D8: .4byte gSprites
+_0814A6DC: .4byte 0x0000ffff
+_0814A6E0:
+ adds r0, r6, 0
+ bl IndexOfSpritePaletteTag
+ lsls r0, 4
+ ldrb r2, [r4, 0x5]
+ movs r1, 0xF
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+_0814A6F2:
+ movs r3, 0x80
+ lsls r3, 19
+ ldrh r1, [r3]
+ movs r0, 0xC0
+ lsls r0, 7
+ ands r0, r1
+ cmp r0, 0
+ bne _0814A70C
+ ldr r0, _0814A744
+ ldrb r1, [r0]
+ movs r2, 0x1F
+ orrs r1, r2
+ strb r1, [r0]
+_0814A70C:
+ ldr r1, _0814A748
+ ldrh r0, [r3]
+ lsrs r0, 15
+ strb r0, [r1]
+ ldr r1, _0814A74C
+ ldr r2, _0814A750
+ ldrb r0, [r2]
+ strb r0, [r1]
+ ldrh r0, [r3]
+ movs r4, 0x80
+ lsls r4, 8
+ adds r1, r4, 0
+ orrs r0, r1
+ strh r0, [r3]
+ movs r0, 0x10
+ strb r0, [r2]
+_0814A72C:
+ mov r0, r9
+ bl sub_814A958
+ ldr r0, _0814A754
+ ldrb r0, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814A744: .4byte REG_WINOUT
+_0814A748: .4byte gUnknown_0203A3D3
+_0814A74C: .4byte gUnknown_0203A3D4
+_0814A750: .4byte 0x0400004b
+_0814A754: .4byte gUnknown_0203A3D0
+ thumb_func_end sub_814A5C0
+
+ thumb_func_start sub_814A758
+sub_814A758: @ 814A758
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp]
+ movs r1, 0
+ movs r3, 0
+ bl sub_814A5C0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ cmp r4, 0x40
+ beq _0814A79A
+ ldr r0, _0814A7A4
+ ldrb r0, [r0]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0814A7A8
+ adds r1, r0
+ lsls r3, r5, 4
+ ldrb r2, [r1, 0x5]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r3
+ strb r0, [r1, 0x5]
+_0814A79A:
+ adds r0, r4, 0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814A7A4: .4byte gUnknown_0203A3D0
+_0814A7A8: .4byte gSprites
+ thumb_func_end sub_814A758
+
+ thumb_func_start unref_sub_814A7AC
+unref_sub_814A7AC: @ 814A7AC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r12, r0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ lsls r2, 24
+ lsrs r7, r2, 24
+ movs r3, 0
+ movs r2, 0xF
+ movs r1, 0
+ ldr r6, _0814A7F8
+ movs r5, 0xF
+_0814A7C6:
+ lsls r0, r1, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ cmp r0, r4
+ bne _0814A7DA
+ lsrs r0, r1, 4
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r2, r1, 0
+ ands r2, r5
+_0814A7DA:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xFF
+ bls _0814A7C6
+ mov r0, r12
+ adds r1, r3, 0
+ adds r3, r7, 0
+ bl sub_814A758
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814A7F8: .4byte gPlttBufferUnfaded
+ thumb_func_end unref_sub_814A7AC
+
+ thumb_func_start sub_814A7FC
+sub_814A7FC: @ 814A7FC
+ push {r4,lr}
+ ldr r4, _0814A860
+ ldrb r0, [r4]
+ cmp r0, 0x40
+ beq _0814A820
+ ldr r0, _0814A864
+ bl LoadTilesForSpriteSheet
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814A868
+ adds r0, r1
+ bl DestroySpriteAndFreeResources
+ movs r0, 0x40
+ strb r0, [r4]
+_0814A820:
+ ldr r4, _0814A86C
+ ldrb r0, [r4]
+ cmp r0, 0x40
+ beq _0814A858
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814A868
+ adds r0, r1
+ bl DestroySpriteAndFreeResources
+ movs r0, 0x40
+ strb r0, [r4]
+ ldr r0, _0814A870
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0814A850
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _0814A874
+ ands r0, r1
+ strh r0, [r2]
+_0814A850:
+ ldr r0, _0814A878
+ ldr r1, _0814A87C
+ ldrb r1, [r1]
+ strb r1, [r0]
+_0814A858:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814A860: .4byte gUnknown_0203A3D0
+_0814A864: .4byte gUnknown_0842F140
+_0814A868: .4byte gSprites
+_0814A86C: .4byte gUnknown_0203A3D1
+_0814A870: .4byte gUnknown_0203A3D3
+_0814A874: .4byte 0x00007fff
+_0814A878: .4byte 0x0400004b
+_0814A87C: .4byte gUnknown_0203A3D4
+ thumb_func_end sub_814A7FC
+
+ thumb_func_start sub_814A880
+sub_814A880: @ 814A880
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r7, r5, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ adds r6, r4, 0
+ ldr r1, _0814A8F8
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _0814A8C0
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814A8FC
+ 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]
+ adds r0, r2, 0
+ adds r0, 0x28
+ movs r1, 0
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ strh r5, [r2, 0x20]
+ strh r4, [r2, 0x22]
+_0814A8C0:
+ ldr r1, _0814A900
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _0814A8F2
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814A8FC
+ 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]
+ adds r0, r2, 0
+ adds r0, 0x28
+ movs r1, 0
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ strh r7, [r2, 0x20]
+ strh r6, [r2, 0x22]
+_0814A8F2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814A8F8: .4byte gUnknown_0203A3D0
+_0814A8FC: .4byte gSprites
+_0814A900: .4byte gUnknown_0203A3D1
+ thumb_func_end sub_814A880
+
+ thumb_func_start sub_814A904
+sub_814A904: @ 814A904
+ push {lr}
+ ldr r1, _0814A94C
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _0814A926
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814A950
+ adds r0, r1
+ adds r2, r0, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_0814A926:
+ ldr r1, _0814A954
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _0814A946
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814A950
+ adds r0, r1
+ adds r2, r0, 0
+ adds r2, 0x3E
+ ldrb r0, [r2]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2]
+_0814A946:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814A94C: .4byte gUnknown_0203A3D0
+_0814A950: .4byte gSprites
+_0814A954: .4byte gUnknown_0203A3D1
+ thumb_func_end sub_814A904
+
+ thumb_func_start sub_814A958
+sub_814A958: @ 814A958
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ ldr r4, _0814A9C4
+ ldr r2, _0814A9C8
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0
+ movs r1, 0
+ movs r1, 0x2
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ strh r2, [r4]
+ adds r4, 0x8
+ movs r7, 0x1
+ movs r2, 0x1
+ ldr r1, [sp]
+ subs r0, r1, 0x1
+ lsls r0, 16
+ lsrs r3, r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ ble _0814AA3A
+ ldr r0, _0814A9CC
+ mov r12, r0
+ mov r8, r1
+ movs r1, 0x8
+ negs r1, r1
+ mov r10, r1
+ ldr r5, _0814A9D0
+ mov r9, r5
+_0814A99E:
+ lsls r0, r3, 16
+ asrs r3, r0, 16
+ cmp r3, 0x1F
+ ble _0814A9D4
+ mov r6, r12
+ ldr r0, [r6]
+ ldr r1, [r6, 0x4]
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ strh r2, [r4]
+ lsls r0, r2, 16
+ movs r1, 0x80
+ lsls r1, 14
+ adds r0, r1
+ lsrs r2, r0, 16
+ ldr r3, [sp]
+ lsls r5, r3, 16
+ b _0814AA20
+ .align 2, 0
+_0814A9C4: .4byte gSubspriteTable_203A380
+_0814A9C8: .4byte 0x0000ffff
+_0814A9CC: .4byte gUnknown_0842F780
+_0814A9D0: .4byte gUnknown_0842F788
+_0814A9D4:
+ ldr r6, [sp]
+ lsls r5, r6, 16
+ mov r0, r8
+ cmp r0, 0x27
+ ble _0814AA0A
+ cmp r3, 0x8
+ ble _0814AA0A
+ mov r6, r12
+ ldr r0, [r6]
+ ldr r1, [r6, 0x4]
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ lsls r1, r2, 16
+ asrs r1, 16
+ adds r2, r1, 0
+ subs r2, 0x20
+ adds r0, r3, 0
+ mov r6, r10
+ ands r0, r6
+ adds r2, r0
+ strh r2, [r4]
+ movs r0, 0x18
+ ands r0, r3
+ adds r1, r0
+ lsls r1, 16
+ lsrs r2, r1, 16
+ b _0814AA20
+_0814AA0A:
+ mov r3, r9
+ ldr r0, [r3]
+ ldr r1, [r3, 0x4]
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ strh r2, [r4]
+ lsls r0, r2, 16
+ movs r6, 0x80
+ lsls r6, 12
+ adds r0, r6
+ lsrs r2, r0, 16
+_0814AA20:
+ adds r4, 0x8
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ asrs r1, r5, 16
+ lsls r0, r2, 16
+ asrs r0, 16
+ subs r1, r0
+ lsls r1, 16
+ lsrs r3, r1, 16
+ asrs r1, 16
+ cmp r1, 0x7
+ bgt _0814A99E
+_0814AA3A:
+ ldr r5, _0814AAA8
+ ldr r0, [r5]
+ ldr r1, [r5, 0x4]
+ str r0, [r4]
+ str r1, [r4, 0x4]
+ lsls r1, r2, 16
+ asrs r1, 16
+ subs r1, 0x7
+ lsls r0, r3, 16
+ asrs r0, 16
+ adds r0, r1
+ strh r0, [r4]
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldr r6, _0814AAAC
+ ldrb r0, [r6]
+ cmp r0, 0x40
+ beq _0814AA78
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814AAB0
+ adds r2, r0, r1
+ lsls r1, r7, 3
+ ldr r0, _0814AAB4
+ adds r1, r0
+ adds r0, r2, 0
+ bl SetSubspriteTables
+_0814AA78:
+ ldr r1, _0814AAB8
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _0814AA98
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814AAB0
+ adds r2, r0, r1
+ lsls r1, r7, 3
+ ldr r0, _0814AAB4
+ adds r1, r0
+ adds r0, r2, 0
+ bl SetSubspriteTables
+_0814AA98:
+ 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
+_0814AAA8: .4byte gUnknown_0842F790
+_0814AAAC: .4byte gUnknown_0203A3D0
+_0814AAB0: .4byte gSprites
+_0814AAB4: .4byte gSubspriteTables_842F5C0
+_0814AAB8: .4byte gUnknown_0203A3D1
+ thumb_func_end sub_814A958
+
+ thumb_func_start sub_814AABC
+sub_814AABC: @ 814AABC
+ push {lr}
+ adds r2, r0, 0
+ ldr r1, _0814AAEC
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _0814AAD4
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0814AAF0
+ adds r1, r0
+ str r2, [r1, 0x1C]
+_0814AAD4:
+ ldr r1, _0814AAF4
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _0814AAE8
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0814AAF0
+ adds r1, r0
+ str r2, [r1, 0x1C]
+_0814AAE8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814AAEC: .4byte gUnknown_0203A3D0
+_0814AAF0: .4byte gSprites
+_0814AAF4: .4byte gUnknown_0203A3D1
+ thumb_func_end sub_814AABC
+
+ thumb_func_start sub_814AAF8
+sub_814AAF8: @ 814AAF8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 16
+ lsrs r0, 16
+ mov r12, r0
+ ldr r1, _0814AB70
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _0814AB66
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814AB74
+ adds r4, r0, r1
+ ldr r0, [r4, 0x14]
+ ldrh r1, [r0, 0x2]
+ ldr r0, _0814AB78
+ cmp r1, r0
+ bne _0814AB66
+ movs r2, 0
+ movs r3, 0xF
+ movs r1, 0
+ ldrb r5, [r4, 0x5]
+ ldr r0, _0814AB7C
+ mov r8, r0
+ ldr r7, _0814AB80
+ movs r6, 0xF
+_0814AB32:
+ lsls r0, r1, 1
+ adds r0, r7
+ ldrh r0, [r0]
+ cmp r0, r12
+ bne _0814AB46
+ lsrs r0, r1, 4
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r3, r1, 0
+ ands r3, r6
+_0814AB46:
+ adds r0, r1, 0x1
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0xFF
+ bls _0814AB32
+ lsls r2, 4
+ movs r1, 0xF
+ adds r0, r1, 0
+ ands r0, r5
+ orrs r0, r2
+ strb r0, [r4, 0x5]
+ ands r3, r1
+ lsls r0, r3, 3
+ add r0, r8
+ bl RequestSpriteSheetCopy
+_0814AB66:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814AB70: .4byte gUnknown_0203A3D0
+_0814AB74: .4byte gSprites
+_0814AB78: .4byte 0x0000ffff
+_0814AB7C: .4byte gUnknown_0842F140
+_0814AB80: .4byte gPlttBufferUnfaded
+ thumb_func_end sub_814AAF8
+
+ thumb_func_start sub_814AB84
+sub_814AB84: @ 814AB84
+ push {r4,r5,lr}
+ ldr r5, _0814ABCC
+ ldrb r0, [r5]
+ cmp r0, 0x40
+ beq _0814ABC4
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ ldr r0, _0814ABD0
+ adds r4, r0
+ adds r0, r4, 0
+ bl FreeSpriteOamMatrix
+ adds r0, r4, 0
+ bl DestroySprite
+ movs r0, 0x40
+ strb r0, [r5]
+ ldr r0, _0814ABD4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0814ABBC
+ movs r2, 0x80
+ lsls r2, 19
+ ldrh r1, [r2]
+ ldr r0, _0814ABD8
+ ands r0, r1
+ strh r0, [r2]
+_0814ABBC:
+ ldr r0, _0814ABDC
+ ldr r1, _0814ABE0
+ ldrb r1, [r1]
+ strb r1, [r0]
+_0814ABC4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814ABCC: .4byte gUnknown_0203A3D1
+_0814ABD0: .4byte gSprites
+_0814ABD4: .4byte gUnknown_0203A3D3
+_0814ABD8: .4byte 0x00007fff
+_0814ABDC: .4byte 0x0400004b
+_0814ABE0: .4byte gUnknown_0203A3D4
+ thumb_func_end sub_814AB84
+
+ thumb_func_start unref_sub_814ABE4
+unref_sub_814ABE4: @ 814ABE4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, _0814AC40
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, _0814AC44
+ movs r2, 0x28
+ bl CpuSet
+ ldr r1, _0814AC48
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _0814AC18
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814AC4C
+ adds r2, r0, r1
+ lsls r1, r4, 3
+ ldr r0, _0814AC50
+ adds r1, r0
+ adds r0, r2, 0
+ bl SetSubspriteTables
+_0814AC18:
+ ldr r1, _0814AC54
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _0814AC38
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814AC4C
+ adds r2, r0, r1
+ lsls r1, r4, 3
+ ldr r0, _0814AC50
+ adds r1, r0
+ adds r0, r2, 0
+ bl SetSubspriteTables
+_0814AC38:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814AC40: .4byte gUnknown_0842F5BC
+_0814AC44: .4byte gSubspriteTable_203A380
+_0814AC48: .4byte gUnknown_0203A3D0
+_0814AC4C: .4byte gSprites
+_0814AC50: .4byte gUnknown_0842F758
+_0814AC54: .4byte gUnknown_0203A3D1
+ thumb_func_end unref_sub_814ABE4
+
+ thumb_func_start sub_814AC58
+sub_814AC58: @ 814AC58
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r4, [sp, 0x1C]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r3, 16
+ lsrs r6, r3, 16
+ lsls r4, 24
+ lsrs r4, 24
+ mov r9, r4
+ ldr r0, _0814ACF8
+ ldrb r0, [r0]
+ cmp r0, 0x40
+ beq _0814AC86
+ bl sub_814AD44
+_0814AC86:
+ movs r4, 0x1
+ ldr r0, _0814ACFC
+ cmp r5, r0
+ bne _0814ACAC
+ ldr r1, _0814AD00
+ movs r0, 0xF
+ ands r0, r7
+ lsls r0, 1
+ adds r0, r1
+ strh r6, [r0]
+ ldr r0, _0814AD04
+ bl LoadSpritePalette
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _0814ACAC
+ ldr r5, _0814AD08
+ movs r4, 0
+_0814ACAC:
+ movs r6, 0xF
+ adds r0, r7, 0
+ ands r0, r6
+ lsls r0, 3
+ ldr r1, _0814AD0C
+ adds r0, r1
+ bl LoadSpriteSheetDeferred
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _0814AD10
+ adds r0, r1
+ movs r1, 0
+ movs r2, 0xA0
+ mov r3, r8
+ bl CreateSprite
+ ldr r1, _0814ACF8
+ strb r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x40
+ beq _0814AD2A
+ ldrb r1, [r1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814AD14
+ adds r4, r0, r1
+ ldr r0, _0814ACFC
+ cmp r5, r0
+ bne _0814AD18
+ ldrb r1, [r4, 0x5]
+ adds r0, r6, 0
+ ands r0, r1
+ strb r0, [r4, 0x5]
+ b _0814AD2A
+ .align 2, 0
+_0814ACF8: .4byte gUnknown_0203A3D2
+_0814ACFC: .4byte 0x0000ffff
+_0814AD00: .4byte gUnknown_0203A360
+_0814AD04: .4byte gUnknown_0842F248
+_0814AD08: .4byte 0x0000fff1
+_0814AD0C: .4byte gUnknown_0842F1C0
+_0814AD10: .4byte gSpriteTemplate_842F298
+_0814AD14: .4byte gSprites
+_0814AD18:
+ adds r0, r5, 0
+ bl IndexOfSpritePaletteTag
+ lsls r0, 4
+ ldrb r2, [r4, 0x5]
+ adds r1, r6, 0
+ ands r1, r2
+ orrs r1, r0
+ strb r1, [r4, 0x5]
+_0814AD2A:
+ mov r0, r9
+ bl sub_814ADF4
+ ldr r0, _0814AD40
+ ldrb r0, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0814AD40: .4byte gUnknown_0203A3D2
+ thumb_func_end sub_814AC58
+
+ thumb_func_start sub_814AD44
+sub_814AD44: @ 814AD44
+ push {r4,lr}
+ ldr r4, _0814AD70
+ ldrb r0, [r4]
+ cmp r0, 0x40
+ beq _0814AD68
+ ldr r0, _0814AD74
+ bl LoadTilesForSpriteSheet
+ ldrb r1, [r4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814AD78
+ adds r0, r1
+ bl DestroySpriteAndFreeResources
+ movs r0, 0x40
+ strb r0, [r4]
+_0814AD68:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814AD70: .4byte gUnknown_0203A3D2
+_0814AD74: .4byte gUnknown_0842F1C0
+_0814AD78: .4byte gSprites
+ thumb_func_end sub_814AD44
+
+ thumb_func_start sub_814AD7C
+sub_814AD7C: @ 814AD7C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldr r1, _0814ADC0
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _0814ADB8
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814ADC4
+ 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]
+ adds r0, r2, 0
+ adds r0, 0x28
+ movs r1, 0
+ strb r1, [r0]
+ adds r0, 0x1
+ strb r1, [r0]
+ strh r5, [r2, 0x20]
+ strh r4, [r2, 0x22]
+_0814ADB8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814ADC0: .4byte gUnknown_0203A3D2
+_0814ADC4: .4byte gSprites
+ thumb_func_end sub_814AD7C
+
+ thumb_func_start sub_814ADC8
+sub_814ADC8: @ 814ADC8
+ push {lr}
+ ldr r1, _0814ADEC
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _0814ADE8
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814ADF0
+ adds r0, r1
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+_0814ADE8:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814ADEC: .4byte gUnknown_0203A3D2
+_0814ADF0: .4byte gSprites
+ thumb_func_end sub_814ADC8
+
+ thumb_func_start sub_814ADF4
+sub_814ADF4: @ 814ADF4
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x12
+ bls _0814AE00
+ movs r2, 0
+_0814AE00:
+ ldr r1, _0814AE24
+ ldrb r0, [r1]
+ cmp r0, 0x40
+ beq _0814AE1E
+ adds r1, r0, 0
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0814AE28
+ adds r0, r1
+ lsls r1, r2, 3
+ ldr r2, _0814AE2C
+ adds r1, r2
+ bl SetSubspriteTables
+_0814AE1E:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0814AE24: .4byte gUnknown_0203A3D2
+_0814AE28: .4byte gSprites
+_0814AE2C: .4byte gUnknown_0842F6C0
+ thumb_func_end sub_814ADF4