summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2016-09-05 13:09:52 -0700
committerYamaArashi <shadow962@live.com>2016-09-05 14:55:23 -0700
commit110fc301e1fcc8ed132323bf10c9464e826af37e (patch)
tree244825a0edd9f161fb8fb5d4d1e8897b47b9c65e
parent3d10fc8c40fdbbb763288bf4083cd1eed80d20e5 (diff)
text_window.c
-rw-r--r--.gitignore4
-rw-r--r--Makefile2
-rw-r--r--asm/rom4.s26677
-rw-r--r--asm/rom_8065394.s26029
-rw-r--r--data/data2.s5
-rw-r--r--data/graphics.s4
-rw-r--r--graphics/text_window/message_box.png (renamed from graphics/text_window/main.png)bin189 -> 189 bytes
-rw-r--r--graphics/text_window/message_box_map.binbin0 -> 72 bytes
-rw-r--r--ld_script.txt5
-rw-r--r--src/text_window.c195
10 files changed, 26236 insertions, 26685 deletions
diff --git a/.gitignore b/.gitignore
index d6a173013..d2720efca 100644
--- a/.gitignore
+++ b/.gitignore
@@ -12,9 +12,7 @@
*.latfont
*.hwjpnfont
*.fwjpnfont
-pokeas
-pokeld
-pokeobjcopy
+*.bat
src/*.s
tools/agbcc
ld_script_ruby.txt
diff --git a/Makefile b/Makefile
index 0f5c31286..17e081c66 100644
--- a/Makefile
+++ b/Makefile
@@ -38,7 +38,7 @@ C_OBJS := $(C_SRCS:%.c=%.o)
ASM_OBJS := asm/crt0.o asm/rom3.o asm/rom_8040EB4.o asm/rom4.o asm/rom_8074BAC.o asm/rom5.o \
asm/libgcnmultiboot.o asm/m4a_1.o asm/m4a_3.o asm/libagbsyscall.o \
-asm/rom_8072DF8.o
+asm/rom_8072DF8.o asm/rom_8065394.o
DATA_ASM_OBJS := data/data2.o data/graphics.o data/sound_data.o \
data/event_scripts.o data/battle_anim_scripts.o \
diff --git a/asm/rom4.s b/asm/rom4.s
index 132008164..2174dc622 100644
--- a/asm/rom4.s
+++ b/asm/rom4.s
@@ -40611,26681 +40611,4 @@ _08064EEC: .4byte 0x03004ae0
_08064EF0: .4byte 0x030048a0
thumb_func_end sub_8064ED4
- thumb_func_start sub_8064EF4
-sub_8064EF4: @ 8064EF4
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08064F04
- strh r0, [r1]
- adds r0, 0x9
- lsls r0, 16
- lsrs r0, 16
- bx lr
- .align 2, 0
-_08064F04: .4byte 0x030005ac
- thumb_func_end sub_8064EF4
-
- thumb_func_start sub_8064F08
-sub_8064F08: @ 8064F08
- push {r4,lr}
- ldr r1, [r0, 0x2C]
- ldr r0, _08064F30
- ldrh r0, [r0]
- lsls r0, 5
- ldr r1, [r1, 0x10]
- adds r1, r0
- ldr r4, _08064F34
- ldrb r0, [r4, 0x14]
- lsrs r0, 3
- bl sub_8064FF8
- ldrb r0, [r4, 0x14]
- lsrs r0, 3
- movs r1, 0xE
- bl sub_8065014
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08064F30: .4byte 0x030005ac
-_08064F34: .4byte gSaveBlock2
- thumb_func_end sub_8064F08
-
- thumb_func_start sub_8064F38
-sub_8064F38: @ 8064F38
- push {r4,r5,lr}
- lsls r5, r1, 24
- lsrs r5, 24
- ldr r1, [r0, 0x2C]
- ldr r0, _08064F64
- ldrh r0, [r0]
- lsls r0, 5
- ldr r1, [r1, 0x10]
- adds r1, r0
- ldr r4, _08064F68
- ldrb r0, [r4, 0x14]
- lsrs r0, 3
- bl sub_8064FF8
- ldrb r0, [r4, 0x14]
- lsrs r0, 3
- adds r1, r5, 0
- bl sub_8065014
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08064F64: .4byte 0x030005ac
-_08064F68: .4byte gSaveBlock2
- thumb_func_end sub_8064F38
-
- thumb_func_start sub_8064F6C
-sub_8064F6C: @ 8064F6C
- push {r4,lr}
- lsls r4, r1, 24
- lsrs r4, 24
- ldr r1, [r0, 0x2C]
- ldr r0, _08064F94
- ldrh r0, [r0]
- lsls r0, 5
- ldr r1, [r1, 0x10]
- adds r1, r0
- adds r0, r4, 0
- bl sub_8064FF8
- adds r0, r4, 0
- movs r1, 0xE
- bl sub_8065014
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08064F94: .4byte 0x030005ac
- thumb_func_end sub_8064F6C
-
- thumb_func_start AddTextPrinterParametrized
-AddTextPrinterParametrized: @ 8064F98
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r1, 0
- adds r5, r2, 0
- ldr r2, [sp, 0x14]
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r0, [r0, 0x2C]
- ldr r0, [r0, 0x14]
- ldr r1, _08064FD0
- ldrh r1, [r1]
- str r3, [sp]
- str r2, [sp, 0x4]
- adds r2, r4, 0
- adds r3, r5, 0
- bl DrawWindowInternal
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08064FD0: .4byte 0x030005ac
- thumb_func_end AddTextPrinterParametrized
-
- thumb_func_start sub_8064FD4
-sub_8064FD4: @ 8064FD4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bhi _08064FEC
- lsls r0, 3
- ldr r1, _08064FE8
- adds r0, r1
- b _08064FEE
- .align 2, 0
-_08064FE8: .4byte gUnknown_083761F0
-_08064FEC:
- ldr r0, _08064FF4
-_08064FEE:
- pop {r1}
- bx r1
- .align 2, 0
-_08064FF4: .4byte gUnknown_083761F0
- thumb_func_end sub_8064FD4
-
- thumb_func_start sub_8064FF8
-sub_8064FF8: @ 8064FF8
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- bl sub_8064FD4
- ldr r0, [r0]
- adds r1, r4, 0
- movs r2, 0x48
- bl CpuFastSet
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8064FF8
-
- thumb_func_start sub_8065014
-sub_8065014: @ 8065014
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- bl sub_8064FD4
- ldr r0, [r0, 0x4]
- lsls r4, 4
- adds r1, r4, 0
- movs r2, 0x20
- bl LoadPalette
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8065014
-
- thumb_func_start DrawWindowInternal
-DrawWindowInternal: @ 8065038
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- adds r7, r0, 0
- ldr r0, [sp, 0x3C]
- ldr r4, [sp, 0x40]
- lsls r1, 16
- lsrs r1, 16
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- adds r6, r2, 0
- lsls r3, 24
- lsrs r5, r3, 24
- mov r10, r5
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- mov r8, r4
- adds r1, r0, 0
- cmp r0, r2
- bls _0806506E
- adds r1, r2, 0
-_0806506E:
- str r1, [sp]
- adds r1, r6, 0
- cmp r6, r0
- bcs _08065078
- adds r1, r0, 0
-_08065078:
- adds r6, r1, 0
- adds r3, r4, 0
- cmp r4, r5
- bls _08065082
- adds r3, r5, 0
-_08065082:
- adds r5, r3, 0
- mov r0, r10
- cmp r10, r8
- bcs _0806508C
- mov r0, r8
-_0806508C:
- str r0, [sp, 0x4]
- lsls r3, r5, 5
- ldr r0, [sp]
- adds r1, r3, r0
- lsls r1, 1
- adds r1, r7
- movs r4, 0xE0
- lsls r4, 8
- adds r2, r4, 0
- mov r0, r9
- orrs r0, r2
- strh r0, [r1]
- ldr r1, [sp]
- adds r1, 0x1
- lsls r0, r1, 24
- lsrs r2, r0, 24
- str r1, [sp, 0x18]
- mov r4, r9
- adds r4, 0x2
- adds r5, 0x1
- mov r8, r5
- mov r5, r9
- adds r5, 0x6
- str r5, [sp, 0x10]
- mov r0, r9
- adds r0, 0x8
- str r0, [sp, 0x14]
- cmp r2, r6
- bcs _080650E6
- mov r10, r3
- mov r1, r9
- adds r1, 0x1
- ldr r5, _080651C4
- adds r0, r5, 0
- orrs r1, r0
-_080650D2:
- mov r5, r10
- adds r0, r5, r2
- lsls r0, 1
- adds r0, r7
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r6
- bcc _080650D2
-_080650E6:
- adds r0, r3, r6
- lsls r0, 1
- adds r0, r7
- ldr r2, _080651C4
- adds r1, r2, 0
- orrs r4, r1
- strh r4, [r0]
- mov r4, r8
- lsls r0, r4, 24
- lsrs r3, r0, 24
- ldr r5, [sp, 0x4]
- lsls r5, 5
- mov r10, r5
- ldr r0, [sp, 0x4]
- cmp r3, r0
- bcs _0806516A
- movs r2, 0x3
- add r2, r9
- orrs r2, r1
- mov r8, r2
- ldr r4, [sp, 0x18]
- lsls r4, 24
- str r4, [sp, 0x8]
- movs r5, 0x5
- add r5, r9
- orrs r5, r1
- mov r12, r5
- mov r0, r9
- adds r0, 0x4
- str r0, [sp, 0xC]
-_08065122:
- lsls r1, r3, 5
- ldr r2, [sp]
- adds r0, r1, r2
- lsls r0, 1
- adds r0, r7
- mov r4, r8
- strh r4, [r0]
- ldr r5, [sp, 0x8]
- lsrs r2, r5, 24
- adds r5, r1, 0
- adds r3, 0x1
- cmp r2, r6
- bcs _08065156
- ldr r4, _080651C4
- adds r0, r4, 0
- ldr r4, [sp, 0xC]
- orrs r4, r0
-_08065144:
- adds r0, r1, r2
- lsls r0, 1
- adds r0, r7
- strh r4, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r6
- bcc _08065144
-_08065156:
- adds r0, r5, r6
- lsls r0, 1
- adds r0, r7
- mov r5, r12
- strh r5, [r0]
- lsls r0, r3, 24
- lsrs r3, r0, 24
- ldr r0, [sp, 0x4]
- cmp r3, r0
- bcc _08065122
-_0806516A:
- ldr r0, [sp]
- add r0, r10
- lsls r0, 1
- adds r0, r7
- ldr r1, _080651C4
- adds r4, r1, 0
- ldr r2, [sp, 0x10]
- orrs r2, r4
- strh r2, [r0]
- ldr r1, [sp, 0x18]
- lsls r0, r1, 24
- lsrs r2, r0, 24
- cmp r2, r6
- bcs _080651A0
- mov r3, r10
- mov r1, r9
- adds r1, 0x7
- orrs r1, r4
-_0806518E:
- adds r0, r3, r2
- lsls r0, 1
- adds r0, r7
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r6
- bcc _0806518E
-_080651A0:
- mov r2, r10
- adds r0, r2, r6
- lsls r0, 1
- adds r0, r7
- ldr r4, _080651C4
- adds r1, r4, 0
- ldr r5, [sp, 0x14]
- orrs r5, r1
- strh r5, [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
-_080651C4: .4byte 0xffffe000
- thumb_func_end DrawWindowInternal
-
- thumb_func_start sub_80651C8
-sub_80651C8: @ 80651C8
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _080651D8
- strh r0, [r1]
- adds r0, 0xE
- lsls r0, 16
- lsrs r0, 16
- bx lr
- .align 2, 0
-_080651D8: .4byte 0x030005ae
- thumb_func_end sub_80651C8
-
- thumb_func_start unref_sub_80651DC
-unref_sub_80651DC: @ 80651DC
- push {lr}
- sub sp, 0x4
- ldr r2, _080651FC
- ldrh r2, [r2]
- adds r2, 0xE
- lsls r2, 16
- lsrs r2, 16
- movs r3, 0xF
- str r3, [sp]
- movs r3, 0x2
- bl sub_8002EB0
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080651FC: .4byte 0x030005ae
- thumb_func_end unref_sub_80651DC
-
- thumb_func_start copy_textbox_border_tile_patterns_to_vram
-copy_textbox_border_tile_patterns_to_vram: @ 8065200
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8065348
- adds r0, r4, 0
- bl draw_win
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end copy_textbox_border_tile_patterns_to_vram
-
- thumb_func_start draw_win_3
-draw_win_3: @ 8065214
- push {r4-r6,lr}
- ldr r4, [sp, 0x10]
- lsls r0, 16
- lsrs r6, r0, 16
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r4, 24
- lsrs r0, r4, 24
- movs r1, 0x9
- cmp r2, r0
- bcc _0806523C
- subs r0, r2, r0
- adds r0, 0x3
- lsls r0, 24
- lsrs r2, r0, 24
- b _08065242
-_0806523C:
- cmp r2, 0x1
- bls _08065242
- movs r2, 0x2
-_08065242:
- adds r0, r3, 0x2
- cmp r5, r0
- blt _08065252
- subs r0, r5, r0
- adds r0, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- b _08065258
-_08065252:
- cmp r5, 0x2
- bls _08065258
- movs r5, 0x3
-_08065258:
- cmp r5, 0x6
- bhi _0806526E
- cmp r2, 0x4
- bhi _0806526E
- ldr r1, _0806527C
- lsls r0, r2, 3
- subs r0, r2
- adds r0, r5
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
-_0806526E:
- adds r0, r1, r6
- lsls r0, 16
- lsrs r1, r0, 16
- adds r0, r1, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0806527C: .4byte gUnknown_08376290
- thumb_func_end draw_win_3
-
- thumb_func_start draw_win_2
-draw_win_2: @ 8065280
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- str r0, [sp, 0x4]
- ldr r0, [sp, 0x3C]
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x8]
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0xC]
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x10]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, [sp, 0x4]
- ldrb r0, [r1, 0x6]
- lsls r0, 12
- ldr r1, _0806532C
- ldrh r1, [r1]
- orrs r0, r1
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x14]
- ldr r3, [sp, 0x4]
- ldr r0, [r3, 0x2C]
- ldr r0, [r0, 0x14]
- mov r10, r0
- movs r5, 0
- mov r0, r9
- adds r0, 0x2
- cmp r5, r0
- bge _0806531C
- ldr r7, [sp, 0x10]
- adds r7, 0x6
- str r0, [sp, 0x18]
-_080652D2:
- movs r4, 0
- adds r0, r5, 0x1
- mov r8, r0
- cmp r4, r7
- bge _08065310
- ldr r1, [sp, 0xC]
- adds r0, r1, r5
- lsls r6, r0, 5
-_080652E2:
- mov r3, r9
- str r3, [sp]
- ldr r0, [sp, 0x14]
- adds r1, r4, 0
- adds r2, r5, 0
- ldr r3, [sp, 0x10]
- bl draw_win_3
- ldr r1, [sp, 0x8]
- adds r2, r1, r4
- adds r2, r6, r2
- lsls r2, 1
- add r2, r10
- ldr r3, [sp, 0x4]
- ldrb r1, [r3, 0x6]
- lsls r1, 12
- orrs r1, r0
- strh r1, [r2]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r7
- blt _080652E2
-_08065310:
- mov r1, r8
- lsls r0, r1, 24
- lsrs r5, r0, 24
- ldr r3, [sp, 0x18]
- cmp r5, r3
- blt _080652D2
-_0806531C:
- 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
-_0806532C: .4byte 0x030005ae
- thumb_func_end draw_win_2
-
- thumb_func_start draw_win
-draw_win: @ 8065330
- push {lr}
- sub sp, 0x4
- movs r1, 0x4
- str r1, [sp]
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x1A
- bl draw_win_2
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end draw_win
-
- thumb_func_start sub_8065348
-sub_8065348: @ 8065348
- push {lr}
- ldr r0, [r0, 0x2C]
- ldr r1, [r0, 0x10]
- ldr r0, _08065364
- ldr r2, _08065368
- ldrh r2, [r2]
- lsls r2, 5
- adds r1, r2
- movs r2, 0x70
- bl CpuFastSet
- pop {r0}
- bx r0
- .align 2, 0
-_08065364: .4byte gTextWindowMainFrame_Gfx
-_08065368: .4byte 0x030005ae
- thumb_func_end sub_8065348
-
- thumb_func_start sub_806536C
-sub_806536C: @ 806536C
- push {lr}
- ldr r1, [r0, 0x2C]
- ldr r1, [r1, 0x14]
- movs r2, 0xE0
- lsls r2, 2
- adds r1, r2
- ldrb r0, [r0, 0x6]
- lsls r0, 28
- lsrs r3, r0, 16
- movs r2, 0
-_08065380:
- lsls r0, r2, 1
- adds r0, r1
- strh r3, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xBF
- bls _08065380
- pop {r0}
- bx r0
- thumb_func_end sub_806536C
-
- thumb_func_start script_env_init
-script_env_init: @ 8065394
- push {lr}
- adds r3, r0, 0
- movs r0, 0
- strb r0, [r3, 0x1]
- str r0, [r3, 0x8]
- strb r0, [r3]
- str r0, [r3, 0x4]
- str r1, [r3, 0x5C]
- str r2, [r3, 0x60]
- movs r2, 0
- movs r1, 0x3
- adds r0, r3, 0
- adds r0, 0x70
-_080653AE:
- str r2, [r0]
- subs r0, 0x4
- subs r1, 0x1
- cmp r1, 0
- bge _080653AE
- adds r1, r3, 0
- adds r1, 0xC
- movs r2, 0
- adds r0, r3, 0
- adds r0, 0x58
-_080653C2:
- str r2, [r0]
- subs r0, 0x4
- cmp r0, r1
- bge _080653C2
- pop {r0}
- bx r0
- thumb_func_end script_env_init
-
- thumb_func_start script_setup_bytecode_script
-script_setup_bytecode_script: @ 80653D0
- str r1, [r0, 0x8]
- movs r1, 0x1
- strb r1, [r0, 0x1]
- movs r0, 0x1
- bx lr
- thumb_func_end script_setup_bytecode_script
-
- thumb_func_start script_setup_asm_script
-script_setup_asm_script: @ 80653DC
- movs r2, 0x2
- strb r2, [r0, 0x1]
- str r1, [r0, 0x4]
- bx lr
- thumb_func_end script_setup_asm_script
-
- thumb_func_start script_stop
-script_stop: @ 80653E4
- movs r1, 0
- strb r1, [r0, 0x1]
- str r1, [r0, 0x8]
- bx lr
- thumb_func_end script_stop
-
- thumb_func_start sub_80653EC
-sub_80653EC: @ 80653EC
- push {r4,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _080653FA
-_080653F6:
- movs r0, 0
- b _0806546C
-_080653FA:
- ldrb r0, [r4, 0x1]
- cmp r0, 0x1
- beq _08065432
- cmp r0, 0x1
- bgt _0806540A
- cmp r0, 0
- beq _080653F6
- b _0806546A
-_0806540A:
- cmp r0, 0x2
- bne _0806546A
- ldr r0, [r4, 0x4]
- cmp r0, 0
- beq _0806542E
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806546A
- strb r0, [r4, 0x1]
- b _0806546A
-_08065424:
- strb r2, [r4, 0x1]
- b _080653F6
-_08065428:
- movs r0, 0
- strb r0, [r4, 0x1]
- b _0806546C
-_0806542E:
- movs r0, 0x1
- strb r0, [r4, 0x1]
-_08065432:
- ldr r2, [r4, 0x8]
- cmp r2, 0
- beq _08065424
- ldr r0, _08065444
- ldr r0, [r0]
- cmp r2, r0
- bne _08065448
-_08065440:
- swi 0x2
- b _08065440
- .align 2, 0
-_08065444: .4byte gUnknown_083762D8
-_08065448:
- ldrb r1, [r2]
- adds r0, r2, 0x1
- str r0, [r4, 0x8]
- lsls r1, 2
- ldr r0, [r4, 0x5C]
- adds r1, r0, r1
- ldr r0, [r4, 0x60]
- cmp r1, r0
- bcs _08065428
- ldr r1, [r1]
- adds r0, r4, 0
- bl _call_via_r1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08065432
-_0806546A:
- movs r0, 0x1
-_0806546C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80653EC
-
- thumb_func_start script_stack_push
-script_stack_push: @ 8065474
- push {lr}
- adds r2, r0, 0
- adds r3, r1, 0
- ldrb r1, [r2]
- adds r0, r1, 0x1
- cmp r0, 0x13
- bgt _08065496
- lsls r0, r1, 2
- adds r1, r2, 0
- adds r1, 0xC
- adds r1, r0
- str r3, [r1]
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- movs r0, 0
- b _08065498
-_08065496:
- movs r0, 0x1
-_08065498:
- pop {r1}
- bx r1
- thumb_func_end script_stack_push
-
- thumb_func_start script_stack_pop
-script_stack_pop: @ 806549C
- push {lr}
- adds r2, r0, 0
- ldrb r0, [r2]
- cmp r0, 0
- beq _080654B8
- subs r0, 0x1
- strb r0, [r2]
- ldrb r1, [r2]
- lsls r1, 2
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r1
- ldr r0, [r0]
- b _080654BA
-_080654B8:
- movs r0, 0
-_080654BA:
- pop {r1}
- bx r1
- thumb_func_end script_stack_pop
-
- thumb_func_start script_jump
-script_jump: @ 80654C0
- str r1, [r0, 0x8]
- bx lr
- thumb_func_end script_jump
-
- thumb_func_start script_call
-script_call: @ 80654C4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, [r4, 0x8]
- bl script_stack_push
- str r5, [r4, 0x8]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end script_call
-
- thumb_func_start script_return
-script_return: @ 80654D8
- push {r4,lr}
- adds r4, r0, 0
- bl script_stack_pop
- str r0, [r4, 0x8]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end script_return
-
- thumb_func_start script_read_halfword
-script_read_halfword: @ 80654E8
- adds r3, r0, 0
- ldr r2, [r3, 0x8]
- ldrb r0, [r2]
- adds r2, 0x1
- str r2, [r3, 0x8]
- ldrb r1, [r2]
- lsls r1, 8
- orrs r0, r1
- adds r2, 0x1
- str r2, [r3, 0x8]
- bx lr
- thumb_func_end script_read_halfword
-
- thumb_func_start script_read_word
-script_read_word: @ 8065500
- push {r4-r6,lr}
- adds r3, r0, 0
- ldr r0, [r3, 0x8]
- ldrb r6, [r0]
- adds r0, 0x1
- str r0, [r3, 0x8]
- ldrb r5, [r0]
- adds r2, r0, 0x1
- str r2, [r3, 0x8]
- ldrb r4, [r0, 0x1]
- adds r1, r2, 0x1
- str r1, [r3, 0x8]
- ldrb r0, [r2, 0x1]
- adds r1, 0x1
- str r1, [r3, 0x8]
- lsls r0, 8
- adds r0, r4
- lsls r0, 8
- adds r0, r5
- lsls r0, 8
- adds r0, r6
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end script_read_word
-
- thumb_func_start script_env_2_enable
-script_env_2_enable: @ 8065530
- ldr r1, _08065538
- movs r0, 0x1
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08065538: .4byte 0x030006a4
- thumb_func_end script_env_2_enable
-
- thumb_func_start script_env_2_disable
-script_env_2_disable: @ 806553C
- ldr r1, _08065544
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08065544: .4byte 0x030006a4
- thumb_func_end script_env_2_disable
-
- thumb_func_start script_env_2_is_enabled
-script_env_2_is_enabled: @ 8065548
- ldr r0, _08065550
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_08065550: .4byte 0x030006a4
- thumb_func_end script_env_2_is_enabled
-
- thumb_func_start script_env_1_init
-script_env_1_init: @ 8065554
- push {lr}
- ldr r0, _0806556C
- ldr r1, _08065570
- ldr r2, _08065574
- bl script_env_init
- ldr r1, _08065578
- movs r0, 0x2
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0806556C: .4byte 0x030005b8
-_08065570: .4byte gScriptCmdTable
-_08065574: .4byte gScriptCmdTableEnd
-_08065578: .4byte 0x030005b0
- thumb_func_end script_env_1_init
-
- thumb_func_start script_env_2_run_current_script
-script_env_2_run_current_script: @ 806557C
- push {r4,lr}
- ldr r4, _080655A0
- ldrb r0, [r4]
- cmp r0, 0x2
- beq _080655B0
- cmp r0, 0x1
- beq _080655B0
- bl script_env_2_enable
- ldr r0, _080655A4
- bl sub_80653EC
- lsls r0, 24
- cmp r0, 0
- beq _080655A8
- movs r0, 0x1
- b _080655B2
- .align 2, 0
-_080655A0: .4byte 0x030005b0
-_080655A4: .4byte 0x030005b8
-_080655A8:
- movs r0, 0x2
- strb r0, [r4]
- bl script_env_2_disable
-_080655B0:
- movs r0, 0
-_080655B2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end script_env_2_run_current_script
-
- thumb_func_start script_env_1_execute_new_script
-script_env_1_execute_new_script: @ 80655B8
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _080655E0
- ldr r1, _080655E4
- ldr r2, _080655E8
- adds r0, r4, 0
- bl script_env_init
- adds r0, r4, 0
- adds r1, r5, 0
- bl script_setup_bytecode_script
- bl script_env_2_enable
- ldr r1, _080655EC
- movs r0, 0
- strb r0, [r1]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080655E0: .4byte 0x030005b8
-_080655E4: .4byte gScriptCmdTable
-_080655E8: .4byte gScriptCmdTableEnd
-_080655EC: .4byte 0x030005b0
- thumb_func_end script_env_1_execute_new_script
-
- thumb_func_start sub_80655F0
-sub_80655F0: @ 80655F0
- ldr r1, _080655F8
- movs r0, 0x1
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080655F8: .4byte 0x030005b0
- thumb_func_end sub_80655F0
-
- thumb_func_start script_env_2_enable_and_set_ctx_running
-script_env_2_enable_and_set_ctx_running: @ 80655FC
- push {lr}
- ldr r1, _0806560C
- movs r0, 0
- strb r0, [r1]
- bl script_env_2_enable
- pop {r0}
- bx r0
- .align 2, 0
-_0806560C: .4byte 0x030005b0
- thumb_func_end script_env_2_enable_and_set_ctx_running
-
- thumb_func_start script_env_2_execute_new_script
-script_env_2_execute_new_script: @ 8065610
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, _0806563C
- ldr r1, _08065640
- ldr r2, _08065644
- adds r0, r4, 0
- bl script_env_init
- adds r0, r4, 0
- adds r1, r5, 0
- bl script_setup_bytecode_script
-_08065628:
- ldr r0, _0806563C
- bl sub_80653EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08065628
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806563C: .4byte 0x03000630
-_08065640: .4byte gScriptCmdTable
-_08065644: .4byte gScriptCmdTableEnd
- thumb_func_end script_env_2_execute_new_script
-
- thumb_func_start mapheader_get_tagged_pointer
-mapheader_get_tagged_pointer: @ 8065648
- push {lr}
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _08065660
- ldr r2, [r0, 0x8]
- cmp r2, 0
- beq _0806565C
-_08065656:
- ldrb r0, [r2]
- cmp r0, 0
- bne _08065664
-_0806565C:
- movs r0, 0
- b _08065682
- .align 2, 0
-_08065660: .4byte 0x0202e828
-_08065664:
- cmp r0, r1
- beq _0806566C
- adds r2, 0x5
- b _08065656
-_0806566C:
- adds r2, 0x1
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- lsls r1, 8
- adds r0, r1
- ldrb r1, [r2, 0x2]
- lsls r1, 16
- adds r0, r1
- ldrb r1, [r2, 0x3]
- lsls r1, 24
- adds r0, r1
-_08065682:
- pop {r1}
- bx r1
- thumb_func_end mapheader_get_tagged_pointer
-
- thumb_func_start mapheader_run_script_by_tag
-mapheader_run_script_by_tag: @ 8065688
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl mapheader_get_tagged_pointer
- cmp r0, 0
- beq _0806569A
- bl script_env_2_execute_new_script
-_0806569A:
- pop {r0}
- bx r0
- thumb_func_end mapheader_run_script_by_tag
-
- thumb_func_start mapheader_get_first_match_from_tagged_ptr_list
-mapheader_get_first_match_from_tagged_ptr_list: @ 80656A0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- bl mapheader_get_tagged_pointer
- adds r6, r0, 0
- cmp r6, 0
- beq _080656BC
-_080656B0:
- ldrb r1, [r6]
- ldrb r0, [r6, 0x1]
- lsls r0, 8
- orrs r1, r0
- cmp r1, 0
- bne _080656C0
-_080656BC:
- movs r0, 0
- b _080656FA
-_080656C0:
- adds r6, 0x2
- ldrb r5, [r6]
- ldrb r0, [r6, 0x1]
- lsls r0, 8
- orrs r5, r0
- adds r6, 0x2
- adds r0, r1, 0
- bl VarGet
- adds r4, r0, 0
- adds r0, r5, 0
- bl VarGet
- lsls r4, 16
- lsls r0, 16
- cmp r4, r0
- beq _080656E6
- adds r6, 0x4
- b _080656B0
-_080656E6:
- ldrb r0, [r6]
- ldrb r1, [r6, 0x1]
- lsls r1, 8
- adds r0, r1
- ldrb r1, [r6, 0x2]
- lsls r1, 16
- adds r0, r1
- ldrb r1, [r6, 0x3]
- lsls r1, 24
- adds r0, r1
-_080656FA:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end mapheader_get_first_match_from_tagged_ptr_list
-
- thumb_func_start mapheader_run_script_with_tag_x1
-mapheader_run_script_with_tag_x1: @ 8065700
- push {lr}
- movs r0, 0x1
- bl mapheader_run_script_by_tag
- pop {r0}
- bx r0
- thumb_func_end mapheader_run_script_with_tag_x1
-
- thumb_func_start mapheader_run_script_with_tag_x3
-mapheader_run_script_with_tag_x3: @ 806570C
- push {lr}
- movs r0, 0x3
- bl mapheader_run_script_by_tag
- pop {r0}
- bx r0
- thumb_func_end mapheader_run_script_with_tag_x3
-
- thumb_func_start mapheader_run_script_with_tag_x5
-mapheader_run_script_with_tag_x5: @ 8065718
- push {lr}
- movs r0, 0x5
- bl mapheader_run_script_by_tag
- pop {r0}
- bx r0
- thumb_func_end mapheader_run_script_with_tag_x5
-
- thumb_func_start mapheader_run_script_with_tag_x6
-mapheader_run_script_with_tag_x6: @ 8065724
- push {lr}
- movs r0, 0x6
- bl mapheader_run_script_by_tag
- pop {r0}
- bx r0
- thumb_func_end mapheader_run_script_with_tag_x6
-
- thumb_func_start mapheader_run_first_tag2_script_list_match
-mapheader_run_first_tag2_script_list_match: @ 8065730
- push {lr}
- movs r0, 0x2
- bl mapheader_get_first_match_from_tagged_ptr_list
- cmp r0, 0
- beq _08065744
- bl script_env_1_execute_new_script
- movs r0, 0x1
- b _08065746
-_08065744:
- movs r0, 0
-_08065746:
- pop {r1}
- bx r1
- thumb_func_end mapheader_run_first_tag2_script_list_match
-
- thumb_func_start mapheader_run_first_tag4_script_list_match
-mapheader_run_first_tag4_script_list_match: @ 806574C
- push {lr}
- movs r0, 0x4
- bl mapheader_get_first_match_from_tagged_ptr_list
- cmp r0, 0
- beq _0806575C
- bl script_env_2_execute_new_script
-_0806575C:
- pop {r0}
- bx r0
- thumb_func_end mapheader_run_first_tag4_script_list_match
-
- thumb_func_start sub_8065760
-sub_8065760: @ 8065760
- push {r4,lr}
- movs r2, 0
- movs r1, 0
- ldr r4, _08065780
- ldr r3, _08065784
-_0806576A:
- adds r0, r1, r3
- ldrb r0, [r0]
- adds r2, r0
- adds r1, 0x1
- cmp r1, r4
- bls _0806576A
- adds r0, r2, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08065780: .4byte 0x000003e7
-_08065784: .4byte 0x02028dc8
- thumb_func_end sub_8065760
-
- thumb_func_start killram
-killram: @ 8065788
- push {lr}
- sub sp, 0x4
- movs r0, 0
- str r0, [sp]
- ldr r1, _080657A0
- ldr r2, _080657A4
- mov r0, sp
- bl CpuSet
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080657A0: .4byte 0x02028dc4
-_080657A4: .4byte 0x050000fb
- thumb_func_end killram
-
- thumb_func_start sub_80657A8
-sub_80657A8: @ 80657A8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r0
- ldr r0, [sp, 0x1C]
- lsls r1, 16
- lsrs r1, 16
- mov r8, r1
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r6, r3, 24
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080657F4
- bl killram
- ldr r0, _080657F8
- cmp r8, r0
- bhi _080657FC
- movs r0, 0x33
- strb r0, [r4]
- strb r7, [r4, 0x1]
- strb r6, [r4, 0x2]
- strb r5, [r4, 0x3]
- adds r0, r4, 0x4
- mov r1, r9
- mov r2, r8
- bl memcpy
- bl sub_8065760
- subs r1, r4, 0x4
- str r0, [r1]
- movs r0, 0x1
- b _080657FE
- .align 2, 0
-_080657F4: .4byte 0x02028dc8
-_080657F8: .4byte 0x000003e3
-_080657FC:
- movs r0, 0
-_080657FE:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80657A8
-
- thumb_func_start sub_806580C
-sub_806580C: @ 806580C
- push {r4-r6,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r4, _08065854
- ldr r6, _08065858
- movs r0, 0
- str r0, [r6]
- ldrb r0, [r4]
- cmp r0, 0x33
- bne _08065864
- ldrb r1, [r4, 0x1]
- ldr r0, _0806585C
- adds r2, r4, r0
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- cmp r1, r0
- bne _08065864
- ldrb r1, [r4, 0x2]
- movs r0, 0x5
- ldrsb r0, [r2, r0]
- cmp r1, r0
- bne _08065864
- ldrb r0, [r4, 0x3]
- cmp r0, r3
- bne _08065864
- bl sub_8065760
- subs r1, r4, 0x4
- ldr r1, [r1]
- cmp r0, r1
- bne _08065860
- str r5, [r6]
- adds r0, r4, 0x4
- b _08065866
- .align 2, 0
-_08065854: .4byte 0x02028dc8
-_08065858: .4byte 0x0202e8ac
-_0806585C: .4byte 0xffffc96c
-_08065860:
- bl killram
-_08065864:
- adds r0, r5, 0
-_08065866:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_806580C
-
- thumb_func_start s00_nop
-s00_nop: @ 806586C
- movs r0, 0
- bx lr
- thumb_func_end s00_nop
-
- thumb_func_start sub_8065870
-sub_8065870: @ 8065870
- movs r0, 0
- bx lr
- thumb_func_end sub_8065870
-
- thumb_func_start s02_end
-s02_end: @ 8065874
- push {lr}
- bl script_stop
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s02_end
-
- thumb_func_start s24_execute_ASM_2
-s24_execute_ASM_2: @ 8065880
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_word
- adds r1, r0, 0
- adds r0, r4, 0
- bl script_setup_asm_script
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end s24_execute_ASM_2
-
- thumb_func_start sub_8065898
-sub_8065898: @ 8065898
- push {lr}
- bl script_read_halfword
- lsls r0, 16
- ldr r1, _080658B4
- lsrs r0, 14
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080658B4: .4byte gSpecials
- thumb_func_end sub_8065898
-
- thumb_func_start sub_80658B8
-sub_80658B8: @ 80658B8
- push {r4-r6,lr}
- adds r5, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r6, r0, 0
- ldr r4, _080658E8
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 14
- adds r0, r4
- ldr r0, [r0]
- bl _call_via_r0
- strh r0, [r6]
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_080658E8: .4byte gSpecials
- thumb_func_end sub_80658B8
-
- thumb_func_start sub_80658EC
-sub_80658EC: @ 80658EC
- push {lr}
- bl script_read_word
- bl _call_via_r0
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80658EC
-
- thumb_func_start sub_80658FC
-sub_80658FC: @ 80658FC
- push {lr}
- bl sub_80655F0
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_80658FC
-
- thumb_func_start s05_goto
-s05_goto: @ 8065908
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_word
- adds r1, r0, 0
- adds r0, r4, 0
- bl script_jump
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end s05_goto
-
- thumb_func_start s03_return
-s03_return: @ 8065920
- push {lr}
- bl script_return
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s03_return
-
- thumb_func_start s04_call
-s04_call: @ 806592C
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_word
- adds r1, r0, 0
- adds r0, r4, 0
- bl script_call
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end s04_call
-
- thumb_func_start s06_if_jump
-s06_if_jump: @ 8065944
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r4, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- adds r0, r5, 0
- bl script_read_word
- adds r2, r0, 0
- ldr r1, _0806597C
- lsls r0, r4, 1
- adds r0, r4
- ldrb r3, [r5, 0x2]
- adds r0, r3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08065972
- adds r0, r5, 0
- adds r1, r2, 0
- bl script_jump
-_08065972:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806597C: .4byte gUnknown_083762DC
- thumb_func_end s06_if_jump
-
- thumb_func_start s07_if_call
-s07_if_call: @ 8065980
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r4, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- adds r0, r5, 0
- bl script_read_word
- adds r2, r0, 0
- ldr r1, _080659B8
- lsls r0, r4, 1
- adds r0, r4
- ldrb r3, [r5, 0x2]
- adds r0, r3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080659AE
- adds r0, r5, 0
- adds r1, r2, 0
- bl script_call
-_080659AE:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080659B8: .4byte gUnknown_083762DC
- thumb_func_end s07_if_call
-
- thumb_func_start sB8_set_virtual_address
-sB8_set_virtual_address: @ 80659BC
- push {r4,lr}
- ldr r4, [r0, 0x8]
- subs r4, 0x1
- bl script_read_word
- ldr r1, _080659D4
- subs r0, r4
- str r0, [r1]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080659D4: .4byte 0x0202e8b0
- thumb_func_end sB8_set_virtual_address
-
- thumb_func_start sB9_virtual_jump
-sB9_virtual_jump: @ 80659D8
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_word
- adds r1, r0, 0
- ldr r0, _080659F8
- ldr r0, [r0]
- subs r1, r0
- adds r0, r4, 0
- bl script_jump
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080659F8: .4byte 0x0202e8b0
- thumb_func_end sB9_virtual_jump
-
- thumb_func_start sBA_virtual_call
-sBA_virtual_call: @ 80659FC
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_word
- adds r1, r0, 0
- ldr r0, _08065A1C
- ldr r0, [r0]
- subs r1, r0
- adds r0, r4, 0
- bl script_call
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08065A1C: .4byte 0x0202e8b0
- thumb_func_end sBA_virtual_call
-
- thumb_func_start sBB_virtual_if_jump
-sBB_virtual_if_jump: @ 8065A20
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r4, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- adds r0, r5, 0
- bl script_read_word
- ldr r1, _08065A5C
- ldr r1, [r1]
- subs r2, r0, r1
- ldr r1, _08065A60
- lsls r0, r4, 1
- adds r0, r4
- ldrb r3, [r5, 0x2]
- adds r0, r3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08065A52
- adds r0, r5, 0
- adds r1, r2, 0
- bl script_jump
-_08065A52:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08065A5C: .4byte 0x0202e8b0
-_08065A60: .4byte gUnknown_083762DC
- thumb_func_end sBB_virtual_if_jump
-
- thumb_func_start sBC_virtual_if_call
-sBC_virtual_if_call: @ 8065A64
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r4, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- adds r0, r5, 0
- bl script_read_word
- ldr r1, _08065AA0
- ldr r1, [r1]
- subs r2, r0, r1
- ldr r1, _08065AA4
- lsls r0, r4, 1
- adds r0, r4
- ldrb r3, [r5, 0x2]
- adds r0, r3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08065A96
- adds r0, r5, 0
- adds r1, r2, 0
- bl script_call
-_08065A96:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08065AA0: .4byte 0x0202e8b0
-_08065AA4: .4byte gUnknown_083762DC
- thumb_func_end sBC_virtual_if_call
-
- thumb_func_start s08_jumpstd
-s08_jumpstd: @ 8065AA8
- push {lr}
- adds r2, r0, 0
- ldr r0, [r2, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r2, 0x8]
- lsls r1, 2
- ldr r0, _08065AD0
- adds r1, r0
- ldr r0, _08065AD4
- cmp r1, r0
- bcs _08065AC8
- ldr r1, [r1]
- adds r0, r2, 0
- bl script_jump
-_08065AC8:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08065AD0: .4byte gStdScripts
-_08065AD4: .4byte gStdScripts_End
- thumb_func_end s08_jumpstd
-
- thumb_func_start s09_callstd
-s09_callstd: @ 8065AD8
- push {lr}
- adds r2, r0, 0
- ldr r0, [r2, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r2, 0x8]
- lsls r1, 2
- ldr r0, _08065B00
- adds r1, r0
- ldr r0, _08065B04
- cmp r1, r0
- bcs _08065AF8
- ldr r1, [r1]
- adds r0, r2, 0
- bl script_call
-_08065AF8:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08065B00: .4byte gStdScripts
-_08065B04: .4byte gStdScripts_End
- thumb_func_end s09_callstd
-
- thumb_func_start s0A_jumpstd_if
-s0A_jumpstd_if: @ 8065B08
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, [r3, 0x8]
- ldrb r2, [r0]
- adds r0, 0x1
- str r0, [r3, 0x8]
- ldrb r4, [r0]
- adds r0, 0x1
- str r0, [r3, 0x8]
- ldr r1, _08065B48
- lsls r0, r2, 1
- adds r0, r2
- ldrb r2, [r3, 0x2]
- adds r0, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08065B40
- lsls r0, r4, 2
- ldr r1, _08065B4C
- adds r1, r0, r1
- ldr r0, _08065B50
- cmp r1, r0
- bcs _08065B40
- ldr r1, [r1]
- adds r0, r3, 0
- bl script_jump
-_08065B40:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08065B48: .4byte gUnknown_083762DC
-_08065B4C: .4byte gStdScripts
-_08065B50: .4byte gStdScripts_End
- thumb_func_end s0A_jumpstd_if
-
- thumb_func_start s0B_callstd_if
-s0B_callstd_if: @ 8065B54
- push {r4,lr}
- adds r3, r0, 0
- ldr r0, [r3, 0x8]
- ldrb r2, [r0]
- adds r0, 0x1
- str r0, [r3, 0x8]
- ldrb r4, [r0]
- adds r0, 0x1
- str r0, [r3, 0x8]
- ldr r1, _08065B94
- lsls r0, r2, 1
- adds r0, r2
- ldrb r2, [r3, 0x2]
- adds r0, r2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08065B8C
- lsls r0, r4, 2
- ldr r1, _08065B98
- adds r1, r0, r1
- ldr r0, _08065B9C
- cmp r1, r0
- bcs _08065B8C
- ldr r1, [r1]
- adds r0, r3, 0
- bl script_call
-_08065B8C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08065B94: .4byte gUnknown_083762DC
-_08065B98: .4byte gStdScripts
-_08065B9C: .4byte gStdScripts_End
- thumb_func_end s0B_callstd_if
-
- thumb_func_start s0C_restore_execution_after_sCF
-s0C_restore_execution_after_sCF: @ 8065BA0
- push {lr}
- ldr r1, _08065BB0
- ldr r1, [r1]
- bl script_jump
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08065BB0: .4byte 0x0202e8ac
- thumb_func_end s0C_restore_execution_after_sCF
-
- thumb_func_start s0D_endscript_killram
-s0D_endscript_killram: @ 8065BB4
- push {r4,lr}
- adds r4, r0, 0
- bl killram
- adds r0, r4, 0
- bl script_stop
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end s0D_endscript_killram
-
- thumb_func_start s0E_set_byte
-s0E_set_byte: @ 8065BCC
- push {lr}
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- adds r0, r2, 0
- bl sub_8126160
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s0E_set_byte
-
- thumb_func_start s0F_u32_var_to_const
-s0F_u32_var_to_const: @ 8065BE4
- 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 script_read_word
- lsls r5, 2
- adds r4, 0x64
- adds r4, r5
- str r0, [r4]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end s0F_u32_var_to_const
-
- thumb_func_start s12_u32_var_to_ptr
-s12_u32_var_to_ptr: @ 8065C08
- 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 script_read_word
- lsls r5, 2
- adds r4, 0x64
- adds r4, r5
- ldrb r0, [r0]
- str r0, [r4]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end s12_u32_var_to_ptr
-
- thumb_func_start s11_u8_ptr_to_const
-s11_u8_ptr_to_const: @ 8065C2C
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl script_read_word
- strb r4, [r0]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end s11_u8_ptr_to_const
-
- thumb_func_start sub_8065C44
-sub_8065C44: @ 8065C44
- ldr r1, [r0, 0x8]
- ldrb r3, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- lsls r3, 2
- adds r2, r0, 0
- adds r2, 0x64
- adds r2, r3
- ldrb r3, [r1]
- str r3, [r2]
- adds r1, 0x1
- str r1, [r0, 0x8]
- movs r0, 0
- bx lr
- thumb_func_end sub_8065C44
-
- thumb_func_start s13_u8_var_to_ptr
-s13_u8_var_to_ptr: @ 8065C60
- 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 script_read_word
- lsls r5, 2
- adds r4, 0x64
- adds r4, r5
- ldr r1, [r4]
- strb r1, [r0]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end s13_u8_var_to_ptr
-
- thumb_func_start s14_u32_var_to_var
-s14_u32_var_to_var: @ 8065C84
- ldr r1, [r0, 0x8]
- ldrb r3, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- lsls r3, 2
- adds r0, 0x64
- adds r3, r0, r3
- lsls r2, 2
- adds r0, r2
- ldr r0, [r0]
- str r0, [r3]
- movs r0, 0
- bx lr
- thumb_func_end s14_u32_var_to_var
-
- thumb_func_start s15_u8_ptr_to_ptr
-s15_u8_ptr_to_ptr: @ 8065CA4
- push {r4,r5,lr}
- adds r4, r0, 0
- bl script_read_word
- adds r5, r0, 0
- adds r0, r4, 0
- bl script_read_word
- ldrb r0, [r0]
- strb r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end s15_u8_ptr_to_ptr
-
- thumb_func_start s16_u16_gvar_to_const
-s16_u16_gvar_to_const: @ 8065CC0
- push {r4,r5,lr}
- adds r5, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r4, r0, 0
- adds r0, r5, 0
- bl script_read_halfword
- strh r0, [r4]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end s16_u16_gvar_to_const
-
- thumb_func_start s19_u16_gvar_gvar
-s19_u16_gvar_gvar: @ 8065CE4
- push {r4,r5,lr}
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r5, r0, 0
- adds r0, r4, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- ldrh r0, [r0]
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end s19_u16_gvar_gvar
-
- thumb_func_start s1A_u16_gvar_gvar
-s1A_u16_gvar_gvar: @ 8065D10
- push {r4,r5,lr}
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r5, r0, 0
- adds r0, r4, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end s1A_u16_gvar_gvar
-
- thumb_func_start compare_012
-compare_012: @ 8065D3C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r1, 16
- cmp r0, r1
- bcs _08065D4E
- movs r0, 0
- b _08065D58
-_08065D4E:
- cmp r0, r1
- beq _08065D56
- movs r0, 0x2
- b _08065D58
-_08065D56:
- movs r0, 0x1
-_08065D58:
- pop {r1}
- bx r1
- thumb_func_end compare_012
-
- thumb_func_start s1B_cmp_u8_var_var
-s1B_cmp_u8_var_var: @ 8065D5C
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, [r4, 0x8]
- ldrb r0, [r2]
- lsls r0, 2
- adds r3, r4, 0
- adds r3, 0x64
- adds r0, r3, r0
- ldrb r0, [r0]
- adds r2, 0x1
- str r2, [r4, 0x8]
- ldrb r1, [r2]
- lsls r1, 2
- adds r3, r1
- ldrb r1, [r3]
- adds r2, 0x1
- str r2, [r4, 0x8]
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end s1B_cmp_u8_var_var
-
- thumb_func_start s1C_cmp_u8_var_const
-s1C_cmp_u8_var_const: @ 8065D8C
- push {r4,lr}
- adds r4, r0, 0
- ldr r2, [r4, 0x8]
- ldrb r1, [r2]
- lsls r1, 2
- adds r0, 0x64
- adds r0, r1
- ldrb r0, [r0]
- adds r2, 0x1
- str r2, [r4, 0x8]
- ldrb r1, [r2]
- adds r2, 0x1
- str r2, [r4, 0x8]
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end s1C_cmp_u8_var_const
-
- thumb_func_start s1D_cmp_u8_var_ptr
-s1D_cmp_u8_var_ptr: @ 8065DB4
- push {r4,r5,lr}
- adds r4, r0, 0
- ldr r2, [r4, 0x8]
- ldrb r1, [r2]
- lsls r1, 2
- adds r0, 0x64
- adds r0, r1
- ldrb r5, [r0]
- adds r2, 0x1
- str r2, [r4, 0x8]
- adds r0, r4, 0
- bl script_read_word
- ldrb r1, [r0]
- adds r0, r5, 0
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end s1D_cmp_u8_var_ptr
-
- thumb_func_start s1E_cmp_u8_ptr_var
-s1E_cmp_u8_ptr_var: @ 8065DE0
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_word
- ldrb r0, [r0]
- ldr r3, [r4, 0x8]
- ldrb r2, [r3]
- lsls r2, 2
- adds r1, r4, 0
- adds r1, 0x64
- adds r1, r2
- ldrb r1, [r1]
- adds r3, 0x1
- str r3, [r4, 0x8]
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end s1E_cmp_u8_ptr_var
-
- thumb_func_start s1F_cmp_u8_ptr_const
-s1F_cmp_u8_ptr_const: @ 8065E0C
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_word
- ldrb r0, [r0]
- ldr r2, [r4, 0x8]
- ldrb r1, [r2]
- adds r2, 0x1
- str r2, [r4, 0x8]
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end s1F_cmp_u8_ptr_const
-
- thumb_func_start s20_cmp_u8_ptr_ptr
-s20_cmp_u8_ptr_ptr: @ 8065E2C
- push {r4,r5,lr}
- adds r4, r0, 0
- bl script_read_word
- ldrb r5, [r0]
- adds r0, r4, 0
- bl script_read_word
- ldrb r1, [r0]
- adds r0, r5, 0
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end s20_cmp_u8_ptr_ptr
-
- thumb_func_start s21_cmp_u16_gvar_const
-s21_cmp_u16_gvar_const: @ 8065E50
- push {r4,r5,lr}
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- ldrh r5, [r0]
- adds r0, r4, 0
- bl script_read_halfword
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end s21_cmp_u16_gvar_const
-
- thumb_func_start s22_cmp_u16_gvar_gvar
-s22_cmp_u16_gvar_gvar: @ 8065E80
- push {r4,r5,lr}
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r5, r0, 0
- adds r0, r4, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- ldrh r2, [r5]
- ldrh r1, [r0]
- adds r0, r2, 0
- bl compare_012
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end s22_cmp_u16_gvar_gvar
-
- thumb_func_start s17_u16_gvar_add_const
-s17_u16_gvar_add_const: @ 8065EB4
- push {r4,r5,lr}
- adds r5, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r4, r0, 0
- adds r0, r5, 0
- bl script_read_halfword
- ldrh r1, [r4]
- adds r0, r1
- strh r0, [r4]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end s17_u16_gvar_add_const
-
- thumb_func_start sub_8065EDC
-sub_8065EDC: @ 8065EDC
- push {r4,r5,lr}
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r5, r0, 0
- adds r0, r4, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldrh r1, [r5]
- subs r1, r0
- strh r1, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8065EDC
-
- thumb_func_start s8F_get_random_val
-s8F_get_random_val: @ 8065F0C
- push {r4,r5,lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r5, _08065F3C
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl __umodsi3
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08065F3C: .4byte 0x0202e8dc
- thumb_func_end s8F_get_random_val
-
- thumb_func_start sub_8065F40
-sub_8065F40: @ 8065F40
- push {r4,r5,lr}
- adds r5, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- ldr r5, _08065F80
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_80A9424
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08065F80: .4byte 0x0202e8dc
- thumb_func_end sub_8065F40
-
- thumb_func_start sub_8065F84
-sub_8065F84: @ 8065F84
- push {r4,r5,lr}
- adds r5, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- ldr r5, _08065FC4
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_80A9538
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08065FC4: .4byte 0x0202e8dc
- thumb_func_end sub_8065F84
-
- thumb_func_start sub_8065FC8
-sub_8065FC8: @ 8065FC8
- push {r4,r5,lr}
- adds r5, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- ldr r5, _08066008
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_80A9344
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08066008: .4byte 0x0202e8dc
- thumb_func_end sub_8065FC8
-
- thumb_func_start sub_806600C
-sub_806600C: @ 806600C
- push {r4,r5,lr}
- adds r5, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- ldr r5, _0806604C
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_80A92D4
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806604C: .4byte 0x0202e8dc
- thumb_func_end sub_806600C
-
- thumb_func_start s48_get_item_type
-s48_get_item_type: @ 8066050
- push {r4,lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _08066078
- bl sub_80A9670
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08066078: .4byte 0x0202e8dc
- thumb_func_end s48_get_item_type
-
- thumb_func_start sub_806607C
-sub_806607C: @ 806607C
- push {r4,r5,lr}
- adds r5, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r5, _080660BC
- adds r0, r4, 0
- bl sub_80A9760
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080660BC: .4byte 0x0202e8dc
- thumb_func_end sub_806607C
-
- thumb_func_start sub_80660C0
-sub_80660C0: @ 80660C0
- push {r4,r5,lr}
- adds r5, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- ldr r5, _08066100
- adds r0, r4, 0
- bl sub_80A9718
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08066100: .4byte 0x0202e8dc
- thumb_func_end sub_80660C0
-
- thumb_func_start sub_8066104
-sub_8066104: @ 8066104
- push {r4,lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r4, _0806612C
- lsls r0, 24
- lsrs r0, 24
- bl IsThereStorageSpaceForDecoration
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806612C: .4byte 0x0202e8dc
- thumb_func_end sub_8066104
-
- thumb_func_start sub_8066130
-sub_8066130: @ 8066130
- push {r4,lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r4, _08066158
- lsls r0, 24
- lsrs r0, 24
- bl sub_81340A8
- lsls r0, 24
- asrs r0, 24
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08066158: .4byte 0x0202e8dc
- thumb_func_end sub_8066130
-
- thumb_func_start sub_806615C
-sub_806615C: @ 806615C
- push {r4,lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r4, _08066184
- lsls r0, 24
- lsrs r0, 24
- bl sub_8134074
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08066184: .4byte 0x0202e8dc
- thumb_func_end sub_806615C
-
- thumb_func_start sub_8066188
-sub_8066188: @ 8066188
- push {r4,lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r4, _080661B0
- lsls r0, 24
- lsrs r0, 24
- bl sub_8133FE4
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080661B0: .4byte 0x0202e8dc
- thumb_func_end sub_8066188
-
- thumb_func_start s29_flag_set
-s29_flag_set: @ 80661B4
- push {lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl FlagSet
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s29_flag_set
-
- thumb_func_start s2A_flag_clear
-s2A_flag_clear: @ 80661C8
- push {lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl FlagReset
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s2A_flag_clear
-
- thumb_func_start s2B_flag_check
-s2B_flag_check: @ 80661DC
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end s2B_flag_check
-
- thumb_func_start sC3_unknown
-sC3_unknown: @ 80661F8
- push {lr}
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- adds r0, r2, 0
- bl sav12_xor_increment
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sC3_unknown
-
- thumb_func_start s9A_unknown
-s9A_unknown: @ 8066210
- push {lr}
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- adds r0, r2, 0
- bl sub_8081594
- bl sub_80655F0
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end s9A_unknown
-
- thumb_func_start sub_806622C
-sub_806622C: @ 806622C
- push {lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl sub_8053CE4
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806622C
-
- thumb_func_start sub_8066248
-sub_8066248: @ 8066248
- push {lr}
- ldr r0, _0806625C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08066260
- movs r0, 0
- b _08066262
- .align 2, 0
-_0806625C: .4byte 0x0202f388
-_08066260:
- movs r0, 0x1
-_08066262:
- pop {r1}
- bx r1
- thumb_func_end sub_8066248
-
- thumb_func_start s97_screen_special_effect
-s97_screen_special_effect: @ 8066268
- push {r4,lr}
- adds r4, r0, 0
- ldr r1, [r4, 0x8]
- ldrb r0, [r1]
- adds r1, 0x1
- str r1, [r4, 0x8]
- movs r1, 0
- bl fade_screen
- ldr r1, _0806628C
- adds r0, r4, 0
- bl script_setup_asm_script
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806628C: .4byte sub_8066248
- thumb_func_end s97_screen_special_effect
-
- thumb_func_start sub_8066290
-sub_8066290: @ 8066290
- 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 fade_screen
- ldr r1, _080662B8
- adds r0, r4, 0
- bl script_setup_asm_script
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080662B8: .4byte sub_8066248
- thumb_func_end sub_8066290
-
- thumb_func_start s28_pause_asm
-s28_pause_asm: @ 80662BC
- push {lr}
- ldr r1, _080662D0
- ldrh r0, [r1]
- subs r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- cmp r0, 0
- beq _080662D4
- movs r0, 0
- b _080662D6
- .align 2, 0
-_080662D0: .4byte 0x0202e8b4
-_080662D4:
- movs r0, 0x1
-_080662D6:
- pop {r1}
- bx r1
- thumb_func_end s28_pause_asm
-
- thumb_func_start s28_pause
-s28_pause: @ 80662DC
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_halfword
- ldr r1, _080662F8
- strh r0, [r1]
- ldr r1, _080662FC
- adds r0, r4, 0
- bl script_setup_asm_script
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080662F8: .4byte 0x0202e8b4
-_080662FC: .4byte s28_pause_asm
- thumb_func_end s28_pause
-
- thumb_func_start s2C_unknown
-s2C_unknown: @ 8066300
- push {r4,r5,lr}
- adds r5, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl RtcInitLocalTimeOffset
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end s2C_unknown
-
- thumb_func_start s2D_unknown
-s2D_unknown: @ 8066338
- push {lr}
- bl InTrainerHill
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s2D_unknown
-
- thumb_func_start s2E_unknown
-s2E_unknown: @ 8066344
- push {lr}
- bl RtcCalcLocalTime
- ldr r2, _0806636C
- ldr r1, _08066370
- movs r0, 0x2
- ldrsb r0, [r1, r0]
- strh r0, [r2]
- ldr r2, _08066374
- movs r0, 0x3
- ldrsb r0, [r1, r0]
- strh r0, [r2]
- ldr r2, _08066378
- movs r0, 0x4
- ldrsb r0, [r1, r0]
- strh r0, [r2]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806636C: .4byte 0x0202e8c4
-_08066370: .4byte 0x03004038
-_08066374: .4byte 0x0202e8c6
-_08066378: .4byte 0x0202e8c8
- thumb_func_end s2E_unknown
-
- thumb_func_start sA4_set_weather_data
-sA4_set_weather_data: @ 806637C
- push {lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl sub_80806B4
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sA4_set_weather_data
-
- thumb_func_start sA3_set_standard_weather_data
-sA3_set_standard_weather_data: @ 8066398
- push {lr}
- bl sub_80806E4
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sA3_set_standard_weather_data
-
- thumb_func_start sub_80663A4
-sub_80663A4: @ 80663A4
- push {lr}
- bl sub_808073C
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80663A4
-
- thumb_func_start sA6_activate_per_step_callback_eg_ash
-sA6_activate_per_step_callback_eg_ash: @ 80663B0
- push {lr}
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- adds r0, r2, 0
- bl activate_per_step_callback
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sA6_activate_per_step_callback_eg_ash
-
- thumb_func_start sub_80663C8
-sub_80663C8: @ 80663C8
- push {lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl sub_8053D14
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80663C8
-
- thumb_func_start s39_warp_sfx
-s39_warp_sfx: @ 80663E4
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r0, r9
- adds r2, r6, 0
- adds r3, r4, 0
- bl warp1_set
- bl sub_8080E88
- bl player_avatar_init_params_reset
- movs r0, 0x1
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end s39_warp_sfx
-
- thumb_func_start s3A_warp_new_music
-s3A_warp_new_music: @ 806646C
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r0, r9
- adds r2, r6, 0
- adds r3, r4, 0
- bl warp1_set
- bl sp13E_warp_to_last_warp
- bl player_avatar_init_params_reset
- movs r0, 0x1
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end s3A_warp_new_music
-
- thumb_func_start s3B_warp_keep_music
-s3B_warp_keep_music: @ 80664F4
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r0, r9
- adds r2, r6, 0
- adds r3, r4, 0
- bl warp1_set
- bl sub_8080EF0
- bl player_avatar_init_params_reset
- movs r0, 0x1
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end s3B_warp_keep_music
-
- thumb_func_start sub_806657C
-sub_806657C: @ 806657C
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r1, [r0, 0x8]
- ldrb r6, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldrb r5, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- mov r4, sp
- adds r4, 0x6
- add r0, sp, 0x4
- adds r1, r4, 0
- bl PlayerGetDestCoords
- cmp r6, 0xFF
- bne _080665BA
- cmp r5, 0xFF
- bne _080665BA
- add r0, sp, 0x4
- ldrh r0, [r0]
- subs r0, 0x7
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r4]
- subs r1, 0x7
- lsls r1, 16
- asrs r1, 16
- bl sub_8053720
- b _080665DE
-_080665BA:
- lsls r0, r6, 24
- asrs r0, 24
- lsls r1, r5, 24
- asrs r1, 24
- movs r2, 0x1
- negs r2, r2
- add r3, sp, 0x4
- ldrb r3, [r3]
- subs r3, 0x7
- lsls r3, 24
- asrs r3, 24
- ldrb r4, [r4]
- subs r4, 0x7
- lsls r4, 24
- asrs r4, 24
- str r4, [sp]
- bl warp1_set
-_080665DE:
- bl sp13F_fall_to_last_warp
- bl player_avatar_init_params_reset
- movs r0, 0x1
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_806657C
-
- thumb_func_start s3D_warp_v4
-s3D_warp_v4: @ 80665F0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r0, r9
- adds r2, r6, 0
- adds r3, r4, 0
- bl warp1_set
- bl sub_8080F68
- bl player_avatar_init_params_reset
- movs r0, 0x1
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end s3D_warp_v4
-
- thumb_func_start s3E_set_new_map
-s3E_set_new_map: @ 8066678
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r0, r9
- adds r2, r6, 0
- adds r3, r4, 0
- bl warp1_set
- 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 s3E_set_new_map
-
- thumb_func_start s3F_set_new_map_DMA
-s3F_set_new_map_DMA: @ 80666F8
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x8
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- str r4, [sp]
- lsls r0, 24
- asrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0
- mov r1, r9
- mov r2, r8
- adds r3, r6, 0
- bl saved_warp2_set_2
- movs r0, 0
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end s3F_set_new_map_DMA
-
- thumb_func_start sub_806677C
-sub_806677C: @ 806677C
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r0, r9
- adds r2, r6, 0
- adds r3, r4, 0
- bl sub_8053690
- 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_806677C
-
- thumb_func_start sub_80667FC
-sub_80667FC: @ 80667FC
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r0, r9
- adds r2, r6, 0
- adds r3, r4, 0
- bl sub_80536E4
- 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_80667FC
-
- thumb_func_start sC4_unknown
-sC4_unknown: @ 806687C
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r1, r0, 0x1
- str r1, [r5, 0x8]
- ldrb r6, [r0, 0x1]
- adds r1, 0x1
- str r1, [r5, 0x8]
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- mov r1, r9
- lsls r1, 24
- asrs r1, 24
- mov r9, r1
- mov r1, r8
- lsls r1, 24
- asrs r1, 24
- mov r8, r1
- lsls r6, 24
- asrs r6, 24
- lsls r4, 24
- asrs r4, 24
- lsls r0, 24
- asrs r0, 24
- str r0, [sp]
- mov r0, r9
- adds r2, r6, 0
- adds r3, r4, 0
- bl sub_805363C
- 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 sC4_unknown
-
- thumb_func_start sub_80668FC
-sub_80668FC: @ 80668FC
- push {r4,r5,lr}
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r5, r0, 0
- adds r0, r4, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- ldr r2, _08066930
- ldrh r1, [r2]
- strh r1, [r5]
- ldrh r1, [r2, 0x2]
- strh r1, [r0]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08066930: .4byte 0x02025734
- thumb_func_end sub_80668FC
-
- thumb_func_start s43_get_player_party_count
-s43_get_player_party_count: @ 8066934
- push {r4,lr}
- ldr r4, _0806694C
- bl calc_player_party_count
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806694C: .4byte 0x0202e8dc
- thumb_func_end s43_get_player_party_count
-
- thumb_func_start s2F_music_play
-s2F_music_play: @ 8066950
- push {lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl audio_play
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s2F_music_play
-
- thumb_func_start s30_music_check_asm
-s30_music_check_asm: @ 8066964
- push {lr}
- bl mplay_has_finished_maybe
- lsls r0, 24
- cmp r0, 0
- beq _08066974
- movs r0, 0
- b _08066976
-_08066974:
- movs r0, 0x1
-_08066976:
- pop {r1}
- bx r1
- thumb_func_end s30_music_check_asm
-
- thumb_func_start sub_806697C
-sub_806697C: @ 806697C
- push {lr}
- ldr r1, _0806698C
- bl script_setup_asm_script
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_0806698C: .4byte s30_music_check_asm
- thumb_func_end sub_806697C
-
- thumb_func_start s31_fanfare_play
-s31_fanfare_play: @ 8066990
- push {lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl fanfare_play
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s31_fanfare_play
-
- thumb_func_start s32_fanfare_wait_asm
-s32_fanfare_wait_asm: @ 80669A4
- push {lr}
- bl task_is_not_running_overworld_fanfare
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end s32_fanfare_wait_asm
-
- thumb_func_start sub_80669B4
-sub_80669B4: @ 80669B4
- push {lr}
- ldr r1, _080669C4
- bl script_setup_asm_script
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_080669C4: .4byte s32_fanfare_wait_asm
- thumb_func_end sub_80669B4
-
- thumb_func_start s33_play_music
-s33_play_music: @ 80669C8
- push {r4,r5,lr}
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r2, r0, 16
- adds r5, r2, 0
- ldr r0, [r4, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- cmp r1, 0x1
- bne _080669E8
- adds r0, r2, 0
- bl sav1_set_battle_music_maybe
-_080669E8:
- adds r0, r5, 0
- bl current_map_music_set
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end s33_play_music
-
- thumb_func_start s34_unknown
-s34_unknown: @ 80669F8
- push {lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl sav1_set_battle_music_maybe
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s34_unknown
-
- thumb_func_start s35_fade_to_default
-s35_fade_to_default: @ 8066A0C
- push {lr}
- bl sub_8053F84
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s35_fade_to_default
-
- thumb_func_start s36_fade_to_music
-s36_fade_to_music: @ 8066A18
- push {lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl sub_8053FB0
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s36_fade_to_music
-
- thumb_func_start s37_fadeout
-s37_fadeout: @ 8066A2C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- cmp r1, 0
- beq _08066A46
- lsls r0, r1, 26
- lsrs r0, 24
- bl sub_8074FB8
- b _08066A4C
-_08066A46:
- movs r0, 0x4
- bl sub_8074FB8
-_08066A4C:
- ldr r1, _08066A5C
- adds r0, r4, 0
- bl script_setup_asm_script
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08066A5C: .4byte sub_8074FD0
- thumb_func_end s37_fadeout
-
- thumb_func_start s38_fadein
-s38_fadein: @ 8066A60
- push {lr}
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- cmp r2, 0
- beq _08066A78
- lsls r0, r2, 26
- lsrs r0, 24
- bl sub_8074FF8
- b _08066A7E
-_08066A78:
- movs r0, 0x4
- bl sub_8074FF8
-_08066A7E:
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s38_fadein
-
- thumb_func_start s4F_execute_movement
-s4F_execute_movement: @ 8066A84
- push {r4,r5,lr}
- adds r5, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl script_read_word
- adds r3, r0, 0
- lsls r0, r4, 24
- lsrs r0, 24
- ldr r2, _08066ABC
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl exec_movement
- ldr r0, _08066AC0
- strh r4, [r0]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08066ABC: .4byte 0x02025734
-_08066AC0: .4byte 0x0202e8b6
- thumb_func_end s4F_execute_movement
-
- thumb_func_start s50_execute_movement_remote
-s50_execute_movement_remote: @ 8066AC4
- push {r4,r5,lr}
- adds r5, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl script_read_word
- adds r3, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r2, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- lsls r0, r4, 24
- lsrs r0, 24
- bl exec_movement
- ldr r0, _08066B04
- strh r4, [r0]
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08066B04: .4byte 0x0202e8b6
- thumb_func_end s50_execute_movement_remote
-
- thumb_func_start s51a_0806B288
-s51a_0806B288: @ 8066B08
- push {lr}
- ldr r0, _08066B24
- ldrb r0, [r0]
- ldr r1, _08066B28
- ldrb r1, [r1]
- ldr r2, _08066B2C
- ldrb r2, [r2]
- bl sub_80A212C
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_08066B24: .4byte 0x0202e8b6
-_08066B28: .4byte 0x0202e8ba
-_08066B2C: .4byte 0x0202e8b8
- thumb_func_end s51a_0806B288
-
- thumb_func_start s51_waitmove
-s51_waitmove: @ 8066B30
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _08066B4C
- ldr r0, _08066B70
- strh r1, [r0]
-_08066B4C:
- ldr r1, _08066B74
- ldr r2, _08066B78
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- strh r0, [r1]
- ldr r1, _08066B7C
- movs r0, 0x5
- ldrsb r0, [r2, r0]
- strh r0, [r1]
- ldr r1, _08066B80
- adds r0, r4, 0
- bl script_setup_asm_script
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08066B70: .4byte 0x0202e8b6
-_08066B74: .4byte 0x0202e8b8
-_08066B78: .4byte 0x02025734
-_08066B7C: .4byte 0x0202e8ba
-_08066B80: .4byte s51a_0806B288
- thumb_func_end s51_waitmove
-
- thumb_func_start s52_waitmove_remote
-s52_waitmove_remote: @ 8066B84
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _08066BA0
- ldr r0, _08066BC8
- strh r1, [r0]
-_08066BA0:
- ldr r0, [r4, 0x8]
- ldrb r2, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- ldr r0, _08066BCC
- strh r2, [r0]
- ldr r0, _08066BD0
- strh r1, [r0]
- ldr r1, _08066BD4
- adds r0, r4, 0
- bl script_setup_asm_script
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08066BC8: .4byte 0x0202e8b6
-_08066BCC: .4byte 0x0202e8b8
-_08066BD0: .4byte 0x0202e8ba
-_08066BD4: .4byte s51a_0806B288
- thumb_func_end s52_waitmove_remote
-
- thumb_func_start sub_8066BD8
-sub_8066BD8: @ 8066BD8
- push {lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08066BFC
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl RemoveFieldObjectByLocalIdAndMap
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08066BFC: .4byte 0x02025734
- thumb_func_end sub_8066BD8
-
- thumb_func_start s54_hide_sprite_set_coords
-s54_hide_sprite_set_coords: @ 8066C00
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r3, [r4, 0x8]
- ldrb r2, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- ldrb r1, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- lsls r0, 24
- lsrs r0, 24
- bl RemoveFieldObjectByLocalIdAndMap
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end s54_hide_sprite_set_coords
-
- thumb_func_start sub_8066C30
-sub_8066C30: @ 8066C30
- push {lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08066C54
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl show_sprite
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08066C54: .4byte 0x02025734
- thumb_func_end sub_8066C30
-
- thumb_func_start s56_show_sprite_set_coords
-s56_show_sprite_set_coords: @ 8066C58
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r3, [r4, 0x8]
- ldrb r2, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- ldrb r1, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- lsls r0, 24
- lsrs r0, 24
- bl show_sprite
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end s56_show_sprite_set_coords
-
- thumb_func_start s57_move_sprites
-s57_move_sprites: @ 8066C88
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r5, 24
- lsrs r5, 24
- ldr r2, _08066CE8
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- lsls r4, 16
- asrs r4, 16
- lsls r0, 16
- asrs r0, 16
- str r0, [sp]
- adds r0, r5, 0
- adds r3, r4, 0
- bl sub_805C0F8
- movs r0, 0
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08066CE8: .4byte 0x02025734
- thumb_func_end s57_move_sprites
-
- thumb_func_start s63_new_sprite_location_permanent
-s63_new_sprite_location_permanent: @ 8066CEC
- push {r4-r6,lr}
- adds r6, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r2, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 16
- asrs r4, 16
- lsls r2, 16
- asrs r2, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl update_saveblock1_field_object_coords
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end s63_new_sprite_location_permanent
-
- thumb_func_start s64_set_sprite_top_left_corner
-s64_set_sprite_top_left_corner: @ 8066D44
- push {lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08066D68
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl sub_805C78C
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08066D68: .4byte 0x02025734
- thumb_func_end s64_set_sprite_top_left_corner
-
- thumb_func_start s58_npc_f1_clear_x20
-s58_npc_f1_clear_x20: @ 8066D6C
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r3, [r4, 0x8]
- ldrb r2, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- ldrb r1, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0
- bl npc_by_local_id_and_map_set_field_1_bit_x20
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end s58_npc_f1_clear_x20
-
- thumb_func_start s59_npc_f1_set_x20
-s59_npc_f1_set_x20: @ 8066D9C
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r3, [r4, 0x8]
- ldrb r2, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- ldrb r1, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0x1
- bl npc_by_local_id_and_map_set_field_1_bit_x20
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end s59_npc_f1_set_x20
-
- thumb_func_start sA8_unknown
-sA8_unknown: @ 8066DCC
- push {r4,r5,lr}
- adds r5, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r3, [r5, 0x8]
- ldrb r2, [r3]
- adds r3, 0x1
- str r3, [r5, 0x8]
- ldrb r1, [r3]
- adds r4, r3, 0x1
- str r4, [r5, 0x8]
- ldrb r3, [r3, 0x1]
- adds r4, 0x1
- str r4, [r5, 0x8]
- lsls r0, 24
- lsrs r0, 24
- adds r3, 0x53
- lsls r3, 24
- lsrs r3, 24
- bl sub_805BCF0
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sA8_unknown
-
- thumb_func_start sA9_unknown
-sA9_unknown: @ 8066E08
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r3, [r4, 0x8]
- ldrb r2, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- ldrb r1, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- lsls r0, 24
- lsrs r0, 24
- bl sub_805BD48
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sA9_unknown
-
- thumb_func_start s5A_face_player
-s5A_face_player: @ 8066E38
- push {r4,lr}
- ldr r2, _08066E68
- ldr r0, _08066E6C
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r2
- ldrb r0, [r4]
- lsls r0, 31
- cmp r0, 0
- beq _08066E60
- bl player_get_direction_lower_nybble
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldObjectFaceOppositeDirection
-_08066E60:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08066E68: .4byte 0x030048a0
-_08066E6C: .4byte 0x03004ae0
- thumb_func_end s5A_face_player
-
- thumb_func_start s5B_npc_set_direction
-s5B_npc_set_direction: @ 8066E70
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r1, [r4, 0x8]
- ldrb r3, [r1]
- adds r1, 0x1
- str r1, [r4, 0x8]
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08066EA0
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl FieldObjectTurnByLocalIdAndMap
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08066EA0: .4byte 0x02025734
- thumb_func_end s5B_npc_set_direction
-
- thumb_func_start s65_set_sprite_behaviour
-s65_set_sprite_behaviour: @ 8066EA4
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r2, [r4, 0x8]
- ldrb r1, [r2]
- adds r2, 0x1
- str r2, [r4, 0x8]
- lsls r0, 24
- lsrs r0, 24
- bl update_saveblock1_field_object_movement_behavior
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end s65_set_sprite_behaviour
-
- thumb_func_start sAA_create_new_sprite
-sAA_create_new_sprite: @ 8066ECC
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x8
- adds r5, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r6, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r3, r0, 0
- ldr r0, [r5, 0x8]
- ldrb r2, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r5, 0x8]
- lsls r4, 16
- asrs r4, 16
- lsls r3, 16
- asrs r3, 16
- str r2, [sp]
- str r1, [sp, 0x4]
- mov r0, r8
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_805B410
- movs r0, 0
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sAA_create_new_sprite
-
- thumb_func_start sAB_unknown
-sAB_unknown: @ 8066F3C
- push {lr}
- ldr r2, [r0, 0x8]
- ldrb r3, [r2]
- adds r2, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r2]
- adds r2, 0x1
- str r2, [r0, 0x8]
- adds r0, r3, 0
- bl sub_8064990
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sAB_unknown
-
- thumb_func_start sub_8066F58
-sub_8066F58: @ 8066F58
- push {r4,lr}
- adds r4, r0, 0
- bl is_c1_link_related_active
- cmp r0, 0
- bne _08066F78
- bl sub_8064D20
- ldr r1, _08066F74
- adds r0, r4, 0
- bl script_setup_asm_script
- movs r0, 0x1
- b _08066F7A
- .align 2, 0
-_08066F74: .4byte sub_8064CFC
-_08066F78:
- movs r0, 0
-_08066F7A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8066F58
-
- thumb_func_start sub_8066F80
-sub_8066F80: @ 8066F80
- push {r4,lr}
- adds r4, r0, 0
- bl is_c1_link_related_active
- cmp r0, 0
- beq _08066F90
- movs r0, 0
- b _08066FCE
-_08066F90:
- ldr r2, _08066FB4
- ldr r0, _08066FB8
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _08066FC0
- bl sub_8064DD8
- ldr r1, _08066FBC
- adds r0, r4, 0
- bl script_setup_asm_script
- b _08066FCC
- .align 2, 0
-_08066FB4: .4byte 0x030048a0
-_08066FB8: .4byte 0x03004ae0
-_08066FBC: .4byte sub_8064DB4
-_08066FC0:
- bl sub_8064D20
- ldr r1, _08066FD4
- adds r0, r4, 0
- bl script_setup_asm_script
-_08066FCC:
- movs r0, 0x1
-_08066FCE:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08066FD4: .4byte sub_8064CFC
- thumb_func_end sub_8066F80
-
- thumb_func_start s6B_release
-s6B_release: @ 8066FD8
- push {lr}
- bl textbox_close
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, _0806700C
- adds r0, r1
- bl FieldObjectClearAnimIfSpecialAnimFinished
- bl sub_80A2178
- bl sub_806451C
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806700C: .4byte 0x030048a0
- thumb_func_end s6B_release
-
- thumb_func_start s6C_release_2
-s6C_release_2: @ 8067010
- push {r4,lr}
- bl textbox_close
- ldr r4, _08067060
- ldr r0, _08067064
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r4
- ldrb r0, [r1]
- lsls r0, 31
- cmp r0, 0
- beq _08067032
- adds r0, r1, 0
- bl FieldObjectClearAnimIfSpecialAnimFinished
-_08067032:
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetFieldObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl FieldObjectClearAnimIfSpecialAnimFinished
- bl sub_80A2178
- bl sub_806451C
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08067060: .4byte 0x030048a0
-_08067064: .4byte 0x03004ae0
- thumb_func_end s6C_release_2
-
- thumb_func_start s67_execute_box
-s67_execute_box: @ 8067068
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_word
- cmp r0, 0
- bne _08067076
- ldr r0, [r4, 0x64]
-_08067076:
- bl box_related_two__2
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end s67_execute_box
-
- thumb_func_start s9B_unknown
-s9B_unknown: @ 8067084
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_word
- cmp r0, 0
- bne _08067092
- ldr r0, [r4, 0x64]
-_08067092:
- bl box_related_two__3
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end s9B_unknown
-
- thumb_func_start sub_80670A0
-sub_80670A0: @ 80670A0
- push {lr}
- ldr r1, _080670B0
- bl script_setup_asm_script
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_080670B0: .4byte sub_8064C84
- thumb_func_end sub_80670A0
-
- thumb_func_start s68_close_box
-s68_close_box: @ 80670B4
- push {lr}
- bl textbox_close
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s68_close_box
-
- thumb_func_start sub_80670C0
-sub_80670C0: @ 80670C0
- push {lr}
- ldr r0, _080670DC
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080670E0
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080670E0
- movs r0, 0
- b _080670E2
- .align 2, 0
-_080670DC: .4byte 0x03001770
-_080670E0:
- movs r0, 0x1
-_080670E2:
- pop {r1}
- bx r1
- thumb_func_end sub_80670C0
-
- thumb_func_start sub_80670E8
-sub_80670E8: @ 80670E8
- push {lr}
- ldr r1, _080670F8
- bl script_setup_asm_script
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_080670F8: .4byte sub_80670C0
- thumb_func_end sub_80670E8
-
- thumb_func_start s6E_yes_no
-s6E_yes_no: @ 80670FC
- push {lr}
- ldr r2, [r0, 0x8]
- ldrb r3, [r2]
- adds r2, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r2]
- adds r2, 0x1
- str r2, [r0, 0x8]
- adds r0, r3, 0
- bl yes_no_box
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806711E
- movs r0, 0
- b _08067124
-_0806711E:
- bl sub_80655F0
- movs r0, 0x1
-_08067124:
- pop {r1}
- bx r1
- thumb_func_end s6E_yes_no
-
- thumb_func_start sub_8067128
-sub_8067128: @ 8067128
- push {r4,r5,lr}
- ldr r2, [r0, 0x8]
- ldrb r5, [r2]
- adds r2, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r2]
- adds r3, r2, 0x1
- str r3, [r0, 0x8]
- ldrb r2, [r2, 0x1]
- adds r4, r3, 0x1
- str r4, [r0, 0x8]
- ldrb r3, [r3, 0x1]
- adds r4, 0x1
- str r4, [r0, 0x8]
- adds r0, r5, 0
- bl sub_80B5054
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08067156
- movs r0, 0
- b _0806715C
-_08067156:
- bl sub_80655F0
- movs r0, 0x1
-_0806715C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8067128
-
- thumb_func_start sub_8067164
-sub_8067164: @ 8067164
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- ldr r2, [r0, 0x8]
- ldrb r1, [r2]
- mov r8, r1
- adds r2, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r2]
- adds r3, r2, 0x1
- str r3, [r0, 0x8]
- ldrb r2, [r2, 0x1]
- adds r5, r3, 0x1
- str r5, [r0, 0x8]
- ldrb r6, [r3, 0x1]
- adds r4, r5, 0x1
- str r4, [r0, 0x8]
- ldrb r3, [r5, 0x1]
- adds r4, 0x1
- str r4, [r0, 0x8]
- str r6, [sp]
- mov r0, r8
- bl sub_80B50B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080671A2
- movs r0, 0
- b _080671A8
-_080671A2:
- bl sub_80655F0
- movs r0, 0x1
-_080671A8:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8067164
-
- thumb_func_start sub_80671B4
-sub_80671B4: @ 80671B4
- push {r4,r5,lr}
- ldr r2, [r0, 0x8]
- ldrb r5, [r2]
- adds r2, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r2]
- adds r3, r2, 0x1
- str r3, [r0, 0x8]
- ldrb r2, [r2, 0x1]
- adds r4, r3, 0x1
- str r4, [r0, 0x8]
- ldrb r3, [r3, 0x1]
- adds r4, 0x1
- str r4, [r0, 0x8]
- adds r0, r5, 0
- bl DrawDefaultWindow
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80671B4
-
- thumb_func_start sub_80671E0
-sub_80671E0: @ 80671E0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x4
- ldr r2, [r0, 0x8]
- ldrb r1, [r2]
- mov r8, r1
- adds r2, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r2]
- adds r3, r2, 0x1
- str r3, [r0, 0x8]
- ldrb r2, [r2, 0x1]
- adds r5, r3, 0x1
- str r5, [r0, 0x8]
- ldrb r6, [r3, 0x1]
- adds r4, r5, 0x1
- str r4, [r0, 0x8]
- ldrb r3, [r5, 0x1]
- adds r4, 0x1
- str r4, [r0, 0x8]
- str r6, [sp]
- mov r0, r8
- bl sub_80B5578
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806721E
- movs r0, 0
- b _08067224
-_0806721E:
- bl sub_80655F0
- movs r0, 0x1
-_08067224:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80671E0
-
- thumb_func_start sub_8067230
-sub_8067230: @ 8067230
- push {r4,r5,lr}
- ldr r2, [r0, 0x8]
- ldrb r5, [r2]
- adds r2, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r2]
- adds r3, r2, 0x1
- str r3, [r0, 0x8]
- ldrb r2, [r2, 0x1]
- adds r4, r3, 0x1
- str r4, [r0, 0x8]
- ldrb r3, [r3, 0x1]
- adds r4, 0x1
- str r4, [r0, 0x8]
- adds r0, r5, 0
- bl Reset
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8067230
-
- thumb_func_start s6F_multichoice
-s6F_multichoice: @ 806725C
- push {r4,r5,lr}
- ldr r2, [r0, 0x8]
- ldrb r5, [r2]
- adds r2, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r2]
- adds r3, r2, 0x1
- str r3, [r0, 0x8]
- ldrb r2, [r2, 0x1]
- adds r4, r3, 0x1
- str r4, [r0, 0x8]
- ldrb r3, [r3, 0x1]
- adds r4, 0x1
- str r4, [r0, 0x8]
- adds r0, r5, 0
- bl Multichoice
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806728A
- movs r0, 0
- b _08067290
-_0806728A:
- bl sub_80655F0
- movs r0, 0x1
-_08067290:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end s6F_multichoice
-
- thumb_func_start sub_8067298
-sub_8067298: @ 8067298
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r3, [r4, 0x8]
- ldrb r1, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- ldrb r2, [r3]
- adds r3, 0x1
- str r3, [r4, 0x8]
- bl sub_80B58C4
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8067298
-
- thumb_func_start s76_close_picture_box
-s76_close_picture_box: @ 80672C8
- push {r4,lr}
- adds r4, r0, 0
- bl picbox_close
- adds r1, r0, 0
- cmp r1, 0
- beq _080672E0
- adds r0, r4, 0
- bl script_setup_asm_script
- movs r0, 0x1
- b _080672E2
-_080672E0:
- movs r0, 0
-_080672E2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end s76_close_picture_box
-
- thumb_func_start s77_showcontestwinner
-s77_showcontestwinner: @ 80672E8
- push {lr}
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- cmp r2, 0
- beq _080672FC
- adds r0, r2, 0
- bl sub_8106630
-_080672FC:
- bl sub_80C4F10
- bl sub_80655F0
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end s77_showcontestwinner
-
- thumb_func_start sub_806730C
-sub_806730C: @ 806730C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- bl script_read_word
- adds r1, r0, 0
- ldrb r5, [r1]
- ldrb r6, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- mov r8, r0
- ldrb r0, [r1, 0x3]
- mov r9, r0
- ldrb r0, [r1, 0x4]
- mov r10, r0
- ldrb r7, [r1, 0x5]
- ldr r4, _08067360
- adds r1, 0x6
- adds r0, r4, 0
- bl StringBraille
- adds r0, r5, 0
- adds r1, r6, 0
- mov r2, r8
- mov r3, r9
- bl DrawDefaultWindow
- adds r0, r4, 0
- mov r1, r10
- adds r2, r7, 0
- bl Print
- movs r0, 0
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08067360: .4byte 0x020234cc
- thumb_func_end sub_806730C
-
- thumb_func_start sBD_virtual_message
-sBD_virtual_message: @ 8067364
- push {lr}
- bl script_read_word
- ldr r1, _0806737C
- ldr r1, [r1]
- subs r0, r1
- bl box_related_two__2
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0806737C: .4byte 0x0202e8b0
- thumb_func_end sBD_virtual_message
-
- thumb_func_start s7D_load_pokename
-s7D_load_pokename: @ 8067380
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _080673B8
- lsls r4, 2
- adds r4, r1
- ldr r2, [r4]
- movs r1, 0xB
- muls r1, r0
- ldr r0, _080673BC
- adds r1, r0
- adds r0, r2, 0
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080673B8: .4byte gUnknown_083762F0
-_080673BC: .4byte gSpeciesNames
- thumb_func_end s7D_load_pokename
-
- thumb_func_start s7E_load_first_pokenames
-s7E_load_first_pokenames: @ 80673C0
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldr r0, _08067400
- lsls r2, 2
- adds r2, r0
- ldr r4, [r2]
- bl sub_810F87C
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _08067404
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- movs r1, 0xB
- muls r1, r0
- ldr r0, _08067408
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08067400: .4byte gUnknown_083762F0
-_08067404: .4byte 0x03004360
-_08067408: .4byte gSpeciesNames
- thumb_func_end s7E_load_first_pokenames
-
- thumb_func_start s7F_load_pokename_team
-s7F_load_pokename_team: @ 806740C
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0806744C
- adds r0, r1
- ldr r1, _08067450
- lsls r4, 2
- adds r4, r1
- ldr r4, [r4]
- movs r1, 0x2
- adds r2, r4, 0
- bl PokemonGetField
- adds r0, r4, 0
- bl StringGetEnd10
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806744C: .4byte 0x03004360
-_08067450: .4byte gUnknown_083762F0
- thumb_func_end s7F_load_pokename_team
-
- thumb_func_start s80_load_item_name
-s80_load_item_name: @ 8067454
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08067484
- lsls r4, 2
- adds r4, r1
- ldr r1, [r4]
- bl itemid_copy_name
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08067484: .4byte gUnknown_083762F0
- thumb_func_end s80_load_item_name
-
- thumb_func_start sub_8067488
-sub_8067488: @ 8067488
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- lsls r1, 16
- ldr r0, _080674BC
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- lsrs r1, 11
- ldr r2, _080674C0
- adds r1, r2
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080674BC: .4byte gUnknown_083762F0
-_080674C0: .4byte gDecorations + 0x1
- thumb_func_end sub_8067488
-
- thumb_func_start s82_load_item_name
-s82_load_item_name: @ 80674C4
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _080674FC
- lsls r4, 2
- adds r4, r1
- ldr r2, [r4]
- movs r1, 0xD
- muls r1, r0
- ldr r0, _08067500
- adds r1, r0
- adds r0, r2, 0
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080674FC: .4byte gUnknown_083762F0
-_08067500: .4byte gMoveNames
- thumb_func_end s82_load_item_name
-
- thumb_func_start s83_load_textvar_var
-s83_load_textvar_var: @ 8067504
- push {r4,r5,lr}
- ldr r1, [r0, 0x8]
- ldrb r5, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r4, 0
- bl sub_80BF0B8
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r0, _08067544
- lsls r5, 2
- adds r5, r0
- ldr r0, [r5]
- adds r1, r4, 0
- movs r2, 0
- bl ConvertIntToDecimalStringN
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08067544: .4byte gUnknown_083762F0
- thumb_func_end s83_load_textvar_var
-
- thumb_func_start s84_load_textvar_std_expression
-s84_load_textvar_std_expression: @ 8067548
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- ldr r1, _08067580
- lsls r4, 2
- adds r4, r1
- ldr r2, [r4]
- ldr r1, _08067584
- lsrs r0, 14
- adds r0, r1
- ldr r1, [r0]
- adds r0, r2, 0
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08067580: .4byte gUnknown_083762F0
-_08067584: .4byte gUnknown_083CE048
- thumb_func_end s84_load_textvar_std_expression
-
- thumb_func_start s85_load_textvar_pointer
-s85_load_textvar_pointer: @ 8067588
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl script_read_word
- adds r1, r0, 0
- ldr r0, _080675AC
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080675AC: .4byte gUnknown_083762F0
- thumb_func_end s85_load_textvar_pointer
-
- thumb_func_start sBE_virtual_load_text
-sBE_virtual_load_text: @ 80675B0
- push {lr}
- bl script_read_word
- adds r1, r0, 0
- ldr r0, _080675CC
- ldr r0, [r0]
- subs r1, r0
- ldr r0, _080675D0
- bl StringExpandPlaceholders
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080675CC: .4byte 0x0202e8b0
-_080675D0: .4byte 0x020234cc
- thumb_func_end sBE_virtual_load_text
-
- thumb_func_start sBF_virtual_load_textbuffer
-sBF_virtual_load_textbuffer: @ 80675D4
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl script_read_word
- adds r1, r0, 0
- ldr r0, _08067600
- ldr r0, [r0]
- subs r1, r0
- ldr r0, _08067604
- lsls r4, 2
- adds r4, r0
- ldr r0, [r4]
- bl StringCopy
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08067600: .4byte 0x0202e8b0
-_08067604: .4byte gUnknown_083762F0
- thumb_func_end sBF_virtual_load_textbuffer
-
- thumb_func_start s79_give_pokemon
-s79_give_pokemon: @ 8067608
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x8
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r6, r0, 0
- lsls r6, 16
- lsrs r6, 16
- ldr r0, [r4, 0x8]
- ldrb r1, [r0]
- mov r9, r1
- adds r0, 0x1
- str r0, [r4, 0x8]
- adds r0, r4, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- bl script_read_word
- mov r8, r0
- adds r0, r4, 0
- bl script_read_word
- ldr r1, [r4, 0x8]
- ldrb r2, [r1]
- adds r1, 0x1
- str r1, [r4, 0x8]
- ldr r4, _08067684
- str r0, [sp]
- str r2, [sp, 0x4]
- adds r0, r6, 0
- mov r1, r9
- adds r2, r5, 0
- mov r3, r8
- bl sub_80C5374
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- movs r0, 0
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08067684: .4byte 0x0202e8dc
- thumb_func_end s79_give_pokemon
-
- thumb_func_start s7A_create_egg
-s7A_create_egg: @ 8067688
- push {r4,lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r4, _080676B0
- bl sub_80C53F8
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080676B0: .4byte 0x0202e8dc
- thumb_func_end s7A_create_egg
-
- thumb_func_start s7B_change_pokedata_AP
-s7B_change_pokedata_AP: @ 80676B4
- 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 script_read_halfword
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- adds r2, r4, 0
- bl sub_80C5530
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end s7B_change_pokedata_AP
-
- thumb_func_start sub_80676E0
-sub_80676E0: @ 80676E0
- push {r4-r7,lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r7, r0, 16
- ldr r1, _080676F4
- movs r0, 0x6
- strh r0, [r1]
- movs r6, 0
- b _0806772E
- .align 2, 0
-_080676F4: .4byte 0x0202e8dc
-_080676F8:
- adds r0, r4, 0
- movs r1, 0x2D
- bl PokemonGetField
- cmp r0, 0
- bne _08067728
- adds r0, r4, 0
- adds r1, r7, 0
- bl pokemon_has_move
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08067728
- ldr r0, _08067720
- strh r6, [r0]
- ldr r0, _08067724
- strh r5, [r0]
- b _0806774E
- .align 2, 0
-_08067720: .4byte 0x0202e8dc
-_08067724: .4byte 0x0202e8cc
-_08067728:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0806772E:
- cmp r6, 0x5
- bhi _0806774E
- movs r0, 0x64
- adds r1, r6, 0
- muls r1, r0
- ldr r0, _08067758
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl PokemonGetField
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, 0
- bne _080676F8
-_0806774E:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08067758: .4byte 0x03004360
- thumb_func_end sub_80676E0
-
- thumb_func_start sub_806775C
-sub_806775C: @ 806775C
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_word
- adds r2, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- cmp r1, 0
- bne _0806777A
- ldr r0, _08067784
- adds r1, r2, 0
- bl sub_80B79B8
-_0806777A:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08067784: .4byte 0x02025bc4
- thumb_func_end sub_806775C
-
- thumb_func_start sub_8067788
-sub_8067788: @ 8067788
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_word
- adds r2, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- cmp r1, 0
- bne _080677A6
- ldr r0, _080677B0
- adds r1, r2, 0
- bl sub_80B79E0
-_080677A6:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080677B0: .4byte 0x02025bc4
- thumb_func_end sub_8067788
-
- thumb_func_start s92_check_money
-s92_check_money: @ 80677B4
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_word
- adds r2, r0, 0
- ldr r0, [r4, 0x8]
- ldrb r1, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- cmp r1, 0
- bne _080677E2
- ldr r4, _080677EC
- ldr r0, _080677F0
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- adds r1, r2, 0
- bl IsEnoughMoney
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
-_080677E2:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080677EC: .4byte 0x0202e8dc
-_080677F0: .4byte 0x02025734
- thumb_func_end s92_check_money
-
- thumb_func_start sub_80677F4
-sub_80677F4: @ 80677F4
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldrb r3, [r1]
- adds r2, r1, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r1, 0x1]
- adds r2, 0x1
- str r2, [r0, 0x8]
- cmp r1, 0
- bne _08067820
- ldr r0, _08067828
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- adds r1, r4, 0
- adds r2, r3, 0
- bl sub_80B7C14
-_08067820:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08067828: .4byte 0x02025734
- thumb_func_end sub_80677F4
-
- thumb_func_start sub_806782C
-sub_806782C: @ 806782C
- push {lr}
- ldr r2, [r0, 0x8]
- ldrb r3, [r2]
- adds r2, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r2]
- adds r2, 0x1
- str r2, [r0, 0x8]
- adds r0, r3, 0
- bl RemoveMoneyLabelObject
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_806782C
-
- thumb_func_start sub_8067848
-sub_8067848: @ 8067848
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldrb r3, [r1]
- adds r2, r1, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r1, 0x1]
- adds r2, 0x1
- str r2, [r0, 0x8]
- cmp r1, 0
- bne _08067874
- ldr r0, _0806787C
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- ldr r0, [r0]
- adds r1, r4, 0
- adds r2, r3, 0
- bl sub_80B7BEC
-_08067874:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806787C: .4byte 0x02025734
- thumb_func_end sub_8067848
-
- thumb_func_start sub_8067880
-sub_8067880: @ 8067880
- push {lr}
- ldr r3, [r0, 0x8]
- ldrb r1, [r3]
- adds r3, 0x1
- str r3, [r0, 0x8]
- ldrb r2, [r3]
- adds r3, 0x1
- str r3, [r0, 0x8]
- ldr r0, _080678A4
- ldr r3, _080678A8
- adds r0, r3
- ldrh r0, [r0]
- bl sub_811A72C
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080678A4: .4byte 0x02025734
-_080678A8: .4byte 0x00000494
- thumb_func_end sub_8067880
-
- thumb_func_start sub_80678AC
-sub_80678AC: @ 80678AC
- push {lr}
- ldr r2, [r0, 0x8]
- ldrb r3, [r2]
- adds r2, 0x1
- str r2, [r0, 0x8]
- ldrb r1, [r2]
- adds r2, 0x1
- str r2, [r0, 0x8]
- adds r0, r3, 0
- bl sub_811A770
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80678AC
-
- thumb_func_start sub_80678C8
-sub_80678C8: @ 80678C8
- push {lr}
- ldr r3, [r0, 0x8]
- ldrb r1, [r3]
- adds r3, 0x1
- str r3, [r0, 0x8]
- ldrb r2, [r3]
- adds r3, 0x1
- str r3, [r0, 0x8]
- ldr r0, _080678EC
- ldr r3, _080678F0
- adds r0, r3
- ldrh r0, [r0]
- bl sub_811A704
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080678EC: .4byte 0x02025734
-_080678F0: .4byte 0x00000494
- thumb_func_end sub_80678C8
-
- thumb_func_start s5C_trainer_battle_configure_and_start
-s5C_trainer_battle_configure_and_start: @ 80678F4
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, [r4, 0x8]
- bl sub_80823C8
- str r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end s5C_trainer_battle_configure_and_start
-
- thumb_func_start sub_8067908
-sub_8067908: @ 8067908
- push {lr}
- bl sub_80825E4
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8067908
-
- thumb_func_start sub_8067914
-sub_8067914: @ 8067914
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80826E8
- str r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8067914
-
- thumb_func_start sub_8067928
-sub_8067928: @ 8067928
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8082700
- str r0, [r4, 0x8]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8067928
-
- thumb_func_start s60_check_trainer_flag
-s60_check_trainer_flag: @ 806793C
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl trainer_flag_check
- strb r0, [r4, 0x2]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end s60_check_trainer_flag
-
- thumb_func_start s61_set_trainer_flag
-s61_set_trainer_flag: @ 8067960
- push {lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl trainer_flag_set
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s61_set_trainer_flag
-
- thumb_func_start s62_unset_trainer_flag
-s62_unset_trainer_flag: @ 806797C
- push {lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl trainer_flag_clear
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end s62_unset_trainer_flag
-
- thumb_func_start sB6_load_battle
-sB6_load_battle: @ 8067998
- push {r4-r6,lr}
- adds r4, r0, 0
- bl script_read_halfword
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- ldr r0, [r4, 0x8]
- ldrb r6, [r0]
- adds r0, 0x1
- str r0, [r4, 0x8]
- adds r0, r4, 0
- bl script_read_halfword
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_80C54D0
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sB6_load_battle
-
- thumb_func_start sub_80679CC
-sub_80679CC: @ 80679CC
- push {lr}
- bl sub_8081B3C
- bl sub_80655F0
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_80679CC
-
- thumb_func_start s86_pokemart
-s86_pokemart: @ 80679DC
- push {lr}
- bl script_read_word
- bl CreatePokemartMenu
- bl sub_80655F0
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end s86_pokemart
-
- thumb_func_start s87_pokemartdecor
-s87_pokemartdecor: @ 80679F0
- push {lr}
- bl script_read_word
- bl CreateDecorationShop1Menu
- bl sub_80655F0
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end s87_pokemartdecor
-
- thumb_func_start s88_pokemartbp
-s88_pokemartbp: @ 8067A04
- push {lr}
- bl script_read_word
- bl CreateDecorationShop2Menu
- bl sub_80655F0
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end s88_pokemartbp
-
- thumb_func_start s89_open_casino_game1
-s89_open_casino_game1: @ 8067A18
- push {lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08067A3C
- bl sub_81018A0
- bl sub_80655F0
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_08067A3C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end s89_open_casino_game1
-
- thumb_func_start berry_script_cmd
-berry_script_cmd: @ 8067A40
- push {r4,r5,lr}
- ldr r1, [r0, 0x8]
- ldrb r5, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- ldrb r3, [r1]
- adds r2, r1, 0x1
- str r2, [r0, 0x8]
- ldrb r4, [r1, 0x1]
- adds r2, 0x1
- str r2, [r0, 0x8]
- cmp r3, 0
- bne _08067A68
- adds r0, r5, 0
- movs r1, 0
- adds r2, r4, 0
- movs r3, 0
- bl PlantBerryTree
- b _08067A74
-_08067A68:
- adds r0, r5, 0
- adds r1, r3, 0
- adds r2, r4, 0
- movs r3, 0
- bl PlantBerryTree
-_08067A74:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end berry_script_cmd
-
- thumb_func_start sub_8067A7C
-sub_8067A7C: @ 8067A7C
- push {r4,lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r4, _08067AA4
- lsls r0, 24
- lsrs r0, 24
- bl GetPriceReduction
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08067AA4: .4byte 0x0202e8dc
- thumb_func_end sub_8067A7C
-
- thumb_func_start sub_8067AA8
-sub_8067AA8: @ 8067AA8
- push {lr}
- bl sub_80F99CC
- bl sub_80655F0
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8067AA8
-
- thumb_func_start sub_8067AB8
-sub_8067AB8: @ 8067AB8
- push {lr}
- bl sub_80C48C8
- bl sub_80655F0
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8067AB8
-
- thumb_func_start sub_8067AC8
-sub_8067AC8: @ 8067AC8
- push {lr}
- bl sub_80C4940
- bl sub_80655F0
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8067AC8
-
- thumb_func_start sub_8067AD8
-sub_8067AD8: @ 8067AD8
- push {lr}
- ldr r0, _08067AEC
- ldrb r0, [r0]
- bl sub_80C4980
- bl sub_80655F0
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_08067AEC: .4byte 0x0203869c
- thumb_func_end sub_8067AD8
-
- thumb_func_start s9C_execute_HM
-s9C_execute_HM: @ 8067AF0
- push {lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08067B14
- strh r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- bl FieldEffectStart
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08067B14: .4byte 0x0202e8bc
- thumb_func_end s9C_execute_HM
-
- thumb_func_start s9D_set_HM_animation_data
-s9D_set_HM_animation_data: @ 8067B18
- push {r4,lr}
- ldr r1, [r0, 0x8]
- ldrb r4, [r1]
- adds r1, 0x1
- str r1, [r0, 0x8]
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r1, _08067B44
- lsls r4, 2
- adds r4, r1
- lsls r0, 16
- asrs r0, 16
- str r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08067B44: .4byte 0x0202ff84
- thumb_func_end s9D_set_HM_animation_data
-
- thumb_func_start sub_8067B48
-sub_8067B48: @ 8067B48
- push {lr}
- ldr r0, _08067B5C
- ldrb r0, [r0]
- bl FieldEffectActiveListContains
- lsls r0, 24
- cmp r0, 0
- beq _08067B60
- movs r0, 0
- b _08067B62
- .align 2, 0
-_08067B5C: .4byte 0x0202e8bc
-_08067B60:
- movs r0, 0x1
-_08067B62:
- pop {r1}
- bx r1
- thumb_func_end sub_8067B48
-
- thumb_func_start s9E_checkarray_HM_animation
-s9E_checkarray_HM_animation: @ 8067B68
- push {r4,lr}
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- ldr r1, _08067B8C
- strh r0, [r1]
- ldr r1, _08067B90
- adds r0, r4, 0
- bl script_setup_asm_script
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08067B8C: .4byte 0x0202e8bc
-_08067B90: .4byte sub_8067B48
- thumb_func_end s9E_checkarray_HM_animation
-
- thumb_func_start sub_8067B94
-sub_8067B94: @ 8067B94
- push {lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- bl sub_8053588
- movs r0, 0
- pop {r1}
- bx r1
- thumb_func_end sub_8067B94
-
- thumb_func_start sub_8067BB0
-sub_8067BB0: @ 8067BB0
- ldr r0, _08067BBC
- ldr r1, _08067BC0
- ldrb r1, [r1, 0x8]
- strh r1, [r0]
- movs r0, 0
- bx lr
- .align 2, 0
-_08067BBC: .4byte 0x0202e8dc
-_08067BC0: .4byte gSaveBlock2
- thumb_func_end sub_8067BB0
-
- thumb_func_start sA1_play_cry
-sA1_play_cry: @ 8067BC4
- push {r4,r5,lr}
- adds r5, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_8075178
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sA1_play_cry
-
- thumb_func_start sub_8067BFC
-sub_8067BFC: @ 8067BFC
- push {lr}
- ldr r1, _08067C0C
- bl script_setup_asm_script
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_08067C0C: .4byte sub_8075374
- thumb_func_end sub_8067BFC
-
- thumb_func_start sA2_setmaptile
-sA2_setmaptile: @ 8067C10
- push {r4-r7,lr}
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r4, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- adds r1, r6, 0x7
- lsls r1, 16
- lsrs r6, r1, 16
- adds r1, r5, 0x7
- lsls r1, 16
- lsrs r5, r1, 16
- cmp r0, 0
- bne _08067C74
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r7, 0
- bl MapGridSetMetatileIdAt
- b _08067C86
-_08067C74:
- movs r1, 0xC0
- lsls r1, 4
- adds r0, r1, 0
- adds r2, r7, 0
- orrs r2, r0
- adds r0, r6, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_08067C86:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sA2_setmaptile
-
- thumb_func_start sAC_open_door
-sAC_open_door: @ 8067C90
- push {r4,r5,lr}
- adds r4, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- adds r5, 0x7
- lsls r5, 16
- lsrs r5, 16
- movs r0, 0xE0
- lsls r0, 11
- adds r4, r0
- lsrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8058790
- lsls r0, 16
- lsrs r0, 16
- bl audio_play
- adds r0, r5, 0
- adds r1, r4, 0
- bl task_overworld_door_add_if_role_69_for_opening_door_at
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sAC_open_door
-
- thumb_func_start sub_8067CE8
-sub_8067CE8: @ 8067CE8
- push {r4,r5,lr}
- adds r5, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- lsls r1, 16
- adds r4, 0x7
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0xE0
- lsls r0, 11
- adds r1, r0
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_805870C
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8067CE8
-
- thumb_func_start sub_8067D2C
-sub_8067D2C: @ 8067D2C
- push {lr}
- bl sub_805877C
- lsls r0, 24
- cmp r0, 0
- beq _08067D3C
- movs r0, 0
- b _08067D3E
-_08067D3C:
- movs r0, 0x1
-_08067D3E:
- pop {r1}
- bx r1
- thumb_func_end sub_8067D2C
-
- thumb_func_start sub_8067D44
-sub_8067D44: @ 8067D44
- push {lr}
- ldr r1, _08067D54
- bl script_setup_asm_script
- movs r0, 0x1
- pop {r1}
- bx r1
- .align 2, 0
-_08067D54: .4byte sub_8067D2C
- thumb_func_end sub_8067D44
-
- thumb_func_start sub_8067D58
-sub_8067D58: @ 8067D58
- push {r4,r5,lr}
- adds r5, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- lsls r1, 16
- adds r4, 0x7
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0xE0
- lsls r0, 11
- adds r1, r0
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_80586B4
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8067D58
-
- thumb_func_start sub_8067D9C
-sub_8067D9C: @ 8067D9C
- push {r4,r5,lr}
- adds r5, r0, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r1, r0, 0
- lsls r1, 16
- adds r4, 0x7
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0xE0
- lsls r0, 11
- adds r1, r0
- lsrs r1, 16
- adds r0, r4, 0
- bl sub_80586E0
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8067D9C
-
- thumb_func_start sub_8067DE0
-sub_8067DE0: @ 8067DE0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r6, r0, 0
- ldr r0, [r6, 0x8]
- ldrb r1, [r0]
- mov r8, r1
- adds r0, 0x1
- str r0, [r6, 0x8]
- adds r0, r6, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r6, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- adds r3, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_810E7AC
- movs r0, 0
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8067DE0
-
- thumb_func_start sub_8067E4C
-sub_8067E4C: @ 8067E4C
- push {lr}
- bl sub_810E824
- bl sub_80655F0
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8067E4C
-
- thumb_func_start sB3_get_coin_amount
-sB3_get_coin_amount: @ 8067E5C
- push {r4,lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl GetVarPointer
- adds r4, r0, 0
- bl GetCoins
- strh r0, [r4]
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sB3_get_coin_amount
-
- thumb_func_start sub_8067E7C
-sub_8067E7C: @ 8067E7C
- push {lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl sub_811A840
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08067EA4
- ldr r1, _08067EA0
- movs r0, 0
- b _08067EA8
- .align 2, 0
-_08067EA0: .4byte 0x0202e8dc
-_08067EA4:
- ldr r1, _08067EB0
- movs r0, 0x1
-_08067EA8:
- strh r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08067EB0: .4byte 0x0202e8dc
- thumb_func_end sub_8067E7C
-
- thumb_func_start sub_8067EB4
-sub_8067EB4: @ 8067EB4
- push {lr}
- bl script_read_halfword
- lsls r0, 16
- lsrs r0, 16
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- bl sub_811A898
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08067EDC
- ldr r1, _08067ED8
- movs r0, 0
- b _08067EE0
- .align 2, 0
-_08067ED8: .4byte 0x0202e8dc
-_08067EDC:
- ldr r1, _08067EE8
- movs r0, 0x1
-_08067EE0:
- strh r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08067EE8: .4byte 0x0202e8dc
- thumb_func_end sub_8067EB4
-
- thumb_func_start sub_8067EEC
-sub_8067EEC: @ 8067EEC
- push {r4,r5,lr}
- movs r1, 0x2
- negs r1, r1
- movs r3, 0x3
- negs r3, r3
- movs r4, 0x5
- negs r4, r4
- movs r5, 0x9
- negs r5, r5
- movs r2, 0
- strb r2, [r0]
- ldrb r2, [r0, 0x1]
- ands r1, r2
- ands r1, r3
- ands r1, r4
- ands r1, r5
- strb r1, [r0, 0x1]
- movs r1, 0
- strb r1, [r0, 0x2]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8067EEC
-
- thumb_func_start process_overworld_input
-process_overworld_input: @ 8067F18
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- ldr r0, _08067FE8
- ldrb r6, [r0, 0x3]
- ldrb r0, [r0, 0x2]
- mov r9, r0
- bl cur_mapdata_block_role_at_player_pos
- lsls r0, 24
- lsrs r0, 24
- bl sub_8056FFC
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r6, 0x2
- bne _08067F4C
- cmp r7, 0
- beq _08067F50
-_08067F4C:
- cmp r6, 0
- bne _08067FB2
-_08067F50:
- bl sub_80E6034
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- beq _08067F9C
- movs r0, 0x8
- ands r0, r5
- cmp r0, 0
- beq _08067F6C
- ldrb r0, [r4]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4]
-_08067F6C:
- movs r0, 0x4
- ands r0, r5
- cmp r0, 0
- beq _08067F7C
- ldrb r0, [r4]
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r4]
-_08067F7C:
- movs r0, 0x1
- ands r0, r5
- cmp r0, 0
- beq _08067F8C
- ldrb r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
-_08067F8C:
- movs r0, 0x2
- ands r0, r5
- cmp r0, 0
- beq _08067F9C
- ldrb r0, [r4]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r4]
-_08067F9C:
- movs r0, 0xF0
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _08067FB2
- ldrb r0, [r4]
- movs r1, 0x10
- orrs r0, r1
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4]
-_08067FB2:
- cmp r7, 0
- bne _08067FD8
- cmp r6, 0x2
- bne _08067FC8
- mov r0, r9
- cmp r0, 0x2
- bne _08067FC8
- ldrb r0, [r4]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r4]
-_08067FC8:
- cmp r7, 0
- bne _08067FD8
- cmp r6, 0x2
- bne _08067FD8
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
-_08067FD8:
- movs r0, 0x40
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _08067FEC
- movs r0, 0x2
- b _08068014
- .align 2, 0
-_08067FE8: .4byte 0x0202e858
-_08067FEC:
- movs r0, 0x80
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _08067FFA
- movs r0, 0x1
- b _08068014
-_08067FFA:
- movs r0, 0x20
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _08068008
- movs r0, 0x3
- b _08068014
-_08068008:
- movs r0, 0x10
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _08068016
- movs r0, 0x4
-_08068014:
- strb r0, [r4, 0x2]
-_08068016:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end process_overworld_input
-
- thumb_func_start sub_8068024
-sub_8068024: @ 8068024
- push {r4-r6,lr}
- sub sp, 0x8
- adds r5, r0, 0
- bl player_get_direction_lower_nybble
- lsls r0, 24
- lsrs r6, r0, 24
- mov r4, sp
- mov r0, sp
- bl player_get_pos_to_and_height
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r4, r0, 16
- bl sub_8083FBC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068150
- bl mapheader_run_first_tag2_script_list_match
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068150
- ldrb r1, [r5]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08068076
- bl sub_80687A4
- cmp r0, 0x1
- beq _08068150
-_08068076:
- ldrb r1, [r5]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08068098
- movs r0, 0x5
- bl sav12_xor_increment
- mov r0, sp
- adds r1, r4, 0
- adds r2, r6, 0
- bl sub_80687E4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068150
-_08068098:
- ldrb r1, [r5]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080680B0
- adds r0, r4, 0
- bl is_it_battle_time_3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068150
-_080680B0:
- ldrb r1, [r5]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080680D2
- ldrb r0, [r5, 0x2]
- cmp r0, r6
- bne _080680D2
- mov r0, sp
- adds r1, r4, 0
- adds r2, r6, 0
- bl mapheader_run_first_tag2_script_list_match_conditionally
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068150
-_080680D2:
- mov r4, sp
- mov r0, sp
- bl player_get_next_pos_and_height
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r4, r0, 16
- ldrb r1, [r5]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08068108
- mov r0, sp
- adds r1, r4, 0
- adds r2, r6, 0
- bl sub_80681F0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068150
-_08068108:
- ldrb r1, [r5]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0806812A
- ldrb r0, [r5, 0x2]
- cmp r0, r6
- bne _0806812A
- mov r0, sp
- adds r1, r4, 0
- adds r2, r6, 0
- bl map_warp_consider_2_to_inside
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068150
-_0806812A:
- ldrb r1, [r5]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806813C
- bl sub_8068770
- cmp r0, 0x1
- beq _08068150
-_0806813C:
- ldrb r1, [r5]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08068154
- movs r0, 0x6
- bl audio_play
- bl sub_8071310
-_08068150:
- movs r0, 0x1
- b _08068166
-_08068154:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08068164
- bl sub_80A6D1C
- cmp r0, 0x1
- beq _08068150
-_08068164:
- movs r0, 0
-_08068166:
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8068024
-
- thumb_func_start player_get_pos_to_and_height
-player_get_pos_to_and_height: @ 8068170
- push {r4,lr}
- adds r4, r0, 0
- adds r1, r4, 0x2
- bl PlayerGetDestCoords
- bl PlayerGetZCoord
- strb r0, [r4, 0x4]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end player_get_pos_to_and_height
-
- thumb_func_start player_get_next_pos_and_height
-player_get_next_pos_and_height: @ 8068188
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r1, r5, 0x2
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _080681BA
- bl PlayerGetZCoord
-_080681BA:
- strb r0, [r5, 0x4]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end player_get_next_pos_and_height
-
- thumb_func_start cur_mapdata_block_role_at_player_pos
-cur_mapdata_block_role_at_player_pos: @ 80681C4
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r0, 16
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end cur_mapdata_block_role_at_player_pos
-
- thumb_func_start sub_80681F0
-sub_80681F0: @ 80681F0
- push {r4,lr}
- lsls r2, 24
- lsrs r2, 24
- lsls r1, 24
- lsrs r1, 24
- bl TryGetScriptOnPressingA
- adds r4, r0, 0
- cmp r4, 0
- bne _08068208
- movs r0, 0
- b _08068234
-_08068208:
- ldr r0, _0806823C
- cmp r4, r0
- beq _0806822C
- ldr r0, _08068240
- cmp r4, r0
- beq _0806822C
- ldr r0, _08068244
- cmp r4, r0
- beq _0806822C
- ldr r0, _08068248
- cmp r4, r0
- beq _0806822C
- ldr r0, _0806824C
- cmp r4, r0
- beq _0806822C
- movs r0, 0x5
- bl audio_play
-_0806822C:
- adds r0, r4, 0
- bl script_env_1_execute_new_script
- movs r0, 0x1
-_08068234:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806823C: .4byte gUnknown_0815281E
-_08068240: .4byte gUnknown_08152C39
-_08068244: .4byte gUnknown_0815F36C
-_08068248: .4byte gUnknown_0815F43A
-_0806824C: .4byte gUnknown_081A0009
- thumb_func_end sub_80681F0
-
- thumb_func_start TryGetScriptOnPressingA
-TryGetScriptOnPressingA: @ 8068250
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- mov r8, r5
- lsls r2, 24
- lsrs r4, r2, 24
- adds r7, r4, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_8068364
- cmp r0, 0
- bne _0806829C
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl TryGetInvisibleMapObjectScript
- cmp r0, 0
- bne _0806829C
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_8068500
- cmp r0, 0
- bne _0806829C
- adds r0, r6, 0
- mov r1, r8
- adds r2, r7, 0
- bl TryGetFieldMoveScript
- cmp r0, 0
- bne _0806829C
- movs r0, 0
-_0806829C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end TryGetScriptOnPressingA
-
- thumb_func_start sub_80682A8
-sub_80682A8: @ 80682A8
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r2, 24
- lsrs r6, r2, 24
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsCounter
- lsls r0, 24
- cmp r0, 0
- bne _080682D0
- ldrh r0, [r4]
- ldrh r1, [r4, 0x2]
- b _080682EE
-_080682D0:
- ldr r1, _08068314
- lsls r2, r6, 3
- adds r0, r2, r1
- ldr r3, [r0]
- ldrh r0, [r4]
- adds r0, r3
- lsls r0, 16
- lsrs r0, 16
- adds r1, 0x4
- adds r2, r1
- ldr r2, [r2]
- ldrh r1, [r4, 0x2]
- adds r1, r2
- lsls r1, 16
- lsrs r1, 16
-_080682EE:
- ldrb r2, [r4, 0x4]
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x10
- beq _0806830E
- ldr r1, _08068318
- lsls r2, r3, 3
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x8]
- adds r5, r1, 0
- cmp r0, 0xFF
- bne _0806831C
-_0806830E:
- movs r0, 0
- b _0806834E
- .align 2, 0
-_08068314: .4byte gUnknown_0821664C
-_08068318: .4byte 0x030048a0
-_0806831C:
- movs r4, 0
- ldr r1, _08068354
-_08068320:
- ldrb r0, [r1]
- cmp r0, 0x1
- bne _0806832C
- ldrb r0, [r1, 0x2]
- cmp r0, r3
- beq _0806830E
-_0806832C:
- adds r1, 0x4
- adds r4, 0x1
- cmp r4, 0x3
- ble _08068320
- ldr r0, _08068358
- strb r3, [r0]
- ldr r1, _0806835C
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x8]
- strh r0, [r1]
- ldr r0, _08068360
- strh r6, [r0]
- adds r0, r3, 0
- bl GetFieldObjectScriptPointerByFieldObjectId
-_0806834E:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08068354: .4byte 0x02029818
-_08068358: .4byte 0x03004ae0
-_0806835C: .4byte 0x0202e8de
-_08068360: .4byte 0x0202e8e0
- thumb_func_end sub_80682A8
-
- thumb_func_start sub_8068364
-sub_8068364: @ 8068364
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- ldrh r0, [r4]
- ldrh r1, [r4, 0x2]
- ldrb r2, [r4, 0x4]
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x10
- beq _08068392
- ldr r1, _080683E0
- lsls r2, r3, 3
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x8]
- cmp r0, 0xFF
- bne _080683E8
-_08068392:
- adds r0, r5, 0
- bl MetatileBehavior_IsCounter
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080683DC
- ldr r1, _080683E4
- lsls r2, r6, 3
- adds r0, r2, r1
- ldr r3, [r0]
- ldrh r0, [r4]
- adds r0, r3
- lsls r0, 16
- lsrs r0, 16
- adds r1, 0x4
- adds r2, r1
- ldr r2, [r2]
- ldrh r1, [r4, 0x2]
- adds r1, r2
- lsls r1, 16
- lsrs r1, 16
- ldrb r2, [r4, 0x4]
- bl GetFieldObjectIdByXYZ
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x10
- beq _080683DC
- ldr r1, _080683E0
- lsls r2, r3, 3
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x8]
- cmp r0, 0xFF
- bne _080683E8
-_080683DC:
- movs r0, 0
- b _0806840C
- .align 2, 0
-_080683E0: .4byte 0x030048a0
-_080683E4: .4byte gUnknown_0821664C
-_080683E8:
- ldr r0, _08068414
- strb r3, [r0]
- ldr r4, _08068418
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x8]
- strh r0, [r4]
- ldr r0, _0806841C
- strh r6, [r0]
- adds r0, r3, 0
- bl GetFieldObjectScriptPointerByFieldObjectId
- adds r1, r0, 0
- ldrb r0, [r4]
- bl sub_806580C
- adds r1, r0, 0
-_0806840C:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_08068414: .4byte 0x03004ae0
-_08068418: .4byte 0x0202e8de
-_0806841C: .4byte 0x0202e8e0
- thumb_func_end sub_8068364
-
- thumb_func_start TryGetInvisibleMapObjectScript
-TryGetInvisibleMapObjectScript: @ 8068420
- push {r4,r5,lr}
- lsls r2, 24
- lsrs r5, r2, 24
- ldr r4, _08068450
- ldrh r1, [r0]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- ldrh r2, [r0, 0x2]
- subs r2, 0x7
- lsls r2, 16
- lsrs r2, 16
- ldrb r3, [r0, 0x4]
- adds r0, r4, 0
- bl FindInvisibleMapObjectByPosition
- cmp r0, 0
- beq _08068494
- ldr r2, [r0, 0x8]
- cmp r2, 0
- bne _08068458
- ldr r0, _08068454
- b _080684FA
- .align 2, 0
-_08068450: .4byte 0x0202e828
-_08068454: .4byte gUnknown_081C6C02
-_08068458:
- ldrb r0, [r0, 0x5]
- cmp r0, 0x8
- bhi _080684F8
- lsls r0, 2
- ldr r1, _08068468
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08068468: .4byte _0806846C
- .align 2, 0
-_0806846C:
- .4byte _080684F8
- .4byte _08068490
- .4byte _08068498
- .4byte _0806849E
- .4byte _080684A4
- .4byte _080684AA
- .4byte _080684AA
- .4byte _080684AA
- .4byte _080684D8
-_08068490:
- cmp r5, 0x2
- beq _080684F8
-_08068494:
- movs r0, 0
- b _080684FA
-_08068498:
- cmp r5, 0x1
- beq _080684F8
- b _08068494
-_0806849E:
- cmp r5, 0x4
- beq _080684F8
- b _08068494
-_080684A4:
- cmp r5, 0x3
- beq _080684F8
- b _08068494
-_080684AA:
- ldr r1, _080684CC
- lsrs r0, r2, 16
- movs r3, 0x96
- lsls r3, 2
- adds r0, r3
- strh r0, [r1]
- ldr r0, _080684D0
- strh r2, [r0]
- ldrh r0, [r1]
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068494
- ldr r0, _080684D4
- b _080684FA
- .align 2, 0
-_080684CC: .4byte 0x0202e8cc
-_080684D0: .4byte 0x0202e8ce
-_080684D4: .4byte HiddenItemScript
-_080684D8:
- cmp r5, 0x2
- bne _08068494
- ldr r0, _080684F0
- strh r2, [r0]
- bl sub_80BC050
- lsls r0, 24
- cmp r0, 0
- beq _08068494
- ldr r0, _080684F4
- b _080684FA
- .align 2, 0
-_080684F0: .4byte 0x0202e8cc
-_080684F4: .4byte gUnknown_081A2C51
-_080684F8:
- adds r0, r2, 0
-_080684FA:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end TryGetInvisibleMapObjectScript
-
- thumb_func_start sub_8068500
-sub_8068500: @ 8068500
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r2, 0
- bl MetatileBehavior_IsPlayerFacingTVScreen
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068524
- ldr r0, _08068520
- b _080686EE
- .align 2, 0
-_08068520: .4byte Event_TV
-_08068524:
- adds r0, r5, 0
- bl MetatileBehavior_IsPC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806853C
- ldr r0, _08068538
- b _080686EE
- .align 2, 0
-_08068538: .4byte gUnknown_081A0009
-_0806853C:
- adds r0, r5, 0
- bl is_tile_x8B
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068554
- ldr r0, _08068550
- b _080686EE
- .align 2, 0
-_08068550: .4byte ClosedSootopolisGymDoorScript
-_08068554:
- adds r0, r5, 0
- bl is_tile_x84
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806856C
- ldr r0, _08068568
- b _080686EE
- .align 2, 0
-_08068568: .4byte gUnknown_081A4363
-_0806856C:
- adds r0, r5, 0
- bl is_tile_x87
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068584
- ldr r0, _08068580
- b _080686EE
- .align 2, 0
-_08068580: .4byte gUnknown_081C346A
-_08068584:
- adds r0, r5, 0
- bl is_tile_x8C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806859C
- ldr r0, _08068598
- b _080686EE
- .align 2, 0
-_08068598: .4byte gUnknown_081616E1
-_0806859C:
- adds r0, r5, 0
- bl is_tile_x85
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080685B4
- ldr r0, _080685B0
- b _080686EE
- .align 2, 0
-_080685B0: .4byte Event_WorldMap
-_080685B4:
- adds r0, r5, 0
- bl sub_805791C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080685CC
- ldr r0, _080685C8
- b _080686EE
- .align 2, 0
-_080685C8: .4byte Event_RunningShoesManual
-_080685CC:
- adds r0, r5, 0
- bl sub_8057930
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080685E4
- ldr r0, _080685E0
- b _080686EE
- .align 2, 0
-_080685E0: .4byte PictureBookShelfScript
-_080685E4:
- adds r0, r5, 0
- bl sub_8057944
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080685FC
- ldr r0, _080685F8
- b _080686EE
- .align 2, 0
-_080685F8: .4byte BookshelfScript
-_080685FC:
- adds r0, r5, 0
- bl sub_8057958
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068614
- ldr r0, _08068610
- b _080686EE
- .align 2, 0
-_08068610: .4byte PokemonCenterBookshelfScript
-_08068614:
- adds r0, r5, 0
- bl sub_805796C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806862C
- ldr r0, _08068628
- b _080686EE
- .align 2, 0
-_08068628: .4byte VaseScript
-_0806862C:
- adds r0, r5, 0
- bl sub_8057980
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068644
- ldr r0, _08068640
- b _080686EE
- .align 2, 0
-_08068640: .4byte TrashCanScript
-_08068644:
- adds r0, r5, 0
- bl sub_8057994
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806865C
- ldr r0, _08068658
- b _080686EE
- .align 2, 0
-_08068658: .4byte ShopShelfScript
-_0806865C:
- adds r0, r5, 0
- bl sub_80579A8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068674
- ldr r0, _08068670
- b _080686EE
- .align 2, 0
-_08068670: .4byte BlueprintScript
-_08068674:
- movs r4, 0x4
- ldrsb r4, [r6, r4]
- movs r1, 0
- ldrsh r0, [r6, r1]
- movs r2, 0x2
- ldrsh r1, [r6, r2]
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _080686EC
- adds r0, r5, 0
- bl sub_8057238
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080686A4
- ldr r0, _080686A0
- b _080686EE
- .align 2, 0
-_080686A0: .4byte gUnknown_0815F36C
-_080686A4:
- adds r0, r5, 0
- bl sub_805724C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080686BC
- ldr r0, _080686B8
- b _080686EE
- .align 2, 0
-_080686B8: .4byte gUnknown_0815F43A
-_080686BC:
- adds r0, r5, 0
- bl sub_8057364
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080686D4
- ldr r0, _080686D0
- b _080686EE
- .align 2, 0
-_080686D0: .4byte gUnknown_0815F523
-_080686D4:
- adds r0, r5, 0
- bl sub_8057378
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080686EC
- ldr r0, _080686E8
- b _080686EE
- .align 2, 0
-_080686E8: .4byte gUnknown_0815F528
-_080686EC:
- movs r0, 0
-_080686EE:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8068500
-
- thumb_func_start TryGetFieldMoveScript
-TryGetFieldMoveScript: @ 80686F4
- push {r4,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r0, _08068724
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806872C
- bl PartyHasMonWithSurf
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806872C
- bl IsPlayerFacingSurfableFishableWater
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806872C
- ldr r0, _08068728
- b _0806876A
- .align 2, 0
-_08068724: .4byte 0x0000080b
-_08068728: .4byte UseSurfScript
-_0806872C:
- adds r0, r4, 0
- bl MetatileBehavior_IsWaterfall
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068768
- ldr r0, _08068758
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068760
- bl IsPlayerSurfingNorth
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068760
- ldr r0, _0806875C
- b _0806876A
- .align 2, 0
-_08068758: .4byte 0x0000080e
-_0806875C: .4byte UseWaterfallScript
-_08068760:
- ldr r0, _08068764
- b _0806876A
- .align 2, 0
-_08068764: .4byte CannotUseWaterfallScript
-_08068768:
- movs r0, 0
-_0806876A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end TryGetFieldMoveScript
-
- thumb_func_start sub_8068770
-sub_8068770: @ 8068770
- push {lr}
- ldr r0, _08068794
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0806879C
- bl sub_8068F18
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0806879C
- ldr r0, _08068798
- bl script_env_1_execute_new_script
- movs r0, 0x1
- b _0806879E
- .align 2, 0
-_08068794: .4byte 0x0000080d
-_08068798: .4byte UseDiveScript
-_0806879C:
- movs r0, 0
-_0806879E:
- pop {r1}
- bx r1
- thumb_func_end sub_8068770
-
- thumb_func_start sub_80687A4
-sub_80687A4: @ 80687A4
- push {lr}
- ldr r0, _080687D0
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080687DC
- ldr r0, _080687D4
- ldrb r0, [r0, 0x17]
- cmp r0, 0x5
- bne _080687DC
- bl sub_8068F18
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080687DC
- ldr r0, _080687D8
- bl script_env_1_execute_new_script
- movs r0, 0x1
- b _080687DE
- .align 2, 0
-_080687D0: .4byte 0x0000080d
-_080687D4: .4byte 0x0202e828
-_080687D8: .4byte UnderwaterUseDiveScript
-_080687DC:
- movs r0, 0
-_080687DE:
- pop {r1}
- bx r1
- thumb_func_end sub_80687A4
-
- thumb_func_start sub_80687E4
-sub_80687E4: @ 80687E4
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- adds r6, r4, 0
- bl mapheader_trigger_activate_at__run_now
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068834
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8068A64
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068834
- adds r0, r6, 0
- bl sub_8068870
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068834
- bl sub_8068894
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068834
- bl sub_8085558
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068834
- movs r0, 0
- b _08068836
-_08068834:
- movs r0, 0x1
-_08068836:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80687E4
-
- thumb_func_start mapheader_trigger_activate_at__run_now
-mapheader_trigger_activate_at__run_now: @ 806883C
- push {r4,lr}
- ldr r4, _08068864
- ldrh r1, [r0]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- ldrh r2, [r0, 0x2]
- subs r2, 0x7
- lsls r2, 16
- lsrs r2, 16
- ldrb r3, [r0, 0x4]
- adds r0, r4, 0
- bl mapheader_trigger_activate_at
- cmp r0, 0
- beq _08068868
- bl script_env_1_execute_new_script
- movs r0, 0x1
- b _0806886A
- .align 2, 0
-_08068864: .4byte 0x0202e828
-_08068868:
- movs r0, 0
-_0806886A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end mapheader_trigger_activate_at__run_now
-
- thumb_func_start sub_8068870
-sub_8068870: @ 8068870
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_8057818
- lsls r0, 24
- cmp r0, 0
- bne _08068884
- movs r0, 0
- b _0806888C
-_08068884:
- ldr r0, _08068890
- bl script_env_1_execute_new_script
- movs r0, 0x1
-_0806888C:
- pop {r1}
- bx r1
- .align 2, 0
-_08068890: .4byte GraniteCave_B1F_EventScript_1C6BC5
- thumb_func_end sub_8068870
-
- thumb_func_start sub_8068894
-sub_8068894: @ 8068894
- push {lr}
- bl sub_8082B78
- bl happiness_algorithm_step
- bl overworld_poison_step
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080688B4
- ldr r0, _080688B0
- b _080688E8
- .align 2, 0
-_080688B0: .4byte gUnknown_081A14B8
-_080688B4:
- bl sub_80422A0
- lsls r0, 24
- cmp r0, 0
- beq _080688CC
- movs r0, 0xD
- bl sav12_xor_increment
- ldr r0, _080688C8
- b _080688E8
- .align 2, 0
-_080688C8: .4byte Event_EggHatch
-_080688CC:
- bl safari_step
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080688EC
- movs r0, 0x1
- bl sub_810D9B0
- cmp r0, 0x1
- beq _080688E6
- movs r0, 0
- b _080688EE
-_080688E6:
- ldr r0, _080688F4
-_080688E8:
- bl script_env_1_execute_new_script
-_080688EC:
- movs r0, 0x1
-_080688EE:
- pop {r1}
- bx r1
- .align 2, 0
-_080688F4: .4byte gUnknown_0815FD0D
- thumb_func_end sub_8068894
-
- thumb_func_start unref_sub_80688F8
-unref_sub_80688F8: @ 80688F8
- push {lr}
- ldr r0, _08068908
- movs r1, 0
- bl VarSet
- pop {r0}
- bx r0
- .align 2, 0
-_08068908: .4byte 0x0000402a
- thumb_func_end unref_sub_80688F8
-
- thumb_func_start happiness_algorithm_step
-happiness_algorithm_step: @ 806890C
- push {r4,r5,lr}
- ldr r0, _08068940
- bl GetVarPointer
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- ldrh r1, [r0]
- movs r2, 0x7F
- ands r1, r2
- strh r1, [r0]
- cmp r1, 0
- bne _0806893A
- ldr r5, _08068944
- movs r4, 0x5
-_0806892A:
- adds r0, r5, 0
- movs r1, 0x5
- bl sub_803FCD4
- adds r5, 0x64
- subs r4, 0x1
- cmp r4, 0
- bge _0806892A
-_0806893A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08068940: .4byte 0x0000402a
-_08068944: .4byte 0x03004360
- thumb_func_end happiness_algorithm_step
-
- thumb_func_start overworld_poison_timer_set
-overworld_poison_timer_set: @ 8068948
- push {lr}
- ldr r0, _08068958
- movs r1, 0
- bl VarSet
- pop {r0}
- bx r0
- .align 2, 0
-_08068958: .4byte 0x0000402b
- thumb_func_end overworld_poison_timer_set
-
- thumb_func_start overworld_poison_step
-overworld_poison_step: @ 806895C
- push {lr}
- ldr r0, _08068994
- ldrb r0, [r0, 0x17]
- cmp r0, 0x9
- beq _0806899C
- ldr r0, _08068998
- bl GetVarPointer
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- ldrh r1, [r0]
- movs r2, 0x3
- ands r1, r2
- strh r1, [r0]
- cmp r1, 0
- bne _0806899C
- bl overworld_poison
- cmp r0, 0x1
- beq _0806899C
- cmp r0, 0x1
- ble _0806899C
- cmp r0, 0x2
- bne _0806899C
- movs r0, 0x1
- b _0806899E
- .align 2, 0
-_08068994: .4byte 0x0202e828
-_08068998: .4byte 0x0000402b
-_0806899C:
- movs r0, 0
-_0806899E:
- pop {r1}
- bx r1
- thumb_func_end overworld_poison_step
-
- thumb_func_start prev_quest_postbuffer_cursor_backup_reset
-prev_quest_postbuffer_cursor_backup_reset: @ 80689A4
- ldr r1, _080689AC
- movs r0, 0
- strb r0, [r1]
- bx lr
- .align 2, 0
-_080689AC: .4byte 0x0202e8c0
- thumb_func_end prev_quest_postbuffer_cursor_backup_reset
-
- thumb_func_start is_it_battle_time_3
-is_it_battle_time_3: @ 80689B0
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r7, r4, 0
- ldr r6, _080689CC
- ldrb r0, [r6]
- cmp r0, 0x3
- bhi _080689D4
- adds r0, 0x1
- strb r0, [r6]
- ldr r0, _080689D0
- strh r4, [r0]
- movs r0, 0
- b _080689F8
- .align 2, 0
-_080689CC: .4byte 0x0202e8c0
-_080689D0: .4byte 0x0202e8c2
-_080689D4:
- ldr r5, _080689EC
- ldrh r1, [r5]
- adds r0, r4, 0
- bl sub_8085104
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080689F0
- strh r4, [r5]
- movs r0, 0
- b _080689F8
- .align 2, 0
-_080689EC: .4byte 0x0202e8c2
-_080689F0:
- movs r0, 0
- strb r0, [r6]
- strh r7, [r5]
- movs r0, 0x1
-_080689F8:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end is_it_battle_time_3
-
- thumb_func_start mapheader_run_first_tag2_script_list_match_conditionally
-mapheader_run_first_tag2_script_list_match_conditionally: @ 8068A00
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _08068A54
- mov r8, r0
- adds r1, r7, 0
- bl map_warp_check_packed
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl is_non_stair_warp_tile
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068A58
- lsls r0, r6, 24
- asrs r4, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _08068A58
- bl walkrun_find_lowest_active_bit_in_bitfield
- mov r0, r8
- adds r1, r4, 0
- adds r2, r7, 0
- bl sub_8068C30
- bl sub_8080E88
- movs r0, 0x1
- b _08068A5A
- .align 2, 0
-_08068A54: .4byte 0x0202e828
-_08068A58:
- movs r0, 0
-_08068A5A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end mapheader_run_first_tag2_script_list_match_conditionally
-
- thumb_func_start sub_8068A64
-sub_8068A64: @ 8068A64
- push {r4-r7,lr}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- ldr r7, _08068ABC
- adds r0, r7, 0
- adds r1, r6, 0
- bl map_warp_check_packed
- lsls r0, 24
- asrs r4, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _08068B28
- adds r0, r5, 0
- bl sub_8068B30
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068B28
- bl walkrun_find_lowest_active_bit_in_bitfield
- adds r0, r7, 0
- adds r1, r4, 0
- adds r2, r6, 0
- bl sub_8068C30
- lsls r0, r5, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsEscalator
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068AC0
- adds r0, r4, 0
- bl sub_8080F2C
- movs r0, 0x1
- b _08068B2A
- .align 2, 0
-_08068ABC: .4byte 0x0202e828
-_08068AC0:
- adds r0, r4, 0
- bl sub_8057798
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068AD6
- bl sub_8080F48
- movs r0, 0x1
- b _08068B2A
-_08068AD6:
- adds r0, r4, 0
- bl is_role_x68
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068AEC
- bl sub_8080F58
- movs r0, 0x1
- b _08068B2A
-_08068AEC:
- adds r0, r4, 0
- bl MetatileBehavior_IsAquaHideoutWarp
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068B02
- bl sub_8080F68
- movs r0, 0x1
- b _08068B2A
-_08068B02:
- adds r0, r4, 0
- bl sub_8057804
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068B20
- ldr r0, _08068B1C
- bl script_env_1_execute_new_script
- movs r0, 0x1
- b _08068B2A
- .align 2, 0
-_08068B1C: .4byte gUnknown_081C6BDE
-_08068B20:
- bl sub_8080E88
- movs r0, 0x1
- b _08068B2A
-_08068B28:
- movs r0, 0
-_08068B2A:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8068A64
-
- thumb_func_start sub_8068B30
-sub_8068B30: @ 8068B30
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl is_tile_x69_2_warp_door
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068BAA
- adds r0, r4, 0
- bl MetatileBehavior_IsLadder
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068BAA
- adds r0, r4, 0
- bl MetatileBehavior_IsEscalator
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068BAA
- adds r0, r4, 0
- bl sub_8056F08
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068BAA
- adds r0, r4, 0
- bl sub_8057798
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068BAA
- adds r0, r4, 0
- bl is_role_x68
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068BAA
- adds r0, r4, 0
- bl MetatileBehavior_IsAquaHideoutWarp
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068BAA
- adds r0, r4, 0
- bl sub_8057804
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _08068BAA
- movs r0, 0
- b _08068BAC
-_08068BAA:
- movs r0, 0x1
-_08068BAC:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8068B30
-
- thumb_func_start is_non_stair_warp_tile
-is_non_stair_warp_tile: @ 8068BB4
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r1, 0x2
- beq _08068BD8
- cmp r1, 0x2
- bgt _08068BCE
- cmp r1, 0x1
- beq _08068BE2
- b _08068C04
-_08068BCE:
- cmp r2, 0x3
- beq _08068BEC
- cmp r2, 0x4
- beq _08068BF6
- b _08068C04
-_08068BD8:
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsNorthArrowWarp
- b _08068BFE
-_08068BE2:
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsSouthArrowWarp
- b _08068BFE
-_08068BEC:
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsWestArrowWarp
- b _08068BFE
-_08068BF6:
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsEastArrowWarp
-_08068BFE:
- lsls r0, 24
- lsrs r0, 24
- b _08068C06
-_08068C04:
- movs r0, 0
-_08068C06:
- pop {r1}
- bx r1
- thumb_func_end is_non_stair_warp_tile
-
- thumb_func_start map_warp_check_packed
-map_warp_check_packed: @ 8068C0C
- push {lr}
- adds r3, r1, 0
- ldrh r1, [r3]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- ldrh r2, [r3, 0x2]
- subs r2, 0x7
- lsls r2, 16
- lsrs r2, 16
- ldrb r3, [r3, 0x4]
- bl map_warp_check
- lsls r0, 24
- asrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end map_warp_check_packed
-
- thumb_func_start sub_8068C30
-sub_8068C30: @ 8068C30
- push {r4-r7,lr}
- adds r5, r2, 0
- ldr r0, _08068C50
- ldr r0, [r0, 0x4]
- lsls r1, 24
- asrs r7, r1, 24
- lsls r6, r7, 3
- ldr r0, [r0, 0x8]
- adds r4, r0, r6
- ldrb r0, [r4, 0x6]
- cmp r0, 0x7F
- bne _08068C54
- ldrb r0, [r4, 0x5]
- bl copy_saved_warp2_bank_and_enter_x_to_warp1
- b _08068C9E
- .align 2, 0
-_08068C50: .4byte 0x0202e828
-_08068C54:
- movs r0, 0x7
- ldrsb r0, [r4, r0]
- movs r1, 0x6
- ldrsb r1, [r4, r1]
- movs r2, 0x5
- ldrsb r2, [r4, r2]
- bl warp1_set_2
- movs r1, 0
- ldrsh r0, [r5, r1]
- movs r2, 0x2
- ldrsh r1, [r5, r2]
- bl sub_80535C4
- ldrb r0, [r4, 0x7]
- ldrb r1, [r4, 0x6]
- bl get_mapheader_by_bank_and_number
- ldr r1, [r0, 0x4]
- ldrb r0, [r4, 0x5]
- ldr r1, [r1, 0x8]
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x6]
- cmp r0, 0x7F
- bne _08068C9E
- adds r0, r6, r1
- ldrb r0, [r0, 0x5]
- ldr r2, _08068CA4
- movs r1, 0x4
- ldrsb r1, [r2, r1]
- ldrb r2, [r2, 0x5]
- lsls r2, 24
- asrs r2, 24
- adds r3, r7, 0
- bl saved_warp2_set
-_08068C9E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08068CA4: .4byte 0x02025734
- thumb_func_end sub_8068C30
-
- thumb_func_start map_warp_consider_2_to_inside
-map_warp_consider_2_to_inside: @ 8068CA8
- push {r4-r7,lr}
- adds r5, r0, 0
- lsls r1, 16
- lsrs r0, r1, 16
- adds r7, r0, 0
- lsls r2, 24
- lsrs r2, 24
- cmp r2, 0x2
- bne _08068D2C
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80571C0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068CE0
- ldr r0, _08068CDC
- ldr r1, [r0, 0x4]
- adds r0, r5, 0
- bl sub_80BC038
- movs r0, 0x1
- b _08068D2E
- .align 2, 0
-_08068CDC: .4byte 0x0202e828
-_08068CE0:
- adds r0, r4, 0
- bl is_tile_x69_2_warp_door
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068D2C
- ldr r6, _08068D28
- adds r0, r6, 0
- adds r1, r5, 0
- bl map_warp_check_packed
- lsls r0, 24
- asrs r4, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _08068D2C
- adds r0, r7, 0
- bl sub_8068B30
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068D2C
- bl walkrun_find_lowest_active_bit_in_bitfield
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8068C30
- bl sub_8080EF0
- movs r0, 0x1
- b _08068D2E
- .align 2, 0
-_08068D28: .4byte 0x0202e828
-_08068D2C:
- movs r0, 0
-_08068D2E:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end map_warp_consider_2_to_inside
-
- thumb_func_start map_warp_check
-map_warp_check: @ 8068D34
- push {r4-r6,lr}
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r5, r2, 16
- lsls r3, 24
- lsrs r4, r3, 24
- ldr r0, [r0, 0x4]
- ldr r1, [r0, 0x8]
- ldrb r3, [r0, 0x1]
- movs r2, 0
- cmp r2, r3
- bge _08068D72
-_08068D4E:
- ldrh r0, [r1]
- cmp r0, r6
- bne _08068D6A
- ldrh r0, [r1, 0x2]
- cmp r0, r5
- bne _08068D6A
- ldrb r0, [r1, 0x4]
- cmp r0, r4
- beq _08068D64
- cmp r0, 0
- bne _08068D6A
-_08068D64:
- lsls r0, r2, 24
- asrs r0, 24
- b _08068D76
-_08068D6A:
- adds r2, 0x1
- adds r1, 0x8
- cmp r2, r3
- blt _08068D4E
-_08068D72:
- movs r0, 0x1
- negs r0, r0
-_08068D76:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end map_warp_check
-
- thumb_func_start trigger_activate
-trigger_activate: @ 8068D7C
- push {r4,lr}
- adds r4, r0, 0
- cmp r4, 0
- beq _08068DB2
- ldr r1, [r4, 0xC]
- cmp r1, 0
- bne _08068D92
- ldrb r0, [r4, 0x6]
- bl sub_8069408
- b _08068DB2
-_08068D92:
- ldrh r0, [r4, 0x6]
- cmp r0, 0
- beq _08068DAC
- ldrh r0, [r4, 0x6]
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r4, 0x8]
- cmp r0, r1
- bne _08068DB2
- ldr r0, [r4, 0xC]
- b _08068DB4
-_08068DAC:
- adds r0, r1, 0
- bl script_env_2_execute_new_script
-_08068DB2:
- movs r0, 0
-_08068DB4:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end trigger_activate
-
- thumb_func_start mapheader_trigger_activate_at
-mapheader_trigger_activate_at: @ 8068DBC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- lsls r2, 16
- lsrs r2, 16
- mov r9, r2
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- ldr r0, [r0, 0x4]
- ldr r1, [r0, 0xC]
- ldrb r7, [r0, 0x2]
- movs r6, 0
- cmp r6, r7
- bge _08068E12
- adds r5, r1, 0
- adds r4, r5, 0
-_08068DE8:
- ldrh r0, [r4]
- cmp r0, r10
- bne _08068E08
- ldrh r0, [r4, 0x2]
- cmp r0, r9
- bne _08068E08
- ldrb r0, [r4, 0x4]
- cmp r0, r8
- beq _08068DFE
- cmp r0, 0
- bne _08068E08
-_08068DFE:
- adds r0, r5, 0
- bl trigger_activate
- cmp r0, 0
- bne _08068E14
-_08068E08:
- adds r4, 0x10
- adds r5, 0x10
- adds r6, 0x1
- cmp r6, r7
- blt _08068DE8
-_08068E12:
- movs r0, 0
-_08068E14:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end mapheader_trigger_activate_at
-
- thumb_func_start sub_8068E24
-sub_8068E24: @ 8068E24
- push {r4,lr}
- ldr r4, _08068E48
- ldrh r1, [r0]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- ldrh r2, [r0, 0x2]
- subs r2, 0x7
- lsls r2, 16
- lsrs r2, 16
- ldrb r3, [r0, 0x4]
- adds r0, r4, 0
- bl mapheader_trigger_activate_at
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08068E48: .4byte 0x0202e828
- thumb_func_end sub_8068E24
-
- thumb_func_start FindInvisibleMapObjectByPosition
-FindInvisibleMapObjectByPosition: @ 8068E4C
- push {r4-r7,lr}
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r6, r2, 16
- lsls r3, 24
- lsrs r5, r3, 24
- ldr r0, [r0, 0x4]
- ldr r4, [r0, 0x10]
- ldrb r3, [r0, 0x3]
- movs r2, 0
- cmp r2, r3
- bcs _08068E92
-_08068E66:
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r4
- ldrh r0, [r1]
- cmp r0, r7
- bne _08068E88
- ldrh r0, [r1, 0x2]
- cmp r0, r6
- bne _08068E88
- ldrb r0, [r1, 0x4]
- cmp r0, r5
- beq _08068E84
- cmp r0, 0
- bne _08068E88
-_08068E84:
- adds r0, r1, 0
- b _08068E94
-_08068E88:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r3
- bcc _08068E66
-_08068E92:
- movs r0, 0
-_08068E94:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end FindInvisibleMapObjectByPosition
-
- thumb_func_start dive_warp
-dive_warp: @ 8068E9C
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- ldr r0, _08068ED0
- ldrb r0, [r0, 0x17]
- cmp r0, 0x5
- bne _08068ED4
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_805750C
- lsls r0, 24
- cmp r0, 0
- bne _08068ED4
- ldrh r0, [r4]
- subs r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r4, 0x2]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- bl sub_80538B0
- b _08068EF8
- .align 2, 0
-_08068ED0: .4byte 0x0202e828
-_08068ED4:
- lsls r0, r5, 24
- lsrs r0, 24
- bl sub_80574EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068F10
- ldrh r0, [r4]
- subs r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r4, 0x2]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- bl sub_80538D0
-_08068EF8:
- lsls r0, 24
- cmp r0, 0
- beq _08068F10
- bl walkrun_find_lowest_active_bit_in_bitfield
- bl sp13E_warp_to_last_warp
- movs r0, 0xE9
- bl audio_play
- movs r0, 0x1
- b _08068F12
-_08068F10:
- movs r0, 0
-_08068F12:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end dive_warp
-
- thumb_func_start sub_8068F18
-sub_8068F18: @ 8068F18
- push {r4,r5,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _08068F70
- ldrb r0, [r0, 0x17]
- cmp r0, 0x5
- bne _08068F74
- adds r0, r5, 0
- bl sub_805750C
- lsls r0, 24
- cmp r0, 0
- bne _08068F74
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r4]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- bl sub_80538B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068FA4
- movs r0, 0x1
- b _08068FA6
- .align 2, 0
-_08068F70: .4byte 0x0202e828
-_08068F74:
- adds r0, r5, 0
- bl sub_80574EC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068FA4
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r4]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- bl sub_80538D0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08068FA4
- movs r0, 0x2
- b _08068FA6
-_08068FA4:
- movs r0, 0
-_08068FA6:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8068F18
-
- thumb_func_start GetFieldObjectScriptPointerForComparison
-GetFieldObjectScriptPointerForComparison: @ 8068FB0
- push {r4,r5,lr}
- sub sp, 0x8
- bl player_get_direction_upper_nybble
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r5, sp
- mov r0, sp
- bl player_get_next_pos_and_height
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0x2
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, sp
- adds r2, r4, 0
- bl sub_8068364
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GetFieldObjectScriptPointerForComparison
-
- thumb_func_start sub_8068FEC
-sub_8068FEC: @ 8068FEC
- push {r4,lr}
- sub sp, 0x8
- bl player_get_direction_upper_nybble
- mov r4, sp
- mov r0, sp
- bl player_get_pos_to_and_height
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- ldr r4, _0806902C
- adds r0, r4, 0
- mov r1, sp
- bl map_warp_check_packed
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- adds r0, r4, 0
- mov r2, sp
- bl sub_8068C30
- movs r0, 0
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806902C: .4byte 0x0202e828
- thumb_func_end sub_8068FEC
-
- thumb_func_start sub_8069030
-sub_8069030: @ 8069030
- push {r4,lr}
- ldr r4, _08069064
- movs r2, 0x90
- lsls r2, 1
- adds r0, r4, 0
- movs r1, 0
- bl memset
- movs r0, 0x90
- lsls r0, 1
- adds r4, r0
- movs r2, 0x80
- lsls r2, 2
- adds r0, r4, 0
- movs r1, 0
- bl memset
- ldr r0, _08069068
- movs r1, 0
- movs r2, 0x10
- bl memset
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08069064: .4byte 0x02026954
-_08069068: .4byte 0x0202e8e2
- thumb_func_end sub_8069030
-
- thumb_func_start sub_806906C
-sub_806906C: @ 806906C
- push {lr}
- ldr r0, _080690A0
- movs r1, 0
- str r1, [r0]
- movs r1, 0x90
- lsls r1, 1
- adds r0, r1
- movs r1, 0
- movs r2, 0x20
- bl memset
- ldr r0, _080690A4
- bl FlagReset
- ldr r0, _080690A8
- bl FlagReset
- ldr r0, _080690AC
- bl FlagReset
- ldr r0, _080690B0
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_080690A0: .4byte 0x02026954
-_080690A4: .4byte 0x0000084d
-_080690A8: .4byte 0x0000084e
-_080690AC: .4byte 0x00000829
-_080690B0: .4byte 0x00000861
- thumb_func_end sub_806906C
-
- thumb_func_start sub_80690B4
-sub_80690B4: @ 80690B4
- push {lr}
- ldr r0, _080690C4
- movs r1, 0
- movs r2, 0x8
- bl memset
- pop {r0}
- bx r0
- .align 2, 0
-_080690C4: .4byte 0x02026a6c
- thumb_func_end sub_80690B4
-
- thumb_func_start sub_80690C8
-sub_80690C8: @ 80690C8
- push {lr}
- ldr r0, _080690E4
- bl GetVarPointer
- ldr r2, _080690E8
- movs r1, 0
- strb r1, [r2, 0x1A]
- strh r1, [r0]
- ldr r0, _080690EC
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_080690E4: .4byte 0x00004046
-_080690E8: .4byte gSaveBlock2
-_080690EC: .4byte 0x00000836
- thumb_func_end sub_80690C8
-
- thumb_func_start sub_80690F0
-sub_80690F0: @ 80690F0
- push {r4,r5,lr}
- ldr r0, _0806911C
- bl GetVarPointer
- ldr r4, _08069120
- movs r5, 0
- movs r1, 0xDA
- strb r1, [r4, 0x1A]
- ldr r2, _08069124
- adds r1, r2, 0
- strh r1, [r0]
- ldr r0, _08069128
- bl FlagSet
- movs r0, 0x1
- strb r0, [r4, 0x19]
- strb r5, [r4, 0x18]
- bl sub_808C0A0
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806911C: .4byte 0x00004046
-_08069120: .4byte gSaveBlock2
-_08069124: .4byte 0x00000302
-_08069128: .4byte 0x00000836
- thumb_func_end sub_80690F0
-
- thumb_func_start sub_806912C
-sub_806912C: @ 806912C
- push {lr}
- ldr r0, _08069154
- ldrb r0, [r0, 0x1A]
- cmp r0, 0xDA
- bne _08069164
- ldr r0, _08069158
- bl VarGet
- lsls r0, 16
- ldr r1, _0806915C
- cmp r0, r1
- bne _08069164
- ldr r0, _08069160
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08069164
- movs r0, 0x1
- b _08069166
- .align 2, 0
-_08069154: .4byte gSaveBlock2
-_08069158: .4byte 0x00004046
-_0806915C: .4byte 0x03020000
-_08069160: .4byte 0x00000836
-_08069164:
- movs r0, 0
-_08069166:
- pop {r1}
- bx r1
- thumb_func_end sub_806912C
-
- thumb_func_start unref_sub_806916C
-unref_sub_806916C: @ 806916C
- push {lr}
- ldr r0, _08069178
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_08069178: .4byte 0x0000084c
- thumb_func_end unref_sub_806916C
-
- thumb_func_start unref_sub_806917C
-unref_sub_806917C: @ 806917C
- push {lr}
- ldr r0, _08069188
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_08069188: .4byte 0x0000084c
- thumb_func_end unref_sub_806917C
-
- thumb_func_start sub_806918C
-sub_806918C: @ 806918C
- push {lr}
- ldr r0, _0806919C
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0806919C: .4byte 0x0000084c
- thumb_func_end sub_806918C
-
- thumb_func_start sub_80691A0
-sub_80691A0: @ 80691A0
- push {lr}
- ldr r0, _080691B4
- movs r1, 0
- bl VarSet
- ldr r0, _080691B8
- bl FlagReset
- pop {r0}
- bx r0
- .align 2, 0
-_080691B4: .4byte 0x0000402c
-_080691B8: .4byte 0x00000862
- thumb_func_end sub_80691A0
-
- thumb_func_start sub_80691BC
-sub_80691BC: @ 80691BC
- push {lr}
- ldr r0, _080691D4
- movs r1, 0x92
- lsls r1, 4
- bl VarSet
- ldr r0, _080691D8
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_080691D4: .4byte 0x0000402c
-_080691D8: .4byte 0x00000862
- thumb_func_end sub_80691BC
-
- thumb_func_start sub_80691DC
-sub_80691DC: @ 80691DC
- push {lr}
- ldr r0, _08069200
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08069208
- ldr r0, _08069204
- bl VarGet
- lsls r0, 16
- movs r1, 0x92
- lsls r1, 20
- cmp r0, r1
- bne _08069208
- movs r0, 0x1
- b _0806920A
- .align 2, 0
-_08069200: .4byte 0x00000862
-_08069204: .4byte 0x0000402c
-_08069208:
- movs r0, 0
-_0806920A:
- pop {r1}
- bx r1
- thumb_func_end sub_80691DC
-
- thumb_func_start GetVarPointer
-GetVarPointer: @ 8069210
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- adds r2, r1, 0
- ldr r0, _08069224
- cmp r1, r0
- bhi _08069228
- movs r0, 0
- b _0806924A
- .align 2, 0
-_08069224: .4byte 0x00003fff
-_08069228:
- lsls r0, r1, 16
- cmp r0, 0
- bge _08069244
- ldr r0, _0806923C
- ldr r2, _08069240
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldr r0, [r1]
- b _0806924A
- .align 2, 0
-_0806923C: .4byte gUnknown_0814B14C
-_08069240: .4byte 0xffff8000
-_08069244:
- lsls r0, r2, 1
- ldr r1, _08069250
- adds r0, r1
-_0806924A:
- pop {r1}
- bx r1
- .align 2, 0
-_08069250: .4byte 0x0201ea74
- thumb_func_end GetVarPointer
-
- thumb_func_start VarGet
-VarGet: @ 8069254
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl GetVarPointer
- cmp r0, 0
- beq _08069268
- ldrh r0, [r0]
- b _0806926A
-_08069268:
- adds r0, r4, 0
-_0806926A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end VarGet
-
- thumb_func_start VarSet
-VarSet: @ 8069270
- push {r4,lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r4, r1, 16
- bl GetVarPointer
- cmp r0, 0
- beq _08069288
- strh r4, [r0]
- movs r0, 0x1
- b _0806928A
-_08069288:
- movs r0, 0
-_0806928A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end VarSet
-
- thumb_func_start VarGetFieldObjectGraphicsId
-VarGetFieldObjectGraphicsId: @ 8069290
- push {lr}
- lsls r0, 24
- lsrs r0, 8
- ldr r1, _080692A8
- adds r0, r1
- lsrs r0, 16
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_080692A8: .4byte 0x40100000
- thumb_func_end VarGetFieldObjectGraphicsId
-
- thumb_func_start GetFlagPointer
-GetFlagPointer: @ 80692AC
- push {lr}
- lsls r2, r0, 16
- lsrs r1, r2, 16
- adds r3, r1, 0
- cmp r1, 0
- bne _080692BC
- movs r0, 0
- b _080692E2
-_080692BC:
- ldr r0, _080692C8
- cmp r1, r0
- bhi _080692D0
- lsrs r0, r2, 19
- ldr r1, _080692CC
- b _080692E0
- .align 2, 0
-_080692C8: .4byte 0x00003fff
-_080692CC: .4byte 0x02026954
-_080692D0:
- ldr r1, _080692E8
- adds r0, r3, r1
- cmp r0, 0
- bge _080692DC
- adds r1, 0x7
- adds r0, r3, r1
-_080692DC:
- asrs r0, 3
- ldr r1, _080692EC
-_080692E0:
- adds r0, r1
-_080692E2:
- pop {r1}
- bx r1
- .align 2, 0
-_080692E8: .4byte 0xffffc000
-_080692EC: .4byte 0x0202e8e2
- thumb_func_end GetFlagPointer
-
- thumb_func_start FlagSet
-FlagSet: @ 80692F0
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl GetFlagPointer
- adds r2, r0, 0
- cmp r2, 0
- beq _08069310
- movs r0, 0x7
- ands r0, r4
- movs r1, 0x1
- lsls r1, r0
- ldrb r0, [r2]
- orrs r1, r0
- strb r1, [r2]
-_08069310:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end FlagSet
-
- thumb_func_start FlagReset
-FlagReset: @ 8069318
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl GetFlagPointer
- adds r2, r0, 0
- cmp r2, 0
- beq _08069338
- movs r0, 0x7
- ands r0, r4
- movs r1, 0x1
- lsls r1, r0
- ldrb r0, [r2]
- bics r0, r1
- strb r0, [r2]
-_08069338:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end FlagReset
-
- thumb_func_start FlagGet
-FlagGet: @ 8069340
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r0, r4, 0
- bl GetFlagPointer
- cmp r0, 0
- beq _08069364
- ldrb r0, [r0]
- movs r1, 0x7
- ands r1, r4
- asrs r0, r1
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08069364
- movs r0, 0x1
- b _08069366
-_08069364:
- movs r0, 0
-_08069366:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end FlagGet
-
- thumb_func_start sub_806936C
-sub_806936C: @ 806936C
- push {lr}
- movs r0, 0x1
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_806936C
-
- thumb_func_start sub_8069378
-sub_8069378: @ 8069378
- push {lr}
- movs r0, 0x2
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_8069378
-
- thumb_func_start sub_8069384
-sub_8069384: @ 8069384
- push {lr}
- movs r0, 0x3
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_8069384
-
- thumb_func_start sub_8069390
-sub_8069390: @ 8069390
- push {lr}
- movs r0, 0x4
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_8069390
-
- thumb_func_start sub_806939C
-sub_806939C: @ 806939C
- push {lr}
- movs r0, 0x5
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_806939C
-
- thumb_func_start sub_80693A8
-sub_80693A8: @ 80693A8
- push {lr}
- movs r0, 0x6
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693A8
-
- thumb_func_start sub_80693B4
-sub_80693B4: @ 80693B4
- push {lr}
- movs r0, 0x9
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693B4
-
- thumb_func_start sub_80693C0
-sub_80693C0: @ 80693C0
- push {lr}
- movs r0, 0x7
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693C0
-
- thumb_func_start sub_80693CC
-sub_80693CC: @ 80693CC
- push {lr}
- movs r0, 0x8
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693CC
-
- thumb_func_start sub_80693D8
-sub_80693D8: @ 80693D8
- push {lr}
- movs r0, 0xB
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693D8
-
- thumb_func_start sub_80693E4
-sub_80693E4: @ 80693E4
- push {lr}
- movs r0, 0xC
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693E4
-
- thumb_func_start sub_80693F0
-sub_80693F0: @ 80693F0
- push {lr}
- movs r0, 0x14
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693F0
-
- thumb_func_start sub_80693FC
-sub_80693FC: @ 80693FC
- push {lr}
- movs r0, 0x15
- bl sub_808070C
- pop {r0}
- bx r0
- thumb_func_end sub_80693FC
-
- thumb_func_start sub_8069408
-sub_8069408: @ 8069408
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r2, 0
- ldr r3, _08069428
-_08069412:
- lsls r1, r2, 3
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r4
- bne _0806942C
- adds r0, r3, 0x4
- adds r0, r1, r0
- ldr r0, [r0]
- bl _call_via_r0
- b _08069436
- .align 2, 0
-_08069428: .4byte gUnknown_083762FC
-_0806942C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xC
- bls _08069412
-_08069436:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8069408
-
- thumb_func_start task_per_step_callback_manager
-task_per_step_callback_manager: @ 806943C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _08069460
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r2, 0x8
- ldrsh r1, [r1, r2]
- ldr r2, _08069464
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .align 2, 0
-_08069460: .4byte 0x03004b20
-_08069464: .4byte gUnknown_08376364
- thumb_func_end task_per_step_callback_manager
-
- thumb_func_start sub_8069468
-sub_8069468: @ 8069468
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0806947A
- cmp r0, 0x1
- beq _08069498
- b _080694AC
-_0806947A:
- ldr r0, _08069494
- ldr r0, [r0, 0x20]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- beq _080694AC
- bl InTrainerHill
- ldrh r0, [r4]
- adds r0, 0x1
- b _080694AA
- .align 2, 0
-_08069494: .4byte 0x03001770
-_08069498:
- ldr r0, _080694B4
- ldr r0, [r0, 0x20]
- movs r1, 0x80
- lsls r1, 5
- ands r0, r1
- cmp r0, 0
- bne _080694AC
- ldrh r0, [r4]
- subs r0, 0x1
-_080694AA:
- strh r0, [r4]
-_080694AC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080694B4: .4byte 0x03001770
- thumb_func_end sub_8069468
-
- thumb_func_start sub_80694B8
-sub_80694B8: @ 80694B8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _080694E8
- adds r4, r1, r0
- bl script_env_2_is_enabled
- lsls r0, 24
- cmp r0, 0
- bne _080694E0
- adds r0, r4, 0
- bl sub_8069468
- adds r0, r4, 0x2
- adds r1, r4, 0x4
- bl sub_80540D0
-_080694E0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080694E8: .4byte 0x03004b28
- thumb_func_end sub_80694B8
-
- thumb_func_start overworld_ensure_per_step_coros_running
-overworld_ensure_per_step_coros_running: @ 80694EC
- push {r4,r5,lr}
- ldr r5, _08069548
- adds r0, r5, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08069516
- adds r0, r5, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0806954C
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
-_08069516:
- ldr r4, _08069550
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _0806952C
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
-_0806952C:
- ldr r4, _08069554
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- bne _08069542
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
-_08069542:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069548: .4byte task_per_step_callback_manager
-_0806954C: .4byte 0x03004b20
-_08069550: .4byte sub_806A1E8
-_08069554: .4byte sub_80694B8
- thumb_func_end overworld_ensure_per_step_coros_running
-
- thumb_func_start activate_per_step_callback
-activate_per_step_callback: @ 8069558
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _08069590
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- beq _0806959A
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _08069594
- adds r1, r0, r1
- movs r2, 0
- adds r0, r1, 0
- adds r0, 0x1E
-_0806957C:
- strh r2, [r0]
- subs r0, 0x2
- cmp r0, r1
- bge _0806957C
- cmp r4, 0x7
- bls _08069598
- movs r0, 0
- strh r0, [r1]
- b _0806959A
- .align 2, 0
-_08069590: .4byte task_per_step_callback_manager
-_08069594: .4byte 0x03004b28
-_08069598:
- strh r4, [r1]
-_0806959A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end activate_per_step_callback
-
- thumb_func_start wild_encounter_reset_coro_args
-wild_encounter_reset_coro_args: @ 80695A0
- push {lr}
- ldr r0, _080695D0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r0, _080695D4
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- beq _080695CA
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _080695D8
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x2]
- strh r1, [r0, 0x4]
-_080695CA:
- pop {r0}
- bx r0
- .align 2, 0
-_080695D0: .4byte task_per_step_callback_manager
-_080695D4: .4byte sub_80694B8
-_080695D8: .4byte 0x03004b28
- thumb_func_end wild_encounter_reset_coro_args
-
- thumb_func_start nullsub_51
-nullsub_51: @ 80695DC
- bx lr
- thumb_func_end nullsub_51
-
- thumb_func_start sub_80695E0
-sub_80695E0: @ 80695E0
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- adds r0, r4, 0
- bl sub_80576A0
- lsls r0, 24
- cmp r0, 0
- beq _080695F8
- adds r0, r5, 0
- b _08069630
-_080695F8:
- adds r0, r4, 0
- bl sub_80576B4
- lsls r0, 24
- cmp r0, 0
- beq _0806960A
- adds r0, r5, 0
- adds r0, 0x8
- b _08069630
-_0806960A:
- adds r0, r4, 0
- bl sub_80576C8
- lsls r0, 24
- cmp r0, 0
- beq _0806961C
- adds r0, r5, 0
- adds r0, 0x10
- b _08069630
-_0806961C:
- adds r0, r4, 0
- bl sub_80576DC
- lsls r0, 24
- cmp r0, 0
- bne _0806962C
- movs r0, 0
- b _08069630
-_0806962C:
- adds r0, r5, 0
- adds r0, 0x18
-_08069630:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80695E0
-
- thumb_func_start sub_8069638
-sub_8069638: @ 8069638
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r5, r0, 0
- mov r8, r3
- lsls r1, 16
- asrs r6, r1, 16
- lsls r2, 16
- asrs r7, r2, 16
- adds r0, r6, 0
- adds r1, r7, 0
- bl MapGridGetMetatileBehaviorAt
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r5, 0
- bl sub_80695E0
- adds r4, r0, 0
- adds r5, r4, 0
- cmp r4, 0
- beq _080696B6
- movs r0, 0
- ldrsb r0, [r4, r0]
- adds r0, r6, r0
- movs r1, 0x1
- ldrsb r1, [r4, r1]
- adds r1, r7, r1
- ldrh r2, [r4, 0x2]
- bl MapGridSetMetatileIdAt
- mov r0, r8
- cmp r0, 0
- beq _0806968E
- movs r0, 0
- ldrsb r0, [r4, r0]
- adds r0, r6, r0
- movs r1, 0x1
- ldrsb r1, [r4, r1]
- adds r1, r7, r1
- bl CurrentMapDrawMetatileAt
-_0806968E:
- movs r0, 0x4
- ldrsb r0, [r5, r0]
- adds r0, r6, r0
- movs r1, 0x5
- ldrsb r1, [r5, r1]
- adds r1, r7, r1
- ldrh r2, [r5, 0x6]
- bl MapGridSetMetatileIdAt
- mov r0, r8
- cmp r0, 0
- beq _080696B6
- movs r0, 0x4
- ldrsb r0, [r5, r0]
- adds r0, r6, r0
- movs r1, 0x5
- ldrsb r1, [r5, r1]
- adds r1, r7, r1
- bl CurrentMapDrawMetatileAt
-_080696B6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8069638
-
- thumb_func_start sub_80696C0
-sub_80696C0: @ 80696C0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- ldr r0, _080696E0
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8069638
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080696E0: .4byte gUnknown_08376384
- thumb_func_end sub_80696C0
-
- thumb_func_start sub_80696E4
-sub_80696E4: @ 80696E4
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- ldr r0, _08069704
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8069638
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069704: .4byte gUnknown_083763A4
- thumb_func_end sub_80696E4
-
- thumb_func_start sub_8069708
-sub_8069708: @ 8069708
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r3, r2, 0
- ldr r0, _08069728
- lsls r4, 16
- asrs r4, 16
- lsls r5, 16
- asrs r5, 16
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8069638
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069728: .4byte gUnknown_083763C4
- thumb_func_end sub_8069708
-
- thumb_func_start sub_806972C
-sub_806972C: @ 806972C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- mov r10, r8
- lsls r1, 16
- lsrs r7, r1, 16
- mov r9, r7
- lsls r2, 16
- asrs r6, r2, 16
- lsls r3, 16
- asrs r5, r3, 16
- adds r0, r6, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80576A0
- lsls r0, 24
- cmp r0, 0
- beq _08069770
- lsls r0, r7, 16
- asrs r0, 16
- cmp r0, r5
- ble _080697B6
-_0806976C:
- movs r0, 0
- b _080697B8
-_08069770:
- adds r0, r4, 0
- bl sub_80576B4
- lsls r0, 24
- cmp r0, 0
- beq _08069788
- mov r1, r9
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, r5
- bge _080697B6
- b _0806976C
-_08069788:
- adds r0, r4, 0
- bl sub_80576C8
- lsls r0, 24
- cmp r0, 0
- beq _080697A0
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, r6
- ble _080697B6
- b _0806976C
-_080697A0:
- adds r0, r4, 0
- bl sub_80576DC
- lsls r0, 24
- cmp r0, 0
- beq _080697B6
- mov r1, r10
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, r6
- blt _0806976C
-_080697B6:
- movs r0, 0x1
-_080697B8:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_806972C
-
- thumb_func_start sub_80697C8
-sub_80697C8: @ 80697C8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- mov r10, r8
- lsls r3, 16
- lsrs r7, r3, 16
- mov r9, r7
- lsls r0, 16
- asrs r6, r0, 16
- lsls r1, 16
- asrs r5, r1, 16
- adds r0, r6, 0
- adds r1, r5, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80576A0
- lsls r0, 24
- cmp r0, 0
- beq _0806980C
- lsls r0, r7, 16
- asrs r0, 16
- cmp r5, r0
- bge _08069852
-_08069808:
- movs r0, 0
- b _08069854
-_0806980C:
- adds r0, r4, 0
- bl sub_80576B4
- lsls r0, 24
- cmp r0, 0
- beq _08069824
- mov r1, r9
- lsls r0, r1, 16
- asrs r0, 16
- cmp r5, r0
- ble _08069852
- b _08069808
-_08069824:
- adds r0, r4, 0
- bl sub_80576C8
- lsls r0, 24
- cmp r0, 0
- beq _0806983C
- mov r1, r8
- lsls r0, r1, 16
- asrs r0, 16
- cmp r6, r0
- bge _08069852
- b _08069808
-_0806983C:
- adds r0, r4, 0
- bl sub_80576DC
- lsls r0, 24
- cmp r0, 0
- beq _08069852
- mov r1, r10
- lsls r0, r1, 16
- asrs r0, 16
- cmp r6, r0
- bgt _08069808
-_08069852:
- movs r0, 0x1
-_08069854:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80697C8
-
- thumb_func_start sub_8069864
-sub_8069864: @ 8069864
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08069898
- adds r4, r1, r0
- mov r5, sp
- adds r5, 0x2
- mov r0, sp
- adds r1, r5, 0
- bl PlayerGetDestCoords
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- adds r6, r5, 0
- cmp r0, 0x1
- beq _080698BE
- cmp r0, 0x1
- bgt _0806989C
- cmp r0, 0
- beq _080698A2
- b _080699CE
- .align 2, 0
-_08069898: .4byte 0x03004b28
-_0806989C:
- cmp r0, 0x2
- beq _0806998C
- b _080699CE
-_080698A2:
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x4]
- ldrh r0, [r5]
- strh r0, [r4, 0x6]
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r3, 0
- ldrsh r1, [r5, r3]
- movs r2, 0x1
- bl sub_80696E4
- b _080699CA
-_080698BE:
- mov r0, sp
- movs r7, 0
- ldrsh r1, [r0, r7]
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _080698D8
- movs r3, 0
- ldrsh r1, [r5, r3]
- movs r7, 0x6
- ldrsh r0, [r4, r7]
- cmp r1, r0
- beq _080699CE
-_080698D8:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r5, 0x6
- ldrsh r3, [r4, r5]
- bl sub_806972C
- cmp r0, 0
- beq _08069920
- movs r7, 0x4
- ldrsh r0, [r4, r7]
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- movs r2, 0x1
- bl sub_80696C0
- movs r3, 0x4
- ldrsh r0, [r4, r3]
- movs r5, 0x6
- ldrsh r1, [r4, r5]
- movs r2, 0
- bl sub_8069708
- ldrh r0, [r4, 0x4]
- strh r0, [r4, 0x8]
- ldrh r0, [r4, 0x6]
- strh r0, [r4, 0xA]
- movs r0, 0x2
- strh r0, [r4, 0x2]
- movs r0, 0x8
- strh r0, [r4, 0xC]
- b _0806992A
-_08069920:
- movs r7, 0x1
- negs r7, r7
- adds r0, r7, 0
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
-_0806992A:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r5, r6, 0
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r7, 0x6
- ldrsh r3, [r4, r7]
- bl sub_80697C8
- cmp r0, 0
- beq _0806995E
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r2, 0x1
- bl sub_80696C0
- movs r0, 0x2
- strh r0, [r4, 0x2]
- movs r0, 0x8
- strh r0, [r4, 0xC]
-_0806995E:
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x4]
- ldrh r0, [r6]
- strh r0, [r4, 0x6]
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r5, 0
- ldrsh r1, [r6, r5]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsPacifidlogLog
- lsls r0, 24
- cmp r0, 0
- beq _080699CE
- movs r0, 0x46
- bl audio_play
- b _080699CE
-_0806998C:
- ldrh r0, [r4, 0xC]
- subs r0, 0x1
- strh r0, [r4, 0xC]
- lsls r0, 16
- cmp r0, 0
- bne _080699CE
- mov r0, sp
- movs r7, 0
- ldrsh r0, [r0, r7]
- movs r2, 0
- ldrsh r1, [r5, r2]
- movs r2, 0x1
- bl sub_80696E4
- movs r3, 0x8
- ldrsh r0, [r4, r3]
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _080699CA
- movs r5, 0xA
- ldrsh r0, [r4, r5]
- cmp r0, r1
- beq _080699CA
- movs r7, 0x8
- ldrsh r0, [r4, r7]
- movs r2, 0xA
- ldrsh r1, [r4, r2]
- movs r2, 0x1
- bl sub_8069708
-_080699CA:
- movs r0, 0x1
- strh r0, [r4, 0x2]
-_080699CE:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8069864
-
- thumb_func_start sub_80699D8
-sub_80699D8: @ 80699D8
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r5, r1, 16
- bl PlayerGetZCoord
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08069A32
- lsls r0, r4, 16
- asrs r4, r0, 16
- lsls r0, r5, 16
- asrs r5, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- adds r1, r0, 0
- ldr r0, _08069A14
- cmp r1, r0
- beq _08069A18
- adds r0, 0x8
- cmp r1, r0
- beq _08069A28
- b _08069A32
- .align 2, 0
-_08069A14: .4byte 0x0000024e
-_08069A18:
- ldr r2, _08069A24
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _08069A32
- .align 2, 0
-_08069A24: .4byte 0x0000024f
-_08069A28:
- ldr r2, _08069A38
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_08069A32:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069A38: .4byte 0x00000257
- thumb_func_end sub_80699D8
-
- thumb_func_start sub_8069A3C
-sub_8069A3C: @ 8069A3C
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r5, r1, 16
- bl PlayerGetZCoord
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08069A96
- lsls r0, r4, 16
- asrs r4, r0, 16
- lsls r0, r5, 16
- asrs r5, r0, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridGetMetatileIdAt
- adds r1, r0, 0
- ldr r0, _08069A78
- cmp r1, r0
- beq _08069A7C
- adds r0, 0x8
- cmp r1, r0
- beq _08069A8C
- b _08069A96
- .align 2, 0
-_08069A78: .4byte 0x0000024f
-_08069A7C:
- ldr r2, _08069A88
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
- b _08069A96
- .align 2, 0
-_08069A88: .4byte 0x0000024e
-_08069A8C:
- ldr r2, _08069A9C
- adds r0, r4, 0
- adds r1, r5, 0
- bl MapGridSetMetatileIdAt
-_08069A96:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069A9C: .4byte 0x00000256
- thumb_func_end sub_8069A3C
-
- thumb_func_start sub_8069AA0
-sub_8069AA0: @ 8069AA0
- 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
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08069ADC
- adds r6, r1, r0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- movs r0, 0x2
- ldrsh r5, [r6, r0]
- mov r9, r4
- cmp r5, 0x1
- beq _08069B34
- cmp r5, 0x1
- bgt _08069AE0
- cmp r5, 0
- beq _08069AE8
- b _08069CA6
- .align 2, 0
-_08069ADC: .4byte 0x03004b28
-_08069AE0:
- cmp r5, 0x2
- bne _08069AE6
- b _08069C14
-_08069AE6:
- b _08069CA6
-_08069AE8:
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r6, 0x4]
- mov r1, r9
- ldrh r0, [r1]
- strh r0, [r6, 0x6]
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r3, 0
- ldrsh r1, [r1, r3]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsFortreeBridge
- lsls r0, 24
- cmp r0, 0
- bne _08069B12
- b _08069CA2
-_08069B12:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl sub_80699D8
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl CurrentMapDrawMetatileAt
- b _08069CA2
-_08069B34:
- ldrh r0, [r6, 0x6]
- mov r8, r0
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- ldrh r2, [r6, 0x4]
- mov r10, r2
- movs r3, 0x4
- ldrsh r7, [r6, r3]
- cmp r0, r7
- bne _08069B5C
- mov r0, r9
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r3, r8
- lsls r0, r3, 16
- asrs r0, 16
- cmp r1, r0
- bne _08069B5C
- b _08069CA6
-_08069B5C:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsFortreeBridge
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- mov r0, r8
- lsls r4, r0, 16
- asrs r1, r4, 16
- adds r0, r7, 0
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsFortreeBridge
- lsls r0, 24
- lsrs r7, r0, 24
- bl PlayerGetZCoord
- movs r1, 0
- ands r5, r0
- lsls r0, r5, 24
- adds r5, r4, 0
- cmp r0, 0
- bne _08069BA4
- movs r1, 0x1
-_08069BA4:
- cmp r1, 0
- beq _08069BB8
- ldr r1, [sp, 0x4]
- cmp r1, 0x1
- beq _08069BB2
- cmp r7, 0x1
- bne _08069BB8
-_08069BB2:
- movs r0, 0x47
- bl audio_play
-_08069BB8:
- cmp r7, 0
- beq _08069BF4
- mov r2, r10
- lsls r4, r2, 16
- asrs r4, 16
- asrs r5, 16
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8069A3C
- adds r0, r4, 0
- adds r1, r5, 0
- bl CurrentMapDrawMetatileAt
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl sub_80699D8
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0
- ldrsh r1, [r2, r3]
- bl CurrentMapDrawMetatileAt
-_08069BF4:
- mov r0, r10
- strh r0, [r6, 0x8]
- mov r1, r8
- strh r1, [r6, 0xA]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r6, 0x4]
- mov r2, r9
- ldrh r0, [r2]
- strh r0, [r6, 0x6]
- cmp r7, 0
- beq _08069CA6
- movs r0, 0x10
- strh r0, [r6, 0xC]
- movs r0, 0x2
- strh r0, [r6, 0x2]
-_08069C14:
- ldrh r0, [r6, 0xC]
- subs r0, 0x1
- strh r0, [r6, 0xC]
- ldrh r3, [r6, 0x8]
- mov r10, r3
- ldrh r0, [r6, 0xA]
- mov r8, r0
- movs r1, 0xC
- ldrsh r0, [r6, r1]
- movs r1, 0x7
- bl __modsi3
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- bhi _08069C9A
- lsls r0, 2
- ldr r1, _08069C40
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08069C40: .4byte _08069C44
- .align 2, 0
-_08069C44:
- .4byte _08069C64
- .4byte _08069C9A
- .4byte _08069C9A
- .4byte _08069C9A
- .4byte _08069C76
- .4byte _08069C9A
- .4byte _08069C9A
- .4byte _08069C9A
-_08069C64:
- mov r2, r10
- lsls r0, r2, 16
- asrs r0, 16
- mov r3, r8
- lsls r1, r3, 16
- asrs r1, 16
- bl CurrentMapDrawMetatileAt
- b _08069C9A
-_08069C76:
- mov r0, r10
- lsls r5, r0, 16
- asrs r5, 16
- mov r1, r8
- lsls r4, r1, 16
- asrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80699D8
- adds r0, r5, 0
- adds r1, r4, 0
- bl CurrentMapDrawMetatileAt
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8069A3C
-_08069C9A:
- movs r2, 0xC
- ldrsh r0, [r6, r2]
- cmp r0, 0
- bne _08069CA6
-_08069CA2:
- movs r0, 0x1
- strh r0, [r6, 0x2]
-_08069CA6:
- 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_8069AA0
-
- thumb_func_start sub_8069CB8
-sub_8069CB8: @ 8069CB8
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- lsls r0, 16
- ldr r2, _08069CE8
- adds r0, r2
- lsrs r0, 16
- cmp r0, 0xA
- bhi _08069CF4
- lsls r0, r1, 16
- asrs r1, r0, 16
- ldr r2, _08069CEC
- adds r0, r2
- lsrs r0, 16
- cmp r0, 0xD
- bhi _08069CF4
- ldr r0, _08069CF0
- lsls r1, 1
- adds r1, r0
- ldrh r0, [r1]
- cmp r0, 0
- beq _08069CF4
- movs r0, 0x1
- b _08069CF6
- .align 2, 0
-_08069CE8: .4byte 0xfffd0000
-_08069CEC: .4byte 0xfffa0000
-_08069CF0: .4byte gUnknown_083763E4
-_08069CF4:
- movs r0, 0
-_08069CF6:
- pop {r1}
- bx r1
- thumb_func_end sub_8069CB8
-
- thumb_func_start sub_8069CFC
-sub_8069CFC: @ 8069CFC
- push {r4,r5,lr}
- lsls r0, 16
- asrs r5, r0, 16
- lsls r1, 16
- asrs r4, r1, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8069CB8
- cmp r0, 0
- beq _08069D2A
- ldr r1, _08069D30
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- bl GetVarPointer
- subs r2, r5, 0x3
- movs r1, 0x1
- lsls r1, r2
- ldrh r2, [r0]
- orrs r1, r2
- strh r1, [r0]
-_08069D2A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08069D30: .4byte gUnknown_083763E4
- thumb_func_end sub_8069CFC
-
- thumb_func_start sub_8069D34
-sub_8069D34: @ 8069D34
- push {r4,r5,lr}
- lsls r0, 16
- asrs r5, r0, 16
- lsls r1, 16
- asrs r4, r1, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8069CB8
- cmp r0, 0
- beq _08069D66
- ldr r1, _08069D6C
- lsls r0, r4, 1
- adds r0, r1
- ldrh r0, [r0]
- bl VarGet
- lsls r0, 16
- subs r2, r5, 0x3
- movs r1, 0x80
- lsls r1, 9
- lsls r1, r2
- ands r1, r0
- cmp r1, 0
- bne _08069D70
-_08069D66:
- movs r0, 0
- b _08069D72
- .align 2, 0
-_08069D6C: .4byte gUnknown_083763E4
-_08069D70:
- movs r0, 0x1
-_08069D72:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8069D34
-
- thumb_func_start sub_8069D78
-sub_8069D78: @ 8069D78
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r0, _08069DCC
- ldr r0, [r0]
- ldr r1, [r0]
- mov r9, r1
- ldr r7, [r0, 0x4]
- movs r5, 0
- cmp r5, r9
- bge _08069DC0
-_08069D90:
- movs r4, 0
- adds r0, r5, 0x1
- mov r8, r0
- cmp r4, r7
- bge _08069DBA
- lsls r6, r5, 16
-_08069D9C:
- lsls r1, r4, 16
- asrs r1, 16
- asrs r0, r6, 16
- bl sub_8069D34
- cmp r0, 0x1
- bne _08069DB4
- adds r1, r4, 0x7
- adds r0, r5, 0x7
- ldr r2, _08069DD0
- bl MapGridSetMetatileIdAt
-_08069DB4:
- adds r4, 0x1
- cmp r4, r7
- blt _08069D9C
-_08069DBA:
- mov r5, r8
- cmp r5, r9
- blt _08069D90
-_08069DC0:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08069DCC: .4byte 0x0202e828
-_08069DD0: .4byte 0x0000020e
- thumb_func_end sub_8069D78
-
- thumb_func_start sub_8069DD4
-sub_8069DD4: @ 8069DD4
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08069DF8
- adds r5, r1, r0
- movs r1, 0x2
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _08069E20
- cmp r0, 0x1
- bgt _08069DFC
- cmp r0, 0
- beq _08069E08
- b _08069F56
- .align 2, 0
-_08069DF8: .4byte 0x03004b28
-_08069DFC:
- cmp r0, 0x2
- beq _08069EB6
- cmp r0, 0x3
- bne _08069E06
- b _08069F10
-_08069E06:
- b _08069F56
-_08069E08:
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0x4]
- ldrh r0, [r4]
- strh r0, [r5, 0x6]
- b _08069F52
-_08069E20:
- mov r7, sp
- adds r7, 0x2
- mov r0, sp
- adds r1, r7, 0
- bl PlayerGetDestCoords
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x4
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bne _08069E4A
- movs r0, 0
- ldrsh r1, [r7, r0]
- movs r3, 0x6
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bne _08069E4A
- b _08069F56
-_08069E4A:
- strh r2, [r5, 0x4]
- ldrh r0, [r7]
- strh r0, [r5, 0x6]
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r7, r2]
- bl MapGridGetMetatileBehaviorAt
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, _08069E8C
- bl GetVarPointer
- adds r6, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_8057540
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08069E90
- ldrh r0, [r6]
- adds r0, 0x1
- strh r0, [r6]
- movs r0, 0x4
- strh r0, [r5, 0xC]
- movs r0, 0x2
- b _08069EA8
- .align 2, 0
-_08069E8C: .4byte 0x00004022
-_08069E90:
- adds r0, r4, 0
- bl sub_8057554
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08069F56
- movs r0, 0
- strh r0, [r6]
- movs r0, 0x4
- strh r0, [r5, 0xC]
- movs r0, 0x3
-_08069EA8:
- strh r0, [r5, 0x2]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0x8]
- ldrh r0, [r7]
- strh r0, [r5, 0xA]
- b _08069F56
-_08069EB6:
- ldrh r1, [r5, 0xC]
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- cmp r0, 0
- bne _08069F1A
- mov r1, sp
- ldrh r0, [r5, 0x8]
- strh r0, [r1]
- mov r4, sp
- adds r4, 0x2
- ldrh r0, [r5, 0xA]
- strh r0, [r4]
- movs r0, 0x2A
- bl audio_play
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, _08069F0C
- bl MapGridSetMetatileIdAt
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x7
- lsls r0, 16
- asrs r0, 16
- ldrh r1, [r4]
- subs r1, 0x7
- lsls r1, 16
- asrs r1, 16
- bl sub_8069CFC
- b _08069F52
- .align 2, 0
-_08069F0C: .4byte 0x0000020e
-_08069F10:
- ldrh r1, [r5, 0xC]
- movs r3, 0xC
- ldrsh r0, [r5, r3]
- cmp r0, 0
- beq _08069F20
-_08069F1A:
- subs r0, r1, 0x1
- strh r0, [r5, 0xC]
- b _08069F56
-_08069F20:
- mov r1, sp
- ldrh r0, [r5, 0x8]
- strh r0, [r1]
- mov r4, sp
- adds r4, 0x2
- ldrh r0, [r5, 0xA]
- strh r0, [r4]
- movs r0, 0x29
- bl audio_play
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, _08069F60
- bl MapGridSetMetatileIdAt
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
-_08069F52:
- movs r0, 0x1
- strh r0, [r5, 0x2]
-_08069F56:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08069F60: .4byte 0x00000206
- thumb_func_end sub_8069DD4
-
- thumb_func_start sub_8069F64
-sub_8069F64: @ 8069F64
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _08069FE8
- adds r5, r1, r0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x2
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bne _08069F9E
- movs r0, 0
- ldrsh r1, [r4, r0]
- movs r3, 0x4
- ldrsh r0, [r5, r3]
- cmp r1, r0
- beq _0806A02A
-_08069F9E:
- strh r2, [r5, 0x2]
- ldrh r0, [r4]
- strh r0, [r5, 0x4]
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsAsh
- lsls r0, 24
- cmp r0, 0
- beq _0806A02A
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileIdAt
- ldr r1, _08069FEC
- cmp r0, r1
- bne _08069FF4
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, _08069FF0
- movs r3, 0x4
- bl ash
- b _0806A006
- .align 2, 0
-_08069FE8: .4byte 0x03004b28
-_08069FEC: .4byte 0x0000020a
-_08069FF0: .4byte 0x00000212
-_08069FF4:
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0
- ldrsh r1, [r4, r2]
- ldr r2, _0806A034
- movs r3, 0x4
- bl ash
-_0806A006:
- movs r0, 0x87
- lsls r0, 1
- movs r1, 0x1
- bl sub_80A92D4
- lsls r0, 24
- cmp r0, 0
- beq _0806A02A
- ldr r0, _0806A038
- bl GetVarPointer
- adds r2, r0, 0
- ldrh r1, [r2]
- ldr r0, _0806A03C
- cmp r1, r0
- bhi _0806A02A
- adds r0, r1, 0x1
- strh r0, [r2]
-_0806A02A:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A034: .4byte 0x00000206
-_0806A038: .4byte 0x00004048
-_0806A03C: .4byte 0x0000270e
- thumb_func_end sub_8069F64
-
- thumb_func_start sub_806A040
-sub_806A040: @ 806A040
- push {r4,r5,lr}
- lsls r0, 16
- asrs r5, r0, 16
- lsls r1, 16
- asrs r4, r1, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridGetMetatileIdAt
- ldr r1, _0806A074
- ldr r2, _0806A078
- cmp r0, r1
- bne _0806A05C
- subs r2, 0x31
-_0806A05C:
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridSetMetatileIdAt
- adds r0, r5, 0
- adds r1, r4, 0
- bl CurrentMapDrawMetatileAt
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A074: .4byte 0x0000022f
-_0806A078: .4byte 0x00000237
- thumb_func_end sub_806A040
-
- thumb_func_start sub_806A07C
-sub_806A07C: @ 806A07C
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, _0806A164
- adds r5, r1, r0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r6, r0, 16
- ldrh r1, [r5, 0x8]
- movs r3, 0x8
- ldrsh r0, [r5, r3]
- adds r7, r4, 0
- cmp r0, 0
- beq _0806A0CE
- subs r0, r1, 0x1
- strh r0, [r5, 0x8]
- lsls r0, 16
- cmp r0, 0
- bne _0806A0CE
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- movs r2, 0xC
- ldrsh r1, [r5, r2]
- bl sub_806A040
-_0806A0CE:
- ldrh r1, [r5, 0xE]
- movs r3, 0xE
- ldrsh r0, [r5, r3]
- cmp r0, 0
- beq _0806A0EE
- subs r0, r1, 0x1
- strh r0, [r5, 0xE]
- lsls r0, 16
- cmp r0, 0
- bne _0806A0EE
- movs r1, 0x10
- ldrsh r0, [r5, r1]
- movs r2, 0x12
- ldrsh r1, [r5, r2]
- bl sub_806A040
-_0806A0EE:
- lsls r0, r6, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- bl sub_8057818
- lsls r0, 24
- cmp r0, 0
- beq _0806A106
- ldr r0, _0806A168
- movs r1, 0
- bl VarSet
-_0806A106:
- mov r0, sp
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r1, [r0, r3]
- movs r3, 0x4
- ldrsh r0, [r5, r3]
- cmp r1, r0
- bne _0806A122
- movs r0, 0
- ldrsh r1, [r7, r0]
- movs r3, 0x6
- ldrsh r0, [r5, r3]
- cmp r1, r0
- beq _0806A182
-_0806A122:
- strh r2, [r5, 0x4]
- adds r4, r7, 0
- ldrh r0, [r4]
- strh r0, [r5, 0x6]
- adds r0, r6, 0
- bl sub_805782C
- lsls r0, 24
- cmp r0, 0
- beq _0806A182
- bl sub_80E6034
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- beq _0806A14A
- ldr r0, _0806A168
- movs r1, 0
- bl VarSet
-_0806A14A:
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0806A16C
- movs r0, 0x3
- strh r0, [r5, 0x8]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0xA]
- ldrh r0, [r4]
- strh r0, [r5, 0xC]
- b _0806A182
- .align 2, 0
-_0806A164: .4byte 0x03004b28
-_0806A168: .4byte 0x00004022
-_0806A16C:
- movs r2, 0xE
- ldrsh r0, [r5, r2]
- cmp r0, 0
- bne _0806A182
- movs r0, 0x3
- strh r0, [r5, 0xE]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r5, 0x10]
- ldrh r0, [r7]
- strh r0, [r5, 0x12]
-_0806A182:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806A07C
-
- thumb_func_start sub_806A18C
-sub_806A18C: @ 806A18C
- push {r4,r5,lr}
- adds r3, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- lsls r2, 16
- lsrs r4, r2, 16
- ldrh r0, [r3]
- subs r0, 0x1
- strh r0, [r3]
- lsls r0, 16
- cmp r0, 0
- bne _0806A1A8
- movs r2, 0xE8
- b _0806A1BC
-_0806A1A8:
- ldr r1, _0806A1E4
- movs r2, 0
- ldrsh r0, [r3, r2]
- cmp r0, 0
- bge _0806A1B4
- adds r0, 0x7
-_0806A1B4:
- asrs r0, 3
- lsls r0, 1
- adds r0, r1
- ldrh r2, [r0]
-_0806A1BC:
- lsls r5, 16
- asrs r5, 16
- lsls r4, 16
- asrs r4, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl MapGridSetMetatileIdAt
- adds r0, r5, 0
- adds r1, r4, 0
- bl CurrentMapDrawMetatileAt
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0xE8
- bl MapGridSetMetatileIdAt
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A1E4: .4byte gUnknown_08376418
- thumb_func_end sub_806A18C
-
- thumb_func_start sub_806A1E8
-sub_806A1E8: @ 806A1E8
- 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, _0806A230
- adds r4, r1, r0
- mov r5, sp
- adds r5, 0x2
- mov r0, sp
- adds r1, r5, 0
- bl PlayerGetDestCoords
- ldr r0, _0806A234
- movs r1, 0x4
- ldrsb r1, [r0, r1]
- lsls r1, 8
- ldrb r0, [r0, 0x5]
- lsls r0, 24
- asrs r0, 24
- orrs r0, r1
- lsls r0, 16
- lsrs r7, r0, 16
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- mov r8, r5
- cmp r1, 0
- beq _0806A238
- cmp r1, 0x1
- beq _0806A264
- b _0806A2B8
- .align 2, 0
-_0806A230: .4byte 0x03004b28
-_0806A234: .4byte 0x02025734
-_0806A238:
- strh r7, [r4]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x4]
- ldrh r0, [r5]
- strh r0, [r4, 0x6]
- movs r0, 0x1
- strh r0, [r4, 0x2]
- strh r1, [r4, 0x8]
- strh r1, [r4, 0xE]
- strh r1, [r4, 0x14]
- strh r1, [r4, 0x1A]
- b _0806A2B8
-_0806A252:
- movs r0, 0x20
- strh r0, [r1]
- mov r0, sp
- ldrh r0, [r0]
- strh r0, [r1, 0x2]
- mov r2, r8
- ldrh r0, [r2]
- strh r0, [r1, 0x4]
- b _0806A2B8
-_0806A264:
- mov r0, sp
- movs r3, 0x4
- ldrsh r1, [r4, r3]
- ldrh r2, [r0]
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r1, r0
- bne _0806A280
- movs r0, 0x6
- ldrsh r1, [r4, r0]
- movs r3, 0
- ldrsh r0, [r5, r3]
- cmp r1, r0
- beq _0806A2B8
-_0806A280:
- strh r2, [r4, 0x4]
- ldrh r0, [r5]
- strh r0, [r4, 0x6]
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsMuddySlope
- lsls r0, 24
- cmp r0, 0
- beq _0806A2B8
- movs r6, 0x4
- adds r1, r4, 0
- adds r1, 0x8
-_0806A2A8:
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0806A252
- adds r1, 0x6
- adds r6, 0x3
- cmp r6, 0xD
- ble _0806A2A8
-_0806A2B8:
- ldr r2, _0806A2D4
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806A2D8
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r7, r0
- beq _0806A2D8
- strh r7, [r4]
- ldrh r0, [r2, 0x4]
- ldrh r1, [r2, 0x8]
- b _0806A2DC
- .align 2, 0
-_0806A2D4: .4byte 0x0202e844
-_0806A2D8:
- movs r0, 0
- movs r1, 0
-_0806A2DC:
- lsls r0, 16
- asrs r0, 16
- mov r8, r0
- lsls r0, r1, 16
- asrs r7, r0, 16
- adds r5, r4, 0
- adds r5, 0x8
- adds r4, r5, 0
- movs r6, 0x9
-_0806A2EE:
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0
- beq _0806A312
- ldrh r0, [r4, 0x2]
- mov r3, r8
- subs r0, r3
- strh r0, [r4, 0x2]
- ldrh r0, [r4, 0x4]
- subs r0, r7
- strh r0, [r4, 0x4]
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- adds r0, r5, 0
- bl sub_806A18C
-_0806A312:
- adds r4, 0x6
- adds r5, 0x6
- subs r6, 0x3
- cmp r6, 0
- bge _0806A2EE
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806A1E8
-
- thumb_func_start sub_806A328
-sub_806A328: @ 806A328
- push {lr}
- ldr r0, _0806A350
- bl FlagSet
- bl RtcCalcLocalTime
- ldr r2, _0806A354
- adds r2, 0xA0
- ldr r3, _0806A358
- ldr r0, [r3]
- ldr r1, [r3, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _0806A35C
- ldrh r1, [r3]
- bl VarSet
- pop {r0}
- bx r0
- .align 2, 0
-_0806A350: .4byte 0x00000835
-_0806A354: .4byte gSaveBlock2
-_0806A358: .4byte 0x03004038
-_0806A35C: .4byte 0x00004040
- thumb_func_end sub_806A328
-
- thumb_func_start InTrainerHill
-InTrainerHill: @ 806A360
- push {r4,lr}
- ldr r0, _0806A388
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0806A380
- bl RtcCalcLocalTime
- ldr r4, _0806A38C
- adds r0, r4, 0
- bl sub_806A390
- adds r0, r4, 0
- bl sub_806A3F4
-_0806A380:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A388: .4byte 0x00000835
-_0806A38C: .4byte 0x03004038
- thumb_func_end InTrainerHill
-
- thumb_func_start sub_806A390
-sub_806A390: @ 806A390
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _0806A3F0
- bl GetVarPointer
- adds r6, r0, 0
- ldrh r0, [r6]
- movs r2, 0
- ldrsh r1, [r5, r2]
- cmp r0, r1
- beq _0806A3EA
- cmp r0, r1
- bgt _0806A3EA
- ldrh r4, [r5]
- subs r4, r0
- lsls r4, 16
- lsrs r4, 16
- bl sub_80690B4
- adds r0, r4, 0
- bl sub_80FA220
- adds r0, r4, 0
- bl sub_80BE8C4
- adds r0, r4, 0
- bl sub_8080834
- adds r0, r4, 0
- bl sub_80401D8
- adds r0, r4, 0
- bl sub_810D2F4
- adds r0, r4, 0
- bl sub_810D410
- adds r0, r4, 0
- bl sub_810F618
- adds r0, r4, 0
- bl sub_8145AA4
- ldrh r0, [r5]
- strh r0, [r6]
-_0806A3EA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A3F0: .4byte 0x00004040
- thumb_func_end sub_806A390
-
- thumb_func_start sub_806A3F4
-sub_806A3F4: @ 806A3F4
- push {r4-r6,lr}
- sub sp, 0x8
- adds r5, r0, 0
- mov r4, sp
- ldr r6, _0806A448
- mov r0, sp
- adds r1, r6, 0
- adds r2, r5, 0
- bl CalcTimeDifference
- mov r0, sp
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 5
- movs r2, 0x2
- ldrsb r2, [r4, r2]
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 2
- adds r1, r0
- movs r0, 0x3
- ldrsb r0, [r4, r0]
- adds r0, r1, r0
- cmp r0, 0
- beq _0806A43E
- cmp r0, 0
- blt _0806A43E
- bl BerryTreeTimeUpdate
- ldr r0, [r5]
- ldr r1, [r5, 0x4]
- str r0, [r6]
- str r1, [r6, 0x4]
-_0806A43E:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A448: .4byte 0x02024f44
- thumb_func_end sub_806A3F4
-
- thumb_func_start sub_806A44C
-sub_806A44C: @ 806A44C
- push {lr}
- bl sub_806A328
- ldr r0, _0806A45C
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0806A45C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
- thumb_func_end sub_806A44C
-
- thumb_func_start sub_806A460
-sub_806A460: @ 806A460
- push {lr}
- ldr r0, _0806A474
- bl SetMainCallback2
- ldr r1, _0806A478
- ldr r0, _0806A47C
- str r0, [r1, 0x8]
- pop {r0}
- bx r0
- .align 2, 0
-_0806A474: .4byte Cb2_StartWallClock
-_0806A478: .4byte 0x03001770
-_0806A47C: .4byte sub_806A44C
- thumb_func_end sub_806A460
-
- thumb_func_start sub_806A480
-sub_806A480: @ 806A480
- push {lr}
- adds r3, r0, 0
- ldr r2, _0806A4B0
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0xC
- ldrsh r1, [r0, r2]
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r1, r0
- beq _0806A596
- strh r1, [r3, 0x30]
- subs r0, r1, 0x1
- cmp r0, 0x5
- bhi _0806A596
- lsls r0, 2
- ldr r1, _0806A4B4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806A4B0: .4byte 0x03004b20
-_0806A4B4: .4byte _0806A4B8
- .align 2, 0
-_0806A4B8:
- .4byte _0806A4D0
- .4byte _0806A4F4
- .4byte _0806A518
- .4byte _0806A53C
- .4byte _0806A566
- .4byte _0806A590
-_0806A4D0:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r1, r3, 0
- adds r1, 0x2A
- movs r0, 0x1
- strb r0, [r1]
- subs r2, 0x12
- ldrb r1, [r2]
- subs r0, 0x41
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x35
- b _0806A55E
-_0806A4F4:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r1, r3, 0
- adds r1, 0x2A
- movs r0, 0x1
- strb r0, [r1]
- subs r2, 0x12
- ldrb r1, [r2]
- subs r0, 0x41
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x56
- b _0806A55E
-_0806A518:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r1, r3, 0
- adds r1, 0x2A
- movs r0, 0x1
- strb r0, [r1]
- subs r2, 0x12
- ldrb r1, [r2]
- subs r0, 0x41
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x6B
- b _0806A55E
-_0806A53C:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r1, r3, 0
- adds r1, 0x2A
- movs r0, 0x1
- strb r0, [r1]
- subs r2, 0x12
- ldrb r1, [r2]
- subs r0, 0x41
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x80
-_0806A55E:
- strh r0, [r3, 0x20]
- movs r0, 0x44
- strh r0, [r3, 0x22]
- b _0806A596
-_0806A566:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r1, r3, 0
- adds r1, 0x2A
- movs r0, 0x2
- strb r0, [r1]
- subs r2, 0x12
- ldrb r1, [r2]
- subs r0, 0x42
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x9B
- strh r0, [r3, 0x20]
- movs r0, 0x50
- strh r0, [r3, 0x22]
- b _0806A596
-_0806A590:
- adds r0, r3, 0
- bl DestroySprite
-_0806A596:
- pop {r0}
- bx r0
- thumb_func_end sub_806A480
-
- thumb_func_start sub_806A59C
-sub_806A59C: @ 806A59C
- push {lr}
- adds r3, r0, 0
- ldr r2, _0806A5CC
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r2, 0xC
- ldrsh r1, [r0, r2]
- movs r2, 0x30
- ldrsh r0, [r3, r2]
- cmp r1, r0
- beq _0806A696
- strh r1, [r3, 0x30]
- subs r0, r1, 0x1
- cmp r0, 0x5
- bhi _0806A696
- lsls r0, 2
- ldr r1, _0806A5D0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806A5CC: .4byte 0x03004b20
-_0806A5D0: .4byte _0806A5D4
- .align 2, 0
-_0806A5D4:
- .4byte _0806A5EC
- .4byte _0806A610
- .4byte _0806A634
- .4byte _0806A658
- .4byte _0806A682
- .4byte _0806A690
-_0806A5EC:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r1, r3, 0
- adds r1, 0x2A
- movs r0, 0
- strb r0, [r1]
- subs r2, 0x12
- ldrb r1, [r2]
- subs r0, 0x40
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x35
- b _0806A67A
-_0806A610:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r1, r3, 0
- adds r1, 0x2A
- movs r0, 0
- strb r0, [r1]
- subs r2, 0x12
- ldrb r1, [r2]
- subs r0, 0x40
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x56
- b _0806A67A
-_0806A634:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r1, r3, 0
- adds r1, 0x2A
- movs r0, 0
- strb r0, [r1]
- subs r2, 0x12
- ldrb r1, [r2]
- subs r0, 0x40
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x6B
- b _0806A67A
-_0806A658:
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r1, r3, 0
- adds r1, 0x2A
- movs r0, 0
- strb r0, [r1]
- subs r2, 0x12
- ldrb r1, [r2]
- subs r0, 0x40
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x80
-_0806A67A:
- strh r0, [r3, 0x20]
- movs r0, 0x5C
- strh r0, [r3, 0x22]
- b _0806A696
-_0806A682:
- adds r0, r3, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0806A696
-_0806A690:
- adds r0, r3, 0
- bl DestroySprite
-_0806A696:
- pop {r0}
- bx r0
- thumb_func_end sub_806A59C
-
- thumb_func_start sub_806A69C
-sub_806A69C: @ 806A69C
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0806A70C
- bl LoadSpritePalette
- ldr r0, _0806A710
- mov r8, r0
- movs r1, 0x35
- movs r2, 0x44
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- ldr r6, _0806A714
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r6, 0
- adds r4, 0x1C
- adds r2, r0, r4
- ldr r1, _0806A718
- str r1, [r2]
- adds r0, r6
- strh r5, [r0, 0x2E]
- ldr r1, _0806A71C
- strh r1, [r0, 0x30]
- mov r0, r8
- movs r1, 0x35
- movs r2, 0x44
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r0, r4
- ldr r1, _0806A720
- str r1, [r4]
- adds r0, r6
- strh r5, [r0, 0x2E]
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x30]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A70C: .4byte gUnknown_083764BC
-_0806A710: .4byte gSpriteTemplate_83764E8
-_0806A714: .4byte 0x02020004
-_0806A718: .4byte sub_806A480
-_0806A71C: .4byte 0x0000ffff
-_0806A720: .4byte sub_806A59C
- thumb_func_end sub_806A69C
-
- thumb_func_start sub_806A724
-sub_806A724: @ 806A724
- push {lr}
- ldr r0, _0806A734
- ldrh r0, [r0, 0x4]
- bl FreeSpritePaletteByTag
- pop {r0}
- bx r0
- .align 2, 0
-_0806A734: .4byte gUnknown_083764BC
- thumb_func_end sub_806A724
-
- thumb_func_start sub_806A738
-sub_806A738: @ 806A738
- push {lr}
- movs r0, 0x3
- movs r1, 0x8
- movs r2, 0x19
- movs r3, 0xB
- bl Reset
- pop {r0}
- bx r0
- thumb_func_end sub_806A738
-
- thumb_func_start sub_806A74C
-sub_806A74C: @ 806A74C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r10, r0
- adds r0, r2, 0
- adds r4, r3, 0
- ldr r6, [sp, 0x24]
- ldr r2, [sp, 0x28]
- mov r9, r2
- mov r2, r10
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp]
- lsls r0, 16
- lsrs r0, 16
- lsls r4, 24
- lsrs r4, 24
- lsls r6, 24
- lsrs r6, 24
- mov r1, r9
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- ldr r7, _0806A83C
- ldr r1, _0806A840
- bl __umodsi3
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- movs r1, 0x18
- bl __umodsi3
- mov r8, r0
- mov r2, r8
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- adds r0, r6, 0
- movs r1, 0x3C
- bl __umodsi3
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- mov r0, r9
- movs r1, 0x3C
- bl __umodsi3
- mov r9, r0
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r4, _0806A844
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x18
- movs r3, 0x1
- bl sub_8072C44
- adds r0, r7, 0
- adds r1, r4, 0
- bl StringCopy
- adds r7, r0, 0
- ldr r1, _0806A848
- bl StringCopy
- adds r7, r0, 0
- adds r0, r4, 0
- mov r1, r8
- movs r2, 0x12
- movs r3, 0x1
- bl sub_8072C44
- adds r0, r7, 0
- adds r1, r4, 0
- bl StringCopy
- adds r7, r0, 0
- ldr r4, _0806A84C
- adds r1, r4, 0
- bl StringCopy
- adds r7, r0, 0
- adds r1, r6, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- adds r7, r0, 0
- adds r1, r4, 0
- bl StringCopy
- adds r7, r0, 0
- mov r1, r9
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r0, _0806A83C
- mov r1, r10
- ldr r2, [sp]
- bl Print
- 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
-_0806A83C: .4byte 0x020234cc
-_0806A840: .4byte 0x00002710
-_0806A844: .4byte 0x020231cc
-_0806A848: .4byte gUnknown_0842D4F6
-_0806A84C: .4byte gUnknown_08376500
- thumb_func_end sub_806A74C
-
- thumb_func_start sub_806A850
-sub_806A850: @ 806A850
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x8
- adds r6, r0, 0
- mov r8, r1
- adds r4, r2, 0
- adds r5, r3, 0
- lsls r6, 16
- lsrs r6, 16
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x3
- movs r1, 0x8
- movs r2, 0x19
- movs r3, 0xB
- bl DrawDefaultWindow
- ldr r0, _0806A8A8
- movs r1, 0x14
- movs r2, 0x9
- bl Print
- str r4, [sp]
- str r5, [sp, 0x4]
- movs r0, 0x4
- movs r1, 0x9
- adds r2, r6, 0
- mov r3, r8
- bl sub_806A74C
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A8A8: .4byte gUnknown_0842D4FC
- thumb_func_end sub_806A850
-
- thumb_func_start sub_806A8AC
-sub_806A8AC: @ 806A8AC
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r3, 16
- lsrs r3, 16
- adds r1, r3, 0
- movs r0, 0x80
- ands r0, r3
- cmp r0, 0
- beq _0806A8C6
- ldrh r0, [r4]
- subs r0, 0x1
- b _0806A8E0
-_0806A8C6:
- movs r0, 0x40
- ands r0, r3
- cmp r0, 0
- beq _0806A8D4
- ldrh r0, [r4]
- adds r0, 0x1
- b _0806A8FE
-_0806A8D4:
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- beq _0806A8EE
- ldrh r0, [r4]
- subs r0, 0xA
-_0806A8E0:
- strh r0, [r4]
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, r5
- bge _0806A90A
- strh r2, [r4]
- b _0806A90A
-_0806A8EE:
- movs r0, 0x10
- ands r1, r0
- cmp r1, 0
- bne _0806A8FA
- movs r0, 0
- b _0806A90C
-_0806A8FA:
- ldrh r0, [r4]
- adds r0, 0xA
-_0806A8FE:
- strh r0, [r4]
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, r2
- ble _0806A90A
- strh r5, [r4]
-_0806A90A:
- movs r0, 0x1
-_0806A90C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806A8AC
-
- thumb_func_start sub_806A914
-sub_806A914: @ 806A914
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0806A928
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0x1
- strh r0, [r1, 0x8]
- bx lr
- .align 2, 0
-_0806A928: .4byte 0x03004b20
- thumb_func_end sub_806A914
-
- thumb_func_start sub_806A92C
-sub_806A92C: @ 806A92C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_806A738
- bl sub_806A724
- ldr r1, _0806A950
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806A954
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806A950: .4byte 0x03004b20
-_0806A954: .4byte sub_806A914
- thumb_func_end sub_806A92C
-
- thumb_func_start sub_806A958
-sub_806A958: @ 806A958
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r7, r0, 3
- ldr r0, _0806A99C
- mov r8, r0
- adds r5, r7, r0
- ldrb r4, [r5, 0x4]
- lsls r0, r4, 1
- adds r0, r4
- lsls r0, 2
- ldr r1, _0806A9A0
- adds r2, r0, r1
- ldr r1, _0806A9A4
- ldrh r3, [r1, 0x2E]
- movs r0, 0x2
- ands r0, r3
- mov r12, r1
- cmp r0, 0
- beq _0806A9AC
- mov r0, r8
- subs r0, 0x8
- adds r0, r7, r0
- ldr r1, _0806A9A8
- str r1, [r0]
- movs r0, 0
- strh r0, [r5, 0x2]
- movs r0, 0x6
- b _0806A9CC
- .align 2, 0
-_0806A99C: .4byte 0x03004b28
-_0806A9A0: .4byte gUnknown_08376414
-_0806A9A4: .4byte 0x03001770
-_0806A9A8: .4byte sub_806A92C
-_0806A9AC:
- movs r0, 0x10
- ands r0, r3
- cmp r0, 0
- beq _0806A9BA
- ldrb r0, [r2, 0x7]
- cmp r0, 0
- bne _0806A9CC
-_0806A9BA:
- mov r3, r12
- ldrh r1, [r3, 0x2E]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0806A9D6
- ldrb r0, [r2, 0x6]
- cmp r0, 0
- beq _0806A9D6
-_0806A9CC:
- strh r0, [r5, 0x4]
- movs r0, 0x5
- bl audio_play
- b _0806AA58
-_0806A9D6:
- cmp r4, 0x5
- bne _0806AA24
- mov r0, r12
- ldrh r1, [r0, 0x2E]
- movs r4, 0x1
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0806AA58
- ldr r1, _0806AA18
- ldrh r0, [r5, 0x6]
- strh r0, [r1]
- ldrh r0, [r5, 0x8]
- strb r0, [r1, 0x2]
- ldrh r0, [r5, 0xA]
- strb r0, [r1, 0x3]
- ldrh r0, [r5, 0xC]
- strb r0, [r1, 0x4]
- movs r0, 0x5
- bl audio_play
- ldr r1, _0806AA1C
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806AA20
- str r1, [r0]
- strh r4, [r5, 0x2]
- movs r0, 0x6
- strh r0, [r5, 0x4]
- b _0806AA58
- .align 2, 0
-_0806AA18: .4byte 0x03004038
-_0806AA1C: .4byte 0x03004b20
-_0806AA20: .4byte sub_806A92C
-_0806AA24:
- ldrb r0, [r2]
- lsls r0, 1
- adds r0, r5, r0
- ldrh r1, [r2, 0x2]
- ldrh r2, [r2, 0x4]
- mov r3, r12
- ldrh r4, [r3, 0x30]
- movs r3, 0xC0
- ands r3, r4
- bl sub_806A8AC
- cmp r0, 0
- beq _0806AA58
- movs r0, 0x5
- bl audio_play
- ldrh r2, [r5, 0x6]
- ldrb r3, [r5, 0x8]
- ldrb r0, [r5, 0xA]
- str r0, [sp]
- ldrb r0, [r5, 0xC]
- str r0, [sp, 0x4]
- movs r0, 0x4
- movs r1, 0x9
- bl sub_806A74C
-_0806AA58:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806A958
-
- thumb_func_start sub_806AA64
-sub_806AA64: @ 806AA64
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r6, r5, 2
- adds r6, r5
- lsls r6, 3
- ldr r0, _0806AACC
- mov r8, r0
- adds r4, r6, r0
- movs r0, 0
- strh r0, [r4]
- ldr r3, _0806AAD0
- ldrh r0, [r3]
- strh r0, [r4, 0x6]
- movs r1, 0x2
- ldrsb r1, [r3, r1]
- strh r1, [r4, 0x8]
- movs r2, 0x3
- ldrsb r2, [r3, r2]
- strh r2, [r4, 0xA]
- ldrb r3, [r3, 0x4]
- lsls r3, 24
- asrs r3, 24
- strh r3, [r4, 0xC]
- ldrh r0, [r4, 0x6]
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- bl sub_806A850
- adds r0, r5, 0
- bl sub_806A69C
- movs r0, 0x2
- strh r0, [r4, 0x4]
- movs r0, 0x8
- negs r0, r0
- add r8, r0
- add r6, r8
- ldr r0, _0806AAD4
- str r0, [r6]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806AACC: .4byte 0x03004b28
-_0806AAD0: .4byte 0x03004038
-_0806AAD4: .4byte sub_806A958
- thumb_func_end sub_806AA64
-
- thumb_func_start sub_806AAD8
-sub_806AAD8: @ 806AAD8
- push {r4-r7,lr}
- sub sp, 0x4
- movs r0, 0x80
- lsls r0, 19
- movs r4, 0
- strh r4, [r0]
- movs r0, 0
- bl SetVBlankCallback
- movs r2, 0xA0
- lsls r2, 19
- mov r0, sp
- strh r4, [r0]
- ldr r1, _0806AB94
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _0806AB98
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0xC0
- lsls r3, 9
- mov r4, sp
- movs r6, 0
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _0806AB9C
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_0806AB16:
- 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 _0806AB16
- 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]
- movs r0, 0
- movs r1, 0x80
- bl ResetOamRange
- bl LoadOam
- bl remove_some_task
- bl dp12_8087EA4
- bl ResetSpriteData
- bl ResetTasks
- bl ResetPaletteFade
- ldr r4, _0806ABA0
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl sub_8071C4C
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x88
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0806ABA4
- bl SetVBlankCallback
- ldr r0, _0806ABA8
- bl SetMainCallback2
- ldr r0, _0806ABAC
- movs r1, 0x50
- bl CreateTask
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806AB94: .4byte 0x040000d4
-_0806AB98: .4byte 0x81000200
-_0806AB9C: .4byte 0x81000800
-_0806ABA0: .4byte gWindowConfig_81E6CE4
-_0806ABA4: .4byte sub_806ABC8
-_0806ABA8: .4byte sub_806ABB0
-_0806ABAC: .4byte sub_806ACCC
- thumb_func_end sub_806AAD8
-
- thumb_func_start sub_806ABB0
-sub_806ABB0: @ 806ABB0
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_806ABB0
-
- thumb_func_start sub_806ABC8
-sub_806ABC8: @ 806ABC8
- push {lr}
- bl ProcessSpriteCopyRequests
- bl LoadOam
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_806ABC8
-
- thumb_func_start sub_806ABDC
-sub_806ABDC: @ 806ABDC
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8071FFC
- adds r0, r4, 0
- movs r1, 0x2
- movs r2, 0xF
- bl Print
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_806ABDC
-
- thumb_func_start sub_806ABF4
-sub_806ABF4: @ 806ABF4
- push {r4,r5,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0806AC14
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0806AC18
- cmp r0, 0x1
- beq _0806AC80
- b _0806ACC4
- .align 2, 0
-_0806AC14: .4byte 0x03004b28
-_0806AC18:
- bl sub_8071EF4
- movs r0, 0
- movs r1, 0
- movs r2, 0x14
- movs r3, 0xA
- bl DrawDefaultWindow
- ldr r0, _0806AC98
- movs r1, 0x1
- movs r2, 0x1
- bl Print
- ldr r0, _0806AC9C
- ldrh r2, [r0]
- ldrb r3, [r0, 0x2]
- ldrb r1, [r0, 0x3]
- str r1, [sp]
- ldrb r0, [r0, 0x4]
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0x3
- bl sub_806A74C
- ldr r0, _0806ACA0
- movs r1, 0x1
- movs r2, 0x5
- bl Print
- ldr r1, _0806ACA4
- adds r0, r1, 0
- adds r0, 0xA0
- ldrh r2, [r0]
- adds r0, 0x2
- ldrb r3, [r0]
- adds r0, 0x1
- ldrb r0, [r0]
- str r0, [sp]
- adds r0, r1, 0
- adds r0, 0xA4
- ldrb r0, [r0]
- str r0, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0x7
- bl sub_806A74C
- ldr r0, _0806ACA8
- bl sub_806ABDC
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
-_0806AC80:
- ldr r0, _0806ACAC
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0806ACB0
- adds r0, r5, 0
- bl DestroyTask
- bl DoSoftReset
- b _0806ACC4
- .align 2, 0
-_0806AC98: .4byte gUnknown_08411804
-_0806AC9C: .4byte 0x03004038
-_0806ACA0: .4byte gUnknown_08411819
-_0806ACA4: .4byte gSaveBlock2
-_0806ACA8: .4byte gUnknown_084117E3
-_0806ACAC: .4byte 0x03001770
-_0806ACB0:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806ACC4
- movs r0, 0x5
- bl audio_play
- adds r0, r5, 0
- bl DestroyTask
-_0806ACC4:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806ABF4
-
- thumb_func_start sub_806ACCC
-sub_806ACCC: @ 806ACCC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0806ACF4
- adds r5, r0, r1
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0x6
- bls _0806ACE8
- b _0806AEC4
-_0806ACE8:
- lsls r0, 2
- ldr r1, _0806ACF8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806ACF4: .4byte 0x03004b28
-_0806ACF8: .4byte _0806ACFC
- .align 2, 0
-_0806ACFC:
- .4byte _0806AD18
- .4byte _0806AD34
- .4byte _0806AD80
- .4byte _0806ADD8
- .4byte _0806AE5C
- .4byte _0806AE8C
- .4byte _0806AEAE
-_0806AD18:
- movs r0, 0x1
- negs r0, r0
- ldr r1, _0806AD30
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r0, 0x1
- strh r0, [r5]
- b _0806AEC4
- .align 2, 0
-_0806AD30: .4byte 0x0000ffff
-_0806AD34:
- ldr r0, _0806AD5C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0806AD42
- b _0806AEC4
-_0806AD42:
- ldr r0, _0806AD60
- ldrh r0, [r0]
- cmp r0, 0
- beq _0806AD4E
- cmp r0, 0x2
- bne _0806AD68
-_0806AD4E:
- ldr r0, _0806AD64
- bl sub_806ABDC
- movs r0, 0x5
- strh r0, [r5]
- b _0806AEC4
- .align 2, 0
-_0806AD5C: .4byte 0x0202f388
-_0806AD60: .4byte 0x03005eb8
-_0806AD64: .4byte gUnknown_084118A0
-_0806AD68:
- bl RtcCalcLocalTime
- ldr r0, _0806AD7C
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x2]
- b _0806ADFC
- .align 2, 0
-_0806AD7C: .4byte sub_806ABF4
-_0806AD80:
- ldr r2, _0806ADC4
- movs r0, 0x2
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r0, [r0, 0x4]
- cmp r0, 0x1
- bne _0806AD96
- b _0806AEC4
-_0806AD96:
- bl sub_8071EF4
- ldr r0, _0806ADC8
- bl sub_806ABDC
- ldr r2, _0806ADCC
- ldr r0, _0806ADD0
- adds r0, 0xA0
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _0806ADD4
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x2]
- movs r0, 0x3
- strh r0, [r5]
- b _0806AEC4
- .align 2, 0
-_0806ADC4: .4byte 0x03004b20
-_0806ADC8: .4byte gUnknown_0841182F
-_0806ADCC: .4byte 0x03004038
-_0806ADD0: .4byte gSaveBlock2
-_0806ADD4: .4byte sub_806AA64
-_0806ADD8:
- ldr r2, _0806AE04
- movs r0, 0x2
- ldrsh r1, [r5, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r1, r0, r2
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _0806AEC4
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0806AE08
- ldrb r0, [r5, 0x2]
- bl DestroyTask
-_0806ADFC:
- movs r0, 0x2
- strh r0, [r5]
- b _0806AEC4
- .align 2, 0
-_0806AE04: .4byte 0x03004b20
-_0806AE08:
- ldrb r0, [r5, 0x2]
- bl DestroyTask
- bl RtcReset
- ldr r4, _0806AE4C
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x2
- ldrsb r1, [r4, r1]
- movs r2, 0x3
- ldrsb r2, [r4, r2]
- movs r3, 0x4
- ldrsb r3, [r4, r3]
- bl RtcCalcLocalTimeOffset
- ldr r2, _0806AE50
- adds r2, 0xA0
- ldr r0, [r4]
- ldr r1, [r4, 0x4]
- str r0, [r2]
- str r1, [r2, 0x4]
- ldr r0, _0806AE54
- ldrh r1, [r4]
- bl VarSet
- bl sub_80691A0
- ldr r0, _0806AE58
- bl sub_806ABDC
- movs r0, 0x4
- strh r0, [r5]
- b _0806AEC4
- .align 2, 0
-_0806AE4C: .4byte 0x03004038
-_0806AE50: .4byte gSaveBlock2
-_0806AE54: .4byte 0x00004040
-_0806AE58: .4byte gUnknown_08411846
-_0806AE5C:
- movs r0, 0
- bl sub_8125D44
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806AE7C
- ldr r0, _0806AE78
- bl sub_806ABDC
- movs r0, 0x49
- bl audio_play
- b _0806AE88
- .align 2, 0
-_0806AE78: .4byte gUnknown_08411881
-_0806AE7C:
- ldr r0, _0806AECC
- bl sub_806ABDC
- movs r0, 0x16
- bl audio_play
-_0806AE88:
- movs r0, 0x5
- strh r0, [r5]
-_0806AE8C:
- ldr r0, _0806AED0
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806AEC4
- movs r0, 0x1
- negs r0, r0
- ldr r1, _0806AED4
- str r1, [sp]
- movs r1, 0x1
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r0, 0x6
- strh r0, [r5]
-_0806AEAE:
- ldr r0, _0806AED8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0806AEC4
- adds r0, r4, 0
- bl DestroyTask
- bl DoSoftReset
-_0806AEC4:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806AECC: .4byte gUnknown_08411891
-_0806AED0: .4byte 0x03001770
-_0806AED4: .4byte 0x0000ffff
-_0806AED8: .4byte 0x0202f388
- thumb_func_end sub_806ACCC
-
- thumb_func_start sub_806AEDC
-sub_806AEDC: @ 806AEDC
- push {r4-r6,lr}
- sub sp, 0x4
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r0, _0806AF2C
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 4
- ldr r1, _0806AF30
- adds r5, r0, r1
- movs r6, 0
-_0806AEF8:
- ldrb r0, [r5]
- lsls r0, 3
- ldrb r1, [r5, 0x1]
- lsls r1, 3
- ldr r2, [r5, 0x4]
- lsls r3, r6, 5
- movs r4, 0x80
- lsls r4, 2
- orrs r3, r4
- str r3, [sp]
- movs r3, 0
- bl sub_800142C
- adds r5, 0x8
- adds r6, 0x1
- cmp r6, 0x5
- ble _0806AEF8
- bl RunTasks
- bl UpdatePaletteFade
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806AF2C: .4byte 0x0202e8fa
-_0806AF30: .4byte gUnknown_08376BB4
- thumb_func_end sub_806AEDC
-
- thumb_func_start sub_806AF34
-sub_806AF34: @ 806AF34
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_806B548
- pop {r0}
- bx r0
- thumb_func_end sub_806AF34
-
- thumb_func_start sub_806AF4C
-sub_806AF4C: @ 806AF4C
- push {r4,r5,lr}
- adds r4, r2, 0
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r3, 24
- lsrs r3, 24
- cmp r1, 0xFF
- beq _0806AF64
- ldr r0, _0806AF84
- strh r1, [r0]
-_0806AF64:
- ldr r0, _0806AF88
- movs r5, 0x96
- lsls r5, 2
- adds r1, r0, r5
- strb r2, [r1]
- movs r2, 0x97
- lsls r2, 2
- adds r1, r0, r2
- str r4, [r1]
- adds r5, 0x1
- adds r0, r5
- strb r3, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806AF84: .4byte 0x020239f8
-_0806AF88: .4byte 0x0201b000
- thumb_func_end sub_806AF4C
-
- thumb_func_start sub_806AF8C
-sub_806AF8C: @ 806AF8C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r3, 24
- lsrs r3, 24
- bl sub_806AF4C
- ldr r0, _0806AFA8
- bl SetMainCallback2
- pop {r0}
- bx r0
- .align 2, 0
-_0806AFA8: .4byte sub_806B460
- thumb_func_end sub_806AF8C
-
- thumb_func_start sub_806AFAC
-sub_806AFAC: @ 806AFAC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0806AFCC
- lsls r3, r0, 1
- adds r3, r0
- lsls r3, 2
- adds r3, r2
- ldr r2, [r3]
- ldrb r3, [r3, 0x8]
- bl sub_806AF8C
- pop {r0}
- bx r0
- .align 2, 0
-_0806AFCC: .4byte gUnknown_08376C74
- thumb_func_end sub_806AFAC
-
- thumb_func_start sub_806AFD0
-sub_806AFD0: @ 806AFD0
- push {r4,r5,lr}
- ldr r1, _0806AFF0
- movs r2, 0x99
- lsls r2, 2
- adds r0, r1, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r4, r1, 0
- cmp r0, 0x9
- bls _0806AFE6
- b _0806B11A
-_0806AFE6:
- lsls r0, 2
- ldr r1, _0806AFF4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806AFF0: .4byte 0x0201b000
-_0806AFF4: .4byte _0806AFF8
- .align 2, 0
-_0806AFF8:
- .4byte _0806B020
- .4byte _0806B060
- .4byte _0806B066
- .4byte _0806B07A
- .4byte _0806B0A4
- .4byte _0806B0AA
- .4byte _0806B0BC
- .4byte _0806B0C2
- .4byte _0806B0D4
- .4byte _0806B0EC
-_0806B020:
- ldr r0, _0806B048
- adds r5, r4, r0
- movs r1, 0
- ldrsh r3, [r5, r1]
- ldr r0, _0806B04C
- ldrb r0, [r0]
- cmp r3, r0
- bge _0806B054
- movs r2, 0x98
- lsls r2, 2
- adds r0, r4, r2
- ldrb r0, [r0]
- ldrb r1, [r5]
- movs r2, 0x64
- muls r2, r3
- ldr r3, _0806B050
- adds r2, r3
- bl sub_806D90C
- b _0806B114
- .align 2, 0
-_0806B048: .4byte 0x00000266
-_0806B04C: .4byte 0x03004350
-_0806B050: .4byte 0x03004360
-_0806B054:
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r4, r0
- b _0806B0E0
-_0806B060:
- bl sub_806DA98
- b _0806B0D8
-_0806B066:
- 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 _0806B0E0
-_0806B07A:
- movs r1, 0x98
- lsls r1, 2
- adds r0, r4, r1
- ldrb r0, [r0]
- ldr r2, _0806B0A0
- adds r5, r4, r2
- ldrb r1, [r5]
- bl sub_806BD58
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806B114
- movs r0, 0
- strh r0, [r5]
- movs r0, 0x99
- lsls r0, 2
- adds r1, r4, r0
- b _0806B0E0
- .align 2, 0
-_0806B0A0: .4byte 0x00000266
-_0806B0A4:
- bl sub_806E334
- b _0806B0D8
-_0806B0AA:
- bl sub_806E0C4
- ldr r1, _0806B0B8
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- b _0806B0E0
- .align 2, 0
-_0806B0B8: .4byte 0x0201b000
-_0806B0BC:
- bl sub_806E53C
- b _0806B0D8
-_0806B0C2:
- bl nullsub_13
- ldr r1, _0806B0D0
- movs r0, 0x99
- lsls r0, 2
- adds r1, r0
- b _0806B0E0
- .align 2, 0
-_0806B0D0: .4byte 0x0201b000
-_0806B0D4:
- bl sub_806E6C8
-_0806B0D8:
- ldr r1, _0806B0E8
- movs r2, 0x99
- lsls r2, 2
- adds r1, r2
-_0806B0E0:
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- b _0806B11A
- .align 2, 0
-_0806B0E8: .4byte 0x0201b000
-_0806B0EC:
- ldr r0, _0806B110
- adds r5, r4, r0
- ldrb r0, [r5]
- bl sub_806B58C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806B114
- movs r1, 0
- strh r1, [r5]
- movs r2, 0x99
- lsls r2, 2
- adds r0, r4, r2
- strh r1, [r0]
- movs r0, 0x1
- b _0806B11C
- .align 2, 0
-_0806B110: .4byte 0x00000266
-_0806B114:
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
-_0806B11A:
- movs r0, 0
-_0806B11C:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806AFD0
-
- thumb_func_start sub_806B124
-sub_806B124: @ 806B124
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- ldr r0, _0806B144
- ldr r1, _0806B148
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x11
- bls _0806B13A
- b _0806B450
-_0806B13A:
- lsls r0, 2
- ldr r1, _0806B14C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806B144: .4byte 0x03001770
-_0806B148: .4byte 0x0000043c
-_0806B14C: .4byte _0806B150
- .align 2, 0
-_0806B150:
- .4byte _0806B198
- .4byte _0806B240
- .4byte _0806B246
- .4byte _0806B27C
- .4byte _0806B282
- .4byte _0806B2AC
- .4byte _0806B2B2
- .4byte _0806B2D0
- .4byte _0806B2EC
- .4byte _0806B318
- .4byte _0806B344
- .4byte _0806B37C
- .4byte _0806B382
- .4byte _0806B3C0
- .4byte _0806B3CC
- .4byte _0806B3E4
- .4byte _0806B40C
- .4byte _0806B440
-_0806B198:
- movs r0, 0
- bl SetVBlankCallback
- movs r3, 0xC0
- lsls r3, 19
- movs r4, 0xC0
- lsls r4, 9
- add r2, sp, 0x8
- mov r8, r2
- add r2, sp, 0x4
- movs r6, 0
- ldr r1, _0806B22C
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _0806B230
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_0806B1BC:
- strh r6, [r2]
- add r0, sp, 0x4
- str r0, [r1]
- str r3, [r1, 0x4]
- str r7, [r1, 0x8]
- ldr r0, [r1, 0x8]
- adds r3, r5
- subs r4, r5
- cmp r4, r5
- bhi _0806B1BC
- strh r6, [r2]
- add r2, sp, 0x4
- str r2, [r1]
- str r3, [r1, 0x4]
- lsrs r0, r4, 1
- mov r3, r12
- orrs r0, r3
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0xE0
- lsls r0, 19
- movs r3, 0x80
- lsls r3, 3
- movs r4, 0
- str r4, [sp, 0x8]
- ldr r2, _0806B22C
- mov r1, r8
- str r1, [r2]
- str r0, [r2, 0x4]
- lsrs r0, r3, 2
- movs r1, 0x85
- lsls r1, 24
- orrs r0, r1
- str r0, [r2, 0x8]
- ldr r0, [r2, 0x8]
- movs r1, 0xA0
- lsls r1, 19
- add r0, sp, 0x4
- strh r4, [r0]
- str r0, [r2]
- str r1, [r2, 0x4]
- lsrs r3, 1
- movs r0, 0x81
- lsls r0, 24
- orrs r3, r0
- str r3, [r2, 0x8]
- ldr r0, [r2, 0x8]
- ldr r2, _0806B234
- ldrb r0, [r2, 0x8]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r2, 0x8]
- ldr r1, _0806B238
- ldr r2, _0806B23C
- adds r1, r2
- b _0806B42C
- .align 2, 0
-_0806B22C: .4byte 0x040000d4
-_0806B230: .4byte 0x81000800
-_0806B234: .4byte 0x0202f388
-_0806B238: .4byte 0x03001770
-_0806B23C: .4byte 0x0000043c
-_0806B240:
- bl remove_some_task
- b _0806B426
-_0806B246:
- bl sub_806B4A8
- ldr r1, _0806B26C
- movs r2, 0x99
- lsls r2, 2
- adds r0, r1, r2
- movs r2, 0
- strh r2, [r0]
- ldr r3, _0806B270
- adds r0, r1, r3
- strh r2, [r0]
- movs r0, 0x9A
- lsls r0, 2
- adds r1, r0
- strh r2, [r1]
- ldr r1, _0806B274
- ldr r2, _0806B278
- adds r1, r2
- b _0806B42C
- .align 2, 0
-_0806B26C: .4byte 0x0201b000
-_0806B270: .4byte 0x00000266
-_0806B274: .4byte 0x03001770
-_0806B278: .4byte 0x0000043c
-_0806B27C:
- bl ResetSpriteData
- b _0806B426
-_0806B282:
- ldr r0, _0806B2A0
- movs r1, 0x96
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0806B298
- cmp r0, 0x5
- beq _0806B298
- bl ResetTasks
-_0806B298:
- ldr r1, _0806B2A4
- ldr r2, _0806B2A8
- adds r1, r2
- b _0806B42C
- .align 2, 0
-_0806B2A0: .4byte 0x0201b000
-_0806B2A4: .4byte 0x03001770
-_0806B2A8: .4byte 0x0000043c
-_0806B2AC:
- bl FreeAllSpritePalettes
- b _0806B426
-_0806B2B2:
- ldr r4, _0806B2CC
- movs r1, 0x97
- lsls r1, 2
- adds r0, r4, r1
- ldr r0, [r0]
- movs r1, 0
- bl CreateTask
- movs r2, 0x98
- lsls r2, 2
- adds r1, r4, r2
- strb r0, [r1]
- b _0806B426
- .align 2, 0
-_0806B2CC: .4byte 0x0201b000
-_0806B2D0:
- ldr r0, _0806B2E0
- bl SetUpWindowConfig
- ldr r1, _0806B2E4
- ldr r0, _0806B2E8
- adds r1, r0
- b _0806B42C
- .align 2, 0
-_0806B2E0: .4byte gWindowConfig_81E6C90
-_0806B2E4: .4byte 0x03001770
-_0806B2E8: .4byte 0x0000043c
-_0806B2EC:
- ldr r4, _0806B308
- ldr r1, _0806B30C
- adds r0, r4, 0
- bl InitWindowFromConfig
- adds r0, r4, 0
- movs r1, 0x1
- bl MultistepInitWindowTileData
- ldr r1, _0806B310
- ldr r2, _0806B314
- adds r1, r2
- b _0806B42C
- .align 2, 0
-_0806B308: .4byte 0x03004210
-_0806B30C: .4byte gWindowConfig_81E6C90
-_0806B310: .4byte 0x03001770
-_0806B314: .4byte 0x0000043c
-_0806B318:
- bl MultistepLoadFont
- cmp r0, 0
- bne _0806B322
- b _0806B450
-_0806B322:
- ldr r0, _0806B338
- movs r3, 0x99
- lsls r3, 2
- adds r0, r3
- movs r1, 0x1
- strh r1, [r0]
- ldr r1, _0806B33C
- ldr r0, _0806B340
- adds r1, r0
- b _0806B42C
- .align 2, 0
-_0806B338: .4byte 0x0201b000
-_0806B33C: .4byte 0x03001770
-_0806B340: .4byte 0x0000043c
-_0806B344:
- ldr r0, _0806B368
- movs r1, 0x99
- lsls r1, 2
- adds r4, r0, r1
- ldrb r0, [r4]
- bl sub_806D718
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806B374
- movs r0, 0
- strh r0, [r4]
- ldr r1, _0806B36C
- ldr r2, _0806B370
- adds r1, r2
- b _0806B42C
- .align 2, 0
-_0806B368: .4byte 0x0201b000
-_0806B36C: .4byte 0x03001770
-_0806B370: .4byte 0x0000043c
-_0806B374:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _0806B450
-_0806B37C:
- bl sub_809D51C
- b _0806B426
-_0806B382:
- ldr r2, _0806B3B0
- ldr r0, _0806B3B4
- movs r1, 0x96
- lsls r1, 2
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r2, 0x4
- adds r0, r2
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806B450
- ldr r1, _0806B3B8
- ldr r2, _0806B3BC
- adds r1, r2
- b _0806B42C
- .align 2, 0
-_0806B3B0: .4byte gUnknown_08376C74
-_0806B3B4: .4byte 0x0201b000
-_0806B3B8: .4byte 0x03001770
-_0806B3BC: .4byte 0x0000043c
-_0806B3C0:
- ldr r0, _0806B3C8
- bl sub_8071C58
- b _0806B426
- .align 2, 0
-_0806B3C8: .4byte gWindowConfig_81E6CC8
-_0806B3CC:
- bl sub_8071C94
- cmp r0, 0
- beq _0806B450
- ldr r1, _0806B3DC
- ldr r0, _0806B3E0
- adds r1, r0
- b _0806B42C
- .align 2, 0
-_0806B3DC: .4byte 0x03001770
-_0806B3E0: .4byte 0x0000043c
-_0806B3E4:
- ldr r0, _0806B3FC
- ldr r1, _0806B400
- adds r0, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_806D538
- ldr r1, _0806B404
- ldr r2, _0806B408
- adds r1, r2
- b _0806B42C
- .align 2, 0
-_0806B3FC: .4byte 0x0201b000
-_0806B400: .4byte 0x00000259
-_0806B404: .4byte 0x03001770
-_0806B408: .4byte 0x0000043c
-_0806B40C:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r2, _0806B434
- ldrb r1, [r2, 0x8]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x8]
-_0806B426:
- ldr r1, _0806B438
- ldr r3, _0806B43C
- adds r1, r3
-_0806B42C:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0806B450
- .align 2, 0
-_0806B434: .4byte 0x0202f388
-_0806B438: .4byte 0x03001770
-_0806B43C: .4byte 0x0000043c
-_0806B440:
- ldr r0, _0806B44C
- bl SetVBlankCallback
- movs r0, 0x1
- b _0806B452
- .align 2, 0
-_0806B44C: .4byte sub_806AF34
-_0806B450:
- movs r0, 0
-_0806B452:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_806B124
-
- thumb_func_start sub_806B460
-sub_806B460: @ 806B460
- push {lr}
- b _0806B470
-_0806B464:
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806B49C
-_0806B470:
- bl sub_806B124
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806B464
- ldr r1, _0806B4A0
- movs r2, 0x96
- lsls r2, 2
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x5
- beq _0806B496
- adds r2, 0x8
- adds r0, r1, r2
- ldrb r0, [r0]
- movs r1, 0
- bl sub_806BF74
-_0806B496:
- ldr r0, _0806B4A4
- bl SetMainCallback2
-_0806B49C:
- pop {r0}
- bx r0
- .align 2, 0
-_0806B4A0: .4byte 0x0201b000
-_0806B4A4: .4byte sub_806AEDC
- thumb_func_end sub_806B460
-
- thumb_func_start sub_806B4A8
-sub_806B4A8: @ 806B4A8
- push {lr}
- movs r0, 0
- bl SetHBlankCallback
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xFA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x8
- ldr r2, _0806B50C
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0806B510
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0806B514
- adds r0, r2, 0
- strh r0, [r1]
- adds r1, 0x2
- ldr r2, _0806B518
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _0806B51C
- movs r1, 0
- strh r1, [r0]
- subs r0, 0x40
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- adds r0, 0x2
- strh r1, [r0]
- ldr r2, _0806B520
- strh r1, [r2]
- ldr r1, _0806B524
- adds r0, r1, 0
- strh r0, [r2]
- pop {r0}
- bx r0
- .align 2, 0
-_0806B50C: .4byte 0x00001e05
-_0806B510: .4byte 0x00000703
-_0806B514: .4byte 0x00000f08
-_0806B518: .4byte 0x00000602
-_0806B51C: .4byte REG_BLDCNT
-_0806B520: .4byte REG_BG3VOFS
-_0806B524: .4byte 0x0000ffff
- thumb_func_end sub_806B4A8
-
- thumb_func_start sub_806B528
-sub_806B528: @ 806B528
- push {lr}
- ldr r0, _0806B53C
- ldrh r1, [r0]
- movs r0, 0x4B
- ands r0, r1
- cmp r0, 0x4B
- beq _0806B540
- movs r0, 0
- b _0806B542
- .align 2, 0
-_0806B53C: .4byte 0x020239f8
-_0806B540:
- movs r0, 0x1
-_0806B542:
- pop {r1}
- bx r1
- thumb_func_end sub_806B528
-
- thumb_func_start sub_806B548
-sub_806B548: @ 806B548
- push {r4,lr}
- ldr r0, _0806B574
- ldr r1, _0806B578
- adds r4, r0, r1
- ldrb r3, [r4]
- cmp r3, 0
- beq _0806B56E
- ldr r1, _0806B57C
- ldr r2, _0806B580
- ldr r0, _0806B584
- str r1, [r0]
- str r2, [r0, 0x4]
- ldr r1, _0806B588
- str r1, [r0, 0x8]
- ldr r0, [r0, 0x8]
- cmp r3, 0x2
- bne _0806B56E
- movs r0, 0
- strb r0, [r4]
-_0806B56E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806B574: .4byte 0x0201b000
-_0806B578: .4byte 0x00000261
-_0806B57C: .4byte 0x020221cc
-_0806B580: .4byte 0x06003000
-_0806B584: .4byte 0x040000d4
-_0806B588: .4byte 0x80000400
- thumb_func_end sub_806B548
-
- thumb_func_start sub_806B58C
-sub_806B58C: @ 806B58C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl battle_type_is_double
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _0806B5A8
- ldr r0, _0806B5A4
- strb r2, [r0]
- b _0806B5C8
- .align 2, 0
-_0806B5A4: .4byte 0x0202e8fa
-_0806B5A8:
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806B5C0
- ldr r1, _0806B5BC
- movs r0, 0x2
- b _0806B5C4
- .align 2, 0
-_0806B5BC: .4byte 0x0202e8fa
-_0806B5C0:
- ldr r1, _0806B5E4
- movs r0, 0x1
-_0806B5C4:
- strb r0, [r1]
- adds r0, r1, 0
-_0806B5C8:
- ldrb r0, [r0]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- ldr r0, _0806B5E8
- adds r4, r1, r0
- cmp r5, 0x8
- bls _0806B5DA
- b _0806B900
-_0806B5DA:
- lsls r0, r5, 2
- ldr r1, _0806B5EC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806B5E4: .4byte 0x0202e8fa
-_0806B5E8: .4byte gUnknown_083769A8
-_0806B5EC: .4byte _0806B5F0
- .align 2, 0
-_0806B5F0:
- .4byte _0806B614
- .4byte _0806B628
- .4byte _0806B638
- .4byte _0806B694
- .4byte _0806B71A
- .4byte _0806B7A2
- .4byte _0806B832
- .4byte _0806B8C6
- .4byte _0806B8E8
-_0806B614:
- ldr r0, _0806B624
- movs r2, 0x80
- lsls r2, 4
- movs r1, 0
- bl memset
- b _0806B900
- .align 2, 0
-_0806B624: .4byte 0x020221cc
-_0806B628:
- ldrb r0, [r4]
- ldrb r1, [r4, 0x1]
- movs r2, 0x3
- bl sub_806B9A4
- adds r0, r4, 0
- movs r1, 0
- b _0806B8A8
-_0806B638:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _0806B666
- ldr r0, _0806B65C
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _0806B660
- ldrb r0, [r4, 0x2]
- ldrb r1, [r4, 0x3]
- movs r2, 0
- movs r3, 0x3
- bl sub_806BA94
- adds r0, r4, 0x2
- movs r1, 0x1
- b _0806B8A8
- .align 2, 0
-_0806B65C: .4byte 0x03004350
-_0806B660:
- ldrb r0, [r4, 0x2]
- ldrb r1, [r4, 0x3]
- b _0806B8BC
-_0806B666:
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806B684
- ldrb r0, [r4, 0x2]
- ldrb r1, [r4, 0x3]
- movs r2, 0x4
- bl sub_806B9A4
- adds r0, r4, 0x2
- movs r1, 0x1
- movs r2, 0x4
- b _0806B8AA
-_0806B684:
- ldrb r0, [r4, 0x2]
- ldrb r1, [r4, 0x3]
- movs r2, 0x3
- bl sub_806B9A4
- adds r0, r4, 0x2
- movs r1, 0x1
- b _0806B8A8
-_0806B694:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _0806B6C2
- ldr r0, _0806B6B8
- ldrb r0, [r0]
- cmp r0, 0x2
- bls _0806B6BC
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- movs r2, 0
- movs r3, 0x3
- bl sub_806BA94
- adds r0, r4, 0x4
- movs r1, 0x2
- b _0806B8A8
- .align 2, 0
-_0806B6B8: .4byte 0x03004350
-_0806B6BC:
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- b _0806B8BC
-_0806B6C2:
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806B6F6
- ldr r0, _0806B6EC
- movs r1, 0xB
- bl PokemonGetField
- cmp r0, 0
- beq _0806B6F0
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- movs r2, 0
- movs r3, 0x3
- bl sub_806BA94
- adds r0, r4, 0x4
- movs r1, 0x2
- b _0806B8A8
- .align 2, 0
-_0806B6EC: .4byte 0x03004428
-_0806B6F0:
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- b _0806B8BC
-_0806B6F6:
- ldr r0, _0806B710
- ldrb r0, [r0]
- cmp r0, 0x2
- bls _0806B714
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- movs r2, 0
- movs r3, 0x3
- bl sub_806BA94
- adds r0, r4, 0x4
- movs r1, 0x2
- b _0806B8A8
- .align 2, 0
-_0806B710: .4byte 0x03004350
-_0806B714:
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- b _0806B8BC
-_0806B71A:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _0806B74A
- ldr r0, _0806B740
- ldrb r0, [r0]
- cmp r0, 0x3
- bls _0806B744
- ldrb r0, [r4, 0x6]
- ldrb r1, [r4, 0x7]
- movs r2, 0
- movs r3, 0x3
- bl sub_806BA94
- adds r0, r4, 0x6
- movs r1, 0x3
- b _0806B8A8
- .align 2, 0
-_0806B740: .4byte 0x03004350
-_0806B744:
- ldrb r0, [r4, 0x6]
- ldrb r1, [r4, 0x7]
- b _0806B8BC
-_0806B74A:
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806B77E
- ldr r0, _0806B774
- movs r1, 0xB
- bl PokemonGetField
- cmp r0, 0
- beq _0806B778
- ldrb r0, [r4, 0x6]
- ldrb r1, [r4, 0x7]
- movs r2, 0
- movs r3, 0x3
- bl sub_806BA94
- adds r0, r4, 0x6
- movs r1, 0x3
- b _0806B8A8
- .align 2, 0
-_0806B774: .4byte 0x0300448c
-_0806B778:
- ldrb r0, [r4, 0x6]
- ldrb r1, [r4, 0x7]
- b _0806B8BC
-_0806B77E:
- ldr r0, _0806B798
- ldrb r0, [r0]
- cmp r0, 0x3
- bls _0806B79C
- ldrb r0, [r4, 0x6]
- ldrb r1, [r4, 0x7]
- movs r2, 0
- movs r3, 0x3
- bl sub_806BA94
- adds r0, r4, 0x6
- movs r1, 0x3
- b _0806B8A8
- .align 2, 0
-_0806B798: .4byte 0x03004350
-_0806B79C:
- ldrb r0, [r4, 0x6]
- ldrb r1, [r4, 0x7]
- b _0806B8BC
-_0806B7A2:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _0806B7D2
- ldr r0, _0806B7C8
- ldrb r0, [r0]
- cmp r0, 0x4
- bls _0806B7CC
- ldrb r0, [r4, 0x8]
- ldrb r1, [r4, 0x9]
- movs r2, 0
- movs r3, 0x3
- bl sub_806BA94
- adds r0, r4, 0
- adds r0, 0x8
- movs r1, 0x4
- b _0806B8A8
- .align 2, 0
-_0806B7C8: .4byte 0x03004350
-_0806B7CC:
- ldrb r0, [r4, 0x8]
- ldrb r1, [r4, 0x9]
- b _0806B8BC
-_0806B7D2:
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806B80A
- ldr r0, _0806B800
- movs r1, 0xB
- bl PokemonGetField
- cmp r0, 0
- beq _0806B804
- ldrb r0, [r4, 0x8]
- ldrb r1, [r4, 0x9]
- movs r2, 0
- movs r3, 0x4
- bl sub_806BA94
- adds r0, r4, 0
- adds r0, 0x8
- movs r1, 0x4
- movs r2, 0x4
- b _0806B8AA
- .align 2, 0
-_0806B800: .4byte 0x030044f0
-_0806B804:
- ldrb r0, [r4, 0x8]
- ldrb r1, [r4, 0x9]
- b _0806B884
-_0806B80A:
- ldr r0, _0806B828
- ldrb r0, [r0]
- cmp r0, 0x4
- bls _0806B82C
- ldrb r0, [r4, 0x8]
- ldrb r1, [r4, 0x9]
- movs r2, 0
- movs r3, 0x3
- bl sub_806BA94
- adds r0, r4, 0
- adds r0, 0x8
- movs r1, 0x4
- b _0806B8A8
- .align 2, 0
-_0806B828: .4byte 0x03004350
-_0806B82C:
- ldrb r0, [r4, 0x8]
- ldrb r1, [r4, 0x9]
- b _0806B8BC
-_0806B832:
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _0806B84C
- ldr r0, _0806B848
- ldrb r0, [r0]
- cmp r0, 0x5
- bhi _0806B896
- b _0806B8B8
- .align 2, 0
-_0806B848: .4byte 0x03004350
-_0806B84C:
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806B88E
- ldr r0, _0806B87C
- movs r1, 0xB
- bl PokemonGetField
- cmp r0, 0
- beq _0806B880
- ldrb r0, [r4, 0xA]
- ldrb r1, [r4, 0xB]
- movs r2, 0
- movs r3, 0x4
- bl sub_806BA94
- adds r0, r4, 0
- adds r0, 0xA
- movs r1, 0x5
- movs r2, 0x4
- b _0806B8AA
- .align 2, 0
-_0806B87C: .4byte 0x03004554
-_0806B880:
- ldrb r0, [r4, 0xA]
- ldrb r1, [r4, 0xB]
-_0806B884:
- movs r2, 0x1
- movs r3, 0x4
- bl sub_806BA94
- b _0806B900
-_0806B88E:
- ldr r0, _0806B8B4
- ldrb r0, [r0]
- cmp r0, 0x5
- bls _0806B8B8
-_0806B896:
- ldrb r0, [r4, 0xA]
- ldrb r1, [r4, 0xB]
- movs r2, 0
- movs r3, 0x3
- bl sub_806BA94
- adds r0, r4, 0
- adds r0, 0xA
- movs r1, 0x5
-_0806B8A8:
- movs r2, 0x3
-_0806B8AA:
- movs r3, 0
- bl sub_806BF24
- b _0806B900
- .align 2, 0
-_0806B8B4: .4byte 0x03004350
-_0806B8B8:
- ldrb r0, [r4, 0xA]
- ldrb r1, [r4, 0xB]
-_0806B8BC:
- movs r2, 0x1
- movs r3, 0x3
- bl sub_806BA94
- b _0806B900
-_0806B8C6:
- ldr r0, _0806B8E4
- movs r1, 0x96
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0806B8DA
- movs r0, 0x1
- bl sub_806BB9C
-_0806B8DA:
- movs r0, 0x1
- bl sub_806BBEC
- b _0806B900
- .align 2, 0
-_0806B8E4: .4byte 0x0201b000
-_0806B8E8:
- ldr r0, _0806B8F8
- ldr r1, _0806B8FC
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- movs r0, 0x1
- b _0806B902
- .align 2, 0
-_0806B8F8: .4byte 0x0201b000
-_0806B8FC: .4byte 0x00000261
-_0806B900:
- movs r0, 0
-_0806B902:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_806B58C
-
- thumb_func_start sub_806B908
-sub_806B908: @ 806B908
- push {r4,r5,lr}
- ldr r0, _0806B948
- movs r2, 0x80
- lsls r2, 4
- movs r1, 0
- bl memset
- ldr r1, _0806B94C
- movs r0, 0x3
- strb r0, [r1]
- ldr r0, _0806B950
- adds r4, r0, 0
- adds r4, 0x24
- ldr r5, _0806B954
- ldrb r0, [r4]
- ldrb r1, [r4, 0x1]
- movs r2, 0x3
- bl sub_806B9A4
- adds r0, r5, 0
- movs r1, 0xB
- bl PokemonGetField
- cmp r0, 0
- beq _0806B958
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- movs r2, 0
- movs r3, 0x3
- bl sub_806BA94
- b _0806B964
- .align 2, 0
-_0806B948: .4byte 0x020221cc
-_0806B94C: .4byte 0x0202e8fa
-_0806B950: .4byte gUnknown_083769A8
-_0806B954: .4byte 0x030043c4
-_0806B958:
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- movs r2, 0x1
- movs r3, 0x3
- bl sub_806BA94
-_0806B964:
- adds r0, r5, 0
- adds r0, 0x64
- movs r1, 0xB
- bl PokemonGetField
- cmp r0, 0
- beq _0806B980
- ldrb r0, [r4, 0x6]
- ldrb r1, [r4, 0x7]
- movs r2, 0
- movs r3, 0x3
- bl sub_806BA94
- b _0806B98C
-_0806B980:
- ldrb r0, [r4, 0x6]
- ldrb r1, [r4, 0x7]
- movs r2, 0x1
- movs r3, 0x3
- bl sub_806BA94
-_0806B98C:
- ldr r0, _0806B99C
- ldr r1, _0806B9A0
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806B99C: .4byte 0x0201b000
-_0806B9A0: .4byte 0x00000261
- thumb_func_end sub_806B908
-
- thumb_func_start sub_806B9A4
-sub_806B9A4: @ 806B9A4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp]
- lsls r1, 21
- lsrs r1, 16
- str r1, [sp, 0x4]
- movs r1, 0
- lsls r0, 16
- mov r8, r0
- asrs r0, 16
- mov r10, r0
- ldr r4, _0806BA2C
- mov r9, r4
-_0806B9CA:
- movs r3, 0
- adds r7, r1, 0x1
- mov r0, r10
- cmp r0, 0x1F
- bgt _0806BA12
- mov r4, r8
- asrs r2, r4, 16
- lsls r0, r1, 5
- ldr r4, [sp, 0x4]
- adds r6, r4, r0
- ldr r0, _0806BA30
- mov r12, r0
- ldr r4, [sp]
- lsls r5, r4, 12
- movs r0, 0xB
- adds r4, r1, 0
- muls r4, r0
-_0806B9EC:
- adds r0, r2, r3
- cmp r0, 0
- blt _0806BA02
- adds r0, r6, r0
- lsls r0, 1
- add r0, r12
- adds r1, r4, r3
- add r1, r9
- ldrb r1, [r1]
- orrs r1, r5
- strh r1, [r0]
-_0806BA02:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0xA
- bhi _0806BA12
- adds r0, r2, r3
- cmp r0, 0x1F
- ble _0806B9EC
-_0806BA12:
- lsls r0, r7, 24
- lsrs r1, r0, 24
- cmp r1, 0x6
- bls _0806B9CA
- 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
-_0806BA2C: .4byte gUnknown_083769D8
-_0806BA30: .4byte 0x020221cc
- thumb_func_end sub_806B9A4
-
- thumb_func_start sub_806BA34
-sub_806BA34: @ 806BA34
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r1, 21
- lsrs r1, 16
- mov r8, r1
- movs r1, 0
- lsls r7, r0, 16
- asrs r0, r7, 16
- mov r12, r0
-_0806BA48:
- movs r2, 0
- adds r4, r1, 0x1
- mov r5, r12
- cmp r5, 0x1F
- bgt _0806BA7C
- asrs r3, r7, 16
- lsls r0, r1, 5
- mov r5, r8
- adds r1, r5, r0
- ldr r6, _0806BA90
- movs r5, 0
-_0806BA5E:
- adds r0, r3, r2
- cmp r0, 0
- blt _0806BA6C
- adds r0, r1, r0
- lsls r0, 1
- adds r0, r6
- strh r5, [r0]
-_0806BA6C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xA
- bhi _0806BA7C
- adds r0, r3, r2
- cmp r0, 0x1F
- ble _0806BA5E
-_0806BA7C:
- lsls r0, r4, 24
- lsrs r1, r0, 24
- cmp r1, 0x6
- bls _0806BA48
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806BA90: .4byte 0x020221cc
- thumb_func_end sub_806BA34
-
- thumb_func_start sub_806BA94
-sub_806BA94: @ 806BA94
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r0, r1, 16
- lsls r2, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp]
- ldr r1, _0806BB30
- mov r9, r1
- cmp r2, 0
- bne _0806BABC
- ldr r1, _0806BB34
- mov r9, r1
-_0806BABC:
- lsls r0, 21
- lsrs r0, 16
- str r0, [sp, 0x4]
- movs r1, 0
- lsls r4, 16
- mov r12, r4
- asrs r4, 16
- mov r10, r4
-_0806BACC:
- movs r2, 0
- adds r7, r1, 0x1
- mov r0, r10
- cmp r0, 0x1F
- bgt _0806BB16
- mov r4, r12
- asrs r3, r4, 16
- lsls r0, r1, 5
- ldr r4, [sp, 0x4]
- adds r6, r4, r0
- ldr r0, _0806BB38
- mov r8, r0
- ldr r4, [sp]
- lsls r5, r4, 12
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- subs r4, r0, r1
-_0806BAF0:
- adds r0, r3, r2
- cmp r0, 0
- blt _0806BB06
- adds r0, r6, r0
- lsls r0, 1
- add r0, r8
- adds r1, r4, r2
- add r1, r9
- ldrb r1, [r1]
- orrs r1, r5
- strh r1, [r0]
-_0806BB06:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x12
- bhi _0806BB16
- adds r0, r3, r2
- cmp r0, 0x1F
- ble _0806BAF0
-_0806BB16:
- lsls r0, r7, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bls _0806BACC
- 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
-_0806BB30: .4byte gUnknown_08376A5E
-_0806BB34: .4byte gUnknown_08376A25
-_0806BB38: .4byte 0x020221cc
- thumb_func_end sub_806BA94
-
- thumb_func_start sub_806BB3C
-sub_806BB3C: @ 806BB3C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r1, 21
- lsrs r1, 16
- mov r8, r1
- movs r1, 0
- lsls r7, r0, 16
- asrs r0, r7, 16
- mov r12, r0
-_0806BB50:
- movs r2, 0
- adds r4, r1, 0x1
- mov r5, r12
- cmp r5, 0x1F
- bgt _0806BB84
- asrs r3, r7, 16
- lsls r0, r1, 5
- mov r5, r8
- adds r1, r5, r0
- ldr r6, _0806BB98
- movs r5, 0
-_0806BB66:
- adds r0, r3, r2
- cmp r0, 0
- blt _0806BB74
- adds r0, r1, r0
- lsls r0, 1
- adds r0, r6
- strh r5, [r0]
-_0806BB74:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x12
- bhi _0806BB84
- adds r0, r3, r2
- cmp r0, 0x1F
- ble _0806BB66
-_0806BB84:
- lsls r0, r4, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bls _0806BB50
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806BB98: .4byte 0x020221cc
- thumb_func_end sub_806BB3C
-
- thumb_func_start sub_806BB9C
-sub_806BB9C: @ 806BB9C
- push {r4,lr}
- sub sp, 0x18
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0806BBE4
- mov r0, sp
- movs r2, 0x18
- bl memcpy
- ldr r3, _0806BBE8
- movs r2, 0
- lsls r4, 12
-_0806BBB6:
- lsls r0, r2, 1
- adds r1, r0, r3
- add r0, sp
- ldrh r0, [r0]
- adds r0, r4
- strh r0, [r1]
- adds r1, 0x40
- adds r0, r2, 0x6
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- adds r0, r4
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _0806BBB6
- add sp, 0x18
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806BBE4: .4byte gUnknown_08376CD4
-_0806BBE8: .4byte 0x06003c30
- thumb_func_end sub_806BB9C
-
- thumb_func_start sub_806BBEC
-sub_806BBEC: @ 806BBEC
- push {r4,lr}
- sub sp, 0x18
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0806BC34
- mov r0, sp
- movs r2, 0x18
- bl memcpy
- ldr r3, _0806BC38
- movs r2, 0
- lsls r4, 12
-_0806BC06:
- lsls r0, r2, 1
- adds r1, r0, r3
- add r0, sp
- ldrh r0, [r0]
- adds r0, r4
- strh r0, [r1]
- adds r1, 0x40
- adds r0, r2, 0x6
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- adds r0, r4
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _0806BC06
- add sp, 0x18
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806BC34: .4byte gUnknown_08376CEC
-_0806BC38: .4byte 0x06003cb0
- thumb_func_end sub_806BBEC
-
- thumb_func_start sub_806BC3C
-sub_806BC3C: @ 806BC3C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _0806BCB0
- bl battle_type_is_double
- lsls r4, 2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r4, r1
- adds r4, r6
- ldr r7, [r4]
- movs r6, 0
- adds r0, r5, 0
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 24
- lsrs r4, r0, 19
- ldr r5, _0806BCB4
- movs r0, 0x86
- lsls r0, 1
- adds r3, r0, 0
-_0806BC7C:
- adds r1, r6, r4
- lsls r2, r6, 1
- adds r2, r7
- lsls r0, r1, 1
- adds r0, r5
- ldrh r0, [r0]
- adds r0, r3, r0
- strh r0, [r2]
- adds r2, 0x40
- adds r1, 0x20
- lsls r1, 1
- adds r1, r5
- ldrh r1, [r1]
- adds r0, r3, r1
- strh r0, [r2]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x6
- bls _0806BC7C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806BCB0: .4byte gUnknown_08376918
-_0806BCB4: .4byte gUnknown_08E9A300
- thumb_func_end sub_806BC3C
-
- thumb_func_start unref_sub_806BCB8
-unref_sub_806BCB8: @ 806BCB8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _0806BCE4
- ldrb r1, [r0]
- cmp r4, r1
- bcs _0806BCDE
- adds r6, r0, 0
-_0806BCCA:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806BC3C
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r0, [r6]
- cmp r4, r0
- bcc _0806BCCA
-_0806BCDE:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806BCE4: .4byte 0x03004350
- thumb_func_end unref_sub_806BCB8
-
- thumb_func_start sub_806BCE8
-sub_806BCE8: @ 806BCE8
- push {r4,r5,lr}
- movs r5, 0
- b _0806BD46
-_0806BCEE:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _0806BD20
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x2D
- bl PokemonGetField
- cmp r0, 0
- bne _0806BD38
- adds r0, r4, 0
- bl pokemon_get_gender
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0806BD24
- cmp r0, 0xFE
- beq _0806BD2E
- adds r0, r5, 0
- movs r1, 0x46
- bl sub_806BC3C
- b _0806BD40
- .align 2, 0
-_0806BD20: .4byte 0x03004360
-_0806BD24:
- adds r0, r5, 0
- movs r1, 0x54
- bl sub_806BC3C
- b _0806BD40
-_0806BD2E:
- adds r0, r5, 0
- movs r1, 0x62
- bl sub_806BC3C
- b _0806BD40
-_0806BD38:
- adds r0, r5, 0
- movs r1, 0x46
- bl sub_806BC3C
-_0806BD40:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_0806BD46:
- ldr r0, _0806BD54
- ldrb r0, [r0]
- cmp r5, r0
- bcc _0806BCEE
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806BD54: .4byte 0x03004350
- thumb_func_end sub_806BCE8
-
- thumb_func_start sub_806BD58
-sub_806BD58: @ 806BD58
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0806BD7C
- bl object_new_hidden_with_callback
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_806CA18
- movs r0, 0x1
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BD7C: .4byte SpriteCallbackDummy
- thumb_func_end sub_806BD58
-
- thumb_func_start sub_806BD80
-sub_806BD80: @ 806BD80
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _0806BD9C
- ldrh r0, [r0, 0x30]
- cmp r0, 0x20
- beq _0806BDB2
- cmp r0, 0x20
- bgt _0806BDA0
- cmp r0, 0x10
- beq _0806BDB6
- b _0806BDB8
- .align 2, 0
-_0806BD9C: .4byte 0x03001770
-_0806BDA0:
- cmp r0, 0x40
- beq _0806BDAA
- cmp r0, 0x80
- beq _0806BDAE
- b _0806BDB8
-_0806BDAA:
- movs r4, 0xFF
- b _0806BDB8
-_0806BDAE:
- movs r4, 0x1
- b _0806BDB8
-_0806BDB2:
- movs r4, 0xFE
- b _0806BDB8
-_0806BDB6:
- movs r4, 0x2
-_0806BDB8:
- lsls r0, r4, 24
- cmp r0, 0
- bne _0806BDDC
- bl sub_80F92BC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806BDD0
- cmp r0, 0x2
- beq _0806BDD4
- b _0806BDD6
-_0806BDD0:
- movs r4, 0xFF
- b _0806BDD6
-_0806BDD4:
- movs r4, 0x1
-_0806BDD6:
- lsls r0, r4, 24
- cmp r0, 0
- beq _0806BDF0
-_0806BDDC:
- asrs r1, r0, 24
- adds r0, r5, 0
- bl sub_806BF74
- ldr r0, _0806BDEC
- ldrh r0, [r0, 0x30]
- b _0806BE2C
- .align 2, 0
-_0806BDEC: .4byte 0x03001770
-_0806BDF0:
- ldr r0, _0806BE1C
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806BE24
- ldr r4, _0806BE20
- adds r0, r5, 0
- bl sub_806CA00
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x7
- bne _0806BE24
- movs r0, 0x2
- b _0806BE2C
- .align 2, 0
-_0806BE1C: .4byte 0x03001770
-_0806BE20: .4byte 0x02020004
-_0806BE24:
- ldr r0, _0806BE34
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
-_0806BE2C:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BE34: .4byte 0x03001770
- thumb_func_end sub_806BD80
-
- thumb_func_start sub_806BE38
-sub_806BE38: @ 806BE38
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r0, _0806BE54
- ldrh r1, [r0, 0x30]
- adds r6, r0, 0
- cmp r1, 0x20
- beq _0806BE6A
- cmp r1, 0x20
- bgt _0806BE58
- cmp r1, 0x10
- beq _0806BE6E
- b _0806BE70
- .align 2, 0
-_0806BE54: .4byte 0x03001770
-_0806BE58:
- cmp r1, 0x40
- beq _0806BE62
- cmp r1, 0x80
- beq _0806BE66
- b _0806BE70
-_0806BE62:
- movs r4, 0xFF
- b _0806BE8E
-_0806BE66:
- movs r4, 0x1
- b _0806BE8E
-_0806BE6A:
- movs r4, 0xFE
- b _0806BE8E
-_0806BE6E:
- movs r4, 0x2
-_0806BE70:
- cmp r4, 0
- bne _0806BE8E
- bl sub_80F92BC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806BE86
- cmp r0, 0x2
- beq _0806BE8A
- b _0806BE8C
-_0806BE86:
- movs r4, 0xFF
- b _0806BE8C
-_0806BE8A:
- movs r4, 0x1
-_0806BE8C:
- ldr r6, _0806BEA4
-_0806BE8E:
- ldrh r2, [r6, 0x2E]
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _0806BEA8
- adds r0, r5, 0
- bl sub_806C890
- movs r0, 0x8
- b _0806BEF0
- .align 2, 0
-_0806BEA4: .4byte 0x03001770
-_0806BEA8:
- lsls r0, r4, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _0806BEBA
- adds r0, r5, 0
- bl sub_806C658
- ldrh r0, [r6, 0x30]
- b _0806BEF0
-_0806BEBA:
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _0806BEE8
- ldr r4, _0806BEE4
- adds r0, r5, 0
- bl sub_806CA00
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0x7
- bne _0806BEE8
- movs r0, 0x2
- b _0806BEF0
- .align 2, 0
-_0806BEE4: .4byte 0x02020004
-_0806BEE8:
- ldr r0, _0806BEF8
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
-_0806BEF0:
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0806BEF8: .4byte 0x03001770
- thumb_func_end sub_806BE38
-
- thumb_func_start task_pc_turn_off
-task_pc_turn_off: @ 806BEFC
- push {lr}
- adds r2, r0, 0
- lsls r1, 24
- lsrs r3, r1, 24
- ldrb r0, [r2]
- cmp r0, 0
- beq _0806BF14
- ldrb r1, [r2, 0x1]
- movs r2, 0
- bl sub_806BA94
- b _0806BF1E
-_0806BF14:
- ldrb r0, [r2]
- ldrb r1, [r2, 0x1]
- adds r2, r3, 0
- bl sub_806B9A4
-_0806BF1E:
- pop {r0}
- bx r0
- thumb_func_end task_pc_turn_off
-
- thumb_func_start sub_806BF24
-sub_806BF24: @ 806BF24
- push {r4-r7,lr}
- adds r7, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- lsls r3, 24
- lsrs r6, r3, 24
- movs r0, 0x64
- muls r1, r0
- ldr r0, _0806BF70
- adds r5, r1, r0
- adds r0, r5, 0
- movs r1, 0xB
- bl PokemonGetField
- cmp r0, 0
- beq _0806BF56
- adds r0, r5, 0
- movs r1, 0x39
- bl PokemonGetField
- cmp r0, 0
- bne _0806BF56
- movs r4, 0x5
-_0806BF56:
- cmp r6, 0x1
- bne _0806BF60
- adds r0, r4, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
-_0806BF60:
- adds r0, r7, 0
- adds r1, r4, 0
- bl task_pc_turn_off
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806BF70: .4byte 0x03004360
- thumb_func_end sub_806BF24
-
- thumb_func_start sub_806BF74
-sub_806BF74: @ 806BF74
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- lsrs r4, r1, 24
- bl sub_806CA00
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0806C0C4
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r5, r0, 24
- mov r0, r9
- adds r1, r5, 0
- movs r2, 0
- bl sub_806DA44
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0806BFB6
- b _0806C0D8
-_0806BFB6:
- cmp r5, 0
- beq _0806BFC2
- cmp r5, 0x2
- beq _0806BFC2
- cmp r5, 0x3
- bne _0806BFD2
-_0806BFC2:
- lsls r0, r5, 1
- ldr r1, _0806C0C8
- adds r0, r1
- adds r1, r5, 0
- movs r2, 0x3
- movs r3, 0
- bl sub_806BF24
-_0806BFD2:
- cmp r5, 0x1
- beq _0806BFDE
- cmp r5, 0x4
- beq _0806BFDE
- cmp r5, 0x5
- bne _0806BFEE
-_0806BFDE:
- lsls r0, r5, 1
- ldr r1, _0806C0C8
- adds r0, r1
- adds r1, r5, 0
- movs r2, 0x4
- movs r3, 0
- bl sub_806BF24
-_0806BFEE:
- cmp r5, 0x7
- bne _0806BFF8
- movs r0, 0x1
- bl sub_806BBEC
-_0806BFF8:
- lsls r2, r4, 24
- asrs r2, 24
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_806C490
- ldr r2, _0806C0C4
- lsls r1, r6, 4
- adds r0, r1, r6
- lsls r0, 2
- adds r0, r2
- movs r2, 0x2E
- ldrsh r0, [r0, r2]
- mov r8, r1
- cmp r0, 0
- beq _0806C020
- cmp r0, 0x2
- beq _0806C020
- cmp r0, 0x3
- bne _0806C042
-_0806C020:
- ldr r0, _0806C0C4
- mov r4, r8
- adds r1, r4, r6
- lsls r1, 2
- adds r1, r0
- movs r7, 0x2E
- ldrsh r0, [r1, r7]
- lsls r0, 1
- ldr r2, _0806C0C8
- adds r0, r2
- ldrh r1, [r1, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0x3
- movs r3, 0x1
- bl sub_806BF24
-_0806C042:
- ldr r1, _0806C0C4
- mov r2, r8
- adds r0, r2, r6
- lsls r0, 2
- adds r0, r1
- movs r4, 0x2E
- ldrsh r0, [r0, r4]
- cmp r0, 0x1
- beq _0806C05C
- cmp r0, 0x4
- beq _0806C05C
- cmp r0, 0x5
- bne _0806C07E
-_0806C05C:
- ldr r0, _0806C0C4
- mov r7, r8
- adds r1, r7, r6
- lsls r1, 2
- adds r1, r0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- lsls r0, 1
- ldr r2, _0806C0C8
- adds r0, r2
- ldrh r1, [r1, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0x4
- movs r3, 0x1
- bl sub_806BF24
-_0806C07E:
- ldr r7, _0806C0C4
- mov r4, r8
- adds r0, r4, r6
- lsls r0, 2
- adds r4, r0, r7
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x7
- bne _0806C096
- movs r0, 0x2
- bl sub_806BBEC
-_0806C096:
- ldr r0, _0806C0CC
- ldr r2, _0806C0D0
- adds r0, r2
- movs r1, 0x2
- strb r1, [r0]
- ldr r1, _0806C0D4
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- adds r0, 0x40
- ldrb r0, [r0]
- strh r0, [r4, 0x20]
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- adds r0, 0x41
- ldrb r0, [r0]
- strh r0, [r4, 0x22]
- adds r0, r7, 0
- b _0806C1A4
- .align 2, 0
-_0806C0C4: .4byte 0x02020004
-_0806C0C8: .4byte gUnknown_083769C0
-_0806C0CC: .4byte 0x0201b000
-_0806C0D0: .4byte 0x00000261
-_0806C0D4: .4byte gUnknown_083768B8
-_0806C0D8:
- bl battle_type_is_double
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r5, 0x5
- bhi _0806C104
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 2
- lsls r1, r5, 1
- adds r0, r1
- ldr r1, _0806C100
- adds r0, r1
- adds r1, r5, 0
- movs r2, 0x3
- movs r3, 0
- bl sub_806BF24
- b _0806C10A
- .align 2, 0
-_0806C100: .4byte gUnknown_083769A8
-_0806C104:
- movs r0, 0x1
- bl sub_806BBEC
-_0806C10A:
- cmp r7, 0
- bne _0806C11C
- lsls r2, r4, 24
- asrs r2, 24
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_806C1E4
- b _0806C128
-_0806C11C:
- lsls r2, r4, 24
- asrs r2, 24
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_806C310
-_0806C128:
- ldr r1, _0806C160
- lsls r2, r6, 4
- adds r0, r2, r6
- lsls r0, 2
- adds r1, r0, r1
- ldrh r3, [r1, 0x2E]
- movs r4, 0x2E
- ldrsh r0, [r1, r4]
- mov r8, r2
- cmp r0, 0x5
- bgt _0806C168
- lsls r0, r7, 1
- adds r0, r7
- lsls r0, 2
- movs r2, 0x2E
- ldrsh r1, [r1, r2]
- lsls r1, 1
- adds r0, r1
- ldr r1, _0806C164
- adds r0, r1
- lsls r1, r3, 24
- lsrs r1, 24
- movs r2, 0x3
- movs r3, 0x1
- bl sub_806BF24
- b _0806C16E
- .align 2, 0
-_0806C160: .4byte 0x02020004
-_0806C164: .4byte gUnknown_083769A8
-_0806C168:
- movs r0, 0x2
- bl sub_806BBEC
-_0806C16E:
- ldr r0, _0806C1D4
- ldr r4, _0806C1D8
- adds r0, r4
- movs r1, 0x2
- strb r1, [r0]
- ldr r4, _0806C1DC
- mov r0, r8
- adds r1, r0, r6
- lsls r1, 2
- adds r1, r4
- ldr r3, _0806C1E0
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- lsls r0, 2
- lsls r2, r7, 5
- adds r0, r2
- adds r0, r3
- ldrb r0, [r0]
- strh r0, [r1, 0x20]
- movs r7, 0x2E
- ldrsh r0, [r1, r7]
- lsls r0, 2
- adds r0, r2
- adds r0, r3
- ldrb r0, [r0, 0x1]
- strh r0, [r1, 0x22]
- adds r0, r4, 0
-_0806C1A4:
- mov r1, r8
- adds r4, r1, r6
- lsls r4, 2
- adds r4, r0
- ldrh r1, [r4, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- mov r0, r9
- movs r2, 0x1
- bl sub_806DA44
- movs r2, 0x2E
- ldrsh r0, [r4, r2]
- cmp r5, r0
- beq _0806C1C8
- movs r0, 0x5
- bl audio_play
-_0806C1C8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806C1D4: .4byte 0x0201b000
-_0806C1D8: .4byte 0x00000261
-_0806C1DC: .4byte 0x02020004
-_0806C1E0: .4byte gUnknown_083768B8
- thumb_func_end sub_806BF74
-
- thumb_func_start sub_806C1E4
-sub_806C1E4: @ 806C1E4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- movs r0, 0x80
- lsls r0, 18
- adds r2, r0
- asrs r0, r2, 24
- cmp r0, 0x4
- bls _0806C200
- b _0806C306
-_0806C200:
- lsls r0, 2
- ldr r1, _0806C20C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806C20C: .4byte _0806C210
- .align 2, 0
-_0806C210:
- .4byte _0806C2EC
- .4byte _0806C238
- .4byte _0806C224
- .4byte _0806C25C
- .4byte _0806C2BC
-_0806C224:
- ldr r0, _0806C234
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0x30]
- b _0806C306
- .align 2, 0
-_0806C234: .4byte 0x02020004
-_0806C238:
- cmp r3, 0
- beq _0806C266
- cmp r3, 0x7
- bne _0806C298
- ldr r2, _0806C254
- lsls r3, r4, 4
- adds r1, r3, r4
- lsls r1, 2
- adds r1, r2
- ldr r0, _0806C258
- ldrb r0, [r0]
- subs r0, 0x1
- b _0806C2AA
- .align 2, 0
-_0806C254: .4byte 0x02020004
-_0806C258: .4byte 0x03004350
-_0806C25C:
- ldr r0, _0806C278
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r3, r0
- bne _0806C280
-_0806C266:
- ldr r2, _0806C27C
- lsls r3, r4, 4
- adds r0, r3, r4
- lsls r0, 2
- adds r0, r2
- movs r1, 0x7
- strh r1, [r0, 0x2E]
- b _0806C2AC
- .align 2, 0
-_0806C278: .4byte 0x03004350
-_0806C27C: .4byte 0x02020004
-_0806C280:
- cmp r3, 0x7
- bne _0806C298
- ldr r2, _0806C294
- lsls r3, r4, 4
- adds r0, r3, r4
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x2E]
- b _0806C2AC
- .align 2, 0
-_0806C294: .4byte 0x02020004
-_0806C298:
- ldr r2, _0806C2B8
- lsls r3, r4, 4
- adds r1, r3, r4
- lsls r1, 2
- adds r1, r2
- lsls r0, r5, 24
- asrs r0, 24
- ldrh r5, [r1, 0x2E]
- adds r0, r5
-_0806C2AA:
- strh r0, [r1, 0x2E]
-_0806C2AC:
- adds r0, r3, r4
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x30]
- b _0806C306
- .align 2, 0
-_0806C2B8: .4byte 0x02020004
-_0806C2BC:
- ldr r0, _0806C2E4
- ldrb r0, [r0]
- cmp r0, 0x1
- bls _0806C306
- cmp r3, 0
- bne _0806C306
- ldr r0, _0806C2E8
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- movs r2, 0x30
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0806C2DE
- movs r0, 0x1
- strh r0, [r1, 0x30]
-_0806C2DE:
- ldrh r0, [r1, 0x30]
- strh r0, [r1, 0x2E]
- b _0806C306
- .align 2, 0
-_0806C2E4: .4byte 0x03004350
-_0806C2E8: .4byte 0x02020004
-_0806C2EC:
- subs r0, r3, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x4
- bhi _0806C306
- ldr r0, _0806C30C
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0x2E]
- strh r3, [r1, 0x30]
-_0806C306:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806C30C: .4byte 0x02020004
- thumb_func_end sub_806C1E4
-
- thumb_func_start sub_806C310
-sub_806C310: @ 806C310
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r3, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- movs r0, 0x80
- lsls r0, 18
- adds r2, r0
- asrs r0, r2, 24
- cmp r0, 0x4
- bls _0806C32C
- b _0806C486
-_0806C32C:
- lsls r0, 2
- ldr r1, _0806C338
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806C338: .4byte _0806C33C
- .align 2, 0
-_0806C33C:
- .4byte _0806C44E
- .4byte _0806C38C
- .4byte _0806C350
- .4byte _0806C364
- .4byte _0806C3E8
-_0806C350:
- ldr r0, _0806C360
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0x30]
- b _0806C486
- .align 2, 0
-_0806C360: .4byte 0x02020004
-_0806C364:
- cmp r3, 0x7
- bne _0806C37C
- ldr r2, _0806C378
- lsls r3, r4, 4
- adds r0, r3, r4
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x2E]
- b _0806C3D8
- .align 2, 0
-_0806C378: .4byte 0x02020004
-_0806C37C:
- ldr r0, _0806C388
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r3, r0
- beq _0806C390
- b _0806C3C4
- .align 2, 0
-_0806C388: .4byte 0x03004350
-_0806C38C:
- cmp r3, 0
- bne _0806C3A4
-_0806C390:
- ldr r2, _0806C3A0
- lsls r3, r4, 4
- adds r0, r3, r4
- lsls r0, 2
- adds r0, r2
- movs r1, 0x7
- strh r1, [r0, 0x2E]
- b _0806C3D8
- .align 2, 0
-_0806C3A0: .4byte 0x02020004
-_0806C3A4:
- cmp r3, 0x7
- bne _0806C3C4
- ldr r2, _0806C3BC
- lsls r3, r4, 4
- adds r1, r3, r4
- lsls r1, 2
- adds r1, r2
- ldr r0, _0806C3C0
- ldrb r0, [r0]
- subs r0, 0x1
- b _0806C3D6
- .align 2, 0
-_0806C3BC: .4byte 0x02020004
-_0806C3C0: .4byte 0x03004350
-_0806C3C4:
- ldr r2, _0806C3E4
- lsls r3, r4, 4
- adds r1, r3, r4
- lsls r1, 2
- adds r1, r2
- lsls r0, r5, 24
- asrs r0, 24
- ldrh r5, [r1, 0x2E]
- adds r0, r5
-_0806C3D6:
- strh r0, [r1, 0x2E]
-_0806C3D8:
- adds r0, r3, r4
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x30]
- b _0806C486
- .align 2, 0
-_0806C3E4: .4byte 0x02020004
-_0806C3E8:
- cmp r3, 0
- bne _0806C418
- ldr r0, _0806C410
- ldrb r0, [r0]
- cmp r0, 0x2
- bls _0806C486
- ldr r0, _0806C414
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r2, [r1, 0x30]
- subs r0, r2, 0x2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _0806C43A
- movs r0, 0x2
- strh r0, [r1, 0x2E]
- b _0806C486
- .align 2, 0
-_0806C410: .4byte 0x03004350
-_0806C414: .4byte 0x02020004
-_0806C418:
- cmp r3, 0x1
- bne _0806C486
- ldr r0, _0806C440
- ldrb r0, [r0]
- cmp r0, 0x4
- bls _0806C486
- ldr r0, _0806C444
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- ldrh r2, [r1, 0x30]
- subs r0, r2, 0x4
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0806C448
-_0806C43A:
- strh r2, [r1, 0x2E]
- b _0806C486
- .align 2, 0
-_0806C440: .4byte 0x03004350
-_0806C444: .4byte 0x02020004
-_0806C448:
- movs r0, 0x4
- strh r0, [r1, 0x2E]
- b _0806C486
-_0806C44E:
- subs r0, r3, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0806C46C
- ldr r0, _0806C468
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- movs r0, 0
- b _0806C482
- .align 2, 0
-_0806C468: .4byte 0x02020004
-_0806C46C:
- subs r0, r3, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0806C486
- ldr r0, _0806C48C
- lsls r1, r4, 4
- adds r1, r4
- lsls r1, 2
- adds r1, r0
- movs r0, 0x1
-_0806C482:
- strh r0, [r1, 0x2E]
- strh r3, [r1, 0x30]
-_0806C486:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806C48C: .4byte 0x02020004
- thumb_func_end sub_806C310
-
- thumb_func_start sub_806C490
-sub_806C490: @ 806C490
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r2, 24
- movs r0, 0x80
- lsls r0, 18
- adds r2, r0
- asrs r0, r2, 24
- cmp r0, 0x4
- bls _0806C4AA
- b _0806C64E
-_0806C4AA:
- lsls r0, 2
- ldr r1, _0806C4B4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806C4B4: .4byte _0806C4B8
- .align 2, 0
-_0806C4B8:
- .4byte _0806C618
- .4byte _0806C524
- .4byte _0806C4CC
- .4byte _0806C4E0
- .4byte _0806C57C
-_0806C4CC:
- ldr r0, _0806C4DC
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0x30]
- b _0806C64E
- .align 2, 0
-_0806C4DC: .4byte 0x02020004
-_0806C4E0:
- cmp r4, 0x7
- bne _0806C4FC
- ldr r2, _0806C4F8
- lsls r3, r5, 4
- adds r0, r3, r5
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x2E]
- adds r1, r2, 0
- adds r6, r3, 0
- b _0806C566
- .align 2, 0
-_0806C4F8: .4byte 0x02020004
-_0806C4FC:
- lsls r6, r5, 4
- b _0806C518
-_0806C500:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0x64
- muls r0, r4
- ldr r1, _0806C520
- adds r0, r1
- movs r1, 0xB
- bl PokemonGetField
- cmp r0, 0
- bne _0806C528
-_0806C518:
- cmp r4, 0x5
- bne _0806C500
- b _0806C558
- .align 2, 0
-_0806C520: .4byte 0x03004360
-_0806C524:
- lsls r6, r5, 4
- b _0806C554
-_0806C528:
- ldr r1, _0806C534
- adds r0, r6, r5
- lsls r0, 2
- adds r0, r1
- strh r4, [r0, 0x2E]
- b _0806C566
- .align 2, 0
-_0806C534: .4byte 0x02020004
-_0806C538:
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- beq _0806C554
- movs r0, 0x64
- muls r0, r4
- ldr r1, _0806C574
- adds r0, r1
- movs r1, 0xB
- bl PokemonGetField
- cmp r0, 0
- bne _0806C528
-_0806C554:
- cmp r4, 0
- bne _0806C538
-_0806C558:
- ldr r0, _0806C578
- adds r1, r6, r5
- lsls r1, 2
- adds r1, r0
- movs r2, 0x7
- strh r2, [r1, 0x2E]
- adds r1, r0, 0
-_0806C566:
- adds r0, r6, r5
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x30]
- b _0806C64E
- .align 2, 0
-_0806C574: .4byte 0x03004360
-_0806C578: .4byte 0x02020004
-_0806C57C:
- cmp r4, 0
- bne _0806C5C8
- ldr r0, _0806C5AC
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r4, r1, r0
- ldrh r1, [r4, 0x30]
- subs r0, r1, 0x2
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _0806C5E2
- ldr r5, _0806C5B0
- adds r0, r5, 0
- movs r1, 0xB
- bl PokemonGetField
- cmp r0, 0
- beq _0806C5B4
- movs r0, 0x2
- strh r0, [r4, 0x2E]
- b _0806C64E
- .align 2, 0
-_0806C5AC: .4byte 0x02020004
-_0806C5B0: .4byte 0x03004428
-_0806C5B4:
- adds r0, r5, 0
- adds r0, 0x64
- movs r1, 0xB
- bl PokemonGetField
- cmp r0, 0
- beq _0806C64E
- movs r0, 0x3
- strh r0, [r4, 0x2E]
- b _0806C64E
-_0806C5C8:
- cmp r4, 0x1
- bne _0806C64E
- ldr r0, _0806C5E8
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r4, r1, r0
- ldrh r1, [r4, 0x30]
- subs r0, r1, 0x4
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _0806C5EC
-_0806C5E2:
- strh r1, [r4, 0x2E]
- b _0806C64E
- .align 2, 0
-_0806C5E8: .4byte 0x02020004
-_0806C5EC:
- ldr r5, _0806C600
- adds r0, r5, 0
- movs r1, 0xB
- bl PokemonGetField
- cmp r0, 0
- beq _0806C604
- movs r0, 0x4
- strh r0, [r4, 0x2E]
- b _0806C64E
- .align 2, 0
-_0806C600: .4byte 0x030044f0
-_0806C604:
- adds r0, r5, 0
- adds r0, 0x64
- movs r1, 0xB
- bl PokemonGetField
- cmp r0, 0
- beq _0806C64E
- movs r0, 0x5
- strh r0, [r4, 0x2E]
- b _0806C64E
-_0806C618:
- subs r0, r4, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0806C634
- ldr r0, _0806C630
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- movs r0, 0
- b _0806C64A
- .align 2, 0
-_0806C630: .4byte 0x02020004
-_0806C634:
- subs r0, r4, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0806C64E
- ldr r0, _0806C654
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- movs r0, 0x1
-_0806C64A:
- strh r0, [r1, 0x2E]
- strh r4, [r1, 0x30]
-_0806C64E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806C654: .4byte 0x02020004
- thumb_func_end sub_806C490
-
- thumb_func_start sub_806C658
-sub_806C658: @ 806C658
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r4, r1, 24
- bl sub_806CA00
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0806C6A0
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r6, r0, 24
- mov r0, r8
- adds r1, r6, 0
- movs r2, 0
- bl sub_806DA44
- cmp r6, 0x5
- bhi _0806C6A8
- lsls r0, r6, 1
- ldr r1, _0806C6A4
- adds r0, r1
- adds r1, r6, 0
- movs r2, 0x3
- movs r3, 0
- bl sub_806BF24
- b _0806C6BA
- .align 2, 0
-_0806C6A0: .4byte 0x02020004
-_0806C6A4: .4byte gUnknown_083769A8
-_0806C6A8:
- cmp r6, 0x6
- bne _0806C6B4
- movs r0, 0x1
- bl sub_806BB9C
- b _0806C6BA
-_0806C6B4:
- movs r0, 0x1
- bl sub_806BBEC
-_0806C6BA:
- lsls r1, r4, 24
- movs r2, 0x80
- lsls r2, 18
- adds r0, r1, r2
- asrs r0, 24
- lsls r4, r5, 4
- adds r7, r1, 0
- cmp r0, 0x4
- bls _0806C6CE
- b _0806C7EA
-_0806C6CE:
- lsls r0, 2
- ldr r1, _0806C6D8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806C6D8: .4byte _0806C6DC
- .align 2, 0
-_0806C6DC:
- .4byte _0806C7D0
- .4byte _0806C708
- .4byte _0806C6F0
- .4byte _0806C740
- .4byte _0806C7A0
-_0806C6F0:
- ldr r1, _0806C704
- lsls r2, r5, 4
- adds r0, r2, r5
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x30]
- adds r4, r2, 0
- b _0806C7EA
- .align 2, 0
-_0806C704: .4byte 0x02020004
-_0806C708:
- cmp r6, 0
- bne _0806C720
- ldr r2, _0806C71C
- lsls r3, r5, 4
- adds r0, r3, r5
- lsls r0, 2
- adds r0, r2
- movs r1, 0x7
- strh r1, [r0, 0x2E]
- b _0806C78E
- .align 2, 0
-_0806C71C: .4byte 0x02020004
-_0806C720:
- cmp r6, 0x6
- bne _0806C77C
- ldr r2, _0806C738
- lsls r3, r5, 4
- adds r1, r3, r5
- lsls r1, 2
- adds r1, r2
- ldr r0, _0806C73C
- ldrb r0, [r0]
- subs r0, 0x1
- b _0806C78C
- .align 2, 0
-_0806C738: .4byte 0x02020004
-_0806C73C: .4byte 0x03004350
-_0806C740:
- ldr r0, _0806C75C
- ldrb r0, [r0]
- subs r0, 0x1
- cmp r6, r0
- bne _0806C764
- ldr r2, _0806C760
- lsls r3, r5, 4
- adds r0, r3, r5
- lsls r0, 2
- adds r0, r2
- movs r1, 0x6
- strh r1, [r0, 0x2E]
- b _0806C78E
- .align 2, 0
-_0806C75C: .4byte 0x03004350
-_0806C760: .4byte 0x02020004
-_0806C764:
- cmp r6, 0x7
- bne _0806C77C
- ldr r2, _0806C778
- lsls r3, r5, 4
- adds r0, r3, r5
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x2E]
- b _0806C78E
- .align 2, 0
-_0806C778: .4byte 0x02020004
-_0806C77C:
- ldr r2, _0806C79C
- lsls r3, r5, 4
- adds r1, r3, r5
- lsls r1, 2
- adds r1, r2
- asrs r0, r7, 24
- ldrh r4, [r1, 0x2E]
- adds r0, r4
-_0806C78C:
- strh r0, [r1, 0x2E]
-_0806C78E:
- adds r4, r3, 0
- adds r0, r4, r5
- lsls r0, 2
- adds r0, r2
- movs r1, 0
- strh r1, [r0, 0x30]
- b _0806C7EA
- .align 2, 0
-_0806C79C: .4byte 0x02020004
-_0806C7A0:
- ldr r0, _0806C7C8
- ldrb r0, [r0]
- lsls r4, r5, 4
- cmp r0, 0x1
- bls _0806C7EA
- cmp r6, 0
- bne _0806C7EA
- ldr r0, _0806C7CC
- adds r1, r4, r5
- lsls r1, 2
- adds r1, r0
- movs r2, 0x30
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _0806C7C2
- movs r0, 0x1
- strh r0, [r1, 0x30]
-_0806C7C2:
- ldrh r0, [r1, 0x30]
- strh r0, [r1, 0x2E]
- b _0806C7EA
- .align 2, 0
-_0806C7C8: .4byte 0x03004350
-_0806C7CC: .4byte 0x02020004
-_0806C7D0:
- subs r0, r6, 0x1
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r5, 4
- cmp r0, 0x4
- bhi _0806C7EA
- ldr r0, _0806C82C
- adds r1, r4, r5
- lsls r1, 2
- adds r1, r0
- movs r0, 0
- strh r0, [r1, 0x2E]
- strh r6, [r1, 0x30]
-_0806C7EA:
- ldr r1, _0806C82C
- adds r0, r4, r5
- lsls r0, 2
- adds r2, r0, r1
- ldr r1, _0806C830
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r2, 0x20]
- movs r3, 0x2E
- ldrsh r0, [r2, r3]
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x1]
- strh r0, [r2, 0x22]
- ldrh r3, [r2, 0x2E]
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0x5
- bgt _0806C838
- lsls r0, 1
- ldr r1, _0806C834
- adds r0, r1
- lsls r1, r3, 24
- lsrs r1, 24
- movs r2, 0x3
- movs r3, 0x1
- bl sub_806BF24
- b _0806C84A
- .align 2, 0
-_0806C82C: .4byte 0x02020004
-_0806C830: .4byte gUnknown_083768B8
-_0806C834: .4byte gUnknown_083769A8
-_0806C838:
- cmp r0, 0x6
- bne _0806C844
- movs r0, 0x2
- bl sub_806BB9C
- b _0806C84A
-_0806C844:
- movs r0, 0x2
- bl sub_806BBEC
-_0806C84A:
- ldr r0, _0806C884
- ldr r2, _0806C888
- adds r0, r2
- movs r1, 0x2
- strb r1, [r0]
- ldr r0, _0806C88C
- adds r4, r5
- lsls r4, 2
- adds r4, r0
- ldrh r1, [r4, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- movs r2, 0x1
- bl sub_806DA44
- movs r3, 0x2E
- ldrsh r0, [r4, r3]
- cmp r6, r0
- beq _0806C878
- movs r0, 0x5
- bl audio_play
-_0806C878:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806C884: .4byte 0x0201b000
-_0806C888: .4byte 0x00000261
-_0806C88C: .4byte 0x02020004
- thumb_func_end sub_806C658
-
- thumb_func_start sub_806C890
-sub_806C890: @ 806C890
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- bl sub_806CA00
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _0806C8D4
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- beq _0806C914
- adds r0, r6, 0
- adds r1, r4, 0
- movs r2, 0
- bl sub_806DA44
- cmp r4, 0x5
- bhi _0806C8DC
- lsls r0, r4, 1
- ldr r1, _0806C8D8
- adds r0, r1
- adds r1, r4, 0
- movs r2, 0x3
- movs r3, 0
- bl sub_806BF24
- b _0806C8E2
- .align 2, 0
-_0806C8D4: .4byte 0x02020004
-_0806C8D8: .4byte gUnknown_083769A8
-_0806C8DC:
- movs r0, 0x1
- bl sub_806BBEC
-_0806C8E2:
- ldr r1, _0806C91C
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x30]
- movs r1, 0x6
- strh r1, [r0, 0x2E]
- ldr r2, _0806C920
- ldrb r1, [r2, 0x18]
- strh r1, [r0, 0x20]
- ldrb r1, [r2, 0x19]
- strh r1, [r0, 0x22]
- movs r0, 0x2
- bl sub_806BB9C
- ldr r0, _0806C924
- ldr r1, _0806C928
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- movs r0, 0x5
- bl audio_play
-_0806C914:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806C91C: .4byte 0x02020004
-_0806C920: .4byte gUnknown_083768B8
-_0806C924: .4byte 0x0201b000
-_0806C928: .4byte 0x00000261
- thumb_func_end sub_806C890
-
- thumb_func_start sub_806C92C
-sub_806C92C: @ 806C92C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0806C960
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x2E]
- lsls r0, 24
- lsrs r6, r0, 24
- ldrh r0, [r1, 0x30]
- lsls r0, 24
- lsrs r4, r0, 24
- bl battle_type_is_double
- lsls r0, 24
- cmp r0, 0
- bne _0806C96A
- cmp r6, 0
- bne _0806C964
- cmp r4, 0
- bne _0806C97C
- movs r4, 0x1
- b _0806C97C
- .align 2, 0
-_0806C960: .4byte 0x02020004
-_0806C964:
- cmp r4, 0
- beq _0806C97C
- b _0806C97A
-_0806C96A:
- cmp r6, 0x1
- bhi _0806C976
- cmp r4, 0x1
- bhi _0806C97C
- movs r4, 0x2
- b _0806C97C
-_0806C976:
- cmp r4, 0x1
- bls _0806C97C
-_0806C97A:
- movs r4, 0
-_0806C97C:
- ldr r1, _0806C990
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- strh r4, [r0, 0x30]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806C990: .4byte 0x02020004
- thumb_func_end sub_806C92C
-
- thumb_func_start sub_806C994
-sub_806C994: @ 806C994
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- bl sub_806CA00
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0806C9C0
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- strh r4, [r1, 0x2E]
- bl sub_806C92C
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806C9C0: .4byte 0x02020004
- thumb_func_end sub_806C994
-
- thumb_func_start sub_806C9C4
-sub_806C9C4: @ 806C9C4
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- bl sub_806CA00
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0806C9FC
- lsls r2, r4, 4
- adds r2, r4
- lsls r2, 2
- adds r2, r3
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrh r0, [r1, 0x20]
- strh r0, [r2, 0x20]
- ldrh r0, [r1, 0x22]
- strh r0, [r2, 0x22]
- ldrh r0, [r1, 0x2E]
- strh r0, [r2, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806C9FC: .4byte 0x02020004
- thumb_func_end sub_806C9C4
-
- thumb_func_start sub_806CA00
-sub_806CA00: @ 806CA00
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0806CA14
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrh r0, [r1, 0xE]
- lsrs r0, 8
- bx lr
- .align 2, 0
-_0806CA14: .4byte 0x03004b20
- thumb_func_end sub_806CA00
-
- thumb_func_start sub_806CA18
-sub_806CA18: @ 806CA18
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, _0806CA34
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- adds r2, r3
- ldrb r0, [r2, 0xE]
- lsrs r1, 16
- orrs r0, r1
- strh r0, [r2, 0xE]
- bx lr
- .align 2, 0
-_0806CA34: .4byte 0x03004b20
- thumb_func_end sub_806CA18
-
- thumb_func_start sub_806CA38
-sub_806CA38: @ 806CA38
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl sub_806CA00
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0806CA5C
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0806CA5C: .4byte 0x02020004
- thumb_func_end sub_806CA38
-
- thumb_func_start sub_806CA60
-sub_806CA60: @ 806CA60
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, _0806CAD8
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806CADC
- str r1, [r0]
- ldr r5, _0806CAE0
- strb r4, [r5]
- ldr r0, _0806CAE4
- movs r1, 0
- bl CreateTask
- ldr r0, _0806CAE8
- bl object_new_hidden_with_callback
- strb r0, [r5, 0x1]
- ldrb r1, [r5, 0x1]
- adds r0, r4, 0
- bl sub_806C9C4
- adds r0, r4, 0
- bl sub_806CA00
- strb r0, [r5, 0x2]
- ldr r1, _0806CAEC
- adds r0, r5, r1
- ldrb r0, [r0]
- movs r1, 0
- bl sub_806D538
- ldr r2, _0806CAF0
- ldrb r0, [r5, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- lsls r0, 1
- ldr r2, _0806CAF4
- adds r0, r2
- ldrh r1, [r1, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0x6
- movs r3, 0
- bl sub_806BF24
- ldr r0, _0806CAF8
- adds r5, r0
- movs r0, 0x2
- strb r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806CAD8: .4byte 0x03004b20
-_0806CADC: .4byte TaskDummy
-_0806CAE0: .4byte 0x02001000
-_0806CAE4: .4byte sub_806CB74
-_0806CAE8: .4byte SpriteCallbackDummy
-_0806CAEC: .4byte 0x0001a272
-_0806CAF0: .4byte 0x02020004
-_0806CAF4: .4byte gUnknown_083769A8
-_0806CAF8: .4byte 0x0001a261
- thumb_func_end sub_806CA60
-
- thumb_func_start sub_806CAFC
-sub_806CAFC: @ 806CAFC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _0806CB48
- ldrb r3, [r4, 0x1]
- lsls r2, r3, 4
- adds r2, r3
- lsls r2, 2
- ldr r3, _0806CB4C
- adds r5, r2, r3
- ldrb r2, [r4, 0x2]
- lsls r4, r2, 4
- adds r4, r2
- lsls r4, 2
- adds r4, r3
- lsls r1, 24
- asrs r1, 24
- bl sub_806BF74
- ldrh r2, [r5, 0x2E]
- movs r0, 0x2E
- ldrsh r1, [r5, r0]
- movs r3, 0x2E
- ldrsh r0, [r4, r3]
- cmp r1, r0
- beq _0806CB54
- adds r0, r1, 0
- lsls r0, 1
- ldr r1, _0806CB50
- adds r0, r1
- lsls r1, r2, 24
- lsrs r1, 24
- movs r2, 0x6
- movs r3, 0x1
- bl sub_806BF24
- b _0806CB6A
- .align 2, 0
-_0806CB48: .4byte 0x02001000
-_0806CB4C: .4byte 0x02020004
-_0806CB50: .4byte gUnknown_083769A8
-_0806CB54:
- movs r3, 0x2E
- ldrsh r0, [r5, r3]
- lsls r0, 1
- ldr r1, _0806CB70
- adds r0, r1
- lsls r1, r2, 24
- lsrs r1, 24
- movs r2, 0x6
- movs r3, 0
- bl sub_806BF24
-_0806CB6A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806CB70: .4byte gUnknown_083769A8
- thumb_func_end sub_806CAFC
-
- thumb_func_start sub_806CB74
-sub_806CB74: @ 806CB74
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806CB8C
- ldrh r0, [r0, 0x30]
- cmp r0, 0x20
- beq _0806CBBC
- cmp r0, 0x20
- bgt _0806CB90
- cmp r0, 0x10
- beq _0806CBD0
- b _0806CBDA
- .align 2, 0
-_0806CB8C: .4byte 0x03001770
-_0806CB90:
- cmp r0, 0x40
- beq _0806CB9A
- cmp r0, 0x80
- beq _0806CBAC
- b _0806CBDA
-_0806CB9A:
- ldr r0, _0806CBA8
- ldrb r0, [r0]
- movs r1, 0x1
- negs r1, r1
- bl sub_806CAFC
- b _0806CBDA
- .align 2, 0
-_0806CBA8: .4byte 0x02001000
-_0806CBAC:
- ldr r0, _0806CBB8
- ldrb r0, [r0]
- movs r1, 0x1
- bl sub_806CAFC
- b _0806CBDA
- .align 2, 0
-_0806CBB8: .4byte 0x02001000
-_0806CBBC:
- ldr r0, _0806CBCC
- ldrb r0, [r0]
- movs r1, 0x2
- negs r1, r1
- bl sub_806CAFC
- b _0806CBDA
- .align 2, 0
-_0806CBCC: .4byte 0x02001000
-_0806CBD0:
- ldr r0, _0806CC04
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_806CAFC
-_0806CBDA:
- ldr r0, _0806CC08
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806CC10
- movs r0, 0x5
- bl audio_play
- ldr r1, _0806CC0C
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806CC04
- ldr r1, [r1, 0xC]
- str r1, [r0]
- adds r0, r4, 0
- bl _call_via_r1
- b _0806CC24
- .align 2, 0
-_0806CC04: .4byte 0x02001000
-_0806CC08: .4byte 0x03001770
-_0806CC0C: .4byte 0x03004b20
-_0806CC10:
- lsls r0, r1, 16
- lsrs r0, 16
- cmp r0, 0x2
- bne _0806CC24
- movs r0, 0x5
- bl audio_play
- adds r0, r4, 0
- bl sub_806CD44
-_0806CC24:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_806CB74
-
- thumb_func_start sub_806CC2C
-sub_806CC2C: @ 806CC2C
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, _0806CC68
- ldrb r1, [r5, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0806CC6C
- adds r0, r1
- bl DestroySprite
- movs r0, 0
- movs r1, 0
- bl sub_806D538
- ldr r0, _0806CC70
- adds r1, r5, r0
- movs r0, 0x2
- strb r0, [r1]
- ldrb r0, [r5]
- bl SwitchTaskToFollowupFunc
- adds r0, r4, 0
- bl DestroyTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806CC68: .4byte 0x02001000
-_0806CC6C: .4byte 0x02020004
-_0806CC70: .4byte 0x0001a261
- thumb_func_end sub_806CC2C
-
- thumb_func_start sub_806CC74
-sub_806CC74: @ 806CC74
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0806CCD8
- mov r8, r0
- ldr r6, _0806CCDC
- ldrb r0, [r6, 0x2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r8
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- lsls r0, 1
- ldr r5, _0806CCE0
- adds r0, r5
- ldrh r1, [r1, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0x3
- movs r3, 0x1
- bl sub_806BF24
- ldrb r0, [r6, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r8
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- lsls r0, 1
- adds r0, r5
- ldrh r1, [r1, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0x3
- movs r3, 0
- bl sub_806BF24
- adds r0, r4, 0
- bl sub_806CC2C
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806CCD8: .4byte 0x02020004
-_0806CCDC: .4byte 0x02001000
-_0806CCE0: .4byte gUnknown_083769A8
- thumb_func_end sub_806CC74
-
- thumb_func_start sub_806CCE4
-sub_806CCE4: @ 806CCE4
- push {r4,r5,lr}
- ldr r3, _0806CD38
- ldr r2, _0806CD3C
- ldrb r1, [r2, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r4, r0, 24
- ldrb r1, [r2, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r4, 0x5
- bhi _0806CD1E
- lsls r0, r4, 1
- ldr r1, _0806CD40
- adds r0, r1
- adds r1, r4, 0
- movs r2, 0x3
- movs r3, 0
- bl sub_806BF24
-_0806CD1E:
- cmp r5, 0x5
- bhi _0806CD32
- lsls r0, r5, 1
- ldr r1, _0806CD40
- adds r0, r1
- adds r1, r5, 0
- movs r2, 0x3
- movs r3, 0x1
- bl sub_806BF24
-_0806CD32:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806CD38: .4byte 0x02020004
-_0806CD3C: .4byte 0x02001000
-_0806CD40: .4byte gUnknown_083769A8
- thumb_func_end sub_806CCE4
-
- thumb_func_start sub_806CD44
-sub_806CD44: @ 806CD44
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_806CCE4
- adds r0, r4, 0
- bl sub_806CC2C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_806CD44
-
- thumb_func_start sub_806CD5C
-sub_806CD5C: @ 806CD5C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r2, _0806CDA8
- ldr r6, _0806CDAC
- ldrb r1, [r6, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r5, r0, 24
- mov r9, r5
- ldrb r1, [r6, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- lsls r0, 24
- lsrs r4, r0, 24
- adds r7, r4, 0
- cmp r5, r4
- beq _0806CD9E
- cmp r5, 0x7
- beq _0806CD9E
- cmp r4, 0x7
- bne _0806CDB0
-_0806CD9E:
- mov r0, r8
- bl sub_806CD44
- b _0806CED2
- .align 2, 0
-_0806CDA8: .4byte 0x02020004
-_0806CDAC: .4byte 0x02001000
-_0806CDB0:
- adds r0, r5, 0
- bl sub_806D5B8
- adds r0, r4, 0
- bl sub_806D5B8
- cmp r5, r4
- bls _0806CDC6
- strb r4, [r6, 0x5]
- strb r5, [r6, 0x6]
- b _0806CDCC
-_0806CDC6:
- mov r0, r9
- strb r0, [r6, 0x5]
- strb r7, [r6, 0x6]
-_0806CDCC:
- ldr r4, _0806CE1C
- ldrb r0, [r4]
- ldrb r1, [r4, 0x5]
- bl sub_806DDA0
- strb r0, [r4, 0x3]
- ldrb r0, [r4]
- ldrb r1, [r4, 0x6]
- bl sub_806DDA0
- strb r0, [r4, 0x4]
- ldrb r3, [r4, 0x5]
- cmp r3, 0
- bne _0806CE34
- ldr r2, _0806CE20
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0806CE24
- strh r1, [r0, 0x2E]
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0806CE28
- strh r1, [r0, 0x32]
- strh r3, [r4, 0x8]
- movs r0, 0xB
- strh r0, [r4, 0xA]
- ldr r1, _0806CE2C
- mov r3, r8
- lsls r0, r3, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806CE30
- b _0806CE66
- .align 2, 0
-_0806CE1C: .4byte 0x02001000
-_0806CE20: .4byte 0x02020004
-_0806CE24: .4byte 0x0000fff8
-_0806CE28: .4byte 0x0000ff58
-_0806CE2C: .4byte 0x03004b20
-_0806CE30: .4byte sub_806D014
-_0806CE34:
- ldr r2, _0806CEE0
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0x8
- strh r1, [r0, 0x2E]
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r1, 0xA8
- strh r1, [r0, 0x32]
- movs r0, 0xB
- strh r0, [r4, 0x8]
- strh r0, [r4, 0xA]
- ldr r1, _0806CEE4
- mov r3, r8
- lsls r0, r3, 2
- add r0, r8
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806CEE8
-_0806CE66:
- str r1, [r0]
- ldr r0, _0806CEEC
- adds r1, r4, r0
- movs r0, 0x1
- strb r0, [r1]
- adds r6, r2, 0
- ldr r4, _0806CEF0
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r5, r6, 0
- adds r5, 0x1C
- adds r0, r5
- ldr r2, _0806CEF4
- str r2, [r0]
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0x8
- strh r1, [r0, 0x2E]
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- movs r1, 0xA8
- strh r1, [r0, 0x32]
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- str r2, [r0]
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r5
- adds r0, r6
- ldr r1, [r1]
- bl _call_via_r1
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r5, r0, r5
- adds r0, r6
- ldr r1, [r5]
- bl _call_via_r1
-_0806CED2:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806CEE0: .4byte 0x02020004
-_0806CEE4: .4byte 0x03004b20
-_0806CEE8: .4byte sub_806D118
-_0806CEEC: .4byte 0x0001a261
-_0806CEF0: .4byte 0x02001000
-_0806CEF4: .4byte sub_806D37C
- thumb_func_end sub_806CD5C
-
- thumb_func_start sub_806CEF8
-sub_806CEF8: @ 806CEF8
- ldrh r3, [r0]
- ldrh r2, [r1]
- strh r2, [r0]
- strh r3, [r1]
- bx lr
- thumb_func_end sub_806CEF8
-
- thumb_func_start sub_806CF04
-sub_806CF04: @ 806CF04
- push {r4,r5,lr}
- ldr r4, _0806CF94
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, _0806CF98
- adds r0, r5
- ldrb r2, [r4, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- bl sub_806CEF8
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r5, 0x2
- adds r0, r3
- ldrb r2, [r4, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- bl sub_806CEF8
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r5, 0x4
- adds r0, r3
- ldrb r2, [r4, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- bl sub_806CEF8
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r5, 0
- adds r3, 0xE
- adds r0, r3
- ldrb r2, [r4, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- bl sub_806CEF8
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- subs r5, 0x4
- adds r0, r5
- ldr r2, _0806CF9C
- str r2, [r0]
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- str r2, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806CF94: .4byte 0x02001000
-_0806CF98: .4byte 0x02020024
-_0806CF9C: .4byte sub_806D37C
- thumb_func_end sub_806CF04
-
- thumb_func_start sub_806CFA0
-sub_806CFA0: @ 806CFA0
- push {r4-r6,lr}
- lsls r4, r1, 24
- lsrs r4, 24
- ldr r5, _0806CFDC
- ldrb r1, [r5, 0x6]
- subs r1, 0x1
- lsls r0, r1, 1
- adds r0, r1
- adds r0, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- movs r1, 0x3
- bl sub_806BA34
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- adds r1, r6, 0
- bl sub_806BB3C
- cmp r4, 0
- bne _0806CFE0
- ldrh r0, [r5, 0x8]
- subs r0, 0x1
- strh r0, [r5, 0x8]
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- b _0806CFEA
- .align 2, 0
-_0806CFDC: .4byte 0x02001000
-_0806CFE0:
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- ldrh r0, [r5, 0xA]
- subs r0, 0x1
-_0806CFEA:
- strh r0, [r5, 0xA]
- ldr r4, _0806D010
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- movs r1, 0x3
- movs r2, 0xA
- bl sub_806B9A4
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0xA
- bl sub_806BA94
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D010: .4byte 0x02001000
- thumb_func_end sub_806CFA0
-
- thumb_func_start sub_806D014
-sub_806D014: @ 806D014
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- movs r1, 0
- bl sub_806CFA0
- ldr r2, _0806D050
- movs r0, 0x8
- ldrsh r1, [r2, r0]
- movs r0, 0xD
- negs r0, r0
- cmp r1, r0
- bge _0806D04A
- movs r1, 0xA
- ldrsh r0, [r2, r1]
- cmp r0, 0x20
- ble _0806D04A
- bl sub_806CF04
- ldr r0, _0806D054
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806D058
- str r0, [r1]
-_0806D04A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D050: .4byte 0x02001000
-_0806D054: .4byte 0x03004b20
-_0806D058: .4byte sub_806D05C
- thumb_func_end sub_806D014
-
- thumb_func_start sub_806D05C
-sub_806D05C: @ 806D05C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806CFA0
- ldr r0, _0806D08C
- ldr r1, [r0, 0x8]
- movs r0, 0xB0
- lsls r0, 12
- cmp r1, r0
- bne _0806D084
- ldr r0, _0806D090
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806D094
- str r0, [r1]
-_0806D084:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D08C: .4byte 0x02001000
-_0806D090: .4byte 0x03004b20
-_0806D094: .4byte sub_806D198
- thumb_func_end sub_806D05C
-
- thumb_func_start sub_806D098
-sub_806D098: @ 806D098
- push {r4-r7,lr}
- lsls r4, r1, 24
- lsrs r4, 24
- ldr r5, _0806D0E0
- ldrb r1, [r5, 0x5]
- subs r1, 0x1
- lsls r0, r1, 1
- adds r0, r1
- adds r0, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldrb r1, [r5, 0x6]
- subs r1, 0x1
- lsls r0, r1, 1
- adds r0, r1
- adds r0, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- adds r1, r7, 0
- bl sub_806BB3C
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- adds r1, r6, 0
- bl sub_806BB3C
- cmp r4, 0
- bne _0806D0E4
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- ldrh r0, [r5, 0xA]
- adds r0, 0x1
- b _0806D0EE
- .align 2, 0
-_0806D0E0: .4byte 0x02001000
-_0806D0E4:
- ldrh r0, [r5, 0x8]
- subs r0, 0x1
- strh r0, [r5, 0x8]
- ldrh r0, [r5, 0xA]
- subs r0, 0x1
-_0806D0EE:
- strh r0, [r5, 0xA]
- ldr r4, _0806D114
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- adds r1, r7, 0
- movs r2, 0
- movs r3, 0xA
- bl sub_806BA94
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0xA
- bl sub_806BA94
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D114: .4byte 0x02001000
- thumb_func_end sub_806D098
-
- thumb_func_start sub_806D118
-sub_806D118: @ 806D118
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- movs r1, 0
- bl sub_806D098
- ldr r1, _0806D150
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- cmp r0, 0x20
- ble _0806D14A
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0x20
- ble _0806D14A
- bl sub_806CF04
- ldr r0, _0806D154
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806D158
- str r0, [r1]
-_0806D14A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D150: .4byte 0x02001000
-_0806D154: .4byte 0x03004b20
-_0806D158: .4byte sub_806D15C
- thumb_func_end sub_806D118
-
- thumb_func_start sub_806D15C
-sub_806D15C: @ 806D15C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806D098
- ldr r0, _0806D188
- ldr r1, [r0, 0x8]
- ldr r0, _0806D18C
- cmp r1, r0
- bne _0806D182
- ldr r0, _0806D190
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806D194
- str r0, [r1]
-_0806D182:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D188: .4byte 0x02001000
-_0806D18C: .4byte 0x000b000b
-_0806D190: .4byte 0x03004b20
-_0806D194: .4byte sub_806D198
- thumb_func_end sub_806D15C
-
- thumb_func_start sub_806D198
-sub_806D198: @ 806D198
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r0
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- ldr r4, _0806D364
- ldrb r0, [r4]
- ldrb r1, [r4, 0x5]
- ldrb r2, [r4, 0x4]
- bl sub_806DE50
- ldrb r0, [r4]
- ldrb r1, [r4, 0x6]
- ldrb r2, [r4, 0x3]
- bl sub_806DE50
- bl battle_type_is_double
- ldr r5, _0806D368
- ldrb r1, [r4, 0x3]
- lsls r3, r1, 4
- adds r3, r1
- lsls r3, 2
- adds r3, r5
- ldr r6, _0806D36C
- ldrb r2, [r4, 0x6]
- lsls r2, 2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r2, r1
- adds r2, r6
- ldrb r0, [r2]
- movs r1, 0
- mov r8, r1
- strh r0, [r3, 0x20]
- bl battle_type_is_double
- ldrb r1, [r4, 0x3]
- lsls r3, r1, 4
- adds r3, r1
- lsls r3, 2
- adds r3, r5
- ldrb r2, [r4, 0x6]
- lsls r2, 2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r2, r1
- adds r2, r6
- ldrb r0, [r2, 0x1]
- strh r0, [r3, 0x22]
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x24]
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x26]
- ldrb r1, [r4, 0x3]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- movs r1, 0x1C
- adds r1, r5
- mov r9, r1
- add r0, r9
- ldr r7, _0806D370
- str r7, [r0]
- bl battle_type_is_double
- ldrb r1, [r4, 0x4]
- lsls r3, r1, 4
- adds r3, r1
- lsls r3, 2
- adds r3, r5
- ldrb r2, [r4, 0x5]
- lsls r2, 2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r2, r1
- adds r2, r6
- ldrb r0, [r2]
- strh r0, [r3, 0x20]
- bl battle_type_is_double
- ldrb r1, [r4, 0x4]
- lsls r3, r1, 4
- adds r3, r1
- lsls r3, 2
- adds r3, r5
- ldrb r2, [r4, 0x5]
- lsls r2, 2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r2, r1
- adds r2, r6
- ldrb r0, [r2, 0x1]
- strh r0, [r3, 0x22]
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x24]
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x26]
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- str r7, [r0]
- ldrb r0, [r4]
- ldrb r2, [r4, 0x2]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- ldrh r1, [r1, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- bl sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r9
- ldr r0, _0806D374
- str r0, [r1]
- ldrb r0, [r4, 0x5]
- movs r6, 0x64
- muls r0, r6
- ldr r5, _0806D378
- adds r0, r5
- ldrb r1, [r4, 0x6]
- muls r1, r6
- adds r1, r5
- bl sub_806E6F0
- ldrb r0, [r4, 0x5]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- bl sub_806E2C0
- ldrb r0, [r4, 0x5]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- bl sub_806E07C
- ldrb r0, [r4, 0x5]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- bl sub_806E4E8
- ldrb r0, [r4, 0x5]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- bl nullsub_12
- ldrb r0, [r4, 0x6]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- bl sub_806E2C0
- ldrb r0, [r4, 0x6]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- bl sub_806E07C
- ldrb r0, [r4, 0x6]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- bl sub_806E4E8
- ldrb r0, [r4, 0x6]
- adds r1, r0, 0
- muls r1, r6
- adds r1, r5
- bl nullsub_12
- bl sub_806E6C8
- mov r0, r10
- bl sub_806CC74
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D364: .4byte 0x02001000
-_0806D368: .4byte 0x02020004
-_0806D36C: .4byte gUnknown_08376678
-_0806D370: .4byte sub_806DA38
-_0806D374: .4byte sub_806DA0C
-_0806D378: .4byte 0x03004360
- thumb_func_end sub_806D198
-
- thumb_func_start sub_806D37C
-sub_806D37C: @ 806D37C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_809D638
- ldrh r2, [r4, 0x24]
- movs r0, 0x24
- ldrsh r1, [r4, r0]
- movs r3, 0x32
- ldrsh r0, [r4, r3]
- cmp r1, r0
- bne _0806D3A8
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- negs r0, r0
- movs r1, 0
- strh r0, [r4, 0x2E]
- strh r1, [r4, 0x32]
- ldr r0, _0806D3A4
- str r0, [r4, 0x1C]
- b _0806D3AE
- .align 2, 0
-_0806D3A4: .4byte sub_806DA38
-_0806D3A8:
- ldrh r0, [r4, 0x2E]
- adds r0, r2, r0
- strh r0, [r4, 0x24]
-_0806D3AE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_806D37C
-
- thumb_func_start sub_806D3B4
-sub_806D3B4: @ 806D3B4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- ldr r6, _0806D438
- ldr r1, _0806D43C
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r5, r0, r1
- ldrh r0, [r5, 0x8]
- ldrb r1, [r6, 0x2]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrb r1, [r6, 0x3]
- bl sub_806BA34
- ldrh r0, [r5, 0x8]
- ldrb r1, [r6, 0x8]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrb r1, [r6, 0x9]
- bl sub_806BB3C
- ldrh r0, [r5, 0x8]
- ldrb r1, [r6, 0xA]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrb r1, [r6, 0xB]
- bl sub_806BB3C
- ldrh r1, [r5, 0x8]
- subs r1, 0x1
- strh r1, [r5, 0x8]
- ldrb r0, [r6, 0x2]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrb r1, [r6, 0x3]
- movs r2, 0x4
- bl sub_806B9A4
- cmp r4, 0
- beq _0806D440
- ldrh r0, [r5, 0x8]
- ldrb r1, [r6, 0x8]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrb r1, [r6, 0x9]
- movs r2, 0
- movs r3, 0x4
- bl sub_806BA94
- b _0806D454
- .align 2, 0
-_0806D438: .4byte gUnknown_083769C0
-_0806D43C: .4byte 0x03004b20
-_0806D440:
- ldrh r0, [r5, 0x8]
- ldrb r1, [r6, 0x8]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrb r1, [r6, 0x9]
- movs r2, 0x1
- movs r3, 0x4
- bl sub_806BA94
-_0806D454:
- mov r0, r8
- cmp r0, 0
- beq _0806D480
- ldr r1, _0806D47C
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x8]
- ldrb r1, [r6, 0xA]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrb r1, [r6, 0xB]
- movs r2, 0
- movs r3, 0x4
- bl sub_806BA94
- b _0806D49E
- .align 2, 0
-_0806D47C: .4byte 0x03004b20
-_0806D480:
- ldr r1, _0806D4A8
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x8]
- ldrb r1, [r6, 0xA]
- adds r0, r1
- lsls r0, 16
- asrs r0, 16
- ldrb r1, [r6, 0xB]
- movs r2, 0x1
- movs r3, 0x4
- bl sub_806BA94
-_0806D49E:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D4A8: .4byte 0x03004b20
- thumb_func_end sub_806D3B4
-
- thumb_func_start sub_806D4AC
-sub_806D4AC: @ 806D4AC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 16
- lsls r2, 24
- lsrs r2, 24
- cmp r1, 0
- beq _0806D4F6
- adds r1, r2, 0x3
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0806D4FC
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r4, r1, r2
- ldr r0, _0806D500
- strh r0, [r4, 0x2E]
- ldr r3, _0806D504
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r3
- movs r3, 0x8
- ldrsh r0, [r0, r3]
- lsls r0, 3
- negs r0, r0
- strh r0, [r4, 0x32]
- adds r2, 0x1C
- adds r1, r2
- ldr r0, _0806D508
- str r0, [r1]
-_0806D4F6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D4FC: .4byte 0x02020004
-_0806D500: .4byte 0x0000fff8
-_0806D504: .4byte 0x03004b20
-_0806D508: .4byte sub_806D37C
- thumb_func_end sub_806D4AC
-
- thumb_func_start sub_806D50C
-sub_806D50C: @ 806D50C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- bl sub_806DDA0
- ldr r2, _0806D534
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x20]
- adds r0, 0xF0
- strh r0, [r1, 0x20]
- pop {r0}
- bx r0
- .align 2, 0
-_0806D534: .4byte 0x02020004
- thumb_func_end sub_806D50C
-
- thumb_func_start sub_806D538
-sub_806D538: @ 806D538
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r1, 24
- adds r0, r1, 0
- cmp r4, 0xFF
- beq _0806D59A
- cmp r1, 0x1
- beq _0806D568
- cmp r1, 0x1
- bgt _0806D556
- cmp r1, 0
- beq _0806D560
- b _0806D58A
-_0806D556:
- cmp r0, 0x2
- beq _0806D570
- cmp r0, 0x3
- beq _0806D57E
- b _0806D58A
-_0806D560:
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x17
- b _0806D576
-_0806D568:
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x13
- b _0806D576
-_0806D570:
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x16
-_0806D576:
- movs r3, 0x13
- bl DrawDefaultWindow
- b _0806D58A
-_0806D57E:
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x12
- movs r3, 0x13
- bl DrawDefaultWindow
-_0806D58A:
- ldr r0, _0806D5A0
- lsls r1, r4, 2
- adds r1, r0
- ldr r0, [r1]
- movs r1, 0x1
- movs r2, 0x11
- bl Print
-_0806D59A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D5A0: .4byte gUnknown_08376624
- thumb_func_end sub_806D538
-
- thumb_func_start sub_806D5A4
-sub_806D5A4: @ 806D5A4
- push {lr}
- movs r0, 0
- movs r1, 0x10
- movs r2, 0x1D
- movs r3, 0x13
- bl Reset
- pop {r0}
- bx r0
- thumb_func_end sub_806D5A4
-
- thumb_func_start sub_806D5B8
-sub_806D5B8: @ 806D5B8
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x8
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _0806D658
- bl battle_type_is_double
- lsls r4, r5, 2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r4, r1
- adds r1, r6
- ldrb r1, [r1]
- mov r10, r1
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r4, r1
- adds r1, r6
- ldrb r1, [r1, 0x1]
- mov r9, r1
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r4, r1
- adds r1, r6
- ldrb r1, [r1, 0x2]
- mov r8, r1
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r4, r1
- adds r4, r6
- ldrb r1, [r4, 0x3]
- ldr r0, _0806D65C
- str r1, [sp]
- mov r1, r10
- mov r2, r9
- mov r3, r8
- bl ZeroFillWindowRect
- movs r0, 0
- str r0, [sp, 0x4]
- lsls r5, 10
- ldr r0, _0806D660
- adds r5, r0
- ldr r2, _0806D664
- add r0, sp, 0x4
- adds r1, r5, 0
- bl CpuFastSet
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D658: .4byte gUnknown_08376948
-_0806D65C: .4byte 0x03004210
-_0806D660: .4byte 0x06014000
-_0806D664: .4byte 0x01000100
- thumb_func_end sub_806D5B8
-
- thumb_func_start sub_806D668
-sub_806D668: @ 806D668
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x8
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r6, _0806D708
- bl battle_type_is_double
- lsls r4, r5, 2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r4, r1
- adds r1, r6
- ldrb r1, [r1]
- mov r10, r1
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r4, r1
- adds r1, r6
- ldrb r1, [r1, 0x1]
- mov r9, r1
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, r4, r1
- adds r1, r6
- ldrb r1, [r1, 0x2]
- mov r8, r1
- bl battle_type_is_double
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r4, r1
- adds r4, r6
- ldrb r1, [r4, 0x3]
- ldr r0, _0806D70C
- str r1, [sp]
- mov r1, r10
- mov r2, r9
- mov r3, r8
- bl ZeroFillWindowRect
- movs r0, 0
- str r0, [sp, 0x4]
- lsls r5, 10
- ldr r0, _0806D710
- adds r5, r0
- ldr r2, _0806D714
- add r0, sp, 0x4
- adds r1, r5, 0
- bl CpuFastSet
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D708: .4byte gUnknown_08376978
-_0806D70C: .4byte 0x03004210
-_0806D710: .4byte 0x06014300
-_0806D714: .4byte 0x01000040
- thumb_func_end sub_806D668
-
- thumb_func_start sub_806D718
-sub_806D718: @ 806D718
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0806D7C4
- mov r0, sp
- strh r1, [r0]
- movs r5, 0
- cmp r4, 0x1
- bhi _0806D736
- ldr r0, _0806D7C8
- movs r1, 0xC0
- lsls r1, 19
- bl LZDecompressVram
-_0806D736:
- cmp r4, 0x2
- beq _0806D73E
- cmp r4, 0
- bne _0806D746
-_0806D73E:
- ldr r0, _0806D7CC
- ldr r1, _0806D7D0
- bl LZDecompressVram
-_0806D746:
- cmp r4, 0x3
- beq _0806D74E
- cmp r4, 0
- bne _0806D75A
-_0806D74E:
- ldr r0, _0806D7D4
- movs r2, 0xB0
- lsls r2, 1
- movs r1, 0
- bl LoadCompressedPalette
-_0806D75A:
- cmp r4, 0x4
- beq _0806D762
- cmp r4, 0
- bne _0806D776
-_0806D762:
- mov r0, sp
- movs r1, 0
- movs r2, 0x2
- bl LoadPalette
- ldr r0, _0806D7D8
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
-_0806D776:
- cmp r4, 0x5
- beq _0806D77E
- cmp r4, 0
- bne _0806D786
-_0806D77E:
- ldr r0, _0806D7DC
- ldr r1, _0806D7E0
- bl LZDecompressVram
-_0806D786:
- cmp r4, 0x6
- beq _0806D78E
- cmp r4, 0
- bne _0806D796
-_0806D78E:
- ldr r0, _0806D7E4
- ldr r1, _0806D7E8
- bl LZDecompressVram
-_0806D796:
- cmp r4, 0x7
- beq _0806D79E
- cmp r4, 0
- bne _0806D7A6
-_0806D79E:
- ldr r0, _0806D7EC
- ldr r1, _0806D7F0
- bl LZDecompressVram
-_0806D7A6:
- cmp r4, 0x8
- beq _0806D7AE
- cmp r4, 0
- bne _0806D7BA
-_0806D7AE:
- ldr r0, _0806D7F4
- movs r1, 0xB0
- movs r2, 0x20
- bl LoadCompressedPalette
- movs r5, 0x1
-_0806D7BA:
- adds r0, r5, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806D7C4: .4byte 0x00007fff
-_0806D7C8: .4byte gPartyMenuMisc_Gfx
-_0806D7CC: .4byte gPartyMenuMisc_Tilemap
-_0806D7D0: .4byte 0x06003800
-_0806D7D4: .4byte gPartyMenuMisc_Pal
-_0806D7D8: .4byte gFontDefaultPalette
-_0806D7DC: .4byte gPartyMenuHpBar_Gfx
-_0806D7E0: .4byte 0x06006000
-_0806D7E4: .4byte gPartyMenuOrderText_Gfx
-_0806D7E8: .4byte 0x06006180
-_0806D7EC: .4byte gStatusGfx_Icons
-_0806D7F0: .4byte 0x06007180
-_0806D7F4: .4byte gStatusPal_Icons
- thumb_func_end sub_806D718
-
- thumb_func_start sub_806D7F8
-sub_806D7F8: @ 806D7F8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsls r2, 16
- lsrs r5, r1, 16
- asrs r1, 16
- lsrs r4, r2, 16
- asrs r2, 16
- adds r0, r1, 0
- adds r1, r2, 0
- bl sub_8046200
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- cmp r5, r4
- beq _0806D830
- movs r2, 0x1
- cmp r0, 0x3
- beq _0806D830
- movs r2, 0x2
- cmp r0, 0x2
- beq _0806D830
- movs r2, 0x4
- cmp r0, 0x1
- bne _0806D830
- movs r2, 0x3
-_0806D830:
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- ldr r1, _0806D848
- adds r0, r1
- adds r1, r2, 0
- bl sub_809D824
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D848: .4byte 0x02020004
- thumb_func_end sub_806D7F8
-
- thumb_func_start sub_806D84C
-sub_806D84C: @ 806D84C
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- movs r1, 0x39
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- movs r1, 0x3A
- bl PokemonGetField
- adds r2, r0, 0
- lsls r2, 16
- lsrs r2, 16
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_806D7F8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806D84C
-
- thumb_func_start sub_806D880
-sub_806D880: @ 806D880
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x8
- adds r6, r0, 0
- adds r5, r1, 0
- mov r8, r3
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _0806D904
- lsls r1, r5, 2
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, r3
- ldrb r0, [r1]
- mov r9, r0
- ldrb r1, [r1, 0x1]
- mov r10, r1
- mov r0, r8
- movs r1, 0x41
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0
- bl PokemonGetField
- ldr r1, _0806D908
- movs r2, 0x5
- str r2, [sp]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- mov r2, r9
- mov r3, r10
- bl sub_809D2FC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_806DE50
- adds r0, r4, 0
- mov r1, r8
- bl sub_806D84C
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D904: .4byte gUnknown_08376678
-_0806D908: .4byte sub_809D62C
- thumb_func_end sub_806D880
-
- thumb_func_start sub_806D90C
-sub_806D90C: @ 806D90C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r4, r2, 0
- lsls r0, 24
- lsrs r6, r0, 24
- mov r8, r6
- lsls r1, 24
- lsrs r5, r1, 24
- adds r7, r5, 0
- adds r0, r4, 0
- movs r1, 0xB
- bl PokemonGetField
- cmp r0, 0
- beq _0806D95A
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806D946
- adds r0, r6, 0
- adds r1, r5, 0
- movs r2, 0x2
- adds r3, r4, 0
- bl sub_806D880
- b _0806D95A
-_0806D946:
- bl battle_type_is_double
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- mov r0, r8
- adds r1, r7, 0
- adds r3, r4, 0
- bl sub_806D880
-_0806D95A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806D90C
-
- thumb_func_start unref_sub_806D964
-unref_sub_806D964: @ 806D964
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- b _0806D986
-_0806D96E:
- movs r0, 0x64
- adds r2, r4, 0
- muls r2, r0
- ldr r0, _0806D994
- adds r2, r0
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_806D90C
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_0806D986:
- ldr r0, _0806D998
- ldrb r0, [r0]
- cmp r4, r0
- bcc _0806D96E
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806D994: .4byte 0x03004360
-_0806D998: .4byte 0x03004350
- thumb_func_end unref_sub_806D964
-
- thumb_func_start sub_806D99C
-sub_806D99C: @ 806D99C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r6, r0, 0
- adds r5, r1, 0
- mov r8, r3
- lsls r6, 24
- lsrs r6, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _0806DA04
- lsls r1, r5, 2
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r1, r0
- adds r1, r3
- ldrb r2, [r1]
- ldrb r3, [r1, 0x1]
- mov r1, r8
- ldrh r0, [r1]
- ldr r1, _0806DA08
- movs r4, 0x5
- str r4, [sp]
- mov r7, r8
- ldr r4, [r7, 0x18]
- str r4, [sp, 0x4]
- bl sub_809D2FC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_806DE50
- ldrh r1, [r7, 0x10]
- ldrh r2, [r7, 0x12]
- adds r0, r4, 0
- bl sub_806D7F8
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DA04: .4byte gUnknown_08376678
-_0806DA08: .4byte sub_809D62C
- thumb_func_end sub_806D99C
-
- thumb_func_start sub_806DA0C
-sub_806DA0C: @ 806DA0C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_809D638
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0806DA32
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0806DA30
- ldr r0, _0806DA2C
- strh r0, [r4, 0x26]
- b _0806DA32
- .align 2, 0
-_0806DA2C: .4byte 0x0000fffd
-_0806DA30:
- strh r1, [r4, 0x26]
-_0806DA32:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_806DA0C
-
- thumb_func_start sub_806DA38
-sub_806DA38: @ 806DA38
- push {lr}
- bl sub_809D638
- pop {r0}
- bx r0
- thumb_func_end sub_806DA38
-
- thumb_func_start sub_806DA44
-sub_806DA44: @ 806DA44
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- cmp r1, 0x5
- bhi _0806DA8E
- bl sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0806DA7C
- lsls r1, r0, 4
- adds r1, r0
- lsls r2, r1, 2
- adds r1, r2, r3
- movs r0, 0
- strh r0, [r1, 0x26]
- strh r0, [r1, 0x2E]
- cmp r4, 0
- bne _0806DA84
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r2, r0
- ldr r1, _0806DA80
- b _0806DA8C
- .align 2, 0
-_0806DA7C: .4byte 0x02020004
-_0806DA80: .4byte sub_806DA38
-_0806DA84:
- adds r0, r3, 0
- adds r0, 0x1C
- adds r0, r2, r0
- ldr r1, _0806DA94
-_0806DA8C:
- str r1, [r0]
-_0806DA8E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DA94: .4byte sub_806DA0C
- thumb_func_end sub_806DA44
-
- thumb_func_start sub_806DA98
-sub_806DA98: @ 806DA98
- push {lr}
- ldr r0, _0806DAAC
- bl LoadSpriteSheet
- ldr r0, _0806DAB0
- bl LoadSpritePalette
- pop {r0}
- bx r0
- .align 2, 0
-_0806DAAC: .4byte gUnknown_083765DC
-_0806DAB0: .4byte gUnknown_083765E4
- thumb_func_end sub_806DA98
-
- thumb_func_start sub_806DAB4
-sub_806DAB4: @ 806DAB4
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x3C]
- lsls r1, 24
- lsrs r1, 24
- ldr r2, _0806DAE4
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, r0, r2
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 29
- cmp r0, 0
- bge _0806DAE8
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0806DB06
- .align 2, 0
-_0806DAE4: .4byte 0x02020004
-_0806DAE8:
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- ldrh r0, [r2, 0x24]
- ldrh r1, [r2, 0x20]
- adds r0, r1
- strh r0, [r4, 0x20]
- ldrh r0, [r2, 0x26]
- ldrh r2, [r2, 0x22]
- adds r0, r2
- strh r0, [r4, 0x22]
-_0806DB06:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_806DAB4
-
- thumb_func_start sub_806DB0C
-sub_806DB0C: @ 806DB0C
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- adds r6, r0, 0
- mov r9, r1
- lsls r6, 24
- lsrs r6, 24
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r0, _0806DB84
- mov r8, r0
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- add r0, r8
- adds r0, 0x43
- ldrb r3, [r0]
- ldr r0, _0806DB88
- subs r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- movs r1, 0xFA
- movs r2, 0xAA
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- mov r0, r8
- adds r5, r4, r0
- movs r0, 0x4
- strh r0, [r5, 0x24]
- movs r0, 0xA
- strh r0, [r5, 0x26]
- movs r0, 0x1C
- add r8, r0
- add r4, r8
- ldr r0, _0806DB8C
- str r0, [r4]
- strh r6, [r5, 0x3C]
- adds r0, r5, 0
- mov r1, r9
- bl StartSpriteAnim
- ldr r1, [r4]
- adds r0, r5, 0
- bl _call_via_r1
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DB84: .4byte 0x02020004
-_0806DB88: .4byte gSpriteTemplate_837660C
-_0806DB8C: .4byte sub_806DAB4
- thumb_func_end sub_806DB0C
-
- thumb_func_start sub_806DB90
-sub_806DB90: @ 806DB90
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r7, r1, 0
- lsls r2, 24
- lsrs r2, 24
- cmp r2, 0
- beq _0806DBA4
- cmp r2, 0x1
- beq _0806DBEC
- b _0806DC28
-_0806DBA4:
- movs r5, 0
- ldrb r0, [r6]
- cmp r5, r0
- bcs _0806DC28
-_0806DBAC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0806DBE8
- adds r0, r1
- movs r1, 0xC
- bl PokemonGetField
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0806DBD8
- adds r0, r7, r5
- ldrb r4, [r0]
- adds r0, r1, 0
- bl itemid_is_mail
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_806DB0C
-_0806DBD8:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- ldrb r0, [r6]
- cmp r5, r0
- bcc _0806DBAC
- b _0806DC28
- .align 2, 0
-_0806DBE8: .4byte 0x03004360
-_0806DBEC:
- movs r5, 0
- b _0806DC22
-_0806DBF0:
- movs r0, 0x64
- muls r0, r5
- ldr r1, _0806DC30
- adds r0, r1
- movs r1, 0xC
- bl PokemonGetField
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0806DC1C
- adds r0, r5, r7
- ldrb r4, [r0, 0x6]
- adds r0, r1, 0
- bl itemid_is_mail
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl sub_806DB0C
-_0806DC1C:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_0806DC22:
- ldrb r0, [r6, 0x1]
- cmp r5, r0
- bcc _0806DBF0
-_0806DC28:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DC30: .4byte 0x030045c0
- thumb_func_end sub_806DB90
-
- thumb_func_start sub_806DC34
-sub_806DC34: @ 806DC34
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r7, 0
- ldr r0, _0806DCC8
- mov r9, r0
- movs r1, 0x1C
- add r1, r9
- mov r10, r1
-_0806DC50:
- movs r0, 0x64
- muls r0, r7
- ldr r1, _0806DCCC
- adds r0, r1
- movs r1, 0xB
- bl PokemonGetField
- cmp r0, 0
- beq _0806DCB0
- mov r0, r8
- adds r1, r7, 0
- bl sub_806DDA0
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r0, _0806DCD0
- movs r1, 0xFA
- movs r2, 0xAA
- movs r3, 0x4
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 4
- adds r4, r0
- lsls r4, 2
- mov r1, r9
- adds r6, r4, r1
- movs r1, 0x4
- strh r1, [r6, 0x24]
- movs r1, 0xA
- strh r1, [r6, 0x26]
- strh r5, [r6, 0x3C]
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- add r1, r9
- strh r0, [r1, 0x3C]
- mov r0, r8
- adds r1, r7, 0
- bl sub_806DF60
- add r4, r10
- ldr r1, [r4]
- adds r0, r6, 0
- bl _call_via_r1
-_0806DCB0:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x5
- bls _0806DC50
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DCC8: .4byte 0x02020004
-_0806DCCC: .4byte 0x03004360
-_0806DCD0: .4byte gSpriteTemplate_837660C
- thumb_func_end sub_806DC34
-
- thumb_func_start sub_806DCD4
-sub_806DCD4: @ 806DCD4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 16
- lsrs r7, r2, 16
- bl sub_806DDA0
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _0806DD2C
- movs r1, 0xFA
- movs r2, 0xAA
- movs r3, 0x4
- bl CreateSprite
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _0806DD30
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r5, r0, r1
- movs r0, 0x4
- strh r0, [r5, 0x24]
- movs r0, 0xA
- strh r0, [r5, 0x26]
- strh r4, [r5, 0x3C]
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r1
- strh r6, [r0, 0x3C]
- cmp r7, 0
- bne _0806DD34
- adds r0, r5, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _0806DD5C
- .align 2, 0
-_0806DD2C: .4byte gSpriteTemplate_837660C
-_0806DD30: .4byte 0x02020004
-_0806DD34:
- adds r0, r7, 0
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0806DD46
- adds r0, r5, 0
- movs r1, 0x1
- b _0806DD4A
-_0806DD46:
- adds r0, r5, 0
- movs r1, 0
-_0806DD4A:
- bl StartSpriteAnim
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_0806DD5C:
- ldr r2, _0806DD78
- lsls r0, r6, 4
- adds r0, r6
- lsls r0, 2
- adds r1, r2, 0
- adds r1, 0x1C
- adds r1, r0, r1
- adds r0, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DD78: .4byte 0x02020004
- thumb_func_end sub_806DCD4
-
- thumb_func_start sub_806DD7C
-sub_806DD7C: @ 806DD7C
- ldrh r2, [r0, 0x3C]
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _0806DD9C
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- ldrh r2, [r1, 0x24]
- ldrh r3, [r1, 0x20]
- adds r2, r3
- strh r2, [r0, 0x20]
- ldrh r1, [r1, 0x22]
- strh r1, [r0, 0x22]
- bx lr
- .align 2, 0
-_0806DD9C: .4byte 0x02020004
- thumb_func_end sub_806DD7C
-
- thumb_func_start sub_806DDA0
-sub_806DDA0: @ 806DDA0
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r0, r1, 24
- cmp r0, 0x5
- bhi _0806DE38
- lsls r0, 2
- ldr r1, _0806DDB8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806DDB8: .4byte _0806DDBC
- .align 2, 0
-_0806DDBC:
- .4byte _0806DE38
- .4byte _0806DDD4
- .4byte _0806DDE8
- .4byte _0806DDFC
- .4byte _0806DE10
- .4byte _0806DE24
-_0806DDD4:
- ldr r0, _0806DDE4
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0x8]
- b _0806DE46
- .align 2, 0
-_0806DDE4: .4byte 0x03004b20
-_0806DDE8:
- ldr r0, _0806DDF8
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xA]
- b _0806DE44
- .align 2, 0
-_0806DDF8: .4byte 0x03004b20
-_0806DDFC:
- ldr r0, _0806DE0C
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0xA]
- b _0806DE46
- .align 2, 0
-_0806DE0C: .4byte 0x03004b20
-_0806DE10:
- ldr r0, _0806DE20
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xC]
- b _0806DE44
- .align 2, 0
-_0806DE20: .4byte 0x03004b20
-_0806DE24:
- ldr r0, _0806DE34
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrb r0, [r1, 0xC]
- b _0806DE46
- .align 2, 0
-_0806DE34: .4byte 0x03004b20
-_0806DE38:
- ldr r0, _0806DE4C
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
-_0806DE44:
- lsrs r0, 8
-_0806DE46:
- pop {r1}
- bx r1
- .align 2, 0
-_0806DE4C: .4byte 0x03004b20
- thumb_func_end sub_806DDA0
-
- thumb_func_start sub_806DE50
-sub_806DE50: @ 806DE50
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 24
- lsrs r0, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- cmp r0, 0x5
- bhi _0806DF24
- lsls r0, 2
- ldr r1, _0806DE6C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806DE6C: .4byte _0806DE70
- .align 2, 0
-_0806DE70:
- .4byte _0806DE88
- .4byte _0806DEA0
- .4byte _0806DEC0
- .4byte _0806DED8
- .4byte _0806DEF8
- .4byte _0806DF10
-_0806DE88:
- ldr r1, _0806DE9C
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0x8]
- lsls r2, r4, 8
- orrs r1, r2
- strh r1, [r0, 0x8]
- b _0806DF24
- .align 2, 0
-_0806DE9C: .4byte 0x03004b20
-_0806DEA0:
- ldr r0, _0806DEB8
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0x8]
- ldr r0, _0806DEBC
- ands r0, r2
- orrs r0, r4
- strh r0, [r1, 0x8]
- b _0806DF24
- .align 2, 0
-_0806DEB8: .4byte 0x03004b20
-_0806DEBC: .4byte 0xffffff00
-_0806DEC0:
- ldr r1, _0806DED4
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0xA]
- lsls r2, r4, 8
- orrs r1, r2
- strh r1, [r0, 0xA]
- b _0806DF24
- .align 2, 0
-_0806DED4: .4byte 0x03004b20
-_0806DED8:
- ldr r0, _0806DEF0
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xA]
- ldr r0, _0806DEF4
- ands r0, r2
- orrs r0, r4
- strh r0, [r1, 0xA]
- b _0806DF24
- .align 2, 0
-_0806DEF0: .4byte 0x03004b20
-_0806DEF4: .4byte 0xffffff00
-_0806DEF8:
- ldr r1, _0806DF0C
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldrb r1, [r0, 0xC]
- lsls r2, r4, 8
- orrs r1, r2
- strh r1, [r0, 0xC]
- b _0806DF24
- .align 2, 0
-_0806DF0C: .4byte 0x03004b20
-_0806DF10:
- ldr r0, _0806DF2C
- lsls r1, r3, 2
- adds r1, r3
- lsls r1, 3
- adds r1, r0
- ldrh r2, [r1, 0xC]
- ldr r0, _0806DF30
- ands r0, r2
- orrs r0, r4
- strh r0, [r1, 0xC]
-_0806DF24:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DF2C: .4byte 0x03004b20
-_0806DF30: .4byte 0xffffff00
- thumb_func_end sub_806DE50
-
- thumb_func_start sub_806DF34
-sub_806DF34: @ 806DF34
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- bl sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0806DF5C
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1, 0x3C]
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .align 2, 0
-_0806DF5C: .4byte 0x02020004
- thumb_func_end sub_806DF34
-
- thumb_func_start sub_806DF60
-sub_806DF60: @ 806DF60
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- adds r1, r4, 0
- bl sub_806DF34
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- movs r0, 0x64
- adds r1, r4, 0
- muls r1, r0
- ldr r0, _0806DFA4
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xC
- bl PokemonGetField
- cmp r0, 0
- bne _0806DFAC
- ldr r1, _0806DFA8
- 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]
- b _0806DFF6
- .align 2, 0
-_0806DFA4: .4byte 0x03004360
-_0806DFA8: .4byte 0x02020004
-_0806DFAC:
- adds r0, r4, 0
- movs r1, 0xC
- bl PokemonGetField
- lsls r0, 16
- lsrs r0, 16
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0806DFD8
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- ldr r0, _0806DFD4
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x1
- b _0806DFE6
- .align 2, 0
-_0806DFD4: .4byte 0x02020004
-_0806DFD8:
- lsls r4, r6, 4
- adds r4, r6
- lsls r4, 2
- ldr r0, _0806DFFC
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0
-_0806DFE6:
- bl StartSpriteAnim
- adds r4, 0x3E
- ldrb r1, [r4]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r4]
-_0806DFF6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806DFFC: .4byte 0x02020004
- thumb_func_end sub_806DF60
-
- thumb_func_start box_print
-box_print: @ 806E000
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- str r0, [sp]
- ldr r5, _0806E040
- ldr r2, _0806E044
- mov r0, sp
- adds r1, r5, 0
- bl CpuFastSet
- ldr r0, _0806E048
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_8004E3C
- lsls r4, 10
- ldr r0, _0806E04C
- adds r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x80
- bl CpuFastSet
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E040: .4byte 0x02039360
-_0806E044: .4byte 0x01000100
-_0806E048: .4byte gWindowConfig_81E6CAC
-_0806E04C: .4byte 0x06014000
- thumb_func_end box_print
-
- thumb_func_start sub_806E050
-sub_806E050: @ 806E050
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- mov r1, sp
- bl GetMonNickname
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, sp
- bl box_print
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806E050
-
- thumb_func_start sub_806E07C
-sub_806E07C: @ 806E07C
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- adds r0, r4, 0
- movs r1, 0xB
- bl PokemonGetField
- cmp r0, 0
- beq _0806E0BC
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E0AA
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl sub_806E050
- b _0806E0BC
-_0806E0AA:
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- adds r2, r4, 0
- bl sub_806E050
-_0806E0BC:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E07C
-
- thumb_func_start sub_806E0C4
-sub_806E0C4: @ 806E0C4
- push {r4-r6,lr}
- movs r4, 0
- movs r6, 0x64
- ldr r5, _0806E0E8
-_0806E0CC:
- adds r1, r4, 0
- muls r1, r6
- adds r1, r5
- adds r0, r4, 0
- bl sub_806E07C
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0806E0CC
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E0E8: .4byte 0x03004360
- thumb_func_end sub_806E0C4
-
- thumb_func_start GetMonNickname
-GetMonNickname: @ 806E0EC
- push {r4,lr}
- adds r4, r1, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl PokemonGetField
- adds r0, r4, 0
- bl StringGetEnd10
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end GetMonNickname
-
- thumb_func_start sub_806E104
-sub_806E104: @ 806E104
- push {r4,r5,lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r4, _0806E15C
- lsrs r0, 22
- lsls r3, r1, 1
- adds r3, r1
- lsls r3, 3
- adds r0, r3
- adds r0, r4
- ldrb r1, [r0]
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r0, 0x1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 19
- adds r1, r0
- lsls r1, 1
- ldr r0, _0806E160
- adds r4, r1, r0
- lsls r2, 26
- lsrs r2, 24
- movs r3, 0
- movs r0, 0xC6
- lsls r0, 1
- adds r2, r0
- ldr r0, _0806E164
- adds r5, r0, 0
-_0806E142:
- lsls r0, r3, 1
- adds r0, r4
- adds r1, r2, r3
- orrs r1, r5
- strh r1, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _0806E142
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E15C: .4byte gUnknown_08376738
-_0806E160: .4byte 0x0600f000
-_0806E164: .4byte 0xffffb000
- thumb_func_end sub_806E104
-
- thumb_func_start sub_806E168
-sub_806E168: @ 806E168
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E17E
- movs r3, 0x2
- b _0806E186
-_0806E17E:
- bl battle_type_is_double
- lsls r0, 24
- lsrs r3, r0, 24
-_0806E186:
- ldr r1, _0806E1C8
- lsls r2, r4, 2
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 3
- adds r2, r0
- adds r2, r1
- ldrb r1, [r2]
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- ldrb r0, [r2, 0x1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 19
- adds r1, r0
- lsls r1, 1
- ldr r0, _0806E1CC
- adds r1, r0
- movs r3, 0
- movs r2, 0
-_0806E1B0:
- lsls r0, r3, 1
- adds r0, r1
- strh r2, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _0806E1B0
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E1C8: .4byte gUnknown_08376738
-_0806E1CC: .4byte 0x0600f000
- thumb_func_end sub_806E168
-
- thumb_func_start sub_806E1D0
-sub_806E1D0: @ 806E1D0
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 19
- adds r1, r2
- lsls r1, 1
- ldr r2, _0806E1F0
- adds r1, r2
- movs r2, 0x86
- lsls r2, 1
- adds r0, r2
- strh r0, [r1]
- bx lr
- .align 2, 0
-_0806E1F0: .4byte 0x0600f000
- thumb_func_end sub_806E1D0
-
- thumb_func_start sub_806E1F4
-sub_806E1F4: @ 806E1F4
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r5, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r3, _0806E278
- lsls r2, r4, 2
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r2, r0
- adds r2, r3
- ldrb r1, [r2]
- ldrb r2, [r2, 0x1]
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0x40
- bl sub_806E1D0
- ldr r6, _0806E27C
- movs r0, 0xFC
- strb r0, [r6]
- movs r0, 0x12
- strb r0, [r6, 0x1]
- movs r0, 0x8
- strb r0, [r6, 0x2]
- adds r0, r6, 0x3
- adds r1, r5, 0
- bl ConvertIntToDecimalString
- movs r0, 0
- str r0, [sp]
- ldr r5, _0806E280
- ldr r2, _0806E284
- mov r0, sp
- adds r1, r5, 0
- bl CpuFastSet
- ldr r0, _0806E288
- ldr r2, _0806E28C
- adds r1, r5, r2
- adds r2, r6, 0
- bl sub_8004E3C
- lsls r4, 10
- ldr r0, _0806E290
- adds r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x20
- bl CpuFastSet
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E278: .4byte gUnknown_08376738
-_0806E27C: .4byte 0x020231cc
-_0806E280: .4byte 0x02039460
-_0806E284: .4byte 0x01000020
-_0806E288: .4byte gWindowConfig_81E6CAC
-_0806E28C: .4byte 0xffffff00
-_0806E290: .4byte 0x06014200
- thumb_func_end sub_806E1F4
-
- thumb_func_start sub_806E294
-sub_806E294: @ 806E294
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r0, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0x38
- bl PokemonGetField
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806E1F4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806E294
-
- thumb_func_start sub_806E2C0
-sub_806E2C0: @ 806E2C0
- push {r4-r7,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r5, 0
- movs r1, 0xB
- bl PokemonGetField
- cmp r0, 0
- beq _0806E32E
- adds r0, r5, 0
- movs r1, 0x2D
- bl PokemonGetField
- cmp r0, 0
- bne _0806E32E
- adds r0, r5, 0
- bl sub_80A1CD8
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E2FA
- movs r6, 0x2
- b _0806E302
-_0806E2FA:
- bl battle_type_is_double
- lsls r0, 24
- lsrs r6, r0, 24
-_0806E302:
- cmp r4, 0
- beq _0806E31A
- cmp r4, 0x6
- beq _0806E31A
- subs r2, r4, 0x1
- lsls r2, 24
- lsrs r2, 24
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_806E104
- b _0806E324
-_0806E31A:
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_806E294
-_0806E324:
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_806E3C0
-_0806E32E:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806E2C0
-
- thumb_func_start sub_806E334
-sub_806E334: @ 806E334
- push {r4-r6,lr}
- movs r4, 0
- movs r6, 0x64
- ldr r5, _0806E358
-_0806E33C:
- adds r1, r4, 0
- muls r1, r6
- adds r1, r5
- adds r0, r4, 0
- bl sub_806E2C0
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0806E33C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E358: .4byte 0x03004360
- thumb_func_end sub_806E334
-
- thumb_func_start sub_806E35C
-sub_806E35C: @ 806E35C
- push {r4-r7,lr}
- ldr r4, [sp, 0x14]
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r6, r3, 24
- adds r1, r4, 0
- bl sub_8040D8C
- cmp r0, 0
- bne _0806E3BA
- ldr r2, _0806E3A4
- lsls r1, r6, 2
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 3
- adds r1, r0
- adds r1, r2
- ldrb r0, [r1]
- adds r0, 0x3
- lsls r0, 24
- lsrs r3, r0, 24
- ldrb r0, [r1, 0x1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r7, 0
- beq _0806E3A8
- cmp r7, 0xFE
- beq _0806E3B2
- b _0806E3BA
- .align 2, 0
-_0806E3A4: .4byte gUnknown_08376738
-_0806E3A8:
- movs r0, 0x42
- adds r1, r3, 0
- bl sub_806E1D0
- b _0806E3BA
-_0806E3B2:
- movs r0, 0x44
- adds r1, r3, 0
- bl sub_806E1D0
-_0806E3BA:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806E35C
-
- thumb_func_start sub_806E3C0
-sub_806E3C0: @ 806E3C0
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- mov r8, r0
- adds r6, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, _0806E41C
- mov r9, r0
- adds r0, r5, 0
- mov r1, r9
- bl GetMonNickname
- adds r0, r5, 0
- movs r1, 0x41
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl pokemon_get_gender
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, r9
- str r0, [sp]
- adds r0, r4, 0
- adds r2, r6, 0
- mov r3, r8
- bl sub_806E35C
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E41C: .4byte 0x020231cc
- thumb_func_end sub_806E3C0
-
- thumb_func_start sub_806E420
-sub_806E420: @ 806E420
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r1, r2, 0
- adds r5, r3, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 16
- lsrs r1, 16
- lsls r5, 16
- lsrs r5, 16
- ldr r2, _0806E48C
- adds r0, r2, 0
- movs r2, 0xF
- movs r3, 0x1
- bl sub_8072C14
- adds r2, r0, 0
- movs r0, 0xBA
- strb r0, [r2]
- adds r2, 0x1
- adds r0, r2, 0
- adds r1, r5, 0
- movs r2, 0x23
- movs r3, 0x1
- bl sub_8072C14
- movs r0, 0
- str r0, [sp]
- ldr r5, _0806E490
- ldr r2, _0806E494
- mov r0, sp
- adds r1, r5, 0
- bl CpuFastSet
- ldr r0, _0806E498
- ldr r2, _0806E49C
- adds r1, r5, r2
- ldr r2, _0806E48C
- bl sub_8004E3C
- lsls r4, 10
- ldr r0, _0806E4A0
- adds r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0x40
- bl CpuFastSet
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E48C: .4byte 0x020231cc
-_0806E490: .4byte 0x02039460
-_0806E494: .4byte 0x01000040
-_0806E498: .4byte gWindowConfig_81E6CAC
-_0806E49C: .4byte 0xffffff00
-_0806E4A0: .4byte 0x06014300
- thumb_func_end sub_806E420
-
- thumb_func_start sub_806E4A4
-sub_806E4A4: @ 806E4A4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- adds r6, r1, 0
- mov r8, r2
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- mov r0, r8
- movs r1, 0x39
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x3A
- bl PokemonGetField
- adds r3, r0, 0
- lsls r3, 16
- lsrs r3, 16
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_806E420
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E4A4
-
- thumb_func_start sub_806E4E8
-sub_806E4E8: @ 806E4E8
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- adds r0, r4, 0
- movs r1, 0xB
- bl PokemonGetField
- cmp r0, 0
- beq _0806E534
- adds r0, r4, 0
- movs r1, 0x2D
- bl PokemonGetField
- cmp r0, 0
- bne _0806E534
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E522
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl sub_806E4A4
- b _0806E534
-_0806E522:
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- adds r2, r4, 0
- bl sub_806E4A4
-_0806E534:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E4E8
-
- thumb_func_start sub_806E53C
-sub_806E53C: @ 806E53C
- push {r4-r6,lr}
- movs r4, 0
- movs r6, 0x64
- ldr r5, _0806E560
-_0806E544:
- adds r1, r4, 0
- muls r1, r6
- adds r1, r5
- adds r0, r4, 0
- bl sub_806E4E8
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0806E544
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E560: .4byte 0x03004360
- thumb_func_end sub_806E53C
-
- thumb_func_start unref_sub_806E564
-unref_sub_806E564: @ 806E564
- bx lr
- thumb_func_end unref_sub_806E564
-
- thumb_func_start unref_sub_806E568
-unref_sub_806E568: @ 806E568
- bx lr
- thumb_func_end unref_sub_806E568
-
- thumb_func_start nullsub_12
-nullsub_12: @ 806E56C
- bx lr
- thumb_func_end nullsub_12
-
- thumb_func_start nullsub_13
-nullsub_13: @ 806E570
- bx lr
- thumb_func_end nullsub_13
-
- thumb_func_start sub_806E574
-sub_806E574: @ 806E574
- push {r4-r6,lr}
- sub sp, 0x18
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 16
- lsrs r2, 16
- lsls r3, 16
- lsrs r3, 16
- ldr r0, _0806E624
- str r0, [sp, 0x14]
- str r3, [sp]
- str r2, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- lsls r2, 16
- asrs r2, 16
- lsls r3, 16
- asrs r3, 16
- adds r0, r2, 0
- adds r1, r3, 0
- bl sub_8046200
- lsls r0, 24
- lsrs r3, r0, 24
- adds r4, r3, 0
- cmp r3, 0x2
- bls _0806E5BE
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r0, 0x20
- negs r0, r0
- ands r0, r1
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2, 0xC]
-_0806E5BE:
- cmp r3, 0x2
- bne _0806E5D2
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r0, 0x20
- negs r0, r0
- ands r0, r1
- movs r1, 0x5
- orrs r0, r1
- strb r0, [r2, 0xC]
-_0806E5D2:
- cmp r4, 0x1
- bhi _0806E5E6
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r0, 0x20
- negs r0, r0
- ands r0, r1
- movs r1, 0x6
- orrs r0, r1
- strb r0, [r2, 0xC]
-_0806E5E6:
- movs r0, 0x80
- lsls r0, 1
- str r0, [sp, 0x10]
- ldr r2, _0806E628
- lsls r1, r6, 2
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 3
- adds r1, r0
- adds r1, r2
- ldr r4, [r1]
- add r1, sp, 0x14
- mov r0, sp
- adds r2, r4, 0
- movs r3, 0
- bl sub_80460C8
- subs r4, 0x4
- ldr r1, _0806E62C
- adds r0, r1, 0
- strh r0, [r4]
- adds r1, 0x1
- adds r0, r1, 0
- strh r0, [r4, 0x2]
- adds r1, 0x1
- adds r0, r1, 0
- strh r0, [r4, 0x10]
- add sp, 0x18
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E624: .4byte 0xffff8000
-_0806E628: .4byte gUnknown_08376858
-_0806E62C: .4byte 0x00003109
- thumb_func_end sub_806E574
-
- thumb_func_start sub_806E630
-sub_806E630: @ 806E630
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r5, r0, 0
- adds r6, r1, 0
- mov r8, r2
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- mov r0, r8
- movs r1, 0x39
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- mov r0, r8
- movs r1, 0x3A
- bl PokemonGetField
- adds r3, r0, 0
- lsls r3, 16
- lsrs r3, 16
- adds r0, r5, 0
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_806E574
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E630
-
- thumb_func_start sub_806E674
-sub_806E674: @ 806E674
- push {r4-r6,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- adds r0, r4, 0
- movs r1, 0xB
- bl PokemonGetField
- cmp r0, 0
- beq _0806E6C0
- adds r0, r4, 0
- movs r1, 0x2D
- bl PokemonGetField
- cmp r0, 0
- bne _0806E6C0
- bl sub_806B528
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E6AE
- adds r0, r5, 0
- movs r1, 0x2
- adds r2, r4, 0
- bl sub_806E630
- b _0806E6C0
-_0806E6AE:
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- adds r2, r4, 0
- bl sub_806E630
-_0806E6C0:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E674
-
- thumb_func_start sub_806E6C8
-sub_806E6C8: @ 806E6C8
- push {r4-r6,lr}
- movs r4, 0
- movs r6, 0x64
- ldr r5, _0806E6EC
-_0806E6D0:
- adds r1, r4, 0
- muls r1, r6
- adds r1, r5
- adds r0, r4, 0
- bl sub_806E674
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0806E6D0
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E6EC: .4byte 0x03004360
- thumb_func_end sub_806E6C8
-
- thumb_func_start sub_806E6F0
-sub_806E6F0: @ 806E6F0
- push {r4,r5,lr}
- sub sp, 0x64
- adds r4, r0, 0
- adds r5, r1, 0
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x64
- bl memcpy
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x64
- bl memcpy
- adds r0, r5, 0
- mov r1, sp
- movs r2, 0x64
- bl memcpy
- add sp, 0x64
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806E6F0
-
- thumb_func_start sub_806E720
-sub_806E720: @ 806E720
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 21
- adds r0, r3
- ldrb r4, [r0]
- lsls r4, 25
- movs r3, 0x80
- lsls r3, 18
- adds r4, r3
- lsrs r4, 24
- ldrb r0, [r0, 0x1]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- movs r3, 0x1E
- subs r3, r0
- strb r3, [r1]
- movs r0, 0x14
- subs r0, r4
- strb r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_806E720
-
- thumb_func_start sub_806E750
-sub_806E750: @ 806E750
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0xC
- adds r5, r0, 0
- adds r4, r1, 0
- mov r9, r2
- adds r6, r3, 0
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- movs r0, 0x9
- add r0, sp
- mov r8, r0
- adds r0, r5, 0
- add r1, sp, 0x8
- mov r2, r8
- adds r3, r4, 0
- bl sub_806E720
- add r0, sp, 0x8
- ldrb r0, [r0]
- mov r2, r8
- ldrb r1, [r2]
- lsls r5, 3
- adds r5, r4
- ldrb r2, [r5, 0x1]
- ldrb r3, [r5]
- mov r4, r9
- str r4, [sp]
- ldr r4, [r5, 0x4]
- str r4, [sp, 0x4]
- bl sub_8089C50
- add r0, sp, 0x8
- ldrb r1, [r0]
- adds r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- mov r0, r8
- ldrb r2, [r0]
- adds r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldrb r3, [r5]
- str r6, [sp]
- ldrb r0, [r5, 0x1]
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- movs r0, 0
- bl InitMenu
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E750
-
- thumb_func_start sub_806E7D0
-sub_806E7D0: @ 806E7D0
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r4, 24
- lsrs r4, 24
- mov r5, sp
- adds r5, 0x1
- adds r0, r4, 0
- mov r1, sp
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_806E720
- mov r0, sp
- ldrb r0, [r0]
- ldrb r1, [r5]
- lsls r4, 3
- adds r4, r6
- ldrb r2, [r4, 0x1]
- adds r2, r0, r2
- lsls r2, 24
- lsrs r2, 24
- ldrb r3, [r4]
- lsls r3, 1
- adds r3, r1, r3
- adds r3, 0x1
- lsls r3, 24
- lsrs r3, 24
- bl Reset
- bl sub_8072DEC
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_806E7D0
-
- thumb_func_start sub_806E81C
-sub_806E81C: @ 806E81C
- lsls r0, 24
- lsls r3, 24
- lsrs r3, 24
- lsrs r0, 21
- adds r0, r1
- ldr r0, [r0, 0x4]
- adds r0, r3
- ldrb r0, [r0]
- lsls r0, 3
- adds r0, r2
- ldr r0, [r0, 0x4]
- bx lr
- thumb_func_end sub_806E81C
-
- thumb_func_start sub_806E834
-sub_806E834: @ 806E834
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- ldr r1, _0806E878
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl DrawDefaultWindow
- adds r0, r5, 0
- movs r1, 0x4
- movs r2, 0xF
- bl AddTextPrinterWithCallbackForMessage
- ldr r0, _0806E87C
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _0806E880
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806E878: .4byte 0x0202e8f6
-_0806E87C: .4byte sub_806E884
-_0806E880: .4byte 0x03004b20
- thumb_func_end sub_806E834
-
- thumb_func_start sub_806E884
-sub_806E884: @ 806E884
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_8072080
- lsls r0, 24
- cmp r0, 0
- beq _0806E8C0
- ldr r1, _0806E8C8
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0806E8CC
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0806E8BA
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl Reset
-_0806E8BA:
- adds r0, r5, 0
- bl DestroyTask
-_0806E8C0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E8C8: .4byte 0x0202e8f6
-_0806E8CC: .4byte 0x03004b20
- thumb_func_end sub_806E884
-
- thumb_func_start sub_806E8D0
-sub_806E8D0: @ 806E8D0
- push {r4,r5,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r5, 16
- lsrs r5, 16
- ldr r4, _0806E8FC
- str r2, [r4, 0x10]
- strb r0, [r4, 0x4]
- bl sub_806CA38
- strb r0, [r4, 0x5]
- strh r5, [r4, 0x6]
- ldrb r1, [r4, 0x5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0806E900
- adds r0, r1
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806E8FC: .4byte 0x0201c000
-_0806E900: .4byte 0x03004360
- thumb_func_end sub_806E8D0
-
- thumb_func_start sub_806E904
-sub_806E904: @ 806E904
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- adds r0, r4, 0
- bl itemid_is_mail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E93C
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80A2BC4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0806E930
- movs r0, 0x1
- b _0806E958
-_0806E930:
- ldr r1, _0806E938
- movs r0, 0x2
- b _0806E940
- .align 2, 0
-_0806E938: .4byte 0x0202e8f4
-_0806E93C:
- ldr r1, _0806E960
- movs r0, 0x1
-_0806E940:
- strb r0, [r1]
- mov r0, sp
- strb r4, [r0]
- mov r1, sp
- lsrs r0, r4, 8
- strb r0, [r1, 0x1]
- adds r0, r5, 0
- movs r1, 0xC
- mov r2, sp
- bl pokemon_setattr
- movs r0, 0
-_0806E958:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0806E960: .4byte 0x0202e8f4
- thumb_func_end sub_806E904
-
- thumb_func_start sub_806E964
-sub_806E964: @ 806E964
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- mov r9, r5
- ldr r2, _0806E9D4
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r6, r1, r2
- ldr r1, _0806E9D8
- str r1, [r6]
- adds r1, r5, 0
- mov r2, r8
- bl sub_806E8D0
- ldr r4, _0806E9DC
- ldr r0, [r4]
- movs r1, 0xC
- bl PokemonGetField
- lsls r0, 16
- lsrs r2, r0, 16
- adds r7, r2, 0
- ldr r1, _0806E9E0
- movs r0, 0
- strb r0, [r1]
- ldr r0, _0806E9E4
- mov r10, r0
- movs r0, 0
- mov r1, r10
- strh r0, [r1]
- cmp r2, 0
- beq _0806EA44
- adds r0, r2, 0
- bl itemid_is_mail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806E9F0
- ldr r0, _0806E9E8
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806E9EC
- movs r1, 0x5
- bl CreateTask
- b _0806EA78
- .align 2, 0
-_0806E9D4: .4byte 0x03004b20
-_0806E9D8: .4byte TaskDummy
-_0806E9DC: .4byte 0x0201c000
-_0806E9E0: .4byte 0x0202e8f4
-_0806E9E4: .4byte 0x0202e8f8
-_0806E9E8: .4byte gUnknown_0840F17F
-_0806E9EC: .4byte party_menu_link_mon_held_item_object
-_0806E9F0:
- ldr r0, [r4]
- ldr r1, _0806EA30
- bl GetMonNickname
- ldr r1, _0806EA34
- adds r0, r7, 0
- bl itemid_copy_name
- ldr r4, _0806EA38
- ldr r1, _0806EA3C
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806EA40
- movs r1, 0x5
- bl CreateTask
- adds r0, r5, 0
- bl itemid_is_mail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806EA78
- mov r0, r10
- strh r7, [r0]
- b _0806EA78
- .align 2, 0
-_0806EA30: .4byte 0x020231cc
-_0806EA34: .4byte 0x020232cc
-_0806EA38: .4byte 0x020234cc
-_0806EA3C: .4byte gUnknown_0840F1CD
-_0806EA40: .4byte sub_806EBB8
-_0806EA44:
- ldr r0, [r4]
- adds r1, r5, 0
- bl sub_806E904
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80A9538
- adds r0, r5, 0
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0806EA66
- mov r1, r8
- str r1, [r6]
- b _0806EA78
-_0806EA66:
- ldrb r0, [r4, 0x5]
- mov r1, r9
- movs r2, 0x1
- bl sub_806EBF0
- ldr r0, _0806EA88
- movs r1, 0x5
- bl CreateTask
-_0806EA78:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EA88: .4byte party_menu_link_mon_held_item_object
- thumb_func_end sub_806E964
-
- thumb_func_start party_menu_link_mon_held_item_object
-party_menu_link_mon_held_item_object: @ 806EA8C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0806EAC0
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806EABA
- ldr r4, _0806EAC4
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- bl sub_806DF60
- ldr r2, _0806EAC8
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, [r4, 0x10]
- str r1, [r0]
- adds r0, r5, 0
- bl DestroyTask
-_0806EABA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EAC0: .4byte 0x0202e8f6
-_0806EAC4: .4byte 0x0201c000
-_0806EAC8: .4byte 0x03004b20
- thumb_func_end party_menu_link_mon_held_item_object
-
- thumb_func_start sub_806EACC
-sub_806EACC: @ 806EACC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- bl FillWindowPixelBuffer
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _0806EB74
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl Reset
- ldr r4, _0806EB30
- ldr r0, [r4]
- movs r1, 0xC
- bl PokemonGetField
- lsls r0, 16
- lsrs r5, r0, 16
- ldrh r0, [r4, 0x6]
- movs r1, 0x1
- bl sub_80A9538
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_80A9424
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806EB5C
- ldr r0, [r4]
- ldrh r1, [r4, 0x6]
- bl sub_806E904
- ldrh r0, [r4, 0x6]
- bl itemid_is_mail
- lsls r0, 24
- cmp r0, 0
- beq _0806EB34
- ldrb r0, [r4, 0x5]
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_806EDB4
- b _0806EB9A
- .align 2, 0
-_0806EB30: .4byte 0x0201c000
-_0806EB34:
- ldrh r0, [r4, 0x6]
- ldr r1, _0806EB50
- bl itemid_copy_name
- ldr r4, _0806EB54
- ldr r1, _0806EB58
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- b _0806EB9A
- .align 2, 0
-_0806EB50: .4byte 0x020231cc
-_0806EB54: .4byte 0x020234cc
-_0806EB58: .4byte gUnknown_0840F26E
-_0806EB5C:
- ldr r0, _0806EB70
- movs r1, 0
- bl sub_806E834
- ldrh r0, [r4, 0x6]
- movs r1, 0x1
- bl sub_80A9424
- b _0806EB9A
- .align 2, 0
-_0806EB70: .4byte gUnknown_0840F2FC
-_0806EB74:
- cmp r1, 0x1
- beq _0806EB80
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EBA8
-_0806EB80:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EB8E
- movs r0, 0x5
- bl audio_play
-_0806EB8E:
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl Reset
-_0806EB9A:
- ldr r0, _0806EBB0
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EBB4
- str r0, [r1]
-_0806EBA8:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EBB0: .4byte 0x03004b20
-_0806EBB4: .4byte party_menu_link_mon_held_item_object
- thumb_func_end sub_806EACC
-
- thumb_func_start sub_806EBB8
-sub_806EBB8: @ 806EBB8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806EBE4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806EBDE
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl sub_8072974
- ldr r0, _0806EBE8
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EBEC
- str r0, [r1]
-_0806EBDE:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EBE4: .4byte 0x0202e8f6
-_0806EBE8: .4byte 0x03004b20
-_0806EBEC: .4byte sub_806EACC
- thumb_func_end sub_806EBB8
-
- thumb_func_start sub_806EBF0
-sub_806EBF0: @ 806EBF0
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0806EC30
- adds r0, r1
- ldr r1, _0806EC34
- bl GetMonNickname
- ldr r1, _0806EC38
- adds r0, r4, 0
- bl itemid_copy_name
- ldr r4, _0806EC3C
- ldr r1, _0806EC40
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806E834
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EC30: .4byte 0x03004360
-_0806EC34: .4byte 0x020231cc
-_0806EC38: .4byte 0x020232cc
-_0806EC3C: .4byte 0x020234cc
-_0806EC40: .4byte gUnknown_0840F1AE
- thumb_func_end sub_806EBF0
-
- thumb_func_start sub_806EC44
-sub_806EC44: @ 806EC44
- push {r4,r5,lr}
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0806ECA0
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldr r3, _0806ECA4
- str r3, [r1]
- movs r1, 0
- bl sub_806E8D0
- ldr r5, _0806ECA8
- ldr r0, [r5]
- movs r1, 0xC
- bl PokemonGetField
- lsls r0, 16
- ldr r2, _0806ECAC
- movs r1, 0
- strb r1, [r2]
- movs r1, 0xF8
- lsls r1, 6
- adds r2, r5, r1
- ldrb r1, [r2]
- adds r1, 0x6
- ldrb r2, [r2, 0x2]
- adds r1, r2
- lsls r2, r1, 3
- adds r2, r1
- lsls r2, 2
- ldr r1, _0806ECB0
- adds r4, r2, r1
- cmp r0, 0
- beq _0806ECBC
- ldr r0, _0806ECB4
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806ECB8
- movs r1, 0x5
- bl CreateTask
- b _0806ECDA
- .align 2, 0
-_0806ECA0: .4byte 0x03004b20
-_0806ECA4: .4byte TaskDummy
-_0806ECA8: .4byte 0x0201c000
-_0806ECAC: .4byte 0x0202e8f4
-_0806ECB0: .4byte 0x02028280
-_0806ECB4: .4byte gUnknown_0840F29B
-_0806ECB8: .4byte party_menu_link_mon_held_item_object
-_0806ECBC:
- ldr r0, [r5]
- adds r1, r4, 0
- bl sub_80A2D88
- adds r0, r4, 0
- bl sub_80A2B40
- ldr r0, _0806ECE0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806ECE4
- movs r1, 0x5
- bl CreateTask
-_0806ECDA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806ECE0: .4byte gUnknown_0840F2D3
-_0806ECE4: .4byte party_menu_link_mon_held_item_object
- thumb_func_end sub_806EC44
-
- thumb_func_start sub_806ECE8
-sub_806ECE8: @ 806ECE8
- push {r4-r6,lr}
- sub sp, 0x4
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0806ED38
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldr r3, _0806ED3C
- str r3, [r1]
- movs r1, 0
- bl sub_806E8D0
- ldr r5, _0806ED40
- ldr r0, [r5]
- movs r1, 0xC
- bl PokemonGetField
- lsls r0, 16
- lsrs r4, r0, 16
- adds r6, r4, 0
- cmp r4, 0
- bne _0806ED50
- ldr r4, _0806ED44
- ldr r1, _0806ED48
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0
- bl sub_806E834
- ldr r0, _0806ED4C
- movs r1, 0x5
- bl CreateTask
- b _0806EDA2
- .align 2, 0
-_0806ED38: .4byte 0x03004b20
-_0806ED3C: .4byte TaskDummy
-_0806ED40: .4byte 0x0201c000
-_0806ED44: .4byte 0x020234cc
-_0806ED48: .4byte gUnknown_0840F213
-_0806ED4C: .4byte party_menu_link_mon_held_item_object
-_0806ED50:
- mov r0, sp
- movs r1, 0
- strb r1, [r0]
- strb r1, [r0, 0x1]
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80A9424
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806ED92
- adds r0, r4, 0
- bl itemid_is_mail
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806ED7C
- ldr r0, [r5]
- bl sub_80A2DF8
-_0806ED7C:
- ldrb r0, [r5, 0x5]
- adds r1, r6, 0
- movs r2, 0
- bl sub_806EDB4
- ldr r0, [r5]
- movs r1, 0xC
- mov r2, sp
- bl pokemon_setattr
- b _0806ED9A
-_0806ED92:
- ldr r0, _0806EDAC
- movs r1, 0
- bl sub_806E834
-_0806ED9A:
- ldr r0, _0806EDB0
- movs r1, 0x5
- bl CreateTask
-_0806EDA2:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EDAC: .4byte gUnknown_0840F2FC
-_0806EDB0: .4byte party_menu_link_mon_held_item_object
- thumb_func_end sub_806ECE8
-
- thumb_func_start sub_806EDB4
-sub_806EDB4: @ 806EDB4
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, _0806EDF4
- adds r0, r1
- ldr r1, _0806EDF8
- bl GetMonNickname
- ldr r1, _0806EDFC
- adds r0, r4, 0
- bl itemid_copy_name
- ldr r4, _0806EE00
- ldr r1, _0806EE04
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806E834
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EDF4: .4byte 0x03004360
-_0806EDF8: .4byte 0x020231cc
-_0806EDFC: .4byte 0x020232cc
-_0806EE00: .4byte 0x020234cc
-_0806EE04: .4byte gUnknown_0840F230
- thumb_func_end sub_806EDB4
-
- thumb_func_start sub_806EE08
-sub_806EE08: @ 806EE08
- push {r4,lr}
- adds r2, r1, 0
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _0806EE48
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldr r3, _0806EE4C
- str r3, [r1]
- movs r1, 0
- bl sub_806E8D0
- ldr r4, _0806EE50
- ldr r0, [r4]
- movs r1, 0xC
- bl PokemonGetField
- strh r0, [r4, 0x6]
- ldr r0, _0806EE54
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806EE58
- movs r1, 0x5
- bl CreateTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EE48: .4byte 0x03004b20
-_0806EE4C: .4byte TaskDummy
-_0806EE50: .4byte 0x0201c000
-_0806EE54: .4byte gUnknown_0840F0E8
-_0806EE58: .4byte sub_806EFEC
- thumb_func_end sub_806EE08
-
- thumb_func_start sub_806EE5C
-sub_806EE5C: @ 806EE5C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl FillWindowPixelBuffer
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _0806EEB0
- ldr r5, _0806EE90
- ldrh r0, [r5, 0x6]
- movs r1, 0x1
- bl sub_80A9424
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0806EE98
- ldr r0, [r5]
- bl sub_80A2DF8
- ldr r0, _0806EE94
- movs r1, 0
- bl sub_806E834
- b _0806EEA0
- .align 2, 0
-_0806EE90: .4byte 0x0201c000
-_0806EE94: .4byte gUnknown_0840F24B
-_0806EE98:
- ldr r0, _0806EEAC
- movs r1, 0
- bl sub_806E834
-_0806EEA0:
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- b _0806EEDE
- .align 2, 0
-_0806EEAC: .4byte gUnknown_0840F2FC
-_0806EEB0:
- cmp r1, 0x1
- beq _0806EEBC
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EEF0
-_0806EEBC:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EECA
- movs r0, 0x5
- bl audio_play
-_0806EECA:
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl Reset
- movs r0, 0
- movs r1, 0xE
- movs r2, 0x1D
- movs r3, 0x13
-_0806EEDE:
- bl Reset
- ldr r0, _0806EEF8
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EEFC
- str r0, [r1]
-_0806EEF0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EEF8: .4byte 0x03004b20
-_0806EEFC: .4byte party_menu_link_mon_held_item_object
- thumb_func_end sub_806EE5C
-
- thumb_func_start sub_806EF00
-sub_806EF00: @ 806EF00
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806EF2C
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806EF26
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl sub_8072974
- ldr r0, _0806EF30
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EF34
- str r0, [r1]
-_0806EF26:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EF2C: .4byte 0x0202e8f6
-_0806EF30: .4byte 0x03004b20
-_0806EF34: .4byte sub_806EE5C
- thumb_func_end sub_806EF00
-
- thumb_func_start sub_806EF38
-sub_806EF38: @ 806EF38
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl FillWindowPixelBuffer
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _0806EF9C
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl Reset
- ldr r0, _0806EF70
- ldr r0, [r0]
- bl sub_80A2E78
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0806EF78
- ldr r0, _0806EF74
- movs r1, 0
- bl sub_806E834
- b _0806EF80
- .align 2, 0
-_0806EF70: .4byte 0x0201c000
-_0806EF74: .4byte gUnknown_0840F10A
-_0806EF78:
- ldr r0, _0806EF90
- movs r1, 0
- bl sub_806E834
-_0806EF80:
- ldr r0, _0806EF94
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806EF98
- str r0, [r1]
- b _0806EFD8
- .align 2, 0
-_0806EF90: .4byte gUnknown_0840F12A
-_0806EF94: .4byte 0x03004b20
-_0806EF98: .4byte party_menu_link_mon_held_item_object
-_0806EF9C:
- cmp r1, 0x1
- beq _0806EFA8
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EFD8
-_0806EFA8:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806EFB6
- movs r0, 0x5
- bl audio_play
-_0806EFB6:
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl Reset
- ldr r0, _0806EFE0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806EFE4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806EFE8
- str r1, [r0]
-_0806EFD8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806EFE0: .4byte gUnknown_0840F147
-_0806EFE4: .4byte 0x03004b20
-_0806EFE8: .4byte sub_806EF00
- thumb_func_end sub_806EF38
-
- thumb_func_start sub_806EFEC
-sub_806EFEC: @ 806EFEC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806F018
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F012
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl sub_8072974
- ldr r0, _0806F01C
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806F020
- str r0, [r1]
-_0806F012:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F018: .4byte 0x0202e8f6
-_0806F01C: .4byte 0x03004b20
-_0806F020: .4byte sub_806EF38
- thumb_func_end sub_806EFEC
-
- thumb_func_start ItemIdToBattleMoveId
-ItemIdToBattleMoveId: @ 806F024
- lsls r0, 16
- ldr r1, _0806F034
- adds r0, r1
- ldr r1, _0806F038
- lsrs r0, 15
- adds r0, r1
- ldrh r0, [r0]
- bx lr
- .align 2, 0
-_0806F034: .4byte 0xfedf0000
-_0806F038: .4byte gUnknown_08376504
- thumb_func_end ItemIdToBattleMoveId
-
- thumb_func_start pokemon_has_move
-pokemon_has_move: @ 806F03C
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- movs r4, 0
-_0806F046:
- adds r1, r4, 0
- adds r1, 0xD
- adds r0, r6, 0
- bl PokemonGetField
- cmp r0, r5
- bne _0806F058
- movs r0, 0x1
- b _0806F064
-_0806F058:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _0806F046
- movs r0, 0
-_0806F064:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end pokemon_has_move
-
- thumb_func_start sub_806F06C
-sub_806F06C: @ 806F06C
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 16
- lsrs r5, 16
- movs r0, 0x5
- bl audio_play
- ldr r1, _0806F0A8
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F0AC
- str r1, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_806E8D0
- ldr r0, _0806F0B0
- movs r1, 0x5
- bl CreateTask
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F0A8: .4byte 0x03004b20
-_0806F0AC: .4byte TaskDummy
-_0806F0B0: .4byte sub_806F0B4
- thumb_func_end sub_806F06C
-
- thumb_func_start sub_806F0B4
-sub_806F0B4: @ 806F0B4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- adds r7, r6, 0
- ldr r5, _0806F114
- ldr r0, [r5]
- ldr r1, _0806F118
- bl GetMonNickname
- ldrh r0, [r5, 0x6]
- bl ItemIdToBattleMoveId
- movs r4, 0
- strh r0, [r5, 0x8]
- ldr r0, _0806F11C
- ldrh r2, [r5, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F120
- adds r1, r2
- bl StringCopy
- ldr r1, _0806F124
- adds r0, r5, r1
- strh r4, [r0]
- ldr r0, [r5]
- ldrh r1, [r5, 0x8]
- bl pokemon_has_move
- lsls r0, 24
- cmp r0, 0
- beq _0806F138
- ldr r4, _0806F128
- ldr r1, _0806F12C
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F130
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F134
- b _0806F1B6
- .align 2, 0
-_0806F114: .4byte 0x0201c000
-_0806F118: .4byte 0x020231cc
-_0806F11C: .4byte 0x020232cc
-_0806F120: .4byte gMoveNames
-_0806F124: .4byte 0xfffff282
-_0806F128: .4byte 0x020234cc
-_0806F12C: .4byte gUnknown_0840F49E
-_0806F130: .4byte 0x03004b20
-_0806F134: .4byte party_menu_link_mon_held_item_object
-_0806F138:
- ldr r0, [r5]
- ldrb r1, [r5, 0x6]
- subs r1, 0x21
- lsls r1, 24
- lsrs r1, 24
- bl sub_8040374
- cmp r0, 0
- bne _0806F17C
- ldr r4, _0806F16C
- ldr r1, _0806F170
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F174
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F178
- b _0806F1B6
- .align 2, 0
-_0806F16C: .4byte 0x020234cc
-_0806F170: .4byte gUnknown_0840F347
-_0806F174: .4byte 0x03004b20
-_0806F178: .4byte party_menu_link_mon_held_item_object
-_0806F17C:
- ldr r0, [r5]
- ldrh r1, [r5, 0x8]
- bl pokemon_moveset_pad_
- lsls r0, 16
- ldr r1, _0806F194
- cmp r0, r1
- beq _0806F198
- adds r0, r6, 0
- bl sub_806F1D0
- b _0806F1B8
- .align 2, 0
-_0806F194: .4byte 0xffff0000
-_0806F198:
- ldr r4, _0806F1C0
- ldr r1, _0806F1C4
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F1C8
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F1CC
-_0806F1B6:
- str r1, [r0]
-_0806F1B8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F1C0: .4byte 0x020234cc
-_0806F1C4: .4byte gUnknown_0840F37C
-_0806F1C8: .4byte 0x03004b20
-_0806F1CC: .4byte sub_806F358
- thumb_func_end sub_806F0B4
-
- thumb_func_start sub_806F1D0
-sub_806F1D0: @ 806F1D0
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0806F234
- ldr r5, _0806F238
- ldrh r2, [r5, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F23C
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F240
- ldr r1, _0806F244
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, [r5]
- movs r1, 0x4
- bl sub_803FCD4
- ldr r1, _0806F248
- adds r0, r5, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _0806F220
- ldrh r1, [r5, 0x6]
- movs r0, 0xA9
- lsls r0, 1
- cmp r1, r0
- bhi _0806F220
- adds r0, r1, 0
- movs r1, 0x1
- bl sub_80A9538
-_0806F220:
- ldr r0, _0806F24C
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806F250
- str r0, [r1]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F234: .4byte 0x020232cc
-_0806F238: .4byte 0x0201c000
-_0806F23C: .4byte gMoveNames
-_0806F240: .4byte 0x020234cc
-_0806F244: .4byte gUnknown_0840F338
-_0806F248: .4byte 0xfffff282
-_0806F24C: .4byte 0x03004b20
-_0806F250: .4byte sub_806F254
- thumb_func_end sub_806F1D0
-
- thumb_func_start sub_806F254
-sub_806F254: @ 806F254
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806F27C
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F276
- ldr r0, _0806F280
- bl fanfare_play
- ldr r1, _0806F284
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F288
- str r1, [r0]
-_0806F276:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F27C: .4byte 0x0202e8f6
-_0806F280: .4byte 0x0000016f
-_0806F284: .4byte 0x03004b20
-_0806F288: .4byte sub_806F28C
- thumb_func_end sub_806F254
-
- thumb_func_start sub_806F28C
-sub_806F28C: @ 806F28C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- bl task_is_not_running_overworld_fanfare
- lsls r0, 24
- cmp r0, 0
- beq _0806F2F2
- ldr r0, _0806F2D0
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0806F2B2
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0806F2F2
-_0806F2B2:
- ldr r4, _0806F2D4
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- bl sub_806DF60
- ldr r1, _0806F2D8
- adds r0, r4, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _0806F2DC
- adds r0, r5, 0
- bl sub_8070C54
- b _0806F2F2
- .align 2, 0
-_0806F2D0: .4byte 0x03001770
-_0806F2D4: .4byte 0x0201c000
-_0806F2D8: .4byte 0xfffff282
-_0806F2DC:
- ldr r2, _0806F2F8
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, [r4, 0x10]
- str r1, [r0]
- adds r0, r6, 0
- bl DestroyTask
-_0806F2F2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F2F8: .4byte 0x03004b20
- thumb_func_end sub_806F28C
-
- thumb_func_start sub_806F2FC
-sub_806F2FC: @ 806F2FC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- ldr r0, _0806F32C
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F34E
- ldr r4, _0806F330
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- bl sub_806DF60
- ldr r1, _0806F334
- adds r0, r4, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _0806F338
- adds r0, r5, 0
- bl sub_8070C54
- b _0806F34E
- .align 2, 0
-_0806F32C: .4byte 0x0202e8f6
-_0806F330: .4byte 0x0201c000
-_0806F334: .4byte 0xfffff282
-_0806F338:
- ldr r2, _0806F354
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, [r4, 0x10]
- str r1, [r0]
- adds r0, r6, 0
- bl DestroyTask
-_0806F34E:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F354: .4byte 0x03004b20
- thumb_func_end sub_806F2FC
-
- thumb_func_start sub_806F358
-sub_806F358: @ 806F358
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806F384
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F37E
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl sub_8072974
- ldr r0, _0806F388
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806F38C
- str r0, [r1]
-_0806F37E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F384: .4byte 0x0202e8f6
-_0806F388: .4byte 0x03004b20
-_0806F38C: .4byte sub_806F390
- thumb_func_end sub_806F358
-
- thumb_func_start sub_806F390
-sub_806F390: @ 806F390
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl FillWindowPixelBuffer
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _0806F3D4
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl Reset
- ldr r0, _0806F3C8
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F3CC
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F3D0
- str r1, [r0]
- b _0806F3F4
- .align 2, 0
-_0806F3C8: .4byte gUnknown_0840F429
-_0806F3CC: .4byte 0x03004b20
-_0806F3D0: .4byte sub_806F44C
-_0806F3D4:
- cmp r1, 0x1
- beq _0806F3E0
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806F3F4
-_0806F3E0:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806F3EE
- movs r0, 0x5
- bl audio_play
-_0806F3EE:
- adds r0, r5, 0
- bl sub_806F614
-_0806F3F4:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806F390
-
- thumb_func_start sub_806F3FC
-sub_806F3FC: @ 806F3FC
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _0806F438
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0806F430
- ldr r0, _0806F43C
- ldr r4, _0806F440
- ldrb r1, [r4, 0x5]
- ldr r2, _0806F444
- ldrb r2, [r2]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- ldr r3, _0806F448
- ldrh r4, [r4, 0x8]
- str r4, [sp]
- bl sub_809D9F0
- adds r0, r5, 0
- bl DestroyTask
-_0806F430:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F438: .4byte 0x0202f388
-_0806F43C: .4byte 0x03004360
-_0806F440: .4byte 0x0201c000
-_0806F444: .4byte 0x03004350
-_0806F448: .4byte sub_808B564
- thumb_func_end sub_806F3FC
-
- thumb_func_start sub_806F44C
-sub_806F44C: @ 806F44C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806F484
- ldrb r1, [r0]
- cmp r1, 0
- bne _0806F47A
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r1, _0806F488
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F48C
- str r1, [r0]
-_0806F47A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F484: .4byte 0x0202e8f6
-_0806F488: .4byte 0x03004b20
-_0806F48C: .4byte sub_806F3FC
- thumb_func_end sub_806F44C
-
- thumb_func_start sub_806F490
-sub_806F490: @ 806F490
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0806F50C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0806F506
- ldr r1, _0806F510
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F514
- str r1, [r0]
- ldr r0, _0806F518
- ldrh r1, [r0]
- ldr r2, _0806F51C
- adds r0, r3, 0
- bl sub_806E8D0
- bl sub_809FA30
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r5, _0806F520
- ldr r0, [r5]
- adds r1, 0xD
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, [r5]
- ldr r1, _0806F524
- bl GetMonNickname
- ldr r0, _0806F528
- movs r1, 0xD
- muls r1, r4
- ldr r2, _0806F52C
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F530
- ldr r1, _0806F534
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806F538
- movs r1, 0x5
- bl CreateTask
-_0806F506:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F50C: .4byte 0x0202f388
-_0806F510: .4byte 0x03004b20
-_0806F514: .4byte TaskDummy
-_0806F518: .4byte 0x0203855e
-_0806F51C: .4byte sub_808B508
-_0806F520: .4byte 0x0201c000
-_0806F524: .4byte 0x020231cc
-_0806F528: .4byte 0x020232cc
-_0806F52C: .4byte gMoveNames
-_0806F530: .4byte 0x020234cc
-_0806F534: .4byte gUnknown_0840F44B
-_0806F538: .4byte sub_806F53C
- thumb_func_end sub_806F490
-
- thumb_func_start sub_806F53C
-sub_806F53C: @ 806F53C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, _0806F580
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F57A
- ldr r4, _0806F584
- ldr r5, [r4]
- bl sub_809FA30
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl sub_803DE34
- ldr r5, [r4]
- ldrh r4, [r4, 0x8]
- bl sub_809FA30
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_803B6A4
- adds r0, r6, 0
- bl sub_806F1D0
-_0806F57A:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F580: .4byte 0x0202e8f6
-_0806F584: .4byte 0x0201c000
- thumb_func_end sub_806F53C
-
- thumb_func_start sub_806F588
-sub_806F588: @ 806F588
- push {r4,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, _0806F5E8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0806F5E0
- ldr r1, _0806F5EC
- lsls r0, r3, 2
- adds r0, r3
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F5F0
- str r1, [r0]
- ldr r0, _0806F5F4
- ldrh r1, [r0]
- ldr r2, _0806F5F8
- adds r0, r3, 0
- bl sub_806E8D0
- ldr r0, _0806F5FC
- ldr r1, _0806F600
- ldrh r2, [r1, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F604
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F608
- ldr r1, _0806F60C
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0806F610
- movs r1, 0x5
- bl CreateTask
-_0806F5E0:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F5E8: .4byte 0x0202f388
-_0806F5EC: .4byte 0x03004b20
-_0806F5F0: .4byte TaskDummy
-_0806F5F4: .4byte 0x0203855e
-_0806F5F8: .4byte sub_808B508
-_0806F5FC: .4byte 0x020232cc
-_0806F600: .4byte 0x0201c000
-_0806F604: .4byte gMoveNames
-_0806F608: .4byte 0x020234cc
-_0806F60C: .4byte gUnknown_0840F3F0
-_0806F610: .4byte sub_806F67C
- thumb_func_end sub_806F588
-
- thumb_func_start sub_806F614
-sub_806F614: @ 806F614
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl Reset
- ldr r0, _0806F660
- ldr r1, _0806F664
- ldrh r2, [r1, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F668
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F66C
- ldr r1, _0806F670
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F674
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F678
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F660: .4byte 0x020232cc
-_0806F664: .4byte 0x0201c000
-_0806F668: .4byte gMoveNames
-_0806F66C: .4byte 0x020234cc
-_0806F670: .4byte gUnknown_0840F3F0
-_0806F674: .4byte 0x03004b20
-_0806F678: .4byte sub_806F67C
- thumb_func_end sub_806F614
-
- thumb_func_start sub_806F67C
-sub_806F67C: @ 806F67C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806F6A8
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806F6A2
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1
- bl sub_8072974
- ldr r0, _0806F6AC
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _0806F6B0
- str r0, [r1]
-_0806F6A2:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F6A8: .4byte 0x0202e8f6
-_0806F6AC: .4byte 0x03004b20
-_0806F6B0: .4byte sub_806F6B4
- thumb_func_end sub_806F67C
-
- thumb_func_start sub_806F6B4
-sub_806F6B4: @ 806F6B4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- bl FillWindowPixelBuffer
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- bne _0806F730
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl Reset
- ldr r4, _0806F710
- ldr r0, [r4]
- ldr r1, _0806F714
- bl GetMonNickname
- ldr r0, _0806F718
- ldrh r2, [r4, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F71C
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F720
- ldr r1, _0806F724
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F728
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F72C
- b _0806F78E
- .align 2, 0
-_0806F710: .4byte 0x0201c000
-_0806F714: .4byte 0x020231cc
-_0806F718: .4byte 0x020232cc
-_0806F71C: .4byte gMoveNames
-_0806F720: .4byte 0x020234cc
-_0806F724: .4byte gUnknown_0840F409
-_0806F728: .4byte 0x03004b20
-_0806F72C: .4byte sub_806F2FC
-_0806F730:
- cmp r1, 0x1
- beq _0806F73C
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806F790
-_0806F73C:
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _0806F74A
- movs r0, 0x5
- bl audio_play
-_0806F74A:
- movs r0, 0x17
- movs r1, 0x8
- movs r2, 0x1D
- movs r3, 0xD
- bl Reset
- ldr r4, _0806F798
- ldr r0, [r4]
- ldr r1, _0806F79C
- bl GetMonNickname
- ldr r0, _0806F7A0
- ldrh r2, [r4, 0x8]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _0806F7A4
- adds r1, r2
- bl StringCopy
- ldr r4, _0806F7A8
- ldr r1, _0806F7AC
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806F7B0
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F7B4
-_0806F78E:
- str r1, [r0]
-_0806F790:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0806F798: .4byte 0x0201c000
-_0806F79C: .4byte 0x020231cc
-_0806F7A0: .4byte 0x020232cc
-_0806F7A4: .4byte gMoveNames
-_0806F7A8: .4byte 0x020234cc
-_0806F7AC: .4byte gUnknown_0840F37C
-_0806F7B0: .4byte 0x03004b20
-_0806F7B4: .4byte sub_806F358
- thumb_func_end sub_806F6B4
-
- thumb_func_start sub_806F7B8
-sub_806F7B8: @ 806F7B8
- push {lr}
- lsls r0, 16
- lsrs r2, r0, 16
- movs r1, 0
- ldr r3, _0806F7D4
-_0806F7C2:
- adds r0, r1, 0
- adds r0, 0x32
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- cmp r0, r2
- bne _0806F7D8
- movs r0, 0x1
- b _0806F7E4
- .align 2, 0
-_0806F7D4: .4byte gUnknown_08376504
-_0806F7D8:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x7
- bls _0806F7C2
- movs r0, 0
-_0806F7E4:
- pop {r1}
- bx r1
- thumb_func_end sub_806F7B8
-
- thumb_func_start sub_806F7E8
-sub_806F7E8: @ 806F7E8
- push {r4-r6,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r3, r0, 2
- adds r3, r0
- lsls r3, 3
- ldr r0, _0806F898
- adds r3, r0
- movs r0, 0x14
- ldrsh r1, [r3, r0]
- str r1, [r5]
- movs r4, 0x16
- ldrsh r0, [r3, r4]
- str r0, [r5, 0x4]
- movs r4, 0x18
- ldrsh r0, [r3, r4]
- lsls r2, 24
- asrs r2, 24
- muls r0, r2
- str r0, [r5, 0x8]
- movs r0, 0x80
- lsls r0, 1
- str r0, [r5, 0x10]
- ldr r6, _0806F89C
- ldr r2, _0806F8A0
- adds r0, r6, r2
- movs r4, 0
- ldrsh r0, [r0, r4]
- bl sub_8046200
- lsls r0, 24
- lsrs r2, r0, 24
- adds r3, r2, 0
- cmp r2, 0x2
- bls _0806F83E
- ldrb r0, [r5, 0xC]
- movs r1, 0x20
- negs r1, r1
- ands r1, r0
- movs r0, 0x4
- orrs r1, r0
- strb r1, [r5, 0xC]
-_0806F83E:
- cmp r2, 0x2
- bne _0806F850
- ldrb r0, [r5, 0xC]
- movs r1, 0x20
- negs r1, r1
- ands r1, r0
- movs r0, 0x5
- orrs r1, r0
- strb r1, [r5, 0xC]
-_0806F850:
- cmp r3, 0x1
- bhi _0806F862
- ldrb r0, [r5, 0xC]
- movs r1, 0x20
- negs r1, r1
- ands r1, r0
- movs r0, 0x6
- orrs r1, r0
- strb r1, [r5, 0xC]
-_0806F862:
- ldr r4, _0806F8A4
- bl battle_type_is_double
- movs r2, 0x80
- lsls r2, 5
- adds r1, r6, r2
- ldrb r2, [r1, 0x5]
- lsls r2, 2
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r2, r1
- adds r2, r4
- ldr r2, [r2]
- ldr r4, _0806F8A8
- adds r1, r6, r4
- adds r0, r5, 0
- movs r3, 0
- bl sub_80460C8
- lsls r0, 16
- asrs r0, 16
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0806F898: .4byte 0x03004b28
-_0806F89C: .4byte 0x0201b000
-_0806F8A0: .4byte 0x00000282
-_0806F8A4: .4byte gUnknown_08376858
-_0806F8A8: .4byte 0x0000100c
- thumb_func_end sub_806F7E8
-
- thumb_func_start sub_806F8AC
-sub_806F8AC: @ 806F8AC
- push {r4-r7,lr}
- sub sp, 0x18
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0x1
- negs r4, r4
- adds r0, r6, 0
- mov r1, sp
- adds r2, r4, 0
- bl sub_806F7E8
- ldr r1, _0806F8F4
- ldr r2, _0806F8F8
- adds r5, r1, r2
- strh r0, [r5]
- lsls r0, 16
- asrs r0, 16
- cmp r0, r4
- beq _0806F8D4
- b _0806F9F0
-_0806F8D4:
- movs r0, 0x80
- lsls r0, 5
- adds r1, r0
- movs r0, 0
- str r0, [r1, 0xC]
- ldr r0, [sp, 0x8]
- negs r3, r0
- ldr r2, [sp, 0x4]
- adds r0, r3, r2
- ldr r1, [sp]
- cmp r0, r1
- ble _0806F8FC
- subs r1, r2
- add r0, sp, 0x14
- strh r1, [r0]
- b _0806F900
- .align 2, 0
-_0806F8F4: .4byte 0x0201b000
-_0806F8F8: .4byte 0x00000282
-_0806F8FC:
- add r0, sp, 0x14
- strh r3, [r0]
-_0806F900:
- adds r5, r0, 0
- ldr r1, _0806F940
- ldrh r0, [r5]
- negs r0, r0
- str r0, [r1]
- ldr r0, _0806F944
- ldr r0, [r0]
- ldr r1, _0806F948
- bl GetMonNickname
- ldr r0, _0806F94C
- ldrh r1, [r5]
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r2, _0806F950
- lsls r1, r6, 2
- adds r0, r1, r6
- lsls r0, 3
- adds r0, r2
- movs r2, 0x24
- ldrsh r0, [r0, r2]
- adds r7, r1, 0
- cmp r0, 0
- bne _0806F95C
- ldr r0, _0806F954
- ldr r1, _0806F958
- bl StringExpandPlaceholders
- b _0806F964
- .align 2, 0
-_0806F940: .4byte 0x02024bec
-_0806F944: .4byte 0x0201c000
-_0806F948: .4byte 0x020231cc
-_0806F94C: .4byte 0x020232cc
-_0806F950: .4byte 0x03004b20
-_0806F954: .4byte 0x020234cc
-_0806F958: .4byte gUnknown_0840F4B5
-_0806F95C:
- ldr r0, _0806F9D4
- ldr r1, _0806F9D8
- bl StringExpandPlaceholders
-_0806F964:
- ldr r4, _0806F9DC
- ldrb r0, [r4, 0x4]
- ldrb r1, [r4, 0x5]
- bl sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- bl sub_806D84C
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldrb r1, [r4, 0x5]
- lsls r1, 1
- adds r0, r1
- ldr r1, _0806F9E0
- adds r0, r1
- movs r1, 0x7
- bl task_pc_turn_off
- ldr r0, _0806F9E4
- adds r1, r4, r0
- movs r0, 0x2
- strb r0, [r1]
- ldr r0, _0806F9D4
- movs r1, 0x1
- bl sub_806E834
- ldr r1, [sp, 0x4]
- ldrh r0, [r5]
- adds r0, r1
- strh r0, [r5]
- ldr r0, [r4]
- movs r1, 0x39
- adds r2, r5, 0
- bl pokemon_setattr
- ldrh r0, [r4, 0x6]
- movs r1, 0x1
- bl sub_80A9538
- bl sub_8032638
- ldr r1, _0806F9E8
- adds r0, r7, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806F9EC
- str r1, [r0]
- b _0806FA10
- .align 2, 0
-_0806F9D4: .4byte 0x020234cc
-_0806F9D8: .4byte gUnknown_0840F566
-_0806F9DC: .4byte 0x0201c000
-_0806F9E0: .4byte gUnknown_083769A8
-_0806F9E4: .4byte 0xfffff261
-_0806F9E8: .4byte 0x03004b20
-_0806F9EC: .4byte sub_806FB44
-_0806F9F0:
- movs r2, 0x80
- lsls r2, 5
- adds r0, r1, r2
- ldrb r4, [r0, 0x5]
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r5]
- ldr r3, [sp]
- lsls r3, 16
- lsrs r3, 16
- adds r0, r4, 0
- bl sub_806E420
-_0806FA10:
- add sp, 0x18
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806F8AC
-
- thumb_func_start sub_806FA18
-sub_806FA18: @ 806FA18
- push {r4-r7,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- mov r1, sp
- movs r2, 0x1
- bl sub_806F7E8
- ldr r6, _0806FAC4
- ldr r1, _0806FAC8
- adds r7, r6, r1
- strh r0, [r7]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _0806FAE4
- movs r0, 0x1
- bl audio_play
- movs r0, 0x80
- lsls r0, 5
- adds r4, r6, r0
- movs r0, 0
- str r0, [r4, 0xC]
- ldr r2, _0806FACC
- lsls r3, r5, 2
- adds r3, r5
- lsls r3, 3
- adds r5, r3, r2
- ldrh r0, [r5, 0x1E]
- ldrh r1, [r5, 0x20]
- subs r0, r1
- strh r0, [r5, 0x1E]
- ldr r0, [r4]
- adds r2, r3
- adds r2, 0x1E
- movs r1, 0x39
- bl pokemon_setattr
- ldrb r0, [r4, 0x4]
- ldr r1, _0806FAD0
- adds r6, r1
- ldrb r1, [r6, 0x1]
- bl sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- ldr r1, [r4]
- bl sub_806D84C
- ldr r2, _0806FAD4
- ldrb r1, [r6, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x2E]
- strb r0, [r4, 0x5]
- ldrb r1, [r4, 0x5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _0806FAD8
- adds r0, r1
- str r0, [r4]
- movs r1, 0x3A
- bl PokemonGetField
- strh r0, [r5, 0x1C]
- ldr r0, [r4]
- movs r1, 0x39
- bl PokemonGetField
- strh r0, [r5, 0x1E]
- ldr r0, _0806FADC
- str r0, [r4, 0xC]
- ldr r0, [r4, 0x10]
- str r0, [r4, 0x14]
- ldr r0, _0806FAE0
- str r0, [r5]
- ldrh r0, [r5, 0x1E]
- strh r0, [r7]
- b _0806FB04
- .align 2, 0
-_0806FAC4: .4byte 0x0201b000
-_0806FAC8: .4byte 0x00000282
-_0806FACC: .4byte 0x03004b20
-_0806FAD0: .4byte 0xfffe6000
-_0806FAD4: .4byte 0x02020004
-_0806FAD8: .4byte 0x03004360
-_0806FADC: .4byte 0xffff8000
-_0806FAE0: .4byte sub_806F8AC
-_0806FAE4:
- movs r1, 0x80
- lsls r1, 5
- adds r0, r6, r1
- ldrb r4, [r0, 0x5]
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r7]
- ldr r3, [sp]
- lsls r3, 16
- lsrs r3, 16
- adds r0, r4, 0
- bl sub_806E420
-_0806FB04:
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_806FA18
-
- thumb_func_start sub_806FB0C
-sub_806FB0C: @ 806FB0C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806FB38
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806FB32
- ldr r3, _0806FB3C
- ldr r2, _0806FB40
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- ldr r1, [r2, 0x10]
- str r1, [r0]
- adds r0, r4, 0
- bl DestroyTask
-_0806FB32:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806FB38: .4byte 0x0202e8f6
-_0806FB3C: .4byte 0x03004b20
-_0806FB40: .4byte 0x0201c000
- thumb_func_end sub_806FB0C
-
- thumb_func_start sub_806FB44
-sub_806FB44: @ 806FB44
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0806FB70
- ldrb r0, [r0]
- cmp r0, 0
- bne _0806FB6A
- ldr r3, _0806FB74
- ldr r2, _0806FB78
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r3
- ldr r1, [r2, 0x14]
- str r1, [r0]
- adds r0, r4, 0
- bl DestroyTask
-_0806FB6A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0806FB70: .4byte 0x0202e8f6
-_0806FB74: .4byte 0x03004b20
-_0806FB78: .4byte 0x0201c000
- thumb_func_end sub_806FB44
-
- thumb_func_start sub_806FB7C
-sub_806FB7C: @ 806FB7C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _0806FB90
- ldr r0, _0806FB8C
- b _0806FB9A
- .align 2, 0
-_0806FB8C: .4byte 0x02028daa
-_0806FB90:
- ldr r1, _0806FBA8
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
-_0806FB9A:
- ldrb r1, [r0, 0x4]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _0806FBAC
- movs r0, 0
- b _0806FBAE
- .align 2, 0
-_0806FBA8: .4byte gItemEffectTable
-_0806FBAC:
- movs r0, 0x1
-_0806FBAE:
- pop {r1}
- bx r1
- thumb_func_end sub_806FB7C
-
- thumb_func_start sub_806FBB4
-sub_806FBB4: @ 806FBB4
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl sub_806E168
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806E2C0
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_806FBB4
-
- thumb_func_start GetMedicineItemEffectMessage
-GetMedicineItemEffectMessage: @ 806FBD0
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- bl sub_8070E48
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x3
- cmp r0, 0x12
- bls _0806FBE6
- b _0806FD7C
-_0806FBE6:
- lsls r0, 2
- ldr r1, _0806FBF0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0806FBF0: .4byte _0806FBF4
- .align 2, 0
-_0806FBF4:
- .4byte _0806FC40
- .4byte _0806FC54
- .4byte _0806FC68
- .4byte _0806FC7C
- .4byte _0806FC90
- .4byte _0806FCA4
- .4byte _0806FCB8
- .4byte _0806FD7C
- .4byte _0806FCCC
- .4byte _0806FCF0
- .4byte _0806FCE0
- .4byte _0806FD20
- .4byte _0806FD30
- .4byte _0806FD10
- .4byte _0806FD00
- .4byte _0806FD7C
- .4byte _0806FD54
- .4byte _0806FD54
- .4byte _0806FD68
-_0806FC40:
- ldr r0, _0806FC4C
- ldr r1, _0806FC50
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC4C: .4byte 0x020234cc
-_0806FC50: .4byte gUnknown_0840F4DA
-_0806FC54:
- ldr r0, _0806FC60
- ldr r1, _0806FC64
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC60: .4byte 0x020234cc
-_0806FC64: .4byte gUnknown_0840F518
-_0806FC68:
- ldr r0, _0806FC74
- ldr r1, _0806FC78
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC74: .4byte 0x020234cc
-_0806FC78: .4byte gUnknown_0840F526
-_0806FC7C:
- ldr r0, _0806FC88
- ldr r1, _0806FC8C
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC88: .4byte 0x020234cc
-_0806FC8C: .4byte gUnknown_0840F53E
-_0806FC90:
- ldr r0, _0806FC9C
- ldr r1, _0806FCA0
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FC9C: .4byte 0x020234cc
-_0806FCA0: .4byte gUnknown_0840F4FB
-_0806FCA4:
- ldr r0, _0806FCB0
- ldr r1, _0806FCB4
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FCB0: .4byte 0x020234cc
-_0806FCB4: .4byte gUnknown_0840F5D7
-_0806FCB8:
- ldr r0, _0806FCC4
- ldr r1, _0806FCC8
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FCC4: .4byte 0x020234cc
-_0806FCC8: .4byte gUnknown_0840F5FA
-_0806FCCC:
- ldr r0, _0806FCD8
- ldr r1, _0806FCDC
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FCD8: .4byte 0x020234cc
-_0806FCDC: .4byte gUnknown_0840F57C
-_0806FCE0:
- ldr r0, _0806FCE8
- ldr r1, _0806FCEC
- b _0806FD34
- .align 2, 0
-_0806FCE8: .4byte 0x020232cc
-_0806FCEC: .4byte gUnknown_0840EF72
-_0806FCF0:
- ldr r0, _0806FCF8
- ldr r1, _0806FCFC
- b _0806FD34
- .align 2, 0
-_0806FCF8: .4byte 0x020232cc
-_0806FCFC: .4byte gUnknown_0840F7C6
-_0806FD00:
- ldr r0, _0806FD08
- ldr r1, _0806FD0C
- b _0806FD34
- .align 2, 0
-_0806FD08: .4byte 0x020232cc
-_0806FD0C: .4byte gUnknown_0840F7CD
-_0806FD10:
- ldr r0, _0806FD18
- ldr r1, _0806FD1C
- b _0806FD34
- .align 2, 0
-_0806FD18: .4byte 0x020232cc
-_0806FD1C: .4byte gUnknown_0840F7E5
-_0806FD20:
- ldr r0, _0806FD28
- ldr r1, _0806FD2C
- b _0806FD34
- .align 2, 0
-_0806FD28: .4byte 0x020232cc
-_0806FD2C: .4byte gUnknown_0840EF75
-_0806FD30:
- ldr r0, _0806FD44
- ldr r1, _0806FD48
-_0806FD34:
- bl StringCopy
- ldr r0, _0806FD4C
- ldr r1, _0806FD50
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FD44: .4byte 0x020232cc
-_0806FD48: .4byte gUnknown_0840EF7D
-_0806FD4C: .4byte 0x020234cc
-_0806FD50: .4byte gUnknown_0840F5C1
-_0806FD54:
- ldr r0, _0806FD60
- ldr r1, _0806FD64
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FD60: .4byte 0x020234cc
-_0806FD64: .4byte gUnknown_0840F591
-_0806FD68:
- ldr r0, _0806FD74
- ldr r1, _0806FD78
- bl StringExpandPlaceholders
- b _0806FD84
- .align 2, 0
-_0806FD74: .4byte 0x020234cc
-_0806FD78: .4byte gUnknown_0840F553
-_0806FD7C:
- ldr r0, _0806FD88
- ldr r1, _0806FD8C
- bl StringExpandPlaceholders
-_0806FD84:
- pop {r0}
- bx r0
- .align 2, 0
-_0806FD88: .4byte 0x020234cc
-_0806FD8C: .4byte gUnknown_0840EF85
- thumb_func_end GetMedicineItemEffectMessage
-
- thumb_func_start sub_806FD90
-sub_806FD90: @ 806FD90
- push {r4,lr}
- adds r4, r0, 0
- lsls r0, r1, 16
- lsrs r0, 16
- bl sub_8070E48
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xD
- bne _0806FDBC
- adds r0, r4, 0
- movs r1, 0xB
- bl PokemonGetField
- ldr r1, _0806FDB8
- cmp r0, r1
- bne _0806FDBC
- movs r0, 0x1
- b _0806FDBE
- .align 2, 0
-_0806FDB8: .4byte 0x0000012f
-_0806FDBC:
- movs r0, 0
-_0806FDBE:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_806FD90
-
- thumb_func_start ExecuteTableBasedItemEffect__
-ExecuteTableBasedItemEffect__: @ 806FDC4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r0, _0806FDF0
- ldr r1, _0806FDF4
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _0806FDFC
- movs r0, 0x64
- muls r0, r3
- ldr r1, _0806FDF8
- adds r0, r1
- adds r1, r5, 0
- adds r2, r3, 0
- b _0806FE16
- .align 2, 0
-_0806FDF0: .4byte 0x03001770
-_0806FDF4: .4byte 0x0000043d
-_0806FDF8: .4byte 0x03004360
-_0806FDFC:
- movs r0, 0x64
- adds r4, r3, 0
- muls r4, r0
- ldr r0, _0806FE28
- adds r4, r0
- adds r0, r3, 0
- bl sub_8094C20
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r4, 0
- adds r1, r5, 0
-_0806FE16:
- adds r3, r6, 0
- bl ExecuteTableBasedItemEffect_
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0806FE28: .4byte 0x03004360
- thumb_func_end ExecuteTableBasedItemEffect__
-
- thumb_func_start sub_806FE2C
-sub_806FE2C: @ 806FE2C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r4, r0, 0
- adds r5, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 16
- lsrs r6, r1, 16
- movs r0, 0
- mov r9, r0
- ldr r1, _0806FED4
- mov r10, r1
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- add r1, r10
- ldr r0, _0806FED8
- str r0, [r1]
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_806E8D0
- ldr r5, _0806FEDC
- ldr r0, [r5]
- adds r1, r6, 0
- bl sub_806FD90
- lsls r0, 24
- cmp r0, 0
- bne _0806FEE0
- adds r0, r6, 0
- bl sub_806FB7C
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r2, r7, 2
- mov r8, r2
- cmp r0, 0x1
- bne _0806FEC2
- ldr r0, [r5]
- movs r1, 0x3A
- bl PokemonGetField
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- mov r2, r10
- adds r4, r1, r2
- strh r0, [r4, 0x1C]
- ldr r0, [r5]
- movs r1, 0x39
- bl PokemonGetField
- strh r0, [r4, 0x1E]
- movs r3, 0x1C
- ldrsh r1, [r4, r3]
- lsls r0, 16
- asrs r0, 16
- cmp r1, r0
- bne _0806FEC2
- movs r0, 0
- mov r9, r0
- mov r1, r9
- strh r1, [r4, 0x1C]
- strh r1, [r4, 0x1E]
-_0806FEC2:
- ldr r0, _0806FEDC
- ldrb r0, [r0, 0x5]
- adds r1, r6, 0
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- lsrs r0, 24
- b _0806FEE6
- .align 2, 0
-_0806FED4: .4byte 0x03004b20
-_0806FED8: .4byte TaskDummy
-_0806FEDC: .4byte 0x0201c000
-_0806FEE0:
- movs r0, 0x1
- lsls r2, r7, 2
- mov r8, r2
-_0806FEE6:
- cmp r0, 0
- beq _0806FF14
- ldr r1, _0806FF08
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x5
- bl audio_play
- ldr r0, _0806FF0C
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _0806FF10
- mov r3, r8
- adds r0, r3, r7
- b _08070002
- .align 2, 0
-_0806FF08: .4byte 0x0202e8f4
-_0806FF0C: .4byte gUnknown_0840EF85
-_0806FF10: .4byte 0x03004b20
-_0806FF14:
- ldr r1, _0806FF30
- movs r0, 0x1
- strb r0, [r1]
- adds r0, r6, 0
- bl IsBlueYellowRedFlute
- lsls r0, 24
- cmp r0, 0
- bne _0806FF34
- movs r0, 0x1
- bl audio_play
- b _0806FF3A
- .align 2, 0
-_0806FF30: .4byte 0x0202e8f4
-_0806FF34:
- movs r0, 0x75
- bl audio_play
-_0806FF3A:
- ldr r4, _0806FF88
- ldr r0, [r4]
- bl sub_80A1CD8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- beq _0806FF4E
- cmp r0, 0
- bne _0806FF56
-_0806FF4E:
- ldr r0, [r4]
- ldrb r1, [r4, 0x5]
- bl sub_806FBB4
-_0806FF56:
- mov r0, r9
- cmp r0, 0x1
- bne _0806FFC8
- ldr r4, _0806FF88
- ldr r0, [r4]
- movs r1, 0x39
- bl PokemonGetField
- ldr r2, _0806FF8C
- mov r3, r8
- adds r1, r3, r7
- lsls r1, 3
- adds r2, r1, r2
- ldrh r1, [r2, 0x1E]
- subs r0, r1
- strh r0, [r2, 0x20]
- ldr r0, _0806FF90
- str r0, [r4, 0xC]
- movs r1, 0x1E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _0806FF94
- mov r3, r9
- strh r3, [r2, 0x24]
- b _0806FF98
- .align 2, 0
-_0806FF88: .4byte 0x0201c000
-_0806FF8C: .4byte 0x03004b20
-_0806FF90: .4byte 0xffff8000
-_0806FF94:
- movs r0, 0
- strh r0, [r2, 0x24]
-_0806FF98:
- ldr r2, _0806FFB8
- ldr r0, [r2, 0x10]
- str r0, [r2, 0x14]
- ldr r1, _0806FFBC
- mov r3, r8
- adds r0, r3, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, _0806FFC0
- str r1, [r0]
- ldrh r0, [r0, 0x1E]
- ldr r1, _0806FFC4
- adds r2, r1
- strh r0, [r2]
- b _0807000A
- .align 2, 0
-_0806FFB8: .4byte 0x0201c000
-_0806FFBC: .4byte 0x03004b20
-_0806FFC0: .4byte sub_806F8AC
-_0806FFC4: .4byte 0xfffff282
-_0806FFC8:
- ldr r4, _08070018
- ldr r0, [r4]
- ldr r1, _0807001C
- bl GetMonNickname
- adds r0, r6, 0
- bl IsBlueYellowRedFlute
- lsls r0, 24
- cmp r0, 0
- bne _0806FFE6
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_80A9538
-_0806FFE6:
- adds r0, r6, 0
- bl GetMedicineItemEffectMessage
- ldrb r0, [r4, 0x5]
- ldr r1, [r4]
- bl sub_806E07C
- ldr r0, _08070020
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _08070024
- mov r2, r8
- adds r0, r2, r7
-_08070002:
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070028
- str r1, [r0]
-_0807000A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070018: .4byte 0x0201c000
-_0807001C: .4byte 0x020231cc
-_08070020: .4byte 0x020234cc
-_08070024: .4byte 0x03004b20
-_08070028: .4byte sub_806FB0C
- thumb_func_end sub_806FE2C
-
- thumb_func_start IsBlueYellowRedFlute
-IsBlueYellowRedFlute: @ 807002C
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x27
- beq _0807003E
- cmp r0, 0x29
- beq _0807003E
- cmp r0, 0x28
- bne _08070042
-_0807003E:
- movs r0, 0x1
- b _08070044
-_08070042:
- movs r0, 0
-_08070044:
- pop {r1}
- bx r1
- thumb_func_end IsBlueYellowRedFlute
-
- thumb_func_start sub_8070048
-sub_8070048: @ 8070048
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, _08070078
- str r2, [r3, 0x10]
- movs r4, 0
- strb r0, [r3, 0x4]
- movs r2, 0
- strh r1, [r3, 0x6]
- strb r2, [r3, 0x5]
- ldr r1, _0807007C
- str r1, [r3, 0x14]
- ldr r2, _08070080
- adds r1, r3, r2
- strh r4, [r1]
- ldr r1, _08070084
- adds r3, r1
- strh r4, [r3]
- bl sub_8070088
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08070078: .4byte 0x0201c000
-_0807007C: .4byte sub_80701DC
-_08070080: .4byte 0xfffff27e
-_08070084: .4byte 0xfffff280
- thumb_func_end sub_8070048
-
- thumb_func_start sub_8070088
-sub_8070088: @ 8070088
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _08070120
- mov r10, r1
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- mov r2, r10
- adds r7, r1, r2
- ldr r5, _08070124
- str r5, [r7]
- ldr r4, _08070128
- ldrb r0, [r4, 0x5]
- movs r1, 0x64
- mov r9, r1
- mov r2, r9
- muls r2, r0
- adds r0, r2, 0
- ldr r1, _0807012C
- mov r8, r1
- add r0, r8
- movs r1, 0xB
- bl PokemonGetField
- cmp r0, 0
- beq _08070118
- adds r0, r5, 0
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- str r0, [sp]
- mov r0, r10
- adds r0, 0x8
- ldr r2, [sp]
- adds r6, r2, r0
- ldrb r0, [r4, 0x5]
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- add r0, r8
- str r0, [r4]
- movs r1, 0x3A
- bl PokemonGetField
- strh r0, [r6, 0x14]
- ldr r0, [r4]
- movs r1, 0x39
- bl PokemonGetField
- strh r0, [r6, 0x16]
- ldrb r0, [r4, 0x5]
- ldrh r1, [r4, 0x6]
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- cmp r0, 0
- beq _08070134
- adds r0, r5, 0
- bl DestroyTask
-_08070118:
- ldr r0, _08070130
- str r0, [r7]
- b _080701B0
- .align 2, 0
-_08070120: .4byte 0x03004b20
-_08070124: .4byte TaskDummy
-_08070128: .4byte 0x0201c000
-_0807012C: .4byte 0x03004360
-_08070130: .4byte sub_80701DC
-_08070134:
- ldr r1, _080701C0
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x3
- movs r1, 0xE
- movs r2, 0x1A
- movs r3, 0x13
- bl Reset
- movs r0, 0x1
- bl audio_play
- ldr r0, [r4]
- ldrb r1, [r4, 0x5]
- bl sub_806FBB4
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldrb r1, [r4, 0x5]
- lsls r1, 1
- adds r0, r1
- ldr r1, _080701C4
- adds r0, r1
- movs r1, 0x9
- bl task_pc_turn_off
- ldr r2, _080701C8
- adds r1, r4, r2
- movs r0, 0x2
- strb r0, [r1]
- ldr r0, [r4]
- movs r1, 0x39
- bl PokemonGetField
- ldrh r1, [r6, 0x16]
- subs r0, r1
- strh r0, [r6, 0x18]
- movs r0, 0x1
- strh r0, [r6, 0x1C]
- ldr r1, _080701CC
- adds r0, r4, r1
- movs r1, 0x1
- strh r1, [r0]
- ldr r2, _080701D0
- adds r0, r4, r2
- strh r1, [r0]
- ldrh r1, [r6, 0x16]
- adds r2, 0x2
- adds r0, r4, r2
- strh r1, [r0]
- ldr r0, _080701D4
- str r0, [r4, 0xC]
- ldr r1, [sp]
- add r1, r10
- ldr r0, _080701D8
- str r0, [r1]
-_080701B0:
- 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
-_080701C0: .4byte 0x0202e8f4
-_080701C4: .4byte gUnknown_083769A8
-_080701C8: .4byte 0xfffff261
-_080701CC: .4byte 0xfffff27e
-_080701D0: .4byte 0xfffff280
-_080701D4: .4byte 0xffff8000
-_080701D8: .4byte sub_806F8AC
- thumb_func_end sub_8070088
-
- thumb_func_start sub_80701DC
-sub_80701DC: @ 80701DC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r6, _08070280
- ldr r0, _08070284
- adds r7, r6, r0
- movs r1, 0
- ldrsh r0, [r7, r1]
- cmp r0, 0x1
- bne _0807023E
- movs r0, 0x80
- lsls r0, 5
- adds r4, r6, r0
- ldrh r0, [r4, 0x6]
- movs r1, 0x1
- bl sub_80A9424
- ldrb r1, [r4, 0x5]
- movs r0, 0x64
- muls r0, r1
- ldr r1, _08070288
- adds r0, r1
- movs r1, 0xB
- bl PokemonGetField
- cmp r0, 0
- beq _0807023A
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- ldrb r1, [r4, 0x5]
- lsls r1, 1
- adds r0, r1
- ldr r1, _0807028C
- adds r0, r1
- movs r1, 0x3
- bl task_pc_turn_off
- ldr r0, _08070290
- adds r1, r6, r0
- movs r0, 0x2
- strb r0, [r1]
-_0807023A:
- movs r0, 0
- strh r0, [r7]
-_0807023E:
- ldr r4, _08070294
- ldrb r0, [r4, 0x5]
- adds r0, 0x1
- strb r0, [r4, 0x5]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _080702D8
- ldr r1, _08070298
- movs r0, 0
- strb r0, [r1]
- ldr r1, _0807029C
- adds r0, r4, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080702B0
- ldr r1, _080702A0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, _080702A4
- str r1, [r0]
- ldr r0, _080702A8
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _080702AC
- movs r1, 0x8
- bl CreateTask
- b _080702C6
- .align 2, 0
-_08070280: .4byte 0x0201b000
-_08070284: .4byte 0x0000027e
-_08070288: .4byte 0x03004360
-_0807028C: .4byte gUnknown_083769A8
-_08070290: .4byte 0x00000261
-_08070294: .4byte 0x0201c000
-_08070298: .4byte 0x0202e8f4
-_0807029C: .4byte 0xfffff280
-_080702A0: .4byte 0x03004b20
-_080702A4: .4byte TaskDummy
-_080702A8: .4byte gUnknown_0840EF85
-_080702AC: .4byte sub_806FB0C
-_080702B0:
- ldrh r0, [r4, 0x6]
- movs r1, 0x1
- bl sub_80A9538
- ldr r1, _080702D0
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, [r4, 0x10]
- str r1, [r0]
-_080702C6:
- ldr r1, _080702D4
- movs r0, 0
- strb r0, [r1]
- b _080702DE
- .align 2, 0
-_080702D0: .4byte 0x03004b20
-_080702D4: .4byte 0x03005ce0
-_080702D8:
- adds r0, r5, 0
- bl sub_8070088
-_080702DE:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80701DC
-
- thumb_func_start sub_80702E4
-sub_80702E4: @ 80702E4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r6, 0
- movs r0, 0x13
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0x13
- bl DrawDefaultWindow
- movs r5, 0
- movs r0, 0x64
- adds r7, r4, 0
- muls r7, r0
- ldr r0, _0807036C
- mov r8, r0
-_0807030C:
- adds r1, r5, 0
- adds r1, 0xD
- mov r2, r8
- adds r0, r7, r2
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- movs r0, 0xD
- muls r0, r4
- ldr r1, _08070370
- adds r0, r1
- lsls r2, r5, 25
- movs r1, 0xB0
- lsls r1, 20
- adds r2, r1
- lsrs r2, 24
- movs r1, 0x14
- bl Print
- cmp r4, 0
- beq _08070340
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08070340:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _0807030C
- movs r0, 0
- str r0, [sp]
- movs r0, 0x9
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x14
- movs r2, 0xB
- adds r3, r6, 0
- bl InitMenu
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807036C: .4byte 0x03004360
-_08070370: .4byte gMoveNames
- thumb_func_end sub_80702E4
-
- thumb_func_start sub_8070374
-sub_8070374: @ 8070374
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- adds r4, r2, 0
- ldr r0, _08070398
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0807039C
- movs r0, 0x5
- bl audio_play
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _080703E4
- .align 2, 0
-_08070398: .4byte 0x03001770
-_0807039C:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080703B2
- movs r0, 0x5
- bl audio_play
- movs r0, 0x1
- bl MoveMenuCursor
- b _080703E4
-_080703B2:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080703CC
- ldr r0, _080703C8
- ldr r1, [r0]
- adds r0, r2, 0
- bl _call_via_r1
- b _080703E4
- .align 2, 0
-_080703C8: .4byte gUnknown_08376B54
-_080703CC:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080703E4
- movs r0, 0x5
- bl audio_play
- ldr r0, _080703EC
- ldr r1, [r0, 0x4]
- adds r0, r4, 0
- bl _call_via_r1
-_080703E4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080703EC: .4byte gUnknown_08376B54
- thumb_func_end sub_8070374
-
- thumb_func_start dp05_ether
-dp05_ether: @ 80703F0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r2
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- cmp r5, 0xAF
- bne _08070410
- ldr r0, _0807040C
- b _0807041C
- .align 2, 0
-_0807040C: .4byte 0x02028daa
-_08070410:
- ldr r1, _08070464
- adds r0, r5, 0
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
-_0807041C:
- mov r8, r0
- ldr r7, _08070468
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r7
- ldr r0, _0807046C
- str r0, [r1]
- movs r1, 0x5
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r6, 0
- adds r1, r5, 0
- mov r2, r9
- bl sub_806E8D0
- mov r0, r8
- ldrb r1, [r0, 0x4]
- movs r0, 0x10
- ands r0, r1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08070470
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r7
- strh r1, [r0, 0x1E]
- adds r0, r4, 0
- bl ether_effect_related
- b _08070498
- .align 2, 0
-_08070464: .4byte gItemEffectTable
-_08070468: .4byte 0x03004b20
-_0807046C: .4byte TaskDummy
-_08070470:
- movs r0, 0x5
- bl audio_play
- movs r0, 0xA
- movs r1, 0x3
- bl sub_806D538
- ldr r0, _080704A4
- ldrb r0, [r0, 0x5]
- bl sub_80702E4
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r7
- ldr r1, _080704A8
- str r1, [r0]
- ldr r1, _080704AC
- movs r0, 0
- strh r0, [r1, 0x2E]
-_08070498:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080704A4: .4byte 0x0201c000
-_080704A8: .4byte sub_8070374
-_080704AC: .4byte 0x03001770
- thumb_func_end dp05_ether
-
- thumb_func_start ether_effect_related_2
-ether_effect_related_2: @ 80704B0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0x13
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0x13
- bl Reset
- bl sub_806D5A4
- bl GetMenuCursorPos
- ldr r2, _080704EC
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r1, 0x1E]
- adds r0, r4, 0
- bl ether_effect_related
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080704EC: .4byte 0x03004b20
- thumb_func_end ether_effect_related_2
-
- thumb_func_start sub_80704F0
-sub_80704F0: @ 80704F0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8072DEC
- movs r0, 0x13
- movs r1, 0xA
- movs r2, 0x1D
- movs r3, 0x13
- bl Reset
- ldr r0, _08070528
- ldr r1, _0807052C
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0807053C
- ldr r2, _08070530
- ldr r0, _08070534
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _08070538
- b _0807054C
- .align 2, 0
-_08070528: .4byte 0x03001770
-_0807052C: .4byte 0x0000043d
-_08070530: .4byte 0x03004b20
-_08070534: .4byte 0x0201c000
-_08070538: .4byte sub_8095118
-_0807053C:
- ldr r2, _08070564
- ldr r0, _08070568
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, _0807056C
-_0807054C:
- str r1, [r0]
- movs r0, 0x3
- movs r1, 0
- bl sub_806D538
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08070564: .4byte 0x03004b20
-_08070568: .4byte 0x0201c000
-_0807056C: .4byte sub_808B0C0
- thumb_func_end sub_80704F0
-
- thumb_func_start ether_effect_related
-ether_effect_related: @ 8070570
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r5, 0
- ldr r6, _080705A8
- ldrb r0, [r6, 0x5]
- ldrh r1, [r6, 0x6]
- ldr r3, _080705AC
- lsls r2, r4, 2
- adds r2, r4
- lsls r2, 3
- adds r7, r2, r3
- ldrb r2, [r7, 0x1E]
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- cmp r0, 0
- beq _080705B8
- ldr r0, _080705B0
- strb r5, [r0]
- movs r0, 0x5
- bl audio_play
- ldr r0, _080705B4
- movs r1, 0x1
- bl sub_806E834
- b _080705F8
- .align 2, 0
-_080705A8: .4byte 0x0201c000
-_080705AC: .4byte 0x03004b20
-_080705B0: .4byte 0x0202e8f4
-_080705B4: .4byte gUnknown_0840EF85
-_080705B8:
- ldr r1, _0807060C
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x1
- bl audio_play
- ldrh r0, [r6, 0x6]
- movs r1, 0x1
- bl sub_80A9538
- ldr r0, [r6]
- movs r2, 0x1E
- ldrsh r1, [r7, r2]
- adds r1, 0xD
- bl PokemonGetField
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, _08070610
- movs r1, 0xD
- muls r1, r5
- ldr r2, _08070614
- adds r1, r2
- bl StringCopy
- ldrh r0, [r6, 0x6]
- bl GetMedicineItemEffectMessage
- ldr r0, _08070618
- movs r1, 0x1
- bl sub_806E834
-_080705F8:
- ldr r0, _0807061C
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08070620
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0807060C: .4byte 0x0202e8f4
-_08070610: .4byte 0x020231cc
-_08070614: .4byte gMoveNames
-_08070618: .4byte 0x020234cc
-_0807061C: .4byte 0x03004b20
-_08070620: .4byte sub_806FB0C
- thumb_func_end ether_effect_related
-
- thumb_func_start dp05_pp_up
-dp05_pp_up: @ 8070624
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r1, 16
- ldr r4, _0807066C
- lsls r3, r0, 2
- adds r3, r0
- lsls r3, 3
- adds r3, r4
- ldr r4, _08070670
- str r4, [r3]
- bl sub_806E8D0
- movs r0, 0x5
- bl audio_play
- movs r0, 0xB
- movs r1, 0x3
- bl sub_806D538
- ldr r0, _08070674
- ldrb r0, [r0, 0x5]
- bl sub_80702E4
- ldr r0, _08070678
- movs r1, 0x5
- bl CreateTask
- ldr r1, _0807067C
- movs r0, 0
- strh r0, [r1, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807066C: .4byte 0x03004b20
-_08070670: .4byte TaskDummy
-_08070674: .4byte 0x0201c000
-_08070678: .4byte sub_8070374
-_0807067C: .4byte 0x03001770
- thumb_func_end dp05_pp_up
-
- thumb_func_start sub_8070680
-sub_8070680: @ 8070680
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 16
- lsrs r6, r1, 16
- ldr r3, _080706E0
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r3
- ldr r3, _080706E4
- str r3, [r1]
- adds r1, r6, 0
- bl sub_806E8D0
- ldr r5, _080706E8
- ldr r0, [r5]
- movs r1, 0x38
- bl PokemonGetField
- cmp r0, 0x64
- beq _080706F4
- movs r4, 0
- ldr r0, _080706EC
- adds r7, r5, r0
-_080706B2:
- ldr r0, [r5]
- ldr r1, _080706F0
- adds r1, r4, r1
- ldrb r1, [r1]
- bl PokemonGetField
- lsls r1, r4, 1
- adds r1, r7, r1
- strh r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _080706B2
- ldr r0, _080706E8
- ldrb r0, [r0, 0x5]
- adds r1, r6, 0
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- lsrs r0, 24
- b _080706F6
- .align 2, 0
-_080706E0: .4byte 0x03004b20
-_080706E4: .4byte TaskDummy
-_080706E8: .4byte 0x0201c000
-_080706EC: .4byte 0xfffff264
-_080706F0: .4byte gUnknown_08376D1C
-_080706F4:
- movs r0, 0x1
-_080706F6:
- cmp r0, 0
- beq _08070724
- ldr r1, _08070718
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x5
- bl audio_play
- ldr r0, _0807071C
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _08070720
- movs r1, 0x5
- bl CreateTask
- b _0807077C
- .align 2, 0
-_08070718: .4byte 0x0202e8f4
-_0807071C: .4byte gUnknown_0840EF85
-_08070720: .4byte sub_806FB0C
-_08070724:
- ldr r1, _08070784
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0
- bl pause_music_for_sound_maybe
- ldr r4, _08070788
- ldrb r0, [r4, 0x5]
- ldr r1, [r4]
- bl sub_8070A20
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_80A9538
- ldr r0, [r4]
- ldr r1, _0807078C
- bl GetMonNickname
- ldr r0, [r4]
- movs r1, 0x38
- bl PokemonGetField
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08070790
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r4, _08070794
- ldr r1, _08070798
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _0807079C
- movs r1, 0x5
- bl CreateTask
-_0807077C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070784: .4byte 0x0202e8f4
-_08070788: .4byte 0x0201c000
-_0807078C: .4byte 0x020231cc
-_08070790: .4byte 0x020232cc
-_08070794: .4byte 0x020234cc
-_08070798: .4byte gUnknown_0840F5A6
-_0807079C: .4byte sub_80707A0
- thumb_func_end sub_8070680
-
- thumb_func_start sub_80707A0
-sub_80707A0: @ 80707A0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- bl ducking_tick
- lsls r0, 24
- cmp r0, 0
- beq _080707E8
- ldr r0, _080707F0
- ldrb r0, [r0]
- cmp r0, 0
- bne _080707E8
- ldr r0, _080707F4
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080707CE
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080707E8
-_080707CE:
- movs r0, 0x5
- bl audio_play
- adds r0, r4, 0
- bl sub_8070848
- ldr r0, _080707F8
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _080707FC
- str r0, [r1]
-_080707E8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080707F0: .4byte 0x0202e8f6
-_080707F4: .4byte 0x03001770
-_080707F8: .4byte 0x03004b20
-_080707FC: .4byte sub_8070800
- thumb_func_end sub_80707A0
-
- thumb_func_start sub_8070800
-sub_8070800: @ 8070800
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0807083C
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0807081A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08070834
-_0807081A:
- movs r0, 0x5
- bl audio_play
- adds r0, r4, 0
- bl sub_8070968
- ldr r0, _08070840
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, _08070844
- str r0, [r1]
-_08070834:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807083C: .4byte 0x03001770
-_08070840: .4byte 0x03004b20
-_08070844: .4byte sub_8070AC8
- thumb_func_end sub_8070800
-
- thumb_func_start sub_8070848
-sub_8070848: @ 8070848
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r0, 0xB
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x7
- bl DrawDefaultWindow
- movs r7, 0
- ldr r0, _080708E4
- mov r10, r0
-_08070864:
- ldr r1, _080708E8
- ldr r0, [r1]
- ldr r1, _080708EC
- adds r1, r7, r1
- ldrb r1, [r1]
- bl PokemonGetField
- adds r1, r7, 0x6
- lsls r1, 1
- ldr r2, _080708F0
- adds r1, r2
- strh r0, [r1]
- lsls r4, r7, 1
- adds r2, r4, r2
- ldrh r1, [r2]
- subs r0, r1
- strh r0, [r2]
- adds r0, r7, 0
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- adds r1, 0xB
- lsls r1, 24
- lsrs r6, r1, 24
- adds r0, r7, 0
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 1
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r1, _080708F4
- lsls r0, r7, 2
- adds r0, r1
- ldr r0, [r0]
- adds r1, r6, 0x1
- lsls r1, 27
- lsrs r1, 24
- mov r2, r9
- lsls r5, r2, 3
- adds r2, r5, 0
- movs r3, 0x1
- bl sub_80729D8
- mov r8, r4
- cmp r7, 0x2
- bne _080708FC
- adds r4, r6, 0x6
- lsls r1, r4, 3
- adds r1, 0x6
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _080708F8
- adds r2, r5, 0
- movs r3, 0
- bl sub_80729D8
- b _08070910
- .align 2, 0
-_080708E4: .4byte 0x020231cc
-_080708E8: .4byte 0x0201c000
-_080708EC: .4byte gUnknown_08376D1C
-_080708F0: .4byte 0x0201b264
-_080708F4: .4byte gUnknown_08376D04
-_080708F8: .4byte gUnknown_0840E691
-_080708FC:
- adds r4, r6, 0x6
- lsls r1, r4, 3
- adds r1, 0x6
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08070960
- adds r2, r5, 0
- movs r3, 0x1
- bl sub_80729D8
-_08070910:
- movs r0, 0xFC
- mov r1, r10
- strb r0, [r1]
- movs r0, 0x14
- strb r0, [r1, 0x1]
- movs r0, 0x6
- strb r0, [r1, 0x2]
- ldr r0, _08070964
- add r0, r8
- movs r2, 0
- ldrsh r1, [r0, r2]
- mov r0, r10
- adds r0, 0x3
- movs r2, 0x1
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- lsls r1, r4, 27
- movs r0, 0xC0
- lsls r0, 20
- adds r1, r0
- lsrs r1, 24
- mov r0, r9
- lsls r2, r0, 3
- mov r0, r10
- movs r3, 0
- bl sub_80729D8
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x5
- bls _08070864
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070960: .4byte gUnknown_0840E691
-_08070964: .4byte 0x0201b264
- thumb_func_end sub_8070848
-
- thumb_func_start sub_8070968
-sub_8070968: @ 8070968
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r7, 0
- ldr r0, _08070A10
- mov r9, r0
- ldr r1, _08070A14
- add r1, r9
- mov r10, r1
- ldr r0, _08070A18
- mov r8, r0
-_08070982:
- mov r1, r9
- ldr r0, [r1]
- ldr r1, _08070A1C
- adds r1, r7, r1
- ldrb r1, [r1]
- bl PokemonGetField
- adds r6, r7, 0x6
- lsls r6, 1
- add r6, r10
- strh r0, [r6]
- adds r0, r7, 0
- movs r1, 0x3
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r4, r0, 3
- adds r4, r0
- adds r4, 0xB
- lsls r4, 24
- lsrs r4, 24
- adds r0, r7, 0
- movs r1, 0x3
- bl __umodsi3
- adds r5, r0, 0
- lsls r5, 1
- adds r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- movs r0, 0xFC
- mov r1, r8
- strb r0, [r1]
- movs r0, 0x14
- strb r0, [r1, 0x1]
- movs r0, 0x6
- strb r0, [r1, 0x2]
- movs r0, 0
- ldrsh r1, [r6, r0]
- mov r0, r8
- adds r0, 0x3
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r4, 0x6
- lsls r4, 3
- adds r4, 0x6
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 3
- mov r0, r8
- adds r1, r4, 0
- adds r2, r5, 0
- movs r3, 0
- bl sub_80729D8
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x5
- bls _08070982
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070A10: .4byte 0x0201c000
-_08070A14: .4byte 0xfffff264
-_08070A18: .4byte 0x020231cc
-_08070A1C: .4byte gUnknown_08376D1C
- thumb_func_end sub_8070968
-
- thumb_func_start sub_8070A20
-sub_8070A20: @ 8070A20
- push {r4-r7,lr}
- adds r6, r1, 0
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r6, 0
- bl sub_80A1CD8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08070A3A
- cmp r0, 0x6
- bne _08070A42
-_08070A3A:
- adds r0, r6, 0
- adds r1, r7, 0
- bl sub_806FBB4
-_08070A42:
- bl battle_type_is_double
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r6, 0
- movs r1, 0x39
- bl PokemonGetField
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r6, 0
- movs r1, 0x3A
- bl PokemonGetField
- adds r3, r0, 0
- lsls r3, 16
- lsrs r3, 16
- adds r0, r7, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_806E420
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_806E674
- ldr r4, _08070ABC
- ldrb r0, [r4, 0x4]
- adds r1, r7, 0
- bl sub_806DDA0
- lsls r0, 24
- lsrs r0, 24
- adds r1, r6, 0
- bl sub_806D84C
- bl battle_type_is_double
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- lsls r1, r7, 1
- adds r0, r1
- ldr r1, _08070AC0
- adds r0, r1
- movs r1, 0x7
- bl task_pc_turn_off
- ldr r0, _08070AC4
- adds r4, r0
- movs r0, 0x2
- strb r0, [r4]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070ABC: .4byte 0x0201c000
-_08070AC0: .4byte gUnknown_083769A8
-_08070AC4: .4byte 0xfffff261
- thumb_func_end sub_8070A20
-
- thumb_func_start sub_8070AC8
-sub_8070AC8: @ 8070AC8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r0, 0
- bl ducking_tick
- lsls r0, 24
- cmp r0, 0
- bne _08070ADC
- b _08070C2C
-_08070ADC:
- ldr r0, _08070B24
- ldrh r1, [r0, 0x2E]
- movs r5, 0x1
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08070AF4
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08070AF4
- b _08070C2C
-_08070AF4:
- movs r0, 0xB
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x7
- bl Reset
- ldr r7, _08070B28
- ldr r0, [r7]
- movs r1, 0x1
- bl sub_803B7C8
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r1, _08070B2C
- adds r0, r7, r1
- strh r5, [r0]
- ldr r0, _08070B30
- cmp r4, r0
- beq _08070BDC
- cmp r4, r0
- bgt _08070B34
- cmp r4, 0
- beq _08070B40
- b _08070BF4
- .align 2, 0
-_08070B24: .4byte 0x03001770
-_08070B28: .4byte 0x0201c000
-_08070B2C: .4byte 0xfffff282
-_08070B30: .4byte 0x0000fffe
-_08070B34:
- ldr r0, _08070B3C
- cmp r4, r0
- beq _08070B7C
- b _08070BF4
- .align 2, 0
-_08070B3C: .4byte 0x0000ffff
-_08070B40:
- ldr r0, [r7]
- movs r1, 0
- movs r2, 0
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08070B74
- ldr r1, _08070B6C
- ldr r0, _08070B70
- str r0, [r1]
- ldr r0, [r7]
- ldrb r3, [r7, 0x5]
- adds r1, r2, 0
- movs r2, 0x1
- bl sub_8111924
- adds r0, r6, 0
- bl DestroyTask
- b _08070C2C
- .align 2, 0
-_08070B6C: .4byte 0x03005e94
-_08070B70: .4byte sub_80A53F8
-_08070B74:
- adds r0, r6, 0
- bl sub_8070D90
- b _08070C2C
-_08070B7C:
- ldr r0, [r7]
- ldr r1, _08070BBC
- bl GetMonNickname
- ldr r0, _08070BC0
- ldr r5, _08070BC4
- ldrh r2, [r5]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _08070BC8
- adds r1, r2
- bl StringCopy
- ldr r4, _08070BCC
- ldr r1, _08070BD0
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldrh r0, [r5]
- strh r0, [r7, 0x8]
- ldr r1, _08070BD4
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070BD8
- b _08070C2A
- .align 2, 0
-_08070BBC: .4byte 0x020231cc
-_08070BC0: .4byte 0x020232cc
-_08070BC4: .4byte 0x02024e82
-_08070BC8: .4byte gMoveNames
-_08070BCC: .4byte 0x020234cc
-_08070BD0: .4byte gUnknown_0840F37C
-_08070BD4: .4byte 0x03004b20
-_08070BD8: .4byte sub_806F358
-_08070BDC:
- ldr r0, _08070BEC
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, _08070BF0
- str r0, [r1]
- b _08070C2C
- .align 2, 0
-_08070BEC: .4byte 0x03004b20
-_08070BF0: .4byte sub_8070C54
-_08070BF4:
- ldr r0, _08070C34
- ldr r0, [r0]
- ldr r1, _08070C38
- bl GetMonNickname
- ldr r0, _08070C3C
- movs r1, 0xD
- muls r1, r4
- ldr r2, _08070C40
- adds r1, r2
- bl StringCopy
- ldr r4, _08070C44
- ldr r1, _08070C48
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _08070C4C
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070C50
-_08070C2A:
- str r1, [r0]
-_08070C2C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070C34: .4byte 0x0201c000
-_08070C38: .4byte 0x020231cc
-_08070C3C: .4byte 0x020232cc
-_08070C40: .4byte gMoveNames
-_08070C44: .4byte 0x020234cc
-_08070C48: .4byte gUnknown_0840F338
-_08070C4C: .4byte 0x03004b20
-_08070C50: .4byte sub_806F254
- thumb_func_end sub_8070AC8
-
- thumb_func_start sub_8070C54
-sub_8070C54: @ 8070C54
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r7, _08070C78
- ldr r0, [r7]
- movs r1, 0
- bl sub_803B7C8
- lsls r0, 16
- lsrs r4, r0, 16
- ldr r0, _08070C7C
- cmp r4, r0
- beq _08070D28
- cmp r4, r0
- bgt _08070C80
- cmp r4, 0
- beq _08070C8C
- b _08070D30
- .align 2, 0
-_08070C78: .4byte 0x0201c000
-_08070C7C: .4byte 0x0000fffe
-_08070C80:
- ldr r0, _08070C88
- cmp r4, r0
- beq _08070CC8
- b _08070D30
- .align 2, 0
-_08070C88: .4byte 0x0000ffff
-_08070C8C:
- ldr r0, [r7]
- movs r1, 0
- movs r2, 0
- bl GetEvolutionTargetSpecies
- lsls r0, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _08070CC0
- ldr r1, _08070CB8
- ldr r0, _08070CBC
- str r0, [r1]
- ldr r0, [r7]
- ldrb r3, [r7, 0x5]
- adds r1, r2, 0
- movs r2, 0x1
- bl sub_8111924
- adds r0, r6, 0
- bl DestroyTask
- b _08070D68
- .align 2, 0
-_08070CB8: .4byte 0x03005e94
-_08070CBC: .4byte sub_80A53F8
-_08070CC0:
- adds r0, r6, 0
- bl sub_8070D90
- b _08070D68
-_08070CC8:
- ldr r0, [r7]
- ldr r1, _08070D08
- bl GetMonNickname
- ldr r0, _08070D0C
- ldr r5, _08070D10
- ldrh r2, [r5]
- movs r1, 0xD
- muls r1, r2
- ldr r2, _08070D14
- adds r1, r2
- bl StringCopy
- ldr r4, _08070D18
- ldr r1, _08070D1C
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldrh r0, [r5]
- strh r0, [r7, 0x8]
- ldr r1, _08070D20
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070D24
- b _08070D66
- .align 2, 0
-_08070D08: .4byte 0x020231cc
-_08070D0C: .4byte 0x020232cc
-_08070D10: .4byte 0x02024e82
-_08070D14: .4byte gMoveNames
-_08070D18: .4byte 0x020234cc
-_08070D1C: .4byte gUnknown_0840F37C
-_08070D20: .4byte 0x03004b20
-_08070D24: .4byte sub_806F358
-_08070D28:
- adds r0, r6, 0
- bl sub_8070C54
- b _08070D68
-_08070D30:
- ldr r0, _08070D70
- ldr r0, [r0]
- ldr r1, _08070D74
- bl GetMonNickname
- ldr r0, _08070D78
- movs r1, 0xD
- muls r1, r4
- ldr r2, _08070D7C
- adds r1, r2
- bl StringCopy
- ldr r4, _08070D80
- ldr r1, _08070D84
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_806E834
- ldr r1, _08070D88
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070D8C
-_08070D66:
- str r1, [r0]
-_08070D68:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08070D70: .4byte 0x0201c000
-_08070D74: .4byte 0x020231cc
-_08070D78: .4byte 0x020232cc
-_08070D7C: .4byte gMoveNames
-_08070D80: .4byte 0x020234cc
-_08070D84: .4byte gUnknown_0840F338
-_08070D88: .4byte 0x03004b20
-_08070D8C: .4byte sub_806F254
- thumb_func_end sub_8070C54
-
- thumb_func_start sub_8070D90
-sub_8070D90: @ 8070D90
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, _08070DB4
- ldr r3, _08070DB8
- ldrb r2, [r3, 0x4]
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r4
- ldr r2, [r3, 0x10]
- str r2, [r1]
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08070DB4: .4byte 0x03004b20
-_08070DB8: .4byte 0x0201c000
- thumb_func_end sub_8070D90
-
- thumb_func_start sub_8070DBC
-sub_8070DBC: @ 8070DBC
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r2, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r1, 16
- lsrs r6, r1, 16
- movs r0, 0x5
- bl audio_play
- ldr r1, _08070E18
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _08070E1C
- str r1, [r0]
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r5, 0
- bl sub_806E8D0
- ldr r1, _08070E20
- ldr r0, _08070E24
- str r0, [r1]
- ldr r0, _08070E28
- ldrb r0, [r0, 0x5]
- adds r1, r6, 0
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- cmp r0, 0
- beq _08070E38
- ldr r1, _08070E2C
- movs r0, 0
- strb r0, [r1]
- ldr r0, _08070E30
- movs r1, 0x1
- bl sub_806E834
- ldr r0, _08070E34
- movs r1, 0x5
- bl CreateTask
- b _08070E40
- .align 2, 0
-_08070E18: .4byte 0x03004b20
-_08070E1C: .4byte TaskDummy
-_08070E20: .4byte 0x03005e94
-_08070E24: .4byte sub_80A53F8
-_08070E28: .4byte 0x0201c000
-_08070E2C: .4byte 0x0202e8f4
-_08070E30: .4byte gUnknown_0840EF85
-_08070E34: .4byte sub_806FB0C
-_08070E38:
- adds r0, r6, 0
- movs r1, 0x1
- bl sub_80A9538
-_08070E40:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8070DBC
-
- thumb_func_start sub_8070E48
-sub_8070E48: @ 8070E48
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xAF
- bne _08070E5C
- ldr r4, _08070E58
- b _08070E66
- .align 2, 0
-_08070E58: .4byte 0x02028daa
-_08070E5C:
- ldr r1, _08070E8C
- subs r0, 0xD
- lsls r0, 2
- adds r0, r1
- ldr r4, [r0]
-_08070E66:
- ldrb r1, [r4]
- movs r5, 0x3F
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- bne _08070E88
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- bne _08070E88
- ldrb r0, [r4, 0x2]
- cmp r0, 0
- bne _08070E88
- ldrb r3, [r4, 0x3]
- movs r0, 0x80
- ands r0, r3
- cmp r0, 0
- beq _08070E90
-_08070E88:
- movs r0, 0
- b _08070F8A
- .align 2, 0
-_08070E8C: .4byte gItemEffectTable
-_08070E90:
- movs r2, 0x40
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _08070E9E
- movs r0, 0xA
- b _08070F8A
-_08070E9E:
- adds r0, r2, 0
- ands r0, r3
- cmp r0, 0
- beq _08070EAA
- movs r0, 0x1
- b _08070F8A
-_08070EAA:
- adds r2, r5, 0
- ands r2, r3
- cmp r2, 0
- bne _08070EB8
- lsrs r0, r1, 7
- cmp r0, 0
- beq _08070EFA
-_08070EB8:
- cmp r2, 0x20
- bne _08070EC0
- movs r0, 0x4
- b _08070F8A
-_08070EC0:
- cmp r2, 0x10
- bne _08070EC8
- movs r0, 0x3
- b _08070F8A
-_08070EC8:
- cmp r2, 0x8
- bne _08070ED0
- movs r0, 0x5
- b _08070F8A
-_08070ED0:
- cmp r2, 0x4
- bne _08070ED8
- movs r0, 0x6
- b _08070F8A
-_08070ED8:
- cmp r2, 0x2
- bne _08070EE0
- movs r0, 0x7
- b _08070F8A
-_08070EE0:
- cmp r2, 0x1
- bne _08070EE8
- movs r0, 0x8
- b _08070F8A
-_08070EE8:
- lsrs r0, r1, 7
- cmp r0, 0
- beq _08070EF6
- cmp r2, 0
- bne _08070EF6
- movs r0, 0x9
- b _08070F8A
-_08070EF6:
- movs r0, 0xB
- b _08070F8A
-_08070EFA:
- ldrb r1, [r4, 0x4]
- movs r0, 0x44
- ands r0, r1
- adds r2, r1, 0
- cmp r0, 0
- beq _08070F0A
- movs r0, 0x2
- b _08070F8A
-_08070F0A:
- movs r5, 0x2
- adds r0, r5, 0
- ands r0, r2
- cmp r0, 0
- beq _08070F18
- movs r0, 0xC
- b _08070F8A
-_08070F18:
- movs r3, 0x1
- adds r0, r3, 0
- ands r0, r2
- cmp r0, 0
- beq _08070F26
- movs r0, 0xD
- b _08070F8A
-_08070F26:
- ldrb r1, [r4, 0x5]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08070F34
- movs r0, 0xE
- b _08070F8A
-_08070F34:
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08070F40
- movs r0, 0xF
- b _08070F8A
-_08070F40:
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _08070F4C
- movs r0, 0x10
- b _08070F8A
-_08070F4C:
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08070F58
- movs r0, 0x11
- b _08070F8A
-_08070F58:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _08070F64
- movs r0, 0x12
- b _08070F8A
-_08070F64:
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _08070F70
- movs r0, 0x13
- b _08070F8A
-_08070F70:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08070F7C
- movs r0, 0x14
- b _08070F8A
-_08070F7C:
- movs r0, 0x18
- ands r0, r2
- cmp r0, 0
- bne _08070F88
- movs r0, 0x16
- b _08070F8A
-_08070F88:
- movs r0, 0x15
-_08070F8A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8070E48
-
- thumb_func_start unref_sub_8070F90
-unref_sub_8070F90: @ 8070F90
- push {lr}
- ldr r0, _08070FAC
- bl FlagSet
- movs r0, 0x80
- lsls r0, 4
- bl FlagSet
- ldr r0, _08070FB0
- bl FlagSet
- pop {r0}
- bx r0
- .align 2, 0
-_08070FAC: .4byte 0x00000801
-_08070FB0: .4byte 0x00000802
- thumb_func_end unref_sub_8070F90
-
- thumb_func_start sub_8070FB4
-sub_8070FB4: @ 8070FB4
- push {lr}
- ldr r0, _08070FCC
- movs r1, 0
- strb r1, [r0]
- bl is_c1_link_related_active
- cmp r0, 0x1
- bne _08070FD0
- bl sub_80710A0
- b _08070FE2
- .align 2, 0
-_08070FCC: .4byte 0x0202e8fd
-_08070FD0:
- bl GetSafariZoneFlag
- cmp r0, 0x1
- bne _08070FDE
- bl BuildStartMenuActions_SafariZone
- b _08070FE2
-_08070FDE:
- bl BuildStartMenuActions_Normal
-_08070FE2:
- pop {r0}
- bx r0
- thumb_func_end sub_8070FB4
-
- thumb_func_start AddStartMenuAction
-AddStartMenuAction: @ 8070FE8
- push {lr}
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r0, _08070FFC
- ldr r1, _08071000
- bl append_byte
- pop {r0}
- bx r0
- .align 2, 0
-_08070FFC: .4byte 0x0202e8fe
-_08071000: .4byte 0x0202e8fd
- thumb_func_end AddStartMenuAction
-
- thumb_func_start BuildStartMenuActions_Normal
-BuildStartMenuActions_Normal: @ 8071004
- push {lr}
- ldr r0, _08071068
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0807101A
- movs r0, 0
- bl AddStartMenuAction
-_0807101A:
- movs r0, 0x80
- lsls r0, 4
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08071030
- movs r0, 0x1
- bl AddStartMenuAction
-_08071030:
- movs r0, 0x2
- bl AddStartMenuAction
- ldr r0, _0807106C
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0807104A
- movs r0, 0x3
- bl AddStartMenuAction
-_0807104A:
- movs r0, 0x4
- bl AddStartMenuAction
- movs r0, 0x5
- bl AddStartMenuAction
- movs r0, 0x6
- bl AddStartMenuAction
- movs r0, 0x7
- bl AddStartMenuAction
- pop {r0}
- bx r0
- .align 2, 0
-_08071068: .4byte 0x00000801
-_0807106C: .4byte 0x00000802
- thumb_func_end BuildStartMenuActions_Normal
-
- thumb_func_start BuildStartMenuActions_SafariZone
-BuildStartMenuActions_SafariZone: @ 8071070
- push {lr}
- movs r0, 0x8
- bl AddStartMenuAction
- movs r0, 0
- bl AddStartMenuAction
- movs r0, 0x1
- bl AddStartMenuAction
- movs r0, 0x2
- bl AddStartMenuAction
- movs r0, 0x4
- bl AddStartMenuAction
- movs r0, 0x6
- bl AddStartMenuAction
- movs r0, 0x7
- bl AddStartMenuAction
- pop {r0}
- bx r0
- thumb_func_end BuildStartMenuActions_SafariZone
-
- thumb_func_start sub_80710A0
-sub_80710A0: @ 80710A0
- push {lr}
- movs r0, 0x1
- bl AddStartMenuAction
- movs r0, 0x2
- bl AddStartMenuAction
- ldr r0, _080710D8
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080710C2
- movs r0, 0x3
- bl AddStartMenuAction
-_080710C2:
- movs r0, 0x9
- bl AddStartMenuAction
- movs r0, 0x6
- bl AddStartMenuAction
- movs r0, 0x7
- bl AddStartMenuAction
- pop {r0}
- bx r0
- .align 2, 0
-_080710D8: .4byte 0x00000802
- thumb_func_end sub_80710A0
-
- thumb_func_start sub_80710DC
-sub_80710DC: @ 80710DC
- push {lr}
- ldr r0, _08071108
- ldr r1, _0807110C
- ldrb r1, [r1]
- movs r2, 0xC
- movs r3, 0x1
- bl sub_8072C44
- movs r0, 0
- movs r1, 0
- movs r2, 0xA
- movs r3, 0x5
- bl DrawDefaultWindow
- ldr r0, _08071110
- movs r1, 0x1
- movs r2, 0x1
- bl Print
- pop {r0}
- bx r0
- .align 2, 0
-_08071108: .4byte 0x020231cc
-_0807110C: .4byte 0x02038808
-_08071110: .4byte gUnknown_0842C4A9
- thumb_func_end sub_80710DC
-
- thumb_func_start sub_8071114
-sub_8071114: @ 8071114
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- adds r6, r1, 0
- movs r0, 0
- ldrsh r4, [r7, r0]
- ldr r1, _08071160
- mov r8, r1
- lsls r0, r4, 25
- movs r1, 0x80
- lsls r1, 18
- adds r5, r0, r1
-_0807112E:
- ldr r0, _08071164
- adds r0, r4, r0
- ldrb r0, [r0]
- lsls r0, 3
- add r0, r8
- ldr r0, [r0]
- lsrs r2, r5, 24
- movs r1, 0x17
- bl Print
- movs r0, 0x80
- lsls r0, 18
- adds r5, r0
- adds r4, 0x1
- ldr r0, _08071168
- ldrb r0, [r0]
- cmp r4, r0
- bge _0807116C
- subs r6, 0x1
- cmp r6, 0
- bne _0807112E
- strh r4, [r7]
- movs r0, 0
- b _08071170
- .align 2, 0
-_08071160: .4byte gUnknown_08376D24
-_08071164: .4byte 0x0202e8fe
-_08071168: .4byte 0x0202e8fd
-_0807116C:
- strh r4, [r7]
- movs r0, 0x1
-_08071170:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8071114
-
- thumb_func_start sub_807117C
-sub_807117C: @ 807117C
- push {r4,r5,lr}
- sub sp, 0x8
- adds r4, r0, 0
- adds r5, r1, 0
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bhi _08071224
- lsls r0, 2
- ldr r1, _08071198
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08071198: .4byte _0807119C
- .align 2, 0
-_0807119C:
- .4byte _080711F6
- .4byte _080711B4
- .4byte _080711BA
- .4byte _080711DC
- .4byte _080711EA
- .4byte _080711FE
-_080711B4:
- bl sub_8070FB4
- b _080711F6
-_080711BA:
- ldr r0, _080711D8
- ldrb r3, [r0]
- lsls r3, 25
- movs r0, 0xC0
- lsls r0, 18
- adds r3, r0
- lsrs r3, 24
- movs r0, 0x16
- movs r1, 0
- movs r2, 0x1D
- bl DrawDefaultWindow
- movs r0, 0
- strh r0, [r5]
- b _080711F6
- .align 2, 0
-_080711D8: .4byte 0x0202e8fd
-_080711DC:
- bl GetSafariZoneFlag
- cmp r0, 0
- beq _080711F6
- bl sub_80710DC
- b _080711F6
-_080711EA:
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_8071114
- cmp r0, 0
- beq _08071224
-_080711F6:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _08071224
-_080711FE:
- ldr r0, _0807121C
- ldrb r3, [r0]
- ldr r4, _08071220
- ldrb r0, [r4]
- str r0, [sp]
- movs r0, 0x6
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x17
- movs r2, 0x2
- bl InitMenu
- strb r0, [r4]
- movs r0, 0x1
- b _08071226
- .align 2, 0
-_0807121C: .4byte 0x0202e8fd
-_08071220: .4byte 0x0202e8fc
-_08071224:
- movs r0, 0
-_08071226:
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_807117C
-
- thumb_func_start sub_8071230
-sub_8071230: @ 8071230
- push {r4,lr}
- sub sp, 0x4
- movs r0, 0
- mov r1, sp
- strh r0, [r1]
- adds r1, 0x2
- strh r0, [r1]
- adds r4, r1, 0
-_08071240:
- mov r0, sp
- adds r1, r4, 0
- bl sub_807117C
- cmp r0, 0
- beq _08071240
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8071230
-
- thumb_func_start task50_startmenu
-task50_startmenu: @ 8071254
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08071280
- adds r4, r0, r1
- adds r1, r4, 0x2
- adds r0, r4, 0
- bl sub_807117C
- cmp r0, 0x1
- bne _0807127A
- movs r0, 0
- strh r0, [r4]
- adds r0, r5, 0
- bl SwitchTaskToFollowupFunc
-_0807127A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08071280: .4byte 0x03004b28
- thumb_func_end task50_startmenu
-
- thumb_func_start sub_8071284
-sub_8071284: @ 8071284
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, _080712AC
- bl sub_8071C4C
- ldr r4, _080712B0
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- adds r2, r5, 0
- bl SetTaskFuncWithFollowupFunc
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080712AC: .4byte gWindowConfig_81E6CE4
-_080712B0: .4byte task50_startmenu
- thumb_func_end sub_8071284
-
- thumb_func_start sub_80712B4
-sub_80712B4: @ 80712B4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _080712D4
- adds r2, r0, r1
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _080712D8
- cmp r0, 0x1
- beq _080712F0
- b _08071306
- .align 2, 0
-_080712D4: .4byte 0x03004b20
-_080712D8:
- ldr r1, _080712E8
- ldr r0, _080712EC
- str r0, [r1]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _08071306
- .align 2, 0
-_080712E8: .4byte 0x03004ae8
-_080712EC: .4byte sub_8071338
-_080712F0:
- ldr r0, _0807130C
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08071306
- adds r0, r4, 0
- bl DestroyTask
-_08071306:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0807130C: .4byte 0x03004ae8
- thumb_func_end sub_80712B4
-
- thumb_func_start sub_8071310
-sub_8071310: @ 8071310
- push {lr}
- bl is_c1_link_related_active
- cmp r0, 0
- bne _08071326
- bl player_bitmagic
- bl sub_80594C0
- bl sub_80597F4
-_08071326:
- ldr r0, _08071334
- bl sub_8071284
- bl script_env_2_enable
- pop {r0}
- bx r0
- .align 2, 0
-_08071334: .4byte sub_80712B4
- thumb_func_end sub_8071310
-
- thumb_func_start sub_8071338
-sub_8071338: @ 8071338
- push {r4,lr}
- ldr r4, _080713DC
- ldrh r1, [r4, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08071358
- movs r0, 0x5
- bl audio_play
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- ldr r1, _080713E0
- strb r0, [r1]
-_08071358:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08071372
- movs r0, 0x5
- bl audio_play
- movs r0, 0x1
- bl MoveMenuCursor
- ldr r1, _080713E0
- strb r0, [r1]
-_08071372:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08071400
- movs r0, 0x5
- bl audio_play
- ldr r1, _080713E4
- ldr r2, _080713E8
- ldr r0, _080713E0
- ldrb r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- ldr r0, _080713EC
- cmp r1, r0
- bne _080713A8
- movs r0, 0
- bl pokedex_count
- lsls r0, 16
- cmp r0, 0
- beq _08071408
-_080713A8:
- ldr r3, _080713F0
- ldr r1, _080713E4
- ldr r2, _080713E8
- ldr r0, _080713E0
- ldrb r0, [r0]
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r1, [r0]
- str r1, [r3]
- ldr r0, _080713F4
- cmp r1, r0
- beq _08071408
- ldr r0, _080713F8
- cmp r1, r0
- beq _08071408
- ldr r0, _080713FC
- cmp r1, r0
- beq _08071408
- movs r0, 0x1
- movs r1, 0
- bl fade_screen
- b _08071408
- .align 2, 0
-_080713DC: .4byte 0x03001770
-_080713E0: .4byte 0x0202e8fc
-_080713E4: .4byte gUnknown_08376D24
-_080713E8: .4byte 0x0202e8fe
-_080713EC: .4byte StartMenu_Pokedex
-_080713F0: .4byte 0x03004ae8
-_080713F4: .4byte sub_80714FC
-_080713F8: .4byte sub_8071554
-_080713FC: .4byte sub_8071560
-_08071400:
- movs r0, 0xA
- ands r0, r1
- cmp r0, 0
- bne _0807140C
-_08071408:
- movs r0, 0
- b _08071412
-_0807140C:
- bl sub_8071C20
- movs r0, 0x1
-_08071412:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8071338
-
- thumb_func_start StartMenu_Pokedex
-StartMenu_Pokedex: @ 8071418
- push {lr}
- ldr r0, _0807142C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08071430
- movs r0, 0
- b _08071442
- .align 2, 0
-_0807142C: .4byte 0x0202f388
-_08071430:
- movs r0, 0x29
- bl sav12_xor_increment
- bl play_some_sound
- ldr r0, _08071448
- bl SetMainCallback2
- movs r0, 0x1
-_08071442:
- pop {r1}
- bx r1
- .align 2, 0
-_08071448: .4byte sub_808C27C
- thumb_func_end StartMenu_Pokedex
-
- thumb_func_start sub_807144C
-sub_807144C: @ 807144C
- push {lr}
- ldr r0, _08071460
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08071464
- movs r0, 0
- b _08071470
- .align 2, 0
-_08071460: .4byte 0x0202f388
-_08071464:
- bl play_some_sound
- ldr r0, _08071474
- bl SetMainCallback2
- movs r0, 0x1
-_08071470:
- pop {r1}
- bx r1
- .align 2, 0
-_08071474: .4byte sub_8089A70
- thumb_func_end sub_807144C
-
- thumb_func_start sub_8071478
-sub_8071478: @ 8071478
- push {lr}
- ldr r0, _0807148C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08071490
- movs r0, 0
- b _0807149C
- .align 2, 0
-_0807148C: .4byte 0x0202f388
-_08071490:
- bl play_some_sound
- ldr r0, _080714A0
- bl SetMainCallback2
- movs r0, 0x1
-_0807149C:
- pop {r1}
- bx r1
- .align 2, 0
-_080714A0: .4byte sub_80A53F8
- thumb_func_end sub_8071478
-
- thumb_func_start sub_80714A4
-sub_80714A4: @ 80714A4
- push {lr}
- ldr r0, _080714B8
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080714BC
- movs r0, 0
- b _080714C8
- .align 2, 0
-_080714B8: .4byte 0x0202f388
-_080714BC:
- bl play_some_sound
- ldr r0, _080714CC
- bl SetMainCallback2
- movs r0, 0x1
-_080714C8:
- pop {r1}
- bx r1
- .align 2, 0
-_080714CC: .4byte sub_80EBA5C
- thumb_func_end sub_80714A4
-
- thumb_func_start sub_80714D0
-sub_80714D0: @ 80714D0
- push {lr}
- ldr r0, _080714E4
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080714E8
- movs r0, 0
- b _080714F4
- .align 2, 0
-_080714E4: .4byte 0x0202f388
-_080714E8:
- bl play_some_sound
- ldr r0, _080714F8
- bl sub_8093110
- movs r0, 0x1
-_080714F4:
- pop {r1}
- bx r1
- .align 2, 0
-_080714F8: .4byte sub_805469C
- thumb_func_end sub_80714D0
-
- thumb_func_start sub_80714FC
-sub_80714FC: @ 80714FC
- push {lr}
- bl sub_8072DEC
- ldr r1, _08071510
- ldr r0, _08071514
- str r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08071510: .4byte 0x03004ae8
-_08071514: .4byte sub_80715A4
- thumb_func_end sub_80714FC
-
- thumb_func_start sub_8071518
-sub_8071518: @ 8071518
- push {lr}
- ldr r0, _0807152C
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08071530
- movs r0, 0
- b _08071542
- .align 2, 0
-_0807152C: .4byte 0x0202f388
-_08071530:
- bl play_some_sound
- ldr r0, _08071548
- bl SetMainCallback2
- ldr r1, _0807154C
- ldr r0, _08071550
- str r0, [r1, 0x8]
- movs r0, 0x1
-_08071542:
- pop {r1}
- bx r1
- .align 2, 0
-_08071548: .4byte CB2_InitOptionMenu
-_0807154C: .4byte 0x03001770
-_08071550: .4byte sub_805469C
- thumb_func_end sub_8071518
-
- thumb_func_start sub_8071554
-sub_8071554: @ 8071554
- push {lr}
- bl sub_8071C20
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8071554
-
- thumb_func_start sub_8071560
-sub_8071560: @ 8071560
- push {lr}
- bl sub_8071C20
- bl sub_80C823C
- movs r0, 0x1
- pop {r1}
- bx r1
- thumb_func_end sub_8071560
-
- thumb_func_start sub_8071570
-sub_8071570: @ 8071570
- push {lr}
- ldr r0, _08071584
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08071588
- movs r0, 0
- b _08071598
- .align 2, 0
-_08071584: .4byte 0x0202f388
-_08071588:
- bl play_some_sound
- ldr r0, _0807159C
- ldrb r0, [r0]
- ldr r1, _080715A0
- bl sub_8093130
- movs r0, 0x1
-_08071598:
- pop {r1}
- bx r1
- .align 2, 0
-_0807159C: .4byte 0x03004860
-_080715A0: .4byte sub_805469C
- thumb_func_end sub_8071570
-
- thumb_func_start sub_80715A4
-sub_80715A4: @ 80715A4
- push {lr}
- bl sub_807160C
- ldr r1, _080715B8
- ldr r0, _080715BC
- str r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080715B8: .4byte 0x03004ae8
-_080715BC: .4byte sub_80715C0
- thumb_func_end sub_80715A4
-
- thumb_func_start sub_80715C0
-sub_80715C0: @ 80715C0
- push {lr}
- bl sub_8071630
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080715F4
- cmp r0, 0x1
- ble _08071604
- cmp r0, 0x2
- beq _080715DC
- cmp r0, 0x3
- beq _080715F4
- b _08071604
-_080715DC:
- bl sub_8071EF4
- bl sub_8071230
- ldr r1, _080715EC
- ldr r0, _080715F0
- str r0, [r1]
- b _08071604
- .align 2, 0
-_080715EC: .4byte 0x03004ae8
-_080715F0: .4byte sub_8071338
-_080715F4:
- bl sub_8071EF4
- bl sub_8064E2C
- bl script_env_2_disable
- movs r0, 0x1
- b _08071606
-_08071604:
- movs r0, 0
-_08071606:
- pop {r1}
- bx r1
- thumb_func_end sub_80715C0
-
- thumb_func_start sub_807160C
-sub_807160C: @ 807160C
- push {lr}
- bl save_serialize_map
- ldr r1, _08071624
- ldr r0, _08071628
- str r0, [r1]
- ldr r1, _0807162C
- movs r0, 0
- strb r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08071624: .4byte 0x030006a8
-_08071628: .4byte sub_8071794
-_0807162C: .4byte 0x030006ad
- thumb_func_end sub_807160C
-
- thumb_func_start sub_8071630
-sub_8071630: @ 8071630
- push {lr}
- ldr r0, _08071648
- ldrb r0, [r0]
- cmp r0, 0
- beq _0807164C
- bl sub_8072080
- lsls r0, 24
- cmp r0, 0
- bne _0807164C
- movs r0, 0
- b _0807165E
- .align 2, 0
-_08071648: .4byte 0x030006ad
-_0807164C:
- ldr r1, _08071664
- movs r0, 0
- strb r0, [r1]
- ldr r0, _08071668
- ldr r0, [r0]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
-_0807165E:
- pop {r1}
- bx r1
- .align 2, 0
-_08071664: .4byte 0x030006ad
-_08071668: .4byte 0x030006a8
- thumb_func_end sub_8071630
-
- thumb_func_start sub_807166C
-sub_807166C: @ 807166C
- push {lr}
- bl sub_807160C
- ldr r0, _08071680
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08071680: .4byte task50_save_game
- thumb_func_end sub_807166C
-
- thumb_func_start sub_8071684
-sub_8071684: @ 8071684
- push {r4,r5,lr}
- adds r2, r0, 0
- adds r5, r1, 0
- ldr r4, _080716B0
- adds r0, r4, 0
- adds r1, r2, 0
- bl StringExpandPlaceholders
- bl sub_8071FFC
- adds r0, r4, 0
- bl sub_8072044
- ldr r1, _080716B4
- movs r0, 0x1
- strb r0, [r1]
- ldr r0, _080716B8
- str r5, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080716B0: .4byte 0x020234cc
-_080716B4: .4byte 0x030006ad
-_080716B8: .4byte 0x030006a8
- thumb_func_end sub_8071684
-
- thumb_func_start task50_save_game
-task50_save_game: @ 80716BC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8071630
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1
- beq _080716E8
- cmp r1, 0x1
- bgt _080716D8
- cmp r1, 0
- beq _080716F6
- b _080716EC
-_080716D8:
- cmp r1, 0x3
- bgt _080716EC
- ldr r1, _080716E4
- movs r0, 0
- strh r0, [r1]
- b _080716EC
- .align 2, 0
-_080716E4: .4byte 0x0202e8dc
-_080716E8:
- ldr r0, _080716FC
- strh r1, [r0]
-_080716EC:
- adds r0, r4, 0
- bl DestroyTask
- bl script_env_2_enable_and_set_ctx_running
-_080716F6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080716FC: .4byte 0x0202e8dc
- thumb_func_end task50_save_game
-
- thumb_func_start sub_8071700
-sub_8071700: @ 8071700
- push {lr}
- movs r0, 0
- movs r1, 0
- bl sub_80946C8
- pop {r0}
- bx r0
- thumb_func_end sub_8071700
-
- thumb_func_start sub_8071710
-sub_8071710: @ 8071710
- push {lr}
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1A
- movs r3, 0xD
- bl Reset
- pop {r0}
- bx r0
- thumb_func_end sub_8071710
-
- thumb_func_start sub_8071724
-sub_8071724: @ 8071724
- ldr r1, _0807172C
- movs r0, 0x3C
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0807172C: .4byte 0x030006ac
- thumb_func_end sub_8071724
-
- thumb_func_start sub_8071730
-sub_8071730: @ 8071730
- push {lr}
- ldr r1, _08071750
- ldrb r0, [r1]
- subs r2, r0, 0x1
- strb r2, [r1]
- ldr r0, _08071754
- ldrh r1, [r0, 0x2C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08071758
- lsls r0, r2, 24
- cmp r0, 0
- beq _0807175E
- movs r0, 0
- b _08071760
- .align 2, 0
-_08071750: .4byte 0x030006ac
-_08071754: .4byte 0x03001770
-_08071758:
- movs r0, 0x5
- bl audio_play
-_0807175E:
- movs r0, 0x1
-_08071760:
- pop {r1}
- bx r1
- thumb_func_end sub_8071730
-
- thumb_func_start sub_8071764
-sub_8071764: @ 8071764
- push {lr}
- ldr r1, _08071780
- ldrb r0, [r1]
- cmp r0, 0
- bne _08071788
- ldr r0, _08071784
- ldrh r1, [r0, 0x2C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0807178C
- movs r0, 0x1
- b _0807178E
- .align 2, 0
-_08071780: .4byte 0x030006ac
-_08071784: .4byte 0x03001770
-_08071788:
- subs r0, 0x1
- strb r0, [r1]
-_0807178C:
- movs r0, 0
-_0807178E:
- pop {r1}
- bx r1
- thumb_func_end sub_8071764
-
- thumb_func_start sub_8071794
-sub_8071794: @ 8071794
- push {lr}
- bl sub_8071EF4
- movs r0, 0
- movs r1, 0
- bl sub_80945C0
- ldr r0, _080717B0
- ldr r1, _080717B4
- bl sub_8071684
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080717B0: .4byte gUnknown_081C6C85
-_080717B4: .4byte sub_80717B8
- thumb_func_end sub_8071794
-
- thumb_func_start sub_80717B8
-sub_80717B8: @ 80717B8
- push {lr}
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl sub_8072974
- ldr r1, _080717D0
- ldr r0, _080717D4
- str r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080717D0: .4byte 0x030006a8
-_080717D4: .4byte sub_80717D8
- thumb_func_end sub_80717B8
-
- thumb_func_start sub_80717D8
-sub_80717D8: @ 80717D8
- push {lr}
- bl FillWindowPixelBuffer
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _080717FA
- cmp r1, 0
- bgt _080717F4
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0807183C
- b _08071848
-_080717F4:
- cmp r1, 0x1
- beq _0807183C
- b _08071848
-_080717FA:
- bl sub_8071710
- ldr r0, _0807181C
- ldrh r0, [r0]
- cmp r0, 0
- beq _0807180A
- cmp r0, 0x2
- bne _08071812
-_0807180A:
- ldr r0, _08071820
- ldrb r0, [r0]
- cmp r0, 0
- bne _0807182C
-_08071812:
- ldr r1, _08071824
- ldr r0, _08071828
- str r0, [r1]
- b _08071848
- .align 2, 0
-_0807181C: .4byte 0x03005eb8
-_08071820: .4byte 0x020297ec
-_08071824: .4byte 0x030006a8
-_08071828: .4byte sub_8071850
-_0807182C:
- ldr r1, _08071834
- ldr r0, _08071838
- str r0, [r1]
- b _08071848
- .align 2, 0
-_08071834: .4byte 0x030006a8
-_08071838: .4byte sub_80718E8
-_0807183C:
- bl sub_8071710
- bl sub_8071700
- movs r0, 0x2
- b _0807184A
-_08071848:
- movs r0, 0
-_0807184A:
- pop {r1}
- bx r1
- thumb_func_end sub_80717D8
-
- thumb_func_start sub_8071850
-sub_8071850: @ 8071850
- push {lr}
- ldr r0, _0807186C
- ldrb r0, [r0]
- ldr r2, _08071870
- cmp r0, 0x1
- bne _0807185E
- ldr r2, _08071874
-_0807185E:
- ldr r1, _08071878
- adds r0, r2, 0
- bl sub_8071684
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_0807186C: .4byte 0x020297ec
-_08071870: .4byte gUnknown_081C6CA6
-_08071874: .4byte gUnknown_081C6D26
-_08071878: .4byte sub_807187C
- thumb_func_end sub_8071850
-
- thumb_func_start sub_807187C
-sub_807187C: @ 807187C
- push {lr}
- movs r0, 0x14
- movs r1, 0x8
- movs r2, 0x1
- bl sub_8072974
- ldr r1, _08071894
- ldr r0, _08071898
- str r0, [r1]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08071894: .4byte 0x030006a8
-_08071898: .4byte sub_807189C
- thumb_func_end sub_807187C
-
- thumb_func_start sub_807189C
-sub_807189C: @ 807189C
- push {lr}
- bl FillWindowPixelBuffer
- lsls r0, 24
- asrs r1, r0, 24
- cmp r1, 0
- beq _080718BE
- cmp r1, 0
- bgt _080718B8
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080718D4
- b _080718E0
-_080718B8:
- cmp r1, 0x1
- beq _080718D4
- b _080718E0
-_080718BE:
- bl sub_8071710
- ldr r1, _080718CC
- ldr r0, _080718D0
- str r0, [r1]
- b _080718E0
- .align 2, 0
-_080718CC: .4byte 0x030006a8
-_080718D0: .4byte sub_80718E8
-_080718D4:
- bl sub_8071710
- bl sub_8071700
- movs r0, 0x2
- b _080718E2
-_080718E0:
- movs r0, 0
-_080718E2:
- pop {r1}
- bx r1
- thumb_func_end sub_807189C
-
- thumb_func_start sub_80718E8
-sub_80718E8: @ 80718E8
- push {lr}
- ldr r0, _080718F8
- ldr r1, _080718FC
- bl sub_8071684
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080718F8: .4byte gUnknown_081C6CE1
-_080718FC: .4byte sub_8071900
- thumb_func_end sub_80718E8
-
- thumb_func_start sub_8071900
-sub_8071900: @ 8071900
- push {r4,lr}
- movs r0, 0
- bl sav12_xor_increment
- ldr r4, _08071920
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _08071924
- movs r0, 0x4
- bl sub_8125D44
- lsls r0, 24
- lsrs r1, r0, 24
- movs r0, 0
- strb r0, [r4]
- b _0807192E
- .align 2, 0
-_08071920: .4byte 0x020297ec
-_08071924:
- movs r0, 0
- bl sub_8125D44
- lsls r0, 24
- lsrs r1, r0, 24
-_0807192E:
- cmp r1, 0x1
- bne _08071944
- ldr r0, _0807193C
- ldr r1, _08071940
- bl sub_8071684
- b _0807194C
- .align 2, 0
-_0807193C: .4byte gUnknown_081C6D05
-_08071940: .4byte sub_8071960
-_08071944:
- ldr r0, _08071958
- ldr r1, _0807195C
- bl sub_8071684
-_0807194C:
- bl sub_8071724
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08071958: .4byte gUnknown_0840E5D5
-_0807195C: .4byte sub_80719AC
- thumb_func_end sub_8071900
-
- thumb_func_start sub_8071960
-sub_8071960: @ 8071960
- push {lr}
- bl sub_8072080
- lsls r0, 24
- cmp r0, 0
- beq _08071978
- movs r0, 0x37
- bl audio_play
- ldr r1, _08071980
- ldr r0, _08071984
- str r0, [r1]
-_08071978:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08071980: .4byte 0x030006a8
-_08071984: .4byte sub_8071988
- thumb_func_end sub_8071960
-
- thumb_func_start sub_8071988
-sub_8071988: @ 8071988
- push {lr}
- bl mplay_has_finished_maybe
- lsls r0, 24
- cmp r0, 0
- bne _080719A6
- bl sub_8071730
- lsls r0, 24
- cmp r0, 0
- beq _080719A6
- bl sub_8071700
- movs r0, 0x1
- b _080719A8
-_080719A6:
- movs r0, 0
-_080719A8:
- pop {r1}
- bx r1
- thumb_func_end sub_8071988
-
- thumb_func_start sub_80719AC
-sub_80719AC: @ 80719AC
- push {lr}
- bl sub_8072080
- lsls r0, 24
- cmp r0, 0
- beq _080719C4
- movs r0, 0x16
- bl audio_play
- ldr r1, _080719CC
- ldr r0, _080719D0
- str r0, [r1]
-_080719C4:
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_080719CC: .4byte 0x030006a8
-_080719D0: .4byte sub_80719D4
- thumb_func_end sub_80719AC
-
- thumb_func_start sub_80719D4
-sub_80719D4: @ 80719D4
- push {lr}
- bl sub_8071764
- lsls r0, 24
- cmp r0, 0
- beq _080719E8
- bl sub_8071700
- movs r0, 0x3
- b _080719EA
-_080719E8:
- movs r0, 0
-_080719EA:
- pop {r1}
- bx r1
- thumb_func_end sub_80719D4
-
- thumb_func_start sub_80719F0
-sub_80719F0: @ 80719F0
- push {lr}
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_80719F0
-
- thumb_func_start sub_80719FC
-sub_80719FC: @ 80719FC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- mov r8, r0
- ldrb r0, [r0]
- cmp r0, 0x4
- bls _08071A0E
- b _08071B10
-_08071A0E:
- lsls r0, 2
- ldr r1, _08071A18
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08071A18: .4byte _08071A1C
- .align 2, 0
-_08071A1C:
- .4byte _08071A30
- .4byte _08071AA4
- .4byte _08071AB6
- .4byte _08071AD8
- .4byte _08071B0C
-_08071A30:
- movs r0, 0x80
- lsls r0, 19
- movs r4, 0
- strh r4, [r0]
- movs r0, 0
- bl SetVBlankCallback
- bl remove_some_task
- movs r2, 0xA0
- lsls r2, 19
- mov r0, sp
- strh r4, [r0]
- ldr r1, _08071A98
- str r0, [r1]
- str r2, [r1, 0x4]
- ldr r0, _08071A9C
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r2, 0xC0
- lsls r2, 19
- movs r3, 0xC0
- lsls r3, 9
- mov r4, sp
- movs r6, 0
- movs r5, 0x80
- lsls r5, 5
- ldr r7, _08071AA0
- movs r0, 0x81
- lsls r0, 24
- mov r12, r0
-_08071A6E:
- 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 _08071A6E
- 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]
- b _08071B10
- .align 2, 0
-_08071A98: .4byte 0x040000d4
-_08071A9C: .4byte 0x81000200
-_08071AA0: .4byte 0x81000800
-_08071AA4:
- bl ResetSpriteData
- bl ResetTasks
- bl ResetPaletteFade
- bl dp12_8087EA4
- b _08071B10
-_08071AB6:
- ldr r4, _08071AD4
- adds r0, r4, 0
- bl SetUpWindowConfig
- adds r0, r4, 0
- bl sub_8071C4C
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- strh r0, [r1]
- b _08071B10
- .align 2, 0
-_08071AD4: .4byte gWindowConfig_81E6CE4
-_08071AD8:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- ldr r0, _08071B00
- bl SetVBlankCallback
- ldr r3, _08071B04
- ldrh r2, [r3]
- movs r0, 0
- strh r0, [r3]
- ldr r4, _08071B08
- ldrh r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- strh r2, [r3]
- b _08071B10
- .align 2, 0
-_08071B00: .4byte sub_80719F0
-_08071B04: .4byte 0x04000208
-_08071B08: .4byte 0x04000200
-_08071B0C:
- movs r0, 0x1
- b _08071B1A
-_08071B10:
- mov r1, r8
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- movs r0, 0
-_08071B1A:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80719FC
-
- thumb_func_start sub_8071B28
-sub_8071B28: @ 8071B28
- push {lr}
- ldr r0, _08071B48
- bl sub_80719FC
- cmp r0, 0
- beq _08071B42
- ldr r0, _08071B4C
- movs r1, 0x50
- bl CreateTask
- ldr r0, _08071B50
- bl SetMainCallback2
-_08071B42:
- pop {r0}
- bx r0
- .align 2, 0
-_08071B48: .4byte 0x03001bac
-_08071B4C: .4byte sub_8071B64
-_08071B50: .4byte sub_8071B54
- thumb_func_end sub_8071B28
-
- thumb_func_start sub_8071B54
-sub_8071B54: @ 8071B54
- push {lr}
- bl RunTasks
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end sub_8071B54
-
- thumb_func_start sub_8071B64
-sub_8071B64: @ 8071B64
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _08071B94
- adds r4, r0, r1
- ldr r0, _08071B98
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08071C14
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- bhi _08071C14
- lsls r0, 2
- ldr r1, _08071B9C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08071B94: .4byte 0x03004b28
-_08071B98: .4byte 0x0202f388
-_08071B9C: .4byte _08071BA0
- .align 2, 0
-_08071BA0:
- .4byte _08071BB4
- .4byte _08071BD4
- .4byte _08071BDE
- .4byte _08071BEE
- .4byte _08071C06
-_08071BB4:
- bl sub_8071FFC
- ldr r0, _08071BD0
- movs r1, 0x2
- movs r2, 0xF
- bl Print
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- b _08071BFA
- .align 2, 0
-_08071BD0: .4byte gUnknown_08411905
-_08071BD4:
- bl sub_8047A1C
- bl sub_8125E2C
- b _08071BFE
-_08071BDE:
- bl sub_8125E6C
- lsls r0, 24
- cmp r0, 0
- beq _08071C14
- bl sub_8047A34
- b _08071BFE
-_08071BEE:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
-_08071BFA:
- bl BeginNormalPaletteFade
-_08071BFE:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _08071C14
-_08071C06:
- ldr r0, _08071C1C
- ldr r0, [r0, 0x8]
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_08071C14:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08071C1C: .4byte 0x03001770
- thumb_func_end sub_8071B64
-
- thumb_func_start sub_8071C20
-sub_8071C20: @ 8071C20
- push {lr}
- movs r0, 0x5
- bl audio_play
- bl sub_8071EF4
- bl sub_8064E2C
- bl script_env_2_disable
- bl sub_8072DEC
- pop {r0}
- bx r0
- thumb_func_end sub_8071C20
-
- thumb_func_start append_byte
-append_byte: @ 8071C3C
- ldrb r3, [r1]
- adds r0, r3
- strb r2, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- bx lr
- thumb_func_end append_byte
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_8065394.s b/asm/rom_8065394.s
new file mode 100644
index 000000000..2b2f1b83c
--- /dev/null
+++ b/asm/rom_8065394.s
@@ -0,0 +1,26029 @@
+ .include "constants/gba_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start script_env_init
+script_env_init: @ 8065394
+ push {lr}
+ adds r3, r0, 0
+ movs r0, 0
+ strb r0, [r3, 0x1]
+ str r0, [r3, 0x8]
+ strb r0, [r3]
+ str r0, [r3, 0x4]
+ str r1, [r3, 0x5C]
+ str r2, [r3, 0x60]
+ movs r2, 0
+ movs r1, 0x3
+ adds r0, r3, 0
+ adds r0, 0x70
+_080653AE:
+ str r2, [r0]
+ subs r0, 0x4
+ subs r1, 0x1
+ cmp r1, 0
+ bge _080653AE
+ adds r1, r3, 0
+ adds r1, 0xC
+ movs r2, 0
+ adds r0, r3, 0
+ adds r0, 0x58
+_080653C2:
+ str r2, [r0]
+ subs r0, 0x4
+ cmp r0, r1
+ bge _080653C2
+ pop {r0}
+ bx r0
+ thumb_func_end script_env_init
+
+ thumb_func_start script_setup_bytecode_script
+script_setup_bytecode_script: @ 80653D0
+ str r1, [r0, 0x8]
+ movs r1, 0x1
+ strb r1, [r0, 0x1]
+ movs r0, 0x1
+ bx lr
+ thumb_func_end script_setup_bytecode_script
+
+ thumb_func_start script_setup_asm_script
+script_setup_asm_script: @ 80653DC
+ movs r2, 0x2
+ strb r2, [r0, 0x1]
+ str r1, [r0, 0x4]
+ bx lr
+ thumb_func_end script_setup_asm_script
+
+ thumb_func_start script_stop
+script_stop: @ 80653E4
+ movs r1, 0
+ strb r1, [r0, 0x1]
+ str r1, [r0, 0x8]
+ bx lr
+ thumb_func_end script_stop
+
+ thumb_func_start sub_80653EC
+sub_80653EC: @ 80653EC
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _080653FA
+_080653F6:
+ movs r0, 0
+ b _0806546C
+_080653FA:
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x1
+ beq _08065432
+ cmp r0, 0x1
+ bgt _0806540A
+ cmp r0, 0
+ beq _080653F6
+ b _0806546A
+_0806540A:
+ cmp r0, 0x2
+ bne _0806546A
+ ldr r0, [r4, 0x4]
+ cmp r0, 0
+ beq _0806542E
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806546A
+ strb r0, [r4, 0x1]
+ b _0806546A
+_08065424:
+ strb r2, [r4, 0x1]
+ b _080653F6
+_08065428:
+ movs r0, 0
+ strb r0, [r4, 0x1]
+ b _0806546C
+_0806542E:
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+_08065432:
+ ldr r2, [r4, 0x8]
+ cmp r2, 0
+ beq _08065424
+ ldr r0, _08065444
+ ldr r0, [r0]
+ cmp r2, r0
+ bne _08065448
+_08065440:
+ swi 0x2
+ b _08065440
+ .align 2, 0
+_08065444: .4byte gUnknown_083762D8
+_08065448:
+ ldrb r1, [r2]
+ adds r0, r2, 0x1
+ str r0, [r4, 0x8]
+ lsls r1, 2
+ ldr r0, [r4, 0x5C]
+ adds r1, r0, r1
+ ldr r0, [r4, 0x60]
+ cmp r1, r0
+ bcs _08065428
+ ldr r1, [r1]
+ adds r0, r4, 0
+ bl _call_via_r1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08065432
+_0806546A:
+ movs r0, 0x1
+_0806546C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80653EC
+
+ thumb_func_start script_stack_push
+script_stack_push: @ 8065474
+ push {lr}
+ adds r2, r0, 0
+ adds r3, r1, 0
+ ldrb r1, [r2]
+ adds r0, r1, 0x1
+ cmp r0, 0x13
+ bgt _08065496
+ lsls r0, r1, 2
+ adds r1, r2, 0
+ adds r1, 0xC
+ adds r1, r0
+ str r3, [r1]
+ ldrb r0, [r2]
+ adds r0, 0x1
+ strb r0, [r2]
+ movs r0, 0
+ b _08065498
+_08065496:
+ movs r0, 0x1
+_08065498:
+ pop {r1}
+ bx r1
+ thumb_func_end script_stack_push
+
+ thumb_func_start script_stack_pop
+script_stack_pop: @ 806549C
+ push {lr}
+ adds r2, r0, 0
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _080654B8
+ subs r0, 0x1
+ strb r0, [r2]
+ ldrb r1, [r2]
+ lsls r1, 2
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r1
+ ldr r0, [r0]
+ b _080654BA
+_080654B8:
+ movs r0, 0
+_080654BA:
+ pop {r1}
+ bx r1
+ thumb_func_end script_stack_pop
+
+ thumb_func_start script_jump
+script_jump: @ 80654C0
+ str r1, [r0, 0x8]
+ bx lr
+ thumb_func_end script_jump
+
+ thumb_func_start script_call
+script_call: @ 80654C4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r1, [r4, 0x8]
+ bl script_stack_push
+ str r5, [r4, 0x8]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end script_call
+
+ thumb_func_start script_return
+script_return: @ 80654D8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl script_stack_pop
+ str r0, [r4, 0x8]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end script_return
+
+ thumb_func_start script_read_halfword
+script_read_halfword: @ 80654E8
+ adds r3, r0, 0
+ ldr r2, [r3, 0x8]
+ ldrb r0, [r2]
+ adds r2, 0x1
+ str r2, [r3, 0x8]
+ ldrb r1, [r2]
+ lsls r1, 8
+ orrs r0, r1
+ adds r2, 0x1
+ str r2, [r3, 0x8]
+ bx lr
+ thumb_func_end script_read_halfword
+
+ thumb_func_start script_read_word
+script_read_word: @ 8065500
+ push {r4-r6,lr}
+ adds r3, r0, 0
+ ldr r0, [r3, 0x8]
+ ldrb r6, [r0]
+ adds r0, 0x1
+ str r0, [r3, 0x8]
+ ldrb r5, [r0]
+ adds r2, r0, 0x1
+ str r2, [r3, 0x8]
+ ldrb r4, [r0, 0x1]
+ adds r1, r2, 0x1
+ str r1, [r3, 0x8]
+ ldrb r0, [r2, 0x1]
+ adds r1, 0x1
+ str r1, [r3, 0x8]
+ lsls r0, 8
+ adds r0, r4
+ lsls r0, 8
+ adds r0, r5
+ lsls r0, 8
+ adds r0, r6
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end script_read_word
+
+ thumb_func_start script_env_2_enable
+script_env_2_enable: @ 8065530
+ ldr r1, _08065538
+ movs r0, 0x1
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_08065538: .4byte 0x030006a4
+ thumb_func_end script_env_2_enable
+
+ thumb_func_start script_env_2_disable
+script_env_2_disable: @ 806553C
+ ldr r1, _08065544
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_08065544: .4byte 0x030006a4
+ thumb_func_end script_env_2_disable
+
+ thumb_func_start script_env_2_is_enabled
+script_env_2_is_enabled: @ 8065548
+ ldr r0, _08065550
+ ldrb r0, [r0]
+ bx lr
+ .align 2, 0
+_08065550: .4byte 0x030006a4
+ thumb_func_end script_env_2_is_enabled
+
+ thumb_func_start script_env_1_init
+script_env_1_init: @ 8065554
+ push {lr}
+ ldr r0, _0806556C
+ ldr r1, _08065570
+ ldr r2, _08065574
+ bl script_env_init
+ ldr r1, _08065578
+ movs r0, 0x2
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806556C: .4byte 0x030005b8
+_08065570: .4byte gScriptCmdTable
+_08065574: .4byte gScriptCmdTableEnd
+_08065578: .4byte 0x030005b0
+ thumb_func_end script_env_1_init
+
+ thumb_func_start script_env_2_run_current_script
+script_env_2_run_current_script: @ 806557C
+ push {r4,lr}
+ ldr r4, _080655A0
+ ldrb r0, [r4]
+ cmp r0, 0x2
+ beq _080655B0
+ cmp r0, 0x1
+ beq _080655B0
+ bl script_env_2_enable
+ ldr r0, _080655A4
+ bl sub_80653EC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080655A8
+ movs r0, 0x1
+ b _080655B2
+ .align 2, 0
+_080655A0: .4byte 0x030005b0
+_080655A4: .4byte 0x030005b8
+_080655A8:
+ movs r0, 0x2
+ strb r0, [r4]
+ bl script_env_2_disable
+_080655B0:
+ movs r0, 0
+_080655B2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end script_env_2_run_current_script
+
+ thumb_func_start script_env_1_execute_new_script
+script_env_1_execute_new_script: @ 80655B8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _080655E0
+ ldr r1, _080655E4
+ ldr r2, _080655E8
+ adds r0, r4, 0
+ bl script_env_init
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl script_setup_bytecode_script
+ bl script_env_2_enable
+ ldr r1, _080655EC
+ movs r0, 0
+ strb r0, [r1]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080655E0: .4byte 0x030005b8
+_080655E4: .4byte gScriptCmdTable
+_080655E8: .4byte gScriptCmdTableEnd
+_080655EC: .4byte 0x030005b0
+ thumb_func_end script_env_1_execute_new_script
+
+ thumb_func_start sub_80655F0
+sub_80655F0: @ 80655F0
+ ldr r1, _080655F8
+ movs r0, 0x1
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080655F8: .4byte 0x030005b0
+ thumb_func_end sub_80655F0
+
+ thumb_func_start script_env_2_enable_and_set_ctx_running
+script_env_2_enable_and_set_ctx_running: @ 80655FC
+ push {lr}
+ ldr r1, _0806560C
+ movs r0, 0
+ strb r0, [r1]
+ bl script_env_2_enable
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806560C: .4byte 0x030005b0
+ thumb_func_end script_env_2_enable_and_set_ctx_running
+
+ thumb_func_start script_env_2_execute_new_script
+script_env_2_execute_new_script: @ 8065610
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r4, _0806563C
+ ldr r1, _08065640
+ ldr r2, _08065644
+ adds r0, r4, 0
+ bl script_env_init
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl script_setup_bytecode_script
+_08065628:
+ ldr r0, _0806563C
+ bl sub_80653EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08065628
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806563C: .4byte 0x03000630
+_08065640: .4byte gScriptCmdTable
+_08065644: .4byte gScriptCmdTableEnd
+ thumb_func_end script_env_2_execute_new_script
+
+ thumb_func_start mapheader_get_tagged_pointer
+mapheader_get_tagged_pointer: @ 8065648
+ push {lr}
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _08065660
+ ldr r2, [r0, 0x8]
+ cmp r2, 0
+ beq _0806565C
+_08065656:
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _08065664
+_0806565C:
+ movs r0, 0
+ b _08065682
+ .align 2, 0
+_08065660: .4byte 0x0202e828
+_08065664:
+ cmp r0, r1
+ beq _0806566C
+ adds r2, 0x5
+ b _08065656
+_0806566C:
+ adds r2, 0x1
+ ldrb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ lsls r1, 8
+ adds r0, r1
+ ldrb r1, [r2, 0x2]
+ lsls r1, 16
+ adds r0, r1
+ ldrb r1, [r2, 0x3]
+ lsls r1, 24
+ adds r0, r1
+_08065682:
+ pop {r1}
+ bx r1
+ thumb_func_end mapheader_get_tagged_pointer
+
+ thumb_func_start mapheader_run_script_by_tag
+mapheader_run_script_by_tag: @ 8065688
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl mapheader_get_tagged_pointer
+ cmp r0, 0
+ beq _0806569A
+ bl script_env_2_execute_new_script
+_0806569A:
+ pop {r0}
+ bx r0
+ thumb_func_end mapheader_run_script_by_tag
+
+ thumb_func_start mapheader_get_first_match_from_tagged_ptr_list
+mapheader_get_first_match_from_tagged_ptr_list: @ 80656A0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl mapheader_get_tagged_pointer
+ adds r6, r0, 0
+ cmp r6, 0
+ beq _080656BC
+_080656B0:
+ ldrb r1, [r6]
+ ldrb r0, [r6, 0x1]
+ lsls r0, 8
+ orrs r1, r0
+ cmp r1, 0
+ bne _080656C0
+_080656BC:
+ movs r0, 0
+ b _080656FA
+_080656C0:
+ adds r6, 0x2
+ ldrb r5, [r6]
+ ldrb r0, [r6, 0x1]
+ lsls r0, 8
+ orrs r5, r0
+ adds r6, 0x2
+ adds r0, r1, 0
+ bl VarGet
+ adds r4, r0, 0
+ adds r0, r5, 0
+ bl VarGet
+ lsls r4, 16
+ lsls r0, 16
+ cmp r4, r0
+ beq _080656E6
+ adds r6, 0x4
+ b _080656B0
+_080656E6:
+ ldrb r0, [r6]
+ ldrb r1, [r6, 0x1]
+ lsls r1, 8
+ adds r0, r1
+ ldrb r1, [r6, 0x2]
+ lsls r1, 16
+ adds r0, r1
+ ldrb r1, [r6, 0x3]
+ lsls r1, 24
+ adds r0, r1
+_080656FA:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end mapheader_get_first_match_from_tagged_ptr_list
+
+ thumb_func_start mapheader_run_script_with_tag_x1
+mapheader_run_script_with_tag_x1: @ 8065700
+ push {lr}
+ movs r0, 0x1
+ bl mapheader_run_script_by_tag
+ pop {r0}
+ bx r0
+ thumb_func_end mapheader_run_script_with_tag_x1
+
+ thumb_func_start mapheader_run_script_with_tag_x3
+mapheader_run_script_with_tag_x3: @ 806570C
+ push {lr}
+ movs r0, 0x3
+ bl mapheader_run_script_by_tag
+ pop {r0}
+ bx r0
+ thumb_func_end mapheader_run_script_with_tag_x3
+
+ thumb_func_start mapheader_run_script_with_tag_x5
+mapheader_run_script_with_tag_x5: @ 8065718
+ push {lr}
+ movs r0, 0x5
+ bl mapheader_run_script_by_tag
+ pop {r0}
+ bx r0
+ thumb_func_end mapheader_run_script_with_tag_x5
+
+ thumb_func_start mapheader_run_script_with_tag_x6
+mapheader_run_script_with_tag_x6: @ 8065724
+ push {lr}
+ movs r0, 0x6
+ bl mapheader_run_script_by_tag
+ pop {r0}
+ bx r0
+ thumb_func_end mapheader_run_script_with_tag_x6
+
+ thumb_func_start mapheader_run_first_tag2_script_list_match
+mapheader_run_first_tag2_script_list_match: @ 8065730
+ push {lr}
+ movs r0, 0x2
+ bl mapheader_get_first_match_from_tagged_ptr_list
+ cmp r0, 0
+ beq _08065744
+ bl script_env_1_execute_new_script
+ movs r0, 0x1
+ b _08065746
+_08065744:
+ movs r0, 0
+_08065746:
+ pop {r1}
+ bx r1
+ thumb_func_end mapheader_run_first_tag2_script_list_match
+
+ thumb_func_start mapheader_run_first_tag4_script_list_match
+mapheader_run_first_tag4_script_list_match: @ 806574C
+ push {lr}
+ movs r0, 0x4
+ bl mapheader_get_first_match_from_tagged_ptr_list
+ cmp r0, 0
+ beq _0806575C
+ bl script_env_2_execute_new_script
+_0806575C:
+ pop {r0}
+ bx r0
+ thumb_func_end mapheader_run_first_tag4_script_list_match
+
+ thumb_func_start sub_8065760
+sub_8065760: @ 8065760
+ push {r4,lr}
+ movs r2, 0
+ movs r1, 0
+ ldr r4, _08065780
+ ldr r3, _08065784
+_0806576A:
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ adds r2, r0
+ adds r1, 0x1
+ cmp r1, r4
+ bls _0806576A
+ adds r0, r2, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08065780: .4byte 0x000003e7
+_08065784: .4byte 0x02028dc8
+ thumb_func_end sub_8065760
+
+ thumb_func_start killram
+killram: @ 8065788
+ push {lr}
+ sub sp, 0x4
+ movs r0, 0
+ str r0, [sp]
+ ldr r1, _080657A0
+ ldr r2, _080657A4
+ mov r0, sp
+ bl CpuSet
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080657A0: .4byte 0x02028dc4
+_080657A4: .4byte 0x050000fb
+ thumb_func_end killram
+
+ thumb_func_start sub_80657A8
+sub_80657A8: @ 80657A8
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r9, r0
+ ldr r0, [sp, 0x1C]
+ lsls r1, 16
+ lsrs r1, 16
+ mov r8, r1
+ lsls r2, 24
+ lsrs r7, r2, 24
+ lsls r3, 24
+ lsrs r6, r3, 24
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r4, _080657F4
+ bl killram
+ ldr r0, _080657F8
+ cmp r8, r0
+ bhi _080657FC
+ movs r0, 0x33
+ strb r0, [r4]
+ strb r7, [r4, 0x1]
+ strb r6, [r4, 0x2]
+ strb r5, [r4, 0x3]
+ adds r0, r4, 0x4
+ mov r1, r9
+ mov r2, r8
+ bl memcpy
+ bl sub_8065760
+ subs r1, r4, 0x4
+ str r0, [r1]
+ movs r0, 0x1
+ b _080657FE
+ .align 2, 0
+_080657F4: .4byte 0x02028dc8
+_080657F8: .4byte 0x000003e3
+_080657FC:
+ movs r0, 0
+_080657FE:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80657A8
+
+ thumb_func_start sub_806580C
+sub_806580C: @ 806580C
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r4, _08065854
+ ldr r6, _08065858
+ movs r0, 0
+ str r0, [r6]
+ ldrb r0, [r4]
+ cmp r0, 0x33
+ bne _08065864
+ ldrb r1, [r4, 0x1]
+ ldr r0, _0806585C
+ adds r2, r4, r0
+ movs r0, 0x4
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ bne _08065864
+ ldrb r1, [r4, 0x2]
+ movs r0, 0x5
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ bne _08065864
+ ldrb r0, [r4, 0x3]
+ cmp r0, r3
+ bne _08065864
+ bl sub_8065760
+ subs r1, r4, 0x4
+ ldr r1, [r1]
+ cmp r0, r1
+ bne _08065860
+ str r5, [r6]
+ adds r0, r4, 0x4
+ b _08065866
+ .align 2, 0
+_08065854: .4byte 0x02028dc8
+_08065858: .4byte 0x0202e8ac
+_0806585C: .4byte 0xffffc96c
+_08065860:
+ bl killram
+_08065864:
+ adds r0, r5, 0
+_08065866:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806580C
+
+ thumb_func_start s00_nop
+s00_nop: @ 806586C
+ movs r0, 0
+ bx lr
+ thumb_func_end s00_nop
+
+ thumb_func_start sub_8065870
+sub_8065870: @ 8065870
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_8065870
+
+ thumb_func_start s02_end
+s02_end: @ 8065874
+ push {lr}
+ bl script_stop
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end s02_end
+
+ thumb_func_start s24_execute_ASM_2
+s24_execute_ASM_2: @ 8065880
+ push {r4,lr}
+ adds r4, r0, 0
+ bl script_read_word
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl script_setup_asm_script
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end s24_execute_ASM_2
+
+ thumb_func_start sub_8065898
+sub_8065898: @ 8065898
+ push {lr}
+ bl script_read_halfword
+ lsls r0, 16
+ ldr r1, _080658B4
+ lsrs r0, 14
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080658B4: .4byte gSpecials
+ thumb_func_end sub_8065898
+
+ thumb_func_start sub_80658B8
+sub_80658B8: @ 80658B8
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetVarPointer
+ adds r6, r0, 0
+ ldr r4, _080658E8
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 14
+ adds r0, r4
+ ldr r0, [r0]
+ bl _call_via_r0
+ strh r0, [r6]
+ movs r0, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080658E8: .4byte gSpecials
+ thumb_func_end sub_80658B8
+
+ thumb_func_start sub_80658EC
+sub_80658EC: @ 80658EC
+ push {lr}
+ bl script_read_word
+ bl _call_via_r0
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80658EC
+
+ thumb_func_start sub_80658FC
+sub_80658FC: @ 80658FC
+ push {lr}
+ bl sub_80655F0
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80658FC
+
+ thumb_func_start s05_goto
+s05_goto: @ 8065908
+ push {r4,lr}
+ adds r4, r0, 0
+ bl script_read_word
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl script_jump
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end s05_goto
+
+ thumb_func_start s03_return
+s03_return: @ 8065920
+ push {lr}
+ bl script_return
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end s03_return
+
+ thumb_func_start s04_call
+s04_call: @ 806592C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl script_read_word
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl script_call
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end s04_call
+
+ thumb_func_start s06_if_jump
+s06_if_jump: @ 8065944
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, [r5, 0x8]
+ ldrb r4, [r0]
+ adds r0, 0x1
+ str r0, [r5, 0x8]
+ adds r0, r5, 0
+ bl script_read_word
+ adds r2, r0, 0
+ ldr r1, _0806597C
+ lsls r0, r4, 1
+ adds r0, r4
+ ldrb r3, [r5, 0x2]
+ adds r0, r3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08065972
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl script_jump
+_08065972:
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806597C: .4byte gUnknown_083762DC
+ thumb_func_end s06_if_jump
+
+ thumb_func_start s07_if_call
+s07_if_call: @ 8065980
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, [r5, 0x8]
+ ldrb r4, [r0]
+ adds r0, 0x1
+ str r0, [r5, 0x8]
+ adds r0, r5, 0
+ bl script_read_word
+ adds r2, r0, 0
+ ldr r1, _080659B8
+ lsls r0, r4, 1
+ adds r0, r4
+ ldrb r3, [r5, 0x2]
+ adds r0, r3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080659AE
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl script_call
+_080659AE:
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080659B8: .4byte gUnknown_083762DC
+ thumb_func_end s07_if_call
+
+ thumb_func_start sB8_set_virtual_address
+sB8_set_virtual_address: @ 80659BC
+ push {r4,lr}
+ ldr r4, [r0, 0x8]
+ subs r4, 0x1
+ bl script_read_word
+ ldr r1, _080659D4
+ subs r0, r4
+ str r0, [r1]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080659D4: .4byte 0x0202e8b0
+ thumb_func_end sB8_set_virtual_address
+
+ thumb_func_start sB9_virtual_jump
+sB9_virtual_jump: @ 80659D8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl script_read_word
+ adds r1, r0, 0
+ ldr r0, _080659F8
+ ldr r0, [r0]
+ subs r1, r0
+ adds r0, r4, 0
+ bl script_jump
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080659F8: .4byte 0x0202e8b0
+ thumb_func_end sB9_virtual_jump
+
+ thumb_func_start sBA_virtual_call
+sBA_virtual_call: @ 80659FC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl script_read_word
+ adds r1, r0, 0
+ ldr r0, _08065A1C
+ ldr r0, [r0]
+ subs r1, r0
+ adds r0, r4, 0
+ bl script_call
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08065A1C: .4byte 0x0202e8b0
+ thumb_func_end sBA_virtual_call
+
+ thumb_func_start sBB_virtual_if_jump
+sBB_virtual_if_jump: @ 8065A20
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, [r5, 0x8]
+ ldrb r4, [r0]
+ adds r0, 0x1
+ str r0, [r5, 0x8]
+ adds r0, r5, 0
+ bl script_read_word
+ ldr r1, _08065A5C
+ ldr r1, [r1]
+ subs r2, r0, r1
+ ldr r1, _08065A60
+ lsls r0, r4, 1
+ adds r0, r4
+ ldrb r3, [r5, 0x2]
+ adds r0, r3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08065A52
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl script_jump
+_08065A52:
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08065A5C: .4byte 0x0202e8b0
+_08065A60: .4byte gUnknown_083762DC
+ thumb_func_end sBB_virtual_if_jump
+
+ thumb_func_start sBC_virtual_if_call
+sBC_virtual_if_call: @ 8065A64
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, [r5, 0x8]
+ ldrb r4, [r0]
+ adds r0, 0x1
+ str r0, [r5, 0x8]
+ adds r0, r5, 0
+ bl script_read_word
+ ldr r1, _08065AA0
+ ldr r1, [r1]
+ subs r2, r0, r1
+ ldr r1, _08065AA4
+ lsls r0, r4, 1
+ adds r0, r4
+ ldrb r3, [r5, 0x2]
+ adds r0, r3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08065A96
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl script_call
+_08065A96:
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08065AA0: .4byte 0x0202e8b0
+_08065AA4: .4byte gUnknown_083762DC
+ thumb_func_end sBC_virtual_if_call
+
+ thumb_func_start s08_jumpstd
+s08_jumpstd: @ 8065AA8
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, [r2, 0x8]
+ ldrb r1, [r0]
+ adds r0, 0x1
+ str r0, [r2, 0x8]
+ lsls r1, 2
+ ldr r0, _08065AD0
+ adds r1, r0
+ ldr r0, _08065AD4
+ cmp r1, r0
+ bcs _08065AC8
+ ldr r1, [r1]
+ adds r0, r2, 0
+ bl script_jump
+_08065AC8:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08065AD0: .4byte gStdScripts
+_08065AD4: .4byte gStdScripts_End
+ thumb_func_end s08_jumpstd
+
+ thumb_func_start s09_callstd
+s09_callstd: @ 8065AD8
+ push {lr}
+ adds r2, r0, 0
+ ldr r0, [r2, 0x8]
+ ldrb r1, [r0]
+ adds r0, 0x1
+ str r0, [r2, 0x8]
+ lsls r1, 2
+ ldr r0, _08065B00
+ adds r1, r0
+ ldr r0, _08065B04
+ cmp r1, r0
+ bcs _08065AF8
+ ldr r1, [r1]
+ adds r0, r2, 0
+ bl script_call
+_08065AF8:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08065B00: .4byte gStdScripts
+_08065B04: .4byte gStdScripts_End
+ thumb_func_end s09_callstd
+
+ thumb_func_start s0A_jumpstd_if
+s0A_jumpstd_if: @ 8065B08
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, [r3, 0x8]
+ ldrb r2, [r0]
+ adds r0, 0x1
+ str r0, [r3, 0x8]
+ ldrb r4, [r0]
+ adds r0, 0x1
+ str r0, [r3, 0x8]
+ ldr r1, _08065B48
+ lsls r0, r2, 1
+ adds r0, r2
+ ldrb r2, [r3, 0x2]
+ adds r0, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08065B40
+ lsls r0, r4, 2
+ ldr r1, _08065B4C
+ adds r1, r0, r1
+ ldr r0, _08065B50
+ cmp r1, r0
+ bcs _08065B40
+ ldr r1, [r1]
+ adds r0, r3, 0
+ bl script_jump
+_08065B40:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08065B48: .4byte gUnknown_083762DC
+_08065B4C: .4byte gStdScripts
+_08065B50: .4byte gStdScripts_End
+ thumb_func_end s0A_jumpstd_if
+
+ thumb_func_start s0B_callstd_if
+s0B_callstd_if: @ 8065B54
+ push {r4,lr}
+ adds r3, r0, 0
+ ldr r0, [r3, 0x8]
+ ldrb r2, [r0]
+ adds r0, 0x1
+ str r0, [r3, 0x8]
+ ldrb r4, [r0]
+ adds r0, 0x1
+ str r0, [r3, 0x8]
+ ldr r1, _08065B94
+ lsls r0, r2, 1
+ adds r0, r2
+ ldrb r2, [r3, 0x2]
+ adds r0, r2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08065B8C
+ lsls r0, r4, 2
+ ldr r1, _08065B98
+ adds r1, r0, r1
+ ldr r0, _08065B9C
+ cmp r1, r0
+ bcs _08065B8C
+ ldr r1, [r1]
+ adds r0, r3, 0
+ bl script_call
+_08065B8C:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08065B94: .4byte gUnknown_083762DC
+_08065B98: .4byte gStdScripts
+_08065B9C: .4byte gStdScripts_End
+ thumb_func_end s0B_callstd_if
+
+ thumb_func_start s0C_restore_execution_after_sCF
+s0C_restore_execution_after_sCF: @ 8065BA0
+ push {lr}
+ ldr r1, _08065BB0
+ ldr r1, [r1]
+ bl script_jump
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08065BB0: .4byte 0x0202e8ac
+ thumb_func_end s0C_restore_execution_after_sCF
+
+ thumb_func_start s0D_endscript_killram
+s0D_endscript_killram: @ 8065BB4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl killram
+ adds r0, r4, 0
+ bl script_stop
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end s0D_endscript_killram
+
+ thumb_func_start s0E_set_byte
+s0E_set_byte: @ 8065BCC
+ push {lr}
+ ldr r1, [r0, 0x8]
+ ldrb r2, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ adds r0, r2, 0
+ bl sub_8126160
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end s0E_set_byte
+
+ thumb_func_start s0F_u32_var_to_const
+s0F_u32_var_to_const: @ 8065BE4
+ 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 script_read_word
+ lsls r5, 2
+ adds r4, 0x64
+ adds r4, r5
+ str r0, [r4]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end s0F_u32_var_to_const
+
+ thumb_func_start s12_u32_var_to_ptr
+s12_u32_var_to_ptr: @ 8065C08
+ 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 script_read_word
+ lsls r5, 2
+ adds r4, 0x64
+ adds r4, r5
+ ldrb r0, [r0]
+ str r0, [r4]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end s12_u32_var_to_ptr
+
+ thumb_func_start s11_u8_ptr_to_const
+s11_u8_ptr_to_const: @ 8065C2C
+ push {r4,lr}
+ ldr r1, [r0, 0x8]
+ ldrb r4, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ bl script_read_word
+ strb r4, [r0]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end s11_u8_ptr_to_const
+
+ thumb_func_start sub_8065C44
+sub_8065C44: @ 8065C44
+ ldr r1, [r0, 0x8]
+ ldrb r3, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ lsls r3, 2
+ adds r2, r0, 0
+ adds r2, 0x64
+ adds r2, r3
+ ldrb r3, [r1]
+ str r3, [r2]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ movs r0, 0
+ bx lr
+ thumb_func_end sub_8065C44
+
+ thumb_func_start s13_u8_var_to_ptr
+s13_u8_var_to_ptr: @ 8065C60
+ 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 script_read_word
+ lsls r5, 2
+ adds r4, 0x64
+ adds r4, r5
+ ldr r1, [r4]
+ strb r1, [r0]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end s13_u8_var_to_ptr
+
+ thumb_func_start s14_u32_var_to_var
+s14_u32_var_to_var: @ 8065C84
+ ldr r1, [r0, 0x8]
+ ldrb r3, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ ldrb r2, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ lsls r3, 2
+ adds r0, 0x64
+ adds r3, r0, r3
+ lsls r2, 2
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [r3]
+ movs r0, 0
+ bx lr
+ thumb_func_end s14_u32_var_to_var
+
+ thumb_func_start s15_u8_ptr_to_ptr
+s15_u8_ptr_to_ptr: @ 8065CA4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl script_read_word
+ adds r5, r0, 0
+ adds r0, r4, 0
+ bl script_read_word
+ ldrb r0, [r0]
+ strb r0, [r5]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end s15_u8_ptr_to_ptr
+
+ thumb_func_start s16_u16_gvar_to_const
+s16_u16_gvar_to_const: @ 8065CC0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetVarPointer
+ adds r4, r0, 0
+ adds r0, r5, 0
+ bl script_read_halfword
+ strh r0, [r4]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end s16_u16_gvar_to_const
+
+ thumb_func_start s19_u16_gvar_gvar
+s19_u16_gvar_gvar: @ 8065CE4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetVarPointer
+ adds r5, r0, 0
+ adds r0, r4, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetVarPointer
+ ldrh r0, [r0]
+ strh r0, [r5]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end s19_u16_gvar_gvar
+
+ thumb_func_start s1A_u16_gvar_gvar
+s1A_u16_gvar_gvar: @ 8065D10
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetVarPointer
+ adds r5, r0, 0
+ adds r0, r4, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ strh r0, [r5]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end s1A_u16_gvar_gvar
+
+ thumb_func_start compare_012
+compare_012: @ 8065D3C
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r1, 16
+ cmp r0, r1
+ bcs _08065D4E
+ movs r0, 0
+ b _08065D58
+_08065D4E:
+ cmp r0, r1
+ beq _08065D56
+ movs r0, 0x2
+ b _08065D58
+_08065D56:
+ movs r0, 0x1
+_08065D58:
+ pop {r1}
+ bx r1
+ thumb_func_end compare_012
+
+ thumb_func_start s1B_cmp_u8_var_var
+s1B_cmp_u8_var_var: @ 8065D5C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r2, [r4, 0x8]
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r3, r4, 0
+ adds r3, 0x64
+ adds r0, r3, r0
+ ldrb r0, [r0]
+ adds r2, 0x1
+ str r2, [r4, 0x8]
+ ldrb r1, [r2]
+ lsls r1, 2
+ adds r3, r1
+ ldrb r1, [r3]
+ adds r2, 0x1
+ str r2, [r4, 0x8]
+ bl compare_012
+ strb r0, [r4, 0x2]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end s1B_cmp_u8_var_var
+
+ thumb_func_start s1C_cmp_u8_var_const
+s1C_cmp_u8_var_const: @ 8065D8C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r2, [r4, 0x8]
+ ldrb r1, [r2]
+ lsls r1, 2
+ adds r0, 0x64
+ adds r0, r1
+ ldrb r0, [r0]
+ adds r2, 0x1
+ str r2, [r4, 0x8]
+ ldrb r1, [r2]
+ adds r2, 0x1
+ str r2, [r4, 0x8]
+ bl compare_012
+ strb r0, [r4, 0x2]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end s1C_cmp_u8_var_const
+
+ thumb_func_start s1D_cmp_u8_var_ptr
+s1D_cmp_u8_var_ptr: @ 8065DB4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ ldr r2, [r4, 0x8]
+ ldrb r1, [r2]
+ lsls r1, 2
+ adds r0, 0x64
+ adds r0, r1
+ ldrb r5, [r0]
+ adds r2, 0x1
+ str r2, [r4, 0x8]
+ adds r0, r4, 0
+ bl script_read_word
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl compare_012
+ strb r0, [r4, 0x2]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end s1D_cmp_u8_var_ptr
+
+ thumb_func_start s1E_cmp_u8_ptr_var
+s1E_cmp_u8_ptr_var: @ 8065DE0
+ push {r4,lr}
+ adds r4, r0, 0
+ bl script_read_word
+ ldrb r0, [r0]
+ ldr r3, [r4, 0x8]
+ ldrb r2, [r3]
+ lsls r2, 2
+ adds r1, r4, 0
+ adds r1, 0x64
+ adds r1, r2
+ ldrb r1, [r1]
+ adds r3, 0x1
+ str r3, [r4, 0x8]
+ bl compare_012
+ strb r0, [r4, 0x2]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end s1E_cmp_u8_ptr_var
+
+ thumb_func_start s1F_cmp_u8_ptr_const
+s1F_cmp_u8_ptr_const: @ 8065E0C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl script_read_word
+ ldrb r0, [r0]
+ ldr r2, [r4, 0x8]
+ ldrb r1, [r2]
+ adds r2, 0x1
+ str r2, [r4, 0x8]
+ bl compare_012
+ strb r0, [r4, 0x2]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end s1F_cmp_u8_ptr_const
+
+ thumb_func_start s20_cmp_u8_ptr_ptr
+s20_cmp_u8_ptr_ptr: @ 8065E2C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl script_read_word
+ ldrb r5, [r0]
+ adds r0, r4, 0
+ bl script_read_word
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl compare_012
+ strb r0, [r4, 0x2]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end s20_cmp_u8_ptr_ptr
+
+ thumb_func_start s21_cmp_u16_gvar_const
+s21_cmp_u16_gvar_const: @ 8065E50
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetVarPointer
+ ldrh r5, [r0]
+ adds r0, r4, 0
+ bl script_read_halfword
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r5, 0
+ bl compare_012
+ strb r0, [r4, 0x2]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end s21_cmp_u16_gvar_const
+
+ thumb_func_start s22_cmp_u16_gvar_gvar
+s22_cmp_u16_gvar_gvar: @ 8065E80
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetVarPointer
+ adds r5, r0, 0
+ adds r0, r4, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetVarPointer
+ ldrh r2, [r5]
+ ldrh r1, [r0]
+ adds r0, r2, 0
+ bl compare_012
+ strb r0, [r4, 0x2]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end s22_cmp_u16_gvar_gvar
+
+ thumb_func_start s17_u16_gvar_add_const
+s17_u16_gvar_add_const: @ 8065EB4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetVarPointer
+ adds r4, r0, 0
+ adds r0, r5, 0
+ bl script_read_halfword
+ ldrh r1, [r4]
+ adds r0, r1
+ strh r0, [r4]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end s17_u16_gvar_add_const
+
+ thumb_func_start sub_8065EDC
+sub_8065EDC: @ 8065EDC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetVarPointer
+ adds r5, r0, 0
+ adds r0, r4, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ ldrh r1, [r5]
+ subs r1, r0
+ strh r1, [r5]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8065EDC
+
+ thumb_func_start s8F_get_random_val
+s8F_get_random_val: @ 8065F0C
+ push {r4,r5,lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r5, _08065F3C
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r4, 0
+ bl __umodsi3
+ strh r0, [r5]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08065F3C: .4byte 0x0202e8dc
+ thumb_func_end s8F_get_random_val
+
+ thumb_func_start sub_8065F40
+sub_8065F40: @ 8065F40
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r1, r0, 0
+ ldr r5, _08065F80
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_80A9424
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08065F80: .4byte 0x0202e8dc
+ thumb_func_end sub_8065F40
+
+ thumb_func_start sub_8065F84
+sub_8065F84: @ 8065F84
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r1, r0, 0
+ ldr r5, _08065FC4
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_80A9538
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08065FC4: .4byte 0x0202e8dc
+ thumb_func_end sub_8065F84
+
+ thumb_func_start sub_8065FC8
+sub_8065FC8: @ 8065FC8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r1, r0, 0
+ ldr r5, _08066008
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_80A9344
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08066008: .4byte 0x0202e8dc
+ thumb_func_end sub_8065FC8
+
+ thumb_func_start sub_806600C
+sub_806600C: @ 806600C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r1, r0, 0
+ ldr r5, _0806604C
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_80A92D4
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806604C: .4byte 0x0202e8dc
+ thumb_func_end sub_806600C
+
+ thumb_func_start s48_get_item_type
+s48_get_item_type: @ 8066050
+ push {r4,lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _08066078
+ bl sub_80A9670
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08066078: .4byte 0x0202e8dc
+ thumb_func_end s48_get_item_type
+
+ thumb_func_start sub_806607C
+sub_806607C: @ 806607C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r5, _080660BC
+ adds r0, r4, 0
+ bl sub_80A9760
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080660BC: .4byte 0x0202e8dc
+ thumb_func_end sub_806607C
+
+ thumb_func_start sub_80660C0
+sub_80660C0: @ 80660C0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r5, _08066100
+ adds r0, r4, 0
+ bl sub_80A9718
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08066100: .4byte 0x0202e8dc
+ thumb_func_end sub_80660C0
+
+ thumb_func_start sub_8066104
+sub_8066104: @ 8066104
+ push {r4,lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ ldr r4, _0806612C
+ lsls r0, 24
+ lsrs r0, 24
+ bl IsThereStorageSpaceForDecoration
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806612C: .4byte 0x0202e8dc
+ thumb_func_end sub_8066104
+
+ thumb_func_start sub_8066130
+sub_8066130: @ 8066130
+ push {r4,lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ ldr r4, _08066158
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_81340A8
+ lsls r0, 24
+ asrs r0, 24
+ strh r0, [r4]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08066158: .4byte 0x0202e8dc
+ thumb_func_end sub_8066130
+
+ thumb_func_start sub_806615C
+sub_806615C: @ 806615C
+ push {r4,lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ ldr r4, _08066184
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8134074
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08066184: .4byte 0x0202e8dc
+ thumb_func_end sub_806615C
+
+ thumb_func_start sub_8066188
+sub_8066188: @ 8066188
+ push {r4,lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ ldr r4, _080661B0
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8133FE4
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080661B0: .4byte 0x0202e8dc
+ thumb_func_end sub_8066188
+
+ thumb_func_start s29_flag_set
+s29_flag_set: @ 80661B4
+ push {lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagSet
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end s29_flag_set
+
+ thumb_func_start s2A_flag_clear
+s2A_flag_clear: @ 80661C8
+ push {lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagReset
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end s2A_flag_clear
+
+ thumb_func_start s2B_flag_check
+s2B_flag_check: @ 80661DC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl FlagGet
+ strb r0, [r4, 0x2]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end s2B_flag_check
+
+ thumb_func_start sC3_unknown
+sC3_unknown: @ 80661F8
+ push {lr}
+ ldr r1, [r0, 0x8]
+ ldrb r2, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ adds r0, r2, 0
+ bl sav12_xor_increment
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sC3_unknown
+
+ thumb_func_start s9A_unknown
+s9A_unknown: @ 8066210
+ push {lr}
+ ldr r1, [r0, 0x8]
+ ldrb r2, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ adds r0, r2, 0
+ bl sub_8081594
+ bl sub_80655F0
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end s9A_unknown
+
+ thumb_func_start sub_806622C
+sub_806622C: @ 806622C
+ push {lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_8053CE4
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806622C
+
+ thumb_func_start sub_8066248
+sub_8066248: @ 8066248
+ push {lr}
+ ldr r0, _0806625C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08066260
+ movs r0, 0
+ b _08066262
+ .align 2, 0
+_0806625C: .4byte 0x0202f388
+_08066260:
+ movs r0, 0x1
+_08066262:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8066248
+
+ thumb_func_start s97_screen_special_effect
+s97_screen_special_effect: @ 8066268
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r1, [r4, 0x8]
+ ldrb r0, [r1]
+ adds r1, 0x1
+ str r1, [r4, 0x8]
+ movs r1, 0
+ bl fade_screen
+ ldr r1, _0806628C
+ adds r0, r4, 0
+ bl script_setup_asm_script
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806628C: .4byte sub_8066248
+ thumb_func_end s97_screen_special_effect
+
+ thumb_func_start sub_8066290
+sub_8066290: @ 8066290
+ 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 fade_screen
+ ldr r1, _080662B8
+ adds r0, r4, 0
+ bl script_setup_asm_script
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080662B8: .4byte sub_8066248
+ thumb_func_end sub_8066290
+
+ thumb_func_start s28_pause_asm
+s28_pause_asm: @ 80662BC
+ push {lr}
+ ldr r1, _080662D0
+ ldrh r0, [r1]
+ subs r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ cmp r0, 0
+ beq _080662D4
+ movs r0, 0
+ b _080662D6
+ .align 2, 0
+_080662D0: .4byte 0x0202e8b4
+_080662D4:
+ movs r0, 0x1
+_080662D6:
+ pop {r1}
+ bx r1
+ thumb_func_end s28_pause_asm
+
+ thumb_func_start s28_pause
+s28_pause: @ 80662DC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl script_read_halfword
+ ldr r1, _080662F8
+ strh r0, [r1]
+ ldr r1, _080662FC
+ adds r0, r4, 0
+ bl script_setup_asm_script
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080662F8: .4byte 0x0202e8b4
+_080662FC: .4byte s28_pause_asm
+ thumb_func_end s28_pause
+
+ thumb_func_start s2C_unknown
+s2C_unknown: @ 8066300
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl RtcInitLocalTimeOffset
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end s2C_unknown
+
+ thumb_func_start s2D_unknown
+s2D_unknown: @ 8066338
+ push {lr}
+ bl InTrainerHill
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end s2D_unknown
+
+ thumb_func_start s2E_unknown
+s2E_unknown: @ 8066344
+ push {lr}
+ bl RtcCalcLocalTime
+ ldr r2, _0806636C
+ ldr r1, _08066370
+ movs r0, 0x2
+ ldrsb r0, [r1, r0]
+ strh r0, [r2]
+ ldr r2, _08066374
+ movs r0, 0x3
+ ldrsb r0, [r1, r0]
+ strh r0, [r2]
+ ldr r2, _08066378
+ movs r0, 0x4
+ ldrsb r0, [r1, r0]
+ strh r0, [r2]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806636C: .4byte 0x0202e8c4
+_08066370: .4byte 0x03004038
+_08066374: .4byte 0x0202e8c6
+_08066378: .4byte 0x0202e8c8
+ thumb_func_end s2E_unknown
+
+ thumb_func_start sA4_set_weather_data
+sA4_set_weather_data: @ 806637C
+ push {lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_80806B4
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sA4_set_weather_data
+
+ thumb_func_start sA3_set_standard_weather_data
+sA3_set_standard_weather_data: @ 8066398
+ push {lr}
+ bl sub_80806E4
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sA3_set_standard_weather_data
+
+ thumb_func_start sub_80663A4
+sub_80663A4: @ 80663A4
+ push {lr}
+ bl sub_808073C
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80663A4
+
+ thumb_func_start sA6_activate_per_step_callback_eg_ash
+sA6_activate_per_step_callback_eg_ash: @ 80663B0
+ push {lr}
+ ldr r1, [r0, 0x8]
+ ldrb r2, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ adds r0, r2, 0
+ bl activate_per_step_callback
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sA6_activate_per_step_callback_eg_ash
+
+ thumb_func_start sub_80663C8
+sub_80663C8: @ 80663C8
+ push {lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_8053D14
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80663C8
+
+ thumb_func_start s39_warp_sfx
+s39_warp_sfx: @ 80663E4
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldr r0, [r5, 0x8]
+ ldrb r1, [r0]
+ mov r9, r1
+ adds r0, 0x1
+ str r0, [r5, 0x8]
+ ldrb r1, [r0]
+ mov r8, r1
+ adds r1, r0, 0x1
+ str r1, [r5, 0x8]
+ ldrb r6, [r0, 0x1]
+ adds r1, 0x1
+ str r1, [r5, 0x8]
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ mov r1, r9
+ lsls r1, 24
+ asrs r1, 24
+ mov r9, r1
+ mov r1, r8
+ lsls r1, 24
+ asrs r1, 24
+ mov r8, r1
+ lsls r6, 24
+ asrs r6, 24
+ lsls r4, 24
+ asrs r4, 24
+ lsls r0, 24
+ asrs r0, 24
+ str r0, [sp]
+ mov r0, r9
+ adds r2, r6, 0
+ adds r3, r4, 0
+ bl warp1_set
+ bl sub_8080E88
+ bl player_avatar_init_params_reset
+ movs r0, 0x1
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end s39_warp_sfx
+
+ thumb_func_start s3A_warp_new_music
+s3A_warp_new_music: @ 806646C
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldr r0, [r5, 0x8]
+ ldrb r1, [r0]
+ mov r9, r1
+ adds r0, 0x1
+ str r0, [r5, 0x8]
+ ldrb r1, [r0]
+ mov r8, r1
+ adds r1, r0, 0x1
+ str r1, [r5, 0x8]
+ ldrb r6, [r0, 0x1]
+ adds r1, 0x1
+ str r1, [r5, 0x8]
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ mov r1, r9
+ lsls r1, 24
+ asrs r1, 24
+ mov r9, r1
+ mov r1, r8
+ lsls r1, 24
+ asrs r1, 24
+ mov r8, r1
+ lsls r6, 24
+ asrs r6, 24
+ lsls r4, 24
+ asrs r4, 24
+ lsls r0, 24
+ asrs r0, 24
+ str r0, [sp]
+ mov r0, r9
+ adds r2, r6, 0
+ adds r3, r4, 0
+ bl warp1_set
+ bl sp13E_warp_to_last_warp
+ bl player_avatar_init_params_reset
+ movs r0, 0x1
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end s3A_warp_new_music
+
+ thumb_func_start s3B_warp_keep_music
+s3B_warp_keep_music: @ 80664F4
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldr r0, [r5, 0x8]
+ ldrb r1, [r0]
+ mov r9, r1
+ adds r0, 0x1
+ str r0, [r5, 0x8]
+ ldrb r1, [r0]
+ mov r8, r1
+ adds r1, r0, 0x1
+ str r1, [r5, 0x8]
+ ldrb r6, [r0, 0x1]
+ adds r1, 0x1
+ str r1, [r5, 0x8]
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ mov r1, r9
+ lsls r1, 24
+ asrs r1, 24
+ mov r9, r1
+ mov r1, r8
+ lsls r1, 24
+ asrs r1, 24
+ mov r8, r1
+ lsls r6, 24
+ asrs r6, 24
+ lsls r4, 24
+ asrs r4, 24
+ lsls r0, 24
+ asrs r0, 24
+ str r0, [sp]
+ mov r0, r9
+ adds r2, r6, 0
+ adds r3, r4, 0
+ bl warp1_set
+ bl sub_8080EF0
+ bl player_avatar_init_params_reset
+ movs r0, 0x1
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end s3B_warp_keep_music
+
+ thumb_func_start sub_806657C
+sub_806657C: @ 806657C
+ push {r4-r6,lr}
+ sub sp, 0x8
+ ldr r1, [r0, 0x8]
+ ldrb r6, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ ldrb r5, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ mov r4, sp
+ adds r4, 0x6
+ add r0, sp, 0x4
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ cmp r6, 0xFF
+ bne _080665BA
+ cmp r5, 0xFF
+ bne _080665BA
+ add r0, sp, 0x4
+ ldrh r0, [r0]
+ subs r0, 0x7
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r1, [r4]
+ subs r1, 0x7
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_8053720
+ b _080665DE
+_080665BA:
+ lsls r0, r6, 24
+ asrs r0, 24
+ lsls r1, r5, 24
+ asrs r1, 24
+ movs r2, 0x1
+ negs r2, r2
+ add r3, sp, 0x4
+ ldrb r3, [r3]
+ subs r3, 0x7
+ lsls r3, 24
+ asrs r3, 24
+ ldrb r4, [r4]
+ subs r4, 0x7
+ lsls r4, 24
+ asrs r4, 24
+ str r4, [sp]
+ bl warp1_set
+_080665DE:
+ bl sp13F_fall_to_last_warp
+ bl player_avatar_init_params_reset
+ movs r0, 0x1
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806657C
+
+ thumb_func_start s3D_warp_v4
+s3D_warp_v4: @ 80665F0
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldr r0, [r5, 0x8]
+ ldrb r1, [r0]
+ mov r9, r1
+ adds r0, 0x1
+ str r0, [r5, 0x8]
+ ldrb r1, [r0]
+ mov r8, r1
+ adds r1, r0, 0x1
+ str r1, [r5, 0x8]
+ ldrb r6, [r0, 0x1]
+ adds r1, 0x1
+ str r1, [r5, 0x8]
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ mov r1, r9
+ lsls r1, 24
+ asrs r1, 24
+ mov r9, r1
+ mov r1, r8
+ lsls r1, 24
+ asrs r1, 24
+ mov r8, r1
+ lsls r6, 24
+ asrs r6, 24
+ lsls r4, 24
+ asrs r4, 24
+ lsls r0, 24
+ asrs r0, 24
+ str r0, [sp]
+ mov r0, r9
+ adds r2, r6, 0
+ adds r3, r4, 0
+ bl warp1_set
+ bl sub_8080F68
+ bl player_avatar_init_params_reset
+ movs r0, 0x1
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end s3D_warp_v4
+
+ thumb_func_start s3E_set_new_map
+s3E_set_new_map: @ 8066678
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldr r0, [r5, 0x8]
+ ldrb r1, [r0]
+ mov r9, r1
+ adds r0, 0x1
+ str r0, [r5, 0x8]
+ ldrb r1, [r0]
+ mov r8, r1
+ adds r1, r0, 0x1
+ str r1, [r5, 0x8]
+ ldrb r6, [r0, 0x1]
+ adds r1, 0x1
+ str r1, [r5, 0x8]
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ mov r1, r9
+ lsls r1, 24
+ asrs r1, 24
+ mov r9, r1
+ mov r1, r8
+ lsls r1, 24
+ asrs r1, 24
+ mov r8, r1
+ lsls r6, 24
+ asrs r6, 24
+ lsls r4, 24
+ asrs r4, 24
+ lsls r0, 24
+ asrs r0, 24
+ str r0, [sp]
+ mov r0, r9
+ adds r2, r6, 0
+ adds r3, r4, 0
+ bl warp1_set
+ 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 s3E_set_new_map
+
+ thumb_func_start s3F_set_new_map_DMA
+s3F_set_new_map_DMA: @ 80666F8
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x8
+ adds r5, r0, 0
+ ldr r0, [r5, 0x8]
+ ldrb r1, [r0]
+ mov r9, r1
+ adds r0, 0x1
+ str r0, [r5, 0x8]
+ ldrb r1, [r0]
+ mov r8, r1
+ adds r1, r0, 0x1
+ str r1, [r5, 0x8]
+ ldrb r6, [r0, 0x1]
+ adds r1, 0x1
+ str r1, [r5, 0x8]
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ mov r1, r9
+ lsls r1, 24
+ asrs r1, 24
+ mov r9, r1
+ mov r1, r8
+ lsls r1, 24
+ asrs r1, 24
+ mov r8, r1
+ lsls r6, 24
+ asrs r6, 24
+ lsls r4, 24
+ asrs r4, 24
+ str r4, [sp]
+ lsls r0, 24
+ asrs r0, 24
+ str r0, [sp, 0x4]
+ movs r0, 0
+ mov r1, r9
+ mov r2, r8
+ adds r3, r6, 0
+ bl saved_warp2_set_2
+ movs r0, 0
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end s3F_set_new_map_DMA
+
+ thumb_func_start sub_806677C
+sub_806677C: @ 806677C
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldr r0, [r5, 0x8]
+ ldrb r1, [r0]
+ mov r9, r1
+ adds r0, 0x1
+ str r0, [r5, 0x8]
+ ldrb r1, [r0]
+ mov r8, r1
+ adds r1, r0, 0x1
+ str r1, [r5, 0x8]
+ ldrb r6, [r0, 0x1]
+ adds r1, 0x1
+ str r1, [r5, 0x8]
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ mov r1, r9
+ lsls r1, 24
+ asrs r1, 24
+ mov r9, r1
+ mov r1, r8
+ lsls r1, 24
+ asrs r1, 24
+ mov r8, r1
+ lsls r6, 24
+ asrs r6, 24
+ lsls r4, 24
+ asrs r4, 24
+ lsls r0, 24
+ asrs r0, 24
+ str r0, [sp]
+ mov r0, r9
+ adds r2, r6, 0
+ adds r3, r4, 0
+ bl sub_8053690
+ 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_806677C
+
+ thumb_func_start sub_80667FC
+sub_80667FC: @ 80667FC
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldr r0, [r5, 0x8]
+ ldrb r1, [r0]
+ mov r9, r1
+ adds r0, 0x1
+ str r0, [r5, 0x8]
+ ldrb r1, [r0]
+ mov r8, r1
+ adds r1, r0, 0x1
+ str r1, [r5, 0x8]
+ ldrb r6, [r0, 0x1]
+ adds r1, 0x1
+ str r1, [r5, 0x8]
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ mov r1, r9
+ lsls r1, 24
+ asrs r1, 24
+ mov r9, r1
+ mov r1, r8
+ lsls r1, 24
+ asrs r1, 24
+ mov r8, r1
+ lsls r6, 24
+ asrs r6, 24
+ lsls r4, 24
+ asrs r4, 24
+ lsls r0, 24
+ asrs r0, 24
+ str r0, [sp]
+ mov r0, r9
+ adds r2, r6, 0
+ adds r3, r4, 0
+ bl sub_80536E4
+ 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_80667FC
+
+ thumb_func_start sC4_unknown
+sC4_unknown: @ 806687C
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ adds r5, r0, 0
+ ldr r0, [r5, 0x8]
+ ldrb r1, [r0]
+ mov r9, r1
+ adds r0, 0x1
+ str r0, [r5, 0x8]
+ ldrb r1, [r0]
+ mov r8, r1
+ adds r1, r0, 0x1
+ str r1, [r5, 0x8]
+ ldrb r6, [r0, 0x1]
+ adds r1, 0x1
+ str r1, [r5, 0x8]
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ mov r1, r9
+ lsls r1, 24
+ asrs r1, 24
+ mov r9, r1
+ mov r1, r8
+ lsls r1, 24
+ asrs r1, 24
+ mov r8, r1
+ lsls r6, 24
+ asrs r6, 24
+ lsls r4, 24
+ asrs r4, 24
+ lsls r0, 24
+ asrs r0, 24
+ str r0, [sp]
+ mov r0, r9
+ adds r2, r6, 0
+ adds r3, r4, 0
+ bl sub_805363C
+ 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 sC4_unknown
+
+ thumb_func_start sub_80668FC
+sub_80668FC: @ 80668FC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetVarPointer
+ adds r5, r0, 0
+ adds r0, r4, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetVarPointer
+ ldr r2, _08066930
+ ldrh r1, [r2]
+ strh r1, [r5]
+ ldrh r1, [r2, 0x2]
+ strh r1, [r0]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08066930: .4byte 0x02025734
+ thumb_func_end sub_80668FC
+
+ thumb_func_start s43_get_player_party_count
+s43_get_player_party_count: @ 8066934
+ push {r4,lr}
+ ldr r4, _0806694C
+ bl calc_player_party_count
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806694C: .4byte 0x0202e8dc
+ thumb_func_end s43_get_player_party_count
+
+ thumb_func_start s2F_music_play
+s2F_music_play: @ 8066950
+ push {lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl audio_play
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end s2F_music_play
+
+ thumb_func_start s30_music_check_asm
+s30_music_check_asm: @ 8066964
+ push {lr}
+ bl mplay_has_finished_maybe
+ lsls r0, 24
+ cmp r0, 0
+ beq _08066974
+ movs r0, 0
+ b _08066976
+_08066974:
+ movs r0, 0x1
+_08066976:
+ pop {r1}
+ bx r1
+ thumb_func_end s30_music_check_asm
+
+ thumb_func_start sub_806697C
+sub_806697C: @ 806697C
+ push {lr}
+ ldr r1, _0806698C
+ bl script_setup_asm_script
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806698C: .4byte s30_music_check_asm
+ thumb_func_end sub_806697C
+
+ thumb_func_start s31_fanfare_play
+s31_fanfare_play: @ 8066990
+ push {lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl fanfare_play
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end s31_fanfare_play
+
+ thumb_func_start s32_fanfare_wait_asm
+s32_fanfare_wait_asm: @ 80669A4
+ push {lr}
+ bl task_is_not_running_overworld_fanfare
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end s32_fanfare_wait_asm
+
+ thumb_func_start sub_80669B4
+sub_80669B4: @ 80669B4
+ push {lr}
+ ldr r1, _080669C4
+ bl script_setup_asm_script
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080669C4: .4byte s32_fanfare_wait_asm
+ thumb_func_end sub_80669B4
+
+ thumb_func_start s33_play_music
+s33_play_music: @ 80669C8
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r2, r0, 16
+ adds r5, r2, 0
+ ldr r0, [r4, 0x8]
+ ldrb r1, [r0]
+ adds r0, 0x1
+ str r0, [r4, 0x8]
+ cmp r1, 0x1
+ bne _080669E8
+ adds r0, r2, 0
+ bl sav1_set_battle_music_maybe
+_080669E8:
+ adds r0, r5, 0
+ bl current_map_music_set
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end s33_play_music
+
+ thumb_func_start s34_unknown
+s34_unknown: @ 80669F8
+ push {lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl sav1_set_battle_music_maybe
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end s34_unknown
+
+ thumb_func_start s35_fade_to_default
+s35_fade_to_default: @ 8066A0C
+ push {lr}
+ bl sub_8053F84
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end s35_fade_to_default
+
+ thumb_func_start s36_fade_to_music
+s36_fade_to_music: @ 8066A18
+ push {lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_8053FB0
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end s36_fade_to_music
+
+ thumb_func_start s37_fadeout
+s37_fadeout: @ 8066A2C
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, [r4, 0x8]
+ ldrb r1, [r0]
+ adds r0, 0x1
+ str r0, [r4, 0x8]
+ cmp r1, 0
+ beq _08066A46
+ lsls r0, r1, 26
+ lsrs r0, 24
+ bl sub_8074FB8
+ b _08066A4C
+_08066A46:
+ movs r0, 0x4
+ bl sub_8074FB8
+_08066A4C:
+ ldr r1, _08066A5C
+ adds r0, r4, 0
+ bl script_setup_asm_script
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08066A5C: .4byte sub_8074FD0
+ thumb_func_end s37_fadeout
+
+ thumb_func_start s38_fadein
+s38_fadein: @ 8066A60
+ push {lr}
+ ldr r1, [r0, 0x8]
+ ldrb r2, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ cmp r2, 0
+ beq _08066A78
+ lsls r0, r2, 26
+ lsrs r0, 24
+ bl sub_8074FF8
+ b _08066A7E
+_08066A78:
+ movs r0, 0x4
+ bl sub_8074FF8
+_08066A7E:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end s38_fadein
+
+ thumb_func_start s4F_execute_movement
+s4F_execute_movement: @ 8066A84
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl script_read_word
+ adds r3, r0, 0
+ lsls r0, r4, 24
+ lsrs r0, 24
+ ldr r2, _08066ABC
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ bl exec_movement
+ ldr r0, _08066AC0
+ strh r4, [r0]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08066ABC: .4byte 0x02025734
+_08066AC0: .4byte 0x0202e8b6
+ thumb_func_end s4F_execute_movement
+
+ thumb_func_start s50_execute_movement_remote
+s50_execute_movement_remote: @ 8066AC4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl script_read_word
+ adds r3, r0, 0
+ ldr r0, [r5, 0x8]
+ ldrb r2, [r0]
+ adds r0, 0x1
+ str r0, [r5, 0x8]
+ ldrb r1, [r0]
+ adds r0, 0x1
+ str r0, [r5, 0x8]
+ lsls r0, r4, 24
+ lsrs r0, 24
+ bl exec_movement
+ ldr r0, _08066B04
+ strh r4, [r0]
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08066B04: .4byte 0x0202e8b6
+ thumb_func_end s50_execute_movement_remote
+
+ thumb_func_start s51a_0806B288
+s51a_0806B288: @ 8066B08
+ push {lr}
+ ldr r0, _08066B24
+ ldrb r0, [r0]
+ ldr r1, _08066B28
+ ldrb r1, [r1]
+ ldr r2, _08066B2C
+ ldrb r2, [r2]
+ bl sub_80A212C
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08066B24: .4byte 0x0202e8b6
+_08066B28: .4byte 0x0202e8ba
+_08066B2C: .4byte 0x0202e8b8
+ thumb_func_end s51a_0806B288
+
+ thumb_func_start s51_waitmove
+s51_waitmove: @ 8066B30
+ push {r4,lr}
+ adds r4, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _08066B4C
+ ldr r0, _08066B70
+ strh r1, [r0]
+_08066B4C:
+ ldr r1, _08066B74
+ ldr r2, _08066B78
+ movs r0, 0x4
+ ldrsb r0, [r2, r0]
+ strh r0, [r1]
+ ldr r1, _08066B7C
+ movs r0, 0x5
+ ldrsb r0, [r2, r0]
+ strh r0, [r1]
+ ldr r1, _08066B80
+ adds r0, r4, 0
+ bl script_setup_asm_script
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08066B70: .4byte 0x0202e8b6
+_08066B74: .4byte 0x0202e8b8
+_08066B78: .4byte 0x02025734
+_08066B7C: .4byte 0x0202e8ba
+_08066B80: .4byte s51a_0806B288
+ thumb_func_end s51_waitmove
+
+ thumb_func_start s52_waitmove_remote
+s52_waitmove_remote: @ 8066B84
+ push {r4,lr}
+ adds r4, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _08066BA0
+ ldr r0, _08066BC8
+ strh r1, [r0]
+_08066BA0:
+ ldr r0, [r4, 0x8]
+ ldrb r2, [r0]
+ adds r0, 0x1
+ str r0, [r4, 0x8]
+ ldrb r1, [r0]
+ adds r0, 0x1
+ str r0, [r4, 0x8]
+ ldr r0, _08066BCC
+ strh r2, [r0]
+ ldr r0, _08066BD0
+ strh r1, [r0]
+ ldr r1, _08066BD4
+ adds r0, r4, 0
+ bl script_setup_asm_script
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08066BC8: .4byte 0x0202e8b6
+_08066BCC: .4byte 0x0202e8b8
+_08066BD0: .4byte 0x0202e8ba
+_08066BD4: .4byte s51a_0806B288
+ thumb_func_end s52_waitmove_remote
+
+ thumb_func_start sub_8066BD8
+sub_8066BD8: @ 8066BD8
+ push {lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08066BFC
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ bl RemoveFieldObjectByLocalIdAndMap
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08066BFC: .4byte 0x02025734
+ thumb_func_end sub_8066BD8
+
+ thumb_func_start s54_hide_sprite_set_coords
+s54_hide_sprite_set_coords: @ 8066C00
+ push {r4,lr}
+ adds r4, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ ldr r3, [r4, 0x8]
+ ldrb r2, [r3]
+ adds r3, 0x1
+ str r3, [r4, 0x8]
+ ldrb r1, [r3]
+ adds r3, 0x1
+ str r3, [r4, 0x8]
+ lsls r0, 24
+ lsrs r0, 24
+ bl RemoveFieldObjectByLocalIdAndMap
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end s54_hide_sprite_set_coords
+
+ thumb_func_start sub_8066C30
+sub_8066C30: @ 8066C30
+ push {lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08066C54
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ bl show_sprite
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08066C54: .4byte 0x02025734
+ thumb_func_end sub_8066C30
+
+ thumb_func_start s56_show_sprite_set_coords
+s56_show_sprite_set_coords: @ 8066C58
+ push {r4,lr}
+ adds r4, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ ldr r3, [r4, 0x8]
+ ldrb r2, [r3]
+ adds r3, 0x1
+ str r3, [r4, 0x8]
+ ldrb r1, [r3]
+ adds r3, 0x1
+ str r3, [r4, 0x8]
+ lsls r0, 24
+ lsrs r0, 24
+ bl show_sprite
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end s56_show_sprite_set_coords
+
+ thumb_func_start s57_move_sprites
+s57_move_sprites: @ 8066C88
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r6, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r6, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r2, _08066CE8
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ lsls r4, 16
+ asrs r4, 16
+ lsls r0, 16
+ asrs r0, 16
+ str r0, [sp]
+ adds r0, r5, 0
+ adds r3, r4, 0
+ bl sub_805C0F8
+ movs r0, 0
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08066CE8: .4byte 0x02025734
+ thumb_func_end s57_move_sprites
+
+ thumb_func_start s63_new_sprite_location_permanent
+s63_new_sprite_location_permanent: @ 8066CEC
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r6, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r6, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r2, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, 16
+ asrs r4, 16
+ lsls r2, 16
+ asrs r2, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl update_saveblock1_field_object_coords
+ movs r0, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end s63_new_sprite_location_permanent
+
+ thumb_func_start s64_set_sprite_top_left_corner
+s64_set_sprite_top_left_corner: @ 8066D44
+ push {lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08066D68
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ bl sub_805C78C
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08066D68: .4byte 0x02025734
+ thumb_func_end s64_set_sprite_top_left_corner
+
+ thumb_func_start s58_npc_f1_clear_x20
+s58_npc_f1_clear_x20: @ 8066D6C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ ldr r3, [r4, 0x8]
+ ldrb r2, [r3]
+ adds r3, 0x1
+ str r3, [r4, 0x8]
+ ldrb r1, [r3]
+ adds r3, 0x1
+ str r3, [r4, 0x8]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0
+ bl npc_by_local_id_and_map_set_field_1_bit_x20
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end s58_npc_f1_clear_x20
+
+ thumb_func_start s59_npc_f1_set_x20
+s59_npc_f1_set_x20: @ 8066D9C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ ldr r3, [r4, 0x8]
+ ldrb r2, [r3]
+ adds r3, 0x1
+ str r3, [r4, 0x8]
+ ldrb r1, [r3]
+ adds r3, 0x1
+ str r3, [r4, 0x8]
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0x1
+ bl npc_by_local_id_and_map_set_field_1_bit_x20
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end s59_npc_f1_set_x20
+
+ thumb_func_start sA8_unknown
+sA8_unknown: @ 8066DCC
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ ldr r3, [r5, 0x8]
+ ldrb r2, [r3]
+ adds r3, 0x1
+ str r3, [r5, 0x8]
+ ldrb r1, [r3]
+ adds r4, r3, 0x1
+ str r4, [r5, 0x8]
+ ldrb r3, [r3, 0x1]
+ adds r4, 0x1
+ str r4, [r5, 0x8]
+ lsls r0, 24
+ lsrs r0, 24
+ adds r3, 0x53
+ lsls r3, 24
+ lsrs r3, 24
+ bl sub_805BCF0
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sA8_unknown
+
+ thumb_func_start sA9_unknown
+sA9_unknown: @ 8066E08
+ push {r4,lr}
+ adds r4, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ ldr r3, [r4, 0x8]
+ ldrb r2, [r3]
+ adds r3, 0x1
+ str r3, [r4, 0x8]
+ ldrb r1, [r3]
+ adds r3, 0x1
+ str r3, [r4, 0x8]
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_805BD48
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sA9_unknown
+
+ thumb_func_start s5A_face_player
+s5A_face_player: @ 8066E38
+ push {r4,lr}
+ ldr r2, _08066E68
+ ldr r0, _08066E6C
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r0, r2
+ ldrb r0, [r4]
+ lsls r0, 31
+ cmp r0, 0
+ beq _08066E60
+ bl player_get_direction_lower_nybble
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl FieldObjectFaceOppositeDirection
+_08066E60:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08066E68: .4byte 0x030048a0
+_08066E6C: .4byte 0x03004ae0
+ thumb_func_end s5A_face_player
+
+ thumb_func_start s5B_npc_set_direction
+s5B_npc_set_direction: @ 8066E70
+ push {r4,lr}
+ adds r4, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ ldr r1, [r4, 0x8]
+ ldrb r3, [r1]
+ adds r1, 0x1
+ str r1, [r4, 0x8]
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08066EA0
+ ldrb r1, [r2, 0x5]
+ ldrb r2, [r2, 0x4]
+ bl FieldObjectTurnByLocalIdAndMap
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08066EA0: .4byte 0x02025734
+ thumb_func_end s5B_npc_set_direction
+
+ thumb_func_start s65_set_sprite_behaviour
+s65_set_sprite_behaviour: @ 8066EA4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ ldr r2, [r4, 0x8]
+ ldrb r1, [r2]
+ adds r2, 0x1
+ str r2, [r4, 0x8]
+ lsls r0, 24
+ lsrs r0, 24
+ bl update_saveblock1_field_object_movement_behavior
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end s65_set_sprite_behaviour
+
+ thumb_func_start sAA_create_new_sprite
+sAA_create_new_sprite: @ 8066ECC
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x8
+ adds r5, r0, 0
+ ldr r0, [r5, 0x8]
+ ldrb r1, [r0]
+ mov r8, r1
+ adds r0, 0x1
+ str r0, [r5, 0x8]
+ ldrb r6, [r0]
+ adds r0, 0x1
+ str r0, [r5, 0x8]
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r3, r0, 0
+ ldr r0, [r5, 0x8]
+ ldrb r2, [r0]
+ adds r0, 0x1
+ str r0, [r5, 0x8]
+ ldrb r1, [r0]
+ adds r0, 0x1
+ str r0, [r5, 0x8]
+ lsls r4, 16
+ asrs r4, 16
+ lsls r3, 16
+ asrs r3, 16
+ str r2, [sp]
+ str r1, [sp, 0x4]
+ mov r0, r8
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_805B410
+ movs r0, 0
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sAA_create_new_sprite
+
+ thumb_func_start sAB_unknown
+sAB_unknown: @ 8066F3C
+ push {lr}
+ ldr r2, [r0, 0x8]
+ ldrb r3, [r2]
+ adds r2, 0x1
+ str r2, [r0, 0x8]
+ ldrb r1, [r2]
+ adds r2, 0x1
+ str r2, [r0, 0x8]
+ adds r0, r3, 0
+ bl sub_8064990
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sAB_unknown
+
+ thumb_func_start sub_8066F58
+sub_8066F58: @ 8066F58
+ push {r4,lr}
+ adds r4, r0, 0
+ bl is_c1_link_related_active
+ cmp r0, 0
+ bne _08066F78
+ bl sub_8064D20
+ ldr r1, _08066F74
+ adds r0, r4, 0
+ bl script_setup_asm_script
+ movs r0, 0x1
+ b _08066F7A
+ .align 2, 0
+_08066F74: .4byte sub_8064CFC
+_08066F78:
+ movs r0, 0
+_08066F7A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8066F58
+
+ thumb_func_start sub_8066F80
+sub_8066F80: @ 8066F80
+ push {r4,lr}
+ adds r4, r0, 0
+ bl is_c1_link_related_active
+ cmp r0, 0
+ beq _08066F90
+ movs r0, 0
+ b _08066FCE
+_08066F90:
+ ldr r2, _08066FB4
+ ldr r0, _08066FB8
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 31
+ cmp r0, 0
+ beq _08066FC0
+ bl sub_8064DD8
+ ldr r1, _08066FBC
+ adds r0, r4, 0
+ bl script_setup_asm_script
+ b _08066FCC
+ .align 2, 0
+_08066FB4: .4byte 0x030048a0
+_08066FB8: .4byte 0x03004ae0
+_08066FBC: .4byte sub_8064DB4
+_08066FC0:
+ bl sub_8064D20
+ ldr r1, _08066FD4
+ adds r0, r4, 0
+ bl script_setup_asm_script
+_08066FCC:
+ movs r0, 0x1
+_08066FCE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08066FD4: .4byte sub_8064CFC
+ thumb_func_end sub_8066F80
+
+ thumb_func_start s6B_release
+s6B_release: @ 8066FD8
+ push {lr}
+ bl textbox_close
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0806700C
+ adds r0, r1
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl sub_80A2178
+ bl sub_806451C
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806700C: .4byte 0x030048a0
+ thumb_func_end s6B_release
+
+ thumb_func_start s6C_release_2
+s6C_release_2: @ 8067010
+ push {r4,lr}
+ bl textbox_close
+ ldr r4, _08067060
+ ldr r0, _08067064
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r4
+ ldrb r0, [r1]
+ lsls r0, 31
+ cmp r0, 0
+ beq _08067032
+ adds r0, r1, 0
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+_08067032:
+ movs r0, 0xFF
+ movs r1, 0
+ movs r2, 0
+ bl GetFieldObjectIdByLocalIdAndMap
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r4
+ bl FieldObjectClearAnimIfSpecialAnimFinished
+ bl sub_80A2178
+ bl sub_806451C
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08067060: .4byte 0x030048a0
+_08067064: .4byte 0x03004ae0
+ thumb_func_end s6C_release_2
+
+ thumb_func_start s67_execute_box
+s67_execute_box: @ 8067068
+ push {r4,lr}
+ adds r4, r0, 0
+ bl script_read_word
+ cmp r0, 0
+ bne _08067076
+ ldr r0, [r4, 0x64]
+_08067076:
+ bl box_related_two__2
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end s67_execute_box
+
+ thumb_func_start s9B_unknown
+s9B_unknown: @ 8067084
+ push {r4,lr}
+ adds r4, r0, 0
+ bl script_read_word
+ cmp r0, 0
+ bne _08067092
+ ldr r0, [r4, 0x64]
+_08067092:
+ bl box_related_two__3
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end s9B_unknown
+
+ thumb_func_start sub_80670A0
+sub_80670A0: @ 80670A0
+ push {lr}
+ ldr r1, _080670B0
+ bl script_setup_asm_script
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080670B0: .4byte sub_8064C84
+ thumb_func_end sub_80670A0
+
+ thumb_func_start s68_close_box
+s68_close_box: @ 80670B4
+ push {lr}
+ bl textbox_close
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end s68_close_box
+
+ thumb_func_start sub_80670C0
+sub_80670C0: @ 80670C0
+ push {lr}
+ ldr r0, _080670DC
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080670E0
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _080670E0
+ movs r0, 0
+ b _080670E2
+ .align 2, 0
+_080670DC: .4byte 0x03001770
+_080670E0:
+ movs r0, 0x1
+_080670E2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80670C0
+
+ thumb_func_start sub_80670E8
+sub_80670E8: @ 80670E8
+ push {lr}
+ ldr r1, _080670F8
+ bl script_setup_asm_script
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080670F8: .4byte sub_80670C0
+ thumb_func_end sub_80670E8
+
+ thumb_func_start s6E_yes_no
+s6E_yes_no: @ 80670FC
+ push {lr}
+ ldr r2, [r0, 0x8]
+ ldrb r3, [r2]
+ adds r2, 0x1
+ str r2, [r0, 0x8]
+ ldrb r1, [r2]
+ adds r2, 0x1
+ str r2, [r0, 0x8]
+ adds r0, r3, 0
+ bl yes_no_box
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806711E
+ movs r0, 0
+ b _08067124
+_0806711E:
+ bl sub_80655F0
+ movs r0, 0x1
+_08067124:
+ pop {r1}
+ bx r1
+ thumb_func_end s6E_yes_no
+
+ thumb_func_start sub_8067128
+sub_8067128: @ 8067128
+ push {r4,r5,lr}
+ ldr r2, [r0, 0x8]
+ ldrb r5, [r2]
+ adds r2, 0x1
+ str r2, [r0, 0x8]
+ ldrb r1, [r2]
+ adds r3, r2, 0x1
+ str r3, [r0, 0x8]
+ ldrb r2, [r2, 0x1]
+ adds r4, r3, 0x1
+ str r4, [r0, 0x8]
+ ldrb r3, [r3, 0x1]
+ adds r4, 0x1
+ str r4, [r0, 0x8]
+ adds r0, r5, 0
+ bl sub_80B5054
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08067156
+ movs r0, 0
+ b _0806715C
+_08067156:
+ bl sub_80655F0
+ movs r0, 0x1
+_0806715C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8067128
+
+ thumb_func_start sub_8067164
+sub_8067164: @ 8067164
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ ldr r2, [r0, 0x8]
+ ldrb r1, [r2]
+ mov r8, r1
+ adds r2, 0x1
+ str r2, [r0, 0x8]
+ ldrb r1, [r2]
+ adds r3, r2, 0x1
+ str r3, [r0, 0x8]
+ ldrb r2, [r2, 0x1]
+ adds r5, r3, 0x1
+ str r5, [r0, 0x8]
+ ldrb r6, [r3, 0x1]
+ adds r4, r5, 0x1
+ str r4, [r0, 0x8]
+ ldrb r3, [r5, 0x1]
+ adds r4, 0x1
+ str r4, [r0, 0x8]
+ str r6, [sp]
+ mov r0, r8
+ bl sub_80B50B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080671A2
+ movs r0, 0
+ b _080671A8
+_080671A2:
+ bl sub_80655F0
+ movs r0, 0x1
+_080671A8:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8067164
+
+ thumb_func_start sub_80671B4
+sub_80671B4: @ 80671B4
+ push {r4,r5,lr}
+ ldr r2, [r0, 0x8]
+ ldrb r5, [r2]
+ adds r2, 0x1
+ str r2, [r0, 0x8]
+ ldrb r1, [r2]
+ adds r3, r2, 0x1
+ str r3, [r0, 0x8]
+ ldrb r2, [r2, 0x1]
+ adds r4, r3, 0x1
+ str r4, [r0, 0x8]
+ ldrb r3, [r3, 0x1]
+ adds r4, 0x1
+ str r4, [r0, 0x8]
+ adds r0, r5, 0
+ bl DrawDefaultWindow
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80671B4
+
+ thumb_func_start sub_80671E0
+sub_80671E0: @ 80671E0
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x4
+ ldr r2, [r0, 0x8]
+ ldrb r1, [r2]
+ mov r8, r1
+ adds r2, 0x1
+ str r2, [r0, 0x8]
+ ldrb r1, [r2]
+ adds r3, r2, 0x1
+ str r3, [r0, 0x8]
+ ldrb r2, [r2, 0x1]
+ adds r5, r3, 0x1
+ str r5, [r0, 0x8]
+ ldrb r6, [r3, 0x1]
+ adds r4, r5, 0x1
+ str r4, [r0, 0x8]
+ ldrb r3, [r5, 0x1]
+ adds r4, 0x1
+ str r4, [r0, 0x8]
+ str r6, [sp]
+ mov r0, r8
+ bl sub_80B5578
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806721E
+ movs r0, 0
+ b _08067224
+_0806721E:
+ bl sub_80655F0
+ movs r0, 0x1
+_08067224:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80671E0
+
+ thumb_func_start sub_8067230
+sub_8067230: @ 8067230
+ push {r4,r5,lr}
+ ldr r2, [r0, 0x8]
+ ldrb r5, [r2]
+ adds r2, 0x1
+ str r2, [r0, 0x8]
+ ldrb r1, [r2]
+ adds r3, r2, 0x1
+ str r3, [r0, 0x8]
+ ldrb r2, [r2, 0x1]
+ adds r4, r3, 0x1
+ str r4, [r0, 0x8]
+ ldrb r3, [r3, 0x1]
+ adds r4, 0x1
+ str r4, [r0, 0x8]
+ adds r0, r5, 0
+ bl Reset
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8067230
+
+ thumb_func_start s6F_multichoice
+s6F_multichoice: @ 806725C
+ push {r4,r5,lr}
+ ldr r2, [r0, 0x8]
+ ldrb r5, [r2]
+ adds r2, 0x1
+ str r2, [r0, 0x8]
+ ldrb r1, [r2]
+ adds r3, r2, 0x1
+ str r3, [r0, 0x8]
+ ldrb r2, [r2, 0x1]
+ adds r4, r3, 0x1
+ str r4, [r0, 0x8]
+ ldrb r3, [r3, 0x1]
+ adds r4, 0x1
+ str r4, [r0, 0x8]
+ adds r0, r5, 0
+ bl Multichoice
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806728A
+ movs r0, 0
+ b _08067290
+_0806728A:
+ bl sub_80655F0
+ movs r0, 0x1
+_08067290:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end s6F_multichoice
+
+ thumb_func_start sub_8067298
+sub_8067298: @ 8067298
+ push {r4,lr}
+ adds r4, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r3, [r4, 0x8]
+ ldrb r1, [r3]
+ adds r3, 0x1
+ str r3, [r4, 0x8]
+ ldrb r2, [r3]
+ adds r3, 0x1
+ str r3, [r4, 0x8]
+ bl sub_80B58C4
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8067298
+
+ thumb_func_start s76_close_picture_box
+s76_close_picture_box: @ 80672C8
+ push {r4,lr}
+ adds r4, r0, 0
+ bl picbox_close
+ adds r1, r0, 0
+ cmp r1, 0
+ beq _080672E0
+ adds r0, r4, 0
+ bl script_setup_asm_script
+ movs r0, 0x1
+ b _080672E2
+_080672E0:
+ movs r0, 0
+_080672E2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end s76_close_picture_box
+
+ thumb_func_start s77_showcontestwinner
+s77_showcontestwinner: @ 80672E8
+ push {lr}
+ ldr r1, [r0, 0x8]
+ ldrb r2, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ cmp r2, 0
+ beq _080672FC
+ adds r0, r2, 0
+ bl sub_8106630
+_080672FC:
+ bl sub_80C4F10
+ bl sub_80655F0
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end s77_showcontestwinner
+
+ thumb_func_start sub_806730C
+sub_806730C: @ 806730C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ bl script_read_word
+ adds r1, r0, 0
+ ldrb r5, [r1]
+ ldrb r6, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ mov r8, r0
+ ldrb r0, [r1, 0x3]
+ mov r9, r0
+ ldrb r0, [r1, 0x4]
+ mov r10, r0
+ ldrb r7, [r1, 0x5]
+ ldr r4, _08067360
+ adds r1, 0x6
+ adds r0, r4, 0
+ bl StringBraille
+ adds r0, r5, 0
+ adds r1, r6, 0
+ mov r2, r8
+ mov r3, r9
+ bl DrawDefaultWindow
+ adds r0, r4, 0
+ mov r1, r10
+ adds r2, r7, 0
+ bl Print
+ movs r0, 0
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08067360: .4byte 0x020234cc
+ thumb_func_end sub_806730C
+
+ thumb_func_start sBD_virtual_message
+sBD_virtual_message: @ 8067364
+ push {lr}
+ bl script_read_word
+ ldr r1, _0806737C
+ ldr r1, [r1]
+ subs r0, r1
+ bl box_related_two__2
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806737C: .4byte 0x0202e8b0
+ thumb_func_end sBD_virtual_message
+
+ thumb_func_start s7D_load_pokename
+s7D_load_pokename: @ 8067380
+ push {r4,lr}
+ ldr r1, [r0, 0x8]
+ ldrb r4, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _080673B8
+ lsls r4, 2
+ adds r4, r1
+ ldr r2, [r4]
+ movs r1, 0xB
+ muls r1, r0
+ ldr r0, _080673BC
+ adds r1, r0
+ adds r0, r2, 0
+ bl StringCopy
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080673B8: .4byte gUnknown_083762F0
+_080673BC: .4byte gSpeciesNames
+ thumb_func_end s7D_load_pokename
+
+ thumb_func_start s7E_load_first_pokenames
+s7E_load_first_pokenames: @ 80673C0
+ push {r4,lr}
+ ldr r1, [r0, 0x8]
+ ldrb r2, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ ldr r0, _08067400
+ lsls r2, 2
+ adds r2, r0
+ ldr r4, [r2]
+ bl sub_810F87C
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _08067404
+ adds r0, r1
+ movs r1, 0xB
+ movs r2, 0
+ bl PokemonGetField
+ movs r1, 0xB
+ muls r1, r0
+ ldr r0, _08067408
+ adds r1, r0
+ adds r0, r4, 0
+ bl StringCopy
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08067400: .4byte gUnknown_083762F0
+_08067404: .4byte 0x03004360
+_08067408: .4byte gSpeciesNames
+ thumb_func_end s7E_load_first_pokenames
+
+ thumb_func_start s7F_load_pokename_team
+s7F_load_pokename_team: @ 806740C
+ push {r4,lr}
+ ldr r1, [r0, 0x8]
+ ldrb r4, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0806744C
+ adds r0, r1
+ ldr r1, _08067450
+ lsls r4, 2
+ adds r4, r1
+ ldr r4, [r4]
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl PokemonGetField
+ adds r0, r4, 0
+ bl StringGetEnd10
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806744C: .4byte 0x03004360
+_08067450: .4byte gUnknown_083762F0
+ thumb_func_end s7F_load_pokename_team
+
+ thumb_func_start s80_load_item_name
+s80_load_item_name: @ 8067454
+ push {r4,lr}
+ ldr r1, [r0, 0x8]
+ ldrb r4, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _08067484
+ lsls r4, 2
+ adds r4, r1
+ ldr r1, [r4]
+ bl itemid_copy_name
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08067484: .4byte gUnknown_083762F0
+ thumb_func_end s80_load_item_name
+
+ thumb_func_start sub_8067488
+sub_8067488: @ 8067488
+ push {r4,lr}
+ ldr r1, [r0, 0x8]
+ ldrb r4, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r1, r0, 0
+ lsls r1, 16
+ ldr r0, _080674BC
+ lsls r4, 2
+ adds r4, r0
+ ldr r0, [r4]
+ lsrs r1, 11
+ ldr r2, _080674C0
+ adds r1, r2
+ bl StringCopy
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080674BC: .4byte gUnknown_083762F0
+_080674C0: .4byte gDecorations + 0x1
+ thumb_func_end sub_8067488
+
+ thumb_func_start s82_load_item_name
+s82_load_item_name: @ 80674C4
+ push {r4,lr}
+ ldr r1, [r0, 0x8]
+ ldrb r4, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _080674FC
+ lsls r4, 2
+ adds r4, r1
+ ldr r2, [r4]
+ movs r1, 0xD
+ muls r1, r0
+ ldr r0, _08067500
+ adds r1, r0
+ adds r0, r2, 0
+ bl StringCopy
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080674FC: .4byte gUnknown_083762F0
+_08067500: .4byte gMoveNames
+ thumb_func_end s82_load_item_name
+
+ thumb_func_start s83_load_textvar_var
+s83_load_textvar_var: @ 8067504
+ push {r4,r5,lr}
+ ldr r1, [r0, 0x8]
+ ldrb r5, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r4, 0
+ bl sub_80BF0B8
+ adds r3, r0, 0
+ lsls r3, 24
+ lsrs r3, 24
+ ldr r0, _08067544
+ lsls r5, 2
+ adds r5, r0
+ ldr r0, [r5]
+ adds r1, r4, 0
+ movs r2, 0
+ bl ConvertIntToDecimalStringN
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08067544: .4byte gUnknown_083762F0
+ thumb_func_end s83_load_textvar_var
+
+ thumb_func_start s84_load_textvar_std_expression
+s84_load_textvar_std_expression: @ 8067548
+ push {r4,lr}
+ ldr r1, [r0, 0x8]
+ ldrb r4, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 16
+ ldr r1, _08067580
+ lsls r4, 2
+ adds r4, r1
+ ldr r2, [r4]
+ ldr r1, _08067584
+ lsrs r0, 14
+ adds r0, r1
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl StringCopy
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08067580: .4byte gUnknown_083762F0
+_08067584: .4byte gUnknown_083CE048
+ thumb_func_end s84_load_textvar_std_expression
+
+ thumb_func_start s85_load_textvar_pointer
+s85_load_textvar_pointer: @ 8067588
+ push {r4,lr}
+ ldr r1, [r0, 0x8]
+ ldrb r4, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ bl script_read_word
+ adds r1, r0, 0
+ ldr r0, _080675AC
+ lsls r4, 2
+ adds r4, r0
+ ldr r0, [r4]
+ bl StringCopy
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080675AC: .4byte gUnknown_083762F0
+ thumb_func_end s85_load_textvar_pointer
+
+ thumb_func_start sBE_virtual_load_text
+sBE_virtual_load_text: @ 80675B0
+ push {lr}
+ bl script_read_word
+ adds r1, r0, 0
+ ldr r0, _080675CC
+ ldr r0, [r0]
+ subs r1, r0
+ ldr r0, _080675D0
+ bl StringExpandPlaceholders
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080675CC: .4byte 0x0202e8b0
+_080675D0: .4byte 0x020234cc
+ thumb_func_end sBE_virtual_load_text
+
+ thumb_func_start sBF_virtual_load_textbuffer
+sBF_virtual_load_textbuffer: @ 80675D4
+ push {r4,lr}
+ ldr r1, [r0, 0x8]
+ ldrb r4, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ bl script_read_word
+ adds r1, r0, 0
+ ldr r0, _08067600
+ ldr r0, [r0]
+ subs r1, r0
+ ldr r0, _08067604
+ lsls r4, 2
+ adds r4, r0
+ ldr r0, [r4]
+ bl StringCopy
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08067600: .4byte 0x0202e8b0
+_08067604: .4byte gUnknown_083762F0
+ thumb_func_end sBF_virtual_load_textbuffer
+
+ thumb_func_start s79_give_pokemon
+s79_give_pokemon: @ 8067608
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x8
+ adds r4, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r6, r0, 0
+ lsls r6, 16
+ lsrs r6, 16
+ ldr r0, [r4, 0x8]
+ ldrb r1, [r0]
+ mov r9, r1
+ adds r0, 0x1
+ str r0, [r4, 0x8]
+ adds r0, r4, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r4, 0
+ bl script_read_word
+ mov r8, r0
+ adds r0, r4, 0
+ bl script_read_word
+ ldr r1, [r4, 0x8]
+ ldrb r2, [r1]
+ adds r1, 0x1
+ str r1, [r4, 0x8]
+ ldr r4, _08067684
+ str r0, [sp]
+ str r2, [sp, 0x4]
+ adds r0, r6, 0
+ mov r1, r9
+ adds r2, r5, 0
+ mov r3, r8
+ bl sub_80C5374
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ movs r0, 0
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08067684: .4byte 0x0202e8dc
+ thumb_func_end s79_give_pokemon
+
+ thumb_func_start s7A_create_egg
+s7A_create_egg: @ 8067688
+ push {r4,lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r4, _080676B0
+ bl sub_80C53F8
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080676B0: .4byte 0x0202e8dc
+ thumb_func_end s7A_create_egg
+
+ thumb_func_start s7B_change_pokedata_AP
+s7B_change_pokedata_AP: @ 80676B4
+ 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 script_read_halfword
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r5, 0
+ adds r2, r4, 0
+ bl sub_80C5530
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end s7B_change_pokedata_AP
+
+ thumb_func_start sub_80676E0
+sub_80676E0: @ 80676E0
+ push {r4-r7,lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldr r1, _080676F4
+ movs r0, 0x6
+ strh r0, [r1]
+ movs r6, 0
+ b _0806772E
+ .align 2, 0
+_080676F4: .4byte 0x0202e8dc
+_080676F8:
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl PokemonGetField
+ cmp r0, 0
+ bne _08067728
+ adds r0, r4, 0
+ adds r1, r7, 0
+ bl pokemon_has_move
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08067728
+ ldr r0, _08067720
+ strh r6, [r0]
+ ldr r0, _08067724
+ strh r5, [r0]
+ b _0806774E
+ .align 2, 0
+_08067720: .4byte 0x0202e8dc
+_08067724: .4byte 0x0202e8cc
+_08067728:
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0806772E:
+ cmp r6, 0x5
+ bhi _0806774E
+ movs r0, 0x64
+ adds r1, r6, 0
+ muls r1, r0
+ ldr r0, _08067758
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xB
+ movs r2, 0
+ bl PokemonGetField
+ lsls r0, 16
+ lsrs r5, r0, 16
+ cmp r5, 0
+ bne _080676F8
+_0806774E:
+ movs r0, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08067758: .4byte 0x03004360
+ thumb_func_end sub_80676E0
+
+ thumb_func_start sub_806775C
+sub_806775C: @ 806775C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl script_read_word
+ adds r2, r0, 0
+ ldr r0, [r4, 0x8]
+ ldrb r1, [r0]
+ adds r0, 0x1
+ str r0, [r4, 0x8]
+ cmp r1, 0
+ bne _0806777A
+ ldr r0, _08067784
+ adds r1, r2, 0
+ bl sub_80B79B8
+_0806777A:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08067784: .4byte 0x02025bc4
+ thumb_func_end sub_806775C
+
+ thumb_func_start sub_8067788
+sub_8067788: @ 8067788
+ push {r4,lr}
+ adds r4, r0, 0
+ bl script_read_word
+ adds r2, r0, 0
+ ldr r0, [r4, 0x8]
+ ldrb r1, [r0]
+ adds r0, 0x1
+ str r0, [r4, 0x8]
+ cmp r1, 0
+ bne _080677A6
+ ldr r0, _080677B0
+ adds r1, r2, 0
+ bl sub_80B79E0
+_080677A6:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080677B0: .4byte 0x02025bc4
+ thumb_func_end sub_8067788
+
+ thumb_func_start s92_check_money
+s92_check_money: @ 80677B4
+ push {r4,lr}
+ adds r4, r0, 0
+ bl script_read_word
+ adds r2, r0, 0
+ ldr r0, [r4, 0x8]
+ ldrb r1, [r0]
+ adds r0, 0x1
+ str r0, [r4, 0x8]
+ cmp r1, 0
+ bne _080677E2
+ ldr r4, _080677EC
+ ldr r0, _080677F0
+ movs r1, 0x92
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ adds r1, r2, 0
+ bl IsEnoughMoney
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+_080677E2:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080677EC: .4byte 0x0202e8dc
+_080677F0: .4byte 0x02025734
+ thumb_func_end s92_check_money
+
+ thumb_func_start sub_80677F4
+sub_80677F4: @ 80677F4
+ push {r4,lr}
+ ldr r1, [r0, 0x8]
+ ldrb r4, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ ldrb r3, [r1]
+ adds r2, r1, 0x1
+ str r2, [r0, 0x8]
+ ldrb r1, [r1, 0x1]
+ adds r2, 0x1
+ str r2, [r0, 0x8]
+ cmp r1, 0
+ bne _08067820
+ ldr r0, _08067828
+ movs r1, 0x92
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ adds r1, r4, 0
+ adds r2, r3, 0
+ bl sub_80B7C14
+_08067820:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08067828: .4byte 0x02025734
+ thumb_func_end sub_80677F4
+
+ thumb_func_start sub_806782C
+sub_806782C: @ 806782C
+ push {lr}
+ ldr r2, [r0, 0x8]
+ ldrb r3, [r2]
+ adds r2, 0x1
+ str r2, [r0, 0x8]
+ ldrb r1, [r2]
+ adds r2, 0x1
+ str r2, [r0, 0x8]
+ adds r0, r3, 0
+ bl RemoveMoneyLabelObject
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806782C
+
+ thumb_func_start sub_8067848
+sub_8067848: @ 8067848
+ push {r4,lr}
+ ldr r1, [r0, 0x8]
+ ldrb r4, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ ldrb r3, [r1]
+ adds r2, r1, 0x1
+ str r2, [r0, 0x8]
+ ldrb r1, [r1, 0x1]
+ adds r2, 0x1
+ str r2, [r0, 0x8]
+ cmp r1, 0
+ bne _08067874
+ ldr r0, _0806787C
+ movs r1, 0x92
+ lsls r1, 3
+ adds r0, r1
+ ldr r0, [r0]
+ adds r1, r4, 0
+ adds r2, r3, 0
+ bl sub_80B7BEC
+_08067874:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806787C: .4byte 0x02025734
+ thumb_func_end sub_8067848
+
+ thumb_func_start sub_8067880
+sub_8067880: @ 8067880
+ push {lr}
+ ldr r3, [r0, 0x8]
+ ldrb r1, [r3]
+ adds r3, 0x1
+ str r3, [r0, 0x8]
+ ldrb r2, [r3]
+ adds r3, 0x1
+ str r3, [r0, 0x8]
+ ldr r0, _080678A4
+ ldr r3, _080678A8
+ adds r0, r3
+ ldrh r0, [r0]
+ bl sub_811A72C
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080678A4: .4byte 0x02025734
+_080678A8: .4byte 0x00000494
+ thumb_func_end sub_8067880
+
+ thumb_func_start sub_80678AC
+sub_80678AC: @ 80678AC
+ push {lr}
+ ldr r2, [r0, 0x8]
+ ldrb r3, [r2]
+ adds r2, 0x1
+ str r2, [r0, 0x8]
+ ldrb r1, [r2]
+ adds r2, 0x1
+ str r2, [r0, 0x8]
+ adds r0, r3, 0
+ bl sub_811A770
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80678AC
+
+ thumb_func_start sub_80678C8
+sub_80678C8: @ 80678C8
+ push {lr}
+ ldr r3, [r0, 0x8]
+ ldrb r1, [r3]
+ adds r3, 0x1
+ str r3, [r0, 0x8]
+ ldrb r2, [r3]
+ adds r3, 0x1
+ str r3, [r0, 0x8]
+ ldr r0, _080678EC
+ ldr r3, _080678F0
+ adds r0, r3
+ ldrh r0, [r0]
+ bl sub_811A704
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080678EC: .4byte 0x02025734
+_080678F0: .4byte 0x00000494
+ thumb_func_end sub_80678C8
+
+ thumb_func_start s5C_trainer_battle_configure_and_start
+s5C_trainer_battle_configure_and_start: @ 80678F4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldr r0, [r4, 0x8]
+ bl sub_80823C8
+ str r0, [r4, 0x8]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end s5C_trainer_battle_configure_and_start
+
+ thumb_func_start sub_8067908
+sub_8067908: @ 8067908
+ push {lr}
+ bl sub_80825E4
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8067908
+
+ thumb_func_start sub_8067914
+sub_8067914: @ 8067914
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_80826E8
+ str r0, [r4, 0x8]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8067914
+
+ thumb_func_start sub_8067928
+sub_8067928: @ 8067928
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8082700
+ str r0, [r4, 0x8]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8067928
+
+ thumb_func_start s60_check_trainer_flag
+s60_check_trainer_flag: @ 806793C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ bl trainer_flag_check
+ strb r0, [r4, 0x2]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end s60_check_trainer_flag
+
+ thumb_func_start s61_set_trainer_flag
+s61_set_trainer_flag: @ 8067960
+ push {lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ bl trainer_flag_set
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end s61_set_trainer_flag
+
+ thumb_func_start s62_unset_trainer_flag
+s62_unset_trainer_flag: @ 806797C
+ push {lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ bl trainer_flag_clear
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end s62_unset_trainer_flag
+
+ thumb_func_start sB6_load_battle
+sB6_load_battle: @ 8067998
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ bl script_read_halfword
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r0, [r4, 0x8]
+ ldrb r6, [r0]
+ adds r0, 0x1
+ str r0, [r4, 0x8]
+ adds r0, r4, 0
+ bl script_read_halfword
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_80C54D0
+ movs r0, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sB6_load_battle
+
+ thumb_func_start sub_80679CC
+sub_80679CC: @ 80679CC
+ push {lr}
+ bl sub_8081B3C
+ bl sub_80655F0
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80679CC
+
+ thumb_func_start s86_pokemart
+s86_pokemart: @ 80679DC
+ push {lr}
+ bl script_read_word
+ bl CreatePokemartMenu
+ bl sub_80655F0
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end s86_pokemart
+
+ thumb_func_start s87_pokemartdecor
+s87_pokemartdecor: @ 80679F0
+ push {lr}
+ bl script_read_word
+ bl CreateDecorationShop1Menu
+ bl sub_80655F0
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end s87_pokemartdecor
+
+ thumb_func_start s88_pokemartbp
+s88_pokemartbp: @ 8067A04
+ push {lr}
+ bl script_read_word
+ bl CreateDecorationShop2Menu
+ bl sub_80655F0
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end s88_pokemartbp
+
+ thumb_func_start s89_open_casino_game1
+s89_open_casino_game1: @ 8067A18
+ push {lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08067A3C
+ bl sub_81018A0
+ bl sub_80655F0
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08067A3C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end s89_open_casino_game1
+
+ thumb_func_start berry_script_cmd
+berry_script_cmd: @ 8067A40
+ push {r4,r5,lr}
+ ldr r1, [r0, 0x8]
+ ldrb r5, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ ldrb r3, [r1]
+ adds r2, r1, 0x1
+ str r2, [r0, 0x8]
+ ldrb r4, [r1, 0x1]
+ adds r2, 0x1
+ str r2, [r0, 0x8]
+ cmp r3, 0
+ bne _08067A68
+ adds r0, r5, 0
+ movs r1, 0
+ adds r2, r4, 0
+ movs r3, 0
+ bl PlantBerryTree
+ b _08067A74
+_08067A68:
+ adds r0, r5, 0
+ adds r1, r3, 0
+ adds r2, r4, 0
+ movs r3, 0
+ bl PlantBerryTree
+_08067A74:
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end berry_script_cmd
+
+ thumb_func_start sub_8067A7C
+sub_8067A7C: @ 8067A7C
+ push {r4,lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ ldr r4, _08067AA4
+ lsls r0, 24
+ lsrs r0, 24
+ bl GetPriceReduction
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r4]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08067AA4: .4byte 0x0202e8dc
+ thumb_func_end sub_8067A7C
+
+ thumb_func_start sub_8067AA8
+sub_8067AA8: @ 8067AA8
+ push {lr}
+ bl sub_80F99CC
+ bl sub_80655F0
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8067AA8
+
+ thumb_func_start sub_8067AB8
+sub_8067AB8: @ 8067AB8
+ push {lr}
+ bl sub_80C48C8
+ bl sub_80655F0
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8067AB8
+
+ thumb_func_start sub_8067AC8
+sub_8067AC8: @ 8067AC8
+ push {lr}
+ bl sub_80C4940
+ bl sub_80655F0
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8067AC8
+
+ thumb_func_start sub_8067AD8
+sub_8067AD8: @ 8067AD8
+ push {lr}
+ ldr r0, _08067AEC
+ ldrb r0, [r0]
+ bl sub_80C4980
+ bl sub_80655F0
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08067AEC: .4byte 0x0203869c
+ thumb_func_end sub_8067AD8
+
+ thumb_func_start s9C_execute_HM
+s9C_execute_HM: @ 8067AF0
+ push {lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _08067B14
+ strh r0, [r1]
+ lsls r0, 24
+ lsrs r0, 24
+ bl FieldEffectStart
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08067B14: .4byte 0x0202e8bc
+ thumb_func_end s9C_execute_HM
+
+ thumb_func_start s9D_set_HM_animation_data
+s9D_set_HM_animation_data: @ 8067B18
+ push {r4,lr}
+ ldr r1, [r0, 0x8]
+ ldrb r4, [r1]
+ adds r1, 0x1
+ str r1, [r0, 0x8]
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ ldr r1, _08067B44
+ lsls r4, 2
+ adds r4, r1
+ lsls r0, 16
+ asrs r0, 16
+ str r0, [r4]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08067B44: .4byte 0x0202ff84
+ thumb_func_end s9D_set_HM_animation_data
+
+ thumb_func_start sub_8067B48
+sub_8067B48: @ 8067B48
+ push {lr}
+ ldr r0, _08067B5C
+ ldrb r0, [r0]
+ bl FieldEffectActiveListContains
+ lsls r0, 24
+ cmp r0, 0
+ beq _08067B60
+ movs r0, 0
+ b _08067B62
+ .align 2, 0
+_08067B5C: .4byte 0x0202e8bc
+_08067B60:
+ movs r0, 0x1
+_08067B62:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8067B48
+
+ thumb_func_start s9E_checkarray_HM_animation
+s9E_checkarray_HM_animation: @ 8067B68
+ push {r4,lr}
+ adds r4, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ ldr r1, _08067B8C
+ strh r0, [r1]
+ ldr r1, _08067B90
+ adds r0, r4, 0
+ bl script_setup_asm_script
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08067B8C: .4byte 0x0202e8bc
+_08067B90: .4byte sub_8067B48
+ thumb_func_end s9E_checkarray_HM_animation
+
+ thumb_func_start sub_8067B94
+sub_8067B94: @ 8067B94
+ push {lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8053588
+ movs r0, 0
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8067B94
+
+ thumb_func_start sub_8067BB0
+sub_8067BB0: @ 8067BB0
+ ldr r0, _08067BBC
+ ldr r1, _08067BC0
+ ldrb r1, [r1, 0x8]
+ strh r1, [r0]
+ movs r0, 0
+ bx lr
+ .align 2, 0
+_08067BBC: .4byte 0x0202e8dc
+_08067BC0: .4byte gSaveBlock2
+ thumb_func_end sub_8067BB0
+
+ thumb_func_start sA1_play_cry
+sA1_play_cry: @ 8067BC4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_8075178
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sA1_play_cry
+
+ thumb_func_start sub_8067BFC
+sub_8067BFC: @ 8067BFC
+ push {lr}
+ ldr r1, _08067C0C
+ bl script_setup_asm_script
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08067C0C: .4byte sub_8075374
+ thumb_func_end sub_8067BFC
+
+ thumb_func_start sA2_setmaptile
+sA2_setmaptile: @ 8067C10
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r4, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 16
+ lsrs r7, r0, 16
+ adds r0, r4, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 16
+ adds r1, r6, 0x7
+ lsls r1, 16
+ lsrs r6, r1, 16
+ adds r1, r5, 0x7
+ lsls r1, 16
+ lsrs r5, r1, 16
+ cmp r0, 0
+ bne _08067C74
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r7, 0
+ bl MapGridSetMetatileIdAt
+ b _08067C86
+_08067C74:
+ movs r1, 0xC0
+ lsls r1, 4
+ adds r0, r1, 0
+ adds r2, r7, 0
+ orrs r2, r0
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl MapGridSetMetatileIdAt
+_08067C86:
+ movs r0, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sA2_setmaptile
+
+ thumb_func_start sAC_open_door
+sAC_open_door: @ 8067C90
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r4, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ adds r5, 0x7
+ lsls r5, 16
+ lsrs r5, 16
+ movs r0, 0xE0
+ lsls r0, 11
+ adds r4, r0
+ lsrs r4, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8058790
+ lsls r0, 16
+ lsrs r0, 16
+ bl audio_play
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl task_overworld_door_add_if_role_69_for_opening_door_at
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sAC_open_door
+
+ thumb_func_start sub_8067CE8
+sub_8067CE8: @ 8067CE8
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r1, r0, 0
+ lsls r1, 16
+ adds r4, 0x7
+ lsls r4, 16
+ lsrs r4, 16
+ movs r0, 0xE0
+ lsls r0, 11
+ adds r1, r0
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_805870C
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8067CE8
+
+ thumb_func_start sub_8067D2C
+sub_8067D2C: @ 8067D2C
+ push {lr}
+ bl sub_805877C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08067D3C
+ movs r0, 0
+ b _08067D3E
+_08067D3C:
+ movs r0, 0x1
+_08067D3E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8067D2C
+
+ thumb_func_start sub_8067D44
+sub_8067D44: @ 8067D44
+ push {lr}
+ ldr r1, _08067D54
+ bl script_setup_asm_script
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08067D54: .4byte sub_8067D2C
+ thumb_func_end sub_8067D44
+
+ thumb_func_start sub_8067D58
+sub_8067D58: @ 8067D58
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r1, r0, 0
+ lsls r1, 16
+ adds r4, 0x7
+ lsls r4, 16
+ lsrs r4, 16
+ movs r0, 0xE0
+ lsls r0, 11
+ adds r1, r0
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_80586B4
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8067D58
+
+ thumb_func_start sub_8067D9C
+sub_8067D9C: @ 8067D9C
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r1, r0, 0
+ lsls r1, 16
+ adds r4, 0x7
+ lsls r4, 16
+ lsrs r4, 16
+ movs r0, 0xE0
+ lsls r0, 11
+ adds r1, r0
+ lsrs r1, 16
+ adds r0, r4, 0
+ bl sub_80586E0
+ movs r0, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8067D9C
+
+ thumb_func_start sub_8067DE0
+sub_8067DE0: @ 8067DE0
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r6, r0, 0
+ ldr r0, [r6, 0x8]
+ ldrb r1, [r0]
+ mov r8, r1
+ adds r0, 0x1
+ str r0, [r6, 0x8]
+ adds r0, r6, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r6, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r6, 0
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ adds r3, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r3, 24
+ lsrs r3, 24
+ mov r0, r8
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_810E7AC
+ movs r0, 0
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8067DE0
+
+ thumb_func_start sub_8067E4C
+sub_8067E4C: @ 8067E4C
+ push {lr}
+ bl sub_810E824
+ bl sub_80655F0
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8067E4C
+
+ thumb_func_start sB3_get_coin_amount
+sB3_get_coin_amount: @ 8067E5C
+ push {r4,lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl GetVarPointer
+ adds r4, r0, 0
+ bl GetCoins
+ strh r0, [r4]
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sB3_get_coin_amount
+
+ thumb_func_start sub_8067E7C
+sub_8067E7C: @ 8067E7C
+ push {lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_811A840
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08067EA4
+ ldr r1, _08067EA0
+ movs r0, 0
+ b _08067EA8
+ .align 2, 0
+_08067EA0: .4byte 0x0202e8dc
+_08067EA4:
+ ldr r1, _08067EB0
+ movs r0, 0x1
+_08067EA8:
+ strh r0, [r1]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08067EB0: .4byte 0x0202e8dc
+ thumb_func_end sub_8067E7C
+
+ thumb_func_start sub_8067EB4
+sub_8067EB4: @ 8067EB4
+ push {lr}
+ bl script_read_halfword
+ lsls r0, 16
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_811A898
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08067EDC
+ ldr r1, _08067ED8
+ movs r0, 0
+ b _08067EE0
+ .align 2, 0
+_08067ED8: .4byte 0x0202e8dc
+_08067EDC:
+ ldr r1, _08067EE8
+ movs r0, 0x1
+_08067EE0:
+ strh r0, [r1]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08067EE8: .4byte 0x0202e8dc
+ thumb_func_end sub_8067EB4
+
+ thumb_func_start sub_8067EEC
+sub_8067EEC: @ 8067EEC
+ push {r4,r5,lr}
+ movs r1, 0x2
+ negs r1, r1
+ movs r3, 0x3
+ negs r3, r3
+ movs r4, 0x5
+ negs r4, r4
+ movs r5, 0x9
+ negs r5, r5
+ movs r2, 0
+ strb r2, [r0]
+ ldrb r2, [r0, 0x1]
+ ands r1, r2
+ ands r1, r3
+ ands r1, r4
+ ands r1, r5
+ strb r1, [r0, 0x1]
+ movs r1, 0
+ strb r1, [r0, 0x2]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8067EEC
+
+ thumb_func_start process_overworld_input
+process_overworld_input: @ 8067F18
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ ldr r0, _08067FE8
+ ldrb r6, [r0, 0x3]
+ ldrb r0, [r0, 0x2]
+ mov r9, r0
+ bl cur_mapdata_block_role_at_player_pos
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8056FFC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r6, 0x2
+ bne _08067F4C
+ cmp r7, 0
+ beq _08067F50
+_08067F4C:
+ cmp r6, 0
+ bne _08067FB2
+_08067F50:
+ bl sub_80E6034
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ beq _08067F9C
+ movs r0, 0x8
+ ands r0, r5
+ cmp r0, 0
+ beq _08067F6C
+ ldrb r0, [r4]
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r4]
+_08067F6C:
+ movs r0, 0x4
+ ands r0, r5
+ cmp r0, 0
+ beq _08067F7C
+ ldrb r0, [r4]
+ movs r1, 0x8
+ orrs r0, r1
+ strb r0, [r4]
+_08067F7C:
+ movs r0, 0x1
+ ands r0, r5
+ cmp r0, 0
+ beq _08067F8C
+ ldrb r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+_08067F8C:
+ movs r0, 0x2
+ ands r0, r5
+ cmp r0, 0
+ beq _08067F9C
+ ldrb r0, [r4]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r4]
+_08067F9C:
+ movs r0, 0xF0
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _08067FB2
+ ldrb r0, [r4]
+ movs r1, 0x10
+ orrs r0, r1
+ movs r1, 0x20
+ orrs r0, r1
+ strb r0, [r4]
+_08067FB2:
+ cmp r7, 0
+ bne _08067FD8
+ cmp r6, 0x2
+ bne _08067FC8
+ mov r0, r9
+ cmp r0, 0x2
+ bne _08067FC8
+ ldrb r0, [r4]
+ movs r1, 0x40
+ orrs r0, r1
+ strb r0, [r4]
+_08067FC8:
+ cmp r7, 0
+ bne _08067FD8
+ cmp r6, 0x2
+ bne _08067FD8
+ ldrb r0, [r4]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r4]
+_08067FD8:
+ movs r0, 0x40
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _08067FEC
+ movs r0, 0x2
+ b _08068014
+ .align 2, 0
+_08067FE8: .4byte 0x0202e858
+_08067FEC:
+ movs r0, 0x80
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _08067FFA
+ movs r0, 0x1
+ b _08068014
+_08067FFA:
+ movs r0, 0x20
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _08068008
+ movs r0, 0x3
+ b _08068014
+_08068008:
+ movs r0, 0x10
+ mov r1, r8
+ ands r0, r1
+ cmp r0, 0
+ beq _08068016
+ movs r0, 0x4
+_08068014:
+ strb r0, [r4, 0x2]
+_08068016:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end process_overworld_input
+
+ thumb_func_start sub_8068024
+sub_8068024: @ 8068024
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ bl player_get_direction_lower_nybble
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r4, sp
+ mov r0, sp
+ bl player_get_pos_to_and_height
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 16
+ lsrs r4, r0, 16
+ bl sub_8083FBC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068150
+ bl mapheader_run_first_tag2_script_list_match
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068150
+ ldrb r1, [r5]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08068076
+ bl sub_80687A4
+ cmp r0, 0x1
+ beq _08068150
+_08068076:
+ ldrb r1, [r5]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08068098
+ movs r0, 0x5
+ bl sav12_xor_increment
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl sub_80687E4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068150
+_08068098:
+ ldrb r1, [r5]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080680B0
+ adds r0, r4, 0
+ bl is_it_battle_time_3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068150
+_080680B0:
+ ldrb r1, [r5]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080680D2
+ ldrb r0, [r5, 0x2]
+ cmp r0, r6
+ bne _080680D2
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl mapheader_run_first_tag2_script_list_match_conditionally
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068150
+_080680D2:
+ mov r4, sp
+ mov r0, sp
+ bl player_get_next_pos_and_height
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldrb r1, [r5]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08068108
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl sub_80681F0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068150
+_08068108:
+ ldrb r1, [r5]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0806812A
+ ldrb r0, [r5, 0x2]
+ cmp r0, r6
+ bne _0806812A
+ mov r0, sp
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl map_warp_consider_2_to_inside
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068150
+_0806812A:
+ ldrb r1, [r5]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0806813C
+ bl sub_8068770
+ cmp r0, 0x1
+ beq _08068150
+_0806813C:
+ ldrb r1, [r5]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08068154
+ movs r0, 0x6
+ bl audio_play
+ bl sub_8071310
+_08068150:
+ movs r0, 0x1
+ b _08068166
+_08068154:
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08068164
+ bl sub_80A6D1C
+ cmp r0, 0x1
+ beq _08068150
+_08068164:
+ movs r0, 0
+_08068166:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8068024
+
+ thumb_func_start player_get_pos_to_and_height
+player_get_pos_to_and_height: @ 8068170
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r1, r4, 0x2
+ bl PlayerGetDestCoords
+ bl PlayerGetZCoord
+ strb r0, [r4, 0x4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end player_get_pos_to_and_height
+
+ thumb_func_start player_get_next_pos_and_height
+player_get_next_pos_and_height: @ 8068188
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ adds r1, r5, 0x2
+ bl GetXYCoordsOneStepInFrontOfPlayer
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetZCoordAt
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _080681BA
+ bl PlayerGetZCoord
+_080681BA:
+ strb r0, [r5, 0x4]
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end player_get_next_pos_and_height
+
+ thumb_func_start cur_mapdata_block_role_at_player_pos
+cur_mapdata_block_role_at_player_pos: @ 80681C4
+ push {r4,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 16
+ lsrs r0, 16
+ add sp, 0x4
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end cur_mapdata_block_role_at_player_pos
+
+ thumb_func_start sub_80681F0
+sub_80681F0: @ 80681F0
+ push {r4,lr}
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r1, 24
+ lsrs r1, 24
+ bl TryGetScriptOnPressingA
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _08068208
+ movs r0, 0
+ b _08068234
+_08068208:
+ ldr r0, _0806823C
+ cmp r4, r0
+ beq _0806822C
+ ldr r0, _08068240
+ cmp r4, r0
+ beq _0806822C
+ ldr r0, _08068244
+ cmp r4, r0
+ beq _0806822C
+ ldr r0, _08068248
+ cmp r4, r0
+ beq _0806822C
+ ldr r0, _0806824C
+ cmp r4, r0
+ beq _0806822C
+ movs r0, 0x5
+ bl audio_play
+_0806822C:
+ adds r0, r4, 0
+ bl script_env_1_execute_new_script
+ movs r0, 0x1
+_08068234:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806823C: .4byte gUnknown_0815281E
+_08068240: .4byte gUnknown_08152C39
+_08068244: .4byte gUnknown_0815F36C
+_08068248: .4byte gUnknown_0815F43A
+_0806824C: .4byte gUnknown_081A0009
+ thumb_func_end sub_80681F0
+
+ thumb_func_start TryGetScriptOnPressingA
+TryGetScriptOnPressingA: @ 8068250
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ mov r8, r5
+ lsls r2, 24
+ lsrs r4, r2, 24
+ adds r7, r4, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_8068364
+ cmp r0, 0
+ bne _0806829C
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl TryGetInvisibleMapObjectScript
+ cmp r0, 0
+ bne _0806829C
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_8068500
+ cmp r0, 0
+ bne _0806829C
+ adds r0, r6, 0
+ mov r1, r8
+ adds r2, r7, 0
+ bl TryGetFieldMoveScript
+ cmp r0, 0
+ bne _0806829C
+ movs r0, 0
+_0806829C:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end TryGetScriptOnPressingA
+
+ thumb_func_start sub_80682A8
+sub_80682A8: @ 80682A8
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r2, 24
+ lsrs r6, r2, 24
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsCounter
+ lsls r0, 24
+ cmp r0, 0
+ bne _080682D0
+ ldrh r0, [r4]
+ ldrh r1, [r4, 0x2]
+ b _080682EE
+_080682D0:
+ ldr r1, _08068314
+ lsls r2, r6, 3
+ adds r0, r2, r1
+ ldr r3, [r0]
+ ldrh r0, [r4]
+ adds r0, r3
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, 0x4
+ adds r2, r1
+ ldr r2, [r2]
+ ldrh r1, [r4, 0x2]
+ adds r1, r2
+ lsls r1, 16
+ lsrs r1, 16
+_080682EE:
+ ldrb r2, [r4, 0x4]
+ bl GetFieldObjectIdByXYZ
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x10
+ beq _0806830E
+ ldr r1, _08068318
+ lsls r2, r3, 3
+ adds r0, r2, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ adds r5, r1, 0
+ cmp r0, 0xFF
+ bne _0806831C
+_0806830E:
+ movs r0, 0
+ b _0806834E
+ .align 2, 0
+_08068314: .4byte gUnknown_0821664C
+_08068318: .4byte 0x030048a0
+_0806831C:
+ movs r4, 0
+ ldr r1, _08068354
+_08068320:
+ ldrb r0, [r1]
+ cmp r0, 0x1
+ bne _0806832C
+ ldrb r0, [r1, 0x2]
+ cmp r0, r3
+ beq _0806830E
+_0806832C:
+ adds r1, 0x4
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08068320
+ ldr r0, _08068358
+ strb r3, [r0]
+ ldr r1, _0806835C
+ adds r0, r2, r3
+ lsls r0, 2
+ adds r0, r5
+ ldrb r0, [r0, 0x8]
+ strh r0, [r1]
+ ldr r0, _08068360
+ strh r6, [r0]
+ adds r0, r3, 0
+ bl GetFieldObjectScriptPointerByFieldObjectId
+_0806834E:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08068354: .4byte 0x02029818
+_08068358: .4byte 0x03004ae0
+_0806835C: .4byte 0x0202e8de
+_08068360: .4byte 0x0202e8e0
+ thumb_func_end sub_80682A8
+
+ thumb_func_start sub_8068364
+sub_8068364: @ 8068364
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldrh r0, [r4]
+ ldrh r1, [r4, 0x2]
+ ldrb r2, [r4, 0x4]
+ bl GetFieldObjectIdByXYZ
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x10
+ beq _08068392
+ ldr r1, _080683E0
+ lsls r2, r3, 3
+ adds r0, r2, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0xFF
+ bne _080683E8
+_08068392:
+ adds r0, r5, 0
+ bl MetatileBehavior_IsCounter
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080683DC
+ ldr r1, _080683E4
+ lsls r2, r6, 3
+ adds r0, r2, r1
+ ldr r3, [r0]
+ ldrh r0, [r4]
+ adds r0, r3
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, 0x4
+ adds r2, r1
+ ldr r2, [r2]
+ ldrh r1, [r4, 0x2]
+ adds r1, r2
+ lsls r1, 16
+ lsrs r1, 16
+ ldrb r2, [r4, 0x4]
+ bl GetFieldObjectIdByXYZ
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x10
+ beq _080683DC
+ ldr r1, _080683E0
+ lsls r2, r3, 3
+ adds r0, r2, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0xFF
+ bne _080683E8
+_080683DC:
+ movs r0, 0
+ b _0806840C
+ .align 2, 0
+_080683E0: .4byte 0x030048a0
+_080683E4: .4byte gUnknown_0821664C
+_080683E8:
+ ldr r0, _08068414
+ strb r3, [r0]
+ ldr r4, _08068418
+ adds r0, r2, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ strh r0, [r4]
+ ldr r0, _0806841C
+ strh r6, [r0]
+ adds r0, r3, 0
+ bl GetFieldObjectScriptPointerByFieldObjectId
+ adds r1, r0, 0
+ ldrb r0, [r4]
+ bl sub_806580C
+ adds r1, r0, 0
+_0806840C:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08068414: .4byte 0x03004ae0
+_08068418: .4byte 0x0202e8de
+_0806841C: .4byte 0x0202e8e0
+ thumb_func_end sub_8068364
+
+ thumb_func_start TryGetInvisibleMapObjectScript
+TryGetInvisibleMapObjectScript: @ 8068420
+ push {r4,r5,lr}
+ lsls r2, 24
+ lsrs r5, r2, 24
+ ldr r4, _08068450
+ ldrh r1, [r0]
+ subs r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ ldrh r2, [r0, 0x2]
+ subs r2, 0x7
+ lsls r2, 16
+ lsrs r2, 16
+ ldrb r3, [r0, 0x4]
+ adds r0, r4, 0
+ bl FindInvisibleMapObjectByPosition
+ cmp r0, 0
+ beq _08068494
+ ldr r2, [r0, 0x8]
+ cmp r2, 0
+ bne _08068458
+ ldr r0, _08068454
+ b _080684FA
+ .align 2, 0
+_08068450: .4byte 0x0202e828
+_08068454: .4byte gUnknown_081C6C02
+_08068458:
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0x8
+ bhi _080684F8
+ lsls r0, 2
+ ldr r1, _08068468
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08068468: .4byte _0806846C
+ .align 2, 0
+_0806846C:
+ .4byte _080684F8
+ .4byte _08068490
+ .4byte _08068498
+ .4byte _0806849E
+ .4byte _080684A4
+ .4byte _080684AA
+ .4byte _080684AA
+ .4byte _080684AA
+ .4byte _080684D8
+_08068490:
+ cmp r5, 0x2
+ beq _080684F8
+_08068494:
+ movs r0, 0
+ b _080684FA
+_08068498:
+ cmp r5, 0x1
+ beq _080684F8
+ b _08068494
+_0806849E:
+ cmp r5, 0x4
+ beq _080684F8
+ b _08068494
+_080684A4:
+ cmp r5, 0x3
+ beq _080684F8
+ b _08068494
+_080684AA:
+ ldr r1, _080684CC
+ lsrs r0, r2, 16
+ movs r3, 0x96
+ lsls r3, 2
+ adds r0, r3
+ strh r0, [r1]
+ ldr r0, _080684D0
+ strh r2, [r0]
+ ldrh r0, [r1]
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068494
+ ldr r0, _080684D4
+ b _080684FA
+ .align 2, 0
+_080684CC: .4byte 0x0202e8cc
+_080684D0: .4byte 0x0202e8ce
+_080684D4: .4byte HiddenItemScript
+_080684D8:
+ cmp r5, 0x2
+ bne _08068494
+ ldr r0, _080684F0
+ strh r2, [r0]
+ bl sub_80BC050
+ lsls r0, 24
+ cmp r0, 0
+ beq _08068494
+ ldr r0, _080684F4
+ b _080684FA
+ .align 2, 0
+_080684F0: .4byte 0x0202e8cc
+_080684F4: .4byte gUnknown_081A2C51
+_080684F8:
+ adds r0, r2, 0
+_080684FA:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end TryGetInvisibleMapObjectScript
+
+ thumb_func_start sub_8068500
+sub_8068500: @ 8068500
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ adds r1, r2, 0
+ bl MetatileBehavior_IsPlayerFacingTVScreen
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068524
+ ldr r0, _08068520
+ b _080686EE
+ .align 2, 0
+_08068520: .4byte Event_TV
+_08068524:
+ adds r0, r5, 0
+ bl MetatileBehavior_IsPC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806853C
+ ldr r0, _08068538
+ b _080686EE
+ .align 2, 0
+_08068538: .4byte gUnknown_081A0009
+_0806853C:
+ adds r0, r5, 0
+ bl is_tile_x8B
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068554
+ ldr r0, _08068550
+ b _080686EE
+ .align 2, 0
+_08068550: .4byte ClosedSootopolisGymDoorScript
+_08068554:
+ adds r0, r5, 0
+ bl is_tile_x84
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806856C
+ ldr r0, _08068568
+ b _080686EE
+ .align 2, 0
+_08068568: .4byte gUnknown_081A4363
+_0806856C:
+ adds r0, r5, 0
+ bl is_tile_x87
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068584
+ ldr r0, _08068580
+ b _080686EE
+ .align 2, 0
+_08068580: .4byte gUnknown_081C346A
+_08068584:
+ adds r0, r5, 0
+ bl is_tile_x8C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806859C
+ ldr r0, _08068598
+ b _080686EE
+ .align 2, 0
+_08068598: .4byte gUnknown_081616E1
+_0806859C:
+ adds r0, r5, 0
+ bl is_tile_x85
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080685B4
+ ldr r0, _080685B0
+ b _080686EE
+ .align 2, 0
+_080685B0: .4byte Event_WorldMap
+_080685B4:
+ adds r0, r5, 0
+ bl sub_805791C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080685CC
+ ldr r0, _080685C8
+ b _080686EE
+ .align 2, 0
+_080685C8: .4byte Event_RunningShoesManual
+_080685CC:
+ adds r0, r5, 0
+ bl sub_8057930
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080685E4
+ ldr r0, _080685E0
+ b _080686EE
+ .align 2, 0
+_080685E0: .4byte PictureBookShelfScript
+_080685E4:
+ adds r0, r5, 0
+ bl sub_8057944
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080685FC
+ ldr r0, _080685F8
+ b _080686EE
+ .align 2, 0
+_080685F8: .4byte BookshelfScript
+_080685FC:
+ adds r0, r5, 0
+ bl sub_8057958
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068614
+ ldr r0, _08068610
+ b _080686EE
+ .align 2, 0
+_08068610: .4byte PokemonCenterBookshelfScript
+_08068614:
+ adds r0, r5, 0
+ bl sub_805796C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806862C
+ ldr r0, _08068628
+ b _080686EE
+ .align 2, 0
+_08068628: .4byte VaseScript
+_0806862C:
+ adds r0, r5, 0
+ bl sub_8057980
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068644
+ ldr r0, _08068640
+ b _080686EE
+ .align 2, 0
+_08068640: .4byte TrashCanScript
+_08068644:
+ adds r0, r5, 0
+ bl sub_8057994
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806865C
+ ldr r0, _08068658
+ b _080686EE
+ .align 2, 0
+_08068658: .4byte ShopShelfScript
+_0806865C:
+ adds r0, r5, 0
+ bl sub_80579A8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068674
+ ldr r0, _08068670
+ b _080686EE
+ .align 2, 0
+_08068670: .4byte BlueprintScript
+_08068674:
+ movs r4, 0x4
+ ldrsb r4, [r6, r4]
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ movs r2, 0x2
+ ldrsh r1, [r6, r2]
+ bl MapGridGetZCoordAt
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r4, r0
+ bne _080686EC
+ adds r0, r5, 0
+ bl sub_8057238
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080686A4
+ ldr r0, _080686A0
+ b _080686EE
+ .align 2, 0
+_080686A0: .4byte gUnknown_0815F36C
+_080686A4:
+ adds r0, r5, 0
+ bl sub_805724C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080686BC
+ ldr r0, _080686B8
+ b _080686EE
+ .align 2, 0
+_080686B8: .4byte gUnknown_0815F43A
+_080686BC:
+ adds r0, r5, 0
+ bl sub_8057364
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080686D4
+ ldr r0, _080686D0
+ b _080686EE
+ .align 2, 0
+_080686D0: .4byte gUnknown_0815F523
+_080686D4:
+ adds r0, r5, 0
+ bl sub_8057378
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080686EC
+ ldr r0, _080686E8
+ b _080686EE
+ .align 2, 0
+_080686E8: .4byte gUnknown_0815F528
+_080686EC:
+ movs r0, 0
+_080686EE:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8068500
+
+ thumb_func_start TryGetFieldMoveScript
+TryGetFieldMoveScript: @ 80686F4
+ push {r4,lr}
+ lsls r1, 24
+ lsrs r4, r1, 24
+ ldr r0, _08068724
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806872C
+ bl PartyHasMonWithSurf
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806872C
+ bl IsPlayerFacingSurfableFishableWater
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806872C
+ ldr r0, _08068728
+ b _0806876A
+ .align 2, 0
+_08068724: .4byte 0x0000080b
+_08068728: .4byte UseSurfScript
+_0806872C:
+ adds r0, r4, 0
+ bl MetatileBehavior_IsWaterfall
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068768
+ ldr r0, _08068758
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068760
+ bl IsPlayerSurfingNorth
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068760
+ ldr r0, _0806875C
+ b _0806876A
+ .align 2, 0
+_08068758: .4byte 0x0000080e
+_0806875C: .4byte UseWaterfallScript
+_08068760:
+ ldr r0, _08068764
+ b _0806876A
+ .align 2, 0
+_08068764: .4byte CannotUseWaterfallScript
+_08068768:
+ movs r0, 0
+_0806876A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end TryGetFieldMoveScript
+
+ thumb_func_start sub_8068770
+sub_8068770: @ 8068770
+ push {lr}
+ ldr r0, _08068794
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806879C
+ bl sub_8068F18
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0806879C
+ ldr r0, _08068798
+ bl script_env_1_execute_new_script
+ movs r0, 0x1
+ b _0806879E
+ .align 2, 0
+_08068794: .4byte 0x0000080d
+_08068798: .4byte UseDiveScript
+_0806879C:
+ movs r0, 0
+_0806879E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8068770
+
+ thumb_func_start sub_80687A4
+sub_80687A4: @ 80687A4
+ push {lr}
+ ldr r0, _080687D0
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _080687DC
+ ldr r0, _080687D4
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x5
+ bne _080687DC
+ bl sub_8068F18
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080687DC
+ ldr r0, _080687D8
+ bl script_env_1_execute_new_script
+ movs r0, 0x1
+ b _080687DE
+ .align 2, 0
+_080687D0: .4byte 0x0000080d
+_080687D4: .4byte 0x0202e828
+_080687D8: .4byte UnderwaterUseDiveScript
+_080687DC:
+ movs r0, 0
+_080687DE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80687A4
+
+ thumb_func_start sub_80687E4
+sub_80687E4: @ 80687E4
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ adds r6, r4, 0
+ bl mapheader_trigger_activate_at__run_now
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068834
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8068A64
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068834
+ adds r0, r6, 0
+ bl sub_8068870
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068834
+ bl sub_8068894
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068834
+ bl sub_8085558
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068834
+ movs r0, 0
+ b _08068836
+_08068834:
+ movs r0, 0x1
+_08068836:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80687E4
+
+ thumb_func_start mapheader_trigger_activate_at__run_now
+mapheader_trigger_activate_at__run_now: @ 806883C
+ push {r4,lr}
+ ldr r4, _08068864
+ ldrh r1, [r0]
+ subs r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ ldrh r2, [r0, 0x2]
+ subs r2, 0x7
+ lsls r2, 16
+ lsrs r2, 16
+ ldrb r3, [r0, 0x4]
+ adds r0, r4, 0
+ bl mapheader_trigger_activate_at
+ cmp r0, 0
+ beq _08068868
+ bl script_env_1_execute_new_script
+ movs r0, 0x1
+ b _0806886A
+ .align 2, 0
+_08068864: .4byte 0x0202e828
+_08068868:
+ movs r0, 0
+_0806886A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end mapheader_trigger_activate_at__run_now
+
+ thumb_func_start sub_8068870
+sub_8068870: @ 8068870
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8057818
+ lsls r0, 24
+ cmp r0, 0
+ bne _08068884
+ movs r0, 0
+ b _0806888C
+_08068884:
+ ldr r0, _08068890
+ bl script_env_1_execute_new_script
+ movs r0, 0x1
+_0806888C:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08068890: .4byte GraniteCave_B1F_EventScript_1C6BC5
+ thumb_func_end sub_8068870
+
+ thumb_func_start sub_8068894
+sub_8068894: @ 8068894
+ push {lr}
+ bl sub_8082B78
+ bl happiness_algorithm_step
+ bl overworld_poison_step
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080688B4
+ ldr r0, _080688B0
+ b _080688E8
+ .align 2, 0
+_080688B0: .4byte gUnknown_081A14B8
+_080688B4:
+ bl sub_80422A0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080688CC
+ movs r0, 0xD
+ bl sav12_xor_increment
+ ldr r0, _080688C8
+ b _080688E8
+ .align 2, 0
+_080688C8: .4byte Event_EggHatch
+_080688CC:
+ bl safari_step
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080688EC
+ movs r0, 0x1
+ bl sub_810D9B0
+ cmp r0, 0x1
+ beq _080688E6
+ movs r0, 0
+ b _080688EE
+_080688E6:
+ ldr r0, _080688F4
+_080688E8:
+ bl script_env_1_execute_new_script
+_080688EC:
+ movs r0, 0x1
+_080688EE:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080688F4: .4byte gUnknown_0815FD0D
+ thumb_func_end sub_8068894
+
+ thumb_func_start unref_sub_80688F8
+unref_sub_80688F8: @ 80688F8
+ push {lr}
+ ldr r0, _08068908
+ movs r1, 0
+ bl VarSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08068908: .4byte 0x0000402a
+ thumb_func_end unref_sub_80688F8
+
+ thumb_func_start happiness_algorithm_step
+happiness_algorithm_step: @ 806890C
+ push {r4,r5,lr}
+ ldr r0, _08068940
+ bl GetVarPointer
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+ ldrh r1, [r0]
+ movs r2, 0x7F
+ ands r1, r2
+ strh r1, [r0]
+ cmp r1, 0
+ bne _0806893A
+ ldr r5, _08068944
+ movs r4, 0x5
+_0806892A:
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl sub_803FCD4
+ adds r5, 0x64
+ subs r4, 0x1
+ cmp r4, 0
+ bge _0806892A
+_0806893A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08068940: .4byte 0x0000402a
+_08068944: .4byte 0x03004360
+ thumb_func_end happiness_algorithm_step
+
+ thumb_func_start overworld_poison_timer_set
+overworld_poison_timer_set: @ 8068948
+ push {lr}
+ ldr r0, _08068958
+ movs r1, 0
+ bl VarSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08068958: .4byte 0x0000402b
+ thumb_func_end overworld_poison_timer_set
+
+ thumb_func_start overworld_poison_step
+overworld_poison_step: @ 806895C
+ push {lr}
+ ldr r0, _08068994
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x9
+ beq _0806899C
+ ldr r0, _08068998
+ bl GetVarPointer
+ ldrh r1, [r0]
+ adds r1, 0x1
+ strh r1, [r0]
+ ldrh r1, [r0]
+ movs r2, 0x3
+ ands r1, r2
+ strh r1, [r0]
+ cmp r1, 0
+ bne _0806899C
+ bl overworld_poison
+ cmp r0, 0x1
+ beq _0806899C
+ cmp r0, 0x1
+ ble _0806899C
+ cmp r0, 0x2
+ bne _0806899C
+ movs r0, 0x1
+ b _0806899E
+ .align 2, 0
+_08068994: .4byte 0x0202e828
+_08068998: .4byte 0x0000402b
+_0806899C:
+ movs r0, 0
+_0806899E:
+ pop {r1}
+ bx r1
+ thumb_func_end overworld_poison_step
+
+ thumb_func_start prev_quest_postbuffer_cursor_backup_reset
+prev_quest_postbuffer_cursor_backup_reset: @ 80689A4
+ ldr r1, _080689AC
+ movs r0, 0
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_080689AC: .4byte 0x0202e8c0
+ thumb_func_end prev_quest_postbuffer_cursor_backup_reset
+
+ thumb_func_start is_it_battle_time_3
+is_it_battle_time_3: @ 80689B0
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r7, r4, 0
+ ldr r6, _080689CC
+ ldrb r0, [r6]
+ cmp r0, 0x3
+ bhi _080689D4
+ adds r0, 0x1
+ strb r0, [r6]
+ ldr r0, _080689D0
+ strh r4, [r0]
+ movs r0, 0
+ b _080689F8
+ .align 2, 0
+_080689CC: .4byte 0x0202e8c0
+_080689D0: .4byte 0x0202e8c2
+_080689D4:
+ ldr r5, _080689EC
+ ldrh r1, [r5]
+ adds r0, r4, 0
+ bl sub_8085104
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080689F0
+ strh r4, [r5]
+ movs r0, 0
+ b _080689F8
+ .align 2, 0
+_080689EC: .4byte 0x0202e8c2
+_080689F0:
+ movs r0, 0
+ strb r0, [r6]
+ strh r7, [r5]
+ movs r0, 0x1
+_080689F8:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end is_it_battle_time_3
+
+ thumb_func_start mapheader_run_first_tag2_script_list_match_conditionally
+mapheader_run_first_tag2_script_list_match_conditionally: @ 8068A00
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _08068A54
+ mov r8, r0
+ adds r1, r7, 0
+ bl map_warp_check_packed
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl is_non_stair_warp_tile
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068A58
+ lsls r0, r6, 24
+ asrs r4, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ beq _08068A58
+ bl walkrun_find_lowest_active_bit_in_bitfield
+ mov r0, r8
+ adds r1, r4, 0
+ adds r2, r7, 0
+ bl sub_8068C30
+ bl sub_8080E88
+ movs r0, 0x1
+ b _08068A5A
+ .align 2, 0
+_08068A54: .4byte 0x0202e828
+_08068A58:
+ movs r0, 0
+_08068A5A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end mapheader_run_first_tag2_script_list_match_conditionally
+
+ thumb_func_start sub_8068A64
+sub_8068A64: @ 8068A64
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ ldr r7, _08068ABC
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl map_warp_check_packed
+ lsls r0, 24
+ asrs r4, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ beq _08068B28
+ adds r0, r5, 0
+ bl sub_8068B30
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068B28
+ bl walkrun_find_lowest_active_bit_in_bitfield
+ adds r0, r7, 0
+ adds r1, r4, 0
+ adds r2, r6, 0
+ bl sub_8068C30
+ lsls r0, r5, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl MetatileBehavior_IsEscalator
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068AC0
+ adds r0, r4, 0
+ bl sub_8080F2C
+ movs r0, 0x1
+ b _08068B2A
+ .align 2, 0
+_08068ABC: .4byte 0x0202e828
+_08068AC0:
+ adds r0, r4, 0
+ bl sub_8057798
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068AD6
+ bl sub_8080F48
+ movs r0, 0x1
+ b _08068B2A
+_08068AD6:
+ adds r0, r4, 0
+ bl is_role_x68
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068AEC
+ bl sub_8080F58
+ movs r0, 0x1
+ b _08068B2A
+_08068AEC:
+ adds r0, r4, 0
+ bl MetatileBehavior_IsAquaHideoutWarp
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068B02
+ bl sub_8080F68
+ movs r0, 0x1
+ b _08068B2A
+_08068B02:
+ adds r0, r4, 0
+ bl sub_8057804
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068B20
+ ldr r0, _08068B1C
+ bl script_env_1_execute_new_script
+ movs r0, 0x1
+ b _08068B2A
+ .align 2, 0
+_08068B1C: .4byte gUnknown_081C6BDE
+_08068B20:
+ bl sub_8080E88
+ movs r0, 0x1
+ b _08068B2A
+_08068B28:
+ movs r0, 0
+_08068B2A:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8068A64
+
+ thumb_func_start sub_8068B30
+sub_8068B30: @ 8068B30
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl is_tile_x69_2_warp_door
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068BAA
+ adds r0, r4, 0
+ bl MetatileBehavior_IsLadder
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068BAA
+ adds r0, r4, 0
+ bl MetatileBehavior_IsEscalator
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068BAA
+ adds r0, r4, 0
+ bl sub_8056F08
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068BAA
+ adds r0, r4, 0
+ bl sub_8057798
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068BAA
+ adds r0, r4, 0
+ bl is_role_x68
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068BAA
+ adds r0, r4, 0
+ bl MetatileBehavior_IsAquaHideoutWarp
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068BAA
+ adds r0, r4, 0
+ bl sub_8057804
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _08068BAA
+ movs r0, 0
+ b _08068BAC
+_08068BAA:
+ movs r0, 0x1
+_08068BAC:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8068B30
+
+ thumb_func_start is_non_stair_warp_tile
+is_non_stair_warp_tile: @ 8068BB4
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, r1, 0
+ cmp r1, 0x2
+ beq _08068BD8
+ cmp r1, 0x2
+ bgt _08068BCE
+ cmp r1, 0x1
+ beq _08068BE2
+ b _08068C04
+_08068BCE:
+ cmp r2, 0x3
+ beq _08068BEC
+ cmp r2, 0x4
+ beq _08068BF6
+ b _08068C04
+_08068BD8:
+ lsls r0, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsNorthArrowWarp
+ b _08068BFE
+_08068BE2:
+ lsls r0, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsSouthArrowWarp
+ b _08068BFE
+_08068BEC:
+ lsls r0, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsWestArrowWarp
+ b _08068BFE
+_08068BF6:
+ lsls r0, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsEastArrowWarp
+_08068BFE:
+ lsls r0, 24
+ lsrs r0, 24
+ b _08068C06
+_08068C04:
+ movs r0, 0
+_08068C06:
+ pop {r1}
+ bx r1
+ thumb_func_end is_non_stair_warp_tile
+
+ thumb_func_start map_warp_check_packed
+map_warp_check_packed: @ 8068C0C
+ push {lr}
+ adds r3, r1, 0
+ ldrh r1, [r3]
+ subs r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ ldrh r2, [r3, 0x2]
+ subs r2, 0x7
+ lsls r2, 16
+ lsrs r2, 16
+ ldrb r3, [r3, 0x4]
+ bl map_warp_check
+ lsls r0, 24
+ asrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end map_warp_check_packed
+
+ thumb_func_start sub_8068C30
+sub_8068C30: @ 8068C30
+ push {r4-r7,lr}
+ adds r5, r2, 0
+ ldr r0, _08068C50
+ ldr r0, [r0, 0x4]
+ lsls r1, 24
+ asrs r7, r1, 24
+ lsls r6, r7, 3
+ ldr r0, [r0, 0x8]
+ adds r4, r0, r6
+ ldrb r0, [r4, 0x6]
+ cmp r0, 0x7F
+ bne _08068C54
+ ldrb r0, [r4, 0x5]
+ bl copy_saved_warp2_bank_and_enter_x_to_warp1
+ b _08068C9E
+ .align 2, 0
+_08068C50: .4byte 0x0202e828
+_08068C54:
+ movs r0, 0x7
+ ldrsb r0, [r4, r0]
+ movs r1, 0x6
+ ldrsb r1, [r4, r1]
+ movs r2, 0x5
+ ldrsb r2, [r4, r2]
+ bl warp1_set_2
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r2, 0x2
+ ldrsh r1, [r5, r2]
+ bl sub_80535C4
+ ldrb r0, [r4, 0x7]
+ ldrb r1, [r4, 0x6]
+ bl get_mapheader_by_bank_and_number
+ ldr r1, [r0, 0x4]
+ ldrb r0, [r4, 0x5]
+ ldr r1, [r1, 0x8]
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0x7F
+ bne _08068C9E
+ adds r0, r6, r1
+ ldrb r0, [r0, 0x5]
+ ldr r2, _08068CA4
+ movs r1, 0x4
+ ldrsb r1, [r2, r1]
+ ldrb r2, [r2, 0x5]
+ lsls r2, 24
+ asrs r2, 24
+ adds r3, r7, 0
+ bl saved_warp2_set
+_08068C9E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08068CA4: .4byte 0x02025734
+ thumb_func_end sub_8068C30
+
+ thumb_func_start map_warp_consider_2_to_inside
+map_warp_consider_2_to_inside: @ 8068CA8
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ lsls r1, 16
+ lsrs r0, r1, 16
+ adds r7, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r2, 0x2
+ bne _08068D2C
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80571C0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068CE0
+ ldr r0, _08068CDC
+ ldr r1, [r0, 0x4]
+ adds r0, r5, 0
+ bl sub_80BC038
+ movs r0, 0x1
+ b _08068D2E
+ .align 2, 0
+_08068CDC: .4byte 0x0202e828
+_08068CE0:
+ adds r0, r4, 0
+ bl is_tile_x69_2_warp_door
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068D2C
+ ldr r6, _08068D28
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl map_warp_check_packed
+ lsls r0, 24
+ asrs r4, r0, 24
+ movs r0, 0x1
+ negs r0, r0
+ cmp r4, r0
+ beq _08068D2C
+ adds r0, r7, 0
+ bl sub_8068B30
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068D2C
+ bl walkrun_find_lowest_active_bit_in_bitfield
+ adds r0, r6, 0
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_8068C30
+ bl sub_8080EF0
+ movs r0, 0x1
+ b _08068D2E
+ .align 2, 0
+_08068D28: .4byte 0x0202e828
+_08068D2C:
+ movs r0, 0
+_08068D2E:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end map_warp_consider_2_to_inside
+
+ thumb_func_start map_warp_check
+map_warp_check: @ 8068D34
+ push {r4-r6,lr}
+ lsls r1, 16
+ lsrs r6, r1, 16
+ lsls r2, 16
+ lsrs r5, r2, 16
+ lsls r3, 24
+ lsrs r4, r3, 24
+ ldr r0, [r0, 0x4]
+ ldr r1, [r0, 0x8]
+ ldrb r3, [r0, 0x1]
+ movs r2, 0
+ cmp r2, r3
+ bge _08068D72
+_08068D4E:
+ ldrh r0, [r1]
+ cmp r0, r6
+ bne _08068D6A
+ ldrh r0, [r1, 0x2]
+ cmp r0, r5
+ bne _08068D6A
+ ldrb r0, [r1, 0x4]
+ cmp r0, r4
+ beq _08068D64
+ cmp r0, 0
+ bne _08068D6A
+_08068D64:
+ lsls r0, r2, 24
+ asrs r0, 24
+ b _08068D76
+_08068D6A:
+ adds r2, 0x1
+ adds r1, 0x8
+ cmp r2, r3
+ blt _08068D4E
+_08068D72:
+ movs r0, 0x1
+ negs r0, r0
+_08068D76:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end map_warp_check
+
+ thumb_func_start trigger_activate
+trigger_activate: @ 8068D7C
+ push {r4,lr}
+ adds r4, r0, 0
+ cmp r4, 0
+ beq _08068DB2
+ ldr r1, [r4, 0xC]
+ cmp r1, 0
+ bne _08068D92
+ ldrb r0, [r4, 0x6]
+ bl sub_8069408
+ b _08068DB2
+_08068D92:
+ ldrh r0, [r4, 0x6]
+ cmp r0, 0
+ beq _08068DAC
+ ldrh r0, [r4, 0x6]
+ bl VarGet
+ lsls r0, 16
+ lsrs r0, 16
+ ldrb r1, [r4, 0x8]
+ cmp r0, r1
+ bne _08068DB2
+ ldr r0, [r4, 0xC]
+ b _08068DB4
+_08068DAC:
+ adds r0, r1, 0
+ bl script_env_2_execute_new_script
+_08068DB2:
+ movs r0, 0
+_08068DB4:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end trigger_activate
+
+ thumb_func_start mapheader_trigger_activate_at
+mapheader_trigger_activate_at: @ 8068DBC
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r1, 16
+ lsrs r1, 16
+ mov r10, r1
+ lsls r2, 16
+ lsrs r2, 16
+ mov r9, r2
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ ldr r0, [r0, 0x4]
+ ldr r1, [r0, 0xC]
+ ldrb r7, [r0, 0x2]
+ movs r6, 0
+ cmp r6, r7
+ bge _08068E12
+ adds r5, r1, 0
+ adds r4, r5, 0
+_08068DE8:
+ ldrh r0, [r4]
+ cmp r0, r10
+ bne _08068E08
+ ldrh r0, [r4, 0x2]
+ cmp r0, r9
+ bne _08068E08
+ ldrb r0, [r4, 0x4]
+ cmp r0, r8
+ beq _08068DFE
+ cmp r0, 0
+ bne _08068E08
+_08068DFE:
+ adds r0, r5, 0
+ bl trigger_activate
+ cmp r0, 0
+ bne _08068E14
+_08068E08:
+ adds r4, 0x10
+ adds r5, 0x10
+ adds r6, 0x1
+ cmp r6, r7
+ blt _08068DE8
+_08068E12:
+ movs r0, 0
+_08068E14:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end mapheader_trigger_activate_at
+
+ thumb_func_start sub_8068E24
+sub_8068E24: @ 8068E24
+ push {r4,lr}
+ ldr r4, _08068E48
+ ldrh r1, [r0]
+ subs r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ ldrh r2, [r0, 0x2]
+ subs r2, 0x7
+ lsls r2, 16
+ lsrs r2, 16
+ ldrb r3, [r0, 0x4]
+ adds r0, r4, 0
+ bl mapheader_trigger_activate_at
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08068E48: .4byte 0x0202e828
+ thumb_func_end sub_8068E24
+
+ thumb_func_start FindInvisibleMapObjectByPosition
+FindInvisibleMapObjectByPosition: @ 8068E4C
+ push {r4-r7,lr}
+ lsls r1, 16
+ lsrs r7, r1, 16
+ lsls r2, 16
+ lsrs r6, r2, 16
+ lsls r3, 24
+ lsrs r5, r3, 24
+ ldr r0, [r0, 0x4]
+ ldr r4, [r0, 0x10]
+ ldrb r3, [r0, 0x3]
+ movs r2, 0
+ cmp r2, r3
+ bcs _08068E92
+_08068E66:
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 2
+ adds r1, r0, r4
+ ldrh r0, [r1]
+ cmp r0, r7
+ bne _08068E88
+ ldrh r0, [r1, 0x2]
+ cmp r0, r6
+ bne _08068E88
+ ldrb r0, [r1, 0x4]
+ cmp r0, r5
+ beq _08068E84
+ cmp r0, 0
+ bne _08068E88
+_08068E84:
+ adds r0, r1, 0
+ b _08068E94
+_08068E88:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, r3
+ bcc _08068E66
+_08068E92:
+ movs r0, 0
+_08068E94:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end FindInvisibleMapObjectByPosition
+
+ thumb_func_start dive_warp
+dive_warp: @ 8068E9C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ ldr r0, _08068ED0
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x5
+ bne _08068ED4
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_805750C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08068ED4
+ ldrh r0, [r4]
+ subs r0, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r4, 0x2]
+ subs r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80538B0
+ b _08068EF8
+ .align 2, 0
+_08068ED0: .4byte 0x0202e828
+_08068ED4:
+ lsls r0, r5, 24
+ lsrs r0, 24
+ bl sub_80574EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068F10
+ ldrh r0, [r4]
+ subs r0, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r4, 0x2]
+ subs r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80538D0
+_08068EF8:
+ lsls r0, 24
+ cmp r0, 0
+ beq _08068F10
+ bl walkrun_find_lowest_active_bit_in_bitfield
+ bl sp13E_warp_to_last_warp
+ movs r0, 0xE9
+ bl audio_play
+ movs r0, 0x1
+ b _08068F12
+_08068F10:
+ movs r0, 0
+_08068F12:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end dive_warp
+
+ thumb_func_start sub_8068F18
+sub_8068F18: @ 8068F18
+ push {r4,r5,lr}
+ sub sp, 0x4
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _08068F70
+ ldrb r0, [r0, 0x17]
+ cmp r0, 0x5
+ bne _08068F74
+ adds r0, r5, 0
+ bl sub_805750C
+ lsls r0, 24
+ cmp r0, 0
+ bne _08068F74
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r0, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r4]
+ subs r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80538B0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068FA4
+ movs r0, 0x1
+ b _08068FA6
+ .align 2, 0
+_08068F70: .4byte 0x0202e828
+_08068F74:
+ adds r0, r5, 0
+ bl sub_80574EC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068FA4
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r0, 0x7
+ lsls r0, 16
+ lsrs r0, 16
+ ldrh r1, [r4]
+ subs r1, 0x7
+ lsls r1, 16
+ lsrs r1, 16
+ bl sub_80538D0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08068FA4
+ movs r0, 0x2
+ b _08068FA6
+_08068FA4:
+ movs r0, 0
+_08068FA6:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8068F18
+
+ thumb_func_start GetFieldObjectScriptPointerForComparison
+GetFieldObjectScriptPointerForComparison: @ 8068FB0
+ push {r4,r5,lr}
+ sub sp, 0x8
+ bl player_get_direction_upper_nybble
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r5, sp
+ mov r0, sp
+ bl player_get_next_pos_and_height
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0x2
+ ldrsh r1, [r5, r2]
+ bl MapGridGetMetatileBehaviorAt
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, sp
+ adds r2, r4, 0
+ bl sub_8068364
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end GetFieldObjectScriptPointerForComparison
+
+ thumb_func_start sub_8068FEC
+sub_8068FEC: @ 8068FEC
+ push {r4,lr}
+ sub sp, 0x8
+ bl player_get_direction_upper_nybble
+ mov r4, sp
+ mov r0, sp
+ bl player_get_pos_to_and_height
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ ldr r4, _0806902C
+ adds r0, r4, 0
+ mov r1, sp
+ bl map_warp_check_packed
+ adds r1, r0, 0
+ lsls r1, 24
+ asrs r1, 24
+ adds r0, r4, 0
+ mov r2, sp
+ bl sub_8068C30
+ movs r0, 0
+ add sp, 0x8
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806902C: .4byte 0x0202e828
+ thumb_func_end sub_8068FEC
+
+ thumb_func_start sub_8069030
+sub_8069030: @ 8069030
+ push {r4,lr}
+ ldr r4, _08069064
+ movs r2, 0x90
+ lsls r2, 1
+ adds r0, r4, 0
+ movs r1, 0
+ bl memset
+ movs r0, 0x90
+ lsls r0, 1
+ adds r4, r0
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r4, 0
+ movs r1, 0
+ bl memset
+ ldr r0, _08069068
+ movs r1, 0
+ movs r2, 0x10
+ bl memset
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08069064: .4byte 0x02026954
+_08069068: .4byte 0x0202e8e2
+ thumb_func_end sub_8069030
+
+ thumb_func_start sub_806906C
+sub_806906C: @ 806906C
+ push {lr}
+ ldr r0, _080690A0
+ movs r1, 0
+ str r1, [r0]
+ movs r1, 0x90
+ lsls r1, 1
+ adds r0, r1
+ movs r1, 0
+ movs r2, 0x20
+ bl memset
+ ldr r0, _080690A4
+ bl FlagReset
+ ldr r0, _080690A8
+ bl FlagReset
+ ldr r0, _080690AC
+ bl FlagReset
+ ldr r0, _080690B0
+ bl FlagReset
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080690A0: .4byte 0x02026954
+_080690A4: .4byte 0x0000084d
+_080690A8: .4byte 0x0000084e
+_080690AC: .4byte 0x00000829
+_080690B0: .4byte 0x00000861
+ thumb_func_end sub_806906C
+
+ thumb_func_start sub_80690B4
+sub_80690B4: @ 80690B4
+ push {lr}
+ ldr r0, _080690C4
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080690C4: .4byte 0x02026a6c
+ thumb_func_end sub_80690B4
+
+ thumb_func_start sub_80690C8
+sub_80690C8: @ 80690C8
+ push {lr}
+ ldr r0, _080690E4
+ bl GetVarPointer
+ ldr r2, _080690E8
+ movs r1, 0
+ strb r1, [r2, 0x1A]
+ strh r1, [r0]
+ ldr r0, _080690EC
+ bl FlagReset
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080690E4: .4byte 0x00004046
+_080690E8: .4byte gSaveBlock2
+_080690EC: .4byte 0x00000836
+ thumb_func_end sub_80690C8
+
+ thumb_func_start sub_80690F0
+sub_80690F0: @ 80690F0
+ push {r4,r5,lr}
+ ldr r0, _0806911C
+ bl GetVarPointer
+ ldr r4, _08069120
+ movs r5, 0
+ movs r1, 0xDA
+ strb r1, [r4, 0x1A]
+ ldr r2, _08069124
+ adds r1, r2, 0
+ strh r1, [r0]
+ ldr r0, _08069128
+ bl FlagSet
+ movs r0, 0x1
+ strb r0, [r4, 0x19]
+ strb r5, [r4, 0x18]
+ bl sub_808C0A0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806911C: .4byte 0x00004046
+_08069120: .4byte gSaveBlock2
+_08069124: .4byte 0x00000302
+_08069128: .4byte 0x00000836
+ thumb_func_end sub_80690F0
+
+ thumb_func_start sub_806912C
+sub_806912C: @ 806912C
+ push {lr}
+ ldr r0, _08069154
+ ldrb r0, [r0, 0x1A]
+ cmp r0, 0xDA
+ bne _08069164
+ ldr r0, _08069158
+ bl VarGet
+ lsls r0, 16
+ ldr r1, _0806915C
+ cmp r0, r1
+ bne _08069164
+ ldr r0, _08069160
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _08069164
+ movs r0, 0x1
+ b _08069166
+ .align 2, 0
+_08069154: .4byte gSaveBlock2
+_08069158: .4byte 0x00004046
+_0806915C: .4byte 0x03020000
+_08069160: .4byte 0x00000836
+_08069164:
+ movs r0, 0
+_08069166:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806912C
+
+ thumb_func_start unref_sub_806916C
+unref_sub_806916C: @ 806916C
+ push {lr}
+ ldr r0, _08069178
+ bl FlagReset
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08069178: .4byte 0x0000084c
+ thumb_func_end unref_sub_806916C
+
+ thumb_func_start unref_sub_806917C
+unref_sub_806917C: @ 806917C
+ push {lr}
+ ldr r0, _08069188
+ bl FlagSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08069188: .4byte 0x0000084c
+ thumb_func_end unref_sub_806917C
+
+ thumb_func_start sub_806918C
+sub_806918C: @ 806918C
+ push {lr}
+ ldr r0, _0806919C
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806919C: .4byte 0x0000084c
+ thumb_func_end sub_806918C
+
+ thumb_func_start sub_80691A0
+sub_80691A0: @ 80691A0
+ push {lr}
+ ldr r0, _080691B4
+ movs r1, 0
+ bl VarSet
+ ldr r0, _080691B8
+ bl FlagReset
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080691B4: .4byte 0x0000402c
+_080691B8: .4byte 0x00000862
+ thumb_func_end sub_80691A0
+
+ thumb_func_start sub_80691BC
+sub_80691BC: @ 80691BC
+ push {lr}
+ ldr r0, _080691D4
+ movs r1, 0x92
+ lsls r1, 4
+ bl VarSet
+ ldr r0, _080691D8
+ bl FlagSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080691D4: .4byte 0x0000402c
+_080691D8: .4byte 0x00000862
+ thumb_func_end sub_80691BC
+
+ thumb_func_start sub_80691DC
+sub_80691DC: @ 80691DC
+ push {lr}
+ ldr r0, _08069200
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _08069208
+ ldr r0, _08069204
+ bl VarGet
+ lsls r0, 16
+ movs r1, 0x92
+ lsls r1, 20
+ cmp r0, r1
+ bne _08069208
+ movs r0, 0x1
+ b _0806920A
+ .align 2, 0
+_08069200: .4byte 0x00000862
+_08069204: .4byte 0x0000402c
+_08069208:
+ movs r0, 0
+_0806920A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80691DC
+
+ thumb_func_start GetVarPointer
+GetVarPointer: @ 8069210
+ push {lr}
+ lsls r0, 16
+ lsrs r1, r0, 16
+ adds r2, r1, 0
+ ldr r0, _08069224
+ cmp r1, r0
+ bhi _08069228
+ movs r0, 0
+ b _0806924A
+ .align 2, 0
+_08069224: .4byte 0x00003fff
+_08069228:
+ lsls r0, r1, 16
+ cmp r0, 0
+ bge _08069244
+ ldr r0, _0806923C
+ ldr r2, _08069240
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldr r0, [r1]
+ b _0806924A
+ .align 2, 0
+_0806923C: .4byte gUnknown_0814B14C
+_08069240: .4byte 0xffff8000
+_08069244:
+ lsls r0, r2, 1
+ ldr r1, _08069250
+ adds r0, r1
+_0806924A:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08069250: .4byte 0x0201ea74
+ thumb_func_end GetVarPointer
+
+ thumb_func_start VarGet
+VarGet: @ 8069254
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl GetVarPointer
+ cmp r0, 0
+ beq _08069268
+ ldrh r0, [r0]
+ b _0806926A
+_08069268:
+ adds r0, r4, 0
+_0806926A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end VarGet
+
+ thumb_func_start VarSet
+VarSet: @ 8069270
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 16
+ lsrs r4, r1, 16
+ bl GetVarPointer
+ cmp r0, 0
+ beq _08069288
+ strh r4, [r0]
+ movs r0, 0x1
+ b _0806928A
+_08069288:
+ movs r0, 0
+_0806928A:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end VarSet
+
+ thumb_func_start VarGetFieldObjectGraphicsId
+VarGetFieldObjectGraphicsId: @ 8069290
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 8
+ ldr r1, _080692A8
+ adds r0, r1
+ lsrs r0, 16
+ bl VarGet
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080692A8: .4byte 0x40100000
+ thumb_func_end VarGetFieldObjectGraphicsId
+
+ thumb_func_start GetFlagPointer
+GetFlagPointer: @ 80692AC
+ push {lr}
+ lsls r2, r0, 16
+ lsrs r1, r2, 16
+ adds r3, r1, 0
+ cmp r1, 0
+ bne _080692BC
+ movs r0, 0
+ b _080692E2
+_080692BC:
+ ldr r0, _080692C8
+ cmp r1, r0
+ bhi _080692D0
+ lsrs r0, r2, 19
+ ldr r1, _080692CC
+ b _080692E0
+ .align 2, 0
+_080692C8: .4byte 0x00003fff
+_080692CC: .4byte 0x02026954
+_080692D0:
+ ldr r1, _080692E8
+ adds r0, r3, r1
+ cmp r0, 0
+ bge _080692DC
+ adds r1, 0x7
+ adds r0, r3, r1
+_080692DC:
+ asrs r0, 3
+ ldr r1, _080692EC
+_080692E0:
+ adds r0, r1
+_080692E2:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080692E8: .4byte 0xffffc000
+_080692EC: .4byte 0x0202e8e2
+ thumb_func_end GetFlagPointer
+
+ thumb_func_start FlagSet
+FlagSet: @ 80692F0
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl GetFlagPointer
+ adds r2, r0, 0
+ cmp r2, 0
+ beq _08069310
+ movs r0, 0x7
+ ands r0, r4
+ movs r1, 0x1
+ lsls r1, r0
+ ldrb r0, [r2]
+ orrs r1, r0
+ strb r1, [r2]
+_08069310:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end FlagSet
+
+ thumb_func_start FlagReset
+FlagReset: @ 8069318
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl GetFlagPointer
+ adds r2, r0, 0
+ cmp r2, 0
+ beq _08069338
+ movs r0, 0x7
+ ands r0, r4
+ movs r1, 0x1
+ lsls r1, r0
+ ldrb r0, [r2]
+ bics r0, r1
+ strb r0, [r2]
+_08069338:
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end FlagReset
+
+ thumb_func_start FlagGet
+FlagGet: @ 8069340
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r0, r4, 0
+ bl GetFlagPointer
+ cmp r0, 0
+ beq _08069364
+ ldrb r0, [r0]
+ movs r1, 0x7
+ ands r1, r4
+ asrs r0, r1
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08069364
+ movs r0, 0x1
+ b _08069366
+_08069364:
+ movs r0, 0
+_08069366:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end FlagGet
+
+ thumb_func_start sub_806936C
+sub_806936C: @ 806936C
+ push {lr}
+ movs r0, 0x1
+ bl sub_808070C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806936C
+
+ thumb_func_start sub_8069378
+sub_8069378: @ 8069378
+ push {lr}
+ movs r0, 0x2
+ bl sub_808070C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8069378
+
+ thumb_func_start sub_8069384
+sub_8069384: @ 8069384
+ push {lr}
+ movs r0, 0x3
+ bl sub_808070C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8069384
+
+ thumb_func_start sub_8069390
+sub_8069390: @ 8069390
+ push {lr}
+ movs r0, 0x4
+ bl sub_808070C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8069390
+
+ thumb_func_start sub_806939C
+sub_806939C: @ 806939C
+ push {lr}
+ movs r0, 0x5
+ bl sub_808070C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806939C
+
+ thumb_func_start sub_80693A8
+sub_80693A8: @ 80693A8
+ push {lr}
+ movs r0, 0x6
+ bl sub_808070C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80693A8
+
+ thumb_func_start sub_80693B4
+sub_80693B4: @ 80693B4
+ push {lr}
+ movs r0, 0x9
+ bl sub_808070C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80693B4
+
+ thumb_func_start sub_80693C0
+sub_80693C0: @ 80693C0
+ push {lr}
+ movs r0, 0x7
+ bl sub_808070C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80693C0
+
+ thumb_func_start sub_80693CC
+sub_80693CC: @ 80693CC
+ push {lr}
+ movs r0, 0x8
+ bl sub_808070C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80693CC
+
+ thumb_func_start sub_80693D8
+sub_80693D8: @ 80693D8
+ push {lr}
+ movs r0, 0xB
+ bl sub_808070C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80693D8
+
+ thumb_func_start sub_80693E4
+sub_80693E4: @ 80693E4
+ push {lr}
+ movs r0, 0xC
+ bl sub_808070C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80693E4
+
+ thumb_func_start sub_80693F0
+sub_80693F0: @ 80693F0
+ push {lr}
+ movs r0, 0x14
+ bl sub_808070C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80693F0
+
+ thumb_func_start sub_80693FC
+sub_80693FC: @ 80693FC
+ push {lr}
+ movs r0, 0x15
+ bl sub_808070C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80693FC
+
+ thumb_func_start sub_8069408
+sub_8069408: @ 8069408
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r2, 0
+ ldr r3, _08069428
+_08069412:
+ lsls r1, r2, 3
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, r4
+ bne _0806942C
+ adds r0, r3, 0x4
+ adds r0, r1, r0
+ ldr r0, [r0]
+ bl _call_via_r0
+ b _08069436
+ .align 2, 0
+_08069428: .4byte gUnknown_083762FC
+_0806942C:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xC
+ bls _08069412
+_08069436:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8069408
+
+ thumb_func_start task_per_step_callback_manager
+task_per_step_callback_manager: @ 806943C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _08069460
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r2, 0x8
+ ldrsh r1, [r1, r2]
+ ldr r2, _08069464
+ lsls r1, 2
+ adds r1, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08069460: .4byte 0x03004b20
+_08069464: .4byte gUnknown_08376364
+ thumb_func_end task_per_step_callback_manager
+
+ thumb_func_start sub_8069468
+sub_8069468: @ 8069468
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0806947A
+ cmp r0, 0x1
+ beq _08069498
+ b _080694AC
+_0806947A:
+ ldr r0, _08069494
+ ldr r0, [r0, 0x20]
+ movs r1, 0x80
+ lsls r1, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _080694AC
+ bl InTrainerHill
+ ldrh r0, [r4]
+ adds r0, 0x1
+ b _080694AA
+ .align 2, 0
+_08069494: .4byte 0x03001770
+_08069498:
+ ldr r0, _080694B4
+ ldr r0, [r0, 0x20]
+ movs r1, 0x80
+ lsls r1, 5
+ ands r0, r1
+ cmp r0, 0
+ bne _080694AC
+ ldrh r0, [r4]
+ subs r0, 0x1
+_080694AA:
+ strh r0, [r4]
+_080694AC:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080694B4: .4byte 0x03001770
+ thumb_func_end sub_8069468
+
+ thumb_func_start sub_80694B8
+sub_80694B8: @ 80694B8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _080694E8
+ adds r4, r1, r0
+ bl script_env_2_is_enabled
+ lsls r0, 24
+ cmp r0, 0
+ bne _080694E0
+ adds r0, r4, 0
+ bl sub_8069468
+ adds r0, r4, 0x2
+ adds r1, r4, 0x4
+ bl sub_80540D0
+_080694E0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080694E8: .4byte 0x03004b28
+ thumb_func_end sub_80694B8
+
+ thumb_func_start overworld_ensure_per_step_coros_running
+overworld_ensure_per_step_coros_running: @ 80694EC
+ push {r4,r5,lr}
+ ldr r5, _08069548
+ adds r0, r5, 0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _08069516
+ adds r0, r5, 0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0806954C
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+_08069516:
+ ldr r4, _08069550
+ adds r0, r4, 0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806952C
+ adds r0, r4, 0
+ movs r1, 0x50
+ bl CreateTask
+_0806952C:
+ ldr r4, _08069554
+ adds r0, r4, 0
+ bl FuncIsActiveTask
+ lsls r0, 24
+ cmp r0, 0
+ bne _08069542
+ adds r0, r4, 0
+ movs r1, 0x50
+ bl CreateTask
+_08069542:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08069548: .4byte task_per_step_callback_manager
+_0806954C: .4byte 0x03004b20
+_08069550: .4byte sub_806A1E8
+_08069554: .4byte sub_80694B8
+ thumb_func_end overworld_ensure_per_step_coros_running
+
+ thumb_func_start activate_per_step_callback
+activate_per_step_callback: @ 8069558
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _08069590
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xFF
+ beq _0806959A
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _08069594
+ adds r1, r0, r1
+ movs r2, 0
+ adds r0, r1, 0
+ adds r0, 0x1E
+_0806957C:
+ strh r2, [r0]
+ subs r0, 0x2
+ cmp r0, r1
+ bge _0806957C
+ cmp r4, 0x7
+ bls _08069598
+ movs r0, 0
+ strh r0, [r1]
+ b _0806959A
+ .align 2, 0
+_08069590: .4byte task_per_step_callback_manager
+_08069594: .4byte 0x03004b28
+_08069598:
+ strh r4, [r1]
+_0806959A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end activate_per_step_callback
+
+ thumb_func_start wild_encounter_reset_coro_args
+wild_encounter_reset_coro_args: @ 80695A0
+ push {lr}
+ ldr r0, _080695D0
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r0, _080695D4
+ bl FindTaskIdByFunc
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0xFF
+ beq _080695CA
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ ldr r1, _080695D8
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x2]
+ strh r1, [r0, 0x4]
+_080695CA:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080695D0: .4byte task_per_step_callback_manager
+_080695D4: .4byte sub_80694B8
+_080695D8: .4byte 0x03004b28
+ thumb_func_end wild_encounter_reset_coro_args
+
+ thumb_func_start nullsub_51
+nullsub_51: @ 80695DC
+ bx lr
+ thumb_func_end nullsub_51
+
+ thumb_func_start sub_80695E0
+sub_80695E0: @ 80695E0
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ adds r0, r4, 0
+ bl sub_80576A0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080695F8
+ adds r0, r5, 0
+ b _08069630
+_080695F8:
+ adds r0, r4, 0
+ bl sub_80576B4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806960A
+ adds r0, r5, 0
+ adds r0, 0x8
+ b _08069630
+_0806960A:
+ adds r0, r4, 0
+ bl sub_80576C8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806961C
+ adds r0, r5, 0
+ adds r0, 0x10
+ b _08069630
+_0806961C:
+ adds r0, r4, 0
+ bl sub_80576DC
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806962C
+ movs r0, 0
+ b _08069630
+_0806962C:
+ adds r0, r5, 0
+ adds r0, 0x18
+_08069630:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80695E0
+
+ thumb_func_start sub_8069638
+sub_8069638: @ 8069638
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r5, r0, 0
+ mov r8, r3
+ lsls r1, 16
+ asrs r6, r1, 16
+ lsls r2, 16
+ asrs r7, r2, 16
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl MapGridGetMetatileBehaviorAt
+ adds r1, r0, 0
+ lsls r1, 16
+ lsrs r1, 16
+ adds r0, r5, 0
+ bl sub_80695E0
+ adds r4, r0, 0
+ adds r5, r4, 0
+ cmp r4, 0
+ beq _080696B6
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ adds r0, r6, r0
+ movs r1, 0x1
+ ldrsb r1, [r4, r1]
+ adds r1, r7, r1
+ ldrh r2, [r4, 0x2]
+ bl MapGridSetMetatileIdAt
+ mov r0, r8
+ cmp r0, 0
+ beq _0806968E
+ movs r0, 0
+ ldrsb r0, [r4, r0]
+ adds r0, r6, r0
+ movs r1, 0x1
+ ldrsb r1, [r4, r1]
+ adds r1, r7, r1
+ bl CurrentMapDrawMetatileAt
+_0806968E:
+ movs r0, 0x4
+ ldrsb r0, [r5, r0]
+ adds r0, r6, r0
+ movs r1, 0x5
+ ldrsb r1, [r5, r1]
+ adds r1, r7, r1
+ ldrh r2, [r5, 0x6]
+ bl MapGridSetMetatileIdAt
+ mov r0, r8
+ cmp r0, 0
+ beq _080696B6
+ movs r0, 0x4
+ ldrsb r0, [r5, r0]
+ adds r0, r6, r0
+ movs r1, 0x5
+ ldrsb r1, [r5, r1]
+ adds r1, r7, r1
+ bl CurrentMapDrawMetatileAt
+_080696B6:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8069638
+
+ thumb_func_start sub_80696C0
+sub_80696C0: @ 80696C0
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r3, r2, 0
+ ldr r0, _080696E0
+ lsls r4, 16
+ asrs r4, 16
+ lsls r5, 16
+ asrs r5, 16
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_8069638
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080696E0: .4byte gUnknown_08376384
+ thumb_func_end sub_80696C0
+
+ thumb_func_start sub_80696E4
+sub_80696E4: @ 80696E4
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r3, r2, 0
+ ldr r0, _08069704
+ lsls r4, 16
+ asrs r4, 16
+ lsls r5, 16
+ asrs r5, 16
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_8069638
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08069704: .4byte gUnknown_083763A4
+ thumb_func_end sub_80696E4
+
+ thumb_func_start sub_8069708
+sub_8069708: @ 8069708
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r3, r2, 0
+ ldr r0, _08069728
+ lsls r4, 16
+ asrs r4, 16
+ lsls r5, 16
+ asrs r5, 16
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_8069638
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08069728: .4byte gUnknown_083763C4
+ thumb_func_end sub_8069708
+
+ thumb_func_start sub_806972C
+sub_806972C: @ 806972C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 16
+ lsrs r0, 16
+ mov r8, r0
+ mov r10, r8
+ lsls r1, 16
+ lsrs r7, r1, 16
+ mov r9, r7
+ lsls r2, 16
+ asrs r6, r2, 16
+ lsls r3, 16
+ asrs r5, r3, 16
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80576A0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08069770
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r0, r5
+ ble _080697B6
+_0806976C:
+ movs r0, 0
+ b _080697B8
+_08069770:
+ adds r0, r4, 0
+ bl sub_80576B4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08069788
+ mov r1, r9
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, r5
+ bge _080697B6
+ b _0806976C
+_08069788:
+ adds r0, r4, 0
+ bl sub_80576C8
+ lsls r0, 24
+ cmp r0, 0
+ beq _080697A0
+ mov r1, r8
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, r6
+ ble _080697B6
+ b _0806976C
+_080697A0:
+ adds r0, r4, 0
+ bl sub_80576DC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080697B6
+ mov r1, r10
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r0, r6
+ blt _0806976C
+_080697B6:
+ movs r0, 0x1
+_080697B8:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806972C
+
+ thumb_func_start sub_80697C8
+sub_80697C8: @ 80697C8
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ mov r10, r8
+ lsls r3, 16
+ lsrs r7, r3, 16
+ mov r9, r7
+ lsls r0, 16
+ asrs r6, r0, 16
+ lsls r1, 16
+ asrs r5, r1, 16
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ bl sub_80576A0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806980C
+ lsls r0, r7, 16
+ asrs r0, 16
+ cmp r5, r0
+ bge _08069852
+_08069808:
+ movs r0, 0
+ b _08069854
+_0806980C:
+ adds r0, r4, 0
+ bl sub_80576B4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08069824
+ mov r1, r9
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r5, r0
+ ble _08069852
+ b _08069808
+_08069824:
+ adds r0, r4, 0
+ bl sub_80576C8
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806983C
+ mov r1, r8
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r6, r0
+ bge _08069852
+ b _08069808
+_0806983C:
+ adds r0, r4, 0
+ bl sub_80576DC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08069852
+ mov r1, r10
+ lsls r0, r1, 16
+ asrs r0, 16
+ cmp r6, r0
+ bgt _08069808
+_08069852:
+ movs r0, 0x1
+_08069854:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80697C8
+
+ thumb_func_start sub_8069864
+sub_8069864: @ 8069864
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08069898
+ adds r4, r1, r0
+ mov r5, sp
+ adds r5, 0x2
+ mov r0, sp
+ adds r1, r5, 0
+ bl PlayerGetDestCoords
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ adds r6, r5, 0
+ cmp r0, 0x1
+ beq _080698BE
+ cmp r0, 0x1
+ bgt _0806989C
+ cmp r0, 0
+ beq _080698A2
+ b _080699CE
+ .align 2, 0
+_08069898: .4byte 0x03004b28
+_0806989C:
+ cmp r0, 0x2
+ beq _0806998C
+ b _080699CE
+_080698A2:
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x4]
+ ldrh r0, [r5]
+ strh r0, [r4, 0x6]
+ mov r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r3, 0
+ ldrsh r1, [r5, r3]
+ movs r2, 0x1
+ bl sub_80696E4
+ b _080699CA
+_080698BE:
+ mov r0, sp
+ movs r7, 0
+ ldrsh r1, [r0, r7]
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ cmp r1, r0
+ bne _080698D8
+ movs r3, 0
+ ldrsh r1, [r5, r3]
+ movs r7, 0x6
+ ldrsh r0, [r4, r7]
+ cmp r1, r0
+ beq _080699CE
+_080698D8:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ movs r5, 0x6
+ ldrsh r3, [r4, r5]
+ bl sub_806972C
+ cmp r0, 0
+ beq _08069920
+ movs r7, 0x4
+ ldrsh r0, [r4, r7]
+ movs r2, 0x6
+ ldrsh r1, [r4, r2]
+ movs r2, 0x1
+ bl sub_80696C0
+ movs r3, 0x4
+ ldrsh r0, [r4, r3]
+ movs r5, 0x6
+ ldrsh r1, [r4, r5]
+ movs r2, 0
+ bl sub_8069708
+ ldrh r0, [r4, 0x4]
+ strh r0, [r4, 0x8]
+ ldrh r0, [r4, 0x6]
+ strh r0, [r4, 0xA]
+ movs r0, 0x2
+ strh r0, [r4, 0x2]
+ movs r0, 0x8
+ strh r0, [r4, 0xC]
+ b _0806992A
+_08069920:
+ movs r7, 0x1
+ negs r7, r7
+ adds r0, r7, 0
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xA]
+_0806992A:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ adds r5, r6, 0
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ movs r7, 0x6
+ ldrsh r3, [r4, r7]
+ bl sub_80697C8
+ cmp r0, 0
+ beq _0806995E
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ movs r2, 0x1
+ bl sub_80696C0
+ movs r0, 0x2
+ strh r0, [r4, 0x2]
+ movs r0, 0x8
+ strh r0, [r4, 0xC]
+_0806995E:
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x4]
+ ldrh r0, [r6]
+ strh r0, [r4, 0x6]
+ mov r0, sp
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ movs r5, 0
+ ldrsh r1, [r6, r5]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsPacifidlogLog
+ lsls r0, 24
+ cmp r0, 0
+ beq _080699CE
+ movs r0, 0x46
+ bl audio_play
+ b _080699CE
+_0806998C:
+ ldrh r0, [r4, 0xC]
+ subs r0, 0x1
+ strh r0, [r4, 0xC]
+ lsls r0, 16
+ cmp r0, 0
+ bne _080699CE
+ mov r0, sp
+ movs r7, 0
+ ldrsh r0, [r0, r7]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ movs r2, 0x1
+ bl sub_80696E4
+ movs r3, 0x8
+ ldrsh r0, [r4, r3]
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _080699CA
+ movs r5, 0xA
+ ldrsh r0, [r4, r5]
+ cmp r0, r1
+ beq _080699CA
+ movs r7, 0x8
+ ldrsh r0, [r4, r7]
+ movs r2, 0xA
+ ldrsh r1, [r4, r2]
+ movs r2, 0x1
+ bl sub_8069708
+_080699CA:
+ movs r0, 0x1
+ strh r0, [r4, 0x2]
+_080699CE:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8069864
+
+ thumb_func_start sub_80699D8
+sub_80699D8: @ 80699D8
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 16
+ lsrs r5, r1, 16
+ bl PlayerGetZCoord
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08069A32
+ lsls r0, r4, 16
+ asrs r4, r0, 16
+ lsls r0, r5, 16
+ asrs r5, r0, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileIdAt
+ adds r1, r0, 0
+ ldr r0, _08069A14
+ cmp r1, r0
+ beq _08069A18
+ adds r0, 0x8
+ cmp r1, r0
+ beq _08069A28
+ b _08069A32
+ .align 2, 0
+_08069A14: .4byte 0x0000024e
+_08069A18:
+ ldr r2, _08069A24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridSetMetatileIdAt
+ b _08069A32
+ .align 2, 0
+_08069A24: .4byte 0x0000024f
+_08069A28:
+ ldr r2, _08069A38
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridSetMetatileIdAt
+_08069A32:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08069A38: .4byte 0x00000257
+ thumb_func_end sub_80699D8
+
+ thumb_func_start sub_8069A3C
+sub_8069A3C: @ 8069A3C
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 16
+ lsrs r5, r1, 16
+ bl PlayerGetZCoord
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08069A96
+ lsls r0, r4, 16
+ asrs r4, r0, 16
+ lsls r0, r5, 16
+ asrs r5, r0, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridGetMetatileIdAt
+ adds r1, r0, 0
+ ldr r0, _08069A78
+ cmp r1, r0
+ beq _08069A7C
+ adds r0, 0x8
+ cmp r1, r0
+ beq _08069A8C
+ b _08069A96
+ .align 2, 0
+_08069A78: .4byte 0x0000024f
+_08069A7C:
+ ldr r2, _08069A88
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridSetMetatileIdAt
+ b _08069A96
+ .align 2, 0
+_08069A88: .4byte 0x0000024e
+_08069A8C:
+ ldr r2, _08069A9C
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl MapGridSetMetatileIdAt
+_08069A96:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08069A9C: .4byte 0x00000256
+ thumb_func_end sub_8069A3C
+
+ thumb_func_start sub_8069AA0
+sub_8069AA0: @ 8069AA0
+ 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
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08069ADC
+ adds r6, r1, r0
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ movs r0, 0x2
+ ldrsh r5, [r6, r0]
+ mov r9, r4
+ cmp r5, 0x1
+ beq _08069B34
+ cmp r5, 0x1
+ bgt _08069AE0
+ cmp r5, 0
+ beq _08069AE8
+ b _08069CA6
+ .align 2, 0
+_08069ADC: .4byte 0x03004b28
+_08069AE0:
+ cmp r5, 0x2
+ bne _08069AE6
+ b _08069C14
+_08069AE6:
+ b _08069CA6
+_08069AE8:
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r6, 0x4]
+ mov r1, r9
+ ldrh r0, [r1]
+ strh r0, [r6, 0x6]
+ mov r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsFortreeBridge
+ lsls r0, 24
+ cmp r0, 0
+ bne _08069B12
+ b _08069CA2
+_08069B12:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ mov r2, r9
+ movs r3, 0
+ ldrsh r1, [r2, r3]
+ bl sub_80699D8
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ mov r2, r9
+ movs r3, 0
+ ldrsh r1, [r2, r3]
+ bl CurrentMapDrawMetatileAt
+ b _08069CA2
+_08069B34:
+ ldrh r0, [r6, 0x6]
+ mov r8, r0
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ ldrh r2, [r6, 0x4]
+ mov r10, r2
+ movs r3, 0x4
+ ldrsh r7, [r6, r3]
+ cmp r0, r7
+ bne _08069B5C
+ mov r0, r9
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ mov r3, r8
+ lsls r0, r3, 16
+ asrs r0, 16
+ cmp r1, r0
+ bne _08069B5C
+ b _08069CA6
+_08069B5C:
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ mov r2, r9
+ movs r3, 0
+ ldrsh r1, [r2, r3]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsFortreeBridge
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ mov r0, r8
+ lsls r4, r0, 16
+ asrs r1, r4, 16
+ adds r0, r7, 0
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsFortreeBridge
+ lsls r0, 24
+ lsrs r7, r0, 24
+ bl PlayerGetZCoord
+ movs r1, 0
+ ands r5, r0
+ lsls r0, r5, 24
+ adds r5, r4, 0
+ cmp r0, 0
+ bne _08069BA4
+ movs r1, 0x1
+_08069BA4:
+ cmp r1, 0
+ beq _08069BB8
+ ldr r1, [sp, 0x4]
+ cmp r1, 0x1
+ beq _08069BB2
+ cmp r7, 0x1
+ bne _08069BB8
+_08069BB2:
+ movs r0, 0x47
+ bl audio_play
+_08069BB8:
+ cmp r7, 0
+ beq _08069BF4
+ mov r2, r10
+ lsls r4, r2, 16
+ asrs r4, 16
+ asrs r5, 16
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8069A3C
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl CurrentMapDrawMetatileAt
+ mov r0, sp
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ mov r2, r9
+ movs r3, 0
+ ldrsh r1, [r2, r3]
+ bl sub_80699D8
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ mov r2, r9
+ movs r3, 0
+ ldrsh r1, [r2, r3]
+ bl CurrentMapDrawMetatileAt
+_08069BF4:
+ mov r0, r10
+ strh r0, [r6, 0x8]
+ mov r1, r8
+ strh r1, [r6, 0xA]
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r6, 0x4]
+ mov r2, r9
+ ldrh r0, [r2]
+ strh r0, [r6, 0x6]
+ cmp r7, 0
+ beq _08069CA6
+ movs r0, 0x10
+ strh r0, [r6, 0xC]
+ movs r0, 0x2
+ strh r0, [r6, 0x2]
+_08069C14:
+ ldrh r0, [r6, 0xC]
+ subs r0, 0x1
+ strh r0, [r6, 0xC]
+ ldrh r3, [r6, 0x8]
+ mov r10, r3
+ ldrh r0, [r6, 0xA]
+ mov r8, r0
+ movs r1, 0xC
+ ldrsh r0, [r6, r1]
+ movs r1, 0x7
+ bl __modsi3
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x7
+ bhi _08069C9A
+ lsls r0, 2
+ ldr r1, _08069C40
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08069C40: .4byte _08069C44
+ .align 2, 0
+_08069C44:
+ .4byte _08069C64
+ .4byte _08069C9A
+ .4byte _08069C9A
+ .4byte _08069C9A
+ .4byte _08069C76
+ .4byte _08069C9A
+ .4byte _08069C9A
+ .4byte _08069C9A
+_08069C64:
+ mov r2, r10
+ lsls r0, r2, 16
+ asrs r0, 16
+ mov r3, r8
+ lsls r1, r3, 16
+ asrs r1, 16
+ bl CurrentMapDrawMetatileAt
+ b _08069C9A
+_08069C76:
+ mov r0, r10
+ lsls r5, r0, 16
+ asrs r5, 16
+ mov r1, r8
+ lsls r4, r1, 16
+ asrs r4, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80699D8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl CurrentMapDrawMetatileAt
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8069A3C
+_08069C9A:
+ movs r2, 0xC
+ ldrsh r0, [r6, r2]
+ cmp r0, 0
+ bne _08069CA6
+_08069CA2:
+ movs r0, 0x1
+ strh r0, [r6, 0x2]
+_08069CA6:
+ 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_8069AA0
+
+ thumb_func_start sub_8069CB8
+sub_8069CB8: @ 8069CB8
+ push {lr}
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r0, 16
+ ldr r2, _08069CE8
+ adds r0, r2
+ lsrs r0, 16
+ cmp r0, 0xA
+ bhi _08069CF4
+ lsls r0, r1, 16
+ asrs r1, r0, 16
+ ldr r2, _08069CEC
+ adds r0, r2
+ lsrs r0, 16
+ cmp r0, 0xD
+ bhi _08069CF4
+ ldr r0, _08069CF0
+ lsls r1, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _08069CF4
+ movs r0, 0x1
+ b _08069CF6
+ .align 2, 0
+_08069CE8: .4byte 0xfffd0000
+_08069CEC: .4byte 0xfffa0000
+_08069CF0: .4byte gUnknown_083763E4
+_08069CF4:
+ movs r0, 0
+_08069CF6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8069CB8
+
+ thumb_func_start sub_8069CFC
+sub_8069CFC: @ 8069CFC
+ push {r4,r5,lr}
+ lsls r0, 16
+ asrs r5, r0, 16
+ lsls r1, 16
+ asrs r4, r1, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8069CB8
+ cmp r0, 0
+ beq _08069D2A
+ ldr r1, _08069D30
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ bl GetVarPointer
+ subs r2, r5, 0x3
+ movs r1, 0x1
+ lsls r1, r2
+ ldrh r2, [r0]
+ orrs r1, r2
+ strh r1, [r0]
+_08069D2A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08069D30: .4byte gUnknown_083763E4
+ thumb_func_end sub_8069CFC
+
+ thumb_func_start sub_8069D34
+sub_8069D34: @ 8069D34
+ push {r4,r5,lr}
+ lsls r0, 16
+ asrs r5, r0, 16
+ lsls r1, 16
+ asrs r4, r1, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8069CB8
+ cmp r0, 0
+ beq _08069D66
+ ldr r1, _08069D6C
+ lsls r0, r4, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ bl VarGet
+ lsls r0, 16
+ subs r2, r5, 0x3
+ movs r1, 0x80
+ lsls r1, 9
+ lsls r1, r2
+ ands r1, r0
+ cmp r1, 0
+ bne _08069D70
+_08069D66:
+ movs r0, 0
+ b _08069D72
+ .align 2, 0
+_08069D6C: .4byte gUnknown_083763E4
+_08069D70:
+ movs r0, 0x1
+_08069D72:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8069D34
+
+ thumb_func_start sub_8069D78
+sub_8069D78: @ 8069D78
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r0, _08069DCC
+ ldr r0, [r0]
+ ldr r1, [r0]
+ mov r9, r1
+ ldr r7, [r0, 0x4]
+ movs r5, 0
+ cmp r5, r9
+ bge _08069DC0
+_08069D90:
+ movs r4, 0
+ adds r0, r5, 0x1
+ mov r8, r0
+ cmp r4, r7
+ bge _08069DBA
+ lsls r6, r5, 16
+_08069D9C:
+ lsls r1, r4, 16
+ asrs r1, 16
+ asrs r0, r6, 16
+ bl sub_8069D34
+ cmp r0, 0x1
+ bne _08069DB4
+ adds r1, r4, 0x7
+ adds r0, r5, 0x7
+ ldr r2, _08069DD0
+ bl MapGridSetMetatileIdAt
+_08069DB4:
+ adds r4, 0x1
+ cmp r4, r7
+ blt _08069D9C
+_08069DBA:
+ mov r5, r8
+ cmp r5, r9
+ blt _08069D90
+_08069DC0:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08069DCC: .4byte 0x0202e828
+_08069DD0: .4byte 0x0000020e
+ thumb_func_end sub_8069D78
+
+ thumb_func_start sub_8069DD4
+sub_8069DD4: @ 8069DD4
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08069DF8
+ adds r5, r1, r0
+ movs r1, 0x2
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x1
+ beq _08069E20
+ cmp r0, 0x1
+ bgt _08069DFC
+ cmp r0, 0
+ beq _08069E08
+ b _08069F56
+ .align 2, 0
+_08069DF8: .4byte 0x03004b28
+_08069DFC:
+ cmp r0, 0x2
+ beq _08069EB6
+ cmp r0, 0x3
+ bne _08069E06
+ b _08069F10
+_08069E06:
+ b _08069F56
+_08069E08:
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r5, 0x4]
+ ldrh r0, [r4]
+ strh r0, [r5, 0x6]
+ b _08069F52
+_08069E20:
+ mov r7, sp
+ adds r7, 0x2
+ mov r0, sp
+ adds r1, r7, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ ldrh r2, [r0]
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r3, 0x4
+ ldrsh r0, [r5, r3]
+ cmp r1, r0
+ bne _08069E4A
+ movs r0, 0
+ ldrsh r1, [r7, r0]
+ movs r3, 0x6
+ ldrsh r0, [r5, r3]
+ cmp r1, r0
+ bne _08069E4A
+ b _08069F56
+_08069E4A:
+ strh r2, [r5, 0x4]
+ ldrh r0, [r7]
+ strh r0, [r5, 0x6]
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r7, r2]
+ bl MapGridGetMetatileBehaviorAt
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, _08069E8C
+ bl GetVarPointer
+ adds r6, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_8057540
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08069E90
+ ldrh r0, [r6]
+ adds r0, 0x1
+ strh r0, [r6]
+ movs r0, 0x4
+ strh r0, [r5, 0xC]
+ movs r0, 0x2
+ b _08069EA8
+ .align 2, 0
+_08069E8C: .4byte 0x00004022
+_08069E90:
+ adds r0, r4, 0
+ bl sub_8057554
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08069F56
+ movs r0, 0
+ strh r0, [r6]
+ movs r0, 0x4
+ strh r0, [r5, 0xC]
+ movs r0, 0x3
+_08069EA8:
+ strh r0, [r5, 0x2]
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r5, 0x8]
+ ldrh r0, [r7]
+ strh r0, [r5, 0xA]
+ b _08069F56
+_08069EB6:
+ ldrh r1, [r5, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r5, r3]
+ cmp r0, 0
+ bne _08069F1A
+ mov r1, sp
+ ldrh r0, [r5, 0x8]
+ strh r0, [r1]
+ mov r4, sp
+ adds r4, 0x2
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4]
+ movs r0, 0x2A
+ bl audio_play
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ ldr r2, _08069F0C
+ bl MapGridSetMetatileIdAt
+ mov r0, sp
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl CurrentMapDrawMetatileAt
+ mov r0, sp
+ ldrh r0, [r0]
+ subs r0, 0x7
+ lsls r0, 16
+ asrs r0, 16
+ ldrh r1, [r4]
+ subs r1, 0x7
+ lsls r1, 16
+ asrs r1, 16
+ bl sub_8069CFC
+ b _08069F52
+ .align 2, 0
+_08069F0C: .4byte 0x0000020e
+_08069F10:
+ ldrh r1, [r5, 0xC]
+ movs r3, 0xC
+ ldrsh r0, [r5, r3]
+ cmp r0, 0
+ beq _08069F20
+_08069F1A:
+ subs r0, r1, 0x1
+ strh r0, [r5, 0xC]
+ b _08069F56
+_08069F20:
+ mov r1, sp
+ ldrh r0, [r5, 0x8]
+ strh r0, [r1]
+ mov r4, sp
+ adds r4, 0x2
+ ldrh r0, [r5, 0xA]
+ strh r0, [r4]
+ movs r0, 0x29
+ bl audio_play
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ ldr r2, _08069F60
+ bl MapGridSetMetatileIdAt
+ mov r0, sp
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl CurrentMapDrawMetatileAt
+_08069F52:
+ movs r0, 0x1
+ strh r0, [r5, 0x2]
+_08069F56:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08069F60: .4byte 0x00000206
+ thumb_func_end sub_8069DD4
+
+ thumb_func_start sub_8069F64
+sub_8069F64: @ 8069F64
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _08069FE8
+ adds r5, r1, r0
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ ldrh r2, [r0]
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r3, 0x2
+ ldrsh r0, [r5, r3]
+ cmp r1, r0
+ bne _08069F9E
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ movs r3, 0x4
+ ldrsh r0, [r5, r3]
+ cmp r1, r0
+ beq _0806A02A
+_08069F9E:
+ strh r2, [r5, 0x2]
+ ldrh r0, [r4]
+ strh r0, [r5, 0x4]
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsAsh
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806A02A
+ mov r0, sp
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileIdAt
+ ldr r1, _08069FEC
+ cmp r0, r1
+ bne _08069FF4
+ mov r0, sp
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ ldr r2, _08069FF0
+ movs r3, 0x4
+ bl ash
+ b _0806A006
+ .align 2, 0
+_08069FE8: .4byte 0x03004b28
+_08069FEC: .4byte 0x0000020a
+_08069FF0: .4byte 0x00000212
+_08069FF4:
+ mov r0, sp
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ ldr r2, _0806A034
+ movs r3, 0x4
+ bl ash
+_0806A006:
+ movs r0, 0x87
+ lsls r0, 1
+ movs r1, 0x1
+ bl sub_80A92D4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806A02A
+ ldr r0, _0806A038
+ bl GetVarPointer
+ adds r2, r0, 0
+ ldrh r1, [r2]
+ ldr r0, _0806A03C
+ cmp r1, r0
+ bhi _0806A02A
+ adds r0, r1, 0x1
+ strh r0, [r2]
+_0806A02A:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806A034: .4byte 0x00000206
+_0806A038: .4byte 0x00004048
+_0806A03C: .4byte 0x0000270e
+ thumb_func_end sub_8069F64
+
+ thumb_func_start sub_806A040
+sub_806A040: @ 806A040
+ push {r4,r5,lr}
+ lsls r0, 16
+ asrs r5, r0, 16
+ lsls r1, 16
+ asrs r4, r1, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MapGridGetMetatileIdAt
+ ldr r1, _0806A074
+ ldr r2, _0806A078
+ cmp r0, r1
+ bne _0806A05C
+ subs r2, 0x31
+_0806A05C:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MapGridSetMetatileIdAt
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl CurrentMapDrawMetatileAt
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806A074: .4byte 0x0000022f
+_0806A078: .4byte 0x00000237
+ thumb_func_end sub_806A040
+
+ thumb_func_start sub_806A07C
+sub_806A07C: @ 806A07C
+ push {r4-r7,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ ldr r0, _0806A164
+ adds r5, r1, r0
+ mov r4, sp
+ adds r4, 0x2
+ mov r0, sp
+ adds r1, r4, 0
+ bl PlayerGetDestCoords
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r4, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 16
+ lsrs r6, r0, 16
+ ldrh r1, [r5, 0x8]
+ movs r3, 0x8
+ ldrsh r0, [r5, r3]
+ adds r7, r4, 0
+ cmp r0, 0
+ beq _0806A0CE
+ subs r0, r1, 0x1
+ strh r0, [r5, 0x8]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0806A0CE
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ movs r2, 0xC
+ ldrsh r1, [r5, r2]
+ bl sub_806A040
+_0806A0CE:
+ ldrh r1, [r5, 0xE]
+ movs r3, 0xE
+ ldrsh r0, [r5, r3]
+ cmp r0, 0
+ beq _0806A0EE
+ subs r0, r1, 0x1
+ strh r0, [r5, 0xE]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0806A0EE
+ movs r1, 0x10
+ ldrsh r0, [r5, r1]
+ movs r2, 0x12
+ ldrsh r1, [r5, r2]
+ bl sub_806A040
+_0806A0EE:
+ lsls r0, r6, 24
+ lsrs r6, r0, 24
+ adds r0, r6, 0
+ bl sub_8057818
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806A106
+ ldr r0, _0806A168
+ movs r1, 0
+ bl VarSet
+_0806A106:
+ mov r0, sp
+ ldrh r2, [r0]
+ movs r3, 0
+ ldrsh r1, [r0, r3]
+ movs r3, 0x4
+ ldrsh r0, [r5, r3]
+ cmp r1, r0
+ bne _0806A122
+ movs r0, 0
+ ldrsh r1, [r7, r0]
+ movs r3, 0x6
+ ldrsh r0, [r5, r3]
+ cmp r1, r0
+ beq _0806A182
+_0806A122:
+ strh r2, [r5, 0x4]
+ adds r4, r7, 0
+ ldrh r0, [r4]
+ strh r0, [r5, 0x6]
+ adds r0, r6, 0
+ bl sub_805782C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806A182
+ bl sub_80E6034
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x4
+ beq _0806A14A
+ ldr r0, _0806A168
+ movs r1, 0
+ bl VarSet
+_0806A14A:
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ bne _0806A16C
+ movs r0, 0x3
+ strh r0, [r5, 0x8]
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r5, 0xA]
+ ldrh r0, [r4]
+ strh r0, [r5, 0xC]
+ b _0806A182
+ .align 2, 0
+_0806A164: .4byte 0x03004b28
+_0806A168: .4byte 0x00004022
+_0806A16C:
+ movs r2, 0xE
+ ldrsh r0, [r5, r2]
+ cmp r0, 0
+ bne _0806A182
+ movs r0, 0x3
+ strh r0, [r5, 0xE]
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r5, 0x10]
+ ldrh r0, [r7]
+ strh r0, [r5, 0x12]
+_0806A182:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806A07C
+
+ thumb_func_start sub_806A18C
+sub_806A18C: @ 806A18C
+ push {r4,r5,lr}
+ adds r3, r0, 0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ lsls r2, 16
+ lsrs r4, r2, 16
+ ldrh r0, [r3]
+ subs r0, 0x1
+ strh r0, [r3]
+ lsls r0, 16
+ cmp r0, 0
+ bne _0806A1A8
+ movs r2, 0xE8
+ b _0806A1BC
+_0806A1A8:
+ ldr r1, _0806A1E4
+ movs r2, 0
+ ldrsh r0, [r3, r2]
+ cmp r0, 0
+ bge _0806A1B4
+ adds r0, 0x7
+_0806A1B4:
+ asrs r0, 3
+ lsls r0, 1
+ adds r0, r1
+ ldrh r2, [r0]
+_0806A1BC:
+ lsls r5, 16
+ asrs r5, 16
+ lsls r4, 16
+ asrs r4, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl MapGridSetMetatileIdAt
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl CurrentMapDrawMetatileAt
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0xE8
+ bl MapGridSetMetatileIdAt
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806A1E4: .4byte gUnknown_08376418
+ thumb_func_end sub_806A18C
+
+ thumb_func_start sub_806A1E8
+sub_806A1E8: @ 806A1E8
+ 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, _0806A230
+ adds r4, r1, r0
+ mov r5, sp
+ adds r5, 0x2
+ mov r0, sp
+ adds r1, r5, 0
+ bl PlayerGetDestCoords
+ ldr r0, _0806A234
+ movs r1, 0x4
+ ldrsb r1, [r0, r1]
+ lsls r1, 8
+ ldrb r0, [r0, 0x5]
+ lsls r0, 24
+ asrs r0, 24
+ orrs r0, r1
+ lsls r0, 16
+ lsrs r7, r0, 16
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ mov r8, r5
+ cmp r1, 0
+ beq _0806A238
+ cmp r1, 0x1
+ beq _0806A264
+ b _0806A2B8
+ .align 2, 0
+_0806A230: .4byte 0x03004b28
+_0806A234: .4byte 0x02025734
+_0806A238:
+ strh r7, [r4]
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r4, 0x4]
+ ldrh r0, [r5]
+ strh r0, [r4, 0x6]
+ movs r0, 0x1
+ strh r0, [r4, 0x2]
+ strh r1, [r4, 0x8]
+ strh r1, [r4, 0xE]
+ strh r1, [r4, 0x14]
+ strh r1, [r4, 0x1A]
+ b _0806A2B8
+_0806A252:
+ movs r0, 0x20
+ strh r0, [r1]
+ mov r0, sp
+ ldrh r0, [r0]
+ strh r0, [r1, 0x2]
+ mov r2, r8
+ ldrh r0, [r2]
+ strh r0, [r1, 0x4]
+ b _0806A2B8
+_0806A264:
+ mov r0, sp
+ movs r3, 0x4
+ ldrsh r1, [r4, r3]
+ ldrh r2, [r0]
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r1, r0
+ bne _0806A280
+ movs r0, 0x6
+ ldrsh r1, [r4, r0]
+ movs r3, 0
+ ldrsh r0, [r5, r3]
+ cmp r1, r0
+ beq _0806A2B8
+_0806A280:
+ strh r2, [r4, 0x4]
+ ldrh r0, [r5]
+ strh r0, [r4, 0x6]
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ bl MapGridGetMetatileBehaviorAt
+ lsls r0, 24
+ lsrs r0, 24
+ bl MetatileBehavior_IsMuddySlope
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806A2B8
+ movs r6, 0x4
+ adds r1, r4, 0
+ adds r1, 0x8
+_0806A2A8:
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _0806A252
+ adds r1, 0x6
+ adds r6, 0x3
+ cmp r6, 0xD
+ ble _0806A2A8
+_0806A2B8:
+ ldr r2, _0806A2D4
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0806A2D8
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r7, r0
+ beq _0806A2D8
+ strh r7, [r4]
+ ldrh r0, [r2, 0x4]
+ ldrh r1, [r2, 0x8]
+ b _0806A2DC
+ .align 2, 0
+_0806A2D4: .4byte 0x0202e844
+_0806A2D8:
+ movs r0, 0
+ movs r1, 0
+_0806A2DC:
+ lsls r0, 16
+ asrs r0, 16
+ mov r8, r0
+ lsls r0, r1, 16
+ asrs r7, r0, 16
+ adds r5, r4, 0
+ adds r5, 0x8
+ adds r4, r5, 0
+ movs r6, 0x9
+_0806A2EE:
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ beq _0806A312
+ ldrh r0, [r4, 0x2]
+ mov r3, r8
+ subs r0, r3
+ strh r0, [r4, 0x2]
+ ldrh r0, [r4, 0x4]
+ subs r0, r7
+ strh r0, [r4, 0x4]
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ movs r3, 0x4
+ ldrsh r2, [r4, r3]
+ adds r0, r5, 0
+ bl sub_806A18C
+_0806A312:
+ adds r4, 0x6
+ adds r5, 0x6
+ subs r6, 0x3
+ cmp r6, 0
+ bge _0806A2EE
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806A1E8
+
+ thumb_func_start sub_806A328
+sub_806A328: @ 806A328
+ push {lr}
+ ldr r0, _0806A350
+ bl FlagSet
+ bl RtcCalcLocalTime
+ ldr r2, _0806A354
+ adds r2, 0xA0
+ ldr r3, _0806A358
+ ldr r0, [r3]
+ ldr r1, [r3, 0x4]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _0806A35C
+ ldrh r1, [r3]
+ bl VarSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806A350: .4byte 0x00000835
+_0806A354: .4byte gSaveBlock2
+_0806A358: .4byte 0x03004038
+_0806A35C: .4byte 0x00004040
+ thumb_func_end sub_806A328
+
+ thumb_func_start InTrainerHill
+InTrainerHill: @ 806A360
+ push {r4,lr}
+ ldr r0, _0806A388
+ bl FlagGet
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806A380
+ bl RtcCalcLocalTime
+ ldr r4, _0806A38C
+ adds r0, r4, 0
+ bl sub_806A390
+ adds r0, r4, 0
+ bl sub_806A3F4
+_0806A380:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806A388: .4byte 0x00000835
+_0806A38C: .4byte 0x03004038
+ thumb_func_end InTrainerHill
+
+ thumb_func_start sub_806A390
+sub_806A390: @ 806A390
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, _0806A3F0
+ bl GetVarPointer
+ adds r6, r0, 0
+ ldrh r0, [r6]
+ movs r2, 0
+ ldrsh r1, [r5, r2]
+ cmp r0, r1
+ beq _0806A3EA
+ cmp r0, r1
+ bgt _0806A3EA
+ ldrh r4, [r5]
+ subs r4, r0
+ lsls r4, 16
+ lsrs r4, 16
+ bl sub_80690B4
+ adds r0, r4, 0
+ bl sub_80FA220
+ adds r0, r4, 0
+ bl sub_80BE8C4
+ adds r0, r4, 0
+ bl sub_8080834
+ adds r0, r4, 0
+ bl sub_80401D8
+ adds r0, r4, 0
+ bl sub_810D2F4
+ adds r0, r4, 0
+ bl sub_810D410
+ adds r0, r4, 0
+ bl sub_810F618
+ adds r0, r4, 0
+ bl sub_8145AA4
+ ldrh r0, [r5]
+ strh r0, [r6]
+_0806A3EA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806A3F0: .4byte 0x00004040
+ thumb_func_end sub_806A390
+
+ thumb_func_start sub_806A3F4
+sub_806A3F4: @ 806A3F4
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ mov r4, sp
+ ldr r6, _0806A448
+ mov r0, sp
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl CalcTimeDifference
+ mov r0, sp
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r1, r0, 4
+ subs r1, r0
+ lsls r1, 5
+ movs r2, 0x2
+ ldrsb r2, [r4, r2]
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 2
+ adds r1, r0
+ movs r0, 0x3
+ ldrsb r0, [r4, r0]
+ adds r0, r1, r0
+ cmp r0, 0
+ beq _0806A43E
+ cmp r0, 0
+ blt _0806A43E
+ bl BerryTreeTimeUpdate
+ ldr r0, [r5]
+ ldr r1, [r5, 0x4]
+ str r0, [r6]
+ str r1, [r6, 0x4]
+_0806A43E:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806A448: .4byte 0x02024f44
+ thumb_func_end sub_806A3F4
+
+ thumb_func_start sub_806A44C
+sub_806A44C: @ 806A44C
+ push {lr}
+ bl sub_806A328
+ ldr r0, _0806A45C
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806A45C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
+ thumb_func_end sub_806A44C
+
+ thumb_func_start sub_806A460
+sub_806A460: @ 806A460
+ push {lr}
+ ldr r0, _0806A474
+ bl SetMainCallback2
+ ldr r1, _0806A478
+ ldr r0, _0806A47C
+ str r0, [r1, 0x8]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806A474: .4byte Cb2_StartWallClock
+_0806A478: .4byte 0x03001770
+_0806A47C: .4byte sub_806A44C
+ thumb_func_end sub_806A460
+
+ thumb_func_start sub_806A480
+sub_806A480: @ 806A480
+ push {lr}
+ adds r3, r0, 0
+ ldr r2, _0806A4B0
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0xC
+ ldrsh r1, [r0, r2]
+ movs r2, 0x30
+ ldrsh r0, [r3, r2]
+ cmp r1, r0
+ beq _0806A596
+ strh r1, [r3, 0x30]
+ subs r0, r1, 0x1
+ cmp r0, 0x5
+ bhi _0806A596
+ lsls r0, 2
+ ldr r1, _0806A4B4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806A4B0: .4byte 0x03004b20
+_0806A4B4: .4byte _0806A4B8
+ .align 2, 0
+_0806A4B8:
+ .4byte _0806A4D0
+ .4byte _0806A4F4
+ .4byte _0806A518
+ .4byte _0806A53C
+ .4byte _0806A566
+ .4byte _0806A590
+_0806A4D0:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r1, r3, 0
+ adds r1, 0x2A
+ movs r0, 0x1
+ strb r0, [r1]
+ subs r2, 0x12
+ ldrb r1, [r2]
+ subs r0, 0x41
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x35
+ b _0806A55E
+_0806A4F4:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r1, r3, 0
+ adds r1, 0x2A
+ movs r0, 0x1
+ strb r0, [r1]
+ subs r2, 0x12
+ ldrb r1, [r2]
+ subs r0, 0x41
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x56
+ b _0806A55E
+_0806A518:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r1, r3, 0
+ adds r1, 0x2A
+ movs r0, 0x1
+ strb r0, [r1]
+ subs r2, 0x12
+ ldrb r1, [r2]
+ subs r0, 0x41
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x6B
+ b _0806A55E
+_0806A53C:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r1, r3, 0
+ adds r1, 0x2A
+ movs r0, 0x1
+ strb r0, [r1]
+ subs r2, 0x12
+ ldrb r1, [r2]
+ subs r0, 0x41
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x80
+_0806A55E:
+ strh r0, [r3, 0x20]
+ movs r0, 0x44
+ strh r0, [r3, 0x22]
+ b _0806A596
+_0806A566:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r1, r3, 0
+ adds r1, 0x2A
+ movs r0, 0x2
+ strb r0, [r1]
+ subs r2, 0x12
+ ldrb r1, [r2]
+ subs r0, 0x42
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x9B
+ strh r0, [r3, 0x20]
+ movs r0, 0x50
+ strh r0, [r3, 0x22]
+ b _0806A596
+_0806A590:
+ adds r0, r3, 0
+ bl DestroySprite
+_0806A596:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806A480
+
+ thumb_func_start sub_806A59C
+sub_806A59C: @ 806A59C
+ push {lr}
+ adds r3, r0, 0
+ ldr r2, _0806A5CC
+ movs r0, 0x2E
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0xC
+ ldrsh r1, [r0, r2]
+ movs r2, 0x30
+ ldrsh r0, [r3, r2]
+ cmp r1, r0
+ beq _0806A696
+ strh r1, [r3, 0x30]
+ subs r0, r1, 0x1
+ cmp r0, 0x5
+ bhi _0806A696
+ lsls r0, 2
+ ldr r1, _0806A5D0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806A5CC: .4byte 0x03004b20
+_0806A5D0: .4byte _0806A5D4
+ .align 2, 0
+_0806A5D4:
+ .4byte _0806A5EC
+ .4byte _0806A610
+ .4byte _0806A634
+ .4byte _0806A658
+ .4byte _0806A682
+ .4byte _0806A690
+_0806A5EC:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r1, r3, 0
+ adds r1, 0x2A
+ movs r0, 0
+ strb r0, [r1]
+ subs r2, 0x12
+ ldrb r1, [r2]
+ subs r0, 0x40
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x35
+ b _0806A67A
+_0806A610:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r1, r3, 0
+ adds r1, 0x2A
+ movs r0, 0
+ strb r0, [r1]
+ subs r2, 0x12
+ ldrb r1, [r2]
+ subs r0, 0x40
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x56
+ b _0806A67A
+_0806A634:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r1, r3, 0
+ adds r1, 0x2A
+ movs r0, 0
+ strb r0, [r1]
+ subs r2, 0x12
+ ldrb r1, [r2]
+ subs r0, 0x40
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x6B
+ b _0806A67A
+_0806A658:
+ adds r2, r3, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+ adds r1, r3, 0
+ adds r1, 0x2A
+ movs r0, 0
+ strb r0, [r1]
+ subs r2, 0x12
+ ldrb r1, [r2]
+ subs r0, 0x40
+ ands r0, r1
+ strb r0, [r2]
+ movs r0, 0x80
+_0806A67A:
+ strh r0, [r3, 0x20]
+ movs r0, 0x5C
+ strh r0, [r3, 0x22]
+ b _0806A696
+_0806A682:
+ adds r0, r3, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _0806A696
+_0806A690:
+ adds r0, r3, 0
+ bl DestroySprite
+_0806A696:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806A59C
+
+ thumb_func_start sub_806A69C
+sub_806A69C: @ 806A69C
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _0806A70C
+ bl LoadSpritePalette
+ ldr r0, _0806A710
+ mov r8, r0
+ movs r1, 0x35
+ movs r2, 0x44
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r1, r0, 24
+ ldr r6, _0806A714
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r6, 0
+ adds r4, 0x1C
+ adds r2, r0, r4
+ ldr r1, _0806A718
+ str r1, [r2]
+ adds r0, r6
+ strh r5, [r0, 0x2E]
+ ldr r1, _0806A71C
+ strh r1, [r0, 0x30]
+ mov r0, r8
+ movs r1, 0x35
+ movs r2, 0x44
+ movs r3, 0
+ bl CreateSpriteAtEnd
+ lsls r0, 24
+ lsrs r1, r0, 24
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r4, r0, r4
+ ldr r1, _0806A720
+ str r1, [r4]
+ adds r0, r6
+ strh r5, [r0, 0x2E]
+ movs r1, 0x1
+ negs r1, r1
+ strh r1, [r0, 0x30]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806A70C: .4byte gUnknown_083764BC
+_0806A710: .4byte gSpriteTemplate_83764E8
+_0806A714: .4byte 0x02020004
+_0806A718: .4byte sub_806A480
+_0806A71C: .4byte 0x0000ffff
+_0806A720: .4byte sub_806A59C
+ thumb_func_end sub_806A69C
+
+ thumb_func_start sub_806A724
+sub_806A724: @ 806A724
+ push {lr}
+ ldr r0, _0806A734
+ ldrh r0, [r0, 0x4]
+ bl FreeSpritePaletteByTag
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806A734: .4byte gUnknown_083764BC
+ thumb_func_end sub_806A724
+
+ thumb_func_start sub_806A738
+sub_806A738: @ 806A738
+ push {lr}
+ movs r0, 0x3
+ movs r1, 0x8
+ movs r2, 0x19
+ movs r3, 0xB
+ bl Reset
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806A738
+
+ thumb_func_start sub_806A74C
+sub_806A74C: @ 806A74C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r10, r0
+ adds r0, r2, 0
+ adds r4, r3, 0
+ ldr r6, [sp, 0x24]
+ ldr r2, [sp, 0x28]
+ mov r9, r2
+ mov r2, r10
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp]
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r6, 24
+ lsrs r6, 24
+ mov r1, r9
+ lsls r1, 24
+ lsrs r1, 24
+ mov r9, r1
+ ldr r7, _0806A83C
+ ldr r1, _0806A840
+ bl __umodsi3
+ adds r5, r0, 0
+ lsls r5, 16
+ lsrs r5, 16
+ adds r0, r4, 0
+ movs r1, 0x18
+ bl __umodsi3
+ mov r8, r0
+ mov r2, r8
+ lsls r2, 24
+ lsrs r2, 24
+ mov r8, r2
+ adds r0, r6, 0
+ movs r1, 0x3C
+ bl __umodsi3
+ adds r6, r0, 0
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r9
+ movs r1, 0x3C
+ bl __umodsi3
+ mov r9, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r4, _0806A844
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x18
+ movs r3, 0x1
+ bl sub_8072C44
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl StringCopy
+ adds r7, r0, 0
+ ldr r1, _0806A848
+ bl StringCopy
+ adds r7, r0, 0
+ adds r0, r4, 0
+ mov r1, r8
+ movs r2, 0x12
+ movs r3, 0x1
+ bl sub_8072C44
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl StringCopy
+ adds r7, r0, 0
+ ldr r4, _0806A84C
+ adds r1, r4, 0
+ bl StringCopy
+ adds r7, r0, 0
+ adds r1, r6, 0
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ adds r7, r0, 0
+ adds r1, r4, 0
+ bl StringCopy
+ adds r7, r0, 0
+ mov r1, r9
+ movs r2, 0x2
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ ldr r0, _0806A83C
+ mov r1, r10
+ ldr r2, [sp]
+ bl Print
+ 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
+_0806A83C: .4byte 0x020234cc
+_0806A840: .4byte 0x00002710
+_0806A844: .4byte 0x020231cc
+_0806A848: .4byte gUnknown_0842D4F6
+_0806A84C: .4byte gUnknown_08376500
+ thumb_func_end sub_806A74C
+
+ thumb_func_start sub_806A850
+sub_806A850: @ 806A850
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ sub sp, 0x8
+ adds r6, r0, 0
+ mov r8, r1
+ adds r4, r2, 0
+ adds r5, r3, 0
+ lsls r6, 16
+ lsrs r6, 16
+ mov r0, r8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x3
+ movs r1, 0x8
+ movs r2, 0x19
+ movs r3, 0xB
+ bl DrawDefaultWindow
+ ldr r0, _0806A8A8
+ movs r1, 0x14
+ movs r2, 0x9
+ bl Print
+ str r4, [sp]
+ str r5, [sp, 0x4]
+ movs r0, 0x4
+ movs r1, 0x9
+ adds r2, r6, 0
+ mov r3, r8
+ bl sub_806A74C
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806A8A8: .4byte gUnknown_0842D4FC
+ thumb_func_end sub_806A850
+
+ thumb_func_start sub_806A8AC
+sub_806A8AC: @ 806A8AC
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r3, 16
+ lsrs r3, 16
+ adds r1, r3, 0
+ movs r0, 0x80
+ ands r0, r3
+ cmp r0, 0
+ beq _0806A8C6
+ ldrh r0, [r4]
+ subs r0, 0x1
+ b _0806A8E0
+_0806A8C6:
+ movs r0, 0x40
+ ands r0, r3
+ cmp r0, 0
+ beq _0806A8D4
+ ldrh r0, [r4]
+ adds r0, 0x1
+ b _0806A8FE
+_0806A8D4:
+ movs r0, 0x20
+ ands r0, r3
+ cmp r0, 0
+ beq _0806A8EE
+ ldrh r0, [r4]
+ subs r0, 0xA
+_0806A8E0:
+ strh r0, [r4]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, r5
+ bge _0806A90A
+ strh r2, [r4]
+ b _0806A90A
+_0806A8EE:
+ movs r0, 0x10
+ ands r1, r0
+ cmp r1, 0
+ bne _0806A8FA
+ movs r0, 0
+ b _0806A90C
+_0806A8FA:
+ ldrh r0, [r4]
+ adds r0, 0xA
+_0806A8FE:
+ strh r0, [r4]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, r2
+ ble _0806A90A
+ strh r5, [r4]
+_0806A90A:
+ movs r0, 0x1
+_0806A90C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806A8AC
+
+ thumb_func_start sub_806A914
+sub_806A914: @ 806A914
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0806A928
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ movs r0, 0x1
+ strh r0, [r1, 0x8]
+ bx lr
+ .align 2, 0
+_0806A928: .4byte 0x03004b20
+ thumb_func_end sub_806A914
+
+ thumb_func_start sub_806A92C
+sub_806A92C: @ 806A92C
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_806A738
+ bl sub_806A724
+ ldr r1, _0806A950
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806A954
+ str r1, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806A950: .4byte 0x03004b20
+_0806A954: .4byte sub_806A914
+ thumb_func_end sub_806A92C
+
+ thumb_func_start sub_806A958
+sub_806A958: @ 806A958
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r7, r0, 3
+ ldr r0, _0806A99C
+ mov r8, r0
+ adds r5, r7, r0
+ ldrb r4, [r5, 0x4]
+ lsls r0, r4, 1
+ adds r0, r4
+ lsls r0, 2
+ ldr r1, _0806A9A0
+ adds r2, r0, r1
+ ldr r1, _0806A9A4
+ ldrh r3, [r1, 0x2E]
+ movs r0, 0x2
+ ands r0, r3
+ mov r12, r1
+ cmp r0, 0
+ beq _0806A9AC
+ mov r0, r8
+ subs r0, 0x8
+ adds r0, r7, r0
+ ldr r1, _0806A9A8
+ str r1, [r0]
+ movs r0, 0
+ strh r0, [r5, 0x2]
+ movs r0, 0x6
+ b _0806A9CC
+ .align 2, 0
+_0806A99C: .4byte 0x03004b28
+_0806A9A0: .4byte gUnknown_08376414
+_0806A9A4: .4byte 0x03001770
+_0806A9A8: .4byte sub_806A92C
+_0806A9AC:
+ movs r0, 0x10
+ ands r0, r3
+ cmp r0, 0
+ beq _0806A9BA
+ ldrb r0, [r2, 0x7]
+ cmp r0, 0
+ bne _0806A9CC
+_0806A9BA:
+ mov r3, r12
+ ldrh r1, [r3, 0x2E]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0806A9D6
+ ldrb r0, [r2, 0x6]
+ cmp r0, 0
+ beq _0806A9D6
+_0806A9CC:
+ strh r0, [r5, 0x4]
+ movs r0, 0x5
+ bl audio_play
+ b _0806AA58
+_0806A9D6:
+ cmp r4, 0x5
+ bne _0806AA24
+ mov r0, r12
+ ldrh r1, [r0, 0x2E]
+ movs r4, 0x1
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0806AA58
+ ldr r1, _0806AA18
+ ldrh r0, [r5, 0x6]
+ strh r0, [r1]
+ ldrh r0, [r5, 0x8]
+ strb r0, [r1, 0x2]
+ ldrh r0, [r5, 0xA]
+ strb r0, [r1, 0x3]
+ ldrh r0, [r5, 0xC]
+ strb r0, [r1, 0x4]
+ movs r0, 0x5
+ bl audio_play
+ ldr r1, _0806AA1C
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806AA20
+ str r1, [r0]
+ strh r4, [r5, 0x2]
+ movs r0, 0x6
+ strh r0, [r5, 0x4]
+ b _0806AA58
+ .align 2, 0
+_0806AA18: .4byte 0x03004038
+_0806AA1C: .4byte 0x03004b20
+_0806AA20: .4byte sub_806A92C
+_0806AA24:
+ ldrb r0, [r2]
+ lsls r0, 1
+ adds r0, r5, r0
+ ldrh r1, [r2, 0x2]
+ ldrh r2, [r2, 0x4]
+ mov r3, r12
+ ldrh r4, [r3, 0x30]
+ movs r3, 0xC0
+ ands r3, r4
+ bl sub_806A8AC
+ cmp r0, 0
+ beq _0806AA58
+ movs r0, 0x5
+ bl audio_play
+ ldrh r2, [r5, 0x6]
+ ldrb r3, [r5, 0x8]
+ ldrb r0, [r5, 0xA]
+ str r0, [sp]
+ ldrb r0, [r5, 0xC]
+ str r0, [sp, 0x4]
+ movs r0, 0x4
+ movs r1, 0x9
+ bl sub_806A74C
+_0806AA58:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806A958
+
+ thumb_func_start sub_806AA64
+sub_806AA64: @ 806AA64
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, r5, 2
+ adds r6, r5
+ lsls r6, 3
+ ldr r0, _0806AACC
+ mov r8, r0
+ adds r4, r6, r0
+ movs r0, 0
+ strh r0, [r4]
+ ldr r3, _0806AAD0
+ ldrh r0, [r3]
+ strh r0, [r4, 0x6]
+ movs r1, 0x2
+ ldrsb r1, [r3, r1]
+ strh r1, [r4, 0x8]
+ movs r2, 0x3
+ ldrsb r2, [r3, r2]
+ strh r2, [r4, 0xA]
+ ldrb r3, [r3, 0x4]
+ lsls r3, 24
+ asrs r3, 24
+ strh r3, [r4, 0xC]
+ ldrh r0, [r4, 0x6]
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ bl sub_806A850
+ adds r0, r5, 0
+ bl sub_806A69C
+ movs r0, 0x2
+ strh r0, [r4, 0x4]
+ movs r0, 0x8
+ negs r0, r0
+ add r8, r0
+ add r6, r8
+ ldr r0, _0806AAD4
+ str r0, [r6]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806AACC: .4byte 0x03004b28
+_0806AAD0: .4byte 0x03004038
+_0806AAD4: .4byte sub_806A958
+ thumb_func_end sub_806AA64
+
+ thumb_func_start sub_806AAD8
+sub_806AAD8: @ 806AAD8
+ push {r4-r7,lr}
+ sub sp, 0x4
+ movs r0, 0x80
+ lsls r0, 19
+ movs r4, 0
+ strh r4, [r0]
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r2, 0xA0
+ lsls r2, 19
+ mov r0, sp
+ strh r4, [r0]
+ ldr r1, _0806AB94
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _0806AB98
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0xC0
+ lsls r3, 9
+ mov r4, sp
+ movs r6, 0
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r7, _0806AB9C
+ movs r0, 0x81
+ lsls r0, 24
+ mov r12, r0
+_0806AB16:
+ 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 _0806AB16
+ 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]
+ movs r0, 0
+ movs r1, 0x80
+ bl ResetOamRange
+ bl LoadOam
+ bl remove_some_task
+ bl dp12_8087EA4
+ bl ResetSpriteData
+ bl ResetTasks
+ bl ResetPaletteFade
+ ldr r4, _0806ABA0
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl sub_8071C4C
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0x88
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0806ABA4
+ bl SetVBlankCallback
+ ldr r0, _0806ABA8
+ bl SetMainCallback2
+ ldr r0, _0806ABAC
+ movs r1, 0x50
+ bl CreateTask
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806AB94: .4byte 0x040000d4
+_0806AB98: .4byte 0x81000200
+_0806AB9C: .4byte 0x81000800
+_0806ABA0: .4byte gWindowConfig_81E6CE4
+_0806ABA4: .4byte sub_806ABC8
+_0806ABA8: .4byte sub_806ABB0
+_0806ABAC: .4byte sub_806ACCC
+ thumb_func_end sub_806AAD8
+
+ thumb_func_start sub_806ABB0
+sub_806ABB0: @ 806ABB0
+ push {lr}
+ bl RunTasks
+ bl AnimateSprites
+ bl BuildOamBuffer
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806ABB0
+
+ thumb_func_start sub_806ABC8
+sub_806ABC8: @ 806ABC8
+ push {lr}
+ bl ProcessSpriteCopyRequests
+ bl LoadOam
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806ABC8
+
+ thumb_func_start sub_806ABDC
+sub_806ABDC: @ 806ABDC
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_8071FFC
+ adds r0, r4, 0
+ movs r1, 0x2
+ movs r2, 0xF
+ bl Print
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806ABDC
+
+ thumb_func_start sub_806ABF4
+sub_806ABF4: @ 806ABF4
+ push {r4,r5,lr}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _0806AC14
+ adds r4, r0, r1
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0
+ beq _0806AC18
+ cmp r0, 0x1
+ beq _0806AC80
+ b _0806ACC4
+ .align 2, 0
+_0806AC14: .4byte 0x03004b28
+_0806AC18:
+ bl sub_8071EF4
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x14
+ movs r3, 0xA
+ bl DrawDefaultWindow
+ ldr r0, _0806AC98
+ movs r1, 0x1
+ movs r2, 0x1
+ bl Print
+ ldr r0, _0806AC9C
+ ldrh r2, [r0]
+ ldrb r3, [r0, 0x2]
+ ldrb r1, [r0, 0x3]
+ str r1, [sp]
+ ldrb r0, [r0, 0x4]
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ movs r1, 0x3
+ bl sub_806A74C
+ ldr r0, _0806ACA0
+ movs r1, 0x1
+ movs r2, 0x5
+ bl Print
+ ldr r1, _0806ACA4
+ adds r0, r1, 0
+ adds r0, 0xA0
+ ldrh r2, [r0]
+ adds r0, 0x2
+ ldrb r3, [r0]
+ adds r0, 0x1
+ ldrb r0, [r0]
+ str r0, [sp]
+ adds r0, r1, 0
+ adds r0, 0xA4
+ ldrb r0, [r0]
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ movs r1, 0x7
+ bl sub_806A74C
+ ldr r0, _0806ACA8
+ bl sub_806ABDC
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+_0806AC80:
+ ldr r0, _0806ACAC
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0806ACB0
+ adds r0, r5, 0
+ bl DestroyTask
+ bl DoSoftReset
+ b _0806ACC4
+ .align 2, 0
+_0806AC98: .4byte gUnknown_08411804
+_0806AC9C: .4byte 0x03004038
+_0806ACA0: .4byte gUnknown_08411819
+_0806ACA4: .4byte gSaveBlock2
+_0806ACA8: .4byte gUnknown_084117E3
+_0806ACAC: .4byte 0x03001770
+_0806ACB0:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0806ACC4
+ movs r0, 0x5
+ bl audio_play
+ adds r0, r5, 0
+ bl DestroyTask
+_0806ACC4:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806ABF4
+
+ thumb_func_start sub_806ACCC
+sub_806ACCC: @ 806ACCC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _0806ACF4
+ adds r5, r0, r1
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ cmp r0, 0x6
+ bls _0806ACE8
+ b _0806AEC4
+_0806ACE8:
+ lsls r0, 2
+ ldr r1, _0806ACF8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806ACF4: .4byte 0x03004b28
+_0806ACF8: .4byte _0806ACFC
+ .align 2, 0
+_0806ACFC:
+ .4byte _0806AD18
+ .4byte _0806AD34
+ .4byte _0806AD80
+ .4byte _0806ADD8
+ .4byte _0806AE5C
+ .4byte _0806AE8C
+ .4byte _0806AEAE
+_0806AD18:
+ movs r0, 0x1
+ negs r0, r0
+ ldr r1, _0806AD30
+ str r1, [sp]
+ movs r1, 0x1
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ movs r0, 0x1
+ strh r0, [r5]
+ b _0806AEC4
+ .align 2, 0
+_0806AD30: .4byte 0x0000ffff
+_0806AD34:
+ ldr r0, _0806AD5C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0806AD42
+ b _0806AEC4
+_0806AD42:
+ ldr r0, _0806AD60
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0806AD4E
+ cmp r0, 0x2
+ bne _0806AD68
+_0806AD4E:
+ ldr r0, _0806AD64
+ bl sub_806ABDC
+ movs r0, 0x5
+ strh r0, [r5]
+ b _0806AEC4
+ .align 2, 0
+_0806AD5C: .4byte 0x0202f388
+_0806AD60: .4byte 0x03005eb8
+_0806AD64: .4byte gUnknown_084118A0
+_0806AD68:
+ bl RtcCalcLocalTime
+ ldr r0, _0806AD7C
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x2]
+ b _0806ADFC
+ .align 2, 0
+_0806AD7C: .4byte sub_806ABF4
+_0806AD80:
+ ldr r2, _0806ADC4
+ movs r0, 0x2
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0x1
+ bne _0806AD96
+ b _0806AEC4
+_0806AD96:
+ bl sub_8071EF4
+ ldr r0, _0806ADC8
+ bl sub_806ABDC
+ ldr r2, _0806ADCC
+ ldr r0, _0806ADD0
+ adds r0, 0xA0
+ ldr r1, [r0, 0x4]
+ ldr r0, [r0]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _0806ADD4
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5, 0x2]
+ movs r0, 0x3
+ strh r0, [r5]
+ b _0806AEC4
+ .align 2, 0
+_0806ADC4: .4byte 0x03004b20
+_0806ADC8: .4byte gUnknown_0841182F
+_0806ADCC: .4byte 0x03004038
+_0806ADD0: .4byte gSaveBlock2
+_0806ADD4: .4byte sub_806AA64
+_0806ADD8:
+ ldr r2, _0806AE04
+ movs r0, 0x2
+ ldrsh r1, [r5, r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r1, r0, r2
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _0806AEC4
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _0806AE08
+ ldrb r0, [r5, 0x2]
+ bl DestroyTask
+_0806ADFC:
+ movs r0, 0x2
+ strh r0, [r5]
+ b _0806AEC4
+ .align 2, 0
+_0806AE04: .4byte 0x03004b20
+_0806AE08:
+ ldrb r0, [r5, 0x2]
+ bl DestroyTask
+ bl RtcReset
+ ldr r4, _0806AE4C
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r1, 0x2
+ ldrsb r1, [r4, r1]
+ movs r2, 0x3
+ ldrsb r2, [r4, r2]
+ movs r3, 0x4
+ ldrsb r3, [r4, r3]
+ bl RtcCalcLocalTimeOffset
+ ldr r2, _0806AE50
+ adds r2, 0xA0
+ ldr r0, [r4]
+ ldr r1, [r4, 0x4]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldr r0, _0806AE54
+ ldrh r1, [r4]
+ bl VarSet
+ bl sub_80691A0
+ ldr r0, _0806AE58
+ bl sub_806ABDC
+ movs r0, 0x4
+ strh r0, [r5]
+ b _0806AEC4
+ .align 2, 0
+_0806AE4C: .4byte 0x03004038
+_0806AE50: .4byte gSaveBlock2
+_0806AE54: .4byte 0x00004040
+_0806AE58: .4byte gUnknown_08411846
+_0806AE5C:
+ movs r0, 0
+ bl sub_8125D44
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806AE7C
+ ldr r0, _0806AE78
+ bl sub_806ABDC
+ movs r0, 0x49
+ bl audio_play
+ b _0806AE88
+ .align 2, 0
+_0806AE78: .4byte gUnknown_08411881
+_0806AE7C:
+ ldr r0, _0806AECC
+ bl sub_806ABDC
+ movs r0, 0x16
+ bl audio_play
+_0806AE88:
+ movs r0, 0x5
+ strh r0, [r5]
+_0806AE8C:
+ ldr r0, _0806AED0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0806AEC4
+ movs r0, 0x1
+ negs r0, r0
+ ldr r1, _0806AED4
+ str r1, [sp]
+ movs r1, 0x1
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ movs r0, 0x6
+ strh r0, [r5]
+_0806AEAE:
+ ldr r0, _0806AED8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0806AEC4
+ adds r0, r4, 0
+ bl DestroyTask
+ bl DoSoftReset
+_0806AEC4:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806AECC: .4byte gUnknown_08411891
+_0806AED0: .4byte 0x03001770
+_0806AED4: .4byte 0x0000ffff
+_0806AED8: .4byte 0x0202f388
+ thumb_func_end sub_806ACCC
+
+ thumb_func_start sub_806AEDC
+sub_806AEDC: @ 806AEDC
+ push {r4-r6,lr}
+ sub sp, 0x4
+ bl AnimateSprites
+ bl BuildOamBuffer
+ ldr r0, _0806AF2C
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 4
+ ldr r1, _0806AF30
+ adds r5, r0, r1
+ movs r6, 0
+_0806AEF8:
+ ldrb r0, [r5]
+ lsls r0, 3
+ ldrb r1, [r5, 0x1]
+ lsls r1, 3
+ ldr r2, [r5, 0x4]
+ lsls r3, r6, 5
+ movs r4, 0x80
+ lsls r4, 2
+ orrs r3, r4
+ str r3, [sp]
+ movs r3, 0
+ bl sub_800142C
+ adds r5, 0x8
+ adds r6, 0x1
+ cmp r6, 0x5
+ ble _0806AEF8
+ bl RunTasks
+ bl UpdatePaletteFade
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806AF2C: .4byte 0x0202e8fa
+_0806AF30: .4byte gUnknown_08376BB4
+ thumb_func_end sub_806AEDC
+
+ thumb_func_start sub_806AF34
+sub_806AF34: @ 806AF34
+ push {lr}
+ bl LoadOam
+ bl ProcessSpriteCopyRequests
+ bl TransferPlttBuffer
+ bl sub_806B548
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806AF34
+
+ thumb_func_start sub_806AF4C
+sub_806AF4C: @ 806AF4C
+ push {r4,r5,lr}
+ adds r4, r2, 0
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r3, 24
+ lsrs r3, 24
+ cmp r1, 0xFF
+ beq _0806AF64
+ ldr r0, _0806AF84
+ strh r1, [r0]
+_0806AF64:
+ ldr r0, _0806AF88
+ movs r5, 0x96
+ lsls r5, 2
+ adds r1, r0, r5
+ strb r2, [r1]
+ movs r2, 0x97
+ lsls r2, 2
+ adds r1, r0, r2
+ str r4, [r1]
+ adds r5, 0x1
+ adds r0, r5
+ strb r3, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806AF84: .4byte 0x020239f8
+_0806AF88: .4byte 0x0201b000
+ thumb_func_end sub_806AF4C
+
+ thumb_func_start sub_806AF8C
+sub_806AF8C: @ 806AF8C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r3, 24
+ lsrs r3, 24
+ bl sub_806AF4C
+ ldr r0, _0806AFA8
+ bl SetMainCallback2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806AFA8: .4byte sub_806B460
+ thumb_func_end sub_806AF8C
+
+ thumb_func_start sub_806AFAC
+sub_806AFAC: @ 806AFAC
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0806AFCC
+ lsls r3, r0, 1
+ adds r3, r0
+ lsls r3, 2
+ adds r3, r2
+ ldr r2, [r3]
+ ldrb r3, [r3, 0x8]
+ bl sub_806AF8C
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806AFCC: .4byte gUnknown_08376C74
+ thumb_func_end sub_806AFAC
+
+ thumb_func_start sub_806AFD0
+sub_806AFD0: @ 806AFD0
+ push {r4,r5,lr}
+ ldr r1, _0806AFF0
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r1, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ adds r4, r1, 0
+ cmp r0, 0x9
+ bls _0806AFE6
+ b _0806B11A
+_0806AFE6:
+ lsls r0, 2
+ ldr r1, _0806AFF4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806AFF0: .4byte 0x0201b000
+_0806AFF4: .4byte _0806AFF8
+ .align 2, 0
+_0806AFF8:
+ .4byte _0806B020
+ .4byte _0806B060
+ .4byte _0806B066
+ .4byte _0806B07A
+ .4byte _0806B0A4
+ .4byte _0806B0AA
+ .4byte _0806B0BC
+ .4byte _0806B0C2
+ .4byte _0806B0D4
+ .4byte _0806B0EC
+_0806B020:
+ ldr r0, _0806B048
+ adds r5, r4, r0
+ movs r1, 0
+ ldrsh r3, [r5, r1]
+ ldr r0, _0806B04C
+ ldrb r0, [r0]
+ cmp r3, r0
+ bge _0806B054
+ movs r2, 0x98
+ lsls r2, 2
+ adds r0, r4, r2
+ ldrb r0, [r0]
+ ldrb r1, [r5]
+ movs r2, 0x64
+ muls r2, r3
+ ldr r3, _0806B050
+ adds r2, r3
+ bl sub_806D90C
+ b _0806B114
+ .align 2, 0
+_0806B048: .4byte 0x00000266
+_0806B04C: .4byte 0x03004350
+_0806B050: .4byte 0x03004360
+_0806B054:
+ movs r0, 0
+ strh r0, [r5]
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r4, r0
+ b _0806B0E0
+_0806B060:
+ bl sub_806DA98
+ b _0806B0D8
+_0806B066:
+ 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 _0806B0E0
+_0806B07A:
+ movs r1, 0x98
+ lsls r1, 2
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ ldr r2, _0806B0A0
+ adds r5, r4, r2
+ ldrb r1, [r5]
+ bl sub_806BD58
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806B114
+ movs r0, 0
+ strh r0, [r5]
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r4, r0
+ b _0806B0E0
+ .align 2, 0
+_0806B0A0: .4byte 0x00000266
+_0806B0A4:
+ bl sub_806E334
+ b _0806B0D8
+_0806B0AA:
+ bl sub_806E0C4
+ ldr r1, _0806B0B8
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+ b _0806B0E0
+ .align 2, 0
+_0806B0B8: .4byte 0x0201b000
+_0806B0BC:
+ bl sub_806E53C
+ b _0806B0D8
+_0806B0C2:
+ bl nullsub_13
+ ldr r1, _0806B0D0
+ movs r0, 0x99
+ lsls r0, 2
+ adds r1, r0
+ b _0806B0E0
+ .align 2, 0
+_0806B0D0: .4byte 0x0201b000
+_0806B0D4:
+ bl sub_806E6C8
+_0806B0D8:
+ ldr r1, _0806B0E8
+ movs r2, 0x99
+ lsls r2, 2
+ adds r1, r2
+_0806B0E0:
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ b _0806B11A
+ .align 2, 0
+_0806B0E8: .4byte 0x0201b000
+_0806B0EC:
+ ldr r0, _0806B110
+ adds r5, r4, r0
+ ldrb r0, [r5]
+ bl sub_806B58C
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806B114
+ movs r1, 0
+ strh r1, [r5]
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r4, r2
+ strh r1, [r0]
+ movs r0, 0x1
+ b _0806B11C
+ .align 2, 0
+_0806B110: .4byte 0x00000266
+_0806B114:
+ ldrh r0, [r5]
+ adds r0, 0x1
+ strh r0, [r5]
+_0806B11A:
+ movs r0, 0
+_0806B11C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806AFD0
+
+ thumb_func_start sub_806B124
+sub_806B124: @ 806B124
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ ldr r0, _0806B144
+ ldr r1, _0806B148
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x11
+ bls _0806B13A
+ b _0806B450
+_0806B13A:
+ lsls r0, 2
+ ldr r1, _0806B14C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806B144: .4byte 0x03001770
+_0806B148: .4byte 0x0000043c
+_0806B14C: .4byte _0806B150
+ .align 2, 0
+_0806B150:
+ .4byte _0806B198
+ .4byte _0806B240
+ .4byte _0806B246
+ .4byte _0806B27C
+ .4byte _0806B282
+ .4byte _0806B2AC
+ .4byte _0806B2B2
+ .4byte _0806B2D0
+ .4byte _0806B2EC
+ .4byte _0806B318
+ .4byte _0806B344
+ .4byte _0806B37C
+ .4byte _0806B382
+ .4byte _0806B3C0
+ .4byte _0806B3CC
+ .4byte _0806B3E4
+ .4byte _0806B40C
+ .4byte _0806B440
+_0806B198:
+ movs r0, 0
+ bl SetVBlankCallback
+ movs r3, 0xC0
+ lsls r3, 19
+ movs r4, 0xC0
+ lsls r4, 9
+ add r2, sp, 0x8
+ mov r8, r2
+ add r2, sp, 0x4
+ movs r6, 0
+ ldr r1, _0806B22C
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r7, _0806B230
+ movs r0, 0x81
+ lsls r0, 24
+ mov r12, r0
+_0806B1BC:
+ strh r6, [r2]
+ add r0, sp, 0x4
+ str r0, [r1]
+ str r3, [r1, 0x4]
+ str r7, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ adds r3, r5
+ subs r4, r5
+ cmp r4, r5
+ bhi _0806B1BC
+ strh r6, [r2]
+ add r2, sp, 0x4
+ str r2, [r1]
+ str r3, [r1, 0x4]
+ lsrs r0, r4, 1
+ mov r3, r12
+ orrs r0, r3
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r0, 0xE0
+ lsls r0, 19
+ movs r3, 0x80
+ lsls r3, 3
+ movs r4, 0
+ str r4, [sp, 0x8]
+ ldr r2, _0806B22C
+ mov r1, r8
+ str r1, [r2]
+ str r0, [r2, 0x4]
+ lsrs r0, r3, 2
+ movs r1, 0x85
+ lsls r1, 24
+ orrs r0, r1
+ str r0, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ movs r1, 0xA0
+ lsls r1, 19
+ add r0, sp, 0x4
+ strh r4, [r0]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ lsrs r3, 1
+ movs r0, 0x81
+ lsls r0, 24
+ orrs r3, r0
+ str r3, [r2, 0x8]
+ ldr r0, [r2, 0x8]
+ ldr r2, _0806B234
+ ldrb r0, [r2, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r2, 0x8]
+ ldr r1, _0806B238
+ ldr r2, _0806B23C
+ adds r1, r2
+ b _0806B42C
+ .align 2, 0
+_0806B22C: .4byte 0x040000d4
+_0806B230: .4byte 0x81000800
+_0806B234: .4byte 0x0202f388
+_0806B238: .4byte 0x03001770
+_0806B23C: .4byte 0x0000043c
+_0806B240:
+ bl remove_some_task
+ b _0806B426
+_0806B246:
+ bl sub_806B4A8
+ ldr r1, _0806B26C
+ movs r2, 0x99
+ lsls r2, 2
+ adds r0, r1, r2
+ movs r2, 0
+ strh r2, [r0]
+ ldr r3, _0806B270
+ adds r0, r1, r3
+ strh r2, [r0]
+ movs r0, 0x9A
+ lsls r0, 2
+ adds r1, r0
+ strh r2, [r1]
+ ldr r1, _0806B274
+ ldr r2, _0806B278
+ adds r1, r2
+ b _0806B42C
+ .align 2, 0
+_0806B26C: .4byte 0x0201b000
+_0806B270: .4byte 0x00000266
+_0806B274: .4byte 0x03001770
+_0806B278: .4byte 0x0000043c
+_0806B27C:
+ bl ResetSpriteData
+ b _0806B426
+_0806B282:
+ ldr r0, _0806B2A0
+ movs r1, 0x96
+ lsls r1, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0806B298
+ cmp r0, 0x5
+ beq _0806B298
+ bl ResetTasks
+_0806B298:
+ ldr r1, _0806B2A4
+ ldr r2, _0806B2A8
+ adds r1, r2
+ b _0806B42C
+ .align 2, 0
+_0806B2A0: .4byte 0x0201b000
+_0806B2A4: .4byte 0x03001770
+_0806B2A8: .4byte 0x0000043c
+_0806B2AC:
+ bl FreeAllSpritePalettes
+ b _0806B426
+_0806B2B2:
+ ldr r4, _0806B2CC
+ movs r1, 0x97
+ lsls r1, 2
+ adds r0, r4, r1
+ ldr r0, [r0]
+ movs r1, 0
+ bl CreateTask
+ movs r2, 0x98
+ lsls r2, 2
+ adds r1, r4, r2
+ strb r0, [r1]
+ b _0806B426
+ .align 2, 0
+_0806B2CC: .4byte 0x0201b000
+_0806B2D0:
+ ldr r0, _0806B2E0
+ bl SetUpWindowConfig
+ ldr r1, _0806B2E4
+ ldr r0, _0806B2E8
+ adds r1, r0
+ b _0806B42C
+ .align 2, 0
+_0806B2E0: .4byte gWindowConfig_81E6C90
+_0806B2E4: .4byte 0x03001770
+_0806B2E8: .4byte 0x0000043c
+_0806B2EC:
+ ldr r4, _0806B308
+ ldr r1, _0806B30C
+ adds r0, r4, 0
+ bl InitWindowFromConfig
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl MultistepInitWindowTileData
+ ldr r1, _0806B310
+ ldr r2, _0806B314
+ adds r1, r2
+ b _0806B42C
+ .align 2, 0
+_0806B308: .4byte 0x03004210
+_0806B30C: .4byte gWindowConfig_81E6C90
+_0806B310: .4byte 0x03001770
+_0806B314: .4byte 0x0000043c
+_0806B318:
+ bl MultistepLoadFont
+ cmp r0, 0
+ bne _0806B322
+ b _0806B450
+_0806B322:
+ ldr r0, _0806B338
+ movs r3, 0x99
+ lsls r3, 2
+ adds r0, r3
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r1, _0806B33C
+ ldr r0, _0806B340
+ adds r1, r0
+ b _0806B42C
+ .align 2, 0
+_0806B338: .4byte 0x0201b000
+_0806B33C: .4byte 0x03001770
+_0806B340: .4byte 0x0000043c
+_0806B344:
+ ldr r0, _0806B368
+ movs r1, 0x99
+ lsls r1, 2
+ adds r4, r0, r1
+ ldrb r0, [r4]
+ bl sub_806D718
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806B374
+ movs r0, 0
+ strh r0, [r4]
+ ldr r1, _0806B36C
+ ldr r2, _0806B370
+ adds r1, r2
+ b _0806B42C
+ .align 2, 0
+_0806B368: .4byte 0x0201b000
+_0806B36C: .4byte 0x03001770
+_0806B370: .4byte 0x0000043c
+_0806B374:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _0806B450
+_0806B37C:
+ bl sub_809D51C
+ b _0806B426
+_0806B382:
+ ldr r2, _0806B3B0
+ ldr r0, _0806B3B4
+ movs r1, 0x96
+ lsls r1, 2
+ adds r0, r1
+ ldrb r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r2, 0x4
+ adds r0, r2
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806B450
+ ldr r1, _0806B3B8
+ ldr r2, _0806B3BC
+ adds r1, r2
+ b _0806B42C
+ .align 2, 0
+_0806B3B0: .4byte gUnknown_08376C74
+_0806B3B4: .4byte 0x0201b000
+_0806B3B8: .4byte 0x03001770
+_0806B3BC: .4byte 0x0000043c
+_0806B3C0:
+ ldr r0, _0806B3C8
+ bl sub_8071C58
+ b _0806B426
+ .align 2, 0
+_0806B3C8: .4byte gWindowConfig_81E6CC8
+_0806B3CC:
+ bl sub_8071C94
+ cmp r0, 0
+ beq _0806B450
+ ldr r1, _0806B3DC
+ ldr r0, _0806B3E0
+ adds r1, r0
+ b _0806B42C
+ .align 2, 0
+_0806B3DC: .4byte 0x03001770
+_0806B3E0: .4byte 0x0000043c
+_0806B3E4:
+ ldr r0, _0806B3FC
+ ldr r1, _0806B400
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_806D538
+ ldr r1, _0806B404
+ ldr r2, _0806B408
+ adds r1, r2
+ b _0806B42C
+ .align 2, 0
+_0806B3FC: .4byte 0x0201b000
+_0806B400: .4byte 0x00000259
+_0806B404: .4byte 0x03001770
+_0806B408: .4byte 0x0000043c
+_0806B40C:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ bl BeginNormalPaletteFade
+ ldr r2, _0806B434
+ ldrb r1, [r2, 0x8]
+ movs r0, 0x7F
+ ands r0, r1
+ strb r0, [r2, 0x8]
+_0806B426:
+ ldr r1, _0806B438
+ ldr r3, _0806B43C
+ adds r1, r3
+_0806B42C:
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ b _0806B450
+ .align 2, 0
+_0806B434: .4byte 0x0202f388
+_0806B438: .4byte 0x03001770
+_0806B43C: .4byte 0x0000043c
+_0806B440:
+ ldr r0, _0806B44C
+ bl SetVBlankCallback
+ movs r0, 0x1
+ b _0806B452
+ .align 2, 0
+_0806B44C: .4byte sub_806AF34
+_0806B450:
+ movs r0, 0
+_0806B452:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806B124
+
+ thumb_func_start sub_806B460
+sub_806B460: @ 806B460
+ push {lr}
+ b _0806B470
+_0806B464:
+ bl sub_80F9344
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806B49C
+_0806B470:
+ bl sub_806B124
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806B464
+ ldr r1, _0806B4A0
+ movs r2, 0x96
+ lsls r2, 2
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ beq _0806B496
+ adds r2, 0x8
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_806BF74
+_0806B496:
+ ldr r0, _0806B4A4
+ bl SetMainCallback2
+_0806B49C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806B4A0: .4byte 0x0201b000
+_0806B4A4: .4byte sub_806AEDC
+ thumb_func_end sub_806B460
+
+ thumb_func_start sub_806B4A8
+sub_806B4A8: @ 806B4A8
+ push {lr}
+ movs r0, 0
+ bl SetHBlankCallback
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0xFA
+ lsls r2, 5
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x8
+ ldr r2, _0806B50C
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0806B510
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0806B514
+ adds r0, r2, 0
+ strh r0, [r1]
+ adds r1, 0x2
+ ldr r2, _0806B518
+ adds r0, r2, 0
+ strh r0, [r1]
+ ldr r0, _0806B51C
+ movs r1, 0
+ strh r1, [r0]
+ subs r0, 0x40
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ adds r0, 0x2
+ strh r1, [r0]
+ ldr r2, _0806B520
+ strh r1, [r2]
+ ldr r1, _0806B524
+ adds r0, r1, 0
+ strh r0, [r2]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806B50C: .4byte 0x00001e05
+_0806B510: .4byte 0x00000703
+_0806B514: .4byte 0x00000f08
+_0806B518: .4byte 0x00000602
+_0806B51C: .4byte REG_BLDCNT
+_0806B520: .4byte REG_BG3VOFS
+_0806B524: .4byte 0x0000ffff
+ thumb_func_end sub_806B4A8
+
+ thumb_func_start sub_806B528
+sub_806B528: @ 806B528
+ push {lr}
+ ldr r0, _0806B53C
+ ldrh r1, [r0]
+ movs r0, 0x4B
+ ands r0, r1
+ cmp r0, 0x4B
+ beq _0806B540
+ movs r0, 0
+ b _0806B542
+ .align 2, 0
+_0806B53C: .4byte 0x020239f8
+_0806B540:
+ movs r0, 0x1
+_0806B542:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806B528
+
+ thumb_func_start sub_806B548
+sub_806B548: @ 806B548
+ push {r4,lr}
+ ldr r0, _0806B574
+ ldr r1, _0806B578
+ adds r4, r0, r1
+ ldrb r3, [r4]
+ cmp r3, 0
+ beq _0806B56E
+ ldr r1, _0806B57C
+ ldr r2, _0806B580
+ ldr r0, _0806B584
+ str r1, [r0]
+ str r2, [r0, 0x4]
+ ldr r1, _0806B588
+ str r1, [r0, 0x8]
+ ldr r0, [r0, 0x8]
+ cmp r3, 0x2
+ bne _0806B56E
+ movs r0, 0
+ strb r0, [r4]
+_0806B56E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806B574: .4byte 0x0201b000
+_0806B578: .4byte 0x00000261
+_0806B57C: .4byte 0x020221cc
+_0806B580: .4byte 0x06003000
+_0806B584: .4byte 0x040000d4
+_0806B588: .4byte 0x80000400
+ thumb_func_end sub_806B548
+
+ thumb_func_start sub_806B58C
+sub_806B58C: @ 806B58C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _0806B5A8
+ ldr r0, _0806B5A4
+ strb r2, [r0]
+ b _0806B5C8
+ .align 2, 0
+_0806B5A4: .4byte 0x0202e8fa
+_0806B5A8:
+ bl sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806B5C0
+ ldr r1, _0806B5BC
+ movs r0, 0x2
+ b _0806B5C4
+ .align 2, 0
+_0806B5BC: .4byte 0x0202e8fa
+_0806B5C0:
+ ldr r1, _0806B5E4
+ movs r0, 0x1
+_0806B5C4:
+ strb r0, [r1]
+ adds r0, r1, 0
+_0806B5C8:
+ ldrb r0, [r0]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ ldr r0, _0806B5E8
+ adds r4, r1, r0
+ cmp r5, 0x8
+ bls _0806B5DA
+ b _0806B900
+_0806B5DA:
+ lsls r0, r5, 2
+ ldr r1, _0806B5EC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806B5E4: .4byte 0x0202e8fa
+_0806B5E8: .4byte gUnknown_083769A8
+_0806B5EC: .4byte _0806B5F0
+ .align 2, 0
+_0806B5F0:
+ .4byte _0806B614
+ .4byte _0806B628
+ .4byte _0806B638
+ .4byte _0806B694
+ .4byte _0806B71A
+ .4byte _0806B7A2
+ .4byte _0806B832
+ .4byte _0806B8C6
+ .4byte _0806B8E8
+_0806B614:
+ ldr r0, _0806B624
+ movs r2, 0x80
+ lsls r2, 4
+ movs r1, 0
+ bl memset
+ b _0806B900
+ .align 2, 0
+_0806B624: .4byte 0x020221cc
+_0806B628:
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r2, 0x3
+ bl sub_806B9A4
+ adds r0, r4, 0
+ movs r1, 0
+ b _0806B8A8
+_0806B638:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806B666
+ ldr r0, _0806B65C
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bls _0806B660
+ ldrb r0, [r4, 0x2]
+ ldrb r1, [r4, 0x3]
+ movs r2, 0
+ movs r3, 0x3
+ bl sub_806BA94
+ adds r0, r4, 0x2
+ movs r1, 0x1
+ b _0806B8A8
+ .align 2, 0
+_0806B65C: .4byte 0x03004350
+_0806B660:
+ ldrb r0, [r4, 0x2]
+ ldrb r1, [r4, 0x3]
+ b _0806B8BC
+_0806B666:
+ bl sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806B684
+ ldrb r0, [r4, 0x2]
+ ldrb r1, [r4, 0x3]
+ movs r2, 0x4
+ bl sub_806B9A4
+ adds r0, r4, 0x2
+ movs r1, 0x1
+ movs r2, 0x4
+ b _0806B8AA
+_0806B684:
+ ldrb r0, [r4, 0x2]
+ ldrb r1, [r4, 0x3]
+ movs r2, 0x3
+ bl sub_806B9A4
+ adds r0, r4, 0x2
+ movs r1, 0x1
+ b _0806B8A8
+_0806B694:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806B6C2
+ ldr r0, _0806B6B8
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bls _0806B6BC
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ movs r2, 0
+ movs r3, 0x3
+ bl sub_806BA94
+ adds r0, r4, 0x4
+ movs r1, 0x2
+ b _0806B8A8
+ .align 2, 0
+_0806B6B8: .4byte 0x03004350
+_0806B6BC:
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ b _0806B8BC
+_0806B6C2:
+ bl sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806B6F6
+ ldr r0, _0806B6EC
+ movs r1, 0xB
+ bl PokemonGetField
+ cmp r0, 0
+ beq _0806B6F0
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ movs r2, 0
+ movs r3, 0x3
+ bl sub_806BA94
+ adds r0, r4, 0x4
+ movs r1, 0x2
+ b _0806B8A8
+ .align 2, 0
+_0806B6EC: .4byte 0x03004428
+_0806B6F0:
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ b _0806B8BC
+_0806B6F6:
+ ldr r0, _0806B710
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bls _0806B714
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ movs r2, 0
+ movs r3, 0x3
+ bl sub_806BA94
+ adds r0, r4, 0x4
+ movs r1, 0x2
+ b _0806B8A8
+ .align 2, 0
+_0806B710: .4byte 0x03004350
+_0806B714:
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ b _0806B8BC
+_0806B71A:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806B74A
+ ldr r0, _0806B740
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bls _0806B744
+ ldrb r0, [r4, 0x6]
+ ldrb r1, [r4, 0x7]
+ movs r2, 0
+ movs r3, 0x3
+ bl sub_806BA94
+ adds r0, r4, 0x6
+ movs r1, 0x3
+ b _0806B8A8
+ .align 2, 0
+_0806B740: .4byte 0x03004350
+_0806B744:
+ ldrb r0, [r4, 0x6]
+ ldrb r1, [r4, 0x7]
+ b _0806B8BC
+_0806B74A:
+ bl sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806B77E
+ ldr r0, _0806B774
+ movs r1, 0xB
+ bl PokemonGetField
+ cmp r0, 0
+ beq _0806B778
+ ldrb r0, [r4, 0x6]
+ ldrb r1, [r4, 0x7]
+ movs r2, 0
+ movs r3, 0x3
+ bl sub_806BA94
+ adds r0, r4, 0x6
+ movs r1, 0x3
+ b _0806B8A8
+ .align 2, 0
+_0806B774: .4byte 0x0300448c
+_0806B778:
+ ldrb r0, [r4, 0x6]
+ ldrb r1, [r4, 0x7]
+ b _0806B8BC
+_0806B77E:
+ ldr r0, _0806B798
+ ldrb r0, [r0]
+ cmp r0, 0x3
+ bls _0806B79C
+ ldrb r0, [r4, 0x6]
+ ldrb r1, [r4, 0x7]
+ movs r2, 0
+ movs r3, 0x3
+ bl sub_806BA94
+ adds r0, r4, 0x6
+ movs r1, 0x3
+ b _0806B8A8
+ .align 2, 0
+_0806B798: .4byte 0x03004350
+_0806B79C:
+ ldrb r0, [r4, 0x6]
+ ldrb r1, [r4, 0x7]
+ b _0806B8BC
+_0806B7A2:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806B7D2
+ ldr r0, _0806B7C8
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bls _0806B7CC
+ ldrb r0, [r4, 0x8]
+ ldrb r1, [r4, 0x9]
+ movs r2, 0
+ movs r3, 0x3
+ bl sub_806BA94
+ adds r0, r4, 0
+ adds r0, 0x8
+ movs r1, 0x4
+ b _0806B8A8
+ .align 2, 0
+_0806B7C8: .4byte 0x03004350
+_0806B7CC:
+ ldrb r0, [r4, 0x8]
+ ldrb r1, [r4, 0x9]
+ b _0806B8BC
+_0806B7D2:
+ bl sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806B80A
+ ldr r0, _0806B800
+ movs r1, 0xB
+ bl PokemonGetField
+ cmp r0, 0
+ beq _0806B804
+ ldrb r0, [r4, 0x8]
+ ldrb r1, [r4, 0x9]
+ movs r2, 0
+ movs r3, 0x4
+ bl sub_806BA94
+ adds r0, r4, 0
+ adds r0, 0x8
+ movs r1, 0x4
+ movs r2, 0x4
+ b _0806B8AA
+ .align 2, 0
+_0806B800: .4byte 0x030044f0
+_0806B804:
+ ldrb r0, [r4, 0x8]
+ ldrb r1, [r4, 0x9]
+ b _0806B884
+_0806B80A:
+ ldr r0, _0806B828
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bls _0806B82C
+ ldrb r0, [r4, 0x8]
+ ldrb r1, [r4, 0x9]
+ movs r2, 0
+ movs r3, 0x3
+ bl sub_806BA94
+ adds r0, r4, 0
+ adds r0, 0x8
+ movs r1, 0x4
+ b _0806B8A8
+ .align 2, 0
+_0806B828: .4byte 0x03004350
+_0806B82C:
+ ldrb r0, [r4, 0x8]
+ ldrb r1, [r4, 0x9]
+ b _0806B8BC
+_0806B832:
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806B84C
+ ldr r0, _0806B848
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bhi _0806B896
+ b _0806B8B8
+ .align 2, 0
+_0806B848: .4byte 0x03004350
+_0806B84C:
+ bl sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806B88E
+ ldr r0, _0806B87C
+ movs r1, 0xB
+ bl PokemonGetField
+ cmp r0, 0
+ beq _0806B880
+ ldrb r0, [r4, 0xA]
+ ldrb r1, [r4, 0xB]
+ movs r2, 0
+ movs r3, 0x4
+ bl sub_806BA94
+ adds r0, r4, 0
+ adds r0, 0xA
+ movs r1, 0x5
+ movs r2, 0x4
+ b _0806B8AA
+ .align 2, 0
+_0806B87C: .4byte 0x03004554
+_0806B880:
+ ldrb r0, [r4, 0xA]
+ ldrb r1, [r4, 0xB]
+_0806B884:
+ movs r2, 0x1
+ movs r3, 0x4
+ bl sub_806BA94
+ b _0806B900
+_0806B88E:
+ ldr r0, _0806B8B4
+ ldrb r0, [r0]
+ cmp r0, 0x5
+ bls _0806B8B8
+_0806B896:
+ ldrb r0, [r4, 0xA]
+ ldrb r1, [r4, 0xB]
+ movs r2, 0
+ movs r3, 0x3
+ bl sub_806BA94
+ adds r0, r4, 0
+ adds r0, 0xA
+ movs r1, 0x5
+_0806B8A8:
+ movs r2, 0x3
+_0806B8AA:
+ movs r3, 0
+ bl sub_806BF24
+ b _0806B900
+ .align 2, 0
+_0806B8B4: .4byte 0x03004350
+_0806B8B8:
+ ldrb r0, [r4, 0xA]
+ ldrb r1, [r4, 0xB]
+_0806B8BC:
+ movs r2, 0x1
+ movs r3, 0x3
+ bl sub_806BA94
+ b _0806B900
+_0806B8C6:
+ ldr r0, _0806B8E4
+ movs r1, 0x96
+ lsls r1, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _0806B8DA
+ movs r0, 0x1
+ bl sub_806BB9C
+_0806B8DA:
+ movs r0, 0x1
+ bl sub_806BBEC
+ b _0806B900
+ .align 2, 0
+_0806B8E4: .4byte 0x0201b000
+_0806B8E8:
+ ldr r0, _0806B8F8
+ ldr r1, _0806B8FC
+ adds r0, r1
+ movs r1, 0x2
+ strb r1, [r0]
+ movs r0, 0x1
+ b _0806B902
+ .align 2, 0
+_0806B8F8: .4byte 0x0201b000
+_0806B8FC: .4byte 0x00000261
+_0806B900:
+ movs r0, 0
+_0806B902:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806B58C
+
+ thumb_func_start sub_806B908
+sub_806B908: @ 806B908
+ push {r4,r5,lr}
+ ldr r0, _0806B948
+ movs r2, 0x80
+ lsls r2, 4
+ movs r1, 0
+ bl memset
+ ldr r1, _0806B94C
+ movs r0, 0x3
+ strb r0, [r1]
+ ldr r0, _0806B950
+ adds r4, r0, 0
+ adds r4, 0x24
+ ldr r5, _0806B954
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ movs r2, 0x3
+ bl sub_806B9A4
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl PokemonGetField
+ cmp r0, 0
+ beq _0806B958
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ movs r2, 0
+ movs r3, 0x3
+ bl sub_806BA94
+ b _0806B964
+ .align 2, 0
+_0806B948: .4byte 0x020221cc
+_0806B94C: .4byte 0x0202e8fa
+_0806B950: .4byte gUnknown_083769A8
+_0806B954: .4byte 0x030043c4
+_0806B958:
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ movs r2, 0x1
+ movs r3, 0x3
+ bl sub_806BA94
+_0806B964:
+ adds r0, r5, 0
+ adds r0, 0x64
+ movs r1, 0xB
+ bl PokemonGetField
+ cmp r0, 0
+ beq _0806B980
+ ldrb r0, [r4, 0x6]
+ ldrb r1, [r4, 0x7]
+ movs r2, 0
+ movs r3, 0x3
+ bl sub_806BA94
+ b _0806B98C
+_0806B980:
+ ldrb r0, [r4, 0x6]
+ ldrb r1, [r4, 0x7]
+ movs r2, 0x1
+ movs r3, 0x3
+ bl sub_806BA94
+_0806B98C:
+ ldr r0, _0806B99C
+ ldr r1, _0806B9A0
+ adds r0, r1
+ movs r1, 0x2
+ strb r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806B99C: .4byte 0x0201b000
+_0806B9A0: .4byte 0x00000261
+ thumb_func_end sub_806B908
+
+ thumb_func_start sub_806B9A4
+sub_806B9A4: @ 806B9A4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp]
+ lsls r1, 21
+ lsrs r1, 16
+ str r1, [sp, 0x4]
+ movs r1, 0
+ lsls r0, 16
+ mov r8, r0
+ asrs r0, 16
+ mov r10, r0
+ ldr r4, _0806BA2C
+ mov r9, r4
+_0806B9CA:
+ movs r3, 0
+ adds r7, r1, 0x1
+ mov r0, r10
+ cmp r0, 0x1F
+ bgt _0806BA12
+ mov r4, r8
+ asrs r2, r4, 16
+ lsls r0, r1, 5
+ ldr r4, [sp, 0x4]
+ adds r6, r4, r0
+ ldr r0, _0806BA30
+ mov r12, r0
+ ldr r4, [sp]
+ lsls r5, r4, 12
+ movs r0, 0xB
+ adds r4, r1, 0
+ muls r4, r0
+_0806B9EC:
+ adds r0, r2, r3
+ cmp r0, 0
+ blt _0806BA02
+ adds r0, r6, r0
+ lsls r0, 1
+ add r0, r12
+ adds r1, r4, r3
+ add r1, r9
+ ldrb r1, [r1]
+ orrs r1, r5
+ strh r1, [r0]
+_0806BA02:
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0xA
+ bhi _0806BA12
+ adds r0, r2, r3
+ cmp r0, 0x1F
+ ble _0806B9EC
+_0806BA12:
+ lsls r0, r7, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x6
+ bls _0806B9CA
+ 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
+_0806BA2C: .4byte gUnknown_083769D8
+_0806BA30: .4byte 0x020221cc
+ thumb_func_end sub_806B9A4
+
+ thumb_func_start sub_806BA34
+sub_806BA34: @ 806BA34
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r1, 21
+ lsrs r1, 16
+ mov r8, r1
+ movs r1, 0
+ lsls r7, r0, 16
+ asrs r0, r7, 16
+ mov r12, r0
+_0806BA48:
+ movs r2, 0
+ adds r4, r1, 0x1
+ mov r5, r12
+ cmp r5, 0x1F
+ bgt _0806BA7C
+ asrs r3, r7, 16
+ lsls r0, r1, 5
+ mov r5, r8
+ adds r1, r5, r0
+ ldr r6, _0806BA90
+ movs r5, 0
+_0806BA5E:
+ adds r0, r3, r2
+ cmp r0, 0
+ blt _0806BA6C
+ adds r0, r1, r0
+ lsls r0, 1
+ adds r0, r6
+ strh r5, [r0]
+_0806BA6C:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0xA
+ bhi _0806BA7C
+ adds r0, r3, r2
+ cmp r0, 0x1F
+ ble _0806BA5E
+_0806BA7C:
+ lsls r0, r4, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x6
+ bls _0806BA48
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806BA90: .4byte 0x020221cc
+ thumb_func_end sub_806BA34
+
+ thumb_func_start sub_806BA94
+sub_806BA94: @ 806BA94
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 16
+ lsrs r0, r1, 16
+ lsls r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp]
+ ldr r1, _0806BB30
+ mov r9, r1
+ cmp r2, 0
+ bne _0806BABC
+ ldr r1, _0806BB34
+ mov r9, r1
+_0806BABC:
+ lsls r0, 21
+ lsrs r0, 16
+ str r0, [sp, 0x4]
+ movs r1, 0
+ lsls r4, 16
+ mov r12, r4
+ asrs r4, 16
+ mov r10, r4
+_0806BACC:
+ movs r2, 0
+ adds r7, r1, 0x1
+ mov r0, r10
+ cmp r0, 0x1F
+ bgt _0806BB16
+ mov r4, r12
+ asrs r3, r4, 16
+ lsls r0, r1, 5
+ ldr r4, [sp, 0x4]
+ adds r6, r4, r0
+ ldr r0, _0806BB38
+ mov r8, r0
+ ldr r4, [sp]
+ lsls r5, r4, 12
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 2
+ subs r4, r0, r1
+_0806BAF0:
+ adds r0, r3, r2
+ cmp r0, 0
+ blt _0806BB06
+ adds r0, r6, r0
+ lsls r0, 1
+ add r0, r8
+ adds r1, r4, r2
+ add r1, r9
+ ldrb r1, [r1]
+ orrs r1, r5
+ strh r1, [r0]
+_0806BB06:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x12
+ bhi _0806BB16
+ adds r0, r3, r2
+ cmp r0, 0x1F
+ ble _0806BAF0
+_0806BB16:
+ lsls r0, r7, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x2
+ bls _0806BACC
+ 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
+_0806BB30: .4byte gUnknown_08376A5E
+_0806BB34: .4byte gUnknown_08376A25
+_0806BB38: .4byte 0x020221cc
+ thumb_func_end sub_806BA94
+
+ thumb_func_start sub_806BB3C
+sub_806BB3C: @ 806BB3C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r1, 21
+ lsrs r1, 16
+ mov r8, r1
+ movs r1, 0
+ lsls r7, r0, 16
+ asrs r0, r7, 16
+ mov r12, r0
+_0806BB50:
+ movs r2, 0
+ adds r4, r1, 0x1
+ mov r5, r12
+ cmp r5, 0x1F
+ bgt _0806BB84
+ asrs r3, r7, 16
+ lsls r0, r1, 5
+ mov r5, r8
+ adds r1, r5, r0
+ ldr r6, _0806BB98
+ movs r5, 0
+_0806BB66:
+ adds r0, r3, r2
+ cmp r0, 0
+ blt _0806BB74
+ adds r0, r1, r0
+ lsls r0, 1
+ adds r0, r6
+ strh r5, [r0]
+_0806BB74:
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x12
+ bhi _0806BB84
+ adds r0, r3, r2
+ cmp r0, 0x1F
+ ble _0806BB66
+_0806BB84:
+ lsls r0, r4, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x2
+ bls _0806BB50
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806BB98: .4byte 0x020221cc
+ thumb_func_end sub_806BB3C
+
+ thumb_func_start sub_806BB9C
+sub_806BB9C: @ 806BB9C
+ push {r4,lr}
+ sub sp, 0x18
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0806BBE4
+ mov r0, sp
+ movs r2, 0x18
+ bl memcpy
+ ldr r3, _0806BBE8
+ movs r2, 0
+ lsls r4, 12
+_0806BBB6:
+ lsls r0, r2, 1
+ adds r1, r0, r3
+ add r0, sp
+ ldrh r0, [r0]
+ adds r0, r4
+ strh r0, [r1]
+ adds r1, 0x40
+ adds r0, r2, 0x6
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ adds r0, r4
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x5
+ bls _0806BBB6
+ add sp, 0x18
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806BBE4: .4byte gUnknown_08376CD4
+_0806BBE8: .4byte 0x06003c30
+ thumb_func_end sub_806BB9C
+
+ thumb_func_start sub_806BBEC
+sub_806BBEC: @ 806BBEC
+ push {r4,lr}
+ sub sp, 0x18
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0806BC34
+ mov r0, sp
+ movs r2, 0x18
+ bl memcpy
+ ldr r3, _0806BC38
+ movs r2, 0
+ lsls r4, 12
+_0806BC06:
+ lsls r0, r2, 1
+ adds r1, r0, r3
+ add r0, sp
+ ldrh r0, [r0]
+ adds r0, r4
+ strh r0, [r1]
+ adds r1, 0x40
+ adds r0, r2, 0x6
+ lsls r0, 1
+ add r0, sp
+ ldrh r0, [r0]
+ adds r0, r4
+ strh r0, [r1]
+ adds r0, r2, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x5
+ bls _0806BC06
+ add sp, 0x18
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806BC34: .4byte gUnknown_08376CEC
+_0806BC38: .4byte 0x06003cb0
+ thumb_func_end sub_806BBEC
+
+ thumb_func_start sub_806BC3C
+sub_806BC3C: @ 806BC3C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r6, _0806BCB0
+ bl battle_type_is_double
+ lsls r4, 2
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1
+ adds r4, r6
+ ldr r7, [r4]
+ movs r6, 0
+ adds r0, r5, 0
+ movs r1, 0x7
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r4, r0, 19
+ ldr r5, _0806BCB4
+ movs r0, 0x86
+ lsls r0, 1
+ adds r3, r0, 0
+_0806BC7C:
+ adds r1, r6, r4
+ lsls r2, r6, 1
+ adds r2, r7
+ lsls r0, r1, 1
+ adds r0, r5
+ ldrh r0, [r0]
+ adds r0, r3, r0
+ strh r0, [r2]
+ adds r2, 0x40
+ adds r1, 0x20
+ lsls r1, 1
+ adds r1, r5
+ ldrh r1, [r1]
+ adds r0, r3, r1
+ strh r0, [r2]
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ cmp r6, 0x6
+ bls _0806BC7C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806BCB0: .4byte gUnknown_08376918
+_0806BCB4: .4byte gUnknown_08E9A300
+ thumb_func_end sub_806BC3C
+
+ thumb_func_start unref_sub_806BCB8
+unref_sub_806BCB8: @ 806BCB8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _0806BCE4
+ ldrb r1, [r0]
+ cmp r4, r1
+ bcs _0806BCDE
+ adds r6, r0, 0
+_0806BCCA:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_806BC3C
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r0, [r6]
+ cmp r4, r0
+ bcc _0806BCCA
+_0806BCDE:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806BCE4: .4byte 0x03004350
+ thumb_func_end unref_sub_806BCB8
+
+ thumb_func_start sub_806BCE8
+sub_806BCE8: @ 806BCE8
+ push {r4,r5,lr}
+ movs r5, 0
+ b _0806BD46
+_0806BCEE:
+ movs r0, 0x64
+ adds r1, r5, 0
+ muls r1, r0
+ ldr r0, _0806BD20
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl PokemonGetField
+ cmp r0, 0
+ bne _0806BD38
+ adds r0, r4, 0
+ bl pokemon_get_gender
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _0806BD24
+ cmp r0, 0xFE
+ beq _0806BD2E
+ adds r0, r5, 0
+ movs r1, 0x46
+ bl sub_806BC3C
+ b _0806BD40
+ .align 2, 0
+_0806BD20: .4byte 0x03004360
+_0806BD24:
+ adds r0, r5, 0
+ movs r1, 0x54
+ bl sub_806BC3C
+ b _0806BD40
+_0806BD2E:
+ adds r0, r5, 0
+ movs r1, 0x62
+ bl sub_806BC3C
+ b _0806BD40
+_0806BD38:
+ adds r0, r5, 0
+ movs r1, 0x46
+ bl sub_806BC3C
+_0806BD40:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_0806BD46:
+ ldr r0, _0806BD54
+ ldrb r0, [r0]
+ cmp r5, r0
+ bcc _0806BCEE
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806BD54: .4byte 0x03004350
+ thumb_func_end sub_806BCE8
+
+ thumb_func_start sub_806BD58
+sub_806BD58: @ 806BD58
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0806BD7C
+ bl object_new_hidden_with_callback
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_806CA18
+ movs r0, 0x1
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806BD7C: .4byte SpriteCallbackDummy
+ thumb_func_end sub_806BD58
+
+ thumb_func_start sub_806BD80
+sub_806BD80: @ 806BD80
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _0806BD9C
+ ldrh r0, [r0, 0x30]
+ cmp r0, 0x20
+ beq _0806BDB2
+ cmp r0, 0x20
+ bgt _0806BDA0
+ cmp r0, 0x10
+ beq _0806BDB6
+ b _0806BDB8
+ .align 2, 0
+_0806BD9C: .4byte 0x03001770
+_0806BDA0:
+ cmp r0, 0x40
+ beq _0806BDAA
+ cmp r0, 0x80
+ beq _0806BDAE
+ b _0806BDB8
+_0806BDAA:
+ movs r4, 0xFF
+ b _0806BDB8
+_0806BDAE:
+ movs r4, 0x1
+ b _0806BDB8
+_0806BDB2:
+ movs r4, 0xFE
+ b _0806BDB8
+_0806BDB6:
+ movs r4, 0x2
+_0806BDB8:
+ lsls r0, r4, 24
+ cmp r0, 0
+ bne _0806BDDC
+ bl sub_80F92BC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806BDD0
+ cmp r0, 0x2
+ beq _0806BDD4
+ b _0806BDD6
+_0806BDD0:
+ movs r4, 0xFF
+ b _0806BDD6
+_0806BDD4:
+ movs r4, 0x1
+_0806BDD6:
+ lsls r0, r4, 24
+ cmp r0, 0
+ beq _0806BDF0
+_0806BDDC:
+ asrs r1, r0, 24
+ adds r0, r5, 0
+ bl sub_806BF74
+ ldr r0, _0806BDEC
+ ldrh r0, [r0, 0x30]
+ b _0806BE2C
+ .align 2, 0
+_0806BDEC: .4byte 0x03001770
+_0806BDF0:
+ ldr r0, _0806BE1C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0806BE24
+ ldr r4, _0806BE20
+ adds r0, r5, 0
+ bl sub_806CA00
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x7
+ bne _0806BE24
+ movs r0, 0x2
+ b _0806BE2C
+ .align 2, 0
+_0806BE1C: .4byte 0x03001770
+_0806BE20: .4byte 0x02020004
+_0806BE24:
+ ldr r0, _0806BE34
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+_0806BE2C:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806BE34: .4byte 0x03001770
+ thumb_func_end sub_806BD80
+
+ thumb_func_start sub_806BE38
+sub_806BE38: @ 806BE38
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ ldr r0, _0806BE54
+ ldrh r1, [r0, 0x30]
+ adds r6, r0, 0
+ cmp r1, 0x20
+ beq _0806BE6A
+ cmp r1, 0x20
+ bgt _0806BE58
+ cmp r1, 0x10
+ beq _0806BE6E
+ b _0806BE70
+ .align 2, 0
+_0806BE54: .4byte 0x03001770
+_0806BE58:
+ cmp r1, 0x40
+ beq _0806BE62
+ cmp r1, 0x80
+ beq _0806BE66
+ b _0806BE70
+_0806BE62:
+ movs r4, 0xFF
+ b _0806BE8E
+_0806BE66:
+ movs r4, 0x1
+ b _0806BE8E
+_0806BE6A:
+ movs r4, 0xFE
+ b _0806BE8E
+_0806BE6E:
+ movs r4, 0x2
+_0806BE70:
+ cmp r4, 0
+ bne _0806BE8E
+ bl sub_80F92BC
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806BE86
+ cmp r0, 0x2
+ beq _0806BE8A
+ b _0806BE8C
+_0806BE86:
+ movs r4, 0xFF
+ b _0806BE8C
+_0806BE8A:
+ movs r4, 0x1
+_0806BE8C:
+ ldr r6, _0806BEA4
+_0806BE8E:
+ ldrh r2, [r6, 0x2E]
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _0806BEA8
+ adds r0, r5, 0
+ bl sub_806C890
+ movs r0, 0x8
+ b _0806BEF0
+ .align 2, 0
+_0806BEA4: .4byte 0x03001770
+_0806BEA8:
+ lsls r0, r4, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _0806BEBA
+ adds r0, r5, 0
+ bl sub_806C658
+ ldrh r0, [r6, 0x30]
+ b _0806BEF0
+_0806BEBA:
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _0806BEE8
+ ldr r4, _0806BEE4
+ adds r0, r5, 0
+ bl sub_806CA00
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r4
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x7
+ bne _0806BEE8
+ movs r0, 0x2
+ b _0806BEF0
+ .align 2, 0
+_0806BEE4: .4byte 0x02020004
+_0806BEE8:
+ ldr r0, _0806BEF8
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x3
+ ands r0, r1
+_0806BEF0:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806BEF8: .4byte 0x03001770
+ thumb_func_end sub_806BE38
+
+ thumb_func_start task_pc_turn_off
+task_pc_turn_off: @ 806BEFC
+ push {lr}
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r3, r1, 24
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _0806BF14
+ ldrb r1, [r2, 0x1]
+ movs r2, 0
+ bl sub_806BA94
+ b _0806BF1E
+_0806BF14:
+ ldrb r0, [r2]
+ ldrb r1, [r2, 0x1]
+ adds r2, r3, 0
+ bl sub_806B9A4
+_0806BF1E:
+ pop {r0}
+ bx r0
+ thumb_func_end task_pc_turn_off
+
+ thumb_func_start sub_806BF24
+sub_806BF24: @ 806BF24
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ lsls r3, 24
+ lsrs r6, r3, 24
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _0806BF70
+ adds r5, r1, r0
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl PokemonGetField
+ cmp r0, 0
+ beq _0806BF56
+ adds r0, r5, 0
+ movs r1, 0x39
+ bl PokemonGetField
+ cmp r0, 0
+ bne _0806BF56
+ movs r4, 0x5
+_0806BF56:
+ cmp r6, 0x1
+ bne _0806BF60
+ adds r0, r4, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0806BF60:
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl task_pc_turn_off
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806BF70: .4byte 0x03004360
+ thumb_func_end sub_806BF24
+
+ thumb_func_start sub_806BF74
+sub_806BF74: @ 806BF74
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ bl sub_806CA00
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _0806C0C4
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x2E]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r0, r9
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_806DA44
+ bl sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0806BFB6
+ b _0806C0D8
+_0806BFB6:
+ cmp r5, 0
+ beq _0806BFC2
+ cmp r5, 0x2
+ beq _0806BFC2
+ cmp r5, 0x3
+ bne _0806BFD2
+_0806BFC2:
+ lsls r0, r5, 1
+ ldr r1, _0806C0C8
+ adds r0, r1
+ adds r1, r5, 0
+ movs r2, 0x3
+ movs r3, 0
+ bl sub_806BF24
+_0806BFD2:
+ cmp r5, 0x1
+ beq _0806BFDE
+ cmp r5, 0x4
+ beq _0806BFDE
+ cmp r5, 0x5
+ bne _0806BFEE
+_0806BFDE:
+ lsls r0, r5, 1
+ ldr r1, _0806C0C8
+ adds r0, r1
+ adds r1, r5, 0
+ movs r2, 0x4
+ movs r3, 0
+ bl sub_806BF24
+_0806BFEE:
+ cmp r5, 0x7
+ bne _0806BFF8
+ movs r0, 0x1
+ bl sub_806BBEC
+_0806BFF8:
+ lsls r2, r4, 24
+ asrs r2, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_806C490
+ ldr r2, _0806C0C4
+ lsls r1, r6, 4
+ adds r0, r1, r6
+ lsls r0, 2
+ adds r0, r2
+ movs r2, 0x2E
+ ldrsh r0, [r0, r2]
+ mov r8, r1
+ cmp r0, 0
+ beq _0806C020
+ cmp r0, 0x2
+ beq _0806C020
+ cmp r0, 0x3
+ bne _0806C042
+_0806C020:
+ ldr r0, _0806C0C4
+ mov r4, r8
+ adds r1, r4, r6
+ lsls r1, 2
+ adds r1, r0
+ movs r7, 0x2E
+ ldrsh r0, [r1, r7]
+ lsls r0, 1
+ ldr r2, _0806C0C8
+ adds r0, r2
+ ldrh r1, [r1, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0x3
+ movs r3, 0x1
+ bl sub_806BF24
+_0806C042:
+ ldr r1, _0806C0C4
+ mov r2, r8
+ adds r0, r2, r6
+ lsls r0, 2
+ adds r0, r1
+ movs r4, 0x2E
+ ldrsh r0, [r0, r4]
+ cmp r0, 0x1
+ beq _0806C05C
+ cmp r0, 0x4
+ beq _0806C05C
+ cmp r0, 0x5
+ bne _0806C07E
+_0806C05C:
+ ldr r0, _0806C0C4
+ mov r7, r8
+ adds r1, r7, r6
+ lsls r1, 2
+ adds r1, r0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ lsls r0, 1
+ ldr r2, _0806C0C8
+ adds r0, r2
+ ldrh r1, [r1, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0x4
+ movs r3, 0x1
+ bl sub_806BF24
+_0806C07E:
+ ldr r7, _0806C0C4
+ mov r4, r8
+ adds r0, r4, r6
+ lsls r0, 2
+ adds r4, r0, r7
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x7
+ bne _0806C096
+ movs r0, 0x2
+ bl sub_806BBEC
+_0806C096:
+ ldr r0, _0806C0CC
+ ldr r2, _0806C0D0
+ adds r0, r2
+ movs r1, 0x2
+ strb r1, [r0]
+ ldr r1, _0806C0D4
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x40
+ ldrb r0, [r0]
+ strh r0, [r4, 0x20]
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ lsls r0, 2
+ adds r0, r1
+ adds r0, 0x41
+ ldrb r0, [r0]
+ strh r0, [r4, 0x22]
+ adds r0, r7, 0
+ b _0806C1A4
+ .align 2, 0
+_0806C0C4: .4byte 0x02020004
+_0806C0C8: .4byte gUnknown_083769C0
+_0806C0CC: .4byte 0x0201b000
+_0806C0D0: .4byte 0x00000261
+_0806C0D4: .4byte gUnknown_083768B8
+_0806C0D8:
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r5, 0x5
+ bhi _0806C104
+ lsls r0, r7, 1
+ adds r0, r7
+ lsls r0, 2
+ lsls r1, r5, 1
+ adds r0, r1
+ ldr r1, _0806C100
+ adds r0, r1
+ adds r1, r5, 0
+ movs r2, 0x3
+ movs r3, 0
+ bl sub_806BF24
+ b _0806C10A
+ .align 2, 0
+_0806C100: .4byte gUnknown_083769A8
+_0806C104:
+ movs r0, 0x1
+ bl sub_806BBEC
+_0806C10A:
+ cmp r7, 0
+ bne _0806C11C
+ lsls r2, r4, 24
+ asrs r2, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_806C1E4
+ b _0806C128
+_0806C11C:
+ lsls r2, r4, 24
+ asrs r2, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_806C310
+_0806C128:
+ ldr r1, _0806C160
+ lsls r2, r6, 4
+ adds r0, r2, r6
+ lsls r0, 2
+ adds r1, r0, r1
+ ldrh r3, [r1, 0x2E]
+ movs r4, 0x2E
+ ldrsh r0, [r1, r4]
+ mov r8, r2
+ cmp r0, 0x5
+ bgt _0806C168
+ lsls r0, r7, 1
+ adds r0, r7
+ lsls r0, 2
+ movs r2, 0x2E
+ ldrsh r1, [r1, r2]
+ lsls r1, 1
+ adds r0, r1
+ ldr r1, _0806C164
+ adds r0, r1
+ lsls r1, r3, 24
+ lsrs r1, 24
+ movs r2, 0x3
+ movs r3, 0x1
+ bl sub_806BF24
+ b _0806C16E
+ .align 2, 0
+_0806C160: .4byte 0x02020004
+_0806C164: .4byte gUnknown_083769A8
+_0806C168:
+ movs r0, 0x2
+ bl sub_806BBEC
+_0806C16E:
+ ldr r0, _0806C1D4
+ ldr r4, _0806C1D8
+ adds r0, r4
+ movs r1, 0x2
+ strb r1, [r0]
+ ldr r4, _0806C1DC
+ mov r0, r8
+ adds r1, r0, r6
+ lsls r1, 2
+ adds r1, r4
+ ldr r3, _0806C1E0
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ lsls r0, 2
+ lsls r2, r7, 5
+ adds r0, r2
+ adds r0, r3
+ ldrb r0, [r0]
+ strh r0, [r1, 0x20]
+ movs r7, 0x2E
+ ldrsh r0, [r1, r7]
+ lsls r0, 2
+ adds r0, r2
+ adds r0, r3
+ ldrb r0, [r0, 0x1]
+ strh r0, [r1, 0x22]
+ adds r0, r4, 0
+_0806C1A4:
+ mov r1, r8
+ adds r4, r1, r6
+ lsls r4, 2
+ adds r4, r0
+ ldrh r1, [r4, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r9
+ movs r2, 0x1
+ bl sub_806DA44
+ movs r2, 0x2E
+ ldrsh r0, [r4, r2]
+ cmp r5, r0
+ beq _0806C1C8
+ movs r0, 0x5
+ bl audio_play
+_0806C1C8:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806C1D4: .4byte 0x0201b000
+_0806C1D8: .4byte 0x00000261
+_0806C1DC: .4byte 0x02020004
+_0806C1E0: .4byte gUnknown_083768B8
+ thumb_func_end sub_806BF74
+
+ thumb_func_start sub_806C1E4
+sub_806C1E4: @ 806C1E4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r3, r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ movs r0, 0x80
+ lsls r0, 18
+ adds r2, r0
+ asrs r0, r2, 24
+ cmp r0, 0x4
+ bls _0806C200
+ b _0806C306
+_0806C200:
+ lsls r0, 2
+ ldr r1, _0806C20C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806C20C: .4byte _0806C210
+ .align 2, 0
+_0806C210:
+ .4byte _0806C2EC
+ .4byte _0806C238
+ .4byte _0806C224
+ .4byte _0806C25C
+ .4byte _0806C2BC
+_0806C224:
+ ldr r0, _0806C234
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ b _0806C306
+ .align 2, 0
+_0806C234: .4byte 0x02020004
+_0806C238:
+ cmp r3, 0
+ beq _0806C266
+ cmp r3, 0x7
+ bne _0806C298
+ ldr r2, _0806C254
+ lsls r3, r4, 4
+ adds r1, r3, r4
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, _0806C258
+ ldrb r0, [r0]
+ subs r0, 0x1
+ b _0806C2AA
+ .align 2, 0
+_0806C254: .4byte 0x02020004
+_0806C258: .4byte 0x03004350
+_0806C25C:
+ ldr r0, _0806C278
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r3, r0
+ bne _0806C280
+_0806C266:
+ ldr r2, _0806C27C
+ lsls r3, r4, 4
+ adds r0, r3, r4
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x7
+ strh r1, [r0, 0x2E]
+ b _0806C2AC
+ .align 2, 0
+_0806C278: .4byte 0x03004350
+_0806C27C: .4byte 0x02020004
+_0806C280:
+ cmp r3, 0x7
+ bne _0806C298
+ ldr r2, _0806C294
+ lsls r3, r4, 4
+ adds r0, r3, r4
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ b _0806C2AC
+ .align 2, 0
+_0806C294: .4byte 0x02020004
+_0806C298:
+ ldr r2, _0806C2B8
+ lsls r3, r4, 4
+ adds r1, r3, r4
+ lsls r1, 2
+ adds r1, r2
+ lsls r0, r5, 24
+ asrs r0, 24
+ ldrh r5, [r1, 0x2E]
+ adds r0, r5
+_0806C2AA:
+ strh r0, [r1, 0x2E]
+_0806C2AC:
+ adds r0, r3, r4
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x30]
+ b _0806C306
+ .align 2, 0
+_0806C2B8: .4byte 0x02020004
+_0806C2BC:
+ ldr r0, _0806C2E4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bls _0806C306
+ cmp r3, 0
+ bne _0806C306
+ ldr r0, _0806C2E8
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ movs r2, 0x30
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _0806C2DE
+ movs r0, 0x1
+ strh r0, [r1, 0x30]
+_0806C2DE:
+ ldrh r0, [r1, 0x30]
+ strh r0, [r1, 0x2E]
+ b _0806C306
+ .align 2, 0
+_0806C2E4: .4byte 0x03004350
+_0806C2E8: .4byte 0x02020004
+_0806C2EC:
+ subs r0, r3, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x4
+ bhi _0806C306
+ ldr r0, _0806C30C
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ strh r3, [r1, 0x30]
+_0806C306:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806C30C: .4byte 0x02020004
+ thumb_func_end sub_806C1E4
+
+ thumb_func_start sub_806C310
+sub_806C310: @ 806C310
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r3, r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ movs r0, 0x80
+ lsls r0, 18
+ adds r2, r0
+ asrs r0, r2, 24
+ cmp r0, 0x4
+ bls _0806C32C
+ b _0806C486
+_0806C32C:
+ lsls r0, 2
+ ldr r1, _0806C338
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806C338: .4byte _0806C33C
+ .align 2, 0
+_0806C33C:
+ .4byte _0806C44E
+ .4byte _0806C38C
+ .4byte _0806C350
+ .4byte _0806C364
+ .4byte _0806C3E8
+_0806C350:
+ ldr r0, _0806C360
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ b _0806C486
+ .align 2, 0
+_0806C360: .4byte 0x02020004
+_0806C364:
+ cmp r3, 0x7
+ bne _0806C37C
+ ldr r2, _0806C378
+ lsls r3, r4, 4
+ adds r0, r3, r4
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ b _0806C3D8
+ .align 2, 0
+_0806C378: .4byte 0x02020004
+_0806C37C:
+ ldr r0, _0806C388
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r3, r0
+ beq _0806C390
+ b _0806C3C4
+ .align 2, 0
+_0806C388: .4byte 0x03004350
+_0806C38C:
+ cmp r3, 0
+ bne _0806C3A4
+_0806C390:
+ ldr r2, _0806C3A0
+ lsls r3, r4, 4
+ adds r0, r3, r4
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x7
+ strh r1, [r0, 0x2E]
+ b _0806C3D8
+ .align 2, 0
+_0806C3A0: .4byte 0x02020004
+_0806C3A4:
+ cmp r3, 0x7
+ bne _0806C3C4
+ ldr r2, _0806C3BC
+ lsls r3, r4, 4
+ adds r1, r3, r4
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, _0806C3C0
+ ldrb r0, [r0]
+ subs r0, 0x1
+ b _0806C3D6
+ .align 2, 0
+_0806C3BC: .4byte 0x02020004
+_0806C3C0: .4byte 0x03004350
+_0806C3C4:
+ ldr r2, _0806C3E4
+ lsls r3, r4, 4
+ adds r1, r3, r4
+ lsls r1, 2
+ adds r1, r2
+ lsls r0, r5, 24
+ asrs r0, 24
+ ldrh r5, [r1, 0x2E]
+ adds r0, r5
+_0806C3D6:
+ strh r0, [r1, 0x2E]
+_0806C3D8:
+ adds r0, r3, r4
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x30]
+ b _0806C486
+ .align 2, 0
+_0806C3E4: .4byte 0x02020004
+_0806C3E8:
+ cmp r3, 0
+ bne _0806C418
+ ldr r0, _0806C410
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bls _0806C486
+ ldr r0, _0806C414
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrh r2, [r1, 0x30]
+ subs r0, r2, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _0806C43A
+ movs r0, 0x2
+ strh r0, [r1, 0x2E]
+ b _0806C486
+ .align 2, 0
+_0806C410: .4byte 0x03004350
+_0806C414: .4byte 0x02020004
+_0806C418:
+ cmp r3, 0x1
+ bne _0806C486
+ ldr r0, _0806C440
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bls _0806C486
+ ldr r0, _0806C444
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ ldrh r2, [r1, 0x30]
+ subs r0, r2, 0x4
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _0806C448
+_0806C43A:
+ strh r2, [r1, 0x2E]
+ b _0806C486
+ .align 2, 0
+_0806C440: .4byte 0x03004350
+_0806C444: .4byte 0x02020004
+_0806C448:
+ movs r0, 0x4
+ strh r0, [r1, 0x2E]
+ b _0806C486
+_0806C44E:
+ subs r0, r3, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _0806C46C
+ ldr r0, _0806C468
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0
+ b _0806C482
+ .align 2, 0
+_0806C468: .4byte 0x02020004
+_0806C46C:
+ subs r0, r3, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _0806C486
+ ldr r0, _0806C48C
+ lsls r1, r4, 4
+ adds r1, r4
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0x1
+_0806C482:
+ strh r0, [r1, 0x2E]
+ strh r3, [r1, 0x30]
+_0806C486:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806C48C: .4byte 0x02020004
+ thumb_func_end sub_806C310
+
+ thumb_func_start sub_806C490
+sub_806C490: @ 806C490
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 24
+ lsrs r4, r1, 24
+ lsls r2, 24
+ movs r0, 0x80
+ lsls r0, 18
+ adds r2, r0
+ asrs r0, r2, 24
+ cmp r0, 0x4
+ bls _0806C4AA
+ b _0806C64E
+_0806C4AA:
+ lsls r0, 2
+ ldr r1, _0806C4B4
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806C4B4: .4byte _0806C4B8
+ .align 2, 0
+_0806C4B8:
+ .4byte _0806C618
+ .4byte _0806C524
+ .4byte _0806C4CC
+ .4byte _0806C4E0
+ .4byte _0806C57C
+_0806C4CC:
+ ldr r0, _0806C4DC
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1, 0x30]
+ b _0806C64E
+ .align 2, 0
+_0806C4DC: .4byte 0x02020004
+_0806C4E0:
+ cmp r4, 0x7
+ bne _0806C4FC
+ ldr r2, _0806C4F8
+ lsls r3, r5, 4
+ adds r0, r3, r5
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ adds r1, r2, 0
+ adds r6, r3, 0
+ b _0806C566
+ .align 2, 0
+_0806C4F8: .4byte 0x02020004
+_0806C4FC:
+ lsls r6, r5, 4
+ b _0806C518
+_0806C500:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _0806C520
+ adds r0, r1
+ movs r1, 0xB
+ bl PokemonGetField
+ cmp r0, 0
+ bne _0806C528
+_0806C518:
+ cmp r4, 0x5
+ bne _0806C500
+ b _0806C558
+ .align 2, 0
+_0806C520: .4byte 0x03004360
+_0806C524:
+ lsls r6, r5, 4
+ b _0806C554
+_0806C528:
+ ldr r1, _0806C534
+ adds r0, r6, r5
+ lsls r0, 2
+ adds r0, r1
+ strh r4, [r0, 0x2E]
+ b _0806C566
+ .align 2, 0
+_0806C534: .4byte 0x02020004
+_0806C538:
+ subs r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x6
+ beq _0806C554
+ movs r0, 0x64
+ muls r0, r4
+ ldr r1, _0806C574
+ adds r0, r1
+ movs r1, 0xB
+ bl PokemonGetField
+ cmp r0, 0
+ bne _0806C528
+_0806C554:
+ cmp r4, 0
+ bne _0806C538
+_0806C558:
+ ldr r0, _0806C578
+ adds r1, r6, r5
+ lsls r1, 2
+ adds r1, r0
+ movs r2, 0x7
+ strh r2, [r1, 0x2E]
+ adds r1, r0, 0
+_0806C566:
+ adds r0, r6, r5
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x30]
+ b _0806C64E
+ .align 2, 0
+_0806C574: .4byte 0x03004360
+_0806C578: .4byte 0x02020004
+_0806C57C:
+ cmp r4, 0
+ bne _0806C5C8
+ ldr r0, _0806C5AC
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ adds r4, r1, r0
+ ldrh r1, [r4, 0x30]
+ subs r0, r1, 0x2
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _0806C5E2
+ ldr r5, _0806C5B0
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl PokemonGetField
+ cmp r0, 0
+ beq _0806C5B4
+ movs r0, 0x2
+ strh r0, [r4, 0x2E]
+ b _0806C64E
+ .align 2, 0
+_0806C5AC: .4byte 0x02020004
+_0806C5B0: .4byte 0x03004428
+_0806C5B4:
+ adds r0, r5, 0
+ adds r0, 0x64
+ movs r1, 0xB
+ bl PokemonGetField
+ cmp r0, 0
+ beq _0806C64E
+ movs r0, 0x3
+ strh r0, [r4, 0x2E]
+ b _0806C64E
+_0806C5C8:
+ cmp r4, 0x1
+ bne _0806C64E
+ ldr r0, _0806C5E8
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ adds r4, r1, r0
+ ldrh r1, [r4, 0x30]
+ subs r0, r1, 0x4
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x1
+ bhi _0806C5EC
+_0806C5E2:
+ strh r1, [r4, 0x2E]
+ b _0806C64E
+ .align 2, 0
+_0806C5E8: .4byte 0x02020004
+_0806C5EC:
+ ldr r5, _0806C600
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl PokemonGetField
+ cmp r0, 0
+ beq _0806C604
+ movs r0, 0x4
+ strh r0, [r4, 0x2E]
+ b _0806C64E
+ .align 2, 0
+_0806C600: .4byte 0x030044f0
+_0806C604:
+ adds r0, r5, 0
+ adds r0, 0x64
+ movs r1, 0xB
+ bl PokemonGetField
+ cmp r0, 0
+ beq _0806C64E
+ movs r0, 0x5
+ strh r0, [r4, 0x2E]
+ b _0806C64E
+_0806C618:
+ subs r0, r4, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _0806C634
+ ldr r0, _0806C630
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0
+ b _0806C64A
+ .align 2, 0
+_0806C630: .4byte 0x02020004
+_0806C634:
+ subs r0, r4, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _0806C64E
+ ldr r0, _0806C654
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0x1
+_0806C64A:
+ strh r0, [r1, 0x2E]
+ strh r4, [r1, 0x30]
+_0806C64E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806C654: .4byte 0x02020004
+ thumb_func_end sub_806C490
+
+ thumb_func_start sub_806C658
+sub_806C658: @ 806C658
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ bl sub_806CA00
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0806C6A0
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x2E]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r0, r8
+ adds r1, r6, 0
+ movs r2, 0
+ bl sub_806DA44
+ cmp r6, 0x5
+ bhi _0806C6A8
+ lsls r0, r6, 1
+ ldr r1, _0806C6A4
+ adds r0, r1
+ adds r1, r6, 0
+ movs r2, 0x3
+ movs r3, 0
+ bl sub_806BF24
+ b _0806C6BA
+ .align 2, 0
+_0806C6A0: .4byte 0x02020004
+_0806C6A4: .4byte gUnknown_083769A8
+_0806C6A8:
+ cmp r6, 0x6
+ bne _0806C6B4
+ movs r0, 0x1
+ bl sub_806BB9C
+ b _0806C6BA
+_0806C6B4:
+ movs r0, 0x1
+ bl sub_806BBEC
+_0806C6BA:
+ lsls r1, r4, 24
+ movs r2, 0x80
+ lsls r2, 18
+ adds r0, r1, r2
+ asrs r0, 24
+ lsls r4, r5, 4
+ adds r7, r1, 0
+ cmp r0, 0x4
+ bls _0806C6CE
+ b _0806C7EA
+_0806C6CE:
+ lsls r0, 2
+ ldr r1, _0806C6D8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806C6D8: .4byte _0806C6DC
+ .align 2, 0
+_0806C6DC:
+ .4byte _0806C7D0
+ .4byte _0806C708
+ .4byte _0806C6F0
+ .4byte _0806C740
+ .4byte _0806C7A0
+_0806C6F0:
+ ldr r1, _0806C704
+ lsls r2, r5, 4
+ adds r0, r2, r5
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x30]
+ adds r4, r2, 0
+ b _0806C7EA
+ .align 2, 0
+_0806C704: .4byte 0x02020004
+_0806C708:
+ cmp r6, 0
+ bne _0806C720
+ ldr r2, _0806C71C
+ lsls r3, r5, 4
+ adds r0, r3, r5
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x7
+ strh r1, [r0, 0x2E]
+ b _0806C78E
+ .align 2, 0
+_0806C71C: .4byte 0x02020004
+_0806C720:
+ cmp r6, 0x6
+ bne _0806C77C
+ ldr r2, _0806C738
+ lsls r3, r5, 4
+ adds r1, r3, r5
+ lsls r1, 2
+ adds r1, r2
+ ldr r0, _0806C73C
+ ldrb r0, [r0]
+ subs r0, 0x1
+ b _0806C78C
+ .align 2, 0
+_0806C738: .4byte 0x02020004
+_0806C73C: .4byte 0x03004350
+_0806C740:
+ ldr r0, _0806C75C
+ ldrb r0, [r0]
+ subs r0, 0x1
+ cmp r6, r0
+ bne _0806C764
+ ldr r2, _0806C760
+ lsls r3, r5, 4
+ adds r0, r3, r5
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x6
+ strh r1, [r0, 0x2E]
+ b _0806C78E
+ .align 2, 0
+_0806C75C: .4byte 0x03004350
+_0806C760: .4byte 0x02020004
+_0806C764:
+ cmp r6, 0x7
+ bne _0806C77C
+ ldr r2, _0806C778
+ lsls r3, r5, 4
+ adds r0, r3, r5
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x2E]
+ b _0806C78E
+ .align 2, 0
+_0806C778: .4byte 0x02020004
+_0806C77C:
+ ldr r2, _0806C79C
+ lsls r3, r5, 4
+ adds r1, r3, r5
+ lsls r1, 2
+ adds r1, r2
+ asrs r0, r7, 24
+ ldrh r4, [r1, 0x2E]
+ adds r0, r4
+_0806C78C:
+ strh r0, [r1, 0x2E]
+_0806C78E:
+ adds r4, r3, 0
+ adds r0, r4, r5
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0
+ strh r1, [r0, 0x30]
+ b _0806C7EA
+ .align 2, 0
+_0806C79C: .4byte 0x02020004
+_0806C7A0:
+ ldr r0, _0806C7C8
+ ldrb r0, [r0]
+ lsls r4, r5, 4
+ cmp r0, 0x1
+ bls _0806C7EA
+ cmp r6, 0
+ bne _0806C7EA
+ ldr r0, _0806C7CC
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r1, r0
+ movs r2, 0x30
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ bne _0806C7C2
+ movs r0, 0x1
+ strh r0, [r1, 0x30]
+_0806C7C2:
+ ldrh r0, [r1, 0x30]
+ strh r0, [r1, 0x2E]
+ b _0806C7EA
+ .align 2, 0
+_0806C7C8: .4byte 0x03004350
+_0806C7CC: .4byte 0x02020004
+_0806C7D0:
+ subs r0, r6, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r5, 4
+ cmp r0, 0x4
+ bhi _0806C7EA
+ ldr r0, _0806C82C
+ adds r1, r4, r5
+ lsls r1, 2
+ adds r1, r0
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ strh r6, [r1, 0x30]
+_0806C7EA:
+ ldr r1, _0806C82C
+ adds r0, r4, r5
+ lsls r0, 2
+ adds r2, r0, r1
+ ldr r1, _0806C830
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r2, 0x20]
+ movs r3, 0x2E
+ ldrsh r0, [r2, r3]
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x1]
+ strh r0, [r2, 0x22]
+ ldrh r3, [r2, 0x2E]
+ movs r1, 0x2E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x5
+ bgt _0806C838
+ lsls r0, 1
+ ldr r1, _0806C834
+ adds r0, r1
+ lsls r1, r3, 24
+ lsrs r1, 24
+ movs r2, 0x3
+ movs r3, 0x1
+ bl sub_806BF24
+ b _0806C84A
+ .align 2, 0
+_0806C82C: .4byte 0x02020004
+_0806C830: .4byte gUnknown_083768B8
+_0806C834: .4byte gUnknown_083769A8
+_0806C838:
+ cmp r0, 0x6
+ bne _0806C844
+ movs r0, 0x2
+ bl sub_806BB9C
+ b _0806C84A
+_0806C844:
+ movs r0, 0x2
+ bl sub_806BBEC
+_0806C84A:
+ ldr r0, _0806C884
+ ldr r2, _0806C888
+ adds r0, r2
+ movs r1, 0x2
+ strb r1, [r0]
+ ldr r0, _0806C88C
+ adds r4, r5
+ lsls r4, 2
+ adds r4, r0
+ ldrh r1, [r4, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ movs r2, 0x1
+ bl sub_806DA44
+ movs r3, 0x2E
+ ldrsh r0, [r4, r3]
+ cmp r6, r0
+ beq _0806C878
+ movs r0, 0x5
+ bl audio_play
+_0806C878:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806C884: .4byte 0x0201b000
+_0806C888: .4byte 0x00000261
+_0806C88C: .4byte 0x02020004
+ thumb_func_end sub_806C658
+
+ thumb_func_start sub_806C890
+sub_806C890: @ 806C890
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r0, r6, 0
+ bl sub_806CA00
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r1, _0806C8D4
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ ldrh r0, [r0, 0x2E]
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x6
+ beq _0806C914
+ adds r0, r6, 0
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_806DA44
+ cmp r4, 0x5
+ bhi _0806C8DC
+ lsls r0, r4, 1
+ ldr r1, _0806C8D8
+ adds r0, r1
+ adds r1, r4, 0
+ movs r2, 0x3
+ movs r3, 0
+ bl sub_806BF24
+ b _0806C8E2
+ .align 2, 0
+_0806C8D4: .4byte 0x02020004
+_0806C8D8: .4byte gUnknown_083769A8
+_0806C8DC:
+ movs r0, 0x1
+ bl sub_806BBEC
+_0806C8E2:
+ ldr r1, _0806C91C
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0, 0x30]
+ movs r1, 0x6
+ strh r1, [r0, 0x2E]
+ ldr r2, _0806C920
+ ldrb r1, [r2, 0x18]
+ strh r1, [r0, 0x20]
+ ldrb r1, [r2, 0x19]
+ strh r1, [r0, 0x22]
+ movs r0, 0x2
+ bl sub_806BB9C
+ ldr r0, _0806C924
+ ldr r1, _0806C928
+ adds r0, r1
+ movs r1, 0x2
+ strb r1, [r0]
+ movs r0, 0x5
+ bl audio_play
+_0806C914:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806C91C: .4byte 0x02020004
+_0806C920: .4byte gUnknown_083768B8
+_0806C924: .4byte 0x0201b000
+_0806C928: .4byte 0x00000261
+ thumb_func_end sub_806C890
+
+ thumb_func_start sub_806C92C
+sub_806C92C: @ 806C92C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0806C960
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x2E]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldrh r0, [r1, 0x30]
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl battle_type_is_double
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806C96A
+ cmp r6, 0
+ bne _0806C964
+ cmp r4, 0
+ bne _0806C97C
+ movs r4, 0x1
+ b _0806C97C
+ .align 2, 0
+_0806C960: .4byte 0x02020004
+_0806C964:
+ cmp r4, 0
+ beq _0806C97C
+ b _0806C97A
+_0806C96A:
+ cmp r6, 0x1
+ bhi _0806C976
+ cmp r4, 0x1
+ bhi _0806C97C
+ movs r4, 0x2
+ b _0806C97C
+_0806C976:
+ cmp r4, 0x1
+ bls _0806C97C
+_0806C97A:
+ movs r4, 0
+_0806C97C:
+ ldr r1, _0806C990
+ lsls r0, r5, 4
+ adds r0, r5
+ lsls r0, 2
+ adds r0, r1
+ strh r4, [r0, 0x30]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806C990: .4byte 0x02020004
+ thumb_func_end sub_806C92C
+
+ thumb_func_start sub_806C994
+sub_806C994: @ 806C994
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_806CA00
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0806C9C0
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ strh r4, [r1, 0x2E]
+ bl sub_806C92C
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806C9C0: .4byte 0x02020004
+ thumb_func_end sub_806C994
+
+ thumb_func_start sub_806C9C4
+sub_806C9C4: @ 806C9C4
+ push {r4,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_806CA00
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0806C9FC
+ lsls r2, r4, 4
+ adds r2, r4
+ lsls r2, 2
+ adds r2, r3
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3
+ ldrh r0, [r1, 0x20]
+ strh r0, [r2, 0x20]
+ ldrh r0, [r1, 0x22]
+ strh r0, [r2, 0x22]
+ ldrh r0, [r1, 0x2E]
+ strh r0, [r2, 0x2E]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806C9FC: .4byte 0x02020004
+ thumb_func_end sub_806C9C4
+
+ thumb_func_start sub_806CA00
+sub_806CA00: @ 806CA00
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0806CA14
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrh r0, [r1, 0xE]
+ lsrs r0, 8
+ bx lr
+ .align 2, 0
+_0806CA14: .4byte 0x03004b20
+ thumb_func_end sub_806CA00
+
+ thumb_func_start sub_806CA18
+sub_806CA18: @ 806CA18
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ ldr r3, _0806CA34
+ lsls r2, r0, 2
+ adds r2, r0
+ lsls r2, 3
+ adds r2, r3
+ ldrb r0, [r2, 0xE]
+ lsrs r1, 16
+ orrs r0, r1
+ strh r0, [r2, 0xE]
+ bx lr
+ .align 2, 0
+_0806CA34: .4byte 0x03004b20
+ thumb_func_end sub_806CA18
+
+ thumb_func_start sub_806CA38
+sub_806CA38: @ 806CA38
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_806CA00
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0806CA5C
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x2E]
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806CA5C: .4byte 0x02020004
+ thumb_func_end sub_806CA38
+
+ thumb_func_start sub_806CA60
+sub_806CA60: @ 806CA60
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r1, _0806CAD8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806CADC
+ str r1, [r0]
+ ldr r5, _0806CAE0
+ strb r4, [r5]
+ ldr r0, _0806CAE4
+ movs r1, 0
+ bl CreateTask
+ ldr r0, _0806CAE8
+ bl object_new_hidden_with_callback
+ strb r0, [r5, 0x1]
+ ldrb r1, [r5, 0x1]
+ adds r0, r4, 0
+ bl sub_806C9C4
+ adds r0, r4, 0
+ bl sub_806CA00
+ strb r0, [r5, 0x2]
+ ldr r1, _0806CAEC
+ adds r0, r5, r1
+ ldrb r0, [r0]
+ movs r1, 0
+ bl sub_806D538
+ ldr r2, _0806CAF0
+ ldrb r0, [r5, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ lsls r0, 1
+ ldr r2, _0806CAF4
+ adds r0, r2
+ ldrh r1, [r1, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0x6
+ movs r3, 0
+ bl sub_806BF24
+ ldr r0, _0806CAF8
+ adds r5, r0
+ movs r0, 0x2
+ strb r0, [r5]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806CAD8: .4byte 0x03004b20
+_0806CADC: .4byte TaskDummy
+_0806CAE0: .4byte 0x02001000
+_0806CAE4: .4byte sub_806CB74
+_0806CAE8: .4byte SpriteCallbackDummy
+_0806CAEC: .4byte 0x0001a272
+_0806CAF0: .4byte 0x02020004
+_0806CAF4: .4byte gUnknown_083769A8
+_0806CAF8: .4byte 0x0001a261
+ thumb_func_end sub_806CA60
+
+ thumb_func_start sub_806CAFC
+sub_806CAFC: @ 806CAFC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _0806CB48
+ ldrb r3, [r4, 0x1]
+ lsls r2, r3, 4
+ adds r2, r3
+ lsls r2, 2
+ ldr r3, _0806CB4C
+ adds r5, r2, r3
+ ldrb r2, [r4, 0x2]
+ lsls r4, r2, 4
+ adds r4, r2
+ lsls r4, 2
+ adds r4, r3
+ lsls r1, 24
+ asrs r1, 24
+ bl sub_806BF74
+ ldrh r2, [r5, 0x2E]
+ movs r0, 0x2E
+ ldrsh r1, [r5, r0]
+ movs r3, 0x2E
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ beq _0806CB54
+ adds r0, r1, 0
+ lsls r0, 1
+ ldr r1, _0806CB50
+ adds r0, r1
+ lsls r1, r2, 24
+ lsrs r1, 24
+ movs r2, 0x6
+ movs r3, 0x1
+ bl sub_806BF24
+ b _0806CB6A
+ .align 2, 0
+_0806CB48: .4byte 0x02001000
+_0806CB4C: .4byte 0x02020004
+_0806CB50: .4byte gUnknown_083769A8
+_0806CB54:
+ movs r3, 0x2E
+ ldrsh r0, [r5, r3]
+ lsls r0, 1
+ ldr r1, _0806CB70
+ adds r0, r1
+ lsls r1, r2, 24
+ lsrs r1, 24
+ movs r2, 0x6
+ movs r3, 0
+ bl sub_806BF24
+_0806CB6A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806CB70: .4byte gUnknown_083769A8
+ thumb_func_end sub_806CAFC
+
+ thumb_func_start sub_806CB74
+sub_806CB74: @ 806CB74
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806CB8C
+ ldrh r0, [r0, 0x30]
+ cmp r0, 0x20
+ beq _0806CBBC
+ cmp r0, 0x20
+ bgt _0806CB90
+ cmp r0, 0x10
+ beq _0806CBD0
+ b _0806CBDA
+ .align 2, 0
+_0806CB8C: .4byte 0x03001770
+_0806CB90:
+ cmp r0, 0x40
+ beq _0806CB9A
+ cmp r0, 0x80
+ beq _0806CBAC
+ b _0806CBDA
+_0806CB9A:
+ ldr r0, _0806CBA8
+ ldrb r0, [r0]
+ movs r1, 0x1
+ negs r1, r1
+ bl sub_806CAFC
+ b _0806CBDA
+ .align 2, 0
+_0806CBA8: .4byte 0x02001000
+_0806CBAC:
+ ldr r0, _0806CBB8
+ ldrb r0, [r0]
+ movs r1, 0x1
+ bl sub_806CAFC
+ b _0806CBDA
+ .align 2, 0
+_0806CBB8: .4byte 0x02001000
+_0806CBBC:
+ ldr r0, _0806CBCC
+ ldrb r0, [r0]
+ movs r1, 0x2
+ negs r1, r1
+ bl sub_806CAFC
+ b _0806CBDA
+ .align 2, 0
+_0806CBCC: .4byte 0x02001000
+_0806CBD0:
+ ldr r0, _0806CC04
+ ldrb r0, [r0]
+ movs r1, 0x2
+ bl sub_806CAFC
+_0806CBDA:
+ ldr r0, _0806CC08
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0806CC10
+ movs r0, 0x5
+ bl audio_play
+ ldr r1, _0806CC0C
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806CC04
+ ldr r1, [r1, 0xC]
+ str r1, [r0]
+ adds r0, r4, 0
+ bl _call_via_r1
+ b _0806CC24
+ .align 2, 0
+_0806CC04: .4byte 0x02001000
+_0806CC08: .4byte 0x03001770
+_0806CC0C: .4byte 0x03004b20
+_0806CC10:
+ lsls r0, r1, 16
+ lsrs r0, 16
+ cmp r0, 0x2
+ bne _0806CC24
+ movs r0, 0x5
+ bl audio_play
+ adds r0, r4, 0
+ bl sub_806CD44
+_0806CC24:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806CB74
+
+ thumb_func_start sub_806CC2C
+sub_806CC2C: @ 806CC2C
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r5, _0806CC68
+ ldrb r1, [r5, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r1, _0806CC6C
+ adds r0, r1
+ bl DestroySprite
+ movs r0, 0
+ movs r1, 0
+ bl sub_806D538
+ ldr r0, _0806CC70
+ adds r1, r5, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ ldrb r0, [r5]
+ bl SwitchTaskToFollowupFunc
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806CC68: .4byte 0x02001000
+_0806CC6C: .4byte 0x02020004
+_0806CC70: .4byte 0x0001a261
+ thumb_func_end sub_806CC2C
+
+ thumb_func_start sub_806CC74
+sub_806CC74: @ 806CC74
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0806CCD8
+ mov r8, r0
+ ldr r6, _0806CCDC
+ ldrb r0, [r6, 0x2]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r8
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ lsls r0, 1
+ ldr r5, _0806CCE0
+ adds r0, r5
+ ldrh r1, [r1, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0x3
+ movs r3, 0x1
+ bl sub_806BF24
+ ldrb r0, [r6, 0x1]
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r8
+ movs r2, 0x2E
+ ldrsh r0, [r1, r2]
+ lsls r0, 1
+ adds r0, r5
+ ldrh r1, [r1, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0x3
+ movs r3, 0
+ bl sub_806BF24
+ adds r0, r4, 0
+ bl sub_806CC2C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806CCD8: .4byte 0x02020004
+_0806CCDC: .4byte 0x02001000
+_0806CCE0: .4byte gUnknown_083769A8
+ thumb_func_end sub_806CC74
+
+ thumb_func_start sub_806CCE4
+sub_806CCE4: @ 806CCE4
+ push {r4,r5,lr}
+ ldr r3, _0806CD38
+ ldr r2, _0806CD3C
+ ldrb r1, [r2, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x2E]
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldrb r1, [r2, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r3
+ ldrh r0, [r0, 0x2E]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r4, 0x5
+ bhi _0806CD1E
+ lsls r0, r4, 1
+ ldr r1, _0806CD40
+ adds r0, r1
+ adds r1, r4, 0
+ movs r2, 0x3
+ movs r3, 0
+ bl sub_806BF24
+_0806CD1E:
+ cmp r5, 0x5
+ bhi _0806CD32
+ lsls r0, r5, 1
+ ldr r1, _0806CD40
+ adds r0, r1
+ adds r1, r5, 0
+ movs r2, 0x3
+ movs r3, 0x1
+ bl sub_806BF24
+_0806CD32:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806CD38: .4byte 0x02020004
+_0806CD3C: .4byte 0x02001000
+_0806CD40: .4byte gUnknown_083769A8
+ thumb_func_end sub_806CCE4
+
+ thumb_func_start sub_806CD44
+sub_806CD44: @ 806CD44
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_806CCE4
+ adds r0, r4, 0
+ bl sub_806CC2C
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806CD44
+
+ thumb_func_start sub_806CD5C
+sub_806CD5C: @ 806CD5C
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ ldr r2, _0806CDA8
+ ldr r6, _0806CDAC
+ ldrb r1, [r6, 0x1]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x2E]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ mov r9, r5
+ ldrb r1, [r6, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x2E]
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r7, r4, 0
+ cmp r5, r4
+ beq _0806CD9E
+ cmp r5, 0x7
+ beq _0806CD9E
+ cmp r4, 0x7
+ bne _0806CDB0
+_0806CD9E:
+ mov r0, r8
+ bl sub_806CD44
+ b _0806CED2
+ .align 2, 0
+_0806CDA8: .4byte 0x02020004
+_0806CDAC: .4byte 0x02001000
+_0806CDB0:
+ adds r0, r5, 0
+ bl sub_806D5B8
+ adds r0, r4, 0
+ bl sub_806D5B8
+ cmp r5, r4
+ bls _0806CDC6
+ strb r4, [r6, 0x5]
+ strb r5, [r6, 0x6]
+ b _0806CDCC
+_0806CDC6:
+ mov r0, r9
+ strb r0, [r6, 0x5]
+ strb r7, [r6, 0x6]
+_0806CDCC:
+ ldr r4, _0806CE1C
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x5]
+ bl sub_806DDA0
+ strb r0, [r4, 0x3]
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x6]
+ bl sub_806DDA0
+ strb r0, [r4, 0x4]
+ ldrb r3, [r4, 0x5]
+ cmp r3, 0
+ bne _0806CE34
+ ldr r2, _0806CE20
+ ldrb r1, [r4, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _0806CE24
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r4, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _0806CE28
+ strh r1, [r0, 0x32]
+ strh r3, [r4, 0x8]
+ movs r0, 0xB
+ strh r0, [r4, 0xA]
+ ldr r1, _0806CE2C
+ mov r3, r8
+ lsls r0, r3, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806CE30
+ b _0806CE66
+ .align 2, 0
+_0806CE1C: .4byte 0x02001000
+_0806CE20: .4byte 0x02020004
+_0806CE24: .4byte 0x0000fff8
+_0806CE28: .4byte 0x0000ff58
+_0806CE2C: .4byte 0x03004b20
+_0806CE30: .4byte sub_806D014
+_0806CE34:
+ ldr r2, _0806CEE0
+ ldrb r1, [r4, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0x8
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r4, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ movs r1, 0xA8
+ strh r1, [r0, 0x32]
+ movs r0, 0xB
+ strh r0, [r4, 0x8]
+ strh r0, [r4, 0xA]
+ ldr r1, _0806CEE4
+ mov r3, r8
+ lsls r0, r3, 2
+ add r0, r8
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806CEE8
+_0806CE66:
+ str r1, [r0]
+ ldr r0, _0806CEEC
+ adds r1, r4, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r6, r2, 0
+ ldr r4, _0806CEF0
+ ldrb r1, [r4, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r5, r6, 0
+ adds r5, 0x1C
+ adds r0, r5
+ ldr r2, _0806CEF4
+ str r2, [r0]
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0x8
+ strh r1, [r0, 0x2E]
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ movs r1, 0xA8
+ strh r1, [r0, 0x32]
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ str r2, [r0]
+ ldrb r1, [r4, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r1, r0, r5
+ adds r0, r6
+ ldr r1, [r1]
+ bl _call_via_r1
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r5, r0, r5
+ adds r0, r6
+ ldr r1, [r5]
+ bl _call_via_r1
+_0806CED2:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806CEE0: .4byte 0x02020004
+_0806CEE4: .4byte 0x03004b20
+_0806CEE8: .4byte sub_806D118
+_0806CEEC: .4byte 0x0001a261
+_0806CEF0: .4byte 0x02001000
+_0806CEF4: .4byte sub_806D37C
+ thumb_func_end sub_806CD5C
+
+ thumb_func_start sub_806CEF8
+sub_806CEF8: @ 806CEF8
+ ldrh r3, [r0]
+ ldrh r2, [r1]
+ strh r2, [r0]
+ strh r3, [r1]
+ bx lr
+ thumb_func_end sub_806CEF8
+
+ thumb_func_start sub_806CF04
+sub_806CF04: @ 806CF04
+ push {r4,r5,lr}
+ ldr r4, _0806CF94
+ ldrb r1, [r4, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ ldr r5, _0806CF98
+ adds r0, r5
+ ldrb r2, [r4, 0x4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r5
+ bl sub_806CEF8
+ ldrb r1, [r4, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, r5, 0x2
+ adds r0, r3
+ ldrb r2, [r4, 0x4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r3
+ bl sub_806CEF8
+ ldrb r1, [r4, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, r5, 0x4
+ adds r0, r3
+ ldrb r2, [r4, 0x4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r3
+ bl sub_806CEF8
+ ldrb r1, [r4, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r3, r5, 0
+ adds r3, 0xE
+ adds r0, r3
+ ldrb r2, [r4, 0x4]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r3
+ bl sub_806CEF8
+ ldrb r1, [r4, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ subs r5, 0x4
+ adds r0, r5
+ ldr r2, _0806CF9C
+ str r2, [r0]
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ str r2, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806CF94: .4byte 0x02001000
+_0806CF98: .4byte 0x02020024
+_0806CF9C: .4byte sub_806D37C
+ thumb_func_end sub_806CF04
+
+ thumb_func_start sub_806CFA0
+sub_806CFA0: @ 806CFA0
+ push {r4-r6,lr}
+ lsls r4, r1, 24
+ lsrs r4, 24
+ ldr r5, _0806CFDC
+ ldrb r1, [r5, 0x6]
+ subs r1, 0x1
+ lsls r0, r1, 1
+ adds r0, r1
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ movs r1, 0x3
+ bl sub_806BA34
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ adds r1, r6, 0
+ bl sub_806BB3C
+ cmp r4, 0
+ bne _0806CFE0
+ ldrh r0, [r5, 0x8]
+ subs r0, 0x1
+ strh r0, [r5, 0x8]
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ b _0806CFEA
+ .align 2, 0
+_0806CFDC: .4byte 0x02001000
+_0806CFE0:
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ ldrh r0, [r5, 0xA]
+ subs r0, 0x1
+_0806CFEA:
+ strh r0, [r5, 0xA]
+ ldr r4, _0806D010
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ movs r1, 0x3
+ movs r2, 0xA
+ bl sub_806B9A4
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0xA
+ bl sub_806BA94
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D010: .4byte 0x02001000
+ thumb_func_end sub_806CFA0
+
+ thumb_func_start sub_806D014
+sub_806D014: @ 806D014
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806CFA0
+ ldr r2, _0806D050
+ movs r0, 0x8
+ ldrsh r1, [r2, r0]
+ movs r0, 0xD
+ negs r0, r0
+ cmp r1, r0
+ bge _0806D04A
+ movs r1, 0xA
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x20
+ ble _0806D04A
+ bl sub_806CF04
+ ldr r0, _0806D054
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806D058
+ str r0, [r1]
+_0806D04A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D050: .4byte 0x02001000
+_0806D054: .4byte 0x03004b20
+_0806D058: .4byte sub_806D05C
+ thumb_func_end sub_806D014
+
+ thumb_func_start sub_806D05C
+sub_806D05C: @ 806D05C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806CFA0
+ ldr r0, _0806D08C
+ ldr r1, [r0, 0x8]
+ movs r0, 0xB0
+ lsls r0, 12
+ cmp r1, r0
+ bne _0806D084
+ ldr r0, _0806D090
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806D094
+ str r0, [r1]
+_0806D084:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D08C: .4byte 0x02001000
+_0806D090: .4byte 0x03004b20
+_0806D094: .4byte sub_806D198
+ thumb_func_end sub_806D05C
+
+ thumb_func_start sub_806D098
+sub_806D098: @ 806D098
+ push {r4-r7,lr}
+ lsls r4, r1, 24
+ lsrs r4, 24
+ ldr r5, _0806D0E0
+ ldrb r1, [r5, 0x5]
+ subs r1, 0x1
+ lsls r0, r1, 1
+ adds r0, r1
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ ldrb r1, [r5, 0x6]
+ subs r1, 0x1
+ lsls r0, r1, 1
+ adds r0, r1
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ adds r1, r7, 0
+ bl sub_806BB3C
+ movs r1, 0xA
+ ldrsh r0, [r5, r1]
+ adds r1, r6, 0
+ bl sub_806BB3C
+ cmp r4, 0
+ bne _0806D0E4
+ ldrh r0, [r5, 0x8]
+ adds r0, 0x1
+ strh r0, [r5, 0x8]
+ ldrh r0, [r5, 0xA]
+ adds r0, 0x1
+ b _0806D0EE
+ .align 2, 0
+_0806D0E0: .4byte 0x02001000
+_0806D0E4:
+ ldrh r0, [r5, 0x8]
+ subs r0, 0x1
+ strh r0, [r5, 0x8]
+ ldrh r0, [r5, 0xA]
+ subs r0, 0x1
+_0806D0EE:
+ strh r0, [r5, 0xA]
+ ldr r4, _0806D114
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ adds r1, r7, 0
+ movs r2, 0
+ movs r3, 0xA
+ bl sub_806BA94
+ movs r1, 0xA
+ ldrsh r0, [r4, r1]
+ adds r1, r6, 0
+ movs r2, 0
+ movs r3, 0xA
+ bl sub_806BA94
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D114: .4byte 0x02001000
+ thumb_func_end sub_806D098
+
+ thumb_func_start sub_806D118
+sub_806D118: @ 806D118
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806D098
+ ldr r1, _0806D150
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x20
+ ble _0806D14A
+ movs r2, 0xA
+ ldrsh r0, [r1, r2]
+ cmp r0, 0x20
+ ble _0806D14A
+ bl sub_806CF04
+ ldr r0, _0806D154
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806D158
+ str r0, [r1]
+_0806D14A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D150: .4byte 0x02001000
+_0806D154: .4byte 0x03004b20
+_0806D158: .4byte sub_806D15C
+ thumb_func_end sub_806D118
+
+ thumb_func_start sub_806D15C
+sub_806D15C: @ 806D15C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806D098
+ ldr r0, _0806D188
+ ldr r1, [r0, 0x8]
+ ldr r0, _0806D18C
+ cmp r1, r0
+ bne _0806D182
+ ldr r0, _0806D190
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806D194
+ str r0, [r1]
+_0806D182:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D188: .4byte 0x02001000
+_0806D18C: .4byte 0x000b000b
+_0806D190: .4byte 0x03004b20
+_0806D194: .4byte sub_806D198
+ thumb_func_end sub_806D15C
+
+ thumb_func_start sub_806D198
+sub_806D198: @ 806D198
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r10, r0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ ldr r4, _0806D364
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x5]
+ ldrb r2, [r4, 0x4]
+ bl sub_806DE50
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x6]
+ ldrb r2, [r4, 0x3]
+ bl sub_806DE50
+ bl battle_type_is_double
+ ldr r5, _0806D368
+ ldrb r1, [r4, 0x3]
+ lsls r3, r1, 4
+ adds r3, r1
+ lsls r3, 2
+ adds r3, r5
+ ldr r6, _0806D36C
+ ldrb r2, [r4, 0x6]
+ lsls r2, 2
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r2, r1
+ adds r2, r6
+ ldrb r0, [r2]
+ movs r1, 0
+ mov r8, r1
+ strh r0, [r3, 0x20]
+ bl battle_type_is_double
+ ldrb r1, [r4, 0x3]
+ lsls r3, r1, 4
+ adds r3, r1
+ lsls r3, 2
+ adds r3, r5
+ ldrb r2, [r4, 0x6]
+ lsls r2, 2
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r2, r1
+ adds r2, r6
+ ldrb r0, [r2, 0x1]
+ strh r0, [r3, 0x22]
+ ldrb r1, [r4, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x24]
+ ldrb r1, [r4, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x26]
+ ldrb r1, [r4, 0x3]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ movs r1, 0x1C
+ adds r1, r5
+ mov r9, r1
+ add r0, r9
+ ldr r7, _0806D370
+ str r7, [r0]
+ bl battle_type_is_double
+ ldrb r1, [r4, 0x4]
+ lsls r3, r1, 4
+ adds r3, r1
+ lsls r3, 2
+ adds r3, r5
+ ldrb r2, [r4, 0x5]
+ lsls r2, 2
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r2, r1
+ adds r2, r6
+ ldrb r0, [r2]
+ strh r0, [r3, 0x20]
+ bl battle_type_is_double
+ ldrb r1, [r4, 0x4]
+ lsls r3, r1, 4
+ adds r3, r1
+ lsls r3, 2
+ adds r3, r5
+ ldrb r2, [r4, 0x5]
+ lsls r2, 2
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r2, r1
+ adds r2, r6
+ ldrb r0, [r2, 0x1]
+ strh r0, [r3, 0x22]
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x24]
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ mov r1, r8
+ strh r1, [r0, 0x26]
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ add r0, r9
+ str r7, [r0]
+ ldrb r0, [r4]
+ ldrb r2, [r4, 0x2]
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r5
+ ldrh r1, [r1, 0x2E]
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_806DDA0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ add r1, r9
+ ldr r0, _0806D374
+ str r0, [r1]
+ ldrb r0, [r4, 0x5]
+ movs r6, 0x64
+ muls r0, r6
+ ldr r5, _0806D378
+ adds r0, r5
+ ldrb r1, [r4, 0x6]
+ muls r1, r6
+ adds r1, r5
+ bl sub_806E6F0
+ ldrb r0, [r4, 0x5]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r5
+ bl sub_806E2C0
+ ldrb r0, [r4, 0x5]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r5
+ bl sub_806E07C
+ ldrb r0, [r4, 0x5]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r5
+ bl sub_806E4E8
+ ldrb r0, [r4, 0x5]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r5
+ bl nullsub_12
+ ldrb r0, [r4, 0x6]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r5
+ bl sub_806E2C0
+ ldrb r0, [r4, 0x6]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r5
+ bl sub_806E07C
+ ldrb r0, [r4, 0x6]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r5
+ bl sub_806E4E8
+ ldrb r0, [r4, 0x6]
+ adds r1, r0, 0
+ muls r1, r6
+ adds r1, r5
+ bl nullsub_12
+ bl sub_806E6C8
+ mov r0, r10
+ bl sub_806CC74
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D364: .4byte 0x02001000
+_0806D368: .4byte 0x02020004
+_0806D36C: .4byte gUnknown_08376678
+_0806D370: .4byte sub_806DA38
+_0806D374: .4byte sub_806DA0C
+_0806D378: .4byte 0x03004360
+ thumb_func_end sub_806D198
+
+ thumb_func_start sub_806D37C
+sub_806D37C: @ 806D37C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_809D638
+ ldrh r2, [r4, 0x24]
+ movs r0, 0x24
+ ldrsh r1, [r4, r0]
+ movs r3, 0x32
+ ldrsh r0, [r4, r3]
+ cmp r1, r0
+ bne _0806D3A8
+ movs r1, 0x2E
+ ldrsh r0, [r4, r1]
+ negs r0, r0
+ movs r1, 0
+ strh r0, [r4, 0x2E]
+ strh r1, [r4, 0x32]
+ ldr r0, _0806D3A4
+ str r0, [r4, 0x1C]
+ b _0806D3AE
+ .align 2, 0
+_0806D3A4: .4byte sub_806DA38
+_0806D3A8:
+ ldrh r0, [r4, 0x2E]
+ adds r0, r2, r0
+ strh r0, [r4, 0x24]
+_0806D3AE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806D37C
+
+ thumb_func_start sub_806D3B4
+sub_806D3B4: @ 806D3B4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r2, 16
+ lsrs r2, 16
+ mov r8, r2
+ ldr r6, _0806D438
+ ldr r1, _0806D43C
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r5, r0, r1
+ ldrh r0, [r5, 0x8]
+ ldrb r1, [r6, 0x2]
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrb r1, [r6, 0x3]
+ bl sub_806BA34
+ ldrh r0, [r5, 0x8]
+ ldrb r1, [r6, 0x8]
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrb r1, [r6, 0x9]
+ bl sub_806BB3C
+ ldrh r0, [r5, 0x8]
+ ldrb r1, [r6, 0xA]
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrb r1, [r6, 0xB]
+ bl sub_806BB3C
+ ldrh r1, [r5, 0x8]
+ subs r1, 0x1
+ strh r1, [r5, 0x8]
+ ldrb r0, [r6, 0x2]
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrb r1, [r6, 0x3]
+ movs r2, 0x4
+ bl sub_806B9A4
+ cmp r4, 0
+ beq _0806D440
+ ldrh r0, [r5, 0x8]
+ ldrb r1, [r6, 0x8]
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrb r1, [r6, 0x9]
+ movs r2, 0
+ movs r3, 0x4
+ bl sub_806BA94
+ b _0806D454
+ .align 2, 0
+_0806D438: .4byte gUnknown_083769C0
+_0806D43C: .4byte 0x03004b20
+_0806D440:
+ ldrh r0, [r5, 0x8]
+ ldrb r1, [r6, 0x8]
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrb r1, [r6, 0x9]
+ movs r2, 0x1
+ movs r3, 0x4
+ bl sub_806BA94
+_0806D454:
+ mov r0, r8
+ cmp r0, 0
+ beq _0806D480
+ ldr r1, _0806D47C
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ ldrb r1, [r6, 0xA]
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrb r1, [r6, 0xB]
+ movs r2, 0
+ movs r3, 0x4
+ bl sub_806BA94
+ b _0806D49E
+ .align 2, 0
+_0806D47C: .4byte 0x03004b20
+_0806D480:
+ ldr r1, _0806D4A8
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrh r0, [r0, 0x8]
+ ldrb r1, [r6, 0xA]
+ adds r0, r1
+ lsls r0, 16
+ asrs r0, 16
+ ldrb r1, [r6, 0xB]
+ movs r2, 0x1
+ movs r3, 0x4
+ bl sub_806BA94
+_0806D49E:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D4A8: .4byte 0x03004b20
+ thumb_func_end sub_806D3B4
+
+ thumb_func_start sub_806D4AC
+sub_806D4AC: @ 806D4AC
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 16
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r1, 0
+ beq _0806D4F6
+ adds r1, r2, 0x3
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl sub_806DDA0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0806D4FC
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r4, r1, r2
+ ldr r0, _0806D500
+ strh r0, [r4, 0x2E]
+ ldr r3, _0806D504
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r3
+ movs r3, 0x8
+ ldrsh r0, [r0, r3]
+ lsls r0, 3
+ negs r0, r0
+ strh r0, [r4, 0x32]
+ adds r2, 0x1C
+ adds r1, r2
+ ldr r0, _0806D508
+ str r0, [r1]
+_0806D4F6:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D4FC: .4byte 0x02020004
+_0806D500: .4byte 0x0000fff8
+_0806D504: .4byte 0x03004b20
+_0806D508: .4byte sub_806D37C
+ thumb_func_end sub_806D4AC
+
+ thumb_func_start sub_806D50C
+sub_806D50C: @ 806D50C
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_806DDA0
+ ldr r2, _0806D534
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x20]
+ adds r0, 0xF0
+ strh r0, [r1, 0x20]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D534: .4byte 0x02020004
+ thumb_func_end sub_806D50C
+
+ thumb_func_start sub_806D538
+sub_806D538: @ 806D538
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r1, 0
+ cmp r4, 0xFF
+ beq _0806D59A
+ cmp r1, 0x1
+ beq _0806D568
+ cmp r1, 0x1
+ bgt _0806D556
+ cmp r1, 0
+ beq _0806D560
+ b _0806D58A
+_0806D556:
+ cmp r0, 0x2
+ beq _0806D570
+ cmp r0, 0x3
+ beq _0806D57E
+ b _0806D58A
+_0806D560:
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x17
+ b _0806D576
+_0806D568:
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x13
+ b _0806D576
+_0806D570:
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x16
+_0806D576:
+ movs r3, 0x13
+ bl DrawDefaultWindow
+ b _0806D58A
+_0806D57E:
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x12
+ movs r3, 0x13
+ bl DrawDefaultWindow
+_0806D58A:
+ ldr r0, _0806D5A0
+ lsls r1, r4, 2
+ adds r1, r0
+ ldr r0, [r1]
+ movs r1, 0x1
+ movs r2, 0x11
+ bl Print
+_0806D59A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D5A0: .4byte gUnknown_08376624
+ thumb_func_end sub_806D538
+
+ thumb_func_start sub_806D5A4
+sub_806D5A4: @ 806D5A4
+ push {lr}
+ movs r0, 0
+ movs r1, 0x10
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl Reset
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806D5A4
+
+ thumb_func_start sub_806D5B8
+sub_806D5B8: @ 806D5B8
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x8
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r6, _0806D658
+ bl battle_type_is_double
+ lsls r4, r5, 2
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4, r1
+ adds r1, r6
+ ldrb r1, [r1]
+ mov r10, r1
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4, r1
+ adds r1, r6
+ ldrb r1, [r1, 0x1]
+ mov r9, r1
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4, r1
+ adds r1, r6
+ ldrb r1, [r1, 0x2]
+ mov r8, r1
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1
+ adds r4, r6
+ ldrb r1, [r4, 0x3]
+ ldr r0, _0806D65C
+ str r1, [sp]
+ mov r1, r10
+ mov r2, r9
+ mov r3, r8
+ bl ZeroFillWindowRect
+ movs r0, 0
+ str r0, [sp, 0x4]
+ lsls r5, 10
+ ldr r0, _0806D660
+ adds r5, r0
+ ldr r2, _0806D664
+ add r0, sp, 0x4
+ adds r1, r5, 0
+ bl CpuFastSet
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D658: .4byte gUnknown_08376948
+_0806D65C: .4byte 0x03004210
+_0806D660: .4byte 0x06014000
+_0806D664: .4byte 0x01000100
+ thumb_func_end sub_806D5B8
+
+ thumb_func_start sub_806D668
+sub_806D668: @ 806D668
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x8
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r6, _0806D708
+ bl battle_type_is_double
+ lsls r4, r5, 2
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4, r1
+ adds r1, r6
+ ldrb r1, [r1]
+ mov r10, r1
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4, r1
+ adds r1, r6
+ ldrb r1, [r1, 0x1]
+ mov r9, r1
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r4, r1
+ adds r1, r6
+ ldrb r1, [r1, 0x2]
+ mov r8, r1
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r4, r1
+ adds r4, r6
+ ldrb r1, [r4, 0x3]
+ ldr r0, _0806D70C
+ str r1, [sp]
+ mov r1, r10
+ mov r2, r9
+ mov r3, r8
+ bl ZeroFillWindowRect
+ movs r0, 0
+ str r0, [sp, 0x4]
+ lsls r5, 10
+ ldr r0, _0806D710
+ adds r5, r0
+ ldr r2, _0806D714
+ add r0, sp, 0x4
+ adds r1, r5, 0
+ bl CpuFastSet
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D708: .4byte gUnknown_08376978
+_0806D70C: .4byte 0x03004210
+_0806D710: .4byte 0x06014300
+_0806D714: .4byte 0x01000040
+ thumb_func_end sub_806D668
+
+ thumb_func_start sub_806D718
+sub_806D718: @ 806D718
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r1, _0806D7C4
+ mov r0, sp
+ strh r1, [r0]
+ movs r5, 0
+ cmp r4, 0x1
+ bhi _0806D736
+ ldr r0, _0806D7C8
+ movs r1, 0xC0
+ lsls r1, 19
+ bl LZDecompressVram
+_0806D736:
+ cmp r4, 0x2
+ beq _0806D73E
+ cmp r4, 0
+ bne _0806D746
+_0806D73E:
+ ldr r0, _0806D7CC
+ ldr r1, _0806D7D0
+ bl LZDecompressVram
+_0806D746:
+ cmp r4, 0x3
+ beq _0806D74E
+ cmp r4, 0
+ bne _0806D75A
+_0806D74E:
+ ldr r0, _0806D7D4
+ movs r2, 0xB0
+ lsls r2, 1
+ movs r1, 0
+ bl LoadCompressedPalette
+_0806D75A:
+ cmp r4, 0x4
+ beq _0806D762
+ cmp r4, 0
+ bne _0806D776
+_0806D762:
+ mov r0, sp
+ movs r1, 0
+ movs r2, 0x2
+ bl LoadPalette
+ ldr r0, _0806D7D8
+ movs r1, 0xF0
+ movs r2, 0x20
+ bl LoadPalette
+_0806D776:
+ cmp r4, 0x5
+ beq _0806D77E
+ cmp r4, 0
+ bne _0806D786
+_0806D77E:
+ ldr r0, _0806D7DC
+ ldr r1, _0806D7E0
+ bl LZDecompressVram
+_0806D786:
+ cmp r4, 0x6
+ beq _0806D78E
+ cmp r4, 0
+ bne _0806D796
+_0806D78E:
+ ldr r0, _0806D7E4
+ ldr r1, _0806D7E8
+ bl LZDecompressVram
+_0806D796:
+ cmp r4, 0x7
+ beq _0806D79E
+ cmp r4, 0
+ bne _0806D7A6
+_0806D79E:
+ ldr r0, _0806D7EC
+ ldr r1, _0806D7F0
+ bl LZDecompressVram
+_0806D7A6:
+ cmp r4, 0x8
+ beq _0806D7AE
+ cmp r4, 0
+ bne _0806D7BA
+_0806D7AE:
+ ldr r0, _0806D7F4
+ movs r1, 0xB0
+ movs r2, 0x20
+ bl LoadCompressedPalette
+ movs r5, 0x1
+_0806D7BA:
+ adds r0, r5, 0
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806D7C4: .4byte 0x00007fff
+_0806D7C8: .4byte gPartyMenuMisc_Gfx
+_0806D7CC: .4byte gPartyMenuMisc_Tilemap
+_0806D7D0: .4byte 0x06003800
+_0806D7D4: .4byte gPartyMenuMisc_Pal
+_0806D7D8: .4byte gFontDefaultPalette
+_0806D7DC: .4byte gPartyMenuHpBar_Gfx
+_0806D7E0: .4byte 0x06006000
+_0806D7E4: .4byte gPartyMenuOrderText_Gfx
+_0806D7E8: .4byte 0x06006180
+_0806D7EC: .4byte gStatusGfx_Icons
+_0806D7F0: .4byte 0x06007180
+_0806D7F4: .4byte gStatusPal_Icons
+ thumb_func_end sub_806D718
+
+ thumb_func_start sub_806D7F8
+sub_806D7F8: @ 806D7F8
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 16
+ lsls r2, 16
+ lsrs r5, r1, 16
+ asrs r1, 16
+ lsrs r4, r2, 16
+ asrs r2, 16
+ adds r0, r1, 0
+ adds r1, r2, 0
+ bl sub_8046200
+ lsls r0, 24
+ lsrs r0, 24
+ movs r2, 0
+ cmp r5, r4
+ beq _0806D830
+ movs r2, 0x1
+ cmp r0, 0x3
+ beq _0806D830
+ movs r2, 0x2
+ cmp r0, 0x2
+ beq _0806D830
+ movs r2, 0x4
+ cmp r0, 0x1
+ bne _0806D830
+ movs r2, 0x3
+_0806D830:
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ ldr r1, _0806D848
+ adds r0, r1
+ adds r1, r2, 0
+ bl sub_809D824
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D848: .4byte 0x02020004
+ thumb_func_end sub_806D7F8
+
+ thumb_func_start sub_806D84C
+sub_806D84C: @ 806D84C
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ movs r1, 0x39
+ bl PokemonGetField
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r6, 0
+ movs r1, 0x3A
+ bl PokemonGetField
+ adds r2, r0, 0
+ lsls r2, 16
+ lsrs r2, 16
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_806D7F8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806D84C
+
+ thumb_func_start sub_806D880
+sub_806D880: @ 806D880
+ push {r4-r6,lr}
+ mov r6, r10
+ mov r5, r9
+ mov r4, r8
+ push {r4-r6}
+ sub sp, 0x8
+ adds r6, r0, 0
+ adds r5, r1, 0
+ mov r8, r3
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _0806D904
+ lsls r1, r5, 2
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r3
+ ldrb r0, [r1]
+ mov r9, r0
+ ldrb r1, [r1, 0x1]
+ mov r10, r1
+ mov r0, r8
+ movs r1, 0x41
+ bl PokemonGetField
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0
+ bl PokemonGetField
+ ldr r1, _0806D908
+ movs r2, 0x5
+ str r2, [sp]
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ mov r2, r9
+ mov r3, r10
+ bl sub_809D2FC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_806DE50
+ adds r0, r4, 0
+ mov r1, r8
+ bl sub_806D84C
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D904: .4byte gUnknown_08376678
+_0806D908: .4byte sub_809D62C
+ thumb_func_end sub_806D880
+
+ thumb_func_start sub_806D90C
+sub_806D90C: @ 806D90C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r4, r2, 0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ mov r8, r6
+ lsls r1, 24
+ lsrs r5, r1, 24
+ adds r7, r5, 0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl PokemonGetField
+ cmp r0, 0
+ beq _0806D95A
+ bl sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806D946
+ adds r0, r6, 0
+ adds r1, r5, 0
+ movs r2, 0x2
+ adds r3, r4, 0
+ bl sub_806D880
+ b _0806D95A
+_0806D946:
+ bl battle_type_is_double
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ mov r0, r8
+ adds r1, r7, 0
+ adds r3, r4, 0
+ bl sub_806D880
+_0806D95A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806D90C
+
+ thumb_func_start unref_sub_806D964
+unref_sub_806D964: @ 806D964
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r4, 0
+ b _0806D986
+_0806D96E:
+ movs r0, 0x64
+ adds r2, r4, 0
+ muls r2, r0
+ ldr r0, _0806D994
+ adds r2, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_806D90C
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+_0806D986:
+ ldr r0, _0806D998
+ ldrb r0, [r0]
+ cmp r4, r0
+ bcc _0806D96E
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806D994: .4byte 0x03004360
+_0806D998: .4byte 0x03004350
+ thumb_func_end unref_sub_806D964
+
+ thumb_func_start sub_806D99C
+sub_806D99C: @ 806D99C
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ adds r6, r0, 0
+ adds r5, r1, 0
+ mov r8, r3
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _0806DA04
+ lsls r1, r5, 2
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r3
+ ldrb r2, [r1]
+ ldrb r3, [r1, 0x1]
+ mov r1, r8
+ ldrh r0, [r1]
+ ldr r1, _0806DA08
+ movs r4, 0x5
+ str r4, [sp]
+ mov r7, r8
+ ldr r4, [r7, 0x18]
+ str r4, [sp, 0x4]
+ bl sub_809D2FC
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_806DE50
+ ldrh r1, [r7, 0x10]
+ ldrh r2, [r7, 0x12]
+ adds r0, r4, 0
+ bl sub_806D7F8
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DA04: .4byte gUnknown_08376678
+_0806DA08: .4byte sub_809D62C
+ thumb_func_end sub_806D99C
+
+ thumb_func_start sub_806DA0C
+sub_806DA0C: @ 806DA0C
+ push {r4,lr}
+ adds r4, r0, 0
+ bl sub_809D638
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _0806DA32
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0806DA30
+ ldr r0, _0806DA2C
+ strh r0, [r4, 0x26]
+ b _0806DA32
+ .align 2, 0
+_0806DA2C: .4byte 0x0000fffd
+_0806DA30:
+ strh r1, [r4, 0x26]
+_0806DA32:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806DA0C
+
+ thumb_func_start sub_806DA38
+sub_806DA38: @ 806DA38
+ push {lr}
+ bl sub_809D638
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806DA38
+
+ thumb_func_start sub_806DA44
+sub_806DA44: @ 806DA44
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ cmp r1, 0x5
+ bhi _0806DA8E
+ bl sub_806DDA0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0806DA7C
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r2, r1, 2
+ adds r1, r2, r3
+ movs r0, 0
+ strh r0, [r1, 0x26]
+ strh r0, [r1, 0x2E]
+ cmp r4, 0
+ bne _0806DA84
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r0, r2, r0
+ ldr r1, _0806DA80
+ b _0806DA8C
+ .align 2, 0
+_0806DA7C: .4byte 0x02020004
+_0806DA80: .4byte sub_806DA38
+_0806DA84:
+ adds r0, r3, 0
+ adds r0, 0x1C
+ adds r0, r2, r0
+ ldr r1, _0806DA94
+_0806DA8C:
+ str r1, [r0]
+_0806DA8E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DA94: .4byte sub_806DA0C
+ thumb_func_end sub_806DA44
+
+ thumb_func_start sub_806DA98
+sub_806DA98: @ 806DA98
+ push {lr}
+ ldr r0, _0806DAAC
+ bl LoadSpriteSheet
+ ldr r0, _0806DAB0
+ bl LoadSpritePalette
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DAAC: .4byte gUnknown_083765DC
+_0806DAB0: .4byte gUnknown_083765E4
+ thumb_func_end sub_806DA98
+
+ thumb_func_start sub_806DAB4
+sub_806DAB4: @ 806DAB4
+ push {r4,lr}
+ adds r4, r0, 0
+ ldrh r1, [r4, 0x3C]
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r2, _0806DAE4
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r2, r0, r2
+ adds r0, r2, 0
+ adds r0, 0x3E
+ ldrb r0, [r0]
+ lsls r0, 29
+ cmp r0, 0
+ bge _0806DAE8
+ adds r0, r4, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _0806DB06
+ .align 2, 0
+_0806DAE4: .4byte 0x02020004
+_0806DAE8:
+ adds r3, r4, 0
+ adds r3, 0x3E
+ ldrb r1, [r3]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r3]
+ ldrh r0, [r2, 0x24]
+ ldrh r1, [r2, 0x20]
+ adds r0, r1
+ strh r0, [r4, 0x20]
+ ldrh r0, [r2, 0x26]
+ ldrh r2, [r2, 0x22]
+ adds r0, r2
+ strh r0, [r4, 0x22]
+_0806DB06:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806DAB4
+
+ thumb_func_start sub_806DB0C
+sub_806DB0C: @ 806DB0C
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ adds r6, r0, 0
+ mov r9, r1
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r9
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r0, _0806DB84
+ mov r8, r0
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ add r0, r8
+ adds r0, 0x43
+ ldrb r3, [r0]
+ ldr r0, _0806DB88
+ subs r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ movs r1, 0xFA
+ movs r2, 0xAA
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ mov r0, r8
+ adds r5, r4, r0
+ movs r0, 0x4
+ strh r0, [r5, 0x24]
+ movs r0, 0xA
+ strh r0, [r5, 0x26]
+ movs r0, 0x1C
+ add r8, r0
+ add r4, r8
+ ldr r0, _0806DB8C
+ str r0, [r4]
+ strh r6, [r5, 0x3C]
+ adds r0, r5, 0
+ mov r1, r9
+ bl StartSpriteAnim
+ ldr r1, [r4]
+ adds r0, r5, 0
+ bl _call_via_r1
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DB84: .4byte 0x02020004
+_0806DB88: .4byte gSpriteTemplate_837660C
+_0806DB8C: .4byte sub_806DAB4
+ thumb_func_end sub_806DB0C
+
+ thumb_func_start sub_806DB90
+sub_806DB90: @ 806DB90
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ adds r7, r1, 0
+ lsls r2, 24
+ lsrs r2, 24
+ cmp r2, 0
+ beq _0806DBA4
+ cmp r2, 0x1
+ beq _0806DBEC
+ b _0806DC28
+_0806DBA4:
+ movs r5, 0
+ ldrb r0, [r6]
+ cmp r5, r0
+ bcs _0806DC28
+_0806DBAC:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0806DBE8
+ adds r0, r1
+ movs r1, 0xC
+ bl PokemonGetField
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _0806DBD8
+ adds r0, r7, r5
+ ldrb r4, [r0]
+ adds r0, r1, 0
+ bl itemid_is_mail
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_806DB0C
+_0806DBD8:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrb r0, [r6]
+ cmp r5, r0
+ bcc _0806DBAC
+ b _0806DC28
+ .align 2, 0
+_0806DBE8: .4byte 0x03004360
+_0806DBEC:
+ movs r5, 0
+ b _0806DC22
+_0806DBF0:
+ movs r0, 0x64
+ muls r0, r5
+ ldr r1, _0806DC30
+ adds r0, r1
+ movs r1, 0xC
+ bl PokemonGetField
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _0806DC1C
+ adds r0, r5, r7
+ ldrb r4, [r0, 0x6]
+ adds r0, r1, 0
+ bl itemid_is_mail
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r4, 0
+ bl sub_806DB0C
+_0806DC1C:
+ adds r0, r5, 0x1
+ lsls r0, 16
+ lsrs r5, r0, 16
+_0806DC22:
+ ldrb r0, [r6, 0x1]
+ cmp r5, r0
+ bcc _0806DBF0
+_0806DC28:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DC30: .4byte 0x030045c0
+ thumb_func_end sub_806DB90
+
+ thumb_func_start sub_806DC34
+sub_806DC34: @ 806DC34
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ movs r7, 0
+ ldr r0, _0806DCC8
+ mov r9, r0
+ movs r1, 0x1C
+ add r1, r9
+ mov r10, r1
+_0806DC50:
+ movs r0, 0x64
+ muls r0, r7
+ ldr r1, _0806DCCC
+ adds r0, r1
+ movs r1, 0xB
+ bl PokemonGetField
+ cmp r0, 0
+ beq _0806DCB0
+ mov r0, r8
+ adds r1, r7, 0
+ bl sub_806DDA0
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r0, _0806DCD0
+ movs r1, 0xFA
+ movs r2, 0xAA
+ movs r3, 0x4
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 4
+ adds r4, r0
+ lsls r4, 2
+ mov r1, r9
+ adds r6, r4, r1
+ movs r1, 0x4
+ strh r1, [r6, 0x24]
+ movs r1, 0xA
+ strh r1, [r6, 0x26]
+ strh r5, [r6, 0x3C]
+ lsls r1, r5, 4
+ adds r1, r5
+ lsls r1, 2
+ add r1, r9
+ strh r0, [r1, 0x3C]
+ mov r0, r8
+ adds r1, r7, 0
+ bl sub_806DF60
+ add r4, r10
+ ldr r1, [r4]
+ adds r0, r6, 0
+ bl _call_via_r1
+_0806DCB0:
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x5
+ bls _0806DC50
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DCC8: .4byte 0x02020004
+_0806DCCC: .4byte 0x03004360
+_0806DCD0: .4byte gSpriteTemplate_837660C
+ thumb_func_end sub_806DC34
+
+ thumb_func_start sub_806DCD4
+sub_806DCD4: @ 806DCD4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 16
+ lsrs r7, r2, 16
+ bl sub_806DDA0
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r0, _0806DD2C
+ movs r1, 0xFA
+ movs r2, 0xAA
+ movs r3, 0x4
+ bl CreateSprite
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r1, _0806DD30
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r5, r0, r1
+ movs r0, 0x4
+ strh r0, [r5, 0x24]
+ movs r0, 0xA
+ strh r0, [r5, 0x26]
+ strh r4, [r5, 0x3C]
+ lsls r0, r4, 4
+ adds r0, r4
+ lsls r0, 2
+ adds r0, r1
+ strh r6, [r0, 0x3C]
+ cmp r7, 0
+ bne _0806DD34
+ adds r0, r5, 0
+ adds r0, 0x3E
+ ldrb r1, [r0]
+ movs r2, 0x4
+ orrs r1, r2
+ strb r1, [r0]
+ b _0806DD5C
+ .align 2, 0
+_0806DD2C: .4byte gSpriteTemplate_837660C
+_0806DD30: .4byte 0x02020004
+_0806DD34:
+ adds r0, r7, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806DD46
+ adds r0, r5, 0
+ movs r1, 0x1
+ b _0806DD4A
+_0806DD46:
+ adds r0, r5, 0
+ movs r1, 0
+_0806DD4A:
+ bl StartSpriteAnim
+ adds r2, r5, 0
+ adds r2, 0x3E
+ ldrb r1, [r2]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r2]
+_0806DD5C:
+ ldr r2, _0806DD78
+ lsls r0, r6, 4
+ adds r0, r6
+ lsls r0, 2
+ adds r1, r2, 0
+ adds r1, 0x1C
+ adds r1, r0, r1
+ adds r0, r2
+ ldr r1, [r1]
+ bl _call_via_r1
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DD78: .4byte 0x02020004
+ thumb_func_end sub_806DCD4
+
+ thumb_func_start sub_806DD7C
+sub_806DD7C: @ 806DD7C
+ ldrh r2, [r0, 0x3C]
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _0806DD9C
+ lsls r1, r2, 4
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r3
+ ldrh r2, [r1, 0x24]
+ ldrh r3, [r1, 0x20]
+ adds r2, r3
+ strh r2, [r0, 0x20]
+ ldrh r1, [r1, 0x22]
+ strh r1, [r0, 0x22]
+ bx lr
+ .align 2, 0
+_0806DD9C: .4byte 0x02020004
+ thumb_func_end sub_806DD7C
+
+ thumb_func_start sub_806DDA0
+sub_806DDA0: @ 806DDA0
+ push {lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ lsls r1, 24
+ lsrs r0, r1, 24
+ cmp r0, 0x5
+ bhi _0806DE38
+ lsls r0, 2
+ ldr r1, _0806DDB8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806DDB8: .4byte _0806DDBC
+ .align 2, 0
+_0806DDBC:
+ .4byte _0806DE38
+ .4byte _0806DDD4
+ .4byte _0806DDE8
+ .4byte _0806DDFC
+ .4byte _0806DE10
+ .4byte _0806DE24
+_0806DDD4:
+ ldr r0, _0806DDE4
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0x8]
+ b _0806DE46
+ .align 2, 0
+_0806DDE4: .4byte 0x03004b20
+_0806DDE8:
+ ldr r0, _0806DDF8
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xA]
+ b _0806DE44
+ .align 2, 0
+_0806DDF8: .4byte 0x03004b20
+_0806DDFC:
+ ldr r0, _0806DE0C
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0xA]
+ b _0806DE46
+ .align 2, 0
+_0806DE0C: .4byte 0x03004b20
+_0806DE10:
+ ldr r0, _0806DE20
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0xC]
+ b _0806DE44
+ .align 2, 0
+_0806DE20: .4byte 0x03004b20
+_0806DE24:
+ ldr r0, _0806DE34
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrb r0, [r1, 0xC]
+ b _0806DE46
+ .align 2, 0
+_0806DE34: .4byte 0x03004b20
+_0806DE38:
+ ldr r0, _0806DE4C
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r0
+ ldrh r0, [r1, 0x8]
+_0806DE44:
+ lsrs r0, 8
+_0806DE46:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806DE4C: .4byte 0x03004b20
+ thumb_func_end sub_806DDA0
+
+ thumb_func_start sub_806DE50
+sub_806DE50: @ 806DE50
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 24
+ lsrs r0, r1, 24
+ lsls r2, 24
+ lsrs r4, r2, 24
+ cmp r0, 0x5
+ bhi _0806DF24
+ lsls r0, 2
+ ldr r1, _0806DE6C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806DE6C: .4byte _0806DE70
+ .align 2, 0
+_0806DE70:
+ .4byte _0806DE88
+ .4byte _0806DEA0
+ .4byte _0806DEC0
+ .4byte _0806DED8
+ .4byte _0806DEF8
+ .4byte _0806DF10
+_0806DE88:
+ ldr r1, _0806DE9C
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0x8]
+ lsls r2, r4, 8
+ orrs r1, r2
+ strh r1, [r0, 0x8]
+ b _0806DF24
+ .align 2, 0
+_0806DE9C: .4byte 0x03004b20
+_0806DEA0:
+ ldr r0, _0806DEB8
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0x8]
+ ldr r0, _0806DEBC
+ ands r0, r2
+ orrs r0, r4
+ strh r0, [r1, 0x8]
+ b _0806DF24
+ .align 2, 0
+_0806DEB8: .4byte 0x03004b20
+_0806DEBC: .4byte 0xffffff00
+_0806DEC0:
+ ldr r1, _0806DED4
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0xA]
+ lsls r2, r4, 8
+ orrs r1, r2
+ strh r1, [r0, 0xA]
+ b _0806DF24
+ .align 2, 0
+_0806DED4: .4byte 0x03004b20
+_0806DED8:
+ ldr r0, _0806DEF0
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xA]
+ ldr r0, _0806DEF4
+ ands r0, r2
+ orrs r0, r4
+ strh r0, [r1, 0xA]
+ b _0806DF24
+ .align 2, 0
+_0806DEF0: .4byte 0x03004b20
+_0806DEF4: .4byte 0xffffff00
+_0806DEF8:
+ ldr r1, _0806DF0C
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldrb r1, [r0, 0xC]
+ lsls r2, r4, 8
+ orrs r1, r2
+ strh r1, [r0, 0xC]
+ b _0806DF24
+ .align 2, 0
+_0806DF0C: .4byte 0x03004b20
+_0806DF10:
+ ldr r0, _0806DF2C
+ lsls r1, r3, 2
+ adds r1, r3
+ lsls r1, 3
+ adds r1, r0
+ ldrh r2, [r1, 0xC]
+ ldr r0, _0806DF30
+ ands r0, r2
+ orrs r0, r4
+ strh r0, [r1, 0xC]
+_0806DF24:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DF2C: .4byte 0x03004b20
+_0806DF30: .4byte 0xffffff00
+ thumb_func_end sub_806DE50
+
+ thumb_func_start sub_806DF34
+sub_806DF34: @ 806DF34
+ push {lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_806DDA0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0806DF5C
+ lsls r1, r0, 4
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r2
+ ldrh r0, [r1, 0x3C]
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806DF5C: .4byte 0x02020004
+ thumb_func_end sub_806DF34
+
+ thumb_func_start sub_806DF60
+sub_806DF60: @ 806DF60
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 24
+ lsrs r4, 24
+ adds r1, r4, 0
+ bl sub_806DF34
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ movs r0, 0x64
+ adds r1, r4, 0
+ muls r1, r0
+ ldr r0, _0806DFA4
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl PokemonGetField
+ cmp r0, 0
+ bne _0806DFAC
+ ldr r1, _0806DFA8
+ 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]
+ b _0806DFF6
+ .align 2, 0
+_0806DFA4: .4byte 0x03004360
+_0806DFA8: .4byte 0x02020004
+_0806DFAC:
+ adds r0, r4, 0
+ movs r1, 0xC
+ bl PokemonGetField
+ lsls r0, 16
+ lsrs r0, 16
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806DFD8
+ lsls r4, r5, 4
+ adds r4, r5
+ lsls r4, 2
+ ldr r0, _0806DFD4
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0x1
+ b _0806DFE6
+ .align 2, 0
+_0806DFD4: .4byte 0x02020004
+_0806DFD8:
+ lsls r4, r6, 4
+ adds r4, r6
+ lsls r4, 2
+ ldr r0, _0806DFFC
+ adds r4, r0
+ adds r0, r4, 0
+ movs r1, 0
+_0806DFE6:
+ bl StartSpriteAnim
+ adds r4, 0x3E
+ ldrb r1, [r4]
+ movs r0, 0x5
+ negs r0, r0
+ ands r0, r1
+ strb r0, [r4]
+_0806DFF6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806DFFC: .4byte 0x02020004
+ thumb_func_end sub_806DF60
+
+ thumb_func_start box_print
+box_print: @ 806E000
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r6, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r0, 0
+ str r0, [sp]
+ ldr r5, _0806E040
+ ldr r2, _0806E044
+ mov r0, sp
+ adds r1, r5, 0
+ bl CpuFastSet
+ ldr r0, _0806E048
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_8004E3C
+ lsls r4, 10
+ ldr r0, _0806E04C
+ adds r4, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x80
+ bl CpuFastSet
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E040: .4byte 0x02039360
+_0806E044: .4byte 0x01000100
+_0806E048: .4byte gWindowConfig_81E6CAC
+_0806E04C: .4byte 0x06014000
+ thumb_func_end box_print
+
+ thumb_func_start sub_806E050
+sub_806E050: @ 806E050
+ push {r4,r5,lr}
+ sub sp, 0xC
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r0, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ mov r1, sp
+ bl GetMonNickname
+ adds r0, r4, 0
+ adds r1, r5, 0
+ mov r2, sp
+ bl box_print
+ add sp, 0xC
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E050
+
+ thumb_func_start sub_806E07C
+sub_806E07C: @ 806E07C
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl PokemonGetField
+ cmp r0, 0
+ beq _0806E0BC
+ bl sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E0AA
+ adds r0, r5, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl sub_806E050
+ b _0806E0BC
+_0806E0AA:
+ bl battle_type_is_double
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ adds r2, r4, 0
+ bl sub_806E050
+_0806E0BC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E07C
+
+ thumb_func_start sub_806E0C4
+sub_806E0C4: @ 806E0C4
+ push {r4-r6,lr}
+ movs r4, 0
+ movs r6, 0x64
+ ldr r5, _0806E0E8
+_0806E0CC:
+ adds r1, r4, 0
+ muls r1, r6
+ adds r1, r5
+ adds r0, r4, 0
+ bl sub_806E07C
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0806E0CC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E0E8: .4byte 0x03004360
+ thumb_func_end sub_806E0C4
+
+ thumb_func_start GetMonNickname
+GetMonNickname: @ 806E0EC
+ push {r4,lr}
+ adds r4, r1, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl PokemonGetField
+ adds r0, r4, 0
+ bl StringGetEnd10
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end GetMonNickname
+
+ thumb_func_start sub_806E104
+sub_806E104: @ 806E104
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r4, _0806E15C
+ lsrs r0, 22
+ lsls r3, r1, 1
+ adds r3, r1
+ lsls r3, 3
+ adds r0, r3
+ adds r0, r4
+ ldrb r1, [r0]
+ subs r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r0, 0x1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 19
+ adds r1, r0
+ lsls r1, 1
+ ldr r0, _0806E160
+ adds r4, r1, r0
+ lsls r2, 26
+ lsrs r2, 24
+ movs r3, 0
+ movs r0, 0xC6
+ lsls r0, 1
+ adds r2, r0
+ ldr r0, _0806E164
+ adds r5, r0, 0
+_0806E142:
+ lsls r0, r3, 1
+ adds r0, r4
+ adds r1, r2, r3
+ orrs r1, r5
+ strh r1, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _0806E142
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E15C: .4byte gUnknown_08376738
+_0806E160: .4byte 0x0600f000
+_0806E164: .4byte 0xffffb000
+ thumb_func_end sub_806E104
+
+ thumb_func_start sub_806E168
+sub_806E168: @ 806E168
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E17E
+ movs r3, 0x2
+ b _0806E186
+_0806E17E:
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r3, r0, 24
+_0806E186:
+ ldr r1, _0806E1C8
+ lsls r2, r4, 2
+ lsls r0, r3, 1
+ adds r0, r3
+ lsls r0, 3
+ adds r2, r0
+ adds r2, r1
+ ldrb r1, [r2]
+ subs r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ ldrb r0, [r2, 0x1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 19
+ adds r1, r0
+ lsls r1, 1
+ ldr r0, _0806E1CC
+ adds r1, r0
+ movs r3, 0
+ movs r2, 0
+_0806E1B0:
+ lsls r0, r3, 1
+ adds r0, r1
+ strh r2, [r0]
+ adds r0, r3, 0x1
+ lsls r0, 24
+ lsrs r3, r0, 24
+ cmp r3, 0x3
+ bls _0806E1B0
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E1C8: .4byte gUnknown_08376738
+_0806E1CC: .4byte 0x0600f000
+ thumb_func_end sub_806E168
+
+ thumb_func_start sub_806E1D0
+sub_806E1D0: @ 806E1D0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 19
+ adds r1, r2
+ lsls r1, 1
+ ldr r2, _0806E1F0
+ adds r1, r2
+ movs r2, 0x86
+ lsls r2, 1
+ adds r0, r2
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_0806E1F0: .4byte 0x0600f000
+ thumb_func_end sub_806E1D0
+
+ thumb_func_start sub_806E1F4
+sub_806E1F4: @ 806E1F4
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r5, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldr r3, _0806E278
+ lsls r2, r4, 2
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r2, r0
+ adds r2, r3
+ ldrb r1, [r2]
+ ldrb r2, [r2, 0x1]
+ subs r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ movs r0, 0x40
+ bl sub_806E1D0
+ ldr r6, _0806E27C
+ movs r0, 0xFC
+ strb r0, [r6]
+ movs r0, 0x12
+ strb r0, [r6, 0x1]
+ movs r0, 0x8
+ strb r0, [r6, 0x2]
+ adds r0, r6, 0x3
+ adds r1, r5, 0
+ bl ConvertIntToDecimalString
+ movs r0, 0
+ str r0, [sp]
+ ldr r5, _0806E280
+ ldr r2, _0806E284
+ mov r0, sp
+ adds r1, r5, 0
+ bl CpuFastSet
+ ldr r0, _0806E288
+ ldr r2, _0806E28C
+ adds r1, r5, r2
+ adds r2, r6, 0
+ bl sub_8004E3C
+ lsls r4, 10
+ ldr r0, _0806E290
+ adds r4, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x20
+ bl CpuFastSet
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E278: .4byte gUnknown_08376738
+_0806E27C: .4byte 0x020231cc
+_0806E280: .4byte 0x02039460
+_0806E284: .4byte 0x01000020
+_0806E288: .4byte gWindowConfig_81E6CAC
+_0806E28C: .4byte 0xffffff00
+_0806E290: .4byte 0x06014200
+ thumb_func_end sub_806E1F4
+
+ thumb_func_start sub_806E294
+sub_806E294: @ 806E294
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r0, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0x38
+ bl PokemonGetField
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_806E1F4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E294
+
+ thumb_func_start sub_806E2C0
+sub_806E2C0: @ 806E2C0
+ push {r4-r7,lr}
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r5, 0
+ movs r1, 0xB
+ bl PokemonGetField
+ cmp r0, 0
+ beq _0806E32E
+ adds r0, r5, 0
+ movs r1, 0x2D
+ bl PokemonGetField
+ cmp r0, 0
+ bne _0806E32E
+ adds r0, r5, 0
+ bl sub_80A1CD8
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E2FA
+ movs r6, 0x2
+ b _0806E302
+_0806E2FA:
+ bl battle_type_is_double
+ lsls r0, 24
+ lsrs r6, r0, 24
+_0806E302:
+ cmp r4, 0
+ beq _0806E31A
+ cmp r4, 0x6
+ beq _0806E31A
+ subs r2, r4, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_806E104
+ b _0806E324
+_0806E31A:
+ adds r0, r7, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_806E294
+_0806E324:
+ adds r0, r7, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_806E3C0
+_0806E32E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E2C0
+
+ thumb_func_start sub_806E334
+sub_806E334: @ 806E334
+ push {r4-r6,lr}
+ movs r4, 0
+ movs r6, 0x64
+ ldr r5, _0806E358
+_0806E33C:
+ adds r1, r4, 0
+ muls r1, r6
+ adds r1, r5
+ adds r0, r4, 0
+ bl sub_806E2C0
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0806E33C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E358: .4byte 0x03004360
+ thumb_func_end sub_806E334
+
+ thumb_func_start sub_806E35C
+sub_806E35C: @ 806E35C
+ push {r4-r7,lr}
+ ldr r4, [sp, 0x14]
+ lsls r0, 16
+ lsrs r0, 16
+ lsls r1, 24
+ lsrs r7, r1, 24
+ lsls r2, 24
+ lsrs r5, r2, 24
+ lsls r3, 24
+ lsrs r6, r3, 24
+ adds r1, r4, 0
+ bl sub_8040D8C
+ cmp r0, 0
+ bne _0806E3BA
+ ldr r2, _0806E3A4
+ lsls r1, r6, 2
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r2
+ ldrb r0, [r1]
+ adds r0, 0x3
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldrb r0, [r1, 0x1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r7, 0
+ beq _0806E3A8
+ cmp r7, 0xFE
+ beq _0806E3B2
+ b _0806E3BA
+ .align 2, 0
+_0806E3A4: .4byte gUnknown_08376738
+_0806E3A8:
+ movs r0, 0x42
+ adds r1, r3, 0
+ bl sub_806E1D0
+ b _0806E3BA
+_0806E3B2:
+ movs r0, 0x44
+ adds r1, r3, 0
+ bl sub_806E1D0
+_0806E3BA:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E35C
+
+ thumb_func_start sub_806E3C0
+sub_806E3C0: @ 806E3C0
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x4
+ mov r8, r0
+ adds r6, r1, 0
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r6, 24
+ lsrs r6, 24
+ ldr r0, _0806E41C
+ mov r9, r0
+ adds r0, r5, 0
+ mov r1, r9
+ bl GetMonNickname
+ adds r0, r5, 0
+ movs r1, 0x41
+ bl PokemonGetField
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r5, 0
+ bl pokemon_get_gender
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r9
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r2, r6, 0
+ mov r3, r8
+ bl sub_806E35C
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E41C: .4byte 0x020231cc
+ thumb_func_end sub_806E3C0
+
+ thumb_func_start sub_806E420
+sub_806E420: @ 806E420
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r1, r2, 0
+ adds r5, r3, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 16
+ lsrs r1, 16
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r2, _0806E48C
+ adds r0, r2, 0
+ movs r2, 0xF
+ movs r3, 0x1
+ bl sub_8072C14
+ adds r2, r0, 0
+ movs r0, 0xBA
+ strb r0, [r2]
+ adds r2, 0x1
+ adds r0, r2, 0
+ adds r1, r5, 0
+ movs r2, 0x23
+ movs r3, 0x1
+ bl sub_8072C14
+ movs r0, 0
+ str r0, [sp]
+ ldr r5, _0806E490
+ ldr r2, _0806E494
+ mov r0, sp
+ adds r1, r5, 0
+ bl CpuFastSet
+ ldr r0, _0806E498
+ ldr r2, _0806E49C
+ adds r1, r5, r2
+ ldr r2, _0806E48C
+ bl sub_8004E3C
+ lsls r4, 10
+ ldr r0, _0806E4A0
+ adds r4, r0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x40
+ bl CpuFastSet
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E48C: .4byte 0x020231cc
+_0806E490: .4byte 0x02039460
+_0806E494: .4byte 0x01000040
+_0806E498: .4byte gWindowConfig_81E6CAC
+_0806E49C: .4byte 0xffffff00
+_0806E4A0: .4byte 0x06014300
+ thumb_func_end sub_806E420
+
+ thumb_func_start sub_806E4A4
+sub_806E4A4: @ 806E4A4
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r8
+ movs r1, 0x39
+ bl PokemonGetField
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x3A
+ bl PokemonGetField
+ adds r3, r0, 0
+ lsls r3, 16
+ lsrs r3, 16
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_806E420
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E4A4
+
+ thumb_func_start sub_806E4E8
+sub_806E4E8: @ 806E4E8
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl PokemonGetField
+ cmp r0, 0
+ beq _0806E534
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl PokemonGetField
+ cmp r0, 0
+ bne _0806E534
+ bl sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E522
+ adds r0, r5, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl sub_806E4A4
+ b _0806E534
+_0806E522:
+ bl battle_type_is_double
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ adds r2, r4, 0
+ bl sub_806E4A4
+_0806E534:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E4E8
+
+ thumb_func_start sub_806E53C
+sub_806E53C: @ 806E53C
+ push {r4-r6,lr}
+ movs r4, 0
+ movs r6, 0x64
+ ldr r5, _0806E560
+_0806E544:
+ adds r1, r4, 0
+ muls r1, r6
+ adds r1, r5
+ adds r0, r4, 0
+ bl sub_806E4E8
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0806E544
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E560: .4byte 0x03004360
+ thumb_func_end sub_806E53C
+
+ thumb_func_start unref_sub_806E564
+unref_sub_806E564: @ 806E564
+ bx lr
+ thumb_func_end unref_sub_806E564
+
+ thumb_func_start unref_sub_806E568
+unref_sub_806E568: @ 806E568
+ bx lr
+ thumb_func_end unref_sub_806E568
+
+ thumb_func_start nullsub_12
+nullsub_12: @ 806E56C
+ bx lr
+ thumb_func_end nullsub_12
+
+ thumb_func_start nullsub_13
+nullsub_13: @ 806E570
+ bx lr
+ thumb_func_end nullsub_13
+
+ thumb_func_start sub_806E574
+sub_806E574: @ 806E574
+ push {r4-r6,lr}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ lsls r2, 16
+ lsrs r2, 16
+ lsls r3, 16
+ lsrs r3, 16
+ ldr r0, _0806E624
+ str r0, [sp, 0x14]
+ str r3, [sp]
+ str r2, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ lsls r2, 16
+ asrs r2, 16
+ lsls r3, 16
+ asrs r3, 16
+ adds r0, r2, 0
+ adds r1, r3, 0
+ bl sub_8046200
+ lsls r0, 24
+ lsrs r3, r0, 24
+ adds r4, r3, 0
+ cmp r3, 0x2
+ bls _0806E5BE
+ mov r2, sp
+ ldrb r1, [r2, 0xC]
+ movs r0, 0x20
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x4
+ orrs r0, r1
+ strb r0, [r2, 0xC]
+_0806E5BE:
+ cmp r3, 0x2
+ bne _0806E5D2
+ mov r2, sp
+ ldrb r1, [r2, 0xC]
+ movs r0, 0x20
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x5
+ orrs r0, r1
+ strb r0, [r2, 0xC]
+_0806E5D2:
+ cmp r4, 0x1
+ bhi _0806E5E6
+ mov r2, sp
+ ldrb r1, [r2, 0xC]
+ movs r0, 0x20
+ negs r0, r0
+ ands r0, r1
+ movs r1, 0x6
+ orrs r0, r1
+ strb r0, [r2, 0xC]
+_0806E5E6:
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [sp, 0x10]
+ ldr r2, _0806E628
+ lsls r1, r6, 2
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 3
+ adds r1, r0
+ adds r1, r2
+ ldr r4, [r1]
+ add r1, sp, 0x14
+ mov r0, sp
+ adds r2, r4, 0
+ movs r3, 0
+ bl sub_80460C8
+ subs r4, 0x4
+ ldr r1, _0806E62C
+ adds r0, r1, 0
+ strh r0, [r4]
+ adds r1, 0x1
+ adds r0, r1, 0
+ strh r0, [r4, 0x2]
+ adds r1, 0x1
+ adds r0, r1, 0
+ strh r0, [r4, 0x10]
+ add sp, 0x18
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E624: .4byte 0xffff8000
+_0806E628: .4byte gUnknown_08376858
+_0806E62C: .4byte 0x00003109
+ thumb_func_end sub_806E574
+
+ thumb_func_start sub_806E630
+sub_806E630: @ 806E630
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ mov r8, r2
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ mov r0, r8
+ movs r1, 0x39
+ bl PokemonGetField
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ mov r0, r8
+ movs r1, 0x3A
+ bl PokemonGetField
+ adds r3, r0, 0
+ lsls r3, 16
+ lsrs r3, 16
+ adds r0, r5, 0
+ adds r1, r6, 0
+ adds r2, r4, 0
+ bl sub_806E574
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E630
+
+ thumb_func_start sub_806E674
+sub_806E674: @ 806E674
+ push {r4-r6,lr}
+ adds r4, r1, 0
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl PokemonGetField
+ cmp r0, 0
+ beq _0806E6C0
+ adds r0, r4, 0
+ movs r1, 0x2D
+ bl PokemonGetField
+ cmp r0, 0
+ bne _0806E6C0
+ bl sub_806B528
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E6AE
+ adds r0, r5, 0
+ movs r1, 0x2
+ adds r2, r4, 0
+ bl sub_806E630
+ b _0806E6C0
+_0806E6AE:
+ bl battle_type_is_double
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r6, 0
+ adds r2, r4, 0
+ bl sub_806E630
+_0806E6C0:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E674
+
+ thumb_func_start sub_806E6C8
+sub_806E6C8: @ 806E6C8
+ push {r4-r6,lr}
+ movs r4, 0
+ movs r6, 0x64
+ ldr r5, _0806E6EC
+_0806E6D0:
+ adds r1, r4, 0
+ muls r1, r6
+ adds r1, r5
+ adds r0, r4, 0
+ bl sub_806E674
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _0806E6D0
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E6EC: .4byte 0x03004360
+ thumb_func_end sub_806E6C8
+
+ thumb_func_start sub_806E6F0
+sub_806E6F0: @ 806E6F0
+ push {r4,r5,lr}
+ sub sp, 0x64
+ adds r4, r0, 0
+ adds r5, r1, 0
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x64
+ bl memcpy
+ adds r0, r5, 0
+ mov r1, sp
+ movs r2, 0x64
+ bl memcpy
+ add sp, 0x64
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E6F0
+
+ thumb_func_start sub_806E720
+sub_806E720: @ 806E720
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 21
+ adds r0, r3
+ ldrb r4, [r0]
+ lsls r4, 25
+ movs r3, 0x80
+ lsls r3, 18
+ adds r4, r3
+ lsrs r4, 24
+ ldrb r0, [r0, 0x1]
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0x1E
+ subs r3, r0
+ strb r3, [r1]
+ movs r0, 0x14
+ subs r0, r4
+ strb r0, [r2]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E720
+
+ thumb_func_start sub_806E750
+sub_806E750: @ 806E750
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0xC
+ adds r5, r0, 0
+ adds r4, r1, 0
+ mov r9, r2
+ adds r6, r3, 0
+ lsls r5, 24
+ lsrs r5, 24
+ lsls r6, 24
+ lsrs r6, 24
+ movs r0, 0x9
+ add r0, sp
+ mov r8, r0
+ adds r0, r5, 0
+ add r1, sp, 0x8
+ mov r2, r8
+ adds r3, r4, 0
+ bl sub_806E720
+ add r0, sp, 0x8
+ ldrb r0, [r0]
+ mov r2, r8
+ ldrb r1, [r2]
+ lsls r5, 3
+ adds r5, r4
+ ldrb r2, [r5, 0x1]
+ ldrb r3, [r5]
+ mov r4, r9
+ str r4, [sp]
+ ldr r4, [r5, 0x4]
+ str r4, [sp, 0x4]
+ bl sub_8089C50
+ add r0, sp, 0x8
+ ldrb r1, [r0]
+ adds r1, 0x1
+ lsls r1, 24
+ lsrs r1, 24
+ mov r0, r8
+ ldrb r2, [r0]
+ adds r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r3, [r5]
+ str r6, [sp]
+ ldrb r0, [r5, 0x1]
+ subs r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x4]
+ movs r0, 0
+ bl InitMenu
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E750
+
+ thumb_func_start sub_806E7D0
+sub_806E7D0: @ 806E7D0
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r6, r1, 0
+ lsls r4, 24
+ lsrs r4, 24
+ mov r5, sp
+ adds r5, 0x1
+ adds r0, r4, 0
+ mov r1, sp
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_806E720
+ mov r0, sp
+ ldrb r0, [r0]
+ ldrb r1, [r5]
+ lsls r4, 3
+ adds r4, r6
+ ldrb r2, [r4, 0x1]
+ adds r2, r0, r2
+ lsls r2, 24
+ lsrs r2, 24
+ ldrb r3, [r4]
+ lsls r3, 1
+ adds r3, r1, r3
+ adds r3, 0x1
+ lsls r3, 24
+ lsrs r3, 24
+ bl Reset
+ bl sub_8072DEC
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806E7D0
+
+ thumb_func_start sub_806E81C
+sub_806E81C: @ 806E81C
+ lsls r0, 24
+ lsls r3, 24
+ lsrs r3, 24
+ lsrs r0, 21
+ adds r0, r1
+ ldr r0, [r0, 0x4]
+ adds r0, r3
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r0, r2
+ ldr r0, [r0, 0x4]
+ bx lr
+ thumb_func_end sub_806E81C
+
+ thumb_func_start sub_806E834
+sub_806E834: @ 806E834
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r4, r1, 24
+ lsrs r4, 24
+ ldr r1, _0806E878
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x3
+ movs r1, 0xE
+ movs r2, 0x1A
+ movs r3, 0x13
+ bl DrawDefaultWindow
+ adds r0, r5, 0
+ movs r1, 0x4
+ movs r2, 0xF
+ bl AddTextPrinterWithCallbackForMessage
+ ldr r0, _0806E87C
+ movs r1, 0x1
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r2, _0806E880
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ strh r4, [r1, 0x8]
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806E878: .4byte 0x0202e8f6
+_0806E87C: .4byte sub_806E884
+_0806E880: .4byte 0x03004b20
+ thumb_func_end sub_806E834
+
+ thumb_func_start sub_806E884
+sub_806E884: @ 806E884
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl sub_8072080
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806E8C0
+ ldr r1, _0806E8C8
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _0806E8CC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0806E8BA
+ movs r0, 0x3
+ movs r1, 0xE
+ movs r2, 0x1A
+ movs r3, 0x13
+ bl Reset
+_0806E8BA:
+ adds r0, r5, 0
+ bl DestroyTask
+_0806E8C0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E8C8: .4byte 0x0202e8f6
+_0806E8CC: .4byte 0x03004b20
+ thumb_func_end sub_806E884
+
+ thumb_func_start sub_806E8D0
+sub_806E8D0: @ 806E8D0
+ push {r4,r5,lr}
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r5, 16
+ lsrs r5, 16
+ ldr r4, _0806E8FC
+ str r2, [r4, 0x10]
+ strb r0, [r4, 0x4]
+ bl sub_806CA38
+ strb r0, [r4, 0x5]
+ strh r5, [r4, 0x6]
+ ldrb r1, [r4, 0x5]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0806E900
+ adds r0, r1
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806E8FC: .4byte 0x0201c000
+_0806E900: .4byte 0x03004360
+ thumb_func_end sub_806E8D0
+
+ thumb_func_start sub_806E904
+sub_806E904: @ 806E904
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r5, r0, 0
+ lsls r1, 16
+ lsrs r4, r1, 16
+ adds r0, r4, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E93C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80A2BC4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ bne _0806E930
+ movs r0, 0x1
+ b _0806E958
+_0806E930:
+ ldr r1, _0806E938
+ movs r0, 0x2
+ b _0806E940
+ .align 2, 0
+_0806E938: .4byte 0x0202e8f4
+_0806E93C:
+ ldr r1, _0806E960
+ movs r0, 0x1
+_0806E940:
+ strb r0, [r1]
+ mov r0, sp
+ strb r4, [r0]
+ mov r1, sp
+ lsrs r0, r4, 8
+ strb r0, [r1, 0x1]
+ adds r0, r5, 0
+ movs r1, 0xC
+ mov r2, sp
+ bl pokemon_setattr
+ movs r0, 0
+_0806E958:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806E960: .4byte 0x0202e8f4
+ thumb_func_end sub_806E904
+
+ thumb_func_start sub_806E964
+sub_806E964: @ 806E964
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r8, r2
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r5, r1, 16
+ mov r9, r5
+ ldr r2, _0806E9D4
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r6, r1, r2
+ ldr r1, _0806E9D8
+ str r1, [r6]
+ adds r1, r5, 0
+ mov r2, r8
+ bl sub_806E8D0
+ ldr r4, _0806E9DC
+ ldr r0, [r4]
+ movs r1, 0xC
+ bl PokemonGetField
+ lsls r0, 16
+ lsrs r2, r0, 16
+ adds r7, r2, 0
+ ldr r1, _0806E9E0
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _0806E9E4
+ mov r10, r0
+ movs r0, 0
+ mov r1, r10
+ strh r0, [r1]
+ cmp r2, 0
+ beq _0806EA44
+ adds r0, r2, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806E9F0
+ ldr r0, _0806E9E8
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806E9EC
+ movs r1, 0x5
+ bl CreateTask
+ b _0806EA78
+ .align 2, 0
+_0806E9D4: .4byte 0x03004b20
+_0806E9D8: .4byte TaskDummy
+_0806E9DC: .4byte 0x0201c000
+_0806E9E0: .4byte 0x0202e8f4
+_0806E9E4: .4byte 0x0202e8f8
+_0806E9E8: .4byte gUnknown_0840F17F
+_0806E9EC: .4byte party_menu_link_mon_held_item_object
+_0806E9F0:
+ ldr r0, [r4]
+ ldr r1, _0806EA30
+ bl GetMonNickname
+ ldr r1, _0806EA34
+ adds r0, r7, 0
+ bl itemid_copy_name
+ ldr r4, _0806EA38
+ ldr r1, _0806EA3C
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806EA40
+ movs r1, 0x5
+ bl CreateTask
+ adds r0, r5, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806EA78
+ mov r0, r10
+ strh r7, [r0]
+ b _0806EA78
+ .align 2, 0
+_0806EA30: .4byte 0x020231cc
+_0806EA34: .4byte 0x020232cc
+_0806EA38: .4byte 0x020234cc
+_0806EA3C: .4byte gUnknown_0840F1CD
+_0806EA40: .4byte sub_806EBB8
+_0806EA44:
+ ldr r0, [r4]
+ adds r1, r5, 0
+ bl sub_806E904
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80A9538
+ adds r0, r5, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806EA66
+ mov r1, r8
+ str r1, [r6]
+ b _0806EA78
+_0806EA66:
+ ldrb r0, [r4, 0x5]
+ mov r1, r9
+ movs r2, 0x1
+ bl sub_806EBF0
+ ldr r0, _0806EA88
+ movs r1, 0x5
+ bl CreateTask
+_0806EA78:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EA88: .4byte party_menu_link_mon_held_item_object
+ thumb_func_end sub_806E964
+
+ thumb_func_start party_menu_link_mon_held_item_object
+party_menu_link_mon_held_item_object: @ 806EA8C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0806EAC0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806EABA
+ ldr r4, _0806EAC4
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ bl sub_806DF60
+ ldr r2, _0806EAC8
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, [r4, 0x10]
+ str r1, [r0]
+ adds r0, r5, 0
+ bl DestroyTask
+_0806EABA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EAC0: .4byte 0x0202e8f6
+_0806EAC4: .4byte 0x0201c000
+_0806EAC8: .4byte 0x03004b20
+ thumb_func_end party_menu_link_mon_held_item_object
+
+ thumb_func_start sub_806EACC
+sub_806EACC: @ 806EACC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl FillWindowPixelBuffer
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _0806EB74
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl Reset
+ ldr r4, _0806EB30
+ ldr r0, [r4]
+ movs r1, 0xC
+ bl PokemonGetField
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldrh r0, [r4, 0x6]
+ movs r1, 0x1
+ bl sub_80A9538
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_80A9424
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806EB5C
+ ldr r0, [r4]
+ ldrh r1, [r4, 0x6]
+ bl sub_806E904
+ ldrh r0, [r4, 0x6]
+ bl itemid_is_mail
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806EB34
+ ldrb r0, [r4, 0x5]
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl sub_806EDB4
+ b _0806EB9A
+ .align 2, 0
+_0806EB30: .4byte 0x0201c000
+_0806EB34:
+ ldrh r0, [r4, 0x6]
+ ldr r1, _0806EB50
+ bl itemid_copy_name
+ ldr r4, _0806EB54
+ ldr r1, _0806EB58
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ b _0806EB9A
+ .align 2, 0
+_0806EB50: .4byte 0x020231cc
+_0806EB54: .4byte 0x020234cc
+_0806EB58: .4byte gUnknown_0840F26E
+_0806EB5C:
+ ldr r0, _0806EB70
+ movs r1, 0
+ bl sub_806E834
+ ldrh r0, [r4, 0x6]
+ movs r1, 0x1
+ bl sub_80A9424
+ b _0806EB9A
+ .align 2, 0
+_0806EB70: .4byte gUnknown_0840F2FC
+_0806EB74:
+ cmp r1, 0x1
+ beq _0806EB80
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806EBA8
+_0806EB80:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806EB8E
+ movs r0, 0x5
+ bl audio_play
+_0806EB8E:
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl Reset
+_0806EB9A:
+ ldr r0, _0806EBB0
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806EBB4
+ str r0, [r1]
+_0806EBA8:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EBB0: .4byte 0x03004b20
+_0806EBB4: .4byte party_menu_link_mon_held_item_object
+ thumb_func_end sub_806EACC
+
+ thumb_func_start sub_806EBB8
+sub_806EBB8: @ 806EBB8
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806EBE4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806EBDE
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl sub_8072974
+ ldr r0, _0806EBE8
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806EBEC
+ str r0, [r1]
+_0806EBDE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EBE4: .4byte 0x0202e8f6
+_0806EBE8: .4byte 0x03004b20
+_0806EBEC: .4byte sub_806EACC
+ thumb_func_end sub_806EBB8
+
+ thumb_func_start sub_806EBF0
+sub_806EBF0: @ 806EBF0
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0806EC30
+ adds r0, r1
+ ldr r1, _0806EC34
+ bl GetMonNickname
+ ldr r1, _0806EC38
+ adds r0, r4, 0
+ bl itemid_copy_name
+ ldr r4, _0806EC3C
+ ldr r1, _0806EC40
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_806E834
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EC30: .4byte 0x03004360
+_0806EC34: .4byte 0x020231cc
+_0806EC38: .4byte 0x020232cc
+_0806EC3C: .4byte 0x020234cc
+_0806EC40: .4byte gUnknown_0840F1AE
+ thumb_func_end sub_806EBF0
+
+ thumb_func_start sub_806EC44
+sub_806EC44: @ 806EC44
+ push {r4,r5,lr}
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0806ECA0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ ldr r3, _0806ECA4
+ str r3, [r1]
+ movs r1, 0
+ bl sub_806E8D0
+ ldr r5, _0806ECA8
+ ldr r0, [r5]
+ movs r1, 0xC
+ bl PokemonGetField
+ lsls r0, 16
+ ldr r2, _0806ECAC
+ movs r1, 0
+ strb r1, [r2]
+ movs r1, 0xF8
+ lsls r1, 6
+ adds r2, r5, r1
+ ldrb r1, [r2]
+ adds r1, 0x6
+ ldrb r2, [r2, 0x2]
+ adds r1, r2
+ lsls r2, r1, 3
+ adds r2, r1
+ lsls r2, 2
+ ldr r1, _0806ECB0
+ adds r4, r2, r1
+ cmp r0, 0
+ beq _0806ECBC
+ ldr r0, _0806ECB4
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806ECB8
+ movs r1, 0x5
+ bl CreateTask
+ b _0806ECDA
+ .align 2, 0
+_0806ECA0: .4byte 0x03004b20
+_0806ECA4: .4byte TaskDummy
+_0806ECA8: .4byte 0x0201c000
+_0806ECAC: .4byte 0x0202e8f4
+_0806ECB0: .4byte 0x02028280
+_0806ECB4: .4byte gUnknown_0840F29B
+_0806ECB8: .4byte party_menu_link_mon_held_item_object
+_0806ECBC:
+ ldr r0, [r5]
+ adds r1, r4, 0
+ bl sub_80A2D88
+ adds r0, r4, 0
+ bl sub_80A2B40
+ ldr r0, _0806ECE0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806ECE4
+ movs r1, 0x5
+ bl CreateTask
+_0806ECDA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806ECE0: .4byte gUnknown_0840F2D3
+_0806ECE4: .4byte party_menu_link_mon_held_item_object
+ thumb_func_end sub_806EC44
+
+ thumb_func_start sub_806ECE8
+sub_806ECE8: @ 806ECE8
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0806ED38
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ ldr r3, _0806ED3C
+ str r3, [r1]
+ movs r1, 0
+ bl sub_806E8D0
+ ldr r5, _0806ED40
+ ldr r0, [r5]
+ movs r1, 0xC
+ bl PokemonGetField
+ lsls r0, 16
+ lsrs r4, r0, 16
+ adds r6, r4, 0
+ cmp r4, 0
+ bne _0806ED50
+ ldr r4, _0806ED44
+ ldr r1, _0806ED48
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806E834
+ ldr r0, _0806ED4C
+ movs r1, 0x5
+ bl CreateTask
+ b _0806EDA2
+ .align 2, 0
+_0806ED38: .4byte 0x03004b20
+_0806ED3C: .4byte TaskDummy
+_0806ED40: .4byte 0x0201c000
+_0806ED44: .4byte 0x020234cc
+_0806ED48: .4byte gUnknown_0840F213
+_0806ED4C: .4byte party_menu_link_mon_held_item_object
+_0806ED50:
+ mov r0, sp
+ movs r1, 0
+ strb r1, [r0]
+ strb r1, [r0, 0x1]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80A9424
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806ED92
+ adds r0, r4, 0
+ bl itemid_is_mail
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806ED7C
+ ldr r0, [r5]
+ bl sub_80A2DF8
+_0806ED7C:
+ ldrb r0, [r5, 0x5]
+ adds r1, r6, 0
+ movs r2, 0
+ bl sub_806EDB4
+ ldr r0, [r5]
+ movs r1, 0xC
+ mov r2, sp
+ bl pokemon_setattr
+ b _0806ED9A
+_0806ED92:
+ ldr r0, _0806EDAC
+ movs r1, 0
+ bl sub_806E834
+_0806ED9A:
+ ldr r0, _0806EDB0
+ movs r1, 0x5
+ bl CreateTask
+_0806EDA2:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EDAC: .4byte gUnknown_0840F2FC
+_0806EDB0: .4byte party_menu_link_mon_held_item_object
+ thumb_func_end sub_806ECE8
+
+ thumb_func_start sub_806EDB4
+sub_806EDB4: @ 806EDB4
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, 16
+ lsrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ movs r1, 0x64
+ muls r0, r1
+ ldr r1, _0806EDF4
+ adds r0, r1
+ ldr r1, _0806EDF8
+ bl GetMonNickname
+ ldr r1, _0806EDFC
+ adds r0, r4, 0
+ bl itemid_copy_name
+ ldr r4, _0806EE00
+ ldr r1, _0806EE04
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_806E834
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EDF4: .4byte 0x03004360
+_0806EDF8: .4byte 0x020231cc
+_0806EDFC: .4byte 0x020232cc
+_0806EE00: .4byte 0x020234cc
+_0806EE04: .4byte gUnknown_0840F230
+ thumb_func_end sub_806EDB4
+
+ thumb_func_start sub_806EE08
+sub_806EE08: @ 806EE08
+ push {r4,lr}
+ adds r2, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _0806EE48
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ ldr r3, _0806EE4C
+ str r3, [r1]
+ movs r1, 0
+ bl sub_806E8D0
+ ldr r4, _0806EE50
+ ldr r0, [r4]
+ movs r1, 0xC
+ bl PokemonGetField
+ strh r0, [r4, 0x6]
+ ldr r0, _0806EE54
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806EE58
+ movs r1, 0x5
+ bl CreateTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EE48: .4byte 0x03004b20
+_0806EE4C: .4byte TaskDummy
+_0806EE50: .4byte 0x0201c000
+_0806EE54: .4byte gUnknown_0840F0E8
+_0806EE58: .4byte sub_806EFEC
+ thumb_func_end sub_806EE08
+
+ thumb_func_start sub_806EE5C
+sub_806EE5C: @ 806EE5C
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl FillWindowPixelBuffer
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _0806EEB0
+ ldr r5, _0806EE90
+ ldrh r0, [r5, 0x6]
+ movs r1, 0x1
+ bl sub_80A9424
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0806EE98
+ ldr r0, [r5]
+ bl sub_80A2DF8
+ ldr r0, _0806EE94
+ movs r1, 0
+ bl sub_806E834
+ b _0806EEA0
+ .align 2, 0
+_0806EE90: .4byte 0x0201c000
+_0806EE94: .4byte gUnknown_0840F24B
+_0806EE98:
+ ldr r0, _0806EEAC
+ movs r1, 0
+ bl sub_806E834
+_0806EEA0:
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ b _0806EEDE
+ .align 2, 0
+_0806EEAC: .4byte gUnknown_0840F2FC
+_0806EEB0:
+ cmp r1, 0x1
+ beq _0806EEBC
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806EEF0
+_0806EEBC:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806EECA
+ movs r0, 0x5
+ bl audio_play
+_0806EECA:
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl Reset
+ movs r0, 0
+ movs r1, 0xE
+ movs r2, 0x1D
+ movs r3, 0x13
+_0806EEDE:
+ bl Reset
+ ldr r0, _0806EEF8
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806EEFC
+ str r0, [r1]
+_0806EEF0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EEF8: .4byte 0x03004b20
+_0806EEFC: .4byte party_menu_link_mon_held_item_object
+ thumb_func_end sub_806EE5C
+
+ thumb_func_start sub_806EF00
+sub_806EF00: @ 806EF00
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806EF2C
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806EF26
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl sub_8072974
+ ldr r0, _0806EF30
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806EF34
+ str r0, [r1]
+_0806EF26:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EF2C: .4byte 0x0202e8f6
+_0806EF30: .4byte 0x03004b20
+_0806EF34: .4byte sub_806EE5C
+ thumb_func_end sub_806EF00
+
+ thumb_func_start sub_806EF38
+sub_806EF38: @ 806EF38
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl FillWindowPixelBuffer
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _0806EF9C
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl Reset
+ ldr r0, _0806EF70
+ ldr r0, [r0]
+ bl sub_80A2E78
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xFF
+ beq _0806EF78
+ ldr r0, _0806EF74
+ movs r1, 0
+ bl sub_806E834
+ b _0806EF80
+ .align 2, 0
+_0806EF70: .4byte 0x0201c000
+_0806EF74: .4byte gUnknown_0840F10A
+_0806EF78:
+ ldr r0, _0806EF90
+ movs r1, 0
+ bl sub_806E834
+_0806EF80:
+ ldr r0, _0806EF94
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806EF98
+ str r0, [r1]
+ b _0806EFD8
+ .align 2, 0
+_0806EF90: .4byte gUnknown_0840F12A
+_0806EF94: .4byte 0x03004b20
+_0806EF98: .4byte party_menu_link_mon_held_item_object
+_0806EF9C:
+ cmp r1, 0x1
+ beq _0806EFA8
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806EFD8
+_0806EFA8:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806EFB6
+ movs r0, 0x5
+ bl audio_play
+_0806EFB6:
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl Reset
+ ldr r0, _0806EFE0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806EFE4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806EFE8
+ str r1, [r0]
+_0806EFD8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806EFE0: .4byte gUnknown_0840F147
+_0806EFE4: .4byte 0x03004b20
+_0806EFE8: .4byte sub_806EF00
+ thumb_func_end sub_806EF38
+
+ thumb_func_start sub_806EFEC
+sub_806EFEC: @ 806EFEC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806F018
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F012
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl sub_8072974
+ ldr r0, _0806F01C
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806F020
+ str r0, [r1]
+_0806F012:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F018: .4byte 0x0202e8f6
+_0806F01C: .4byte 0x03004b20
+_0806F020: .4byte sub_806EF38
+ thumb_func_end sub_806EFEC
+
+ thumb_func_start ItemIdToBattleMoveId
+ItemIdToBattleMoveId: @ 806F024
+ lsls r0, 16
+ ldr r1, _0806F034
+ adds r0, r1
+ ldr r1, _0806F038
+ lsrs r0, 15
+ adds r0, r1
+ ldrh r0, [r0]
+ bx lr
+ .align 2, 0
+_0806F034: .4byte 0xfedf0000
+_0806F038: .4byte gUnknown_08376504
+ thumb_func_end ItemIdToBattleMoveId
+
+ thumb_func_start pokemon_has_move
+pokemon_has_move: @ 806F03C
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ lsls r1, 16
+ lsrs r5, r1, 16
+ movs r4, 0
+_0806F046:
+ adds r1, r4, 0
+ adds r1, 0xD
+ adds r0, r6, 0
+ bl PokemonGetField
+ cmp r0, r5
+ bne _0806F058
+ movs r0, 0x1
+ b _0806F064
+_0806F058:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _0806F046
+ movs r0, 0
+_0806F064:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end pokemon_has_move
+
+ thumb_func_start sub_806F06C
+sub_806F06C: @ 806F06C
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ adds r6, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 16
+ lsrs r5, 16
+ movs r0, 0x5
+ bl audio_play
+ ldr r1, _0806F0A8
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F0AC
+ str r1, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_806E8D0
+ ldr r0, _0806F0B0
+ movs r1, 0x5
+ bl CreateTask
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F0A8: .4byte 0x03004b20
+_0806F0AC: .4byte TaskDummy
+_0806F0B0: .4byte sub_806F0B4
+ thumb_func_end sub_806F06C
+
+ thumb_func_start sub_806F0B4
+sub_806F0B4: @ 806F0B4
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ adds r7, r6, 0
+ ldr r5, _0806F114
+ ldr r0, [r5]
+ ldr r1, _0806F118
+ bl GetMonNickname
+ ldrh r0, [r5, 0x6]
+ bl ItemIdToBattleMoveId
+ movs r4, 0
+ strh r0, [r5, 0x8]
+ ldr r0, _0806F11C
+ ldrh r2, [r5, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F120
+ adds r1, r2
+ bl StringCopy
+ ldr r1, _0806F124
+ adds r0, r5, r1
+ strh r4, [r0]
+ ldr r0, [r5]
+ ldrh r1, [r5, 0x8]
+ bl pokemon_has_move
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806F138
+ ldr r4, _0806F128
+ ldr r1, _0806F12C
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F130
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F134
+ b _0806F1B6
+ .align 2, 0
+_0806F114: .4byte 0x0201c000
+_0806F118: .4byte 0x020231cc
+_0806F11C: .4byte 0x020232cc
+_0806F120: .4byte gMoveNames
+_0806F124: .4byte 0xfffff282
+_0806F128: .4byte 0x020234cc
+_0806F12C: .4byte gUnknown_0840F49E
+_0806F130: .4byte 0x03004b20
+_0806F134: .4byte party_menu_link_mon_held_item_object
+_0806F138:
+ ldr r0, [r5]
+ ldrb r1, [r5, 0x6]
+ subs r1, 0x21
+ lsls r1, 24
+ lsrs r1, 24
+ bl sub_8040374
+ cmp r0, 0
+ bne _0806F17C
+ ldr r4, _0806F16C
+ ldr r1, _0806F170
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F174
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F178
+ b _0806F1B6
+ .align 2, 0
+_0806F16C: .4byte 0x020234cc
+_0806F170: .4byte gUnknown_0840F347
+_0806F174: .4byte 0x03004b20
+_0806F178: .4byte party_menu_link_mon_held_item_object
+_0806F17C:
+ ldr r0, [r5]
+ ldrh r1, [r5, 0x8]
+ bl pokemon_moveset_pad_
+ lsls r0, 16
+ ldr r1, _0806F194
+ cmp r0, r1
+ beq _0806F198
+ adds r0, r6, 0
+ bl sub_806F1D0
+ b _0806F1B8
+ .align 2, 0
+_0806F194: .4byte 0xffff0000
+_0806F198:
+ ldr r4, _0806F1C0
+ ldr r1, _0806F1C4
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F1C8
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F1CC
+_0806F1B6:
+ str r1, [r0]
+_0806F1B8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F1C0: .4byte 0x020234cc
+_0806F1C4: .4byte gUnknown_0840F37C
+_0806F1C8: .4byte 0x03004b20
+_0806F1CC: .4byte sub_806F358
+ thumb_func_end sub_806F0B4
+
+ thumb_func_start sub_806F1D0
+sub_806F1D0: @ 806F1D0
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _0806F234
+ ldr r5, _0806F238
+ ldrh r2, [r5, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F23C
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F240
+ ldr r1, _0806F244
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, [r5]
+ movs r1, 0x4
+ bl sub_803FCD4
+ ldr r1, _0806F248
+ adds r0, r5, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _0806F220
+ ldrh r1, [r5, 0x6]
+ movs r0, 0xA9
+ lsls r0, 1
+ cmp r1, r0
+ bhi _0806F220
+ adds r0, r1, 0
+ movs r1, 0x1
+ bl sub_80A9538
+_0806F220:
+ ldr r0, _0806F24C
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806F250
+ str r0, [r1]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F234: .4byte 0x020232cc
+_0806F238: .4byte 0x0201c000
+_0806F23C: .4byte gMoveNames
+_0806F240: .4byte 0x020234cc
+_0806F244: .4byte gUnknown_0840F338
+_0806F248: .4byte 0xfffff282
+_0806F24C: .4byte 0x03004b20
+_0806F250: .4byte sub_806F254
+ thumb_func_end sub_806F1D0
+
+ thumb_func_start sub_806F254
+sub_806F254: @ 806F254
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806F27C
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F276
+ ldr r0, _0806F280
+ bl fanfare_play
+ ldr r1, _0806F284
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F288
+ str r1, [r0]
+_0806F276:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F27C: .4byte 0x0202e8f6
+_0806F280: .4byte 0x0000016f
+_0806F284: .4byte 0x03004b20
+_0806F288: .4byte sub_806F28C
+ thumb_func_end sub_806F254
+
+ thumb_func_start sub_806F28C
+sub_806F28C: @ 806F28C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ bl task_is_not_running_overworld_fanfare
+ lsls r0, 24
+ cmp r0, 0
+ beq _0806F2F2
+ ldr r0, _0806F2D0
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0806F2B2
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0806F2F2
+_0806F2B2:
+ ldr r4, _0806F2D4
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ bl sub_806DF60
+ ldr r1, _0806F2D8
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ bne _0806F2DC
+ adds r0, r5, 0
+ bl sub_8070C54
+ b _0806F2F2
+ .align 2, 0
+_0806F2D0: .4byte 0x03001770
+_0806F2D4: .4byte 0x0201c000
+_0806F2D8: .4byte 0xfffff282
+_0806F2DC:
+ ldr r2, _0806F2F8
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, [r4, 0x10]
+ str r1, [r0]
+ adds r0, r6, 0
+ bl DestroyTask
+_0806F2F2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F2F8: .4byte 0x03004b20
+ thumb_func_end sub_806F28C
+
+ thumb_func_start sub_806F2FC
+sub_806F2FC: @ 806F2FC
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ ldr r0, _0806F32C
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F34E
+ ldr r4, _0806F330
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ bl sub_806DF60
+ ldr r1, _0806F334
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x1
+ bne _0806F338
+ adds r0, r5, 0
+ bl sub_8070C54
+ b _0806F34E
+ .align 2, 0
+_0806F32C: .4byte 0x0202e8f6
+_0806F330: .4byte 0x0201c000
+_0806F334: .4byte 0xfffff282
+_0806F338:
+ ldr r2, _0806F354
+ ldrb r1, [r4, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, [r4, 0x10]
+ str r1, [r0]
+ adds r0, r6, 0
+ bl DestroyTask
+_0806F34E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F354: .4byte 0x03004b20
+ thumb_func_end sub_806F2FC
+
+ thumb_func_start sub_806F358
+sub_806F358: @ 806F358
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806F384
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F37E
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl sub_8072974
+ ldr r0, _0806F388
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806F38C
+ str r0, [r1]
+_0806F37E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F384: .4byte 0x0202e8f6
+_0806F388: .4byte 0x03004b20
+_0806F38C: .4byte sub_806F390
+ thumb_func_end sub_806F358
+
+ thumb_func_start sub_806F390
+sub_806F390: @ 806F390
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ bl FillWindowPixelBuffer
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _0806F3D4
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl Reset
+ ldr r0, _0806F3C8
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F3CC
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F3D0
+ str r1, [r0]
+ b _0806F3F4
+ .align 2, 0
+_0806F3C8: .4byte gUnknown_0840F429
+_0806F3CC: .4byte 0x03004b20
+_0806F3D0: .4byte sub_806F44C
+_0806F3D4:
+ cmp r1, 0x1
+ beq _0806F3E0
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806F3F4
+_0806F3E0:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806F3EE
+ movs r0, 0x5
+ bl audio_play
+_0806F3EE:
+ adds r0, r5, 0
+ bl sub_806F614
+_0806F3F4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806F390
+
+ thumb_func_start sub_806F3FC
+sub_806F3FC: @ 806F3FC
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r0, _0806F438
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0806F430
+ ldr r0, _0806F43C
+ ldr r4, _0806F440
+ ldrb r1, [r4, 0x5]
+ ldr r2, _0806F444
+ ldrb r2, [r2]
+ subs r2, 0x1
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r3, _0806F448
+ ldrh r4, [r4, 0x8]
+ str r4, [sp]
+ bl sub_809D9F0
+ adds r0, r5, 0
+ bl DestroyTask
+_0806F430:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F438: .4byte 0x0202f388
+_0806F43C: .4byte 0x03004360
+_0806F440: .4byte 0x0201c000
+_0806F444: .4byte 0x03004350
+_0806F448: .4byte sub_808B564
+ thumb_func_end sub_806F3FC
+
+ thumb_func_start sub_806F44C
+sub_806F44C: @ 806F44C
+ push {r4,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806F484
+ ldrb r1, [r0]
+ cmp r1, 0
+ bne _0806F47A
+ movs r0, 0x1
+ negs r0, r0
+ str r1, [sp]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0x10
+ bl BeginNormalPaletteFade
+ ldr r1, _0806F488
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F48C
+ str r1, [r0]
+_0806F47A:
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F484: .4byte 0x0202e8f6
+_0806F488: .4byte 0x03004b20
+_0806F48C: .4byte sub_806F3FC
+ thumb_func_end sub_806F44C
+
+ thumb_func_start sub_806F490
+sub_806F490: @ 806F490
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0806F50C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0806F506
+ ldr r1, _0806F510
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F514
+ str r1, [r0]
+ ldr r0, _0806F518
+ ldrh r1, [r0]
+ ldr r2, _0806F51C
+ adds r0, r3, 0
+ bl sub_806E8D0
+ bl sub_809FA30
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r5, _0806F520
+ ldr r0, [r5]
+ adds r1, 0xD
+ bl PokemonGetField
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ ldr r0, [r5]
+ ldr r1, _0806F524
+ bl GetMonNickname
+ ldr r0, _0806F528
+ movs r1, 0xD
+ muls r1, r4
+ ldr r2, _0806F52C
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F530
+ ldr r1, _0806F534
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806F538
+ movs r1, 0x5
+ bl CreateTask
+_0806F506:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F50C: .4byte 0x0202f388
+_0806F510: .4byte 0x03004b20
+_0806F514: .4byte TaskDummy
+_0806F518: .4byte 0x0203855e
+_0806F51C: .4byte sub_808B508
+_0806F520: .4byte 0x0201c000
+_0806F524: .4byte 0x020231cc
+_0806F528: .4byte 0x020232cc
+_0806F52C: .4byte gMoveNames
+_0806F530: .4byte 0x020234cc
+_0806F534: .4byte gUnknown_0840F44B
+_0806F538: .4byte sub_806F53C
+ thumb_func_end sub_806F490
+
+ thumb_func_start sub_806F53C
+sub_806F53C: @ 806F53C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r0, _0806F580
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F57A
+ ldr r4, _0806F584
+ ldr r5, [r4]
+ bl sub_809FA30
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ adds r0, r5, 0
+ bl sub_803DE34
+ ldr r5, [r4]
+ ldrh r4, [r4, 0x8]
+ bl sub_809FA30
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_803B6A4
+ adds r0, r6, 0
+ bl sub_806F1D0
+_0806F57A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F580: .4byte 0x0202e8f6
+_0806F584: .4byte 0x0201c000
+ thumb_func_end sub_806F53C
+
+ thumb_func_start sub_806F588
+sub_806F588: @ 806F588
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ ldr r0, _0806F5E8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _0806F5E0
+ ldr r1, _0806F5EC
+ lsls r0, r3, 2
+ adds r0, r3
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F5F0
+ str r1, [r0]
+ ldr r0, _0806F5F4
+ ldrh r1, [r0]
+ ldr r2, _0806F5F8
+ adds r0, r3, 0
+ bl sub_806E8D0
+ ldr r0, _0806F5FC
+ ldr r1, _0806F600
+ ldrh r2, [r1, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F604
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F608
+ ldr r1, _0806F60C
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0806F610
+ movs r1, 0x5
+ bl CreateTask
+_0806F5E0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F5E8: .4byte 0x0202f388
+_0806F5EC: .4byte 0x03004b20
+_0806F5F0: .4byte TaskDummy
+_0806F5F4: .4byte 0x0203855e
+_0806F5F8: .4byte sub_808B508
+_0806F5FC: .4byte 0x020232cc
+_0806F600: .4byte 0x0201c000
+_0806F604: .4byte gMoveNames
+_0806F608: .4byte 0x020234cc
+_0806F60C: .4byte gUnknown_0840F3F0
+_0806F610: .4byte sub_806F67C
+ thumb_func_end sub_806F588
+
+ thumb_func_start sub_806F614
+sub_806F614: @ 806F614
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl Reset
+ ldr r0, _0806F660
+ ldr r1, _0806F664
+ ldrh r2, [r1, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F668
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F66C
+ ldr r1, _0806F670
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F674
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F678
+ str r1, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F660: .4byte 0x020232cc
+_0806F664: .4byte 0x0201c000
+_0806F668: .4byte gMoveNames
+_0806F66C: .4byte 0x020234cc
+_0806F670: .4byte gUnknown_0840F3F0
+_0806F674: .4byte 0x03004b20
+_0806F678: .4byte sub_806F67C
+ thumb_func_end sub_806F614
+
+ thumb_func_start sub_806F67C
+sub_806F67C: @ 806F67C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806F6A8
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806F6A2
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1
+ bl sub_8072974
+ ldr r0, _0806F6AC
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _0806F6B0
+ str r0, [r1]
+_0806F6A2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F6A8: .4byte 0x0202e8f6
+_0806F6AC: .4byte 0x03004b20
+_0806F6B0: .4byte sub_806F6B4
+ thumb_func_end sub_806F67C
+
+ thumb_func_start sub_806F6B4
+sub_806F6B4: @ 806F6B4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r6, r5, 0
+ bl FillWindowPixelBuffer
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ bne _0806F730
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl Reset
+ ldr r4, _0806F710
+ ldr r0, [r4]
+ ldr r1, _0806F714
+ bl GetMonNickname
+ ldr r0, _0806F718
+ ldrh r2, [r4, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F71C
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F720
+ ldr r1, _0806F724
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F728
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F72C
+ b _0806F78E
+ .align 2, 0
+_0806F710: .4byte 0x0201c000
+_0806F714: .4byte 0x020231cc
+_0806F718: .4byte 0x020232cc
+_0806F71C: .4byte gMoveNames
+_0806F720: .4byte 0x020234cc
+_0806F724: .4byte gUnknown_0840F409
+_0806F728: .4byte 0x03004b20
+_0806F72C: .4byte sub_806F2FC
+_0806F730:
+ cmp r1, 0x1
+ beq _0806F73C
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806F790
+_0806F73C:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _0806F74A
+ movs r0, 0x5
+ bl audio_play
+_0806F74A:
+ movs r0, 0x17
+ movs r1, 0x8
+ movs r2, 0x1D
+ movs r3, 0xD
+ bl Reset
+ ldr r4, _0806F798
+ ldr r0, [r4]
+ ldr r1, _0806F79C
+ bl GetMonNickname
+ ldr r0, _0806F7A0
+ ldrh r2, [r4, 0x8]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _0806F7A4
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _0806F7A8
+ ldr r1, _0806F7AC
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806F7B0
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F7B4
+_0806F78E:
+ str r1, [r0]
+_0806F790:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806F798: .4byte 0x0201c000
+_0806F79C: .4byte 0x020231cc
+_0806F7A0: .4byte 0x020232cc
+_0806F7A4: .4byte gMoveNames
+_0806F7A8: .4byte 0x020234cc
+_0806F7AC: .4byte gUnknown_0840F37C
+_0806F7B0: .4byte 0x03004b20
+_0806F7B4: .4byte sub_806F358
+ thumb_func_end sub_806F6B4
+
+ thumb_func_start sub_806F7B8
+sub_806F7B8: @ 806F7B8
+ push {lr}
+ lsls r0, 16
+ lsrs r2, r0, 16
+ movs r1, 0
+ ldr r3, _0806F7D4
+_0806F7C2:
+ adds r0, r1, 0
+ adds r0, 0x32
+ lsls r0, 1
+ adds r0, r3
+ ldrh r0, [r0]
+ cmp r0, r2
+ bne _0806F7D8
+ movs r0, 0x1
+ b _0806F7E4
+ .align 2, 0
+_0806F7D4: .4byte gUnknown_08376504
+_0806F7D8:
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x7
+ bls _0806F7C2
+ movs r0, 0
+_0806F7E4:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806F7B8
+
+ thumb_func_start sub_806F7E8
+sub_806F7E8: @ 806F7E8
+ push {r4-r6,lr}
+ adds r5, r1, 0
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r3, r0, 2
+ adds r3, r0
+ lsls r3, 3
+ ldr r0, _0806F898
+ adds r3, r0
+ movs r0, 0x14
+ ldrsh r1, [r3, r0]
+ str r1, [r5]
+ movs r4, 0x16
+ ldrsh r0, [r3, r4]
+ str r0, [r5, 0x4]
+ movs r4, 0x18
+ ldrsh r0, [r3, r4]
+ lsls r2, 24
+ asrs r2, 24
+ muls r0, r2
+ str r0, [r5, 0x8]
+ movs r0, 0x80
+ lsls r0, 1
+ str r0, [r5, 0x10]
+ ldr r6, _0806F89C
+ ldr r2, _0806F8A0
+ adds r0, r6, r2
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ bl sub_8046200
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r3, r2, 0
+ cmp r2, 0x2
+ bls _0806F83E
+ ldrb r0, [r5, 0xC]
+ movs r1, 0x20
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x4
+ orrs r1, r0
+ strb r1, [r5, 0xC]
+_0806F83E:
+ cmp r2, 0x2
+ bne _0806F850
+ ldrb r0, [r5, 0xC]
+ movs r1, 0x20
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x5
+ orrs r1, r0
+ strb r1, [r5, 0xC]
+_0806F850:
+ cmp r3, 0x1
+ bhi _0806F862
+ ldrb r0, [r5, 0xC]
+ movs r1, 0x20
+ negs r1, r1
+ ands r1, r0
+ movs r0, 0x6
+ orrs r1, r0
+ strb r1, [r5, 0xC]
+_0806F862:
+ ldr r4, _0806F8A4
+ bl battle_type_is_double
+ movs r2, 0x80
+ lsls r2, 5
+ adds r1, r6, r2
+ ldrb r2, [r1, 0x5]
+ lsls r2, 2
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r2, r1
+ adds r2, r4
+ ldr r2, [r2]
+ ldr r4, _0806F8A8
+ adds r1, r6, r4
+ adds r0, r5, 0
+ movs r3, 0
+ bl sub_80460C8
+ lsls r0, 16
+ asrs r0, 16
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806F898: .4byte 0x03004b28
+_0806F89C: .4byte 0x0201b000
+_0806F8A0: .4byte 0x00000282
+_0806F8A4: .4byte gUnknown_08376858
+_0806F8A8: .4byte 0x0000100c
+ thumb_func_end sub_806F7E8
+
+ thumb_func_start sub_806F8AC
+sub_806F8AC: @ 806F8AC
+ push {r4-r7,lr}
+ sub sp, 0x18
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0x1
+ negs r4, r4
+ adds r0, r6, 0
+ mov r1, sp
+ adds r2, r4, 0
+ bl sub_806F7E8
+ ldr r1, _0806F8F4
+ ldr r2, _0806F8F8
+ adds r5, r1, r2
+ strh r0, [r5]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, r4
+ beq _0806F8D4
+ b _0806F9F0
+_0806F8D4:
+ movs r0, 0x80
+ lsls r0, 5
+ adds r1, r0
+ movs r0, 0
+ str r0, [r1, 0xC]
+ ldr r0, [sp, 0x8]
+ negs r3, r0
+ ldr r2, [sp, 0x4]
+ adds r0, r3, r2
+ ldr r1, [sp]
+ cmp r0, r1
+ ble _0806F8FC
+ subs r1, r2
+ add r0, sp, 0x14
+ strh r1, [r0]
+ b _0806F900
+ .align 2, 0
+_0806F8F4: .4byte 0x0201b000
+_0806F8F8: .4byte 0x00000282
+_0806F8FC:
+ add r0, sp, 0x14
+ strh r3, [r0]
+_0806F900:
+ adds r5, r0, 0
+ ldr r1, _0806F940
+ ldrh r0, [r5]
+ negs r0, r0
+ str r0, [r1]
+ ldr r0, _0806F944
+ ldr r0, [r0]
+ ldr r1, _0806F948
+ bl GetMonNickname
+ ldr r0, _0806F94C
+ ldrh r1, [r5]
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r2, _0806F950
+ lsls r1, r6, 2
+ adds r0, r1, r6
+ lsls r0, 3
+ adds r0, r2
+ movs r2, 0x24
+ ldrsh r0, [r0, r2]
+ adds r7, r1, 0
+ cmp r0, 0
+ bne _0806F95C
+ ldr r0, _0806F954
+ ldr r1, _0806F958
+ bl StringExpandPlaceholders
+ b _0806F964
+ .align 2, 0
+_0806F940: .4byte 0x02024bec
+_0806F944: .4byte 0x0201c000
+_0806F948: .4byte 0x020231cc
+_0806F94C: .4byte 0x020232cc
+_0806F950: .4byte 0x03004b20
+_0806F954: .4byte 0x020234cc
+_0806F958: .4byte gUnknown_0840F4B5
+_0806F95C:
+ ldr r0, _0806F9D4
+ ldr r1, _0806F9D8
+ bl StringExpandPlaceholders
+_0806F964:
+ ldr r4, _0806F9DC
+ ldrb r0, [r4, 0x4]
+ ldrb r1, [r4, 0x5]
+ bl sub_806DDA0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [r4]
+ bl sub_806D84C
+ bl battle_type_is_double
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldrb r1, [r4, 0x5]
+ lsls r1, 1
+ adds r0, r1
+ ldr r1, _0806F9E0
+ adds r0, r1
+ movs r1, 0x7
+ bl task_pc_turn_off
+ ldr r0, _0806F9E4
+ adds r1, r4, r0
+ movs r0, 0x2
+ strb r0, [r1]
+ ldr r0, _0806F9D4
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, [sp, 0x4]
+ ldrh r0, [r5]
+ adds r0, r1
+ strh r0, [r5]
+ ldr r0, [r4]
+ movs r1, 0x39
+ adds r2, r5, 0
+ bl pokemon_setattr
+ ldrh r0, [r4, 0x6]
+ movs r1, 0x1
+ bl sub_80A9538
+ bl sub_8032638
+ ldr r1, _0806F9E8
+ adds r0, r7, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806F9EC
+ str r1, [r0]
+ b _0806FA10
+ .align 2, 0
+_0806F9D4: .4byte 0x020234cc
+_0806F9D8: .4byte gUnknown_0840F566
+_0806F9DC: .4byte 0x0201c000
+_0806F9E0: .4byte gUnknown_083769A8
+_0806F9E4: .4byte 0xfffff261
+_0806F9E8: .4byte 0x03004b20
+_0806F9EC: .4byte sub_806FB44
+_0806F9F0:
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r1, r2
+ ldrb r4, [r0, 0x5]
+ bl battle_type_is_double
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r5]
+ ldr r3, [sp]
+ lsls r3, 16
+ lsrs r3, 16
+ adds r0, r4, 0
+ bl sub_806E420
+_0806FA10:
+ add sp, 0x18
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806F8AC
+
+ thumb_func_start sub_806FA18
+sub_806FA18: @ 806FA18
+ push {r4-r7,lr}
+ sub sp, 0x14
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r5, 0
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_806F7E8
+ ldr r6, _0806FAC4
+ ldr r1, _0806FAC8
+ adds r7, r6, r1
+ strh r0, [r7]
+ lsls r0, 16
+ asrs r0, 16
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _0806FAE4
+ movs r0, 0x1
+ bl audio_play
+ movs r0, 0x80
+ lsls r0, 5
+ adds r4, r6, r0
+ movs r0, 0
+ str r0, [r4, 0xC]
+ ldr r2, _0806FACC
+ lsls r3, r5, 2
+ adds r3, r5
+ lsls r3, 3
+ adds r5, r3, r2
+ ldrh r0, [r5, 0x1E]
+ ldrh r1, [r5, 0x20]
+ subs r0, r1
+ strh r0, [r5, 0x1E]
+ ldr r0, [r4]
+ adds r2, r3
+ adds r2, 0x1E
+ movs r1, 0x39
+ bl pokemon_setattr
+ ldrb r0, [r4, 0x4]
+ ldr r1, _0806FAD0
+ adds r6, r1
+ ldrb r1, [r6, 0x1]
+ bl sub_806DDA0
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, [r4]
+ bl sub_806D84C
+ ldr r2, _0806FAD4
+ ldrb r1, [r6, 0x2]
+ lsls r0, r1, 4
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrh r0, [r0, 0x2E]
+ strb r0, [r4, 0x5]
+ ldrb r1, [r4, 0x5]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _0806FAD8
+ adds r0, r1
+ str r0, [r4]
+ movs r1, 0x3A
+ bl PokemonGetField
+ strh r0, [r5, 0x1C]
+ ldr r0, [r4]
+ movs r1, 0x39
+ bl PokemonGetField
+ strh r0, [r5, 0x1E]
+ ldr r0, _0806FADC
+ str r0, [r4, 0xC]
+ ldr r0, [r4, 0x10]
+ str r0, [r4, 0x14]
+ ldr r0, _0806FAE0
+ str r0, [r5]
+ ldrh r0, [r5, 0x1E]
+ strh r0, [r7]
+ b _0806FB04
+ .align 2, 0
+_0806FAC4: .4byte 0x0201b000
+_0806FAC8: .4byte 0x00000282
+_0806FACC: .4byte 0x03004b20
+_0806FAD0: .4byte 0xfffe6000
+_0806FAD4: .4byte 0x02020004
+_0806FAD8: .4byte 0x03004360
+_0806FADC: .4byte 0xffff8000
+_0806FAE0: .4byte sub_806F8AC
+_0806FAE4:
+ movs r1, 0x80
+ lsls r1, 5
+ adds r0, r6, r1
+ ldrb r4, [r0, 0x5]
+ bl battle_type_is_double
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldrh r2, [r7]
+ ldr r3, [sp]
+ lsls r3, 16
+ lsrs r3, 16
+ adds r0, r4, 0
+ bl sub_806E420
+_0806FB04:
+ add sp, 0x14
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806FA18
+
+ thumb_func_start sub_806FB0C
+sub_806FB0C: @ 806FB0C
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806FB38
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806FB32
+ ldr r3, _0806FB3C
+ ldr r2, _0806FB40
+ ldrb r1, [r2, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ ldr r1, [r2, 0x10]
+ str r1, [r0]
+ adds r0, r4, 0
+ bl DestroyTask
+_0806FB32:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806FB38: .4byte 0x0202e8f6
+_0806FB3C: .4byte 0x03004b20
+_0806FB40: .4byte 0x0201c000
+ thumb_func_end sub_806FB0C
+
+ thumb_func_start sub_806FB44
+sub_806FB44: @ 806FB44
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0806FB70
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0806FB6A
+ ldr r3, _0806FB74
+ ldr r2, _0806FB78
+ ldrb r1, [r2, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r3
+ ldr r1, [r2, 0x14]
+ str r1, [r0]
+ adds r0, r4, 0
+ bl DestroyTask
+_0806FB6A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806FB70: .4byte 0x0202e8f6
+_0806FB74: .4byte 0x03004b20
+_0806FB78: .4byte 0x0201c000
+ thumb_func_end sub_806FB44
+
+ thumb_func_start sub_806FB7C
+sub_806FB7C: @ 806FB7C
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _0806FB90
+ ldr r0, _0806FB8C
+ b _0806FB9A
+ .align 2, 0
+_0806FB8C: .4byte 0x02028daa
+_0806FB90:
+ ldr r1, _0806FBA8
+ subs r0, 0xD
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+_0806FB9A:
+ ldrb r1, [r0, 0x4]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _0806FBAC
+ movs r0, 0
+ b _0806FBAE
+ .align 2, 0
+_0806FBA8: .4byte gItemEffectTable
+_0806FBAC:
+ movs r0, 0x1
+_0806FBAE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806FB7C
+
+ thumb_func_start sub_806FBB4
+sub_806FBB4: @ 806FBB4
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ lsls r4, r1, 24
+ lsrs r4, 24
+ adds r0, r4, 0
+ bl sub_806E168
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_806E2C0
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_806FBB4
+
+ thumb_func_start GetMedicineItemEffectMessage
+GetMedicineItemEffectMessage: @ 806FBD0
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ bl sub_8070E48
+ lsls r0, 24
+ lsrs r0, 24
+ subs r0, 0x3
+ cmp r0, 0x12
+ bls _0806FBE6
+ b _0806FD7C
+_0806FBE6:
+ lsls r0, 2
+ ldr r1, _0806FBF0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0806FBF0: .4byte _0806FBF4
+ .align 2, 0
+_0806FBF4:
+ .4byte _0806FC40
+ .4byte _0806FC54
+ .4byte _0806FC68
+ .4byte _0806FC7C
+ .4byte _0806FC90
+ .4byte _0806FCA4
+ .4byte _0806FCB8
+ .4byte _0806FD7C
+ .4byte _0806FCCC
+ .4byte _0806FCF0
+ .4byte _0806FCE0
+ .4byte _0806FD20
+ .4byte _0806FD30
+ .4byte _0806FD10
+ .4byte _0806FD00
+ .4byte _0806FD7C
+ .4byte _0806FD54
+ .4byte _0806FD54
+ .4byte _0806FD68
+_0806FC40:
+ ldr r0, _0806FC4C
+ ldr r1, _0806FC50
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FC4C: .4byte 0x020234cc
+_0806FC50: .4byte gUnknown_0840F4DA
+_0806FC54:
+ ldr r0, _0806FC60
+ ldr r1, _0806FC64
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FC60: .4byte 0x020234cc
+_0806FC64: .4byte gUnknown_0840F518
+_0806FC68:
+ ldr r0, _0806FC74
+ ldr r1, _0806FC78
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FC74: .4byte 0x020234cc
+_0806FC78: .4byte gUnknown_0840F526
+_0806FC7C:
+ ldr r0, _0806FC88
+ ldr r1, _0806FC8C
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FC88: .4byte 0x020234cc
+_0806FC8C: .4byte gUnknown_0840F53E
+_0806FC90:
+ ldr r0, _0806FC9C
+ ldr r1, _0806FCA0
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FC9C: .4byte 0x020234cc
+_0806FCA0: .4byte gUnknown_0840F4FB
+_0806FCA4:
+ ldr r0, _0806FCB0
+ ldr r1, _0806FCB4
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FCB0: .4byte 0x020234cc
+_0806FCB4: .4byte gUnknown_0840F5D7
+_0806FCB8:
+ ldr r0, _0806FCC4
+ ldr r1, _0806FCC8
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FCC4: .4byte 0x020234cc
+_0806FCC8: .4byte gUnknown_0840F5FA
+_0806FCCC:
+ ldr r0, _0806FCD8
+ ldr r1, _0806FCDC
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FCD8: .4byte 0x020234cc
+_0806FCDC: .4byte gUnknown_0840F57C
+_0806FCE0:
+ ldr r0, _0806FCE8
+ ldr r1, _0806FCEC
+ b _0806FD34
+ .align 2, 0
+_0806FCE8: .4byte 0x020232cc
+_0806FCEC: .4byte gUnknown_0840EF72
+_0806FCF0:
+ ldr r0, _0806FCF8
+ ldr r1, _0806FCFC
+ b _0806FD34
+ .align 2, 0
+_0806FCF8: .4byte 0x020232cc
+_0806FCFC: .4byte gUnknown_0840F7C6
+_0806FD00:
+ ldr r0, _0806FD08
+ ldr r1, _0806FD0C
+ b _0806FD34
+ .align 2, 0
+_0806FD08: .4byte 0x020232cc
+_0806FD0C: .4byte gUnknown_0840F7CD
+_0806FD10:
+ ldr r0, _0806FD18
+ ldr r1, _0806FD1C
+ b _0806FD34
+ .align 2, 0
+_0806FD18: .4byte 0x020232cc
+_0806FD1C: .4byte gUnknown_0840F7E5
+_0806FD20:
+ ldr r0, _0806FD28
+ ldr r1, _0806FD2C
+ b _0806FD34
+ .align 2, 0
+_0806FD28: .4byte 0x020232cc
+_0806FD2C: .4byte gUnknown_0840EF75
+_0806FD30:
+ ldr r0, _0806FD44
+ ldr r1, _0806FD48
+_0806FD34:
+ bl StringCopy
+ ldr r0, _0806FD4C
+ ldr r1, _0806FD50
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FD44: .4byte 0x020232cc
+_0806FD48: .4byte gUnknown_0840EF7D
+_0806FD4C: .4byte 0x020234cc
+_0806FD50: .4byte gUnknown_0840F5C1
+_0806FD54:
+ ldr r0, _0806FD60
+ ldr r1, _0806FD64
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FD60: .4byte 0x020234cc
+_0806FD64: .4byte gUnknown_0840F591
+_0806FD68:
+ ldr r0, _0806FD74
+ ldr r1, _0806FD78
+ bl StringExpandPlaceholders
+ b _0806FD84
+ .align 2, 0
+_0806FD74: .4byte 0x020234cc
+_0806FD78: .4byte gUnknown_0840F553
+_0806FD7C:
+ ldr r0, _0806FD88
+ ldr r1, _0806FD8C
+ bl StringExpandPlaceholders
+_0806FD84:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0806FD88: .4byte 0x020234cc
+_0806FD8C: .4byte gUnknown_0840EF85
+ thumb_func_end GetMedicineItemEffectMessage
+
+ thumb_func_start sub_806FD90
+sub_806FD90: @ 806FD90
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r0, r1, 16
+ lsrs r0, 16
+ bl sub_8070E48
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xD
+ bne _0806FDBC
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl PokemonGetField
+ ldr r1, _0806FDB8
+ cmp r0, r1
+ bne _0806FDBC
+ movs r0, 0x1
+ b _0806FDBE
+ .align 2, 0
+_0806FDB8: .4byte 0x0000012f
+_0806FDBC:
+ movs r0, 0
+_0806FDBE:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_806FD90
+
+ thumb_func_start ExecuteTableBasedItemEffect__
+ExecuteTableBasedItemEffect__: @ 806FDC4
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r3, r0, 24
+ lsls r1, 16
+ lsrs r5, r1, 16
+ lsls r2, 24
+ lsrs r6, r2, 24
+ ldr r0, _0806FDF0
+ ldr r1, _0806FDF4
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _0806FDFC
+ movs r0, 0x64
+ muls r0, r3
+ ldr r1, _0806FDF8
+ adds r0, r1
+ adds r1, r5, 0
+ adds r2, r3, 0
+ b _0806FE16
+ .align 2, 0
+_0806FDF0: .4byte 0x03001770
+_0806FDF4: .4byte 0x0000043d
+_0806FDF8: .4byte 0x03004360
+_0806FDFC:
+ movs r0, 0x64
+ adds r4, r3, 0
+ muls r4, r0
+ ldr r0, _0806FE28
+ adds r4, r0
+ adds r0, r3, 0
+ bl sub_8094C20
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ adds r0, r4, 0
+ adds r1, r5, 0
+_0806FE16:
+ adds r3, r6, 0
+ bl ExecuteTableBasedItemEffect_
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0806FE28: .4byte 0x03004360
+ thumb_func_end ExecuteTableBasedItemEffect__
+
+ thumb_func_start sub_806FE2C
+sub_806FE2C: @ 806FE2C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ adds r4, r0, 0
+ adds r5, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 16
+ lsrs r6, r1, 16
+ movs r0, 0
+ mov r9, r0
+ ldr r1, _0806FED4
+ mov r10, r1
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ add r1, r10
+ ldr r0, _0806FED8
+ str r0, [r1]
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_806E8D0
+ ldr r5, _0806FEDC
+ ldr r0, [r5]
+ adds r1, r6, 0
+ bl sub_806FD90
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806FEE0
+ adds r0, r6, 0
+ bl sub_806FB7C
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r2, r7, 2
+ mov r8, r2
+ cmp r0, 0x1
+ bne _0806FEC2
+ ldr r0, [r5]
+ movs r1, 0x3A
+ bl PokemonGetField
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ mov r2, r10
+ adds r4, r1, r2
+ strh r0, [r4, 0x1C]
+ ldr r0, [r5]
+ movs r1, 0x39
+ bl PokemonGetField
+ strh r0, [r4, 0x1E]
+ movs r3, 0x1C
+ ldrsh r1, [r4, r3]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r1, r0
+ bne _0806FEC2
+ movs r0, 0
+ mov r9, r0
+ mov r1, r9
+ strh r1, [r4, 0x1C]
+ strh r1, [r4, 0x1E]
+_0806FEC2:
+ ldr r0, _0806FEDC
+ ldrb r0, [r0, 0x5]
+ adds r1, r6, 0
+ movs r2, 0
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ lsrs r0, 24
+ b _0806FEE6
+ .align 2, 0
+_0806FED4: .4byte 0x03004b20
+_0806FED8: .4byte TaskDummy
+_0806FEDC: .4byte 0x0201c000
+_0806FEE0:
+ movs r0, 0x1
+ lsls r2, r7, 2
+ mov r8, r2
+_0806FEE6:
+ cmp r0, 0
+ beq _0806FF14
+ ldr r1, _0806FF08
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x5
+ bl audio_play
+ ldr r0, _0806FF0C
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _0806FF10
+ mov r3, r8
+ adds r0, r3, r7
+ b _08070002
+ .align 2, 0
+_0806FF08: .4byte 0x0202e8f4
+_0806FF0C: .4byte gUnknown_0840EF85
+_0806FF10: .4byte 0x03004b20
+_0806FF14:
+ ldr r1, _0806FF30
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r0, r6, 0
+ bl IsBlueYellowRedFlute
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806FF34
+ movs r0, 0x1
+ bl audio_play
+ b _0806FF3A
+ .align 2, 0
+_0806FF30: .4byte 0x0202e8f4
+_0806FF34:
+ movs r0, 0x75
+ bl audio_play
+_0806FF3A:
+ ldr r4, _0806FF88
+ ldr r0, [r4]
+ bl sub_80A1CD8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ beq _0806FF4E
+ cmp r0, 0
+ bne _0806FF56
+_0806FF4E:
+ ldr r0, [r4]
+ ldrb r1, [r4, 0x5]
+ bl sub_806FBB4
+_0806FF56:
+ mov r0, r9
+ cmp r0, 0x1
+ bne _0806FFC8
+ ldr r4, _0806FF88
+ ldr r0, [r4]
+ movs r1, 0x39
+ bl PokemonGetField
+ ldr r2, _0806FF8C
+ mov r3, r8
+ adds r1, r3, r7
+ lsls r1, 3
+ adds r2, r1, r2
+ ldrh r1, [r2, 0x1E]
+ subs r0, r1
+ strh r0, [r2, 0x20]
+ ldr r0, _0806FF90
+ str r0, [r4, 0xC]
+ movs r1, 0x1E
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ bne _0806FF94
+ mov r3, r9
+ strh r3, [r2, 0x24]
+ b _0806FF98
+ .align 2, 0
+_0806FF88: .4byte 0x0201c000
+_0806FF8C: .4byte 0x03004b20
+_0806FF90: .4byte 0xffff8000
+_0806FF94:
+ movs r0, 0
+ strh r0, [r2, 0x24]
+_0806FF98:
+ ldr r2, _0806FFB8
+ ldr r0, [r2, 0x10]
+ str r0, [r2, 0x14]
+ ldr r1, _0806FFBC
+ mov r3, r8
+ adds r0, r3, r7
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _0806FFC0
+ str r1, [r0]
+ ldrh r0, [r0, 0x1E]
+ ldr r1, _0806FFC4
+ adds r2, r1
+ strh r0, [r2]
+ b _0807000A
+ .align 2, 0
+_0806FFB8: .4byte 0x0201c000
+_0806FFBC: .4byte 0x03004b20
+_0806FFC0: .4byte sub_806F8AC
+_0806FFC4: .4byte 0xfffff282
+_0806FFC8:
+ ldr r4, _08070018
+ ldr r0, [r4]
+ ldr r1, _0807001C
+ bl GetMonNickname
+ adds r0, r6, 0
+ bl IsBlueYellowRedFlute
+ lsls r0, 24
+ cmp r0, 0
+ bne _0806FFE6
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_80A9538
+_0806FFE6:
+ adds r0, r6, 0
+ bl GetMedicineItemEffectMessage
+ ldrb r0, [r4, 0x5]
+ ldr r1, [r4]
+ bl sub_806E07C
+ ldr r0, _08070020
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _08070024
+ mov r2, r8
+ adds r0, r2, r7
+_08070002:
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070028
+ str r1, [r0]
+_0807000A:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070018: .4byte 0x0201c000
+_0807001C: .4byte 0x020231cc
+_08070020: .4byte 0x020234cc
+_08070024: .4byte 0x03004b20
+_08070028: .4byte sub_806FB0C
+ thumb_func_end sub_806FE2C
+
+ thumb_func_start IsBlueYellowRedFlute
+IsBlueYellowRedFlute: @ 807002C
+ push {lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0x27
+ beq _0807003E
+ cmp r0, 0x29
+ beq _0807003E
+ cmp r0, 0x28
+ bne _08070042
+_0807003E:
+ movs r0, 0x1
+ b _08070044
+_08070042:
+ movs r0, 0
+_08070044:
+ pop {r1}
+ bx r1
+ thumb_func_end IsBlueYellowRedFlute
+
+ thumb_func_start sub_8070048
+sub_8070048: @ 8070048
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r3, _08070078
+ str r2, [r3, 0x10]
+ movs r4, 0
+ strb r0, [r3, 0x4]
+ movs r2, 0
+ strh r1, [r3, 0x6]
+ strb r2, [r3, 0x5]
+ ldr r1, _0807007C
+ str r1, [r3, 0x14]
+ ldr r2, _08070080
+ adds r1, r3, r2
+ strh r4, [r1]
+ ldr r1, _08070084
+ adds r3, r1
+ strh r4, [r3]
+ bl sub_8070088
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070078: .4byte 0x0201c000
+_0807007C: .4byte sub_80701DC
+_08070080: .4byte 0xfffff27e
+_08070084: .4byte 0xfffff280
+ thumb_func_end sub_8070048
+
+ thumb_func_start sub_8070088
+sub_8070088: @ 8070088
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _08070120
+ mov r10, r1
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ mov r2, r10
+ adds r7, r1, r2
+ ldr r5, _08070124
+ str r5, [r7]
+ ldr r4, _08070128
+ ldrb r0, [r4, 0x5]
+ movs r1, 0x64
+ mov r9, r1
+ mov r2, r9
+ muls r2, r0
+ adds r0, r2, 0
+ ldr r1, _0807012C
+ mov r8, r1
+ add r0, r8
+ movs r1, 0xB
+ bl PokemonGetField
+ cmp r0, 0
+ beq _08070118
+ adds r0, r5, 0
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ str r0, [sp]
+ mov r0, r10
+ adds r0, 0x8
+ ldr r2, [sp]
+ adds r6, r2, r0
+ ldrb r0, [r4, 0x5]
+ mov r1, r9
+ muls r1, r0
+ adds r0, r1, 0
+ add r0, r8
+ str r0, [r4]
+ movs r1, 0x3A
+ bl PokemonGetField
+ strh r0, [r6, 0x14]
+ ldr r0, [r4]
+ movs r1, 0x39
+ bl PokemonGetField
+ strh r0, [r6, 0x16]
+ ldrb r0, [r4, 0x5]
+ ldrh r1, [r4, 0x6]
+ movs r2, 0
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ cmp r0, 0
+ beq _08070134
+ adds r0, r5, 0
+ bl DestroyTask
+_08070118:
+ ldr r0, _08070130
+ str r0, [r7]
+ b _080701B0
+ .align 2, 0
+_08070120: .4byte 0x03004b20
+_08070124: .4byte TaskDummy
+_08070128: .4byte 0x0201c000
+_0807012C: .4byte 0x03004360
+_08070130: .4byte sub_80701DC
+_08070134:
+ ldr r1, _080701C0
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x3
+ movs r1, 0xE
+ movs r2, 0x1A
+ movs r3, 0x13
+ bl Reset
+ movs r0, 0x1
+ bl audio_play
+ ldr r0, [r4]
+ ldrb r1, [r4, 0x5]
+ bl sub_806FBB4
+ bl battle_type_is_double
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldrb r1, [r4, 0x5]
+ lsls r1, 1
+ adds r0, r1
+ ldr r1, _080701C4
+ adds r0, r1
+ movs r1, 0x9
+ bl task_pc_turn_off
+ ldr r2, _080701C8
+ adds r1, r4, r2
+ movs r0, 0x2
+ strb r0, [r1]
+ ldr r0, [r4]
+ movs r1, 0x39
+ bl PokemonGetField
+ ldrh r1, [r6, 0x16]
+ subs r0, r1
+ strh r0, [r6, 0x18]
+ movs r0, 0x1
+ strh r0, [r6, 0x1C]
+ ldr r1, _080701CC
+ adds r0, r4, r1
+ movs r1, 0x1
+ strh r1, [r0]
+ ldr r2, _080701D0
+ adds r0, r4, r2
+ strh r1, [r0]
+ ldrh r1, [r6, 0x16]
+ adds r2, 0x2
+ adds r0, r4, r2
+ strh r1, [r0]
+ ldr r0, _080701D4
+ str r0, [r4, 0xC]
+ ldr r1, [sp]
+ add r1, r10
+ ldr r0, _080701D8
+ str r0, [r1]
+_080701B0:
+ 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
+_080701C0: .4byte 0x0202e8f4
+_080701C4: .4byte gUnknown_083769A8
+_080701C8: .4byte 0xfffff261
+_080701CC: .4byte 0xfffff27e
+_080701D0: .4byte 0xfffff280
+_080701D4: .4byte 0xffff8000
+_080701D8: .4byte sub_806F8AC
+ thumb_func_end sub_8070088
+
+ thumb_func_start sub_80701DC
+sub_80701DC: @ 80701DC
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ ldr r6, _08070280
+ ldr r0, _08070284
+ adds r7, r6, r0
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ cmp r0, 0x1
+ bne _0807023E
+ movs r0, 0x80
+ lsls r0, 5
+ adds r4, r6, r0
+ ldrh r0, [r4, 0x6]
+ movs r1, 0x1
+ bl sub_80A9424
+ ldrb r1, [r4, 0x5]
+ movs r0, 0x64
+ muls r0, r1
+ ldr r1, _08070288
+ adds r0, r1
+ movs r1, 0xB
+ bl PokemonGetField
+ cmp r0, 0
+ beq _0807023A
+ bl battle_type_is_double
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ ldrb r1, [r4, 0x5]
+ lsls r1, 1
+ adds r0, r1
+ ldr r1, _0807028C
+ adds r0, r1
+ movs r1, 0x3
+ bl task_pc_turn_off
+ ldr r0, _08070290
+ adds r1, r6, r0
+ movs r0, 0x2
+ strb r0, [r1]
+_0807023A:
+ movs r0, 0
+ strh r0, [r7]
+_0807023E:
+ ldr r4, _08070294
+ ldrb r0, [r4, 0x5]
+ adds r0, 0x1
+ strb r0, [r4, 0x5]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _080702D8
+ ldr r1, _08070298
+ movs r0, 0
+ strb r0, [r1]
+ ldr r1, _0807029C
+ adds r0, r4, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ bne _080702B0
+ ldr r1, _080702A0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _080702A4
+ str r1, [r0]
+ ldr r0, _080702A8
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _080702AC
+ movs r1, 0x8
+ bl CreateTask
+ b _080702C6
+ .align 2, 0
+_08070280: .4byte 0x0201b000
+_08070284: .4byte 0x0000027e
+_08070288: .4byte 0x03004360
+_0807028C: .4byte gUnknown_083769A8
+_08070290: .4byte 0x00000261
+_08070294: .4byte 0x0201c000
+_08070298: .4byte 0x0202e8f4
+_0807029C: .4byte 0xfffff280
+_080702A0: .4byte 0x03004b20
+_080702A4: .4byte TaskDummy
+_080702A8: .4byte gUnknown_0840EF85
+_080702AC: .4byte sub_806FB0C
+_080702B0:
+ ldrh r0, [r4, 0x6]
+ movs r1, 0x1
+ bl sub_80A9538
+ ldr r1, _080702D0
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, [r4, 0x10]
+ str r1, [r0]
+_080702C6:
+ ldr r1, _080702D4
+ movs r0, 0
+ strb r0, [r1]
+ b _080702DE
+ .align 2, 0
+_080702D0: .4byte 0x03004b20
+_080702D4: .4byte 0x03005ce0
+_080702D8:
+ adds r0, r5, 0
+ bl sub_8070088
+_080702DE:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80701DC
+
+ thumb_func_start sub_80702E4
+sub_80702E4: @ 80702E4
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ movs r6, 0
+ movs r0, 0x13
+ movs r1, 0xA
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl DrawDefaultWindow
+ movs r5, 0
+ movs r0, 0x64
+ adds r7, r4, 0
+ muls r7, r0
+ ldr r0, _0807036C
+ mov r8, r0
+_0807030C:
+ adds r1, r5, 0
+ adds r1, 0xD
+ mov r2, r8
+ adds r0, r7, r2
+ bl PokemonGetField
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ movs r0, 0xD
+ muls r0, r4
+ ldr r1, _08070370
+ adds r0, r1
+ lsls r2, r5, 25
+ movs r1, 0xB0
+ lsls r1, 20
+ adds r2, r1
+ lsrs r2, 24
+ movs r1, 0x14
+ bl Print
+ cmp r4, 0
+ beq _08070340
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08070340:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _0807030C
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0x9
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x14
+ movs r2, 0xB
+ adds r3, r6, 0
+ bl InitMenu
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807036C: .4byte 0x03004360
+_08070370: .4byte gMoveNames
+ thumb_func_end sub_80702E4
+
+ thumb_func_start sub_8070374
+sub_8070374: @ 8070374
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r2, r0, 24
+ adds r4, r2, 0
+ ldr r0, _08070398
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _0807039C
+ movs r0, 0x5
+ bl audio_play
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _080703E4
+ .align 2, 0
+_08070398: .4byte 0x03001770
+_0807039C:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080703B2
+ movs r0, 0x5
+ bl audio_play
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _080703E4
+_080703B2:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080703CC
+ ldr r0, _080703C8
+ ldr r1, [r0]
+ adds r0, r2, 0
+ bl _call_via_r1
+ b _080703E4
+ .align 2, 0
+_080703C8: .4byte gUnknown_08376B54
+_080703CC:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080703E4
+ movs r0, 0x5
+ bl audio_play
+ ldr r0, _080703EC
+ ldr r1, [r0, 0x4]
+ adds r0, r4, 0
+ bl _call_via_r1
+_080703E4:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080703EC: .4byte gUnknown_08376B54
+ thumb_func_end sub_8070374
+
+ thumb_func_start dp05_ether
+dp05_ether: @ 80703F0
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r9, r2
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 16
+ lsrs r5, r1, 16
+ cmp r5, 0xAF
+ bne _08070410
+ ldr r0, _0807040C
+ b _0807041C
+ .align 2, 0
+_0807040C: .4byte 0x02028daa
+_08070410:
+ ldr r1, _08070464
+ adds r0, r5, 0
+ subs r0, 0xD
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+_0807041C:
+ mov r8, r0
+ ldr r7, _08070468
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r7
+ ldr r0, _0807046C
+ str r0, [r1]
+ movs r1, 0x5
+ bl CreateTask
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r0, r6, 0
+ adds r1, r5, 0
+ mov r2, r9
+ bl sub_806E8D0
+ mov r0, r8
+ ldrb r1, [r0, 0x4]
+ movs r0, 0x10
+ ands r0, r1
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _08070470
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r7
+ strh r1, [r0, 0x1E]
+ adds r0, r4, 0
+ bl ether_effect_related
+ b _08070498
+ .align 2, 0
+_08070464: .4byte gItemEffectTable
+_08070468: .4byte 0x03004b20
+_0807046C: .4byte TaskDummy
+_08070470:
+ movs r0, 0x5
+ bl audio_play
+ movs r0, 0xA
+ movs r1, 0x3
+ bl sub_806D538
+ ldr r0, _080704A4
+ ldrb r0, [r0, 0x5]
+ bl sub_80702E4
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r7
+ ldr r1, _080704A8
+ str r1, [r0]
+ ldr r1, _080704AC
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+_08070498:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080704A4: .4byte 0x0201c000
+_080704A8: .4byte sub_8070374
+_080704AC: .4byte 0x03001770
+ thumb_func_end dp05_ether
+
+ thumb_func_start ether_effect_related_2
+ether_effect_related_2: @ 80704B0
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0x13
+ movs r1, 0xA
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl Reset
+ bl sub_806D5A4
+ bl GetMenuCursorPos
+ ldr r2, _080704EC
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r2
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r1, 0x1E]
+ adds r0, r4, 0
+ bl ether_effect_related
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080704EC: .4byte 0x03004b20
+ thumb_func_end ether_effect_related_2
+
+ thumb_func_start sub_80704F0
+sub_80704F0: @ 80704F0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8072DEC
+ movs r0, 0x13
+ movs r1, 0xA
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl Reset
+ ldr r0, _08070528
+ ldr r1, _0807052C
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0807053C
+ ldr r2, _08070530
+ ldr r0, _08070534
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _08070538
+ b _0807054C
+ .align 2, 0
+_08070528: .4byte 0x03001770
+_0807052C: .4byte 0x0000043d
+_08070530: .4byte 0x03004b20
+_08070534: .4byte 0x0201c000
+_08070538: .4byte sub_8095118
+_0807053C:
+ ldr r2, _08070564
+ ldr r0, _08070568
+ ldrb r1, [r0, 0x4]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldr r1, _0807056C
+_0807054C:
+ str r1, [r0]
+ movs r0, 0x3
+ movs r1, 0
+ bl sub_806D538
+ adds r0, r4, 0
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070564: .4byte 0x03004b20
+_08070568: .4byte 0x0201c000
+_0807056C: .4byte sub_808B0C0
+ thumb_func_end sub_80704F0
+
+ thumb_func_start ether_effect_related
+ether_effect_related: @ 8070570
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r5, 0
+ ldr r6, _080705A8
+ ldrb r0, [r6, 0x5]
+ ldrh r1, [r6, 0x6]
+ ldr r3, _080705AC
+ lsls r2, r4, 2
+ adds r2, r4
+ lsls r2, 3
+ adds r7, r2, r3
+ ldrb r2, [r7, 0x1E]
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ cmp r0, 0
+ beq _080705B8
+ ldr r0, _080705B0
+ strb r5, [r0]
+ movs r0, 0x5
+ bl audio_play
+ ldr r0, _080705B4
+ movs r1, 0x1
+ bl sub_806E834
+ b _080705F8
+ .align 2, 0
+_080705A8: .4byte 0x0201c000
+_080705AC: .4byte 0x03004b20
+_080705B0: .4byte 0x0202e8f4
+_080705B4: .4byte gUnknown_0840EF85
+_080705B8:
+ ldr r1, _0807060C
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x1
+ bl audio_play
+ ldrh r0, [r6, 0x6]
+ movs r1, 0x1
+ bl sub_80A9538
+ ldr r0, [r6]
+ movs r2, 0x1E
+ ldrsh r1, [r7, r2]
+ adds r1, 0xD
+ bl PokemonGetField
+ lsls r0, 16
+ lsrs r5, r0, 16
+ ldr r0, _08070610
+ movs r1, 0xD
+ muls r1, r5
+ ldr r2, _08070614
+ adds r1, r2
+ bl StringCopy
+ ldrh r0, [r6, 0x6]
+ bl GetMedicineItemEffectMessage
+ ldr r0, _08070618
+ movs r1, 0x1
+ bl sub_806E834
+_080705F8:
+ ldr r0, _0807061C
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08070620
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807060C: .4byte 0x0202e8f4
+_08070610: .4byte 0x020231cc
+_08070614: .4byte gMoveNames
+_08070618: .4byte 0x020234cc
+_0807061C: .4byte 0x03004b20
+_08070620: .4byte sub_806FB0C
+ thumb_func_end ether_effect_related
+
+ thumb_func_start dp05_pp_up
+dp05_pp_up: @ 8070624
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r1, 16
+ ldr r4, _0807066C
+ lsls r3, r0, 2
+ adds r3, r0
+ lsls r3, 3
+ adds r3, r4
+ ldr r4, _08070670
+ str r4, [r3]
+ bl sub_806E8D0
+ movs r0, 0x5
+ bl audio_play
+ movs r0, 0xB
+ movs r1, 0x3
+ bl sub_806D538
+ ldr r0, _08070674
+ ldrb r0, [r0, 0x5]
+ bl sub_80702E4
+ ldr r0, _08070678
+ movs r1, 0x5
+ bl CreateTask
+ ldr r1, _0807067C
+ movs r0, 0
+ strh r0, [r1, 0x2E]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807066C: .4byte 0x03004b20
+_08070670: .4byte TaskDummy
+_08070674: .4byte 0x0201c000
+_08070678: .4byte sub_8070374
+_0807067C: .4byte 0x03001770
+ thumb_func_end dp05_pp_up
+
+ thumb_func_start sub_8070680
+sub_8070680: @ 8070680
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, 16
+ lsrs r6, r1, 16
+ ldr r3, _080706E0
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r3
+ ldr r3, _080706E4
+ str r3, [r1]
+ adds r1, r6, 0
+ bl sub_806E8D0
+ ldr r5, _080706E8
+ ldr r0, [r5]
+ movs r1, 0x38
+ bl PokemonGetField
+ cmp r0, 0x64
+ beq _080706F4
+ movs r4, 0
+ ldr r0, _080706EC
+ adds r7, r5, r0
+_080706B2:
+ ldr r0, [r5]
+ ldr r1, _080706F0
+ adds r1, r4, r1
+ ldrb r1, [r1]
+ bl PokemonGetField
+ lsls r1, r4, 1
+ adds r1, r7, r1
+ strh r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x5
+ bls _080706B2
+ ldr r0, _080706E8
+ ldrb r0, [r0, 0x5]
+ adds r1, r6, 0
+ movs r2, 0
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ lsrs r0, 24
+ b _080706F6
+ .align 2, 0
+_080706E0: .4byte 0x03004b20
+_080706E4: .4byte TaskDummy
+_080706E8: .4byte 0x0201c000
+_080706EC: .4byte 0xfffff264
+_080706F0: .4byte gUnknown_08376D1C
+_080706F4:
+ movs r0, 0x1
+_080706F6:
+ cmp r0, 0
+ beq _08070724
+ ldr r1, _08070718
+ movs r0, 0
+ strb r0, [r1]
+ movs r0, 0x5
+ bl audio_play
+ ldr r0, _0807071C
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _08070720
+ movs r1, 0x5
+ bl CreateTask
+ b _0807077C
+ .align 2, 0
+_08070718: .4byte 0x0202e8f4
+_0807071C: .4byte gUnknown_0840EF85
+_08070720: .4byte sub_806FB0C
+_08070724:
+ ldr r1, _08070784
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0
+ bl pause_music_for_sound_maybe
+ ldr r4, _08070788
+ ldrb r0, [r4, 0x5]
+ ldr r1, [r4]
+ bl sub_8070A20
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_80A9538
+ ldr r0, [r4]
+ ldr r1, _0807078C
+ bl GetMonNickname
+ ldr r0, [r4]
+ movs r1, 0x38
+ bl PokemonGetField
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _08070790
+ movs r2, 0
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ ldr r4, _08070794
+ ldr r1, _08070798
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _0807079C
+ movs r1, 0x5
+ bl CreateTask
+_0807077C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070784: .4byte 0x0202e8f4
+_08070788: .4byte 0x0201c000
+_0807078C: .4byte 0x020231cc
+_08070790: .4byte 0x020232cc
+_08070794: .4byte 0x020234cc
+_08070798: .4byte gUnknown_0840F5A6
+_0807079C: .4byte sub_80707A0
+ thumb_func_end sub_8070680
+
+ thumb_func_start sub_80707A0
+sub_80707A0: @ 80707A0
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ movs r0, 0
+ bl ducking_tick
+ lsls r0, 24
+ cmp r0, 0
+ beq _080707E8
+ ldr r0, _080707F0
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080707E8
+ ldr r0, _080707F4
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _080707CE
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _080707E8
+_080707CE:
+ movs r0, 0x5
+ bl audio_play
+ adds r0, r4, 0
+ bl sub_8070848
+ ldr r0, _080707F8
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _080707FC
+ str r0, [r1]
+_080707E8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080707F0: .4byte 0x0202e8f6
+_080707F4: .4byte 0x03001770
+_080707F8: .4byte 0x03004b20
+_080707FC: .4byte sub_8070800
+ thumb_func_end sub_80707A0
+
+ thumb_func_start sub_8070800
+sub_8070800: @ 8070800
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ ldr r0, _0807083C
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0807081A
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08070834
+_0807081A:
+ movs r0, 0x5
+ bl audio_play
+ adds r0, r4, 0
+ bl sub_8070968
+ ldr r0, _08070840
+ lsls r1, r4, 2
+ adds r1, r4
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08070844
+ str r0, [r1]
+_08070834:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807083C: .4byte 0x03001770
+_08070840: .4byte 0x03004b20
+_08070844: .4byte sub_8070AC8
+ thumb_func_end sub_8070800
+
+ thumb_func_start sub_8070848
+sub_8070848: @ 8070848
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r0, 0xB
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x7
+ bl DrawDefaultWindow
+ movs r7, 0
+ ldr r0, _080708E4
+ mov r10, r0
+_08070864:
+ ldr r1, _080708E8
+ ldr r0, [r1]
+ ldr r1, _080708EC
+ adds r1, r7, r1
+ ldrb r1, [r1]
+ bl PokemonGetField
+ adds r1, r7, 0x6
+ lsls r1, 1
+ ldr r2, _080708F0
+ adds r1, r2
+ strh r0, [r1]
+ lsls r4, r7, 1
+ adds r2, r4, r2
+ ldrh r1, [r2]
+ subs r0, r1
+ strh r0, [r2]
+ adds r0, r7, 0
+ movs r1, 0x3
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r1, r0, 3
+ adds r1, r0
+ adds r1, 0xB
+ lsls r1, 24
+ lsrs r6, r1, 24
+ adds r0, r7, 0
+ movs r1, 0x3
+ bl __umodsi3
+ lsls r0, 1
+ adds r0, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ ldr r1, _080708F4
+ lsls r0, r7, 2
+ adds r0, r1
+ ldr r0, [r0]
+ adds r1, r6, 0x1
+ lsls r1, 27
+ lsrs r1, 24
+ mov r2, r9
+ lsls r5, r2, 3
+ adds r2, r5, 0
+ movs r3, 0x1
+ bl sub_80729D8
+ mov r8, r4
+ cmp r7, 0x2
+ bne _080708FC
+ adds r4, r6, 0x6
+ lsls r1, r4, 3
+ adds r1, 0x6
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _080708F8
+ adds r2, r5, 0
+ movs r3, 0
+ bl sub_80729D8
+ b _08070910
+ .align 2, 0
+_080708E4: .4byte 0x020231cc
+_080708E8: .4byte 0x0201c000
+_080708EC: .4byte gUnknown_08376D1C
+_080708F0: .4byte 0x0201b264
+_080708F4: .4byte gUnknown_08376D04
+_080708F8: .4byte gUnknown_0840E691
+_080708FC:
+ adds r4, r6, 0x6
+ lsls r1, r4, 3
+ adds r1, 0x6
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _08070960
+ adds r2, r5, 0
+ movs r3, 0x1
+ bl sub_80729D8
+_08070910:
+ movs r0, 0xFC
+ mov r1, r10
+ strb r0, [r1]
+ movs r0, 0x14
+ strb r0, [r1, 0x1]
+ movs r0, 0x6
+ strb r0, [r1, 0x2]
+ ldr r0, _08070964
+ add r0, r8
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ mov r0, r10
+ adds r0, 0x3
+ movs r2, 0x1
+ movs r3, 0x2
+ bl ConvertIntToDecimalStringN
+ lsls r1, r4, 27
+ movs r0, 0xC0
+ lsls r0, 20
+ adds r1, r0
+ lsrs r1, 24
+ mov r0, r9
+ lsls r2, r0, 3
+ mov r0, r10
+ movs r3, 0
+ bl sub_80729D8
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x5
+ bls _08070864
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070960: .4byte gUnknown_0840E691
+_08070964: .4byte 0x0201b264
+ thumb_func_end sub_8070848
+
+ thumb_func_start sub_8070968
+sub_8070968: @ 8070968
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r7, 0
+ ldr r0, _08070A10
+ mov r9, r0
+ ldr r1, _08070A14
+ add r1, r9
+ mov r10, r1
+ ldr r0, _08070A18
+ mov r8, r0
+_08070982:
+ mov r1, r9
+ ldr r0, [r1]
+ ldr r1, _08070A1C
+ adds r1, r7, r1
+ ldrb r1, [r1]
+ bl PokemonGetField
+ adds r6, r7, 0x6
+ lsls r6, 1
+ add r6, r10
+ strh r0, [r6]
+ adds r0, r7, 0
+ movs r1, 0x3
+ bl __udivsi3
+ lsls r0, 24
+ lsrs r0, 24
+ lsls r4, r0, 3
+ adds r4, r0
+ adds r4, 0xB
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r7, 0
+ movs r1, 0x3
+ bl __umodsi3
+ adds r5, r0, 0
+ lsls r5, 1
+ adds r5, 0x1
+ lsls r5, 24
+ lsrs r5, 24
+ movs r0, 0xFC
+ mov r1, r8
+ strb r0, [r1]
+ movs r0, 0x14
+ strb r0, [r1, 0x1]
+ movs r0, 0x6
+ strb r0, [r1, 0x2]
+ movs r0, 0
+ ldrsh r1, [r6, r0]
+ mov r0, r8
+ adds r0, 0x3
+ movs r2, 0x1
+ movs r3, 0x3
+ bl ConvertIntToDecimalStringN
+ adds r4, 0x6
+ lsls r4, 3
+ adds r4, 0x6
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r5, 3
+ mov r0, r8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ movs r3, 0
+ bl sub_80729D8
+ adds r0, r7, 0x1
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0x5
+ bls _08070982
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070A10: .4byte 0x0201c000
+_08070A14: .4byte 0xfffff264
+_08070A18: .4byte 0x020231cc
+_08070A1C: .4byte gUnknown_08376D1C
+ thumb_func_end sub_8070968
+
+ thumb_func_start sub_8070A20
+sub_8070A20: @ 8070A20
+ push {r4-r7,lr}
+ adds r6, r1, 0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ adds r0, r6, 0
+ bl sub_80A1CD8
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ beq _08070A3A
+ cmp r0, 0x6
+ bne _08070A42
+_08070A3A:
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl sub_806FBB4
+_08070A42:
+ bl battle_type_is_double
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r6, 0
+ movs r1, 0x39
+ bl PokemonGetField
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ adds r0, r6, 0
+ movs r1, 0x3A
+ bl PokemonGetField
+ adds r3, r0, 0
+ lsls r3, 16
+ lsrs r3, 16
+ adds r0, r7, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_806E420
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_806E674
+ ldr r4, _08070ABC
+ ldrb r0, [r4, 0x4]
+ adds r1, r7, 0
+ bl sub_806DDA0
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r6, 0
+ bl sub_806D84C
+ bl battle_type_is_double
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ lsls r1, r7, 1
+ adds r0, r1
+ ldr r1, _08070AC0
+ adds r0, r1
+ movs r1, 0x7
+ bl task_pc_turn_off
+ ldr r0, _08070AC4
+ adds r4, r0
+ movs r0, 0x2
+ strb r0, [r4]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070ABC: .4byte 0x0201c000
+_08070AC0: .4byte gUnknown_083769A8
+_08070AC4: .4byte 0xfffff261
+ thumb_func_end sub_8070A20
+
+ thumb_func_start sub_8070AC8
+sub_8070AC8: @ 8070AC8
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r0, 0
+ bl ducking_tick
+ lsls r0, 24
+ cmp r0, 0
+ bne _08070ADC
+ b _08070C2C
+_08070ADC:
+ ldr r0, _08070B24
+ ldrh r1, [r0, 0x2E]
+ movs r5, 0x1
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08070AF4
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08070AF4
+ b _08070C2C
+_08070AF4:
+ movs r0, 0xB
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x7
+ bl Reset
+ ldr r7, _08070B28
+ ldr r0, [r7]
+ movs r1, 0x1
+ bl sub_803B7C8
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r1, _08070B2C
+ adds r0, r7, r1
+ strh r5, [r0]
+ ldr r0, _08070B30
+ cmp r4, r0
+ beq _08070BDC
+ cmp r4, r0
+ bgt _08070B34
+ cmp r4, 0
+ beq _08070B40
+ b _08070BF4
+ .align 2, 0
+_08070B24: .4byte 0x03001770
+_08070B28: .4byte 0x0201c000
+_08070B2C: .4byte 0xfffff282
+_08070B30: .4byte 0x0000fffe
+_08070B34:
+ ldr r0, _08070B3C
+ cmp r4, r0
+ beq _08070B7C
+ b _08070BF4
+ .align 2, 0
+_08070B3C: .4byte 0x0000ffff
+_08070B40:
+ ldr r0, [r7]
+ movs r1, 0
+ movs r2, 0
+ bl GetEvolutionTargetSpecies
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _08070B74
+ ldr r1, _08070B6C
+ ldr r0, _08070B70
+ str r0, [r1]
+ ldr r0, [r7]
+ ldrb r3, [r7, 0x5]
+ adds r1, r2, 0
+ movs r2, 0x1
+ bl sub_8111924
+ adds r0, r6, 0
+ bl DestroyTask
+ b _08070C2C
+ .align 2, 0
+_08070B6C: .4byte 0x03005e94
+_08070B70: .4byte sub_80A53F8
+_08070B74:
+ adds r0, r6, 0
+ bl sub_8070D90
+ b _08070C2C
+_08070B7C:
+ ldr r0, [r7]
+ ldr r1, _08070BBC
+ bl GetMonNickname
+ ldr r0, _08070BC0
+ ldr r5, _08070BC4
+ ldrh r2, [r5]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _08070BC8
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _08070BCC
+ ldr r1, _08070BD0
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldrh r0, [r5]
+ strh r0, [r7, 0x8]
+ ldr r1, _08070BD4
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070BD8
+ b _08070C2A
+ .align 2, 0
+_08070BBC: .4byte 0x020231cc
+_08070BC0: .4byte 0x020232cc
+_08070BC4: .4byte 0x02024e82
+_08070BC8: .4byte gMoveNames
+_08070BCC: .4byte 0x020234cc
+_08070BD0: .4byte gUnknown_0840F37C
+_08070BD4: .4byte 0x03004b20
+_08070BD8: .4byte sub_806F358
+_08070BDC:
+ ldr r0, _08070BEC
+ lsls r1, r6, 2
+ adds r1, r6
+ lsls r1, 3
+ adds r1, r0
+ ldr r0, _08070BF0
+ str r0, [r1]
+ b _08070C2C
+ .align 2, 0
+_08070BEC: .4byte 0x03004b20
+_08070BF0: .4byte sub_8070C54
+_08070BF4:
+ ldr r0, _08070C34
+ ldr r0, [r0]
+ ldr r1, _08070C38
+ bl GetMonNickname
+ ldr r0, _08070C3C
+ movs r1, 0xD
+ muls r1, r4
+ ldr r2, _08070C40
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _08070C44
+ ldr r1, _08070C48
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _08070C4C
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070C50
+_08070C2A:
+ str r1, [r0]
+_08070C2C:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070C34: .4byte 0x0201c000
+_08070C38: .4byte 0x020231cc
+_08070C3C: .4byte 0x020232cc
+_08070C40: .4byte gMoveNames
+_08070C44: .4byte 0x020234cc
+_08070C48: .4byte gUnknown_0840F338
+_08070C4C: .4byte 0x03004b20
+_08070C50: .4byte sub_806F254
+ thumb_func_end sub_8070AC8
+
+ thumb_func_start sub_8070C54
+sub_8070C54: @ 8070C54
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r7, _08070C78
+ ldr r0, [r7]
+ movs r1, 0
+ bl sub_803B7C8
+ lsls r0, 16
+ lsrs r4, r0, 16
+ ldr r0, _08070C7C
+ cmp r4, r0
+ beq _08070D28
+ cmp r4, r0
+ bgt _08070C80
+ cmp r4, 0
+ beq _08070C8C
+ b _08070D30
+ .align 2, 0
+_08070C78: .4byte 0x0201c000
+_08070C7C: .4byte 0x0000fffe
+_08070C80:
+ ldr r0, _08070C88
+ cmp r4, r0
+ beq _08070CC8
+ b _08070D30
+ .align 2, 0
+_08070C88: .4byte 0x0000ffff
+_08070C8C:
+ ldr r0, [r7]
+ movs r1, 0
+ movs r2, 0
+ bl GetEvolutionTargetSpecies
+ lsls r0, 16
+ lsrs r2, r0, 16
+ cmp r2, 0
+ beq _08070CC0
+ ldr r1, _08070CB8
+ ldr r0, _08070CBC
+ str r0, [r1]
+ ldr r0, [r7]
+ ldrb r3, [r7, 0x5]
+ adds r1, r2, 0
+ movs r2, 0x1
+ bl sub_8111924
+ adds r0, r6, 0
+ bl DestroyTask
+ b _08070D68
+ .align 2, 0
+_08070CB8: .4byte 0x03005e94
+_08070CBC: .4byte sub_80A53F8
+_08070CC0:
+ adds r0, r6, 0
+ bl sub_8070D90
+ b _08070D68
+_08070CC8:
+ ldr r0, [r7]
+ ldr r1, _08070D08
+ bl GetMonNickname
+ ldr r0, _08070D0C
+ ldr r5, _08070D10
+ ldrh r2, [r5]
+ movs r1, 0xD
+ muls r1, r2
+ ldr r2, _08070D14
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _08070D18
+ ldr r1, _08070D1C
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldrh r0, [r5]
+ strh r0, [r7, 0x8]
+ ldr r1, _08070D20
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070D24
+ b _08070D66
+ .align 2, 0
+_08070D08: .4byte 0x020231cc
+_08070D0C: .4byte 0x020232cc
+_08070D10: .4byte 0x02024e82
+_08070D14: .4byte gMoveNames
+_08070D18: .4byte 0x020234cc
+_08070D1C: .4byte gUnknown_0840F37C
+_08070D20: .4byte 0x03004b20
+_08070D24: .4byte sub_806F358
+_08070D28:
+ adds r0, r6, 0
+ bl sub_8070C54
+ b _08070D68
+_08070D30:
+ ldr r0, _08070D70
+ ldr r0, [r0]
+ ldr r1, _08070D74
+ bl GetMonNickname
+ ldr r0, _08070D78
+ movs r1, 0xD
+ muls r1, r4
+ ldr r2, _08070D7C
+ adds r1, r2
+ bl StringCopy
+ ldr r4, _08070D80
+ ldr r1, _08070D84
+ adds r0, r4, 0
+ bl StringExpandPlaceholders
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r1, _08070D88
+ lsls r0, r6, 2
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070D8C
+_08070D66:
+ str r1, [r0]
+_08070D68:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070D70: .4byte 0x0201c000
+_08070D74: .4byte 0x020231cc
+_08070D78: .4byte 0x020232cc
+_08070D7C: .4byte gMoveNames
+_08070D80: .4byte 0x020234cc
+_08070D84: .4byte gUnknown_0840F338
+_08070D88: .4byte 0x03004b20
+_08070D8C: .4byte sub_806F254
+ thumb_func_end sub_8070C54
+
+ thumb_func_start sub_8070D90
+sub_8070D90: @ 8070D90
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r4, _08070DB4
+ ldr r3, _08070DB8
+ ldrb r2, [r3, 0x4]
+ lsls r1, r2, 2
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r4
+ ldr r2, [r3, 0x10]
+ str r2, [r1]
+ bl DestroyTask
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070DB4: .4byte 0x03004b20
+_08070DB8: .4byte 0x0201c000
+ thumb_func_end sub_8070D90
+
+ thumb_func_start sub_8070DBC
+sub_8070DBC: @ 8070DBC
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r2, 0
+ lsls r4, 24
+ lsrs r4, 24
+ lsls r1, 16
+ lsrs r6, r1, 16
+ movs r0, 0x5
+ bl audio_play
+ ldr r1, _08070E18
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ ldr r1, _08070E1C
+ str r1, [r0]
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r5, 0
+ bl sub_806E8D0
+ ldr r1, _08070E20
+ ldr r0, _08070E24
+ str r0, [r1]
+ ldr r0, _08070E28
+ ldrb r0, [r0, 0x5]
+ adds r1, r6, 0
+ movs r2, 0
+ bl ExecuteTableBasedItemEffect__
+ lsls r0, 24
+ cmp r0, 0
+ beq _08070E38
+ ldr r1, _08070E2C
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _08070E30
+ movs r1, 0x1
+ bl sub_806E834
+ ldr r0, _08070E34
+ movs r1, 0x5
+ bl CreateTask
+ b _08070E40
+ .align 2, 0
+_08070E18: .4byte 0x03004b20
+_08070E1C: .4byte TaskDummy
+_08070E20: .4byte 0x03005e94
+_08070E24: .4byte sub_80A53F8
+_08070E28: .4byte 0x0201c000
+_08070E2C: .4byte 0x0202e8f4
+_08070E30: .4byte gUnknown_0840EF85
+_08070E34: .4byte sub_806FB0C
+_08070E38:
+ adds r0, r6, 0
+ movs r1, 0x1
+ bl sub_80A9538
+_08070E40:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8070DBC
+
+ thumb_func_start sub_8070E48
+sub_8070E48: @ 8070E48
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0xAF
+ bne _08070E5C
+ ldr r4, _08070E58
+ b _08070E66
+ .align 2, 0
+_08070E58: .4byte 0x02028daa
+_08070E5C:
+ ldr r1, _08070E8C
+ subs r0, 0xD
+ lsls r0, 2
+ adds r0, r1
+ ldr r4, [r0]
+_08070E66:
+ ldrb r1, [r4]
+ movs r5, 0x3F
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08070E88
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ bne _08070E88
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0
+ bne _08070E88
+ ldrb r3, [r4, 0x3]
+ movs r0, 0x80
+ ands r0, r3
+ cmp r0, 0
+ beq _08070E90
+_08070E88:
+ movs r0, 0
+ b _08070F8A
+ .align 2, 0
+_08070E8C: .4byte gItemEffectTable
+_08070E90:
+ movs r2, 0x40
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08070E9E
+ movs r0, 0xA
+ b _08070F8A
+_08070E9E:
+ adds r0, r2, 0
+ ands r0, r3
+ cmp r0, 0
+ beq _08070EAA
+ movs r0, 0x1
+ b _08070F8A
+_08070EAA:
+ adds r2, r5, 0
+ ands r2, r3
+ cmp r2, 0
+ bne _08070EB8
+ lsrs r0, r1, 7
+ cmp r0, 0
+ beq _08070EFA
+_08070EB8:
+ cmp r2, 0x20
+ bne _08070EC0
+ movs r0, 0x4
+ b _08070F8A
+_08070EC0:
+ cmp r2, 0x10
+ bne _08070EC8
+ movs r0, 0x3
+ b _08070F8A
+_08070EC8:
+ cmp r2, 0x8
+ bne _08070ED0
+ movs r0, 0x5
+ b _08070F8A
+_08070ED0:
+ cmp r2, 0x4
+ bne _08070ED8
+ movs r0, 0x6
+ b _08070F8A
+_08070ED8:
+ cmp r2, 0x2
+ bne _08070EE0
+ movs r0, 0x7
+ b _08070F8A
+_08070EE0:
+ cmp r2, 0x1
+ bne _08070EE8
+ movs r0, 0x8
+ b _08070F8A
+_08070EE8:
+ lsrs r0, r1, 7
+ cmp r0, 0
+ beq _08070EF6
+ cmp r2, 0
+ bne _08070EF6
+ movs r0, 0x9
+ b _08070F8A
+_08070EF6:
+ movs r0, 0xB
+ b _08070F8A
+_08070EFA:
+ ldrb r1, [r4, 0x4]
+ movs r0, 0x44
+ ands r0, r1
+ adds r2, r1, 0
+ cmp r0, 0
+ beq _08070F0A
+ movs r0, 0x2
+ b _08070F8A
+_08070F0A:
+ movs r5, 0x2
+ adds r0, r5, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08070F18
+ movs r0, 0xC
+ b _08070F8A
+_08070F18:
+ movs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08070F26
+ movs r0, 0xD
+ b _08070F8A
+_08070F26:
+ ldrb r1, [r4, 0x5]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08070F34
+ movs r0, 0xE
+ b _08070F8A
+_08070F34:
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08070F40
+ movs r0, 0xF
+ b _08070F8A
+_08070F40:
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08070F4C
+ movs r0, 0x10
+ b _08070F8A
+_08070F4C:
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08070F58
+ movs r0, 0x11
+ b _08070F8A
+_08070F58:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _08070F64
+ movs r0, 0x12
+ b _08070F8A
+_08070F64:
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _08070F70
+ movs r0, 0x13
+ b _08070F8A
+_08070F70:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08070F7C
+ movs r0, 0x14
+ b _08070F8A
+_08070F7C:
+ movs r0, 0x18
+ ands r0, r2
+ cmp r0, 0
+ bne _08070F88
+ movs r0, 0x16
+ b _08070F8A
+_08070F88:
+ movs r0, 0x15
+_08070F8A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8070E48
+
+ thumb_func_start unref_sub_8070F90
+unref_sub_8070F90: @ 8070F90
+ push {lr}
+ ldr r0, _08070FAC
+ bl FlagSet
+ movs r0, 0x80
+ lsls r0, 4
+ bl FlagSet
+ ldr r0, _08070FB0
+ bl FlagSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070FAC: .4byte 0x00000801
+_08070FB0: .4byte 0x00000802
+ thumb_func_end unref_sub_8070F90
+
+ thumb_func_start sub_8070FB4
+sub_8070FB4: @ 8070FB4
+ push {lr}
+ ldr r0, _08070FCC
+ movs r1, 0
+ strb r1, [r0]
+ bl is_c1_link_related_active
+ cmp r0, 0x1
+ bne _08070FD0
+ bl sub_80710A0
+ b _08070FE2
+ .align 2, 0
+_08070FCC: .4byte 0x0202e8fd
+_08070FD0:
+ bl GetSafariZoneFlag
+ cmp r0, 0x1
+ bne _08070FDE
+ bl BuildStartMenuActions_SafariZone
+ b _08070FE2
+_08070FDE:
+ bl BuildStartMenuActions_Normal
+_08070FE2:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8070FB4
+
+ thumb_func_start AddStartMenuAction
+AddStartMenuAction: @ 8070FE8
+ push {lr}
+ adds r2, r0, 0
+ lsls r2, 24
+ lsrs r2, 24
+ ldr r0, _08070FFC
+ ldr r1, _08071000
+ bl append_byte
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08070FFC: .4byte 0x0202e8fe
+_08071000: .4byte 0x0202e8fd
+ thumb_func_end AddStartMenuAction
+
+ thumb_func_start BuildStartMenuActions_Normal
+BuildStartMenuActions_Normal: @ 8071004
+ push {lr}
+ ldr r0, _08071068
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0807101A
+ movs r0, 0
+ bl AddStartMenuAction
+_0807101A:
+ movs r0, 0x80
+ lsls r0, 4
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08071030
+ movs r0, 0x1
+ bl AddStartMenuAction
+_08071030:
+ movs r0, 0x2
+ bl AddStartMenuAction
+ ldr r0, _0807106C
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0807104A
+ movs r0, 0x3
+ bl AddStartMenuAction
+_0807104A:
+ movs r0, 0x4
+ bl AddStartMenuAction
+ movs r0, 0x5
+ bl AddStartMenuAction
+ movs r0, 0x6
+ bl AddStartMenuAction
+ movs r0, 0x7
+ bl AddStartMenuAction
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08071068: .4byte 0x00000801
+_0807106C: .4byte 0x00000802
+ thumb_func_end BuildStartMenuActions_Normal
+
+ thumb_func_start BuildStartMenuActions_SafariZone
+BuildStartMenuActions_SafariZone: @ 8071070
+ push {lr}
+ movs r0, 0x8
+ bl AddStartMenuAction
+ movs r0, 0
+ bl AddStartMenuAction
+ movs r0, 0x1
+ bl AddStartMenuAction
+ movs r0, 0x2
+ bl AddStartMenuAction
+ movs r0, 0x4
+ bl AddStartMenuAction
+ movs r0, 0x6
+ bl AddStartMenuAction
+ movs r0, 0x7
+ bl AddStartMenuAction
+ pop {r0}
+ bx r0
+ thumb_func_end BuildStartMenuActions_SafariZone
+
+ thumb_func_start sub_80710A0
+sub_80710A0: @ 80710A0
+ push {lr}
+ movs r0, 0x1
+ bl AddStartMenuAction
+ movs r0, 0x2
+ bl AddStartMenuAction
+ ldr r0, _080710D8
+ bl FlagGet
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _080710C2
+ movs r0, 0x3
+ bl AddStartMenuAction
+_080710C2:
+ movs r0, 0x9
+ bl AddStartMenuAction
+ movs r0, 0x6
+ bl AddStartMenuAction
+ movs r0, 0x7
+ bl AddStartMenuAction
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080710D8: .4byte 0x00000802
+ thumb_func_end sub_80710A0
+
+ thumb_func_start sub_80710DC
+sub_80710DC: @ 80710DC
+ push {lr}
+ ldr r0, _08071108
+ ldr r1, _0807110C
+ ldrb r1, [r1]
+ movs r2, 0xC
+ movs r3, 0x1
+ bl sub_8072C44
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0xA
+ movs r3, 0x5
+ bl DrawDefaultWindow
+ ldr r0, _08071110
+ movs r1, 0x1
+ movs r2, 0x1
+ bl Print
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08071108: .4byte 0x020231cc
+_0807110C: .4byte 0x02038808
+_08071110: .4byte gUnknown_0842C4A9
+ thumb_func_end sub_80710DC
+
+ thumb_func_start sub_8071114
+sub_8071114: @ 8071114
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ adds r6, r1, 0
+ movs r0, 0
+ ldrsh r4, [r7, r0]
+ ldr r1, _08071160
+ mov r8, r1
+ lsls r0, r4, 25
+ movs r1, 0x80
+ lsls r1, 18
+ adds r5, r0, r1
+_0807112E:
+ ldr r0, _08071164
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ lsls r0, 3
+ add r0, r8
+ ldr r0, [r0]
+ lsrs r2, r5, 24
+ movs r1, 0x17
+ bl Print
+ movs r0, 0x80
+ lsls r0, 18
+ adds r5, r0
+ adds r4, 0x1
+ ldr r0, _08071168
+ ldrb r0, [r0]
+ cmp r4, r0
+ bge _0807116C
+ subs r6, 0x1
+ cmp r6, 0
+ bne _0807112E
+ strh r4, [r7]
+ movs r0, 0
+ b _08071170
+ .align 2, 0
+_08071160: .4byte gUnknown_08376D24
+_08071164: .4byte 0x0202e8fe
+_08071168: .4byte 0x0202e8fd
+_0807116C:
+ strh r4, [r7]
+ movs r0, 0x1
+_08071170:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8071114
+
+ thumb_func_start sub_807117C
+sub_807117C: @ 807117C
+ push {r4,r5,lr}
+ sub sp, 0x8
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x5
+ bhi _08071224
+ lsls r0, 2
+ ldr r1, _08071198
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08071198: .4byte _0807119C
+ .align 2, 0
+_0807119C:
+ .4byte _080711F6
+ .4byte _080711B4
+ .4byte _080711BA
+ .4byte _080711DC
+ .4byte _080711EA
+ .4byte _080711FE
+_080711B4:
+ bl sub_8070FB4
+ b _080711F6
+_080711BA:
+ ldr r0, _080711D8
+ ldrb r3, [r0]
+ lsls r3, 25
+ movs r0, 0xC0
+ lsls r0, 18
+ adds r3, r0
+ lsrs r3, 24
+ movs r0, 0x16
+ movs r1, 0
+ movs r2, 0x1D
+ bl DrawDefaultWindow
+ movs r0, 0
+ strh r0, [r5]
+ b _080711F6
+ .align 2, 0
+_080711D8: .4byte 0x0202e8fd
+_080711DC:
+ bl GetSafariZoneFlag
+ cmp r0, 0
+ beq _080711F6
+ bl sub_80710DC
+ b _080711F6
+_080711EA:
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_8071114
+ cmp r0, 0
+ beq _08071224
+_080711F6:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _08071224
+_080711FE:
+ ldr r0, _0807121C
+ ldrb r3, [r0]
+ ldr r4, _08071220
+ ldrb r0, [r4]
+ str r0, [sp]
+ movs r0, 0x6
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x17
+ movs r2, 0x2
+ bl InitMenu
+ strb r0, [r4]
+ movs r0, 0x1
+ b _08071226
+ .align 2, 0
+_0807121C: .4byte 0x0202e8fd
+_08071220: .4byte 0x0202e8fc
+_08071224:
+ movs r0, 0
+_08071226:
+ add sp, 0x8
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807117C
+
+ thumb_func_start sub_8071230
+sub_8071230: @ 8071230
+ push {r4,lr}
+ sub sp, 0x4
+ movs r0, 0
+ mov r1, sp
+ strh r0, [r1]
+ adds r1, 0x2
+ strh r0, [r1]
+ adds r4, r1, 0
+_08071240:
+ mov r0, sp
+ adds r1, r4, 0
+ bl sub_807117C
+ cmp r0, 0
+ beq _08071240
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8071230
+
+ thumb_func_start task50_startmenu
+task50_startmenu: @ 8071254
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _08071280
+ adds r4, r0, r1
+ adds r1, r4, 0x2
+ adds r0, r4, 0
+ bl sub_807117C
+ cmp r0, 0x1
+ bne _0807127A
+ movs r0, 0
+ strh r0, [r4]
+ adds r0, r5, 0
+ bl SwitchTaskToFollowupFunc
+_0807127A:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08071280: .4byte 0x03004b28
+ thumb_func_end task50_startmenu
+
+ thumb_func_start sub_8071284
+sub_8071284: @ 8071284
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r0, _080712AC
+ bl sub_8071C4C
+ ldr r4, _080712B0
+ adds r0, r4, 0
+ movs r1, 0x50
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl SetTaskFuncWithFollowupFunc
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080712AC: .4byte gWindowConfig_81E6CE4
+_080712B0: .4byte task50_startmenu
+ thumb_func_end sub_8071284
+
+ thumb_func_start sub_80712B4
+sub_80712B4: @ 80712B4
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ ldr r1, _080712D4
+ adds r2, r0, r1
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ cmp r0, 0
+ beq _080712D8
+ cmp r0, 0x1
+ beq _080712F0
+ b _08071306
+ .align 2, 0
+_080712D4: .4byte 0x03004b20
+_080712D8:
+ ldr r1, _080712E8
+ ldr r0, _080712EC
+ str r0, [r1]
+ ldrh r0, [r2, 0x8]
+ adds r0, 0x1
+ strh r0, [r2, 0x8]
+ b _08071306
+ .align 2, 0
+_080712E8: .4byte 0x03004ae8
+_080712EC: .4byte sub_8071338
+_080712F0:
+ ldr r0, _0807130C
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08071306
+ adds r0, r4, 0
+ bl DestroyTask
+_08071306:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0807130C: .4byte 0x03004ae8
+ thumb_func_end sub_80712B4
+
+ thumb_func_start sub_8071310
+sub_8071310: @ 8071310
+ push {lr}
+ bl is_c1_link_related_active
+ cmp r0, 0
+ bne _08071326
+ bl player_bitmagic
+ bl sub_80594C0
+ bl sub_80597F4
+_08071326:
+ ldr r0, _08071334
+ bl sub_8071284
+ bl script_env_2_enable
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08071334: .4byte sub_80712B4
+ thumb_func_end sub_8071310
+
+ thumb_func_start sub_8071338
+sub_8071338: @ 8071338
+ push {r4,lr}
+ ldr r4, _080713DC
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08071358
+ movs r0, 0x5
+ bl audio_play
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ ldr r1, _080713E0
+ strb r0, [r1]
+_08071358:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08071372
+ movs r0, 0x5
+ bl audio_play
+ movs r0, 0x1
+ bl MoveMenuCursor
+ ldr r1, _080713E0
+ strb r0, [r1]
+_08071372:
+ ldrh r1, [r4, 0x2E]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08071400
+ movs r0, 0x5
+ bl audio_play
+ ldr r1, _080713E4
+ ldr r2, _080713E8
+ ldr r0, _080713E0
+ ldrb r0, [r0]
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r1, [r0]
+ ldr r0, _080713EC
+ cmp r1, r0
+ bne _080713A8
+ movs r0, 0
+ bl pokedex_count
+ lsls r0, 16
+ cmp r0, 0
+ beq _08071408
+_080713A8:
+ ldr r3, _080713F0
+ ldr r1, _080713E4
+ ldr r2, _080713E8
+ ldr r0, _080713E0
+ ldrb r0, [r0]
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 3
+ adds r1, 0x4
+ adds r0, r1
+ ldr r1, [r0]
+ str r1, [r3]
+ ldr r0, _080713F4
+ cmp r1, r0
+ beq _08071408
+ ldr r0, _080713F8
+ cmp r1, r0
+ beq _08071408
+ ldr r0, _080713FC
+ cmp r1, r0
+ beq _08071408
+ movs r0, 0x1
+ movs r1, 0
+ bl fade_screen
+ b _08071408
+ .align 2, 0
+_080713DC: .4byte 0x03001770
+_080713E0: .4byte 0x0202e8fc
+_080713E4: .4byte gUnknown_08376D24
+_080713E8: .4byte 0x0202e8fe
+_080713EC: .4byte StartMenu_Pokedex
+_080713F0: .4byte 0x03004ae8
+_080713F4: .4byte sub_80714FC
+_080713F8: .4byte sub_8071554
+_080713FC: .4byte sub_8071560
+_08071400:
+ movs r0, 0xA
+ ands r0, r1
+ cmp r0, 0
+ bne _0807140C
+_08071408:
+ movs r0, 0
+ b _08071412
+_0807140C:
+ bl sub_8071C20
+ movs r0, 0x1
+_08071412:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8071338
+
+ thumb_func_start StartMenu_Pokedex
+StartMenu_Pokedex: @ 8071418
+ push {lr}
+ ldr r0, _0807142C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08071430
+ movs r0, 0
+ b _08071442
+ .align 2, 0
+_0807142C: .4byte 0x0202f388
+_08071430:
+ movs r0, 0x29
+ bl sav12_xor_increment
+ bl play_some_sound
+ ldr r0, _08071448
+ bl SetMainCallback2
+ movs r0, 0x1
+_08071442:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08071448: .4byte sub_808C27C
+ thumb_func_end StartMenu_Pokedex
+
+ thumb_func_start sub_807144C
+sub_807144C: @ 807144C
+ push {lr}
+ ldr r0, _08071460
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08071464
+ movs r0, 0
+ b _08071470
+ .align 2, 0
+_08071460: .4byte 0x0202f388
+_08071464:
+ bl play_some_sound
+ ldr r0, _08071474
+ bl SetMainCallback2
+ movs r0, 0x1
+_08071470:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08071474: .4byte sub_8089A70
+ thumb_func_end sub_807144C
+
+ thumb_func_start sub_8071478
+sub_8071478: @ 8071478
+ push {lr}
+ ldr r0, _0807148C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08071490
+ movs r0, 0
+ b _0807149C
+ .align 2, 0
+_0807148C: .4byte 0x0202f388
+_08071490:
+ bl play_some_sound
+ ldr r0, _080714A0
+ bl SetMainCallback2
+ movs r0, 0x1
+_0807149C:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080714A0: .4byte sub_80A53F8
+ thumb_func_end sub_8071478
+
+ thumb_func_start sub_80714A4
+sub_80714A4: @ 80714A4
+ push {lr}
+ ldr r0, _080714B8
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080714BC
+ movs r0, 0
+ b _080714C8
+ .align 2, 0
+_080714B8: .4byte 0x0202f388
+_080714BC:
+ bl play_some_sound
+ ldr r0, _080714CC
+ bl SetMainCallback2
+ movs r0, 0x1
+_080714C8:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080714CC: .4byte sub_80EBA5C
+ thumb_func_end sub_80714A4
+
+ thumb_func_start sub_80714D0
+sub_80714D0: @ 80714D0
+ push {lr}
+ ldr r0, _080714E4
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _080714E8
+ movs r0, 0
+ b _080714F4
+ .align 2, 0
+_080714E4: .4byte 0x0202f388
+_080714E8:
+ bl play_some_sound
+ ldr r0, _080714F8
+ bl sub_8093110
+ movs r0, 0x1
+_080714F4:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080714F8: .4byte sub_805469C
+ thumb_func_end sub_80714D0
+
+ thumb_func_start sub_80714FC
+sub_80714FC: @ 80714FC
+ push {lr}
+ bl sub_8072DEC
+ ldr r1, _08071510
+ ldr r0, _08071514
+ str r0, [r1]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08071510: .4byte 0x03004ae8
+_08071514: .4byte sub_80715A4
+ thumb_func_end sub_80714FC
+
+ thumb_func_start sub_8071518
+sub_8071518: @ 8071518
+ push {lr}
+ ldr r0, _0807152C
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08071530
+ movs r0, 0
+ b _08071542
+ .align 2, 0
+_0807152C: .4byte 0x0202f388
+_08071530:
+ bl play_some_sound
+ ldr r0, _08071548
+ bl SetMainCallback2
+ ldr r1, _0807154C
+ ldr r0, _08071550
+ str r0, [r1, 0x8]
+ movs r0, 0x1
+_08071542:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08071548: .4byte CB2_InitOptionMenu
+_0807154C: .4byte 0x03001770
+_08071550: .4byte sub_805469C
+ thumb_func_end sub_8071518
+
+ thumb_func_start sub_8071554
+sub_8071554: @ 8071554
+ push {lr}
+ bl sub_8071C20
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8071554
+
+ thumb_func_start sub_8071560
+sub_8071560: @ 8071560
+ push {lr}
+ bl sub_8071C20
+ bl sub_80C823C
+ movs r0, 0x1
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8071560
+
+ thumb_func_start sub_8071570
+sub_8071570: @ 8071570
+ push {lr}
+ ldr r0, _08071584
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08071588
+ movs r0, 0
+ b _08071598
+ .align 2, 0
+_08071584: .4byte 0x0202f388
+_08071588:
+ bl play_some_sound
+ ldr r0, _0807159C
+ ldrb r0, [r0]
+ ldr r1, _080715A0
+ bl sub_8093130
+ movs r0, 0x1
+_08071598:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0807159C: .4byte 0x03004860
+_080715A0: .4byte sub_805469C
+ thumb_func_end sub_8071570
+
+ thumb_func_start sub_80715A4
+sub_80715A4: @ 80715A4
+ push {lr}
+ bl sub_807160C
+ ldr r1, _080715B8
+ ldr r0, _080715BC
+ str r0, [r1]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080715B8: .4byte 0x03004ae8
+_080715BC: .4byte sub_80715C0
+ thumb_func_end sub_80715A4
+
+ thumb_func_start sub_80715C0
+sub_80715C0: @ 80715C0
+ push {lr}
+ bl sub_8071630
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _080715F4
+ cmp r0, 0x1
+ ble _08071604
+ cmp r0, 0x2
+ beq _080715DC
+ cmp r0, 0x3
+ beq _080715F4
+ b _08071604
+_080715DC:
+ bl sub_8071EF4
+ bl sub_8071230
+ ldr r1, _080715EC
+ ldr r0, _080715F0
+ str r0, [r1]
+ b _08071604
+ .align 2, 0
+_080715EC: .4byte 0x03004ae8
+_080715F0: .4byte sub_8071338
+_080715F4:
+ bl sub_8071EF4
+ bl sub_8064E2C
+ bl script_env_2_disable
+ movs r0, 0x1
+ b _08071606
+_08071604:
+ movs r0, 0
+_08071606:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80715C0
+
+ thumb_func_start sub_807160C
+sub_807160C: @ 807160C
+ push {lr}
+ bl save_serialize_map
+ ldr r1, _08071624
+ ldr r0, _08071628
+ str r0, [r1]
+ ldr r1, _0807162C
+ movs r0, 0
+ strb r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08071624: .4byte 0x030006a8
+_08071628: .4byte sub_8071794
+_0807162C: .4byte 0x030006ad
+ thumb_func_end sub_807160C
+
+ thumb_func_start sub_8071630
+sub_8071630: @ 8071630
+ push {lr}
+ ldr r0, _08071648
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0807164C
+ bl sub_8072080
+ lsls r0, 24
+ cmp r0, 0
+ bne _0807164C
+ movs r0, 0
+ b _0807165E
+ .align 2, 0
+_08071648: .4byte 0x030006ad
+_0807164C:
+ ldr r1, _08071664
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _08071668
+ ldr r0, [r0]
+ bl _call_via_r0
+ lsls r0, 24
+ lsrs r0, 24
+_0807165E:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08071664: .4byte 0x030006ad
+_08071668: .4byte 0x030006a8
+ thumb_func_end sub_8071630
+
+ thumb_func_start sub_807166C
+sub_807166C: @ 807166C
+ push {lr}
+ bl sub_807160C
+ ldr r0, _08071680
+ movs r1, 0x50
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08071680: .4byte task50_save_game
+ thumb_func_end sub_807166C
+
+ thumb_func_start sub_8071684
+sub_8071684: @ 8071684
+ push {r4,r5,lr}
+ adds r2, r0, 0
+ adds r5, r1, 0
+ ldr r4, _080716B0
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl StringExpandPlaceholders
+ bl sub_8071FFC
+ adds r0, r4, 0
+ bl sub_8072044
+ ldr r1, _080716B4
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r0, _080716B8
+ str r5, [r0]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080716B0: .4byte 0x020234cc
+_080716B4: .4byte 0x030006ad
+_080716B8: .4byte 0x030006a8
+ thumb_func_end sub_8071684
+
+ thumb_func_start task50_save_game
+task50_save_game: @ 80716BC
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8071630
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0x1
+ beq _080716E8
+ cmp r1, 0x1
+ bgt _080716D8
+ cmp r1, 0
+ beq _080716F6
+ b _080716EC
+_080716D8:
+ cmp r1, 0x3
+ bgt _080716EC
+ ldr r1, _080716E4
+ movs r0, 0
+ strh r0, [r1]
+ b _080716EC
+ .align 2, 0
+_080716E4: .4byte 0x0202e8dc
+_080716E8:
+ ldr r0, _080716FC
+ strh r1, [r0]
+_080716EC:
+ adds r0, r4, 0
+ bl DestroyTask
+ bl script_env_2_enable_and_set_ctx_running
+_080716F6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080716FC: .4byte 0x0202e8dc
+ thumb_func_end task50_save_game
+
+ thumb_func_start sub_8071700
+sub_8071700: @ 8071700
+ push {lr}
+ movs r0, 0
+ movs r1, 0
+ bl sub_80946C8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8071700
+
+ thumb_func_start sub_8071710
+sub_8071710: @ 8071710
+ push {lr}
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1A
+ movs r3, 0xD
+ bl Reset
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8071710
+
+ thumb_func_start sub_8071724
+sub_8071724: @ 8071724
+ ldr r1, _0807172C
+ movs r0, 0x3C
+ strb r0, [r1]
+ bx lr
+ .align 2, 0
+_0807172C: .4byte 0x030006ac
+ thumb_func_end sub_8071724
+
+ thumb_func_start sub_8071730
+sub_8071730: @ 8071730
+ push {lr}
+ ldr r1, _08071750
+ ldrb r0, [r1]
+ subs r2, r0, 0x1
+ strb r2, [r1]
+ ldr r0, _08071754
+ ldrh r1, [r0, 0x2C]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08071758
+ lsls r0, r2, 24
+ cmp r0, 0
+ beq _0807175E
+ movs r0, 0
+ b _08071760
+ .align 2, 0
+_08071750: .4byte 0x030006ac
+_08071754: .4byte 0x03001770
+_08071758:
+ movs r0, 0x5
+ bl audio_play
+_0807175E:
+ movs r0, 0x1
+_08071760:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8071730
+
+ thumb_func_start sub_8071764
+sub_8071764: @ 8071764
+ push {lr}
+ ldr r1, _08071780
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _08071788
+ ldr r0, _08071784
+ ldrh r1, [r0, 0x2C]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0807178C
+ movs r0, 0x1
+ b _0807178E
+ .align 2, 0
+_08071780: .4byte 0x030006ac
+_08071784: .4byte 0x03001770
+_08071788:
+ subs r0, 0x1
+ strb r0, [r1]
+_0807178C:
+ movs r0, 0
+_0807178E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8071764
+
+ thumb_func_start sub_8071794
+sub_8071794: @ 8071794
+ push {lr}
+ bl sub_8071EF4
+ movs r0, 0
+ movs r1, 0
+ bl sub_80945C0
+ ldr r0, _080717B0
+ ldr r1, _080717B4
+ bl sub_8071684
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080717B0: .4byte gUnknown_081C6C85
+_080717B4: .4byte sub_80717B8
+ thumb_func_end sub_8071794
+
+ thumb_func_start sub_80717B8
+sub_80717B8: @ 80717B8
+ push {lr}
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1
+ bl sub_8072974
+ ldr r1, _080717D0
+ ldr r0, _080717D4
+ str r0, [r1]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080717D0: .4byte 0x030006a8
+_080717D4: .4byte sub_80717D8
+ thumb_func_end sub_80717B8
+
+ thumb_func_start sub_80717D8
+sub_80717D8: @ 80717D8
+ push {lr}
+ bl FillWindowPixelBuffer
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080717FA
+ cmp r1, 0
+ bgt _080717F4
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _0807183C
+ b _08071848
+_080717F4:
+ cmp r1, 0x1
+ beq _0807183C
+ b _08071848
+_080717FA:
+ bl sub_8071710
+ ldr r0, _0807181C
+ ldrh r0, [r0]
+ cmp r0, 0
+ beq _0807180A
+ cmp r0, 0x2
+ bne _08071812
+_0807180A:
+ ldr r0, _08071820
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0807182C
+_08071812:
+ ldr r1, _08071824
+ ldr r0, _08071828
+ str r0, [r1]
+ b _08071848
+ .align 2, 0
+_0807181C: .4byte 0x03005eb8
+_08071820: .4byte 0x020297ec
+_08071824: .4byte 0x030006a8
+_08071828: .4byte sub_8071850
+_0807182C:
+ ldr r1, _08071834
+ ldr r0, _08071838
+ str r0, [r1]
+ b _08071848
+ .align 2, 0
+_08071834: .4byte 0x030006a8
+_08071838: .4byte sub_80718E8
+_0807183C:
+ bl sub_8071710
+ bl sub_8071700
+ movs r0, 0x2
+ b _0807184A
+_08071848:
+ movs r0, 0
+_0807184A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80717D8
+
+ thumb_func_start sub_8071850
+sub_8071850: @ 8071850
+ push {lr}
+ ldr r0, _0807186C
+ ldrb r0, [r0]
+ ldr r2, _08071870
+ cmp r0, 0x1
+ bne _0807185E
+ ldr r2, _08071874
+_0807185E:
+ ldr r1, _08071878
+ adds r0, r2, 0
+ bl sub_8071684
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0807186C: .4byte 0x020297ec
+_08071870: .4byte gUnknown_081C6CA6
+_08071874: .4byte gUnknown_081C6D26
+_08071878: .4byte sub_807187C
+ thumb_func_end sub_8071850
+
+ thumb_func_start sub_807187C
+sub_807187C: @ 807187C
+ push {lr}
+ movs r0, 0x14
+ movs r1, 0x8
+ movs r2, 0x1
+ bl sub_8072974
+ ldr r1, _08071894
+ ldr r0, _08071898
+ str r0, [r1]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08071894: .4byte 0x030006a8
+_08071898: .4byte sub_807189C
+ thumb_func_end sub_807187C
+
+ thumb_func_start sub_807189C
+sub_807189C: @ 807189C
+ push {lr}
+ bl FillWindowPixelBuffer
+ lsls r0, 24
+ asrs r1, r0, 24
+ cmp r1, 0
+ beq _080718BE
+ cmp r1, 0
+ bgt _080718B8
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _080718D4
+ b _080718E0
+_080718B8:
+ cmp r1, 0x1
+ beq _080718D4
+ b _080718E0
+_080718BE:
+ bl sub_8071710
+ ldr r1, _080718CC
+ ldr r0, _080718D0
+ str r0, [r1]
+ b _080718E0
+ .align 2, 0
+_080718CC: .4byte 0x030006a8
+_080718D0: .4byte sub_80718E8
+_080718D4:
+ bl sub_8071710
+ bl sub_8071700
+ movs r0, 0x2
+ b _080718E2
+_080718E0:
+ movs r0, 0
+_080718E2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_807189C
+
+ thumb_func_start sub_80718E8
+sub_80718E8: @ 80718E8
+ push {lr}
+ ldr r0, _080718F8
+ ldr r1, _080718FC
+ bl sub_8071684
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080718F8: .4byte gUnknown_081C6CE1
+_080718FC: .4byte sub_8071900
+ thumb_func_end sub_80718E8
+
+ thumb_func_start sub_8071900
+sub_8071900: @ 8071900
+ push {r4,lr}
+ movs r0, 0
+ bl sav12_xor_increment
+ ldr r4, _08071920
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ bne _08071924
+ movs r0, 0x4
+ bl sub_8125D44
+ lsls r0, 24
+ lsrs r1, r0, 24
+ movs r0, 0
+ strb r0, [r4]
+ b _0807192E
+ .align 2, 0
+_08071920: .4byte 0x020297ec
+_08071924:
+ movs r0, 0
+ bl sub_8125D44
+ lsls r0, 24
+ lsrs r1, r0, 24
+_0807192E:
+ cmp r1, 0x1
+ bne _08071944
+ ldr r0, _0807193C
+ ldr r1, _08071940
+ bl sub_8071684
+ b _0807194C
+ .align 2, 0
+_0807193C: .4byte gUnknown_081C6D05
+_08071940: .4byte sub_8071960
+_08071944:
+ ldr r0, _08071958
+ ldr r1, _0807195C
+ bl sub_8071684
+_0807194C:
+ bl sub_8071724
+ movs r0, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08071958: .4byte gUnknown_0840E5D5
+_0807195C: .4byte sub_80719AC
+ thumb_func_end sub_8071900
+
+ thumb_func_start sub_8071960
+sub_8071960: @ 8071960
+ push {lr}
+ bl sub_8072080
+ lsls r0, 24
+ cmp r0, 0
+ beq _08071978
+ movs r0, 0x37
+ bl audio_play
+ ldr r1, _08071980
+ ldr r0, _08071984
+ str r0, [r1]
+_08071978:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08071980: .4byte 0x030006a8
+_08071984: .4byte sub_8071988
+ thumb_func_end sub_8071960
+
+ thumb_func_start sub_8071988
+sub_8071988: @ 8071988
+ push {lr}
+ bl mplay_has_finished_maybe
+ lsls r0, 24
+ cmp r0, 0
+ bne _080719A6
+ bl sub_8071730
+ lsls r0, 24
+ cmp r0, 0
+ beq _080719A6
+ bl sub_8071700
+ movs r0, 0x1
+ b _080719A8
+_080719A6:
+ movs r0, 0
+_080719A8:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8071988
+
+ thumb_func_start sub_80719AC
+sub_80719AC: @ 80719AC
+ push {lr}
+ bl sub_8072080
+ lsls r0, 24
+ cmp r0, 0
+ beq _080719C4
+ movs r0, 0x16
+ bl audio_play
+ ldr r1, _080719CC
+ ldr r0, _080719D0
+ str r0, [r1]
+_080719C4:
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080719CC: .4byte 0x030006a8
+_080719D0: .4byte sub_80719D4
+ thumb_func_end sub_80719AC
+
+ thumb_func_start sub_80719D4
+sub_80719D4: @ 80719D4
+ push {lr}
+ bl sub_8071764
+ lsls r0, 24
+ cmp r0, 0
+ beq _080719E8
+ bl sub_8071700
+ movs r0, 0x3
+ b _080719EA
+_080719E8:
+ movs r0, 0
+_080719EA:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80719D4
+
+ thumb_func_start sub_80719F0
+sub_80719F0: @ 80719F0
+ push {lr}
+ bl TransferPlttBuffer
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80719F0
+
+ thumb_func_start sub_80719FC
+sub_80719FC: @ 80719FC
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ mov r8, r0
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bls _08071A0E
+ b _08071B10
+_08071A0E:
+ lsls r0, 2
+ ldr r1, _08071A18
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08071A18: .4byte _08071A1C
+ .align 2, 0
+_08071A1C:
+ .4byte _08071A30
+ .4byte _08071AA4
+ .4byte _08071AB6
+ .4byte _08071AD8
+ .4byte _08071B0C
+_08071A30:
+ movs r0, 0x80
+ lsls r0, 19
+ movs r4, 0
+ strh r4, [r0]
+ movs r0, 0
+ bl SetVBlankCallback
+ bl remove_some_task
+ movs r2, 0xA0
+ lsls r2, 19
+ mov r0, sp
+ strh r4, [r0]
+ ldr r1, _08071A98
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ ldr r0, _08071A9C
+ str r0, [r1, 0x8]
+ ldr r0, [r1, 0x8]
+ movs r2, 0xC0
+ lsls r2, 19
+ movs r3, 0xC0
+ lsls r3, 9
+ mov r4, sp
+ movs r6, 0
+ movs r5, 0x80
+ lsls r5, 5
+ ldr r7, _08071AA0
+ movs r0, 0x81
+ lsls r0, 24
+ mov r12, r0
+_08071A6E:
+ 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 _08071A6E
+ 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]
+ b _08071B10
+ .align 2, 0
+_08071A98: .4byte 0x040000d4
+_08071A9C: .4byte 0x81000200
+_08071AA0: .4byte 0x81000800
+_08071AA4:
+ bl ResetSpriteData
+ bl ResetTasks
+ bl ResetPaletteFade
+ bl dp12_8087EA4
+ b _08071B10
+_08071AB6:
+ ldr r4, _08071AD4
+ adds r0, r4, 0
+ bl SetUpWindowConfig
+ adds r0, r4, 0
+ bl sub_8071C4C
+ movs r1, 0x80
+ lsls r1, 19
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _08071B10
+ .align 2, 0
+_08071AD4: .4byte gWindowConfig_81E6CE4
+_08071AD8:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0x10
+ movs r2, 0
+ bl BlendPalettes
+ ldr r0, _08071B00
+ bl SetVBlankCallback
+ ldr r3, _08071B04
+ ldrh r2, [r3]
+ movs r0, 0
+ strh r0, [r3]
+ ldr r4, _08071B08
+ ldrh r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ strh r2, [r3]
+ b _08071B10
+ .align 2, 0
+_08071B00: .4byte sub_80719F0
+_08071B04: .4byte 0x04000208
+_08071B08: .4byte 0x04000200
+_08071B0C:
+ movs r0, 0x1
+ b _08071B1A
+_08071B10:
+ mov r1, r8
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ movs r0, 0
+_08071B1A:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80719FC
+
+ thumb_func_start sub_8071B28
+sub_8071B28: @ 8071B28
+ push {lr}
+ ldr r0, _08071B48
+ bl sub_80719FC
+ cmp r0, 0
+ beq _08071B42
+ ldr r0, _08071B4C
+ movs r1, 0x50
+ bl CreateTask
+ ldr r0, _08071B50
+ bl SetMainCallback2
+_08071B42:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08071B48: .4byte 0x03001bac
+_08071B4C: .4byte sub_8071B64
+_08071B50: .4byte sub_8071B54
+ thumb_func_end sub_8071B28
+
+ thumb_func_start sub_8071B54
+sub_8071B54: @ 8071B54
+ push {lr}
+ bl RunTasks
+ bl UpdatePaletteFade
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8071B54
+
+ thumb_func_start sub_8071B64
+sub_8071B64: @ 8071B64
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r0, r5, 2
+ adds r0, r5
+ lsls r0, 3
+ ldr r1, _08071B94
+ adds r4, r0, r1
+ ldr r0, _08071B98
+ ldrb r1, [r0, 0x7]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ bne _08071C14
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r0, 0x4
+ bhi _08071C14
+ lsls r0, 2
+ ldr r1, _08071B9C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08071B94: .4byte 0x03004b28
+_08071B98: .4byte 0x0202f388
+_08071B9C: .4byte _08071BA0
+ .align 2, 0
+_08071BA0:
+ .4byte _08071BB4
+ .4byte _08071BD4
+ .4byte _08071BDE
+ .4byte _08071BEE
+ .4byte _08071C06
+_08071BB4:
+ bl sub_8071FFC
+ ldr r0, _08071BD0
+ movs r1, 0x2
+ movs r2, 0xF
+ bl Print
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0x10
+ movs r3, 0
+ b _08071BFA
+ .align 2, 0
+_08071BD0: .4byte gUnknown_08411905
+_08071BD4:
+ bl sub_8047A1C
+ bl sub_8125E2C
+ b _08071BFE
+_08071BDE:
+ bl sub_8125E6C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08071C14
+ bl sub_8047A34
+ b _08071BFE
+_08071BEE:
+ movs r0, 0x1
+ negs r0, r0
+ movs r1, 0
+ str r1, [sp]
+ movs r2, 0
+ movs r3, 0x10
+_08071BFA:
+ bl BeginNormalPaletteFade
+_08071BFE:
+ ldrh r0, [r4]
+ adds r0, 0x1
+ strh r0, [r4]
+ b _08071C14
+_08071C06:
+ ldr r0, _08071C1C
+ ldr r0, [r0, 0x8]
+ bl SetMainCallback2
+ adds r0, r5, 0
+ bl DestroyTask
+_08071C14:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08071C1C: .4byte 0x03001770
+ thumb_func_end sub_8071B64
+
+ thumb_func_start sub_8071C20
+sub_8071C20: @ 8071C20
+ push {lr}
+ movs r0, 0x5
+ bl audio_play
+ bl sub_8071EF4
+ bl sub_8064E2C
+ bl script_env_2_disable
+ bl sub_8072DEC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8071C20
+
+ thumb_func_start append_byte
+append_byte: @ 8071C3C
+ ldrb r3, [r1]
+ adds r0, r3
+ strb r2, [r0]
+ ldrb r0, [r1]
+ adds r0, 0x1
+ strb r0, [r1]
+ bx lr
+ thumb_func_end append_byte
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/data/data2.s b/data/data2.s
index 3da8512eb..107d73567 100644
--- a/data/data2.s
+++ b/data/data2.s
@@ -7879,8 +7879,9 @@ gUnknown_083761F0:: @ 83761F0
.4byte gTextWindowFrame19_Gfx, gTextWindowFrame19_Pal
.4byte gTextWindowFrame20_Gfx, gTextWindowFrame20_Pal
-gUnknown_08376290:: @ 8376290
- .incbin "baserom.gba", 0x00376290, 0x48
+ .align 1
+gMessageBoxTilemap:: @ 8376290
+ .incbin "graphics/text_window/message_box_map.bin"
gUnknown_083762D8:: @ 83762D8
.space 4
diff --git a/data/graphics.s b/data/graphics.s
index bfa8a578b..39cfaf5d9 100644
--- a/data/graphics.s
+++ b/data/graphics.s
@@ -4519,8 +4519,8 @@ gPokenavRibbonPokeView_Gfx:: @ 8EA0028
.incbin "graphics/pokenav/ribbon_pokeview.4bpp"
.align 2
-gTextWindowMainFrame_Gfx:: @ 8EA0108
- .incbin "graphics/text_window/main.4bpp"
+gMessageBox_Gfx:: @ 8EA0108
+ .incbin "graphics/text_window/message_box.4bpp"
.align 2
gUnknown_08EA02C8:: @ 8EA02C8
diff --git a/graphics/text_window/main.png b/graphics/text_window/message_box.png
index b41a0f799..b41a0f799 100644
--- a/graphics/text_window/main.png
+++ b/graphics/text_window/message_box.png
Binary files differ
diff --git a/graphics/text_window/message_box_map.bin b/graphics/text_window/message_box_map.bin
new file mode 100644
index 000000000..d6146a33f
--- /dev/null
+++ b/graphics/text_window/message_box_map.bin
Binary files differ
diff --git a/ld_script.txt b/ld_script.txt
index 2c7565e80..b9724883c 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -31,6 +31,9 @@ SECTIONS {
src/link.o(.bss);
src/rtc.o(.bss);
+ . = 0x5AC;
+ src/text_window.o(.bss);
+
. = 0x6B0;
src/menu.o(.bss);
@@ -75,6 +78,8 @@ SECTIONS {
asm/rom_8040EB4.o(.text);
src/play_time.o(.text);
asm/rom4.o(.text);
+ src/text_window.o(.text);
+ asm/rom_8065394.o(.text);
src/menu.o(.text);
asm/rom_8072DF8.o(.text);
src/palette.o(.text);
diff --git a/src/text_window.c b/src/text_window.c
new file mode 100644
index 000000000..6a24fc67d
--- /dev/null
+++ b/src/text_window.c
@@ -0,0 +1,195 @@
+#include "global.h"
+#include "main.h"
+#include "text.h"
+
+u16 sub_8064EF4(u16);
+void sub_8064F08(struct Window *);
+void sub_8064F38(struct Window *, u8);
+void sub_8064F6C(struct Window *, u8);
+void AddTextPrinterParametrized(struct Window *win, u8 left, u8 top, u8 right, u8 bottom);
+const struct FrameGraphics *sub_8064FD4(u8 frameType);
+static void sub_8064FF8(u8, void *);
+static void sub_8065014(u8, u8);
+static void DrawWindowInternal(u16 *dest, u16 baseTileNum, u8 left, u8 top, u8 right, u8 bottom);
+u16 sub_80651C8(u16);
+void unref_sub_80651DC(struct Window *, u8 *);
+void copy_textbox_border_tile_patterns_to_vram(struct Window *);
+static u16 draw_win_3(u16 tilemapEntry, u8 x, u8 y, u8 width, u8 height);
+static void draw_win_2(struct Window *win, u8 left, u8 top, u8 width, u8 height);
+void draw_win(struct Window *win);
+void sub_8065348(struct Window *win);
+void sub_806536C(struct Window *win);
+
+static u16 sTextWindowBaseTileNum;
+static u16 sMessageBoxBaseTileNum;
+
+struct FrameGraphics
+{
+ u8 *tiles;
+ u16 *palette;
+};
+
+extern const struct FrameGraphics gUnknown_083761F0[20];
+
+extern const u16 gMessageBoxTilemap[5][7];
+extern const u8 gMessageBox_Gfx[];
+
+u16 sub_8064EF4(u16 baseTileNum)
+{
+ sTextWindowBaseTileNum = baseTileNum;
+ return baseTileNum + 9;
+}
+
+void sub_8064F08(struct Window *win)
+{
+ u8 *tileData = win->config->tileData + TILE_SIZE_4BPP * sTextWindowBaseTileNum;
+ sub_8064FF8(gSaveBlock2.optionsWindowFrameType, tileData);
+ sub_8065014(gSaveBlock2.optionsWindowFrameType, 0xE);
+}
+
+void sub_8064F38(struct Window *win, u8 a2)
+{
+ u8 *tileData = win->config->tileData + TILE_SIZE_4BPP * sTextWindowBaseTileNum;
+ sub_8064FF8(gSaveBlock2.optionsWindowFrameType, tileData);
+ sub_8065014(gSaveBlock2.optionsWindowFrameType, a2);
+}
+
+void sub_8064F6C(struct Window *win, u8 frameType)
+{
+ u8 *tileData = win->config->tileData + TILE_SIZE_4BPP * sTextWindowBaseTileNum;
+ sub_8064FF8(frameType, tileData);
+ sub_8065014(frameType, 0xE);
+}
+
+void AddTextPrinterParametrized(struct Window *win, u8 left, u8 top, u8 right, u8 bottom)
+{
+ DrawWindowInternal(win->config->tilemap, sTextWindowBaseTileNum, left, top, right, bottom);
+}
+
+const struct FrameGraphics *sub_8064FD4(u8 frameType)
+{
+ if (frameType > 19)
+ return &gUnknown_083761F0[0];
+ else
+ return &gUnknown_083761F0[frameType];
+}
+
+static void sub_8064FF8(u8 frameType, void *dest)
+{
+ const struct FrameGraphics *frameGraphics = sub_8064FD4(frameType);
+ CpuFastCopy(frameGraphics->tiles, dest, 9 * TILE_SIZE_4BPP);
+}
+
+static void sub_8065014(u8 frameType, u8 palSlot)
+{
+ const struct FrameGraphics *frameGraphics = sub_8064FD4(frameType);
+ LoadPalette(frameGraphics->palette, 16 * palSlot, 0x20);
+}
+
+static void DrawWindowInternal(u16 *dest, u16 baseTileNum, u8 left, u8 top, u8 right, u8 bottom)
+{
+ u8 x, y;
+ u8 startX, endX;
+ u8 startY, endY;
+
+ startX = (left < right) ? left : right;
+ endX = (right > left) ? right : left;
+
+ startY = (top < bottom) ? top : bottom;
+ endY = (bottom > top) ? bottom : top;
+
+ dest[32 * startY + startX] = baseTileNum | 0xE000;
+
+ for (x = startX + 1; x < endX; x++)
+ dest[32 * startY + x] = (baseTileNum + 1) | 0xE000;
+
+ dest[32 * startY + endX] = (baseTileNum + 2) | 0xE000;
+
+ for (y = startY + 1; y < endY; y++)
+ {
+ dest[32 * y + startX] = (baseTileNum + 3) | 0xE000;
+
+ for (x = startX + 1; x < endX; x++)
+ dest[32 * y + x] = (baseTileNum + 4) | 0xE000;
+
+ dest[32 * y + endX] = (baseTileNum + 5) | 0xE000;
+ }
+
+ dest[32 * endY + startX] = (baseTileNum + 6) | 0xE000;
+
+ for (x = startX + 1; x < endX; x++)
+ dest[32 * endY + x] = (baseTileNum + 7) | 0xE000;
+
+ dest[32 * endY + endX] = (baseTileNum + 8) | 0xE000;
+}
+
+u16 sub_80651C8(u16 a1)
+{
+ sMessageBoxBaseTileNum = a1;
+ return a1 + 14;
+}
+
+void unref_sub_80651DC(struct Window *win, u8 *text)
+{
+ sub_8002EB0(win, text, sMessageBoxBaseTileNum + 14, 2, 15);
+}
+
+void copy_textbox_border_tile_patterns_to_vram(struct Window *win)
+{
+ sub_8065348(win);
+ draw_win(win);
+}
+
+static u16 draw_win_3(u16 baseTilemapEntry, u8 x, u8 y, u8 width, u8 height)
+{
+ u16 tilemapEntry = 9;
+
+ if (y >= height)
+ y = y - height + 3;
+ else if (y > 1)
+ y = 2;
+
+ if (x >= width + 2)
+ x = x - (width + 2) + 4;
+ else if (x > 2)
+ x = 3;
+
+ if (x <= 6 && y <= 4)
+ tilemapEntry = gMessageBoxTilemap[y][x];
+
+ tilemapEntry += baseTilemapEntry;
+
+ return tilemapEntry;
+}
+
+static void draw_win_2(struct Window *win, u8 left, u8 top, u8 width, u8 height)
+{
+ u8 i, j;
+ u16 tilemapEntry = (win->paletteNum << 12) | sMessageBoxBaseTileNum;
+ u16 *tilemap = win->config->tilemap;
+
+ for (i = 0; i < height + 2; i++)
+ for (j = 0; j < width + 6; j++)
+ tilemap[(left + j) + 32 * (top + i)] = (win->paletteNum << 12) | draw_win_3(tilemapEntry, j, i, width, height);
+}
+
+void draw_win(struct Window *win)
+{
+ draw_win_2(win, 0, 14, 26, 4);
+}
+
+void sub_8065348(struct Window *win)
+{
+ u8 *tileData = win->config->tileData;
+ CpuFastCopy(gMessageBox_Gfx, tileData + 32 * sMessageBoxBaseTileNum, 14 * TILE_SIZE_4BPP);
+}
+
+void sub_806536C(struct Window *win)
+{
+ u8 i;
+ u16 *tilemap = win->config->tilemap + 0x1C0;
+ u16 tilemapEntry = win->paletteNum << 12;
+
+ for (i = 0; i < 0xC0; i++)
+ tilemap[i] = tilemapEntry;
+}